/* =============================================================
   PG Books theme styles
   Replicates the playful design of the original React site:
   Fredoka One / Baloo 2 / Nunito, purple-pink-yellow palette,
   tilted "artistic frame" cards, dark purple footer.
   ============================================================= */

:root {
	--background: 40 33% 98%;
	--foreground: 222 47% 11%;

	--turquoise: 183 72% 38%;
	--deep-yellow: 45 90% 57%;
	--vibrant-green: 142 71% 45%;
	--vibrant-purple: 270 60% 60%;
	--hot-pink: 330 80% 60%;
	--bright-orange: 24 95% 55%;

	--primary: 270 60% 60%;
	--secondary: 330 80% 60%;
	--accent: 45 90% 57%;

	--muted: 40 20% 92%;
	--muted-foreground: 215 16% 47%;
	--border: 40 20% 85%;

	--footer-bg: 270 60% 15%;
	--footer-fg: 40 33% 98%;
	--footer-muted: 270 20% 70%;

	--radius: 1.5rem;

	--font-display: "Fredoka One", sans-serif;
	--font-section: "Baloo 2", sans-serif;
	--font-body: "Nunito", sans-serif;
}

/* ------------------------------------------------------------- Reset-ish */

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

html { scroll-behavior: smooth; }

body {
	margin: 0;
	font-family: var(--font-body);
	font-size: 1rem;
	line-height: 1.8;
	color: hsl(var(--foreground));
	background-color: hsl(var(--background));
	overflow-x: clip;
	-webkit-font-smoothing: antialiased;
}

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

a { color: hsl(var(--primary)); text-decoration: none; }

h1, .pg-font-display { font-family: var(--font-display); font-weight: 400; letter-spacing: 0.02em; line-height: 1.1; }
h2, .pg-font-section { font-family: var(--font-section); font-weight: 700; line-height: 1.2; }
h3, .pg-font-h3 { font-family: var(--font-body); font-weight: 800; }

.screen-reader-text {
	position: absolute !important;
	width: 1px; height: 1px;
	clip: rect(1px, 1px, 1px, 1px);
	overflow: hidden;
}
.skip-link:focus {
	position: fixed !important;
	top: 8px; left: 8px;
	width: auto; height: auto;
	clip: auto;
	z-index: 100000;
	background: #fff;
	padding: 0.75rem 1.25rem;
	border-radius: 0.75rem;
}

/* ------------------------------------------------------------- Layout */

.pg-container {
	width: 100%;
	max-width: 1400px;
	margin-inline: auto;
	padding-inline: 1rem;
}
@media (min-width: 640px) { .pg-container { padding-inline: 1.5rem; } }
@media (min-width: 1024px) { .pg-container { padding-inline: 2rem; } }

.pg-section { padding-block: 6rem; }
@media (min-width: 768px) { .pg-section { padding-block: 7rem; } }

.pg-section--white { background: #fff; }
.pg-section--purple-tint { background: hsl(var(--vibrant-purple) / 0.05); }
.pg-section--yellow-tint { background: hsl(var(--deep-yellow) / 0.1); }
.pg-section--green-tint { background: hsl(var(--vibrant-green) / 0.1); }
.pg-section--turquoise-tint { background: hsl(var(--turquoise) / 0.1); }

.pg-grid { display: grid; gap: 2rem; }
.pg-grid--2 { grid-template-columns: 1fr; }
.pg-grid--3 { grid-template-columns: 1fr; }
@media (min-width: 768px) {
	.pg-grid--2 { grid-template-columns: repeat(2, 1fr); }
	.pg-grid--3 { grid-template-columns: repeat(2, 1fr); }
}
@media (min-width: 1024px) {
	.pg-grid--3 { grid-template-columns: repeat(3, 1fr); }
}

/* Accent color helpers (rotate through the palette) */
.pg-color-purple { color: hsl(var(--vibrant-purple)); }
.pg-color-pink { color: hsl(var(--hot-pink)); }
.pg-color-turquoise { color: hsl(var(--turquoise)); }
.pg-color-green { color: hsl(var(--vibrant-green)); }
.pg-color-yellow { color: hsl(var(--deep-yellow)); }
.pg-color-orange { color: hsl(var(--bright-orange)); }

.pg-accent--vibrant-purple { --pg-accent: var(--vibrant-purple); }
.pg-accent--turquoise { --pg-accent: var(--turquoise); }
.pg-accent--vibrant-green { --pg-accent: var(--vibrant-green); }
.pg-accent--hot-pink { --pg-accent: var(--hot-pink); }
.pg-accent--deep-yellow { --pg-accent: var(--deep-yellow); }
.pg-accent--bright-orange { --pg-accent: var(--bright-orange); }

/* ------------------------------------------------------------- Icons */

.pg-icon {
	width: 1.25em;
	height: 1.25em;
	flex-shrink: 0;
	vertical-align: -0.2em;
}

/* ------------------------------------------------------------- Buttons */

.pg-button {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 0.6rem;
	font-family: var(--font-body);
	font-weight: 800;
	font-size: 1.05rem;
	line-height: 1;
	padding: 1rem 2rem;
	border: 0;
	border-radius: 0.9rem;
	cursor: pointer;
	text-decoration: none;
	box-shadow: 0 10px 20px -8px rgb(0 0 0 / 0.25);
	transition: transform 0.2s ease, box-shadow 0.3s ease, background-color 0.3s ease, color 0.3s ease;
}
.pg-button:hover { transform: translateY(-2px); }
.pg-button:active { transform: scale(0.98); }

.pg-button--primary { background: hsl(var(--vibrant-purple)); color: #fff; }
.pg-button--yellow { background: hsl(var(--deep-yellow)); color: hsl(var(--foreground)); }
.pg-button--green { background: hsl(var(--vibrant-green)); color: #fff; }
.pg-button--turquoise { background: hsl(var(--turquoise)); color: #fff; }
.pg-button--pink { background: hsl(var(--hot-pink)); color: #fff; }
.pg-button--accent { background: hsl(var(--pg-accent, var(--vibrant-purple))); color: #fff; }
.pg-button--block { width: 100%; }
.pg-button--lg { font-size: 1.25rem; padding: 1.4rem 2.5rem; border-radius: 1.25rem; }
.pg-button--outline-turquoise {
	background: transparent;
	color: hsl(var(--turquoise));
	border: 2px solid hsl(var(--turquoise));
	box-shadow: none;
}
.pg-button--outline-turquoise:hover { background: hsl(var(--turquoise)); color: #fff; }

/* ------------------------------------------------------------- Artistic frames */

.pg-artistic-frame,
.pg-artistic-frame-alt {
	border: 6px solid #fff;
	transition: transform 0.3s ease, box-shadow 0.3s ease;
	overflow: hidden;
	background: hsl(var(--muted));
}
.pg-artistic-frame {
	border-radius: 8px 24px 12px 32px;
	box-shadow: 8px 10px 0 rgb(0 0 0 / 0.1);
	transform: rotate(-1deg);
}
.pg-artistic-frame:hover {
	transform: rotate(1deg) scale(1.02);
	box-shadow: 10px 14px 0 rgb(0 0 0 / 0.15);
}
.pg-artistic-frame-alt {
	border-radius: 24px 8px 32px 12px;
	box-shadow: -8px 10px 0 rgb(0 0 0 / 0.1);
	transform: rotate(1deg);
}
.pg-artistic-frame-alt:hover {
	transform: rotate(-1deg) scale(1.02);
	box-shadow: -10px 14px 0 rgb(0 0 0 / 0.15);
}
.pg-artistic-frame img,
.pg-artistic-frame-alt img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

/* ------------------------------------------------------------- Animations */

@keyframes pg-float {
	0% { transform: translateY(0); }
	50% { transform: translateY(-15px); }
	100% { transform: translateY(0); }
}
.pg-float { animation: pg-float 6s ease-in-out infinite; }
.pg-float--delayed { animation: pg-float 6s ease-in-out infinite; animation-delay: 2s; }

.pg-animate {
	opacity: 0;
	transform: translateY(30px);
	transition: opacity 0.6s ease-out, transform 0.6s ease-out;
}
.pg-animate.is-visible { opacity: 1; transform: translateY(0); }
@media (prefers-reduced-motion: reduce) {
	.pg-animate { opacity: 1; transform: none; transition: none; }
	.pg-float, .pg-float--delayed { animation: none; }
}

/* ------------------------------------------------------------- Header */

.pg-header {
	position: sticky;
	top: 0;
	z-index: 50;
	background: hsl(var(--background) / 0.85);
	backdrop-filter: blur(8px);
	-webkit-backdrop-filter: blur(8px);
	border-bottom: 1px solid hsl(var(--border) / 0.4);
	box-shadow: 0 1px 2px rgb(0 0 0 / 0.05);
}
.pg-header__inner {
	display: flex;
	align-items: center;
	justify-content: space-between;
	min-height: 6rem;
	gap: 1rem;
}
@media (min-width: 1024px) { .pg-header__inner { min-height: 8rem; } }

.pg-header__logo img {
	height: 4rem;
	width: auto;
	object-fit: contain;
	transition: transform 0.3s ease;
}
@media (min-width: 768px) { .pg-header__logo img { height: 5rem; } }
@media (min-width: 1024px) { .pg-header__logo img { height: 6rem; } }
.pg-header__logo:hover img { transform: scale(1.05) rotate(-2deg); }

.pg-nav { display: none; }
@media (min-width: 1200px) { .pg-nav { display: block; } }

.pg-nav__list {
	display: flex;
	align-items: center;
	gap: 0.2rem;
	list-style: none;
	margin: 0;
	padding: 0;
}
.pg-nav__list a {
	display: inline-block;
	padding: 0.5rem 0.75rem;
	border-radius: 0.75rem;
	font-size: 0.875rem;
	font-weight: 800;
	white-space: nowrap;
	color: hsl(var(--foreground) / 0.8);
	transition: color 0.2s ease, background-color 0.2s ease;
}
.pg-nav__list a:hover { color: hsl(var(--vibrant-purple)); }
.pg-nav__list .current-menu-item > a,
.pg-nav__list .current_page_item > a {
	color: hsl(var(--vibrant-purple));
	background: hsl(var(--vibrant-purple) / 0.1);
}

.pg-nav-toggle {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 3rem;
	height: 3rem;
	background: transparent;
	border: 0;
	border-radius: 0.75rem;
	cursor: pointer;
	color: hsl(var(--foreground));
}
.pg-nav-toggle:hover {
	color: hsl(var(--vibrant-purple));
	background: hsl(var(--vibrant-purple) / 0.1);
}
.pg-nav-toggle .pg-icon { width: 2rem; height: 2rem; }
.pg-nav-toggle .pg-nav-toggle__close { display: none; }
.pg-nav-toggle[aria-expanded="true"] .pg-nav-toggle__open { display: none; }
.pg-nav-toggle[aria-expanded="true"] .pg-nav-toggle__close { display: block; }
@media (min-width: 1200px) { .pg-nav-toggle { display: none; } }

.pg-mobile-nav {
	padding: 1rem 1.5rem 2rem;
	background: hsl(var(--background) / 0.97);
	border-top: 1px solid hsl(var(--border) / 0.4);
}
.pg-mobile-nav__title {
	font-family: var(--font-display);
	font-size: 1.75rem;
	color: hsl(var(--vibrant-purple));
	margin: 0.5rem 0 1rem;
}
.pg-mobile-nav__list {
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	flex-direction: column;
	gap: 0.5rem;
}
.pg-mobile-nav__list a {
	display: block;
	padding: 0.9rem 1.25rem;
	border-radius: 1.25rem;
	font-size: 1.1rem;
	font-weight: 800;
	color: hsl(var(--foreground) / 0.8);
}
.pg-mobile-nav__list a:hover {
	color: hsl(var(--vibrant-purple));
	background: hsl(var(--vibrant-purple) / 0.1);
}
.pg-mobile-nav__list .current-menu-item > a {
	background: hsl(var(--vibrant-purple));
	color: #fff;
}

/* ------------------------------------------------------------- Page heroes */

.pg-page-hero {
	position: relative;
	padding: 6rem 1rem 4rem;
	text-align: center;
	overflow: hidden;
}
@media (min-width: 768px) { .pg-page-hero { padding: 8rem 2rem 6rem; } }

.pg-page-hero--pink { background: hsl(var(--hot-pink) / 0.1); }
.pg-page-hero--purple { background: hsl(var(--vibrant-purple) / 0.1); }
.pg-page-hero--purple-strong { background: hsl(var(--vibrant-purple) / 0.15); }
.pg-page-hero--orange { background: hsl(var(--bright-orange) / 0.1); }
.pg-page-hero--yellow { background: hsl(var(--deep-yellow) / 0.15); }

.pg-page-hero__inner { max-width: 56rem; margin-inline: auto; position: relative; z-index: 1; }

.pg-page-hero__eyebrow {
	display: inline-flex;
	align-items: center;
	gap: 0.75rem;
	margin-bottom: 1.5rem;
	font-size: 0.9rem;
	font-weight: 800;
	letter-spacing: 0.1em;
	text-transform: uppercase;
}
.pg-page-hero__eyebrow .pg-icon { width: 2rem; height: 2rem; }

.pg-page-hero__title {
	margin: 0 0 1.5rem;
	font-size: clamp(2.75rem, 6vw, 4.5rem);
	text-wrap: balance;
}
.pg-page-hero__subtitle {
	margin: 0 auto;
	max-width: 48rem;
	font-size: clamp(1.2rem, 2.5vw, 1.5rem);
	font-weight: 800;
	color: hsl(var(--foreground) / 0.8);
	line-height: 1.6;
}

/* ------------------------------------------------------------- Front page */

.pg-hero-banner { background: hsl(var(--turquoise) / 0.1); }
.pg-hero-banner__image-wrap { max-width: 1500px; margin-inline: auto; }
.pg-hero-banner__image-wrap img { width: 100%; max-height: 400px; object-fit: cover; }
.pg-hero-banner__content { text-align: center; padding: 3rem 1rem; }
.pg-hero-banner__title {
	margin: 0 auto 1.5rem;
	max-width: 60rem;
	font-size: clamp(1.9rem, 4vw, 3rem);
	color: hsl(var(--turquoise));
	text-wrap: balance;
}
.pg-hero-banner__subtitle {
	margin: 0 auto;
	max-width: 48rem;
	font-size: clamp(1.1rem, 2vw, 1.25rem);
	color: hsl(var(--foreground) / 0.8);
}

.pg-section-heading { text-align: center; margin-bottom: 4rem; }
.pg-section-heading h2 {
	margin: 0 0 1rem;
	font-size: clamp(2.25rem, 5vw, 3rem);
}
.pg-section-heading__bar {
	width: 6rem;
	height: 0.5rem;
	margin-inline: auto;
	border-radius: 999px;
	background: hsl(var(--vibrant-green));
}

/* Featured sections (alternating) */
.pg-featured { padding-block: 5rem; }
@media (min-width: 768px) { .pg-featured { padding-block: 7rem; } }
.pg-featured__inner {
	display: flex;
	flex-direction: column;
	gap: 3rem;
	align-items: center;
	max-width: 72rem;
	margin-inline: auto;
}
@media (min-width: 768px) {
	.pg-featured__inner { flex-direction: row; }
	.pg-featured--alt .pg-featured__inner { flex-direction: row-reverse; }
}
.pg-featured__media { flex: 1; width: 100%; }
.pg-featured__media .pg-artistic-frame,
.pg-featured__media .pg-artistic-frame-alt {
	max-width: 28rem;
	margin-inline: auto;
	aspect-ratio: 1 / 1;
}
.pg-featured__body { flex: 1; text-align: center; }
@media (min-width: 768px) { .pg-featured__body { text-align: left; } }
.pg-featured__body h2 { font-family: var(--font-display); font-weight: 400; font-size: clamp(2.25rem, 5vw, 3rem); margin: 0 0 1.5rem; }
.pg-featured__body p { font-size: 1.25rem; color: hsl(var(--foreground) / 0.8); margin: 0; }

/* Book cards (front page) */
.pg-book-card {
	display: flex;
	flex-direction: column;
	height: 100%;
	background: #fff;
	border: 4px solid #fff;
	border-radius: 1.5rem;
	box-shadow: 0 10px 25px -5px rgb(0 0 0 / 0.1);
	overflow: hidden;
	transition: box-shadow 0.3s ease;
}
.pg-book-card:hover { box-shadow: 0 25px 50px -12px rgb(0 0 0 / 0.25); }
.pg-book-card__media {
	position: relative;
	aspect-ratio: 3 / 4;
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 2rem;
	background: hsl(var(--turquoise) / 0.1);
}
.pg-book-card__media .pg-artistic-frame,
.pg-book-card__media .pg-artistic-frame-alt { width: 100%; height: 100%; }
.pg-book-card__badges {
	position: absolute;
	top: 1rem;
	right: 1rem;
	display: flex;
	flex-direction: column;
	gap: 0.5rem;
	align-items: flex-end;
	z-index: 5;
}
.pg-badge {
	display: inline-block;
	padding: 0.45rem 1.1rem;
	border-radius: 999px;
	font-size: 0.875rem;
	font-weight: 800;
	box-shadow: 0 6px 12px -4px rgb(0 0 0 / 0.3);
}
.pg-badge--coming-soon {
	background: hsl(var(--vibrant-purple));
	color: #fff;
	transform: rotate(3deg);
	animation: pg-pulse 2s ease-in-out infinite;
}
@keyframes pg-pulse { 50% { opacity: 0.7; } }
.pg-badge--age { background: hsl(var(--deep-yellow)); color: hsl(var(--foreground)); }

.pg-book-card__body {
	display: flex;
	flex-direction: column;
	flex-grow: 1;
	padding: 1.75rem 2rem 2rem;
}
.pg-book-card__title {
	margin: 0 0 0.75rem;
	font-size: 1.5rem;
	transition: color 0.2s ease;
	text-wrap: balance;
}
.pg-book-card:hover .pg-book-card__title { color: hsl(var(--turquoise)); }
.pg-book-card__desc { color: hsl(var(--muted-foreground)); flex-grow: 1; margin: 0 0 2rem; }
.pg-book-card__footer { margin-top: auto; padding-top: 1rem; border-top: 1px solid hsl(var(--border) / 0.5); }
.pg-book-card__link {
	display: inline-flex;
	align-items: center;
	gap: 0.5rem;
	font-size: 1.1rem;
	font-weight: 800;
	color: hsl(var(--turquoise));
}
.pg-book-card__link:hover { color: hsl(var(--turquoise) / 0.8); }
.pg-book-card__link .pg-icon { transition: transform 0.2s ease; }
.pg-book-card__link:hover .pg-icon { transform: translateX(4px); }
.pg-book-card__notify {
	display: flex;
	align-items: center;
	justify-content: space-between;
	width: 100%;
	padding: 0.85rem 1.25rem;
	border: 2px solid hsl(var(--vibrant-purple));
	border-radius: 0.9rem;
	background: transparent;
	color: hsl(var(--vibrant-purple));
	font-weight: 800;
	font-family: var(--font-body);
	font-size: 1rem;
	cursor: pointer;
	transition: background-color 0.2s ease;
}
.pg-book-card__notify:hover { background: hsl(var(--vibrant-purple) / 0.05); }

/* Printables carousel */
.pg-printables__inner {
	display: grid;
	grid-template-columns: 1fr;
	gap: 4rem;
	align-items: center;
}
@media (min-width: 768px) { .pg-printables__inner { grid-template-columns: 1fr 1fr; } }
.pg-carousel { position: relative; display: flex; align-items: center; justify-content: center; }
.pg-carousel__frame {
	width: 75%;
	aspect-ratio: 4 / 5;
	background: #fff;
	padding: 1rem;
}
.pg-carousel__frame img { width: 100%; height: 100%; object-fit: contain; }
.pg-carousel__btn {
	position: absolute;
	top: 50%;
	transform: translateY(-50%);
	z-index: 10;
	width: 3rem;
	height: 3rem;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	border: 0;
	border-radius: 999px;
	background: rgb(255 255 255 / 0.6);
	box-shadow: 0 4px 10px rgb(0 0 0 / 0.15);
	color: hsl(var(--vibrant-green));
	cursor: pointer;
	transition: background-color 0.2s ease;
}
.pg-carousel__btn:hover { background: #fff; }
.pg-carousel__btn--prev { left: 0; }
.pg-carousel__btn--next { right: 0; }
.pg-carousel__btn .pg-icon { width: 1.5rem; height: 1.5rem; }
.pg-carousel__slide { display: none; height: 100%; }
.pg-carousel__slide.is-active { display: block; }
.pg-carousel__frame .pg-carousel__slide img { width: 100%; height: 100%; object-fit: contain; }

.pg-eyebrow {
	display: inline-flex;
	align-items: center;
	gap: 0.75rem;
	margin-bottom: 1rem;
	font-size: 1.05rem;
	font-weight: 800;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	color: hsl(var(--vibrant-purple));
}
.pg-eyebrow .pg-icon { width: 2rem; height: 2rem; color: hsl(var(--deep-yellow)); fill: hsl(var(--deep-yellow)); }

.pg-printables__body h2 {
	margin: 0 0 1.5rem;
	font-size: clamp(2.25rem, 5vw, 3.5rem);
	color: hsl(var(--vibrant-green));
	text-wrap: balance;
}
.pg-printables__body p {
	font-size: 1.25rem;
	color: hsl(var(--muted-foreground));
	margin: 0 0 2rem;
}

/* Kaka & Friends World card */
.pg-world-card {
	max-width: 56rem;
	margin-inline: auto;
	text-align: center;
	background: #fff;
	padding: 3rem 2rem;
	border-radius: 3rem !important;
	border: 8px solid hsl(var(--vibrant-purple) / 0.2) !important;
	box-shadow: 0 20px 40px -12px rgb(0 0 0 / 0.15);
}
@media (min-width: 768px) { .pg-world-card { padding: 4rem; } }
.pg-world-card .pg-icon--big {
	width: 4rem;
	height: 4rem;
	color: hsl(var(--vibrant-purple));
	fill: hsl(var(--vibrant-purple) / 0.2);
	margin-bottom: 1.5rem;
}
.pg-world-card h2 {
	font-family: var(--font-display);
	font-weight: 400;
	font-size: clamp(2.25rem, 5vw, 3.5rem);
	color: hsl(var(--vibrant-purple));
	margin: 0 0 1.5rem;
}
.pg-world-card p {
	font-size: 1.25rem;
	color: hsl(var(--muted-foreground));
	max-width: 42rem;
	margin: 0 auto 2.5rem;
}

/* Meet the author (front page) */
.pg-author-card {
	max-width: 64rem;
	margin-inline: auto;
	background: hsl(var(--turquoise) / 0.1);
	border: 4px solid hsl(var(--turquoise) / 0.3) !important;
	border-radius: 3rem !important;
	padding: 2rem;
	display: flex;
	flex-direction: column;
	gap: 3rem;
	align-items: center;
}
@media (min-width: 768px) { .pg-author-card { flex-direction: row; padding: 3rem; } }
.pg-author-card__photo {
	width: 12rem;
	height: 12rem;
	flex-shrink: 0;
	border-radius: 999px;
	overflow: hidden;
	border: 8px solid #fff;
	box-shadow: 0 20px 40px -12px rgb(0 0 0 / 0.2);
	transform: rotate(-3deg);
}
@media (min-width: 768px) { .pg-author-card__photo { width: 16rem; height: 16rem; } }
.pg-author-card__photo img { width: 100%; height: 100%; object-fit: cover; }
.pg-author-card h2 { font-size: clamp(2.25rem, 5vw, 3rem); color: hsl(var(--turquoise)); margin: 0 0 1rem; }
.pg-author-card h3 { font-size: 1.5rem; color: hsl(var(--vibrant-purple)); margin: 0 0 1rem; }
.pg-author-card p { font-size: 1.1rem; color: hsl(var(--muted-foreground)); margin: 0 0 2rem; }

/* Newsletter section */
.pg-newsletter {
	background: hsl(var(--deep-yellow));
	color: hsl(var(--foreground));
	text-align: center;
}
.pg-newsletter h2 {
	font-family: var(--font-display);
	font-weight: 400;
	font-size: clamp(2.25rem, 5vw, 3.5rem);
	margin: 0 0 1.5rem;
}
.pg-newsletter p {
	font-size: 1.25rem;
	font-weight: 600;
	max-width: 44rem;
	margin: 0 auto 2.5rem;
}
.pg-newsletter-form--hero {
	display: flex;
	flex-direction: column;
	gap: 1rem;
	max-width: 36rem;
	margin-inline: auto;
}
@media (min-width: 640px) { .pg-newsletter-form--hero { flex-direction: row; } }
.pg-newsletter-form--hero input[type="email"] {
	flex: 1;
	height: 3.5rem;
	font-size: 1.1rem;
	font-family: var(--font-body);
	padding: 0 1.25rem;
	border: 0;
	border-radius: 0.9rem;
	background: #fff;
	color: #111;
}
.pg-newsletter-form--hero input[type="email"]:focus {
	outline: 4px solid hsl(var(--vibrant-purple));
}
.pg-newsletter-form--hero .pg-button { height: 3.5rem; flex-shrink: 0; }

.pg-form-feedback { min-height: 1.5rem; margin: 0.5rem 0 0; font-weight: 700; width: 100%; }
.pg-form-feedback.is-error { color: #b91c1c; }
.pg-form-feedback.is-success { color: hsl(var(--vibrant-green)); }
.pg-newsletter .pg-form-feedback.is-success { color: hsl(var(--foreground)); }

/* ------------------------------------------------------------- Archive cards (Books page) */

.pg-shop-grid { max-width: 84rem; margin-inline: auto; gap: 3rem; }

.pg-shop-card {
	display: flex;
	flex-direction: column;
	height: 100%;
	background: #fff;
	border-radius: 2.5rem;
	padding: 2rem;
	border: 4px solid hsl(var(--pg-accent, var(--vibrant-purple)) / 0.2);
	box-shadow: 0 20px 25px -5px rgb(0 0 0 / 0.1);
	transition: box-shadow 0.3s ease;
}
.pg-shop-card:hover { box-shadow: 0 25px 50px -12px rgb(0 0 0 / 0.25); }
.pg-shop-card__media { display: flex; justify-content: center; margin-bottom: 2.5rem; }
.pg-shop-card__media .pg-artistic-frame {
	width: 100%;
	max-width: 16rem;
	aspect-ratio: 3 / 4;
	transition: transform 0.5s ease;
}
.pg-shop-card:hover .pg-shop-card__media .pg-artistic-frame { transform: rotate(1deg) scale(1.05); }
.pg-shop-card__body { display: flex; flex-direction: column; flex-grow: 1; text-align: center; }
.pg-shop-card__title {
	margin: 0 0 0.75rem;
	font-size: 1.8rem;
	color: hsl(var(--pg-accent, var(--vibrant-purple)));
	text-wrap: balance;
}
.pg-shop-card__author { font-size: 1.1rem; font-weight: 800; color: hsl(var(--muted-foreground)); margin: 0 0 1rem; }
.pg-shop-card__desc { font-size: 0.95rem; color: hsl(var(--foreground) / 0.8); margin: 0 0 2rem; }
.pg-shop-card__footer { margin-top: auto; }
.pg-shop-card__footer .pg-button { width: 100%; height: 4rem; font-size: 1.25rem; border-radius: 1.25rem; }

/* Printable cards (archive) */
.pg-printable-card {
	display: flex;
	flex-direction: column;
	height: 100%;
	background: #fff;
	border-radius: 3rem;
	padding: 2rem;
	border: 4px solid hsl(var(--pg-accent, var(--vibrant-purple)) / 0.2);
	box-shadow: 0 20px 40px -10px hsl(var(--pg-accent, var(--vibrant-purple)) / 0.15);
	transition: transform 0.3s ease;
}
@media (min-width: 768px) { .pg-printable-card { padding: 2.5rem; } }
.pg-printable-card:hover { transform: translateY(-0.5rem); }
.pg-printable-card__media { position: relative; margin-bottom: 2rem; }
.pg-printable-card__star {
	position: absolute;
	top: -1rem;
	right: -1rem;
	width: 4rem;
	height: 4rem;
	display: flex;
	align-items: center;
	justify-content: center;
	background: hsl(var(--deep-yellow));
	border-radius: 999px;
	box-shadow: 0 10px 15px -3px rgb(0 0 0 / 0.2);
	z-index: 10;
	transform: rotate(12deg);
	transition: transform 0.5s ease;
}
.pg-printable-card:hover .pg-printable-card__star { transform: rotate(45deg); }
.pg-printable-card__star .pg-icon { width: 2rem; height: 2rem; color: #fff; fill: #fff; }
.pg-printable-card__media .pg-artistic-frame { aspect-ratio: 4 / 3; border-width: 8px; }
.pg-printable-card__ages {
	display: inline-block;
	width: fit-content;
	padding: 0.5rem 1.25rem;
	border-radius: 999px;
	background: hsl(var(--deep-yellow) / 0.2);
	color: hsl(var(--bright-orange));
	font-size: 0.875rem;
	font-weight: 800;
	text-transform: uppercase;
	letter-spacing: 0.1em;
	margin-bottom: 1.5rem;
}
.pg-printable-card__title {
	margin: 0 0 1.5rem;
	font-size: clamp(1.75rem, 3vw, 2.25rem);
	color: hsl(var(--pg-accent, var(--vibrant-purple)));
	line-height: 1.2;
}
.pg-printable-card__desc { font-size: 1.1rem; color: hsl(var(--foreground) / 0.8); flex-grow: 1; margin: 0 0 2.5rem; }
.pg-printable-card__footer .pg-button { width: 100%; height: 4rem; font-size: 1.25rem; border-radius: 1.25rem; box-shadow: 0 10px 25px -5px hsl(var(--pg-accent, var(--vibrant-purple)) / 0.4); }

/* ------------------------------------------------------------- Kaka & Friends page */

.pg-kaka-intro { min-height: 60vh; display: flex; align-items: center; justify-content: center; }
.pg-kaka-intro .pg-page-hero__inner { max-width: 64rem; }
.pg-pill {
	display: inline-flex;
	align-items: center;
	gap: 0.5rem;
	padding: 0.5rem 1rem;
	border-radius: 999px;
	background: #fff;
	color: hsl(var(--vibrant-purple));
	font-size: 0.875rem;
	font-weight: 800;
	text-transform: uppercase;
	letter-spacing: 0.15em;
	box-shadow: 0 4px 10px rgb(0 0 0 / 0.1);
	margin-bottom: 2rem;
}
.pg-kaka-intro__text {
	font-size: clamp(1.4rem, 3vw, 1.9rem);
	font-weight: 800;
	color: hsl(var(--foreground) / 0.8);
	line-height: 1.6;
	max-width: 56rem;
	margin-inline: auto;
}

.pg-statement { text-align: center; max-width: 56rem; margin-inline: auto; }
.pg-statement .pg-icon--big { width: 3rem; height: 3rem; margin-bottom: 1.5rem; }
.pg-statement h2 { font-size: clamp(1.9rem, 4vw, 2.5rem); margin: 0 0 2rem; }
.pg-statement--display h2 { font-family: var(--font-display); font-weight: 400; font-size: clamp(2.25rem, 5vw, 3rem); }
.pg-statement p { font-size: clamp(1.2rem, 2.5vw, 1.5rem); color: hsl(var(--foreground) / 0.8); margin: 0; }

.pg-rule-stick-card {
	background: #fff;
	padding: 2.5rem 2rem;
	border-radius: 3rem !important;
	box-shadow: 0 20px 40px -12px rgb(0 0 0 / 0.15);
	text-align: center;
	max-width: 64rem;
	margin-inline: auto;
}
@media (min-width: 768px) { .pg-rule-stick-card { padding: 4rem; } }

.pg-character { display: flex; flex-direction: column; align-items: center; }
.pg-character__frame { width: 100%; max-width: 300px; aspect-ratio: 4 / 5; margin-bottom: 1.5rem; }
.pg-character__name { font-size: 1.5rem; margin: 0; }
.pg-character__desc { text-align: center; margin: 1rem 0 0; color: hsl(var(--foreground) / 0.8); }

/* ------------------------------------------------------------- Parents & Teachers */

.pg-pt-grid {
	display: grid;
	grid-template-columns: 1fr;
	gap: 4rem;
	max-width: 72rem;
	margin-inline: auto;
	align-items: start;
}
@media (min-width: 768px) { .pg-pt-grid { grid-template-columns: 1fr 1fr; } }

.pg-pt-card {
	padding: 2rem;
	border-radius: 1.5rem !important;
}
.pg-pt-card--yellow { background: hsl(var(--deep-yellow) / 0.2); }
.pg-pt-card--turquoise { background: hsl(var(--turquoise) / 0.1); border: 4px solid hsl(var(--turquoise) / 0.3) !important; }
.pg-pt-card--green { background: hsl(var(--vibrant-green) / 0.1); border: 4px solid hsl(var(--vibrant-green) / 0.3) !important; }
.pg-pt-card .pg-icon--big { width: 3.5rem; height: 3.5rem; margin-bottom: 1.25rem; }
.pg-pt-card h2 { font-size: clamp(1.75rem, 3vw, 2.25rem); margin: 0 0 1rem; }
.pg-pt-card h3 { font-family: var(--font-section); font-weight: 700; font-size: 1.5rem; margin: 0 0 0.75rem; }
.pg-pt-card p { font-size: 1.05rem; color: hsl(var(--foreground) / 0.8); margin: 0 0 1.5rem; white-space: pre-line; }
.pg-pt-card ul { list-style: none; margin: 0 0 2rem; padding: 0; display: flex; flex-direction: column; gap: 1rem; }
.pg-pt-card ul li { display: flex; align-items: flex-start; gap: 0.75rem; font-size: 1.05rem; }
.pg-pt-card ul li .pg-icon { width: 1.5rem; height: 1.5rem; color: hsl(var(--deep-yellow)); fill: hsl(var(--deep-yellow)); margin-top: 0.2rem; }
.pg-pt-stack { display: flex; flex-direction: column; gap: 2rem; }

/* ------------------------------------------------------------- Blog */

.pg-featured-post {
	display: grid;
	grid-template-columns: 1fr;
	gap: 2rem;
	align-items: center;
	background: #fff;
	border-radius: 3rem;
	padding: 1rem;
	border: 4px solid hsl(var(--hot-pink) / 0.1);
	box-shadow: 0 20px 25px -5px rgb(0 0 0 / 0.1);
	transition: border-color 0.3s ease;
	margin-bottom: 4rem;
}
@media (min-width: 1024px) { .pg-featured-post { grid-template-columns: 1fr 1fr; gap: 3rem; margin-bottom: 6rem; } }
.pg-featured-post:hover { border-color: hsl(var(--hot-pink) / 0.3); }
.pg-featured-post__media { aspect-ratio: 4 / 3; border-radius: 2rem; }
.pg-featured-post__media img { transition: transform 0.7s ease; }
.pg-featured-post:hover .pg-featured-post__media img { transform: scale(1.05); }
.pg-featured-post__body { padding: 1.5rem; }
@media (min-width: 1024px) { .pg-featured-post__body { padding: 3rem; } }
.pg-featured-post__title { font-size: clamp(1.75rem, 3vw, 2.25rem); color: hsl(var(--vibrant-purple)); margin: 0 0 1.5rem; transition: color 0.3s ease; }
.pg-featured-post:hover .pg-featured-post__title { color: hsl(var(--hot-pink)); }
.pg-featured-post__excerpt { font-size: 1.1rem; color: hsl(var(--foreground) / 0.8); margin: 0 0 2rem; }

.pg-post-meta { display: flex; align-items: center; gap: 1rem; margin-bottom: 1rem; font-size: 0.875rem; font-weight: 800; }
.pg-post-meta__cat {
	display: inline-flex;
	align-items: center;
	gap: 0.35rem;
	padding: 0.35rem 1rem;
	border-radius: 999px;
	color: hsl(var(--hot-pink));
	background: hsl(var(--hot-pink) / 0.1);
}
.pg-post-meta__cat--green { color: hsl(var(--vibrant-green)); background: hsl(var(--vibrant-green) / 0.1); }
.pg-post-meta__date { display: inline-flex; align-items: center; gap: 0.35rem; color: hsl(var(--muted-foreground)); }

.pg-post-card {
	display: flex;
	flex-direction: column;
	height: 100%;
	background: #fff;
	border-radius: 2.5rem;
	padding: 1.5rem;
	border: 4px solid hsl(var(--deep-yellow) / 0.2);
	box-shadow: 0 20px 25px -5px rgb(0 0 0 / 0.1);
	transition: border-color 0.3s ease;
}
.pg-post-card:hover { border-color: hsl(var(--deep-yellow) / 0.5); }
.pg-post-card__media { aspect-ratio: 16 / 10; border-radius: 1.5rem; margin-bottom: 1.5rem; }
.pg-post-card__media img { transition: transform 0.7s ease; }
.pg-post-card:hover .pg-post-card__media img { transform: scale(1.05); }
.pg-post-card__title { font-size: 1.5rem; color: hsl(var(--vibrant-purple)); margin: 0 0 1rem; transition: color 0.3s ease; }
.pg-post-card:hover .pg-post-card__title { color: hsl(var(--deep-yellow)); }
.pg-post-card__title a, .pg-featured-post__title a { color: inherit; }
.pg-post-card__excerpt { color: hsl(var(--foreground) / 0.8); flex-grow: 1; margin: 0 0 2rem; }
.pg-read-more {
	display: inline-flex;
	align-items: center;
	gap: 0.4rem;
	font-size: 1.1rem;
	font-weight: 800;
	color: hsl(var(--bright-orange));
	transition: color 0.2s ease;
}
.pg-read-more:hover { color: hsl(var(--vibrant-purple)); }
.pg-read-more--turquoise { color: hsl(var(--turquoise)); font-size: 1.25rem; }

/* Single post */
.pg-single { max-width: 50rem; margin-inline: auto; }
.pg-single__media { border-radius: 2rem; margin-bottom: 3rem; }
.pg-single__content { font-size: 1.15rem; line-height: 1.9; }
.pg-single__content h2 { color: hsl(var(--vibrant-purple)); }
.pg-single__content h3 { color: hsl(var(--turquoise)); }

.pg-pagination { margin-top: 4rem; text-align: center; font-weight: 800; }
.pg-pagination .page-numbers {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 2.75rem;
	height: 2.75rem;
	padding-inline: 0.75rem;
	border-radius: 0.9rem;
	background: #fff;
	color: hsl(var(--vibrant-purple));
	box-shadow: 0 4px 10px rgb(0 0 0 / 0.08);
	margin-inline: 0.2rem;
}
.pg-pagination .page-numbers.current { background: hsl(var(--vibrant-purple)); color: #fff; }

/* ------------------------------------------------------------- Testimonials */

.pg-testimonials-grid {
	columns: 1;
	column-gap: 2rem;
	max-width: 84rem;
	margin-inline: auto;
}
@media (min-width: 768px) { .pg-testimonials-grid { columns: 2; } }
@media (min-width: 1024px) { .pg-testimonials-grid { columns: 3; } }

.pg-testimonial { break-inside: avoid; margin-bottom: 2rem; }
.pg-testimonial__card {
	background: #fff;
	padding: 2.5rem;
	border: 4px solid hsl(var(--pg-accent, var(--vibrant-purple)) / 0.3);
	box-shadow: 0 15px 35px -5px hsl(var(--pg-accent, var(--vibrant-purple)) / 0.15);
	transition: transform 0.3s ease;
}
.pg-testimonial__card:hover { transform: translateY(-0.5rem); }
.pg-testimonial__stars { display: flex; gap: 0.25rem; margin-bottom: 1.5rem; }
.pg-testimonial__stars .pg-icon { width: 1.5rem; height: 1.5rem; color: hsl(var(--deep-yellow)); fill: hsl(var(--deep-yellow)); }
.pg-testimonial__quote {
	font-size: 1.15rem;
	font-style: italic;
	color: hsl(var(--foreground) / 0.8);
	margin: 0 0 2rem;
	line-height: 1.8;
}
.pg-testimonial__footer { padding-top: 1.5rem; border-top: 2px dashed hsl(var(--pg-accent, var(--vibrant-purple)) / 0.2); }
.pg-testimonial__name { font-size: 1.25rem; color: hsl(var(--pg-accent, var(--vibrant-purple))); margin: 0; }
.pg-testimonial__role {
	font-size: 0.8rem;
	font-weight: 800;
	text-transform: uppercase;
	letter-spacing: 0.1em;
	color: hsl(var(--muted-foreground));
	margin: 0.25rem 0 0;
}

/* ------------------------------------------------------------- Inside PG Books */

.pg-story-grid {
	display: grid;
	grid-template-columns: 1fr;
	gap: 3rem;
	align-items: center;
	max-width: 72rem;
	margin-inline: auto;
}
@media (min-width: 1024px) { .pg-story-grid { grid-template-columns: 1fr 1fr; gap: 5rem; } }
.pg-story-card {
	background: hsl(var(--turquoise) / 0.05);
	padding: 2rem;
	border-radius: 3rem !important;
	border: 4px solid hsl(var(--turquoise) / 0.2) !important;
}
@media (min-width: 768px) { .pg-story-card { padding: 3rem; } }
.pg-story-card__heading { display: flex; align-items: center; gap: 1rem; margin-bottom: 1.5rem; }
.pg-story-card__heading .pg-icon { width: 2.5rem; height: 2.5rem; color: hsl(var(--turquoise)); }
.pg-story-card h2 { font-size: clamp(1.75rem, 3vw, 2.25rem); color: hsl(var(--turquoise)); margin: 0; }
.pg-story-card__text { font-size: 1.15rem; color: hsl(var(--foreground) / 0.8); white-space: pre-line; }
.pg-story-grid__media { display: flex; justify-content: center; }
.pg-story-grid__media .pg-artistic-frame-alt { width: 100%; max-width: 28rem; aspect-ratio: 1 / 1; border-width: 8px; }

.pg-author-feature { position: relative; max-width: 64rem; margin-inline: auto; }
.pg-author-feature__ribbon {
	position: absolute;
	top: -1.5rem;
	left: 50%;
	transform: translateX(-50%);
	display: inline-flex;
	align-items: center;
	gap: 0.75rem;
	background: hsl(var(--hot-pink));
	color: #fff;
	padding: 0.75rem 2rem;
	border-radius: 999px;
	font-weight: 800;
	font-size: 1.25rem;
	box-shadow: 0 10px 25px -5px hsl(var(--hot-pink) / 0.5);
	z-index: 10;
	white-space: nowrap;
}
.pg-author-feature__card {
	background: #fff;
	padding: 4rem 2rem 2.5rem;
	border-radius: 3rem !important;
	border: 4px solid hsl(var(--hot-pink) / 0.2) !important;
	box-shadow: 0 20px 25px -5px rgb(0 0 0 / 0.1);
	display: flex;
	flex-direction: column;
	gap: 3rem;
	align-items: center;
}
@media (min-width: 1024px) { .pg-author-feature__card { flex-direction: row; padding: 5rem 4rem 4rem; } }
.pg-author-feature__photo {
	width: 16rem;
	height: 16rem;
	flex-shrink: 0;
	border-radius: 999px;
	overflow: hidden;
	border: 8px solid hsl(var(--hot-pink) / 0.1);
	box-shadow: 0 25px 50px -12px rgb(0 0 0 / 0.25);
	transform: rotate(-3deg);
}
@media (min-width: 768px) { .pg-author-feature__photo { width: 20rem; height: 20rem; } }
.pg-author-feature__photo img { width: 100%; height: 100%; object-fit: cover; }
.pg-author-feature__body { text-align: center; }
@media (min-width: 1024px) { .pg-author-feature__body { text-align: left; } }
.pg-author-feature__name {
	font-family: var(--font-display);
	font-weight: 400;
	font-size: clamp(2.25rem, 5vw, 3rem);
	color: hsl(var(--hot-pink));
	margin: 0 0 1rem;
}
.pg-author-feature__tagline { font-size: 1.5rem; color: hsl(var(--vibrant-purple)); margin: 0 0 1.5rem; }
.pg-author-feature__bio { font-size: 1.15rem; color: hsl(var(--foreground) / 0.8); white-space: pre-line; }

/* ------------------------------------------------------------- Contact page */

.pg-contact-section { position: relative; overflow: hidden; }
.pg-contact-decor { position: absolute; opacity: 0.5; pointer-events: none; }
.pg-contact-decor .pg-icon { width: 4rem; height: 4rem; }
.pg-contact-decor--star { top: 5rem; left: 10%; color: hsl(var(--deep-yellow)); }
.pg-contact-decor--star .pg-icon { fill: hsl(var(--deep-yellow)); }
.pg-contact-decor--heart { bottom: 8rem; right: 15%; color: hsl(var(--hot-pink)); }
.pg-contact-decor--heart .pg-icon { fill: hsl(var(--hot-pink)); width: 5rem; height: 5rem; }
.pg-contact-decor--sparkles { top: 33%; right: 10%; color: hsl(var(--turquoise)); opacity: 0.4; }
.pg-contact-decor--message { bottom: 25%; left: 15%; color: hsl(var(--vibrant-purple)); opacity: 0.4; }

.pg-contact-card {
	position: relative;
	max-width: 56rem;
	margin-inline: auto;
	background: #fff;
	padding: 3rem 1.5rem;
	border-radius: 3rem !important;
	border: 8px solid hsl(var(--turquoise) / 0.3) !important;
	box-shadow: 0 25px 50px -12px hsl(var(--turquoise) / 0.25);
	text-align: center;
	z-index: 1;
}
@media (min-width: 768px) { .pg-contact-card { padding: 5rem; } }
.pg-contact-card__icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 6rem;
	height: 6rem;
	border-radius: 999px;
	background: hsl(var(--turquoise) / 0.1);
	color: hsl(var(--turquoise));
	margin-bottom: 2rem;
}
.pg-contact-card__icon .pg-icon { width: 3rem; height: 3rem; }
.pg-contact-card h1 {
	font-size: clamp(2.75rem, 6vw, 4.5rem);
	color: hsl(var(--vibrant-purple));
	text-transform: uppercase;
	margin: 0 0 2rem;
}
.pg-contact-card__message {
	font-size: clamp(1.2rem, 2.5vw, 1.5rem);
	font-weight: 800;
	color: hsl(var(--foreground) / 0.8);
	max-width: 42rem;
	margin: 0 auto 2rem;
	white-space: pre-line;
}
.pg-contact-card__email {
	display: inline-flex;
	align-items: center;
	gap: 0.75rem;
	padding: 1rem 2rem;
	background: hsl(var(--hot-pink));
	color: #fff !important;
	border-radius: 999px !important;
	font-weight: 800;
	font-size: clamp(1.4rem, 3vw, 1.9rem);
	box-shadow: 0 20px 40px -12px hsl(var(--hot-pink) / 0.5);
	transition: transform 0.2s ease, background-color 0.2s ease;
}
.pg-contact-card__email:hover { transform: scale(1.05); background: hsl(var(--hot-pink) / 0.9); }
.pg-contact-card__email .pg-icon { width: 2rem; height: 2rem; }
.pg-contact-card__closing {
	font-family: var(--font-section);
	font-weight: 700;
	font-size: clamp(1.4rem, 3vw, 1.9rem);
	color: hsl(var(--turquoise));
	margin: 2.5rem 0 0;
}

.pg-contact-form {
	max-width: 32rem;
	margin: 3rem auto 0;
	display: flex;
	flex-direction: column;
	gap: 1rem;
	text-align: left;
}
.pg-contact-form input,
.pg-contact-form textarea {
	width: 100%;
	font-family: var(--font-body);
	font-size: 1rem;
	padding: 0.9rem 1.1rem;
	border: 2px solid hsl(var(--border));
	border-radius: 0.9rem;
	background: hsl(var(--background));
}
.pg-contact-form input:focus,
.pg-contact-form textarea:focus { outline: 3px solid hsl(var(--vibrant-purple) / 0.5); border-color: hsl(var(--vibrant-purple)); }

/* ------------------------------------------------------------- 404 */

.pg-404 {
	min-height: 60vh;
	display: flex;
	align-items: center;
	justify-content: center;
	text-align: center;
	padding: 4rem 1rem;
}
.pg-404 h1 { font-size: 4rem; color: hsl(var(--turquoise)); margin: 0 0 1rem; }
.pg-404 p { font-size: 1.25rem; font-weight: 800; color: hsl(var(--muted-foreground)); margin: 0 0 1.5rem; }

/* ------------------------------------------------------------- Footer */

.pg-footer {
	background: hsl(var(--footer-bg));
	color: hsl(var(--footer-fg));
	padding: 5rem 0 2.5rem;
	position: relative;
	overflow: hidden;
}
.pg-footer::after {
	content: "";
	position: absolute;
	top: 0;
	right: 0;
	width: 500px;
	height: 500px;
	background: hsl(var(--primary) / 0.05);
	border-radius: 999px;
	filter: blur(100px);
	transform: translate(50%, -50%);
	pointer-events: none;
}
.pg-footer__grid {
	position: relative;
	z-index: 1;
	display: grid;
	grid-template-columns: 1fr;
	gap: 3rem;
	margin-bottom: 4rem;
}
@media (min-width: 768px) { .pg-footer__grid { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 1024px) { .pg-footer__grid { grid-template-columns: repeat(5, 1fr); gap: 2rem; } }

.pg-footer__logo { height: 5rem; width: auto; object-fit: contain; }
.pg-footer__tagline {
	color: hsl(var(--footer-muted));
	font-size: 0.9rem;
	max-width: 280px;
	margin: 1.5rem 0 0;
}
.pg-footer__heading {
	font-family: var(--font-body);
	font-weight: 800;
	font-size: 1rem;
	letter-spacing: 0.05em;
	text-transform: uppercase;
	color: hsl(var(--footer-fg));
	margin: 0 0 1.5rem;
}
.pg-footer__links { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 0.9rem; }
.pg-footer__links a {
	display: inline-flex;
	align-items: center;
	gap: 0.35rem;
	color: hsl(var(--footer-muted));
	font-size: 0.95rem;
	transition: color 0.3s ease;
}
.pg-footer__links a:hover { color: hsl(var(--footer-fg)); }
.pg-footer__link-icon {
	width: 0.9rem;
	height: 0.9rem;
	opacity: 0;
	transform: translateX(-8px);
	transition: opacity 0.3s ease, transform 0.3s ease;
	color: hsl(var(--primary));
}
.pg-footer__links a:hover .pg-footer__link-icon { opacity: 1; transform: translateX(0); }
.pg-footer__links a span { transition: transform 0.3s ease; }
.pg-footer__links a:hover span { transform: translateX(4px); }

.pg-footer__social { display: flex; flex-wrap: wrap; gap: 1rem; max-width: 160px; }
.pg-footer__social-link {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 2.5rem;
	height: 2.5rem;
	border-radius: 999px;
	background: hsl(var(--background));
	border: 1px solid hsl(var(--border) / 0.5);
	color: hsl(var(--footer-bg));
	transition: all 0.3s ease;
}
.pg-footer__social-link:hover {
	background: hsl(var(--primary));
	color: #fff;
	transform: translateY(-4px);
	box-shadow: 0 6px 14px rgb(0 0 0 / 0.25);
}
.pg-footer__social-link .pg-icon { width: 1rem; height: 1rem; }

.pg-footer__note { color: hsl(var(--footer-muted)); font-size: 0.9rem; margin: 0 0 1.25rem; }
.pg-newsletter-form--footer { display: flex; flex-direction: column; gap: 0.75rem; }
.pg-newsletter-form--footer input[type="email"] {
	height: 2.75rem;
	font-size: 0.9rem;
	font-family: var(--font-body);
	padding: 0 1rem;
	border: 1px solid hsl(var(--border) / 0.5);
	border-radius: 0.6rem;
	background: hsl(var(--background));
	color: hsl(var(--foreground));
}
.pg-newsletter-form--footer .pg-button {
	height: 2.75rem;
	font-size: 0.9rem;
	font-weight: 700;
	padding: 0 1rem;
	border-radius: 0.6rem;
	box-shadow: none;
}
.pg-footer .pg-form-feedback.is-success { color: hsl(var(--footer-fg)); }

.pg-footer__bottom {
	position: relative;
	z-index: 1;
	padding-top: 2rem;
	border-top: 1px solid hsl(var(--border) / 0.2);
	text-align: center;
}
.pg-footer__bottom p { color: hsl(var(--footer-muted)); font-size: 0.9rem; font-weight: 600; margin: 0; }

/* ------------------------------------------------------------- Misc */

.pg-empty { text-align: center; padding: 3rem 0; color: hsl(var(--muted-foreground)); }

.pg-card { background: #fff; border-radius: 1.5rem; padding: 1.5rem; box-shadow: 0 10px 25px -5px rgb(0 0 0 / 0.08); }
.pg-card__media { display: block; aspect-ratio: 16 / 10; margin-bottom: 1.25rem; }
.pg-card__title { font-size: 1.4rem; margin: 0 0 0.5rem; }
.pg-card__title a { color: hsl(var(--vibrant-purple)); }
