/*
Theme Name: Clear Theme
Theme URI:
Author: Grace
Author URI:
Description: A custom WordPress theme replicating the James Clear site design — minimal, typographic, editorial.
Version: 1.0.0
Requires at least: 6.0
Tested up to: 6.7
Requires PHP: 8.0
License: GNU General Public License v2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
Text Domain: cleartheme
Tags: custom, minimal, editorial
*/

/* ==========================================================================
   RESET & BASE
   ========================================================================== */

*, *::before, *::after {
	box-sizing: border-box;
	margin: 0;
	padding: 0;
}

html {
	font-size: 16px;
	-webkit-text-size-adjust: 100%;
	scroll-behavior: smooth;
}

body {
	background-color: #f9f8f4;
	color: rgb(17, 17, 17);
	font-family: 'minion-pro', 'Lora', serif;
	font-size: 21px;
	font-weight: 400;
	line-height: 34.65px;
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
	overflow-x: hidden;
}

/* ==========================================================================
   TYPOGRAPHY
   ========================================================================== */

h1, h2, h3, h4, h5, h6 {
	font-family: 'europa', 'DM Sans', sans-serif;
	color: rgb(17, 17, 17);
	font-weight: 700;
	margin: 0;
}

h1 {
	font-size: 46px;
	font-weight: 700;
	line-height: 57.5px;
	letter-spacing: -1.5px;
}

h2 {
	font-size: 36px;
	font-weight: 700;
	line-height: 45px;
	letter-spacing: normal;
}

h3 {
	font-size: 28px;
	font-weight: 700;
	line-height: 1.4;
}

h4 {
	font-size: 21px;
	font-weight: 700;
	line-height: 31.5px;
	letter-spacing: normal;
}

h5 {
	font-size: 18px;
	font-weight: 700;
	line-height: 1.4;
}

h6 {
	font-size: 16px;
	font-weight: 700;
	line-height: 1.4;
}

p {
	font-family: 'minion-pro', 'Lora', serif;
	font-size: 21px;
	font-weight: 400;
	line-height: 34.65px;
	color: rgb(17, 17, 17);
	margin-bottom: 1.4em;
}

p:last-child {
	margin-bottom: 0;
}

a {
	color: rgb(17, 17, 17);
	text-decoration: none;
	transition: opacity 0.2s ease;
}

a:hover {
	opacity: 0.7;
}

/* Body content links */
.entry-content a,
.page-content a,
.post-content a {
	color: rgb(17, 17, 17);
	text-decoration: underline;
}

.entry-content a:hover,
.page-content a:hover,
.post-content a:hover {
	opacity: 0.7;
}

/* Nav / UI links — no underline */
nav a,
.site-nav a,
.nav-menu a {
	text-decoration: none;
}

img {
	max-width: 100%;
	height: auto;
	display: block;
}

ul, ol {
	list-style: none;
}

blockquote {
	font-family: 'minion-pro', 'Lora', serif;
	font-size: 21px;
	font-style: italic;
	line-height: 34.65px;
	border-left: 3px solid rgb(248, 205, 95);
	padding-left: 24px;
	margin: 32px 0;
	color: rgb(17, 17, 17);
}

strong, b {
	font-weight: 700;
}

em, i {
	font-style: italic;
}

/* ==========================================================================
   LAYOUT — CONTAINER
   ========================================================================== */

.container {
	max-width: 1110px;
	width: 100%;
	padding-left: 27px;
	padding-right: 27px;
	margin-left: auto;
	margin-right: auto;
}

.container--narrow {
	max-width: 770px;
	width: 100%;
	padding-left: 27px;
	padding-right: 27px;
	margin-left: auto;
	margin-right: auto;
}

/* ==========================================================================
   SITE WRAPPER
   ========================================================================== */

.site {
	display: flex;
	flex-direction: column;
	min-height: 100vh;
}

.site-main {
	flex: 1;
}

/* ==========================================================================
   HEADER
   ========================================================================== */

.site-header {
	background-color: #f9f8f4;
	padding: 40px 0;
}

.site-header .container {
	display: flex;
	align-items: center;
	justify-content: space-between;
}

/* Site title / logo */
.site-branding {
	flex-shrink: 0;
}

.site-title {
	font-family: 'europa', 'DM Sans', sans-serif;
	font-size: 20px;
	font-weight: 400;
	letter-spacing: normal;
	text-transform: none;
	color: rgb(17, 17, 17);
	text-decoration: none;
	display: block;
}

.site-title:hover {
	opacity: 0.7;
}

/* Primary nav — centred */
.site-nav {
	display: flex;
	align-items: center;
}

.nav-menu {
	display: flex;
	align-items: center;
	gap: 40px;
	list-style: none;
}

.nav-menu li a {
	font-family: 'europa', 'DM Sans', sans-serif;
	font-size: 15px;
	font-weight: 400;
	line-height: normal;
	letter-spacing: normal;
	color: rgb(17, 17, 17);
	text-decoration: none;
	white-space: nowrap;
}

.nav-menu li a:hover {
	opacity: 0.7;
}

/* About link — far right, bold like jamesclear.com */
.header-about {
	flex-shrink: 0;
}

.about-menu a {
	font-weight: 700 !important;
}

.header-about a {
	font-family: 'europa', 'DM Sans', sans-serif;
	font-size: 15px;
	font-weight: 400;
	color: rgb(17, 17, 17);
	text-decoration: none;
}

.header-about a:hover {
	opacity: 0.7;
}

/* Hamburger — hidden on desktop */
.menu-toggle {
	display: none;
	background: none;
	border: none;
	cursor: pointer;
	align-items: center;
	gap: 8px;
	padding: 0;
}

.menu-toggle-label {
	font-family: 'europa', 'DM Sans', sans-serif;
	font-size: 16px;
	font-weight: 400;
	color: rgb(17, 17, 17);
	letter-spacing: normal;
}

.hamburger-icon {
	width: 24px;
	height: 18px;
	display: flex;
	flex-direction: column;
	justify-content: space-between;
}

.hamburger-icon span {
	display: block;
	width: 100%;
	height: 2px;
	background-color: rgb(17, 17, 17);
	border-radius: 0;
}

/* Mobile nav overlay */
.mobile-nav-overlay {
	display: none;
	position: fixed;
	inset: 0;
	background-color: #f9f8f4;
	z-index: 9999;
	flex-direction: column;
	align-items: center;
	justify-content: center;
}

.mobile-nav-overlay.is-open {
	display: flex;
}

.mobile-nav-header {
	position: absolute;
	top: 0;
	left: 0;
	right: 0;
	padding: 40px 27px;
	display: flex;
	align-items: center;
	justify-content: space-between;
}

.mobile-site-title {
	font-family: 'europa', 'DM Sans', sans-serif;
	font-size: 16px;
	font-weight: 400;
	letter-spacing: 0.15em;
	text-transform: uppercase;
	color: rgb(17, 17, 17);
	text-decoration: none;
}

.mobile-nav-close {
	background: none;
	border: none;
	cursor: pointer;
	font-family: 'europa', 'DM Sans', sans-serif;
	font-size: 16px;
	font-weight: 400;
	color: rgb(50, 1, 1);
	display: flex;
	align-items: center;
	gap: 6px;
	padding: 0;
}

.mobile-nav-close svg {
	width: 14px;
	height: 14px;
	stroke: rgb(50, 1, 1);
	stroke-width: 2;
}

.mobile-nav-menu {
	list-style: none;
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 0;
	text-align: center;
}

.mobile-nav-menu li a {
	font-family: 'europa', 'DM Sans', sans-serif;
	font-size: 24px;
	font-weight: 400;
	line-height: 39.6px;
	color: rgb(17, 17, 17);
	text-decoration: none;
	display: block;
	padding: 8px 0;
}

.mobile-nav-menu li a:hover {
	opacity: 0.7;
}

/* ==========================================================================
   FOOTER
   ========================================================================== */

.site-footer {
	background-color: #000000;
	padding-top: 108px;
	padding-bottom: 60px;
}

.footer-products {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 24px;
	flex-wrap: wrap;
	margin-bottom: 64px;
}

.footer-product-link {
	display: block;
	opacity: 0.85;
	transition: opacity 0.2s ease;
}

.footer-product-link:hover {
	opacity: 1;
}

.footer-product-link img {
	width: auto;
	height: 100px;
	object-fit: contain;
}

/* ── Social icons ── */
.footer-social {
	display: flex;
	justify-content: center;
	gap: 20px;
	margin-bottom: 32px;
}

.footer-social .social-icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 36px;
	height: 36px;
	color: rgba(255, 255, 255, 0.7);
	transition: color 0.2s ease;
}

.footer-social .social-icon:hover {
	color: #ffffff;
}

.footer-social .social-icon svg {
	width: 20px;
	height: 20px;
	fill: currentColor;
}

/* ── Bio photo ── */
.bio-photo {
	width: 80px;
	height: 80px;
	border-radius: 50%;
	object-fit: cover;
	display: block;
	margin-bottom: 16px;
}

.footer-branding {
	text-align: center;
	margin-bottom: 24px;
}

.footer-site-title {
	font-family: 'europa', 'DM Sans', sans-serif;
	font-size: 16px;
	font-weight: 400;
	letter-spacing: 0.15em;
	text-transform: uppercase;
	color: rgb(153, 153, 153);
	text-decoration: none;
}

.footer-site-title:hover {
	color: #ffffff;
}

.footer-legal {
	text-align: center;
	margin-top: 16px;
}

.footer-legal a,
.footer-legal span {
	font-family: 'minion-pro', 'Lora', serif;
	font-size: 16px;
	font-weight: 400;
	color: rgb(153, 153, 153);
	text-decoration: none;
}

.footer-legal a:hover {
	color: #ffffff;
}

.footer-legal .footer-legal-contact {
	font-size: 20px;
	font-weight: 500;
	color: #e5e7eb;
}

.footer-legal .separator {
	margin: 0 8px;
	color: rgb(153, 153, 153);
}

.footer-copy {
	text-align: center;
	margin-top: 12px;
}

.footer-copy p {
	font-family: 'minion-pro', 'Lora', serif;
	font-size: 16px;
	font-weight: 400;
	color: rgb(153, 153, 153);
	line-height: normal;
}

/* ==========================================================================
   HOMEPAGE — YOUTUBE PHONE PROMO SECTION
   ========================================================================== */

.yt-phone-section {
	background-color: #ffffff;
	padding: 80px 0 90px;
	border-top: 1px solid #efefef;
	border-bottom: 1px solid #efefef;
}

.yt-phone-grid {
	display: grid;
	grid-template-columns: 1fr 1fr;
	align-items: center;
	gap: 80px;
	max-width: 1100px;
	margin: 0 auto;
	padding: 0 40px;
}

/* ── Left column: phone image ── */
.yt-phone-col {
	display: flex;
	justify-content: center;
	align-items: center;
}

.yt-phone-col a {
	display: block;
	line-height: 0;
}

.yt-phone-img {
	/* Cap height so the PNG's transparent padding doesn't balloon the section */
	width: 100%;
	max-width: 340px;
	max-height: 520px;
	height: auto;
	object-fit: contain;
	display: block;
	transition: transform 0.35s ease, opacity 0.35s ease;
}

.yt-phone-col a:hover .yt-phone-img {
	transform: translateY(-8px) scale(1.02);
	opacity: 0.9;
}

.yt-phone-placeholder {
	width: 280px;
	height: 440px;
	background: #f0f0f0;
	border-radius: 32px;
}

/* ── Right column: text ── */
.yt-text-col {
	display: flex;
	flex-direction: column;
	justify-content: center;
	gap: 24px;
}

/* Main heading — large & bold, like James Clear's "Download Atoms" heading */
.yt-phone-heading {
	font-family: 'minion-pro', 'Lora', Georgia, serif !important;
	font-size: 44px !important;
	font-weight: 700 !important;
	line-height: 1.2 !important;
	color: #1a1a1a !important;
	margin: 0 !important;
}

/* Supporting description — comfortable reading size */
.yt-phone-text {
	font-family: 'minion-pro', 'Lora', Georgia, serif !important;
	font-size: 21px !important;
	font-weight: 400 !important;
	line-height: 1.6 !important;
	color: #333333 !important;
	margin: 0 !important;
}

/* Compact button — like James Clear's "Learn More" */
.yt-phone-link {
	display: inline-block;
	align-self: flex-start;
	font-family: 'proxima-nova', 'Nunito Sans', sans-serif;
	font-size: 17px;
	font-weight: 700;
	color: #1a1a1a;
	background-color: #c9a84c;
	text-decoration: none;
	letter-spacing: 0.01em;
	padding: 14px 28px;
	border-radius: 4px;
	transition: background-color 0.2s ease, transform 0.2s ease;
}

.yt-phone-link:hover {
	background-color: #a8893a;
	transform: translateY(-2px);
	color: #1a1a1a;
}

/* ── Responsive ── */
@media ( max-width: 900px ) {
	.yt-phone-heading {
		font-size: 36px !important;
	}
	.yt-phone-grid {
		gap: 48px;
	}
}

@media ( max-width: 768px ) {
	.yt-phone-grid {
		grid-template-columns: 1fr;
		gap: 40px;
		text-align: center;
		padding: 0 24px;
	}

	.yt-phone-img {
		max-width: 260px;
		margin: 0 auto;
	}

	.yt-text-col {
		align-items: center;
	}

	.yt-phone-heading {
		font-size: 30px !important;
	}

	.yt-phone-text {
		font-size: 19px !important;
	}

	.yt-phone-link {
		align-self: center;
	}
}

/* ==========================================================================
   HERO — CTA BUTTON + HEADING LINK
   ========================================================================== */

/* Heading/subtitle link — inherits text style, no underline */
.hero-heading-link {
	color: inherit;
	text-decoration: none;
}
.hero-heading-link:hover {
	color: #c9a84c;
}

/* "Get Your Copy →" button */
.hero-cta-btn {
	display: inline-block;
	font-family: 'proxima-nova', 'Nunito Sans', sans-serif;
	font-size: 19px;
	font-weight: 700;
	letter-spacing: 0.02em;
	color: #1a1a1a;
	background-color: #c9a84c;
	text-decoration: none;
	padding: 18px 40px;
	border-radius: 4px;
	box-shadow: 0 4px 16px rgba(201,168,76,0.35);
	transition: background-color 0.2s ease, transform 0.2s ease;
}
.hero-cta-btn:hover {
	background-color: #a8893a;
	transform: translateY(-2px);
	color: #1a1a1a;
}

/* Subtitle line below the button */
.hero-cta-sub {
	font-family: 'proxima-nova', 'Nunito Sans', sans-serif;
	font-size: 15px !important;
	color: #888888;
	margin: 12px 0 0;
	font-style: italic;
}

/* ── Book page: divider above the free ebook offer ── */
.book-fe-divider {
	border: none;
	border-top: 1px solid #e8e4dc;
	margin: 20px 0 18px;
}

/* ==========================================================================
   ABOUT PAGE  (James Clear style)
   ========================================================================== */

/* ── INTRO: 2-column, beige ── */
.ac-intro {
	background-color: #f9f8f4;
	padding: 77px 0 128px;
}

.ac-intro__inner {
	max-width: 1110px;
	margin: 0 auto;
	padding: 0 27px;
	display: flex;
	gap: 60px;
	align-items: flex-start;
}

.ac-intro__left {
	flex: 1;
	min-width: 0;
}

.ac-intro__right {
	width: 380px;
	flex-shrink: 0;
	padding-top: 72px;
}

/* ── SECTIONS BELOW: white, 730px centred ── */
.ac-section {
	background-color: #ffffff;
	padding: 80px 0;
}

.ac-col {
	max-width: 730px;
	margin: 0 auto;
	padding: 0 27px;
}

/* ── HEADINGS ── */
.ac-h1 {
	font-family: 'proxima-nova', 'Nunito Sans', sans-serif;
	font-size: 36px !important;
	font-weight: 700;
	color: #111111;
	margin: 0 0 48px;
	line-height: 1.2;
	max-width: 485px;
}

.ac-h2 {
	font-family: 'proxima-nova', 'Nunito Sans', sans-serif;
	font-size: 26px !important;
	font-weight: 700;
	color: #111111;
	margin: 0 0 32px;
	line-height: 1.25;
}

/* ── BODY TEXT ── */
.ac-intro__left p,
.ac-col p {
	font-family: 'freight-text-pro', Georgia, serif;
	font-size: 21px !important;
	color: #111111;
	line-height: 1.65;
	margin: 0 0 40px;
	max-width: none;
}

/* ── AUTHOR PHOTO (top of right column) ── */
.ac-author-photo {
	margin-bottom: 36px;
}

.ac-author-photo__img {
	width: 110px;
	height: 110px;
	border-radius: 50%;
	object-fit: cover;
	object-position: center 15%;
	display: block;
}

/* ── CREDENTIALS (right column of intro) ── */
.ac-cred {
	display: flex;
	align-items: flex-start;
	gap: 18px;
	margin-bottom: 32px;
}

.ac-cred__icon {
	width: 30px;
	height: 30px;
	background-color: #c9a84c;
	border-radius: 50%;
	display: flex;
	align-items: center;
	justify-content: center;
	flex-shrink: 0;
	color: #ffffff;
	font-size: 15px;
	font-weight: 700;
	line-height: 1;
	margin-top: 2px;
}

.ac-cred__text {
	font-family: 'proxima-nova', 'Nunito Sans', sans-serif;
	font-size: 21px;
	font-weight: 700;
	color: #111111;
	line-height: 1.3;
}

/* ── CHILDHOOD PHOTOS ── */
.ac-photos {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 16px;
	margin: 32px 0 36px;
}

.ac-photo {
	margin: 0;
}

.ac-photo img {
	width: 100%;
	height: auto;
	display: block;
	border-radius: 3px;
}

.ac-photo__caption {
	font-family: 'proxima-nova', 'Nunito Sans', sans-serif;
	font-size: 13px !important;
	color: #888888;
	line-height: 1.4;
	margin-top: 8px;
	font-style: italic;
}

@media ( max-width: 500px ) {
	.ac-photos { grid-template-columns: 1fr; }
}

/* ── CHAPTER SUB-LABELS ── */
.ac-chapter-label {
	font-family: 'proxima-nova', 'Nunito Sans', sans-serif !important;
	font-size: 13px !important;
	font-weight: 700 !important;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	color: #888888 !important;
	margin: 48px 0 6px !important;
	max-width: none !important;
	line-height: 1.4 !important;
}

/* ── BULLET LIST ── */
.ac-list {
	list-style: none;
	margin: 0 0 40px;
	padding: 0;
}

.ac-list li {
	font-family: 'freight-text-pro', Georgia, serif;
	font-size: 21px;
	color: #111111;
	line-height: 1.65;
	padding-left: 24px;
	margin-bottom: 24px;
	position: relative;
}

.ac-list li::before {
	content: '·';
	position: absolute;
	left: 0;
	top: 0;
	font-size: 24px;
	color: #555555;
	line-height: 1.55;
}

/* ── INLINE LINK ── */
.ac-link {
	color: inherit;
	text-decoration: underline;
	text-underline-offset: 3px;
}

/* ── CTA SECTION ── */
.ac-cta-section {
	border-top: 1px solid #e8e4dc;
}

.ac-cta-col {
	text-align: center;
}

.ac-cta-col .ac-h2 {
	margin-bottom: 16px;
}

.ac-cta-col p {
	color: #555555 !important;
	margin-bottom: 36px !important;
}

.ac-cta-buttons {
	display: flex;
	gap: 16px;
	justify-content: center;
	flex-wrap: wrap;
}

.ac-btn {
	display: inline-block;
	font-family: 'proxima-nova', 'Nunito Sans', sans-serif;
	font-size: 16px;
	font-weight: 700;
	text-decoration: none;
	padding: 15px 34px;
	border-radius: 4px;
	transition: background-color 0.15s ease, transform 0.15s ease;
}

.ac-btn--primary {
	background-color: #c9a84c;
	color: #1a1a1a;
}

.ac-btn--primary:hover {
	background-color: #a8893a;
	color: #1a1a1a;
	transform: translateY(-2px);
}

.ac-btn--secondary {
	background-color: transparent;
	color: #1a1a1a;
	border: 2px solid #1a1a1a;
}

.ac-btn--secondary:hover {
	background-color: #1a1a1a;
	color: #ffffff;
	transform: translateY(-2px);
}

/* ── CONTACT LINK (right column of intro) ── */
.ac-contact-link {
	display: inline-block;
	margin-top: 32px;
	font-family: 'proxima-nova', 'Nunito Sans', sans-serif;
	font-size: 19px;
	font-weight: 700;
	color: #111111;
	text-decoration: underline;
	text-underline-offset: 4px;
	letter-spacing: 0.01em;
}

.ac-contact-link:hover {
	color: #c9a84c;
}

/* ── RESPONSIVE ── */
@media ( max-width: 860px ) {
	.ac-intro__inner {
		flex-direction: column;
		gap: 40px;
	}
	.ac-intro__right {
		width: 100%;
		padding-top: 0;
	}
}

@media ( max-width: 600px ) {
	.ac-intro { padding: 60px 0 80px; }
	.ac-intro__inner,
	.ac-col { padding: 0 20px; }
	.ac-section { padding: 60px 0; }
	.ac-h1 { font-size: 28px !important; }
	.ac-h2 { font-size: 22px !important; }
	.ac-intro__left p,
	.ac-col p,
	.ac-list li { font-size: 18px !important; }
}

/* ==========================================================================
   EBOOK DOWNLOAD PAGE
   ========================================================================== */

.dl-hero {
	background-color: #f9f8f4;
	padding: 80px 40px 90px;
}

.dl-hero__inner {
	max-width: 1000px;
	margin: 0 auto;
	display: grid;
	grid-template-columns: auto 1fr;
	gap: 72px;
	align-items: start;
}

.dl-cover-img {
	width: 100%;
	max-width: 280px;
	height: auto;
	display: block;
	box-shadow: 0 20px 50px rgba(0,0,0,0.18), 0 4px 14px rgba(0,0,0,0.10);
	border-radius: 4px;
}

.dl-eyebrow {
	font-family: 'proxima-nova', 'Nunito Sans', sans-serif;
	font-size: 13px !important;
	font-weight: 700;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	color: #c9a84c;
	margin: 0 0 12px;
}

.dl-heading {
	font-family: 'freight-display-pro', Georgia, serif;
	font-size: 46px !important;
	font-weight: 700;
	color: #1a1a1a;
	line-height: 1.15;
	margin: 0 0 10px;
}

.dl-book-name {
	font-family: 'proxima-nova', 'Nunito Sans', sans-serif;
	font-size: 16px !important;
	color: #888888;
	margin: 0 0 18px;
}

.dl-sub {
	font-family: 'proxima-nova', 'Nunito Sans', sans-serif;
	font-size: 18px !important;
	color: #555555;
	line-height: 1.6;
	margin: 0 0 28px;
}

.dl-download-btn {
	display: inline-block;
	font-family: 'proxima-nova', 'Nunito Sans', sans-serif;
	font-size: 18px;
	font-weight: 700;
	color: #1a1a1a;
	background-color: #c9a84c;
	text-decoration: none;
	padding: 18px 36px;
	border-radius: 4px;
	box-shadow: 0 4px 16px rgba(201,168,76,0.35);
	transition: background-color 0.2s ease, transform 0.2s ease;
}

.dl-download-btn:hover {
	background-color: #a8893a;
	transform: translateY(-2px);
	color: #1a1a1a;
}

.dl-download-btn--outline {
	background-color: transparent;
	border: 2px solid #c9a84c;
	color: #c9a84c;
	box-shadow: none;
}

.dl-download-btn--outline:hover {
	background-color: #c9a84c;
	color: #1a1a1a;
}

.dl-no-file {
	font-size: 15px !important;
	color: #888888;
	font-style: italic;
}

/* How to read section */
.dl-howto {
	background-color: #ffffff;
	padding: 80px 40px;
}

.dl-howto__inner {
	max-width: 1000px;
	margin: 0 auto;
}

.dl-howto__heading {
	font-family: 'proxima-nova', 'Nunito Sans', sans-serif;
	font-size: 26px !important;
	font-weight: 700;
	color: #111111;
	margin: 0 0 12px;
}

.dl-howto__sub {
	font-family: 'freight-text-pro', Georgia, serif;
	font-size: 19px !important;
	color: #555555;
	line-height: 1.6;
	margin: 0 0 48px;
	max-width: 640px;
}

/* Platform rows — clean list, no cards, no icons */
.dl-platform-list {
	margin-bottom: 56px;
}

.dl-platform-row {
	display: flex;
	align-items: baseline;
	gap: 40px;
	padding: 22px 0;
	border-top: 1px solid #e8e4dc;
}

.dl-platform-row:last-child {
	border-bottom: 1px solid #e8e4dc;
}

.dl-platform-row__label {
	font-family: 'proxima-nova', 'Nunito Sans', sans-serif;
	font-size: 15px !important;
	font-weight: 700;
	color: #111111;
	text-transform: uppercase;
	letter-spacing: 0.06em;
	min-width: 130px;
	flex-shrink: 0;
}

.dl-platform-row__detail {
	font-family: 'freight-text-pro', Georgia, serif;
	font-size: 19px !important;
	color: #333333;
	line-height: 1.6;
}

.dl-howto__repeat-download {
	text-align: center;
	padding-top: 8px;
}

/* Grace giving section */
.dl-giving {
	background-color: #f9f8f4;
	padding: 72px 0;
}

.dl-giving__inner {
	max-width: 1000px;
	margin: 0 auto;
	padding: 0 40px;
	display: flex;
	gap: 80px;
	align-items: flex-start;
}

.dl-giving__left {
	flex: 1;
	min-width: 0;
}

.dl-giving__right {
	display: flex;
	flex-direction: column;
	gap: 12px;
	flex-shrink: 0;
	padding-top: 160px;
}

.dl-giving__eyebrow {
	font-family: 'proxima-nova', 'Nunito Sans', sans-serif;
	font-size: 12px !important;
	font-weight: 700;
	letter-spacing: 0.16em;
	text-transform: uppercase;
	color: #c9a84c;
	margin: 0 0 20px;
}

.dl-giving__text p {
	font-family: 'freight-text-pro', Georgia, serif;
	font-size: 19px !important;
	color: #444444;
	line-height: 1.75;
	margin: 0 0 18px;
	text-align: left;
}

.dl-giving__sig {
	font-family: 'proxima-nova', 'Nunito Sans', sans-serif;
	font-size: 15px !important;
	color: #888888;
	font-style: italic;
	margin-top: 24px !important;
}

.dl-giving__btn {
	display: block;
	font-family: 'proxima-nova', 'Nunito Sans', sans-serif;
	font-size: 15px;
	font-weight: 700;
	text-decoration: none;
	padding: 13px 28px;
	border-radius: 4px;
	text-align: center;
	white-space: nowrap;
	transition: background-color 0.15s ease, transform 0.15s ease;
}

.dl-giving__btn--patreon {
	background-color: #111111;
	color: #ffffff;
}

.dl-giving__btn--patreon:hover {
	background-color: #333333;
	color: #ffffff;
	transform: translateY(-2px);
}

.dl-giving__btn--paypal {
	background-color: transparent;
	color: #111111;
	border: 2px solid #111111;
}

.dl-giving__btn--paypal:hover {
	background-color: #111111;
	color: #ffffff;
	transform: translateY(-2px);
}

@media ( max-width: 700px ) {
	.dl-giving__inner {
		flex-direction: column;
		gap: 36px;
	}
	.dl-giving__right {
		padding-top: 0;
		flex-direction: row;
		flex-wrap: wrap;
	}
}

@media ( max-width: 768px ) {
	.dl-hero__inner {
		grid-template-columns: 1fr;
		gap: 36px;
	}
	.dl-cover-img {
		max-width: 200px;
		margin: 0 auto;
	}
	.dl-platform-grid {
		grid-template-columns: 1fr;
		gap: 20px;
	}
}

/* ==========================================================================
   FREE EBOOK LANDING PAGE
   ========================================================================== */

/* ── Section 1: Hero offer ── */
.fe-hero {
	background-color: #f9f8f4;
	padding: 80px 0 90px;
}

.fe-hero__inner {
	display: grid;
	grid-template-columns: 1fr 1.2fr;
	align-items: center;
	gap: 72px;
	max-width: 1100px;
	margin: 0 auto;
	padding: 0 40px;
}

.fe-hero__cover-col {
	display: flex;
	justify-content: center;
}

.fe-cover-img {
	width: 100%;
	max-width: 340px;
	height: auto;
	display: block;
	box-shadow: 0 24px 60px rgba(0,0,0,0.18), 0 6px 18px rgba(0,0,0,0.10);
	border-radius: 4px;
}

.fe-hero__text-col {
	display: flex;
	flex-direction: column;
	gap: 20px;
}

.fe-eyebrow {
	font-family: 'proxima-nova', 'Nunito Sans', sans-serif;
	font-size: 13px;
	font-weight: 700;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	color: #c9a84c;
	margin: 0;
}

.fe-heading {
	font-family: 'minion-pro', 'Lora', Georgia, serif;
	font-size: 52px;
	font-weight: 700;
	line-height: 1.1;
	color: #1a1a1a;
	margin: 0;
}

.fe-book-name {
	font-family: 'minion-pro', 'Lora', Georgia, serif;
	font-size: 20px;
	color: #555555;
	margin: 0;
}

.fe-sub {
	font-family: 'minion-pro', 'Lora', Georgia, serif;
	font-size: 21px;
	line-height: 1.6;
	color: #333333;
	margin: 0;
}

/* Email form */
.fe-form {
	display: flex;
	flex-direction: column;
	gap: 12px;
	margin-top: 4px;
}

.fe-email-input {
	width: 100%;
	padding: 16px 20px;
	font-family: 'proxima-nova', 'Nunito Sans', sans-serif;
	font-size: 17px;
	border: 2px solid #d8d4cc;
	border-radius: 4px;
	background: #ffffff;
	color: #1a1a1a;
	outline: none;
	transition: border-color 0.2s ease;
	box-sizing: border-box;
}

.fe-email-input:focus {
	border-color: #c9a84c;
}

.fe-submit-btn {
	width: 100%;
	padding: 18px 24px;
	font-family: 'proxima-nova', 'Nunito Sans', sans-serif;
	font-size: 19px;
	font-weight: 700;
	letter-spacing: 0.02em;
	color: #1a1a1a;
	background-color: #c9a84c;
	border: none;
	border-radius: 4px;
	cursor: pointer;
	box-shadow: 0 4px 16px rgba(201,168,76,0.35);
	transition: background-color 0.2s ease, transform 0.2s ease;
}

.fe-submit-btn:hover {
	background-color: #a8893a;
	transform: translateY(-2px);
}

.fe-privacy {
	font-family: 'proxima-nova', 'Nunito Sans', sans-serif;
	font-size: 13px;
	color: #999999;
	margin: 0;
	text-align: center;
}

/* ── Section 2: Paperback offer ── */
.fe-paperback {
	background-color: #ffffff;
	padding: 80px 0 90px;
	border-top: 1px solid #efefef;
}

.fe-paperback__inner {
	max-width: 640px;
	margin: 0 auto;
	padding: 0 40px;
	text-align: center;
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 20px;
}

.fe-paperback__eyebrow {
	font-family: 'proxima-nova', 'Nunito Sans', sans-serif;
	font-size: 13px;
	font-weight: 700;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	color: #999999;
	margin: 0;
}

.fe-paperback__heading {
	font-family: 'minion-pro', 'Lora', Georgia, serif;
	font-size: 32px;
	font-weight: 700;
	color: #1a1a1a;
	margin: 0;
}

.fe-paperback__sub {
	font-family: 'minion-pro', 'Lora', Georgia, serif;
	font-size: 19px;
	line-height: 1.6;
	color: #555555;
	margin: 0;
}

.fe-paperback__btn {
	display: inline-block;
	font-family: 'proxima-nova', 'Nunito Sans', sans-serif;
	font-size: 17px;
	font-weight: 700;
	color: #1a1a1a;
	background-color: #c9a84c;
	text-decoration: none;
	padding: 16px 36px;
	border-radius: 4px;
	margin-top: 4px;
	transition: background-color 0.2s ease, transform 0.2s ease;
}

.fe-paperback__btn:hover {
	background-color: #a8893a;
	transform: translateY(-2px);
	color: #1a1a1a;
}

/* ── Responsive ── */
@media ( max-width: 900px ) {
	.fe-heading {
		font-size: 40px;
	}
	.fe-hero__inner {
		gap: 48px;
	}
}

@media ( max-width: 768px ) {
	.fe-hero__inner {
		grid-template-columns: 1fr;
		gap: 40px;
		padding: 0 24px;
		text-align: center;
	}

	.fe-cover-img {
		max-width: 220px;
		margin: 0 auto;
	}

	.fe-heading {
		font-size: 34px;
	}

	.fe-paperback__inner {
		padding: 0 24px;
	}
}

/* ==========================================================================
   BOOK PAGE
   ========================================================================== */

/* ── Section 1: Hero ── */
.book-hero {
	background-color: #f9f8f4;
	padding: 80px 0 90px;
}

.book-hero__inner {
	display: grid;
	grid-template-columns: 1fr 1fr;
	align-items: start;
	gap: 80px;
	max-width: 1100px;
	margin: 0 auto;
	padding: 0 40px;
}

/* Book cover */
.book-hero__cover-col {
	display: flex;
	justify-content: center;
	position: sticky;
	top: 40px;
}

.book-cover-img {
	width: 100%;
	max-width: 420px;
	height: auto;
	display: block;
	box-shadow: 0 24px 60px rgba(0,0,0,0.18), 0 6px 18px rgba(0,0,0,0.10);
	border-radius: 4px;
}

/* Text column */
.book-hero__text-col {
	display: flex;
	flex-direction: column;
	gap: 20px;
}

.book-tagline {
	font-family: 'proxima-nova', 'Nunito Sans', sans-serif;
	font-size: 13px;
	font-weight: 700;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	color: #c9a84c;
	margin: 0;
}

.book-title {
	font-family: 'minion-pro', 'Lora', Georgia, serif;
	font-size: 48px;
	font-weight: 700;
	line-height: 1.15;
	color: #1a1a1a;
	margin: 0;
}

.book-subtitle {
	font-family: 'minion-pro', 'Lora', Georgia, serif;
	font-size: 22px;
	font-weight: 400;
	font-style: italic;
	color: #555555;
	margin: 0;
}

.book-bullet-list {
	list-style: none;
	padding: 0;
	margin: 8px 0 0;
	display: flex;
	flex-direction: column;
	gap: 12px;
}

.book-bullet-list li {
	font-family: 'minion-pro', 'Lora', Georgia, serif;
	font-size: 18px;
	color: #333333;
	padding-left: 28px;
	position: relative;
	line-height: 1.5;
}

.book-bullet-list li::before {
	content: '✓';
	position: absolute;
	left: 0;
	color: #c9a84c;
	font-weight: 700;
}

/* Buy buttons */
.book-buy-buttons {
	display: flex;
	flex-wrap: wrap;
	gap: 16px;
	margin-top: 8px;
}

.book-btn {
	display: inline-block;
	font-family: 'proxima-nova', 'Nunito Sans', sans-serif;
	font-size: 17px;
	font-weight: 700;
	letter-spacing: 0.02em;
	text-decoration: none;
	padding: 16px 32px;
	border-radius: 4px;
	transition: background-color 0.2s ease, transform 0.2s ease, box-shadow 0.2s ease;
}

.book-btn--paperback {
	background-color: #c9a84c;
	color: #1a1a1a;
	box-shadow: 0 2px 8px rgba(201,168,76,0.3);
}

.book-btn--paperback:hover {
	background-color: #a8893a;
	transform: translateY(-2px);
	box-shadow: 0 6px 16px rgba(201,168,76,0.35);
	color: #1a1a1a;
}

.book-btn--kindle {
	background-color: #1a1a1a;
	color: #ffffff;
	box-shadow: 0 2px 8px rgba(0,0,0,0.15);
}

.book-btn--kindle:hover {
	background-color: #333333;
	transform: translateY(-2px);
	box-shadow: 0 6px 16px rgba(0,0,0,0.2);
	color: #ffffff;
}

.book-amazon-note {
	font-family: 'proxima-nova', 'Nunito Sans', sans-serif;
	font-size: 14px;
	color: #888888;
	margin: 0;
	font-style: italic;
}

/* ── Section 2: About ── */
.book-about {
	background-color: #ffffff;
	padding: 80px 0 90px;
	border-top: 1px solid #efefef;
}

.book-about__inner {
	max-width: 760px;
	margin: 0 auto;
	padding: 0 40px;
}

.book-about__heading {
	font-family: 'minion-pro', 'Lora', Georgia, serif;
	font-size: 36px;
	font-weight: 700;
	color: #1a1a1a;
	margin: 0 0 32px;
}

.book-about__text p {
	font-family: 'minion-pro', 'Lora', Georgia, serif;
	font-size: 21px;
	line-height: 1.7;
	color: #333333;
	margin-bottom: 1.4em;
}

.book-about__text p:last-child {
	margin-bottom: 0;
}

/* ── Section 3: Bottom CTA ── */
.book-cta {
	background-color: #f9f8f4;
	padding: 80px 0 90px;
	text-align: center;
	border-top: 1px solid #e8e4dc;
}

.book-cta__inner {
	max-width: 700px;
	margin: 0 auto;
	padding: 0 40px;
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 32px;
}

.book-cta__heading {
	font-family: 'minion-pro', 'Lora', Georgia, serif;
	font-size: 36px;
	font-weight: 700;
	color: #1a1a1a;
	margin: 0;
}

/* ── Responsive ── */
@media ( max-width: 900px ) {
	.book-title {
		font-size: 38px;
	}
	.book-hero__inner {
		gap: 48px;
	}
}

@media ( max-width: 768px ) {
	.book-hero__inner {
		grid-template-columns: 1fr;
		gap: 40px;
		text-align: center;
		padding: 0 24px;
	}

	.book-hero__cover-col {
		justify-content: center;
	}

	.book-cover-img {
		max-width: 240px;
	}

	.book-hero__text-col {
		align-items: center;
	}

	.book-title {
		font-size: 32px;
	}

	.book-bullet-list li {
		text-align: left;
	}

	.book-buy-buttons {
		justify-content: center;
	}

	.book-about__inner,
	.book-cta__inner {
		padding: 0 24px;
	}

	.book-about__heading,
	.book-cta__heading {
		font-size: 28px;
	}
}

/* ==========================================================================
   VIDEO PAGE
   ========================================================================== */

.video-page-wrap {
	max-width: 1100px;
	margin: 0 auto;
	padding: 64px 24px 100px;
}

.video-page-heading {
	text-align: center;
	margin-bottom: 12px;
}

/* ── Channel CTA buttons ── */
.video-channel-cta {
	text-align: center;
}

.video-channel-cta--top  { margin-bottom: 52px; }
.video-channel-cta--bottom { margin-top: 56px; }

.btn-youtube {
	display: inline-flex;
	align-items: center;
	gap: 10px;
	background-color: #ff0000;
	color: #ffffff !important;
	font-family: 'europa', 'DM Sans', sans-serif;
	font-weight: 700;
	font-size: 16px;
	letter-spacing: 0.3px;
	padding: 14px 28px;
	border-radius: 4px;
	text-decoration: none;
	transition: background-color 0.2s ease;
}

.btn-youtube svg {
	width: 22px;
	height: 22px;
	fill: #ffffff;
	flex-shrink: 0;
}

.btn-youtube:hover {
	background-color: #cc0000;
	color: #ffffff !important;
}

.btn-youtube--outline {
	background-color: transparent;
	color: #111111 !important;
	border: 2px solid #111111;
}

.btn-youtube--outline:hover {
	background-color: #111111;
	color: #ffffff !important;
}

/* ── Video grid ── */
.video-grid {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 40px 32px;
}

/* Centre the orphan cards on the last row when count isn't divisible by 3 */
.video-grid[data-count="2"],
.video-grid[data-count="5"] {
	grid-template-columns: repeat(6, 1fr);
}

.video-grid[data-count="2"] .video-card,
.video-grid[data-count="5"] .video-card:nth-child(-n+3) {
	grid-column: span 2;
}

.video-grid[data-count="5"] .video-card:nth-child(4) { grid-column: 2 / span 2; }
.video-grid[data-count="5"] .video-card:nth-child(5) { grid-column: 4 / span 2; }

.video-grid[data-count="2"] .video-card:nth-child(1) { grid-column: 2 / span 2; }
.video-grid[data-count="2"] .video-card:nth-child(2) { grid-column: 4 / span 2; }

/* ── Individual video card ── */
.video-card__thumb-wrap {
	display: block;
	position: relative;
	border-radius: 6px;
	overflow: hidden;
	aspect-ratio: 16 / 9;
	background-color: #000;
}

.video-card__thumb {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
	transition: transform 0.35s ease, opacity 0.2s ease;
}

.video-card__thumb-wrap:hover .video-card__thumb {
	transform: scale(1.04);
	opacity: 0.85;
}

.video-card__play-btn {
	position: absolute;
	top: 50%;
	left: 50%;
	transform: translate(-50%, -50%);
	width: 60px;
	height: 60px;
	background-color: rgba(0, 0, 0, 0.65);
	border-radius: 50%;
	display: flex;
	align-items: center;
	justify-content: center;
	transition: background-color 0.2s ease, transform 0.2s ease;
	pointer-events: none;
}

.video-card__thumb-wrap:hover .video-card__play-btn {
	background-color: #ff0000;
	transform: translate(-50%, -50%) scale(1.1);
}

.video-card__play-btn svg {
	width: 26px;
	height: 26px;
	fill: #ffffff;
	margin-left: 4px; /* optical centering for play triangle */
}

.video-card__body {
	padding-top: 14px;
}

.video-card__title {
	font-size: 17px;
	font-weight: 700;
	line-height: 1.4;
	margin: 0;
}

.video-card__title a {
	color: inherit;
	text-decoration: none;
}

.video-card__title a:hover {
	text-decoration: underline;
}

/* ── Bottom channel CTA block ── */
.video-cta-block {
	margin-top: 72px;
	padding: 52px 32px;
	background-color: #ffffff;
	border-radius: 8px;
	text-align: center;
}

.video-cta-block__label {
	font-family: 'europa', 'DM Sans', sans-serif;
	font-size: 20px;
	font-weight: 400;
	color: rgb(17, 17, 17);
	margin-bottom: 24px;
	line-height: 1.4;
}

.video-cta-block__btn {
	display: inline-flex;
	align-items: center;
	gap: 12px;
	background-color: #f8cd5f;
	color: #111111 !important;
	font-family: 'europa', 'DM Sans', sans-serif;
	font-weight: 700;
	font-size: 18px;
	letter-spacing: 0.2px;
	padding: 18px 36px;
	border-radius: 4px;
	text-decoration: none;
	transition: filter 0.2s ease, transform 0.15s ease;
}

.video-cta-block__btn:hover {
	filter: brightness(0.92);
	transform: translateY(-1px);
	color: #111111 !important;
}

.video-cta-block__btn svg {
	width: 22px;
	height: 22px;
	fill: currentColor;
	flex-shrink: 0;
}

.video-no-results {
	text-align: center;
	color: rgb(100, 100, 100);
	padding: 40px 0;
}

/* ==========================================================================
   HOMEPAGE — FRONT PAGE
   Full-width section backgrounds. Each section wrapper is 100% wide.
   Only the inner .container has max-width: 1110px.
   ========================================================================== */

/* ── Section 1: Hero — beige background ──────────────────────────────────── */

.hero-section {
	background-color: #f9f8f4;
	width: 100%;
	padding: 72px 0 60px;
	text-align: center;
	overflow: visible; /* lets book image bleed down into the white section */
}

.hero-heading {
	font-family: 'europa', 'DM Sans', sans-serif;
	font-size: 46px;
	font-weight: 700;
	line-height: 1.2;
	letter-spacing: -1px;
	color: rgb(17, 17, 17);
	max-width: 770px;
	margin: 0 auto 32px;
}

.hero-subtitle {
	font-family: 'minion-pro', 'Lora', serif;
	font-size: 20px;
	font-weight: 400;
	line-height: 1.6;
	color: rgb(17, 17, 17);
	max-width: 600px;
	margin: 0 auto 40px;
	text-align: center;
}

.hero-image {
	max-width: 260px;
	margin: 0 auto;
	position: relative;
	z-index: 10; /* sits above the white bio overlay (z-index:1) */
}

.hero-image img {
	width: 100%;
	height: auto;
	display: block;
}

/* Hero opt-in: centred below image, z-index keeps it above the white bio overlay */
.hero-optin {
	max-width: 480px;
	margin: 0 auto;
	position: relative;
	z-index: 5;
}

.hero-optin form {
	display: flex;
	align-items: stretch;
}

/* ── Section 2: Bio + Newsletter — pure white background ─────────────────── */

.bio-newsletter-section {
	background-color: #ffffff;
	width: 100%;
	margin-top: -300px;
	padding-top: 276px;
	padding-bottom: 100px;
	position: relative;
	z-index: 1;
}

.bio-newsletter-grid {
	display: flex;
	gap: 80px;
	align-items: flex-start;
}

/* Left column: bio */
.bio-col {
	flex: 1;
	min-width: 0;
}

.bio-heading {
	font-family: 'europa', 'DM Sans', sans-serif;
	font-size: 36px;
	font-weight: 700;
	line-height: 45px;
	letter-spacing: normal;
	color: rgb(17, 17, 17);
	margin-bottom: 24px;
}

.bio-text {
	font-family: 'minion-pro', 'Lora', serif;
	font-size: 21px;
	font-weight: 400;
	line-height: 34.65px;
	color: rgb(17, 17, 17);
}

.bio-text p {
	font-size: 21px;
	line-height: 34.65px;
	margin-bottom: 1.2em;
}

.bio-text p:last-child {
	margin-bottom: 0;
}

.bio-learn-more {
	color: #111111;
	text-decoration: underline;
	text-underline-offset: 3px;
	font-family: 'proxima-nova', 'Nunito Sans', sans-serif;
	font-size: 17px;
	font-weight: 600;
}

/* Right column: newsletter links */
.newsletter-col {
	flex: 0 0 360px;
	min-width: 0;
}

.newsletter-heading {
	font-family: 'europa', 'DM Sans', sans-serif;
	font-size: 21px;
	font-weight: 700;
	line-height: 31.5px;
	color: rgb(17, 17, 17);
	margin-bottom: 24px;
}

.newsletter-links {
	list-style: none;
}

.newsletter-links li {
	border-bottom: 1px solid rgba(17, 17, 17, 0.1);
	padding: 16px 0;
}

.newsletter-links li:first-child {
	border-top: 1px solid rgba(17, 17, 17, 0.1);
}

.newsletter-links li a {
	font-family: 'minion-pro', 'Lora', serif;
	font-size: 20px;
	font-weight: 400;
	line-height: 30px;
	color: rgb(17, 17, 17);
	/* Underlined — matches James Clear */
	text-decoration: underline;
	text-underline-offset: 3px;
	display: block;
}

.newsletter-links li a:hover {
	opacity: 0.7;
}

/* ── Section 3: CTA / Email course — beige background ───────────────────── */

.cta-section {
	background-color: #f9f8f4;
	width: 100%;
	padding: 96px 0 100px;
}

.cta-grid {
	display: flex;
	gap: 80px;
	align-items: center;
}

/* Left column: heading + bullet benefits */
.cta-bullets-col {
	flex: 1;
	min-width: 0;
}

.cta-heading {
	font-family: 'europa', 'DM Sans', sans-serif;
	font-size: 36px;
	font-weight: 700;
	line-height: 45px;
	letter-spacing: normal;
	color: rgb(17, 17, 17);
	margin-bottom: 32px;
}

.cta-bullet-list {
	list-style: none;
}

.cta-bullet-list li {
	font-family: 'europa', 'DM Sans', sans-serif;
	font-size: 20px;
	font-weight: 600;
	line-height: 30px;
	color: rgb(17, 17, 17);
	padding-left: 32px;
	position: relative;
	margin-bottom: 20px;
}

.cta-bullet-list li:last-child {
	margin-bottom: 0;
}

/* Gold tick icon */
.cta-bullet-list li::before {
	content: '✓';
	position: absolute;
	left: 0;
	top: 0;
	color: rgb(248, 205, 95);
	font-family: 'europa', 'DM Sans', sans-serif;
	font-weight: 700;
	font-size: 18px;
	line-height: 30px;
}

/* Right column: email form */
.cta-form-col {
	flex: 0 0 420px;
	min-width: 0;
}

.cta-disclaimer {
	font-family: 'minion-pro', 'Lora', serif;
	font-size: 15px;
	font-style: italic;
	font-weight: 400;
	line-height: 1.5;
	color: rgba(17, 17, 17, 0.5);
	margin-top: 14px;
}

/* ==========================================================================
   OPT-IN FORM — GLOBAL STYLES
   ========================================================================== */

.optin-form,
.optin-block {
	width: 100%;
}

.optin-form form,
.optin-block form,
.hero-optin form,
.cta-form-col form {
	display: flex;
	align-items: stretch;
	gap: 0;
}

.optin-form input[type="email"],
.optin-block input[type="email"],
.hero-optin input[type="email"],
.cta-form-col input[type="email"],
.optin-form input[type="text"],
.optin-block input[type="text"],
.wpcf7-form input[type="email"],
.wpcf7-form input[type="text"],
.wpcf7-form input[type="tel"] {
	font-family: 'europa', 'DM Sans', sans-serif;
	font-size: 18px;
	font-weight: 400;
	border: 0.74px solid rgb(248, 205, 95);
	border-radius: 0;
	padding: 15px 21px 11px;
	background-color: #ffffff;
	color: rgb(17, 17, 17);
	outline: none;
	flex: 1;
	min-width: 0;
	appearance: none;
}

.optin-form input[type="email"]:focus,
.optin-block input[type="email"]:focus,
.hero-optin input[type="email"]:focus,
.cta-form-col input[type="email"]:focus,
.optin-form input[type="text"]:focus,
.optin-block input[type="text"]:focus {
	border-color: #c9a84c;
	box-shadow: 0 0 0 2px rgba(201, 168, 76, 0.25);
}

.optin-form input[type="submit"],
.optin-block input[type="submit"],
.hero-optin button[type="submit"],
.cta-form-col button[type="submit"],
.optin-form button[type="submit"],
.optin-block button[type="submit"] {
	font-family: 'europa', 'DM Sans', sans-serif;
	font-size: 18px;
	font-weight: 400;
	background: transparent;
	border: 0.74px solid rgb(248, 205, 95);
	border-left: none;
	border-radius: 0;
	color: rgb(50, 1, 1);
	padding: 15px 24px 11px;
	cursor: pointer;
	white-space: nowrap;
	transition: background-color 0.2s ease;
	appearance: none;
}

.optin-form input[type="submit"]:hover,
.optin-block input[type="submit"]:hover,
.hero-optin button[type="submit"]:hover,
.cta-form-col button[type="submit"]:hover,
.optin-form button[type="submit"]:hover,
.optin-block button[type="submit"]:hover {
	background-color: rgba(248, 205, 95, 0.08);
}

/* Hero + CTA buttons — gold filled, matching book page */
.hero-optin button[type="submit"],
.cta-form-col button[type="submit"] {
	background-color: #c9a84c !important;
	border-color: #c9a84c !important;
	color: #1a1a1a !important;
	font-weight: 700;
	justify-content: center;
	padding: 18px 24px 15px;
}

.cta-form-col button[type="submit"] {
	width: 100%;
}

.hero-optin button[type="submit"]:hover,
.cta-form-col button[type="submit"]:hover {
	background-color: #a8893a !important;
}

/* CTA email input — full width on its own row */
.cta-form-col form {
	flex-direction: column;
}

.cta-form-col input[type="email"] {
	border-bottom: none;
	width: 100%;
}

/* Mid-article opt-in block */
.article-optin-block {
	margin: 48px 0;
	padding: 40px;
	border: 0.74px solid rgb(248, 205, 95);
	background-color: #ffffff;
}

.article-optin-block .optin-title {
	font-family: 'europa', 'DM Sans', sans-serif;
	font-size: 20px;
	font-weight: 700;
	line-height: 30px;
	color: rgb(17, 17, 17);
	margin-bottom: 8px;
}

.article-optin-block .optin-desc {
	font-family: 'minion-pro', 'Lora', serif;
	font-size: 18px;
	line-height: 1.6;
	color: rgb(17, 17, 17);
	margin-bottom: 20px;
}

.article-optin-block form {
	display: flex;
	gap: 0;
	align-items: stretch;
}

/* ==========================================================================
   SINGLE POST / ARTICLE
   ========================================================================== */

.single-post-wrap {
	padding-top: 64px;
	padding-bottom: 80px;
}

.single-post-layout {
	display: flex;
	gap: 60px;
	align-items: flex-start;
}

.single-post-content {
	flex: 0 0 730px;
	max-width: 730px;
	min-width: 0;
}

/* Post title */
.post-title {
	font-family: 'europa', 'DM Sans', sans-serif;
	font-size: 46px;
	font-weight: 700;
	line-height: 57.5px;
	letter-spacing: -1.5px;
	color: rgb(17, 17, 17);
	margin-bottom: 16px;
}

/* Byline */
.post-byline {
	font-family: 'minion-pro', 'Lora', serif;
	font-size: 16px;
	font-style: italic;
	color: rgb(17, 17, 17);
	margin-bottom: 48px;
	display: flex;
	align-items: center;
	gap: 8px;
}

.post-byline .byline-author {
	font-style: normal;
	font-variant: small-caps;
}

.post-byline .byline-sep {
	color: rgba(17, 17, 17, 0.4);
}

.post-byline .byline-cat {
	font-style: normal;
	font-variant: small-caps;
}

.post-byline a {
	color: rgb(17, 17, 17);
	text-decoration: none;
}

/* Entry content */
.entry-content {
	font-family: 'minion-pro', 'Lora', serif;
	font-size: 21px;
	font-weight: 400;
	line-height: 34.65px;
	color: rgb(17, 17, 17);
}

.entry-content p {
	margin-bottom: 1.4em;
}

.entry-content h2 {
	font-family: 'europa', 'DM Sans', sans-serif;
	font-size: 36px;
	font-weight: 700;
	line-height: 45px;
	margin-top: 56px;
	margin-bottom: 24px;
}

.entry-content h3 {
	font-family: 'europa', 'DM Sans', sans-serif;
	font-size: 28px;
	font-weight: 700;
	line-height: 1.4;
	margin-top: 48px;
	margin-bottom: 20px;
}

.entry-content h4 {
	font-family: 'europa', 'DM Sans', sans-serif;
	font-size: 21px;
	font-weight: 700;
	line-height: 31.5px;
	margin-top: 40px;
	margin-bottom: 16px;
}

.entry-content ul,
.entry-content ol {
	margin-bottom: 1.4em;
	padding-left: 0;
}

.entry-content ul li,
.entry-content ol li {
	font-family: 'europa', 'DM Sans', sans-serif;
	font-size: 20px;
	font-weight: 600;
	line-height: 30px;
	color: rgb(17, 17, 17);
	padding-left: 28px;
	position: relative;
	margin-bottom: 8px;
}

.entry-content ul li::before {
	content: '';
	position: absolute;
	left: 0;
	top: 11px;
	width: 8px;
	height: 8px;
	background-color: rgb(248, 205, 95);
	border-radius: 50%;
}

.entry-content ol {
	counter-reset: ol-counter;
}

.entry-content ol li {
	counter-increment: ol-counter;
}

.entry-content ol li::before {
	content: counter(ol-counter) '.';
	position: absolute;
	left: 0;
	font-family: 'europa', 'DM Sans', sans-serif;
	font-size: 18px;
	font-weight: 600;
	color: rgb(248, 205, 95);
}

.entry-content blockquote {
	margin: 40px 0;
}

.entry-content img {
	margin: 32px auto;
	max-width: 100%;
}

.entry-content a {
	color: rgb(17, 17, 17);
	text-decoration: underline;
}

.entry-content a:hover {
	opacity: 0.7;
}

/* Sidebar */
.single-post-sidebar {
	flex: 0 0 220px;
	width: 220px;
	position: sticky;
	top: 40px;
}

/* ==========================================================================
   SIDEBAR — ABOUT BLOCK
   ========================================================================== */

.sidebar-about {
	padding: 0;
}

.sidebar-about-heading {
	font-family: 'europa', 'DM Sans', sans-serif;
	font-size: 12px;
	font-weight: 700;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	color: rgb(17, 17, 17);
	margin-bottom: 16px;
}

.sidebar-about-image {
	width: 80px;
	height: 80px;
	border-radius: 50%;
	object-fit: cover;
	object-position: center 15%;
	margin-bottom: 16px;
}

.sidebar-about-text {
	font-family: 'minion-pro', 'Lora', serif;
	font-size: 16px;
	font-weight: 400;
	line-height: 1.6;
	color: rgb(17, 17, 17);
}

.sidebar-about-text p {
	font-size: 16px;
	line-height: 1.6;
	margin-bottom: 0.8em;
}

/* ==========================================================================
   ARTICLES PAGE
   ========================================================================== */

.articles-page-wrap {
	padding-top: 64px;
	padding-bottom: 80px;
}

.articles-page-heading {
	font-family: 'europa', 'DM Sans', sans-serif;
	font-size: 46px;
	font-weight: 700;
	line-height: 57.5px;
	letter-spacing: -1.5px;
	color: rgb(17, 17, 17);
	margin-bottom: 48px;
}

.articles-list {
	list-style: none;
	max-width: 770px;
}

.articles-list li {
	border-bottom: 1px solid rgba(17, 17, 17, 0.1);
	padding: 24px 0;
}

.articles-list li:first-child {
	border-top: 1px solid rgba(17, 17, 17, 0.1);
}

.articles-list li a {
	font-family: 'europa', 'DM Sans', sans-serif;
	font-size: 20px;
	font-weight: 600;
	line-height: 30px;
	color: rgb(17, 17, 17);
	text-decoration: none;
}

.articles-list li a:hover {
	opacity: 0.7;
}

.articles-list-meta {
	font-family: 'minion-pro', 'Lora', serif;
	font-size: 16px;
	color: rgba(17, 17, 17, 0.5);
	margin-top: 4px;
}

/* ==========================================================================
   STANDARD PAGE
   ========================================================================== */

.page-wrap {
	padding-top: 64px;
	padding-bottom: 80px;
}

.page-title {
	font-family: 'europa', 'DM Sans', sans-serif;
	font-size: 46px;
	font-weight: 700;
	line-height: 57.5px;
	letter-spacing: -1.5px;
	color: rgb(17, 17, 17);
	margin-bottom: 48px;
}

.page-content {
	font-family: 'minion-pro', 'Lora', serif;
	font-size: 20px;
	font-weight: 400;
	line-height: 30px;
	color: rgb(17, 17, 17);
	max-width: 770px;
}

.page-content p {
	font-size: 20px;
	line-height: 30px;
	margin-bottom: 1.4em;
}

.page-content h2 {
	margin-top: 56px;
	margin-bottom: 24px;
}

.page-content a {
	color: rgb(17, 17, 17);
	text-decoration: underline;
}

/* ==========================================================================
   404 PAGE
   ========================================================================== */

.error-404-wrap {
	padding-top: 80px;
	padding-bottom: 80px;
	text-align: center;
}

.error-404-title {
	font-family: 'europa', 'DM Sans', sans-serif;
	font-size: 120px;
	font-weight: 700;
	line-height: 1;
	color: rgb(17, 17, 17);
	opacity: 0.08;
	margin-bottom: 0;
}

.error-404-heading {
	font-family: 'europa', 'DM Sans', sans-serif;
	font-size: 36px;
	font-weight: 700;
	line-height: 45px;
	color: rgb(17, 17, 17);
	margin-bottom: 16px;
}

.error-404-desc {
	font-family: 'minion-pro', 'Lora', serif;
	font-size: 21px;
	line-height: 34.65px;
	color: rgb(17, 17, 17);
	margin-bottom: 40px;
}

.btn {
	display: inline-block;
	font-family: 'europa', 'DM Sans', sans-serif;
	font-size: 18px;
	font-weight: 400;
	color: rgb(50, 1, 1);
	background: transparent;
	border: 0.74px solid rgb(248, 205, 95);
	border-radius: 0;
	padding: 15px 32px 11px;
	text-decoration: none;
	cursor: pointer;
	transition: background-color 0.2s ease;
}

.btn:hover {
	background-color: rgba(248, 205, 95, 0.08);
	opacity: 1;
}

/* ==========================================================================
   SEARCH PAGE
   ========================================================================== */

.search-wrap {
	padding-top: 64px;
	padding-bottom: 80px;
}

.search-title {
	font-family: 'europa', 'DM Sans', sans-serif;
	font-size: 36px;
	font-weight: 700;
	line-height: 45px;
	color: rgb(17, 17, 17);
	margin-bottom: 40px;
}

.search-form {
	display: flex;
	max-width: 520px;
	margin-bottom: 56px;
}

.search-form input[type="search"] {
	font-family: 'europa', 'DM Sans', sans-serif;
	font-size: 18px;
	font-weight: 400;
	border: 0.74px solid rgb(248, 205, 95);
	border-radius: 0;
	padding: 15px 21px 11px;
	background-color: #ffffff;
	color: rgb(17, 17, 17);
	outline: none;
	flex: 1;
	min-width: 0;
	appearance: none;
}

.search-form button[type="submit"] {
	font-family: 'europa', 'DM Sans', sans-serif;
	font-size: 18px;
	font-weight: 400;
	background: transparent;
	border: 0.74px solid rgb(248, 205, 95);
	border-left: none;
	border-radius: 0;
	color: rgb(50, 1, 1);
	padding: 15px 24px 11px;
	cursor: pointer;
}

.search-result {
	padding: 24px 0;
	border-bottom: 1px solid rgba(17, 17, 17, 0.1);
}

.search-result:first-child {
	border-top: 1px solid rgba(17, 17, 17, 0.1);
}

.search-result-title {
	font-family: 'europa', 'DM Sans', sans-serif;
	font-size: 20px;
	font-weight: 600;
	line-height: 30px;
	margin-bottom: 8px;
}

.search-result-title a {
	color: rgb(17, 17, 17);
	text-decoration: none;
}

.search-result-title a:hover {
	opacity: 0.7;
}

.search-result-excerpt {
	font-family: 'minion-pro', 'Lora', serif;
	font-size: 18px;
	line-height: 1.6;
	color: rgba(17, 17, 17, 0.7);
}

.no-results-msg {
	font-family: 'minion-pro', 'Lora', serif;
	font-size: 21px;
	line-height: 34.65px;
	color: rgb(17, 17, 17);
}

/* ==========================================================================
   CONTACT FORM — CF7 / WPFORMS RESET
   ========================================================================== */

/* Remove all default plugin styling */
.wpcf7-form,
.wpforms-form {
	all: unset;
	display: block;
}

.wpcf7-form br {
	display: none;
}

.wpcf7-form p,
.wpforms-form .wpforms-field {
	margin-bottom: 20px;
}

.wpcf7-form label,
.wpforms-form label {
	font-family: 'europa', 'DM Sans', sans-serif;
	font-size: 14px;
	font-weight: 600;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: rgb(17, 17, 17);
	display: block;
	margin-bottom: 8px;
}

.wpcf7-form input[type="text"],
.wpcf7-form input[type="email"],
.wpcf7-form input[type="tel"],
.wpcf7-form input[type="url"],
.wpcf7-form textarea,
.wpforms-form input[type="text"],
.wpforms-form input[type="email"],
.wpforms-form input[type="tel"],
.wpforms-form input[type="url"],
.wpforms-form textarea {
	font-family: 'europa', 'DM Sans', sans-serif;
	font-size: 18px;
	font-weight: 400;
	border: 0.74px solid rgb(248, 205, 95);
	border-radius: 0;
	padding: 15px 21px 11px;
	background-color: #ffffff;
	color: rgb(17, 17, 17);
	outline: none;
	width: 100%;
	display: block;
	appearance: none;
	box-shadow: none;
}

.wpcf7-form textarea,
.wpforms-form textarea {
	min-height: 140px;
	resize: vertical;
	line-height: 1.6;
}

.wpcf7-form input[type="submit"],
.wpcf7-form .wpcf7-submit,
.wpforms-form input[type="submit"],
.wpforms-form .wpforms-submit {
	font-family: 'europa', 'DM Sans', sans-serif;
	font-size: 18px;
	font-weight: 400;
	background: transparent;
	border: 0.74px solid rgb(248, 205, 95);
	border-radius: 0;
	color: rgb(50, 1, 1);
	padding: 15px 32px 11px;
	cursor: pointer;
	transition: background-color 0.2s ease;
	appearance: none;
	box-shadow: none;
}

.wpcf7-form input[type="submit"]:hover,
.wpcf7-form .wpcf7-submit:hover,
.wpforms-form input[type="submit"]:hover,
.wpforms-form .wpforms-submit:hover {
	background-color: rgba(248, 205, 95, 0.08);
}

/* CF7 validation */
.wpcf7-not-valid {
	border-color: #e00 !important;
}

.wpcf7-not-valid-tip {
	font-family: 'europa', 'DM Sans', sans-serif;
	font-size: 13px;
	color: #e00;
	display: block;
	margin-top: 4px;
}

.wpcf7-response-output {
	font-family: 'europa', 'DM Sans', sans-serif;
	font-size: 16px;
	border: none !important;
	margin: 16px 0 0 !important;
	padding: 0 !important;
}

/* WPForms specific resets */
.wpforms-container {
	padding: 0 !important;
}

.wpforms-form .wpforms-field-container {
	background: transparent !important;
}

/* ==========================================================================
   DONATE BUTTON
   ========================================================================== */

.donate-wrap {
	margin: 40px 0;
}

.donate-btn {
	display: inline-block;
	font-family: 'europa', 'DM Sans', sans-serif;
	font-size: 18px;
	font-weight: 400;
	color: rgb(50, 1, 1);
	background: transparent;
	border: 0.74px solid rgb(248, 205, 95);
	border-radius: 0;
	padding: 15px 40px 11px;
	text-decoration: none;
	cursor: pointer;
	transition: background-color 0.2s ease;
}

.donate-btn:hover {
	background-color: rgba(248, 205, 95, 0.08);
	opacity: 1;
}

/* ==========================================================================
   WOOCOMMERCE — FULL OVERRIDE
   ========================================================================== */

/* Remove WC default styles */
.woocommerce,
.woocommerce-page {
	font-family: 'minion-pro', 'Lora', serif;
	font-size: 21px;
	color: rgb(17, 17, 17);
}

/* Shop page */
.woocommerce ul.products {
	margin: 0;
	padding: 0;
	list-style: none;
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 40px;
}

.woocommerce ul.products li.product {
	margin: 0;
	padding: 0;
	float: none !important;
	width: auto !important;
}

.woocommerce ul.products li.product .woocommerce-loop-product__title {
	font-family: 'europa', 'DM Sans', sans-serif;
	font-size: 20px;
	font-weight: 700;
	line-height: 1.4;
	color: rgb(17, 17, 17);
	padding: 12px 0 0;
}

.woocommerce ul.products li.product .price {
	font-family: 'minion-pro', 'Lora', serif;
	font-size: 18px;
	color: rgb(17, 17, 17);
}

/* Product buttons */
.woocommerce a.button,
.woocommerce button.button,
.woocommerce input.button,
.woocommerce #respond input#submit,
.woocommerce a.button.alt,
.woocommerce button.button.alt,
.woocommerce input.button.alt {
	font-family: 'europa', 'DM Sans', sans-serif !important;
	font-size: 18px !important;
	font-weight: 400 !important;
	background: transparent !important;
	border: 0.74px solid rgb(248, 205, 95) !important;
	border-radius: 0 !important;
	color: rgb(50, 1, 1) !important;
	padding: 12px 24px 10px !important;
	text-decoration: none !important;
	box-shadow: none !important;
	text-shadow: none !important;
	transition: background-color 0.2s ease !important;
}

.woocommerce a.button:hover,
.woocommerce button.button:hover,
.woocommerce input.button:hover,
.woocommerce #respond input#submit:hover,
.woocommerce a.button.alt:hover,
.woocommerce button.button.alt:hover,
.woocommerce input.button.alt:hover {
	background-color: rgba(248, 205, 95, 0.08) !important;
	color: rgb(50, 1, 1) !important;
}

/* WC headings */
.woocommerce .woocommerce-ordering select,
.woocommerce-page .woocommerce-ordering select {
	font-family: 'europa', 'DM Sans', sans-serif;
	font-size: 16px;
	border: 0.74px solid rgb(248, 205, 95);
	border-radius: 0;
	padding: 8px 16px;
	background-color: #ffffff;
	color: rgb(17, 17, 17);
	outline: none;
	appearance: none;
}

/* WC forms */
.woocommerce form .form-row input.input-text,
.woocommerce form .form-row textarea {
	font-family: 'europa', 'DM Sans', sans-serif;
	font-size: 18px;
	font-weight: 400;
	border: 0.74px solid rgb(248, 205, 95) !important;
	border-radius: 0 !important;
	padding: 15px 21px 11px !important;
	background-color: #ffffff !important;
	color: rgb(17, 17, 17);
	outline: none;
	box-shadow: none !important;
}

.woocommerce form .form-row label {
	font-family: 'europa', 'DM Sans', sans-serif;
	font-size: 14px;
	font-weight: 600;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: rgb(17, 17, 17);
}

/* WC cart / checkout table */
.woocommerce table.shop_table {
	border: none;
	border-radius: 0;
}

.woocommerce table.shop_table th {
	font-family: 'europa', 'DM Sans', sans-serif;
	font-size: 14px;
	font-weight: 700;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: rgb(17, 17, 17);
	border-bottom: 1px solid rgba(17, 17, 17, 0.15);
	padding: 12px 0;
	background: transparent;
}

.woocommerce table.shop_table td {
	font-family: 'minion-pro', 'Lora', serif;
	font-size: 18px;
	border-bottom: 1px solid rgba(17, 17, 17, 0.08);
	padding: 16px 0;
}

/* WC notices */
.woocommerce-message,
.woocommerce-error,
.woocommerce-info {
	font-family: 'europa', 'DM Sans', sans-serif;
	font-size: 16px;
	border-top: 3px solid rgb(248, 205, 95) !important;
	background-color: rgba(248, 205, 95, 0.08) !important;
	border-radius: 0 !important;
	color: rgb(17, 17, 17) !important;
}

/* Remove WC breadcrumb default */
.woocommerce .woocommerce-breadcrumb {
	font-family: 'minion-pro', 'Lora', serif;
	font-size: 16px;
	color: rgba(17, 17, 17, 0.5);
	margin-bottom: 32px;
}

/* WC product images */
.woocommerce div.product div.images {
	margin-bottom: 40px;
}

/* WC product title */
.woocommerce div.product .product_title {
	font-family: 'europa', 'DM Sans', sans-serif;
	font-size: 36px;
	font-weight: 700;
	line-height: 45px;
	color: rgb(17, 17, 17);
	margin-bottom: 16px;
}

/* WC product price */
.woocommerce div.product p.price,
.woocommerce div.product span.price {
	font-family: 'minion-pro', 'Lora', serif;
	font-size: 24px;
	color: rgb(17, 17, 17);
	margin-bottom: 24px;
}

/* WC product description */
.woocommerce div.product .woocommerce-product-details__short-description {
	font-family: 'minion-pro', 'Lora', serif;
	font-size: 20px;
	line-height: 30px;
	margin-bottom: 32px;
}

/* WC rating */
.woocommerce .star-rating span::before,
.woocommerce .star-rating::before {
	color: rgb(248, 205, 95);
}

/* WC sale badge */
.woocommerce span.onsale {
	background-color: rgb(248, 205, 95);
	color: rgb(17, 17, 17);
	font-family: 'europa', 'DM Sans', sans-serif;
	font-size: 14px;
	font-weight: 700;
	border-radius: 0;
	min-height: auto;
	min-width: auto;
	padding: 4px 10px;
	line-height: 1.4;
}

/* ==========================================================================
   UTILITY
   ========================================================================== */

.sr-only {
	position: absolute;
	width: 1px;
	height: 1px;
	padding: 0;
	margin: -1px;
	overflow: hidden;
	clip: rect(0, 0, 0, 0);
	white-space: nowrap;
	border: 0;
}

.text-center { text-align: center; }
.text-left   { text-align: left; }

/* ==========================================================================
   RESPONSIVE — TABLET (≤ 1024px)
   ========================================================================== */

@media (max-width: 1024px) {
	/* Header: hide centre nav, show hamburger */
	.site-nav {
		display: none;
	}

	.header-about {
		display: none;
	}

	.menu-toggle {
		display: flex;
	}

	/* Single post: stack */
	.single-post-layout {
		flex-direction: column;
		gap: 40px;
	}

	.single-post-content {
		flex: none;
		max-width: 100%;
	}

	.single-post-sidebar {
		flex: none;
		width: 100%;
		position: static;
	}

	/* WC products grid */
	.woocommerce ul.products {
		grid-template-columns: repeat(2, 1fr);
		gap: 32px;
	}

	/* Video grid: 2 columns on tablet */
	.video-grid,
	.video-grid[data-count="2"],
	.video-grid[data-count="5"] {
		grid-template-columns: repeat(2, 1fr);
	}

	.video-grid[data-count="2"] .video-card,
	.video-grid[data-count="5"] .video-card,
	.video-grid[data-count="5"] .video-card:nth-child(4),
	.video-grid[data-count="5"] .video-card:nth-child(5),
	.video-grid[data-count="2"] .video-card:nth-child(1),
	.video-grid[data-count="2"] .video-card:nth-child(2) {
		grid-column: span 1;
	}

	/* Homepage two-column sections: stack on tablet */
	.bio-newsletter-grid,
	.cta-grid {
		flex-direction: column;
		gap: 48px;
	}

	.newsletter-col,
	.cta-form-col {
		flex: none;
		width: 100%;
	}
}

/* ==========================================================================
   RESPONSIVE — MOBILE (≤ 768px)
   ========================================================================== */

@media (max-width: 768px) {
	/* Video grid: single column on mobile */
	.video-grid,
	.video-grid[data-count="2"],
	.video-grid[data-count="5"] {
		grid-template-columns: 1fr;
	}

	body {
		font-size: 18px;
		line-height: 1.65;
	}

	p {
		font-size: 18px;
		line-height: 1.65;
	}

	h1,
	.post-title,
	.hero-heading,
	.page-title,
	.articles-page-heading {
		font-size: 32px;
		line-height: 1.25;
		letter-spacing: -0.5px;
	}

	h2 {
		font-size: 26px;
		line-height: 1.3;
	}

	h4 {
		font-size: 18px;
		line-height: 1.4;
	}

	.site-header {
		padding: 24px 0;
	}

	.hero-section {
		padding: 56px 0 60px;
	}

	.hero-heading {
		font-size: 32px;
		line-height: 1.25;
		letter-spacing: -0.5px;
	}

	.hero-image {
		max-width: 200px;
	}

	.bio-newsletter-section,
	.cta-section {
		padding: 56px 0 60px;
	}

	.bio-heading,
	.cta-heading {
		font-size: 26px;
		line-height: 1.3;
	}

	.bio-text p {
		font-size: 18px;
		line-height: 1.65;
	}

	.single-post-wrap {
		padding-top: 40px;
	}

	.entry-content {
		font-size: 18px;
		line-height: 1.65;
	}

	.entry-content h2 {
		font-size: 26px;
		line-height: 1.3;
	}

	.optin-form form,
	.optin-block form,
	.hero-optin form,
	.cta-form-col form,
	.article-optin-block form {
		flex-direction: column;
	}

	.optin-form input[type="submit"],
	.optin-block input[type="submit"],
	.hero-optin button[type="submit"],
	.cta-form-col button[type="submit"],
	.optin-form button[type="submit"],
	.optin-block button[type="submit"],
	.article-optin-block input[type="submit"],
	.article-optin-block button[type="submit"] {
		border-left: 0.74px solid rgb(248, 205, 95);
		border-top: none;
		width: 100%;
		text-align: center;
		padding: 14px 24px;
	}

	.article-optin-block {
		padding: 24px;
	}

	/* WC */
	.woocommerce ul.products {
		grid-template-columns: 1fr;
		gap: 32px;
	}

	.footer-product-link img {
		height: 70px;
	}

	.footer-products {
		gap: 16px;
	}
}

/* ==========================================================================
   RESPONSIVE — SMALL MOBILE (≤ 390px)
   ========================================================================== */

@media (max-width: 390px) {
	.container,
	.container--narrow {
		padding-left: 18px;
		padding-right: 18px;
	}

	.site-header .container {
		padding-left: 18px;
		padding-right: 18px;
	}

	h1,
	.post-title,
	.hero-heading,
	.page-title,
	.articles-page-heading {
		font-size: 28px;
		line-height: 1.2;
	}

}

/* ==========================================================================
   TOUCH TARGETS
   ========================================================================== */

a,
button,
input[type="submit"],
input[type="button"] {
	min-height: 44px;
	display: inline-flex;
	align-items: center;
}

/* Override for block-level elements */
p a,
.entry-content a,
.footer-legal a,
.nav-menu li a,
.mobile-nav-menu li a,
.site-title,
.footer-site-title {
	min-height: auto;
	display: inline;
}

.nav-menu li a,
.mobile-nav-menu li a,
.header-about a {
	display: inline-block;
	min-height: 44px;
	display: flex;
	align-items: center;
}


/* ==========================================================================
   CONTACT PAGE  —  .cf-*
   ========================================================================== */

.cf-section {
	background-color: #ffffff;
	padding: 80px 0 120px;
}

.cf-col {
	max-width: 660px;
	margin: 0 auto;
	padding: 0 27px;
}

.cf-heading {
	font-family: 'proxima-nova', 'Nunito Sans', sans-serif;
	font-size: 36px;
	font-weight: 700;
	color: #111111;
	margin: 0 0 20px;
}

.cf-intro {
	font-family: 'freight-text-pro', Georgia, serif;
	font-size: 21px;
	line-height: 1.65;
	color: #333333;
	margin: 0 0 48px;
}

.cf-form {
	display: flex;
	flex-direction: column;
	gap: 24px;
}

.cf-field {
	display: flex;
	flex-direction: column;
	gap: 8px;
}

.cf-label {
	font-family: 'proxima-nova', 'Nunito Sans', sans-serif;
	font-size: 13px;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.07em;
	color: #111111;
}

.cf-input,
.cf-textarea {
	font-family: 'freight-text-pro', Georgia, serif;
	font-size: 18px;
	color: #111111;
	background-color: #ffffff;
	border: 1px solid #d0ccc4;
	border-radius: 3px;
	padding: 12px 16px;
	width: 100%;
	box-sizing: border-box;
	transition: border-color 0.15s ease;
}

.cf-input:focus,
.cf-textarea:focus {
	outline: none;
	border-color: #c9a84c;
}

.cf-textarea {
	resize: vertical;
	min-height: 160px;
}

.cf-submit {
	align-self: flex-start;
	font-family: 'proxima-nova', 'Nunito Sans', sans-serif;
	font-size: 16px;
	font-weight: 700;
	color: #1a1a1a;
	background-color: #c9a84c;
	border: none;
	border-radius: 3px;
	padding: 14px 32px;
	cursor: pointer;
	transition: background-color 0.15s ease;
}

.cf-submit:hover {
	background-color: #a8893a;
}

.cf-success {
	font-family: 'freight-text-pro', Georgia, serif;
	font-size: 20px;
	line-height: 1.6;
	color: #2a6a2a;
	background-color: #f0faf0;
	border: 1px solid #b8ddb8;
	border-radius: 3px;
	padding: 24px 28px;
}

.cf-error {
	font-family: 'proxima-nova', 'Nunito Sans', sans-serif;
	font-size: 15px;
	color: #a00000;
	background-color: #fff5f5;
	border: 1px solid #f0b8b8;
	border-radius: 3px;
	padding: 14px 18px;
	margin-bottom: 8px;
}


/* ==========================================================================
   COMMUNITY PAGE  —  .cm-*
   ========================================================================== */

.is-community-page .site-header {
	background-color: #0a1020;
	border-bottom: 1px solid rgba(255, 255, 255, 0.06);
}

.is-community-page .site-header a,
.is-community-page .nav-menu a,
.is-community-page .site-title {
	color: #e5e7eb !important;
}

.cm-wrap {
	background: radial-gradient(ellipse at top, #0f172a 0%, #020617 100%);
	min-height: 100vh;
	padding: 80px 60px;
}

/* Hero */
.cm-hero {
	max-width: 820px;
	margin: 0 auto 72px;
	text-align: center;
}

.cm-hero__intro {
	font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
	font-size: 18px;
	line-height: 1.75;
	color: rgba(229, 231, 235, 0.65);
	margin: 0 0 36px;
}

.cm-headline {
	font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
	font-size: 52px;
	font-weight: 300;
	line-height: 1.15;
	color: #e5e7eb;
	margin: 0;
}

/* Expression cards */
.cm-expressions {
	display: flex;
	gap: 32px;
	max-width: 1100px;
	margin: 0 auto 80px;
}

.cm-card {
	flex: 1;
	border: 1px solid rgba(255, 255, 255, 0.08);
	border-radius: 24px;
	padding: 40px;
	background: rgba(255, 255, 255, 0.04);
	backdrop-filter: blur(20px);
	box-shadow: 0 10px 40px rgba(0, 0, 0, 0.3);
	transition: transform 0.3s ease, border-color 0.3s ease;
}

.cm-card:hover {
	transform: translateY(-4px);
	border-color: rgba(255, 255, 255, 0.2);
}

.cm-card__eyebrow {
	font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
	font-size: 11px;
	font-weight: 600;
	text-transform: uppercase;
	letter-spacing: 0.12em;
	color: rgba(229, 231, 235, 0.4);
	margin: 0 0 10px;
}

.cm-card__heading {
	font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
	font-size: 28px;
	font-weight: 500;
	color: #e5e7eb;
	margin: 0 0 24px;
}

.cm-card__body {
	font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
	font-size: 16px;
	line-height: 1.8;
	color: rgba(229, 231, 235, 0.7);
	margin: 0 0 16px;
}

.cm-card__body--accent {
	color: #e5e7eb;
	font-style: italic;
	margin-top: 8px;
}

/* Philosophy */
.cm-philosophy {
	max-width: 720px;
	margin: 0 auto 72px;
	text-align: center;
	border-top: 1px solid rgba(255, 255, 255, 0.08);
	padding-top: 56px;
}

.cm-philosophy__text {
	font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
	font-size: 18px;
	line-height: 1.8;
	color: rgba(229, 231, 235, 0.75);
	margin: 0 0 20px;
}

.cm-philosophy__text:last-child {
	color: #e5e7eb;
	font-style: italic;
}

/* Invitation */
.cm-join {
	text-align: center;
	max-width: 600px;
	margin: 0 auto;
	padding-top: 20px;
}

.cm-join__text {
	font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
	font-size: 22px;
	font-weight: 300;
	line-height: 1.65;
	color: rgba(229, 231, 235, 0.85);
	margin: 0 0 16px;
}

.cm-join__contact {
	font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
	font-size: 16px;
	font-weight: 300;
	color: rgba(229, 231, 235, 0.55);
	margin: 0 0 32px;
}

.cm-join__actions {
	display: flex;
	gap: 16px;
	justify-content: center;
	flex-wrap: wrap;
}

.cm-join__btn {
	display: inline-block;
	font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
	font-size: 15px;
	font-weight: 500;
	padding: 16px 36px;
	border-radius: 999px;
	background: linear-gradient(135deg, #6366f1, #22d3ee);
	color: #fff;
	text-decoration: none;
	transition: opacity 0.3s ease, transform 0.3s ease;
}

.cm-join__btn:hover {
	opacity: 0.9;
	transform: scale(1.03);
	color: #fff;
}

.cm-join__btn--outline {
	background: transparent;
	border: 1px solid rgba(255, 255, 255, 0.25);
	color: rgba(229, 231, 235, 0.8);
}

.cm-join__btn--outline:hover {
	border-color: rgba(255, 255, 255, 0.5);
	color: #fff;
	opacity: 1;
}

/* Responsive */
@media ( max-width: 860px ) {
	.cm-wrap { padding: 60px 32px; }
	.cm-headline { font-size: 36px; }
	.cm-expressions { flex-direction: column; }
}

/* ==========================================================================
   FLOW PAGE  —  .fl-*  |  dark warm charcoal
   ========================================================================== */

/* Pull header into the dark theme on this page */
.is-flow-page .site-header {
	background-color: #0a1020;
	border-bottom: 1px solid rgba(255, 255, 255, 0.06);
}

.is-flow-page .site-header a,
.is-flow-page .nav-menu a,
.is-flow-page .site-title {
	color: #e5e7eb !important;
}

/* Full-width split wrapper */
.fl-wrap {
	display: flex;
	min-height: calc(100vh - 80px);
	background: radial-gradient(ellipse at top, #0f172a 0%, #020617 100%);
}

/* ── Left panel ── */
.fl-left {
	flex: 1;
	background-color: transparent;
	padding: 60px;
	display: flex;
	align-items: stretch;
}

.fl-left__inner {
	width: 100%;
	display: flex;
	flex-direction: column;
}

.fl-center {
	width: 380px;
	flex-shrink: 0;
	background-color: transparent;
	align-self: flex-start;
	padding-top: 60px;
	overflow: hidden;
}

.fl-center__photo {
	width: 100%;
	height: auto;
	display: block;
	opacity: 0.9;
}

.fl-center__photo--rainbow {
	margin-top: 16px;
}

.fl-headline {
	font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
	font-size: 42px;
	font-weight: 300;
	color: #e5e7eb;
	line-height: 1.2;
	margin: 0 0 4px;
}

.fl-headline--accent {
	margin-bottom: 32px;
}

.fl-lines p {
	font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
	font-size: 17px;
	line-height: 1.6;
	color: rgba(229, 231, 235, 0.8);
	margin: 0 0 16px;
}

.fl-small {
	font-size: 14px !important;
	color: rgba(229, 231, 235, 0.45) !important;
	margin-top: 4px;
}

/* Expandable details */
.fl-expand {
	margin-top: 30px;
	border-top: 1px solid rgba(229, 231, 235, 0.2);
	padding-top: 10px;
}

.fl-detail {
	border-bottom: 1px solid rgba(229, 231, 235, 0.2);
}

.fl-detail__summary {
	cursor: pointer;
	font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
	font-size: 14px;
	font-weight: 500;
	color: rgba(229, 231, 235, 0.65);
	padding: 12px 0;
	list-style: none;
	display: flex;
	justify-content: space-between;
	align-items: center;
	transition: color 0.2s ease;
}

.fl-detail__summary::-webkit-details-marker { display: none; }

.fl-detail__summary::after {
	content: '+';
	font-size: 18px;
	font-weight: 300;
	color: rgba(229, 231, 235, 0.35);
}

.fl-detail[open] .fl-detail__summary {
	color: #e5e7eb;
}

.fl-detail[open] .fl-detail__summary::after {
	content: '−';
}

.fl-detail__body {
	font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
	font-size: 15px;
	line-height: 1.65;
	color: rgba(229, 231, 235, 0.6);
	margin: 0 0 16px;
}

/* ── Right panel ── */
.fl-right {
	flex: 1;
	background-color: transparent;
	display: flex;
	align-items: flex-start;
	padding: 60px;
}

.fl-right__inner {
	width: 100%;
	display: flex;
	flex-direction: column;
	gap: 20px;
}

/* Cards */
.fl-card {
	border: 1px solid rgba(255, 255, 255, 0.08);
	border-radius: 24px;
	padding: 28px;
	background: rgba(255, 255, 255, 0.04);
	backdrop-filter: blur(20px);
	box-shadow: 0 10px 40px rgba(0, 0, 0, 0.3);
	transition: transform 0.3s ease, border-color 0.3s ease;
}

.fl-card:hover {
	transform: translateY(-4px);
	border-color: rgba(255, 255, 255, 0.2);
}

.fl-card__eyebrow {
	font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
	font-size: 11px;
	font-weight: 600;
	text-transform: uppercase;
	letter-spacing: 0.1em;
	color: rgba(229, 231, 235, 0.4);
	margin: 0 0 6px;
}

.fl-card__heading {
	font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
	font-size: 20px;
	font-weight: 600;
	color: #e5e7eb;
	margin: 0 0 10px;
}

.fl-card__desc {
	font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
	font-size: 15px;
	line-height: 1.6;
	color: rgba(229, 231, 235, 0.6);
	margin: 0 0 20px;
}

.fl-card__btn {
	display: inline-block;
	font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
	font-size: 14px;
	font-weight: 500;
	padding: 14px 22px;
	border-radius: 999px;
	background: linear-gradient(135deg, #6366f1, #22d3ee);
	border: none;
	color: #fff;
	text-decoration: none;
	transition: opacity 0.3s ease, transform 0.3s ease;
}

.fl-card__btn:hover {
	opacity: 0.9;
	transform: scale(1.03);
	color: #fff;
}

.fl-card__btn--outline {
	background: transparent;
	border: 1px solid rgba(255, 255, 255, 0.2);
	color: #e5e7eb;
}

.fl-card__btn--outline:hover {
	background: rgba(255, 255, 255, 0.06);
	border-color: rgba(255, 255, 255, 0.4);
	color: #fff;
}

.fl-card__note {
	font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
	font-size: 12px;
	color: rgba(229, 231, 235, 0.4);
	margin: 10px 0 0;
}

/* Below photo */
.fl-below-photo {
	background-color: transparent;
	text-align: center;
	padding: 0 60px 60px;
}

.fl-below-photo__img {
	max-width: 100%;
	height: auto;
	display: inline-block;
	opacity: 0.9;
}

/* ── Responsive ── */
@media ( max-width: 860px ) {
	.fl-wrap {
		flex-direction: column;
		min-height: auto;
	}

	.fl-left {
		padding: 60px 32px;
	}

	.fl-left__inner {
		max-width: 100%;
	}

	.fl-right {
		padding: 48px 32px 64px;
	}

	.fl-headline {
		font-size: 34px;
	}
}

/* ==========================================================================
   MOBILE FIXES
   ========================================================================== */

/* 1. Homepage — reset the -300px negative margin that causes bio section to
      crash into the hero image on mobile */
@media (max-width: 768px) {
	.bio-newsletter-section {
		margin-top: 0;
	}

	.hero-image {
		z-index: auto;
	}
}

/* 2. Books page — remove sticky on mobile so cover doesn't block content */
@media (max-width: 768px) {
	.book-hero__cover-col {
		position: static;
	}
}

/* 3. Flow / Community pages — make hamburger bars and label visible on dark header */
.is-flow-page .hamburger-icon span,
.is-community-page .hamburger-icon span {
	background-color: #e5e7eb;
}

.is-flow-page .menu-toggle-label,
.is-community-page .menu-toggle-label {
	color: #e5e7eb;
}
