/* ===== Journal page (journal.html) ===== */

.page-title {
	font-size: clamp(24px, 2.6vw, 40px);
	font-weight: 800;
	margin: 6px 0 12px;
}
.section-title {
	font-size: clamp(22px, 2.2vw, 32px);
	font-weight: 800;
	margin-bottom: 10px;
}
.section-intro {
	color: var(--muted);
	max-width: 70ch;
	margin-bottom: 16px;
}
.prose p {
	margin: 0 0 12px;
	color: var(--muted);
}
.dash-list {
	margin: 8px 0 0;
	padding-left: 1.1rem;
}
.dash-list li {
	margin: 4px 0;
	list-style: '–  ';
}

/* ----- S1: Intro Mosaic ----- */
.jn-hero {
	padding: clamp(28px, 5vw, 56px) 0;
	background: var(--surface);
	margin-top: 50px;
}
.jn-hero-grid {
	display: grid;
	grid-template-columns: 1.1fr 0.9fr;
	gap: 20px;
	align-items: start;
}
.jn-mosaic {
	display: grid;
	gap: 10px;
	grid-template-columns: repeat(2, minmax(0, 1fr));
}
.jn-mosaic figure {
	background: #fff;
	border: 1px solid var(--line);
	border-radius: var(--radius);
	padding: 8px;
	box-shadow: var(--shadow);
}

/* ----- S2: Cities ----- */
.jn-cities {
	padding: clamp(28px, 5vw, 56px) 0;
	background: #f9fafb;
}
.city-grid {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
	gap: 16px;
}
.city-card {
	background: #fff;
	border: 1px solid var(--line);
	border-radius: var(--radius);
	padding: 14px;
	box-shadow: var(--shadow);
	transition: transform 0.2s ease, box-shadow 0.3s ease;
}
.city-card:hover {
	transform: translateY(-3px);
	box-shadow: 0 12px 32px rgba(15, 23, 42, 0.1);
}
.city-card img {
	border-radius: 12px;
	border: 1px solid var(--line);
	margin-bottom: 10px;
}

/* ----- S3: Pairings ----- */
.jn-pairings {
	padding: clamp(28px, 5vw, 56px) 0;
	background: var(--surface);
}
.pairings-grid {
	display: grid;
	grid-template-columns: 1.1fr 0.9fr;
	gap: 20px;
	align-items: start;
}
.pair-visuals {
	display: grid;
	gap: 12px;
	grid-template-columns: repeat(3, minmax(0, 1fr));
}
.pair-visuals figure {
	background: #fff;
	border: 1px solid var(--line);
	border-radius: var(--radius);
	padding: 8px;
	box-shadow: var(--shadow);
	text-align: center;
}
.pair-visuals figcaption {
	margin-top: 6px;
	color: var(--muted);
}

/* ----- S4: Metrics ----- */
.jn-metrics {
	padding: clamp(28px, 5vw, 56px) 0;
	background: #f8fafc;
}
.metrics-grid {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
	gap: 16px;
}
.metric-card {
	background: #fff;
	border: 1px solid var(--line);
	border-radius: var(--radius);
	padding: 14px;
	box-shadow: var(--shadow);
	transition: transform 0.2s ease, box-shadow 0.3s ease;
}
.metric-card:hover {
	transform: translateY(-3px);
	box-shadow: 0 12px 32px rgba(15, 23, 42, 0.1);
}
.metric-card img {
	border-radius: 12px;
	border: 1px solid var(--line);
	margin-bottom: 10px;
}

/* ----- S5: Weekend ----- */
.jn-weekend {
	padding: clamp(28px, 5vw, 56px) 0;
	background: var(--surface);
}
.weekend-grid {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(160px, 1fr));
	gap: 12px;
	text-align: center;
}
.weekend-grid figure {
	background: #fff;
	border: 1px solid var(--line);
	border-radius: var(--radius);
	padding: 8px;
	box-shadow: var(--shadow);
}
.weekend-grid figcaption {
	margin-top: 6px;
	color: var(--muted);
}

/* ----- S6: Care ----- */
.jn-care {
	padding: clamp(28px, 5vw, 56px) 0;
	background: #f9fafb;
}
.care-grid {
	display: grid;
	grid-template-columns: 1.1fr 0.9fr;
	gap: 20px;
	align-items: start;
}
.care-steps {
	display: grid;
	gap: 12px;
	grid-template-columns: repeat(3, minmax(0, 1fr));
}
.care-steps figure {
	background: #fff;
	border: 1px solid var(--line);
	border-radius: var(--radius);
	padding: 8px;
	text-align: center;
	box-shadow: var(--shadow);
}
.care-steps figcaption {
	margin-top: 6px;
	color: var(--muted);
}

/* ----- S7: Maker ----- */
.jn-maker {
	padding: clamp(28px, 5vw, 56px) 0;
	background: var(--surface);
}
.maker-grid {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(160px, 1fr));
	gap: 12px;
}
.maker-grid figure {
	background: #fff;
	border: 1px solid var(--line);
	border-radius: var(--radius);
	padding: 8px;
	box-shadow: var(--shadow);
	text-align: center;
}
.maker-grid figcaption {
	margin-top: 6px;
	color: var(--muted);
}

/* ----- S8: Community ----- */
.jn-community {
	padding: clamp(28px, 5vw, 56px) 0;
	background: #f8fafc;
}
.community-grid {
	display: grid;
	grid-template-columns: 1.1fr 0.9fr;
	gap: 20px;
	align-items: start;
}
.community-visuals {
	display: grid;
	gap: 12px;
	grid-template-columns: repeat(3, minmax(0, 1fr));
}
.community-visuals figure {
	background: #fff;
	border: 1px solid var(--line);
	border-radius: var(--radius);
	padding: 8px;
	box-shadow: var(--shadow);
	text-align: center;
}
.community-visuals figcaption {
	margin-top: 6px;
	color: var(--muted);
}

/* ----- S9: Tutorials ----- */
.jn-tutorials {
	padding: clamp(28px, 5vw, 56px) 0;
	background: var(--surface);
}
.tuts-grid {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
	gap: 16px;
}
.tut-card {
	background: #fff;
	border: 1px solid var(--line);
	border-radius: var(--radius);
	padding: 14px;
	box-shadow: var(--shadow);
	transition: transform 0.2s ease, box-shadow 0.3s ease;
}
.tut-card:hover {
	transform: translateY(-3px);
	box-shadow: 0 12px 32px rgba(15, 23, 42, 0.1);
}
.tut-card img {
	border-radius: 12px;
	border: 1px solid var(--line);
	margin-bottom: 10px;
}

/* ----- S10: CTA ----- */
.jn-cta {
	padding: clamp(28px, 5vw, 56px) 0;
	background: #f9fafb;
}
.cta-grid {
	display: grid;
	grid-template-columns: 1.1fr 0.9fr;
	gap: 20px;
	align-items: center;
}
.cta-row {
	display: flex;
	gap: 10px;
	flex-wrap: wrap;
	margin-top: 12px;
}
.cta-visuals {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 12px;
	text-align: center;
}
.cta-visuals figure {
	background: #fff;
	border: 1px solid var(--line);
	border-radius: var(--radius);
	padding: 8px;
	box-shadow: var(--shadow);
}
.cta-visuals figcaption {
	margin-top: 6px;
	color: var(--muted);
}

/* Reveal-on-scroll (reuse pattern) */
.observe {
	opacity: 0;
	transform: translateY(12px);
	transition: opacity 0.6s ease, transform 0.6s ease;
}
.observe.is-visible {
	opacity: 1;
	transform: translateY(0);
}

/* ----- Responsive ----- */
@media (max-width: 900px) {
	.jn-hero-grid,
	.pairings-grid,
	.care-grid,
	.community-grid,
	.cta-grid {
		grid-template-columns: 1fr;
	}
}
/* ----- S11: Longform Essay (no images) ----- */
.jn-essay {
	padding: clamp(28px, 5vw, 56px) 0;
	background: var(--surface);
}

.essay-columns {
	column-gap: 32px;
}
@media (min-width: 1024px) {
	.essay-columns {
		column-count: 2;
	}
}
@media (min-width: 1440px) {
	.essay-columns {
		column-count: 3;
	}
}

/* Avoid awkward splits across columns */
.essay p,
.essay ul,
.essay h3,
.essay blockquote {
	break-inside: avoid;
}

.essay-lead {
	font-weight: 500;
	color: var(--ink);
}

.essay-quote {
	border-left: 3px solid var(--brand);
	padding-left: 12px;
	margin: 12px 0;
	color: var(--muted);
	font-style: italic;
}
