/* =========================================================
   Positive Affirmations Center — homepage styles
========================================================= */

.pac-home {
	display: block;
	background: var(--pac-cream);
	color: var(--pac-ink);
	overflow-x: clip;
}

.pac-home h1,
.pac-home h2,
.pac-home h3 {
	font-family: var(--pac-font-display);
	color: var(--pac-ink);
	margin: 0;
}

.pac-home p {
	color: var(--pac-ink-soft);
}

.pac-section {
	padding: 84px 0;
	scroll-margin-top: calc(var(--pac-header-h) + 12px);
}

.pac-eyebrow {
	display: inline-block;
	font-family: var(--pac-font-ui);
	font-size: 0.78rem;
	font-weight: 700;
	letter-spacing: 0.16em;
	text-transform: uppercase;
	color: var(--pac-violet);
	background: var(--pac-lilac);
	border-radius: 999px;
	padding: 7px 14px;
	margin: 0 0 18px;
}

.pac-section-head {
	text-align: center;
	max-width: 640px;
	margin: 0 auto 48px;
}

.pac-section-head h2 {
	font-size: clamp(1.8rem, 3.6vw, 2.6rem);
	line-height: 1.15;
	letter-spacing: -0.01em;
}

.pac-section-sub {
	margin: 14px auto 0;
	font-size: 1.05rem;
	line-height: 1.65;
}

.pac-center {
	justify-content: center;
}

/* =========================================================
   Hero
========================================================= */
.pac-hero {
	position: relative;
	padding: 84px 0 96px;
	background:
		radial-gradient(1100px 520px at 85% -10%, rgba(231, 110, 155, 0.14), transparent 60%),
		radial-gradient(900px 480px at -10% 20%, rgba(109, 95, 201, 0.16), transparent 60%),
		linear-gradient(180deg, #f7f3ff 0%, var(--pac-cream) 100%);
	overflow: hidden;
}

.pac-blob {
	position: absolute;
	border-radius: 50%;
	filter: blur(60px);
	opacity: 0.5;
	pointer-events: none;
	animation: pac-float 14s ease-in-out infinite;
}

.pac-blob-1 {
	width: 360px;
	height: 360px;
	top: -120px;
	right: 6%;
	background: #f3d3a9;
}

.pac-blob-2 {
	width: 300px;
	height: 300px;
	bottom: -140px;
	left: 4%;
	background: #cbc0f5;
	animation-delay: -5s;
}

.pac-blob-3 {
	width: 220px;
	height: 220px;
	top: 30%;
	left: 42%;
	background: #f7cfe0;
	opacity: 0.35;
	animation-delay: -9s;
}

@keyframes pac-float {
	0%, 100% { transform: translateY(0) scale(1); }
	50% { transform: translateY(26px) scale(1.06); }
}

.pac-hero-inner {
	position: relative;
	display: grid;
	grid-template-columns: 1.15fr 0.85fr;
	gap: 56px;
	align-items: center;
}

.pac-hero-copy h1 {
	font-size: clamp(2.3rem, 5vw, 3.6rem);
	line-height: 1.08;
	letter-spacing: -0.015em;
	margin: 0 0 22px;
}

.pac-hero-copy h1 em {
	font-style: italic;
	background: linear-gradient(120deg, var(--pac-violet), var(--pac-rose));
	-webkit-background-clip: text;
	background-clip: text;
	color: transparent;
}

.pac-lead {
	font-size: 1.13rem;
	line-height: 1.7;
	max-width: 520px;
	margin: 0 0 30px;
}

.pac-hero-actions {
	display: flex;
	flex-wrap: wrap;
	gap: 14px;
}

.pac-hero-meta {
	margin: 22px 0 0;
	font-size: 0.88rem;
	letter-spacing: 0.02em;
}

/* Daily affirmation card */
.pac-daily-card {
	position: relative;
	background: rgba(255, 255, 255, 0.82);
	backdrop-filter: blur(8px);
	-webkit-backdrop-filter: blur(8px);
	border: 1px solid rgba(255, 255, 255, 0.9);
	border-radius: calc(var(--pac-radius) + 6px);
	box-shadow: var(--pac-shadow);
	padding: 30px 30px 26px;
}

.pac-daily-card::before {
	content: "“";
	position: absolute;
	top: -28px;
	left: 22px;
	font-family: var(--pac-font-display);
	font-size: 6rem;
	line-height: 1;
	color: var(--pac-gold);
	opacity: 0.85;
}

.pac-daily-head {
	display: flex;
	justify-content: space-between;
	align-items: baseline;
	gap: 12px;
	margin-bottom: 14px;
}

.pac-daily-label {
	font-size: 0.78rem;
	font-weight: 700;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	color: var(--pac-violet);
}

.pac-daily-date {
	font-size: 0.85rem;
	color: var(--pac-ink-soft);
}

.pac-affirmation-text {
	font-family: var(--pac-font-display);
	font-style: italic;
	font-size: 1.45rem;
	line-height: 1.45;
	color: var(--pac-ink);
	margin: 0;
	padding: 0;
	border: 0;
	quotes: none;
}

.pac-affirmation-text::before,
.pac-affirmation-text::after {
	content: none;
}

.pac-daily-foot {
	display: flex;
	justify-content: space-between;
	align-items: center;
	gap: 12px;
	flex-wrap: wrap;
	margin-top: 22px;
}

.pac-streak {
	display: inline-block;
	background: var(--pac-gold-soft);
	color: var(--pac-gold-deep);
	font-size: 0.82rem;
	font-weight: 700;
	padding: 6px 12px;
	border-radius: 999px;
	white-space: nowrap;
}

/* Small pill action buttons (copy / new / listen) */
.pac-tool-actions {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 10px;
}

.pac-chip-btn {
	font-family: var(--pac-font-ui);
	font-size: 0.85rem;
	font-weight: 600;
	color: var(--pac-violet-deep);
	background: var(--pac-lilac);
	border: 1px solid transparent;
	border-radius: 999px;
	padding: 8px 15px;
	cursor: pointer;
	transition: background-color 0.16s ease, transform 0.16s ease;
}

.pac-chip-btn:hover:not(:disabled) {
	background: #e4dcfa;
	transform: translateY(-1px);
}

.pac-chip-btn:focus-visible {
	outline: 3px solid var(--pac-gold);
	outline-offset: 2px;
}

.pac-chip-btn:disabled {
	opacity: 0.45;
	cursor: not-allowed;
}

/* =========================================================
   Affirmation ticker
========================================================= */
.pac-marquee {
	background: linear-gradient(90deg, var(--pac-violet-deep), var(--pac-violet) 50%, var(--pac-violet-deep));
	color: #efeaff;
	overflow: hidden;
	padding: 14px 0;
}

.pac-marquee-track {
	display: flex;
	width: max-content;
	gap: 0;
	animation: pac-marquee 38s linear infinite;
}

.pac-marquee:hover .pac-marquee-track {
	animation-play-state: paused;
}

.pac-marquee-item {
	display: inline-flex;
	align-items: center;
	gap: 18px;
	padding: 0 18px;
	font-family: var(--pac-font-display);
	font-style: italic;
	font-size: 1.02rem;
	letter-spacing: 0.03em;
	white-space: nowrap;
}

.pac-marquee-star {
	color: var(--pac-gold);
	font-style: normal;
	font-size: 0.8rem;
}

@keyframes pac-marquee {
	from { transform: translateX(0); }
	to { transform: translateX(-50%); }
}

/* =========================================================
   Tools
========================================================= */
.pac-tools {
	background: var(--pac-cream);
}

.pac-tools-grid {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 28px;
}

.pac-tool-card {
	position: relative;
	background: var(--pac-white);
	border: 1px solid var(--pac-border);
	border-radius: var(--pac-radius);
	box-shadow: var(--pac-shadow-sm);
	padding: 34px 32px 30px;
	display: flex;
	flex-direction: column;
	gap: 14px;
	transition: transform 0.2s ease, box-shadow 0.2s ease;
}

.pac-tool-card:hover {
	transform: translateY(-4px);
	box-shadow: var(--pac-shadow);
}

.pac-tool-icon {
	width: 54px;
	height: 54px;
	display: grid;
	place-items: center;
	font-size: 1.6rem;
	border-radius: 16px;
	background: linear-gradient(135deg, var(--pac-lilac), var(--pac-rose-soft));
}

.pac-tool-card h3 {
	font-size: 1.45rem;
	letter-spacing: -0.01em;
}

.pac-tool-desc {
	margin: 0;
	line-height: 1.6;
	font-size: 0.97rem;
}

.pac-tool-output {
	font-size: 1.18rem;
	background: var(--pac-cream);
	border-radius: var(--pac-radius-sm);
	padding: 18px 20px;
	min-height: 86px;
	display: flex;
	align-items: center;
}

.pac-tool-output.is-pop {
	animation: pac-pop 0.4s ease;
}

@keyframes pac-pop {
	0% { opacity: 0; transform: translateY(6px); }
	100% { opacity: 1; transform: translateY(0); }
}

.pac-tool-note {
	margin: 0;
	font-size: 0.82rem;
	color: var(--pac-ink-soft);
}

/* Mood / mode chips */
.pac-mood-chips,
.pac-breath-modes {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
}

.pac-mood {
	font-family: var(--pac-font-ui);
	font-size: 0.86rem;
	font-weight: 600;
	color: var(--pac-ink);
	background: var(--pac-cream);
	border: 1px solid var(--pac-border);
	border-radius: 999px;
	padding: 8px 14px;
	cursor: pointer;
	transition: all 0.16s ease;
}

.pac-mood:hover {
	border-color: var(--pac-violet);
	color: var(--pac-violet-deep);
}

.pac-mood.is-on {
	background: linear-gradient(135deg, var(--pac-violet), var(--pac-violet-deep));
	border-color: var(--pac-violet-deep);
	color: #fff;
	box-shadow: 0 6px 16px rgba(70, 58, 143, 0.3);
}

.pac-mood:focus-visible {
	outline: 3px solid var(--pac-gold);
	outline-offset: 2px;
}

/* Breathing */
.pac-breath-stage {
	display: grid;
	place-items: center;
	padding: 18px 0 6px;
}

.pac-breath-circle {
	width: 170px;
	height: 170px;
	border-radius: 50%;
	display: grid;
	place-content: center;
	text-align: center;
	gap: 2px;
	background: radial-gradient(circle at 30% 25%, #b7aaf2, var(--pac-violet) 70%);
	box-shadow: 0 18px 44px rgba(70, 58, 143, 0.35), inset 0 0 0 10px rgba(255, 255, 255, 0.18);
	transform: scale(0.8);
	transition: transform 4s ease-in-out;
	will-change: transform;
}

.pac-breath-phase {
	font-family: var(--pac-font-display);
	font-style: italic;
	font-size: 1.2rem;
	color: #fff;
}

.pac-breath-count {
	font-size: 0.95rem;
	font-weight: 700;
	color: rgba(255, 255, 255, 0.85);
	min-height: 1.2em;
}

.pac-breath-cycles {
	font-size: 0.85rem;
	color: var(--pac-ink-soft);
}

#tool-breathing .pac-tool-actions {
	margin-top: 4px;
}

/* Builder */
.pac-builder-row {
	display: flex;
	gap: 10px;
	align-items: center;
}

#pac-builder-input {
	flex: 1;
	min-width: 0;
	font-family: var(--pac-font-display);
	font-style: italic;
	font-size: 1.05rem;
	color: var(--pac-ink);
	background: var(--pac-cream);
	border: 1px solid var(--pac-border);
	border-radius: var(--pac-radius-sm);
	padding: 13px 16px;
	transition: border-color 0.16s ease, box-shadow 0.16s ease;
}

#pac-builder-input:focus {
	outline: none;
	border-color: var(--pac-violet);
	box-shadow: 0 0 0 4px rgba(109, 95, 201, 0.15);
}

#pac-builder-input::placeholder {
	color: #a79fc4;
}

.pac-builder-list {
	list-style: none;
	margin: 4px 0 0;
	padding: 0;
	display: flex;
	flex-direction: column;
	gap: 8px;
	max-height: 220px;
	overflow-y: auto;
}

.pac-builder-list li {
	display: flex;
	align-items: center;
	gap: 10px;
	background: var(--pac-lilac);
	border-radius: var(--pac-radius-sm);
	padding: 10px 14px;
}

.pac-builder-list li.pac-empty {
	background: transparent;
	color: var(--pac-ink-soft);
	font-size: 0.9rem;
	padding-left: 2px;
}

.pac-builder-list .pac-saved-text {
	flex: 1;
	font-family: var(--pac-font-display);
	font-style: italic;
	font-size: 1rem;
	color: var(--pac-ink);
	overflow-wrap: anywhere;
}

.pac-mini-btn {
	flex: none;
	font-size: 0.78rem;
	font-weight: 700;
	color: var(--pac-violet-deep);
	background: rgba(255, 255, 255, 0.7);
	border: 0;
	border-radius: 999px;
	padding: 6px 10px;
	cursor: pointer;
	transition: background-color 0.15s ease;
}

.pac-mini-btn:hover {
	background: #fff;
}

.pac-mini-btn.pac-del {
	color: #b4456a;
}

/* Tools footnote */
.pac-tools-more {
	text-align: center;
	margin: 40px auto 0;
	font-size: 1rem;
}

.pac-tools-more a {
	color: var(--pac-violet-deep);
	font-weight: 700;
	text-decoration: none;
	border-bottom: 2px solid var(--pac-gold);
}

.pac-tools-more a:hover {
	color: var(--pac-violet);
}

/* =========================================================
   Steps
========================================================= */
.pac-steps {
	background:
		radial-gradient(800px 400px at 90% 0%, rgba(232, 163, 61, 0.1), transparent 55%),
		var(--pac-white);
	border-top: 1px solid var(--pac-border);
	border-bottom: 1px solid var(--pac-border);
}

.pac-steps-grid {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 28px;
}

.pac-step {
	background: var(--pac-cream);
	border: 1px solid var(--pac-border);
	border-radius: var(--pac-radius);
	padding: 30px 28px;
	position: relative;
}

.pac-step-num {
	display: inline-grid;
	place-items: center;
	width: 46px;
	height: 46px;
	border-radius: 50%;
	background: linear-gradient(135deg, var(--pac-violet), var(--pac-rose));
	color: #fff;
	font-weight: 800;
	font-size: 0.9rem;
	letter-spacing: 0.04em;
	margin-bottom: 16px;
	box-shadow: 0 8px 18px rgba(109, 95, 201, 0.3);
}

.pac-step h3 {
	font-size: 1.3rem;
	margin-bottom: 8px;
}

.pac-step p {
	margin: 0;
	line-height: 1.65;
	font-size: 0.97rem;
}

.pac-steps-tip {
	text-align: center;
	margin: 38px auto 0;
	max-width: 560px;
	background: var(--pac-gold-soft);
	border-radius: 999px;
	padding: 12px 22px;
	font-size: 0.92rem;
	color: #7a5a17;
}

/* =========================================================
   Featured posts
========================================================= */
.pac-featured {
	background: var(--pac-cream);
}

.pac-posts-grid {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 24px;
}

.pac-post-card {
	grid-column: span 1;
}

.pac-post-card.is-large {
	grid-column: span 2;
}

.pac-post-link {
	display: flex;
	flex-direction: column;
	height: 100%;
	background: var(--pac-white);
	border: 1px solid var(--pac-border);
	border-radius: var(--pac-radius);
	overflow: hidden;
	text-decoration: none;
	box-shadow: var(--pac-shadow-sm);
	transition: transform 0.2s ease, box-shadow 0.2s ease;
}

.pac-post-link:hover {
	transform: translateY(-5px);
	box-shadow: var(--pac-shadow);
	text-decoration: none;
}

.pac-post-thumb {
	position: relative;
	aspect-ratio: 16 / 9;
	overflow: hidden;
	display: grid;
	place-items: center;
}

.pac-post-card.is-large .pac-post-thumb {
	aspect-ratio: 16 / 8;
}

.pac-post-thumb img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
	transition: transform 0.45s ease;
}

.pac-post-link:hover .pac-post-thumb img {
	transform: scale(1.05);
}

/* Fallback gradients when a post has no featured image */
.pac-thumb-0 { background: linear-gradient(135deg, #8d7fe0, #c4b7f5); }
.pac-thumb-1 { background: linear-gradient(135deg, #f0b86a, #f7daad); }
.pac-thumb-2 { background: linear-gradient(135deg, #e98bb0, #f6cede); }
.pac-thumb-3 { background: linear-gradient(135deg, #5fb8b0, #b6e3df); }
.pac-thumb-4 { background: linear-gradient(135deg, #7d92e0, #c2cdf4); }

.pac-thumb-glyph {
	font-size: 2.4rem;
	color: rgba(255, 255, 255, 0.9);
	text-shadow: 0 4px 14px rgba(0, 0, 0, 0.15);
}

.pac-post-body {
	display: flex;
	flex-direction: column;
	gap: 10px;
	padding: 20px 22px 22px;
	flex: 1;
}

.pac-post-cat {
	align-self: flex-start;
	font-size: 0.72rem;
	font-weight: 700;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	color: var(--pac-violet-deep);
	background: var(--pac-lilac);
	padding: 5px 10px;
	border-radius: 999px;
}

.pac-post-title {
	font-size: 1.08rem;
	line-height: 1.35;
	color: var(--pac-ink);
	display: -webkit-box;
	-webkit-line-clamp: 3;
	-webkit-box-orient: vertical;
	overflow: hidden;
}

.pac-post-card.is-large .pac-post-title {
	font-size: 1.45rem;
	-webkit-line-clamp: 2;
}

.pac-post-excerpt {
	margin: 0;
	font-size: 0.95rem;
	line-height: 1.6;
	display: -webkit-box;
	-webkit-line-clamp: 2;
	-webkit-box-orient: vertical;
	overflow: hidden;
}

.pac-post-meta {
	margin-top: auto;
	display: flex;
	gap: 8px;
	align-items: center;
	font-size: 0.82rem;
	color: var(--pac-ink-soft);
	margin-bottom: 0;
}

.pac-featured-cta {
	text-align: center;
	margin-top: 44px;
}

/* =========================================================
   CTA band
========================================================= */
.pac-cta-band {
	background:
		radial-gradient(700px 320px at 15% 0%, rgba(232, 163, 61, 0.25), transparent 60%),
		radial-gradient(700px 360px at 85% 100%, rgba(231, 110, 155, 0.28), transparent 60%),
		linear-gradient(140deg, var(--pac-violet-deep), var(--pac-violet-dark));
	text-align: center;
	padding: 88px 0;
}

.pac-cta-band h2 {
	font-family: var(--pac-font-display);
	color: #fff;
	font-size: clamp(1.9rem, 4vw, 2.7rem);
	letter-spacing: -0.01em;
	margin: 0 0 14px;
}

.pac-cta-band p {
	color: #d8d2f2;
	font-size: 1.1rem;
	margin: 0 0 32px;
}

.pac-cta-band .pac-hero-actions {
	justify-content: center;
}

/* =========================================================
   Responsive
========================================================= */
@media (max-width: 1060px) {
	.pac-posts-grid {
		grid-template-columns: repeat(3, 1fr);
	}

	.pac-post-card.is-large {
		grid-column: span 3;
	}
}

@media (max-width: 880px) {
	.pac-section {
		padding: 64px 0;
	}

	.pac-hero {
		padding: 56px 0 72px;
	}

	.pac-hero-inner {
		grid-template-columns: 1fr;
		gap: 44px;
	}

	.pac-hero-copy {
		text-align: center;
	}

	.pac-lead {
		margin-left: auto;
		margin-right: auto;
	}

	.pac-hero-actions {
		justify-content: center;
	}

	.pac-daily-card {
		max-width: 560px;
		margin: 0 auto;
		width: 100%;
	}

	.pac-tools-grid {
		grid-template-columns: 1fr;
	}

	.pac-steps-grid {
		grid-template-columns: 1fr;
		max-width: 560px;
		margin: 0 auto;
	}

	.pac-posts-grid {
		grid-template-columns: repeat(2, 1fr);
	}

	.pac-post-card.is-large {
		grid-column: span 2;
	}
}

@media (max-width: 560px) {
	.pac-container {
		padding-left: 18px;
		padding-right: 18px;
	}

	.pac-affirmation-text {
		font-size: 1.25rem;
	}

	.pac-tool-card {
		padding: 26px 22px 24px;
	}

	.pac-posts-grid {
		grid-template-columns: 1fr;
	}

	.pac-post-card.is-large {
		grid-column: span 1;
	}

	.pac-builder-row {
		flex-wrap: wrap;
	}

	.pac-btn-lg {
		width: 100%;
	}

	.pac-hero-actions {
		flex-direction: column;
		align-items: stretch;
	}
}

/* =========================================================
   Reduced motion
========================================================= */
@media (prefers-reduced-motion: reduce) {
	.pac-blob {
		animation: none;
	}

	.pac-marquee-track {
		animation: none;
		flex-wrap: wrap;
		width: auto;
		justify-content: center;
	}

	.pac-breath-circle {
		transition: none;
	}

	.pac-tool-card:hover,
	.pac-post-link:hover {
		transform: none;
	}

	.pac-tool-output.is-pop {
		animation: none;
	}

	.pac-post-link:hover .pac-post-thumb img {
		transform: none;
	}
}
