/*
Theme Name: Printtextilien24
Theme URI: https://www.printtextilien24.de
Author: Busol
Description: Design für den Printtextilien24-Shop (Businessapp24-Designsystem: Fira Sans, Navy/Blau, Hell/Dunkel). Shop-Funktionen über das Plugin „BA24 Shop – Shopify Connector“.
Version: 1.0.4
Requires at least: 6.4
Requires PHP: 8.0
License: GPL-2.0-or-later
Text Domain: printtextilien24
*/

/*
 * Theme stylesheet for printtextilien24.de (Businessapp24 design system).
 * Shop markup (.ba24-*) is rendered by the plugin "BA24 Shop – Shopify
 * Connector"; this file only styles the theme templates and aligns the
 * plugin pages with the theme. Light/dark mode: the system preference applies
 * unless <html data-theme="light|dark"> is set by assets/js/theme.js (stored
 * in localStorage "pt24-theme", applied early by an inline head script).
 */

/* ---------- Design tokens (kept identical to the shop plugin so both share one look) ---------- */
:root {
	--ba24-navy: #14284b;
	--ba24-navy-deep: #0f1d36;
	--ba24-blue: #1667b8;
	--ba24-blue-hover: #0f4e8c;
	--ba24-accent: #6fb1f2;
	--ba24-bg: #f3f5f8;
	--ba24-card: #ffffff;
	--ba24-text: #2b3340;
	--ba24-heading: #14284b;
	--ba24-muted: #5a6575;
	--ba24-border: #dde3ea;
	--ba24-border-strong: #c9d3de;
	--ba24-soft: #e8f1fb;
	--ba24-selected: #f4f9fe;
	--ba24-amber: #f5b544;
	--ba24-accent-text: #1667b8;
	--ba24-glow:
		0 18px 40px -22px rgba(22, 103, 184, 0.45),
		0 2px 6px -2px rgba(20, 40, 75, 0.08);
	--ba24-glow-lg:
		0 30px 60px -28px rgba(22, 103, 184, 0.55),
		0 4px 14px -6px rgba(20, 40, 75, 0.12);
	--ba24-ease: cubic-bezier(0.2, 0.8, 0.2, 1);
	--ba24-spring: cubic-bezier(0.34, 1.56, 0.64, 1);
	--ba24-font: "Fira Sans", system-ui, -apple-system, "Segoe UI", sans-serif;
	--pt-line: rgba(20, 40, 75, 0.07);
	color-scheme: light;
}
@media (prefers-color-scheme: dark) {
	:root:not([data-theme="light"]) {
		--ba24-bg: #0c1524;
		--ba24-card: #15223a;
		--ba24-text: #d5deea;
		--ba24-heading: #f1f5fb;
		--ba24-muted: #9aa8bb;
		--ba24-border: #24344d;
		--ba24-border-strong: #2f4363;
		--ba24-soft: #1a2c4a;
		--ba24-selected: #182a47;
		--ba24-accent-text: #7db9f5;
		--ba24-glow:
			0 18px 40px -22px rgba(111, 177, 242, 0.25),
			0 2px 6px -2px rgba(0, 0, 0, 0.4);
		--ba24-glow-lg:
			0 30px 60px -28px rgba(111, 177, 242, 0.3),
			0 4px 14px -6px rgba(0, 0, 0, 0.5);
		--pt-line: rgba(125, 185, 245, 0.1);
		color-scheme: dark;
	}
}
:root[data-theme="dark"] {
	--ba24-bg: #0c1524;
	--ba24-card: #15223a;
	--ba24-text: #d5deea;
	--ba24-heading: #f1f5fb;
	--ba24-muted: #9aa8bb;
	--ba24-border: #24344d;
	--ba24-border-strong: #2f4363;
	--ba24-soft: #1a2c4a;
	--ba24-selected: #182a47;
	--ba24-accent-text: #7db9f5;
	--ba24-glow:
		0 18px 40px -22px rgba(111, 177, 242, 0.25),
		0 2px 6px -2px rgba(0, 0, 0, 0.4);
	--ba24-glow-lg:
		0 30px 60px -28px rgba(111, 177, 242, 0.3),
		0 4px 14px -6px rgba(0, 0, 0, 0.5);
	--pt-line: rgba(125, 185, 245, 0.1);
	color-scheme: dark;
}

/* ---------- Base ---------- */
*,
*::before,
*::after {
	box-sizing: border-box;
}
html {
	scroll-behavior: smooth;
	-webkit-text-size-adjust: 100%;
}
body {
	margin: 0;
	min-height: 100vh;
	display: flex;
	flex-direction: column;
	background: var(--ba24-bg);
	color: var(--ba24-text);
	font: 400 16px/1.6 var(--ba24-font);
	-webkit-font-smoothing: antialiased;
	transition:
		background-color 0.4s ease,
		color 0.4s ease;
}
/* Very subtle grid texture in the background, faded out towards the bottom. */
body::before {
	content: "";
	position: fixed;
	inset: 0;
	z-index: -1;
	pointer-events: none;
	background-image:
		linear-gradient(var(--pt-line) 1px, transparent 1px),
		linear-gradient(90deg, var(--pt-line) 1px, transparent 1px);
	background-size: 64px 64px;
	mask-image: radial-gradient(ellipse at 50% 0%, #000 0%, transparent 70%);
	-webkit-mask-image: radial-gradient(
		ellipse at 50% 0%,
		#000 0%,
		transparent 70%
	);
}
main {
	flex: 1 0 auto;
}
img {
	max-width: 100%;
	height: auto;
}
a {
	color: var(--ba24-accent-text);
}
h1,
h2,
h3,
h4 {
	color: var(--ba24-heading);
	line-height: 1.2;
	font-weight: 700;
}
:focus-visible {
	outline: 2px solid var(--ba24-accent);
	outline-offset: 3px;
	border-radius: 6px;
}
.pt-wrap {
	width: min(1240px, 100% - 40px);
	margin-inline: auto;
}
.pt-skip {
	position: absolute;
	left: -9999px;
	top: 8px;
	z-index: 1000;
	padding: 10px 16px;
	border-radius: 10px;
	background: #fff;
	color: var(--ba24-navy);
}
.pt-skip:focus {
	left: 8px;
}
.screen-reader-text {
	position: absolute !important;
	width: 1px;
	height: 1px;
	overflow: hidden;
	clip: rect(0 0 0 0);
	white-space: nowrap;
}

/* ---------- Buttons ---------- */
.pt-btn {
	--mx: 50%;
	--my: 50%;
	position: relative;
	overflow: hidden;
	isolation: isolate;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 8px;
	min-height: 52px;
	padding: 0 26px;
	border: 0;
	border-radius: 999px;
	font: 600 16px/1 var(--ba24-font);
	text-decoration: none;
	cursor: pointer;
	white-space: nowrap;
	transition:
		background 0.3s var(--ba24-ease),
		transform 0.25s var(--ba24-ease),
		box-shadow 0.3s;
}
.pt-btn::before {
	content: "";
	position: absolute;
	z-index: -1;
	left: var(--mx);
	top: var(--my);
	width: 0;
	height: 0;
	border-radius: 50%;
	transform: translate(-50%, -50%);
	background: rgba(255, 255, 255, 0.16);
	transition:
		width 0.45s var(--ba24-ease),
		height 0.45s var(--ba24-ease);
}
.pt-btn:hover::before {
	width: 260%;
	height: 260%;
}
.pt-btn:hover {
	transform: translateY(-1px);
}
.pt-btn:active {
	transform: scale(0.98);
}
.pt-btn--primary {
	background: var(--ba24-blue);
	color: #fff;
	box-shadow: 0 12px 26px -14px rgba(22, 103, 184, 0.9);
}
.pt-btn--primary:hover {
	background: var(--ba24-blue-hover);
	color: #fff;
}
.pt-btn--glass {
	background: rgba(255, 255, 255, 0.08);
	color: #fff;
	box-shadow: inset 0 0 0 1.5px rgba(255, 255, 255, 0.3);
}
.pt-btn--glass:hover {
	color: #fff;
}
.pt-btn--navy {
	background: var(--ba24-navy);
	color: #fff;
}
.pt-btn--navy:hover {
	color: #fff;
}
.pt-btn--ghost {
	background: transparent;
	color: var(--ba24-accent-text);
	box-shadow: inset 0 0 0 1.5px var(--ba24-border-strong);
}
.pt-btn--ghost::before {
	background: var(--ba24-soft);
}

/* ---------- Header ---------- */
.pt-header {
	position: sticky;
	top: 0;
	z-index: 100;
	background: var(--ba24-navy);
	color: #fff;
	transition: box-shadow 0.3s;
}
.admin-bar .pt-header {
	top: 32px;
}
@media (max-width: 782px) {
	.admin-bar .pt-header {
		top: 0;
		position: relative;
	}
}
.pt-header.is-scrolled {
	box-shadow: 0 18px 40px -24px rgba(0, 0, 0, 0.55);
}
.pt-header__inner {
	display: flex;
	align-items: center;
	gap: 12px 24px;
	min-height: 72px;
}
.pt-brand {
	display: inline-flex;
	align-items: center;
	color: #fff;
	text-decoration: none;
}
.pt-brand__word {
	font-size: 22px;
	font-weight: 700;
	letter-spacing: -0.01em;
}
.pt-brand__word span {
	color: var(--ba24-accent);
}
.pt-brand__logo {
	max-height: 44px;
	width: auto;
}
.pt-nav {
	flex: 1 1 auto;
}
.pt-nav__inner {
	min-height: 0;
}
.pt-menu {
	display: flex;
	flex-wrap: wrap;
	gap: 4px;
	margin: 0;
	padding: 0;
	list-style: none;
}
.pt-menu a {
	display: block;
	padding: 10px 14px;
	border-radius: 10px;
	color: rgba(255, 255, 255, 0.85);
	text-decoration: none;
	font-weight: 500;
	font-size: 15px;
	transition:
		background 0.25s,
		color 0.25s;
}
.pt-menu a:hover {
	color: #fff;
	background: rgba(255, 255, 255, 0.06);
}
.pt-menu .current-menu-item > a,
.pt-menu .current_page_item > a,
.pt-menu a[aria-current="page"] {
	color: #fff;
	background: rgba(255, 255, 255, 0.12);
}
.pt-menu .sub-menu {
	list-style: none;
	margin: 0;
	padding: 0 0 0 12px;
}
.pt-actions {
	display: flex;
	align-items: center;
	gap: 10px;
}
.pt-theme {
	display: inline-flex;
	padding: 3px;
	border-radius: 999px;
	background: rgba(255, 255, 255, 0.08);
}
.pt-theme button {
	display: grid;
	place-items: center;
	width: 34px;
	height: 34px;
	padding: 0;
	border: 0;
	border-radius: 50%;
	background: transparent;
	color: rgba(255, 255, 255, 0.7);
	cursor: pointer;
	transition:
		background 0.3s var(--ba24-ease),
		color 0.3s;
}
.pt-theme button:hover {
	color: #fff;
}
.pt-theme button.is-on {
	background: rgba(255, 255, 255, 0.16);
	color: #fff;
}
.pt-icon-link {
	display: grid;
	place-items: center;
	width: 44px;
	height: 44px;
	border-radius: 50%;
	color: #fff;
	transition: background 0.25s;
}
.pt-icon-link:hover {
	background: rgba(255, 255, 255, 0.08);
	color: #fff;
}
.pt-cart .ba24-cart-btn {
	height: 44px;
	padding: 0 16px;
	border-radius: 999px;
	background: var(--ba24-blue);
	color: #fff;
	font: 600 15px var(--ba24-font);
	transition:
		background 0.25s,
		transform 0.25s var(--ba24-ease);
}
.pt-cart .ba24-cart-btn:hover {
	background: var(--ba24-blue-hover);
	color: #fff;
	transform: translateY(-1px);
}
.pt-cart .ba24-cart-btn__count {
	top: -6px;
	right: -6px;
	box-shadow: 0 0 0 2px var(--ba24-navy);
}
.pt-burger {
	display: none;
	width: 44px;
	height: 44px;
	padding: 11px;
	border: 0;
	border-radius: 10px;
	background: rgba(255, 255, 255, 0.08);
	cursor: pointer;
	flex-direction: column;
	justify-content: space-between;
}
.pt-burger span {
	display: block;
	height: 2px;
	border-radius: 2px;
	background: #fff;
	transition:
		transform 0.35s var(--ba24-ease),
		opacity 0.25s;
}
.pt-burger[aria-expanded="true"] span:nth-child(1) {
	transform: translateY(9px) rotate(45deg);
}
.pt-burger[aria-expanded="true"] span:nth-child(2) {
	opacity: 0;
}
.pt-burger[aria-expanded="true"] span:nth-child(3) {
	transform: translateY(-9px) rotate(-45deg);
}

@media (max-width: 960px) {
	.pt-header__inner {
		flex-wrap: wrap;
		min-height: 64px;
	}
	.pt-brand {
		order: 1;
		flex: 1 1 auto;
	}
	.pt-actions {
		order: 2;
	}
	.pt-burger {
		order: 3;
		display: flex;
	}
	.pt-nav {
		order: 4;
		flex-basis: 100%;
		display: grid;
		grid-template-rows: 0fr;
		transition: grid-template-rows 0.45s var(--ba24-ease);
	}
	.pt-nav__inner {
		overflow: hidden;
	}
	.pt-nav.is-open {
		grid-template-rows: 1fr;
	}
	.pt-menu {
		flex-direction: column;
		padding-bottom: 0;
	}
	.pt-nav.is-open .pt-menu {
		padding-bottom: 14px;
	}
	.pt-cart .ba24-cart-btn__label {
		display: none;
	}
	.pt-cart .ba24-cart-btn {
		width: 44px;
		padding: 0;
	}
	.pt-theme button {
		width: 30px;
		height: 30px;
	}
}
.pt-nav__extra {
	display: none;
}
@media (max-width: 960px) {
	.pt-nav__extra {
		display: flex;
		flex-wrap: wrap;
		align-items: center;
		justify-content: space-between;
		gap: 12px;
		padding: 12px 14px 4px;
		border-top: 1px solid rgba(255, 255, 255, 0.1);
		color: rgba(255, 255, 255, 0.7);
		font-size: 14px;
	}
	.pt-nav__extra a {
		color: #fff;
		text-decoration: none;
		font-weight: 500;
	}
	.pt-nav.is-open .pt-nav__extra {
		padding-bottom: 16px;
	}
	.pt-actions .pt-theme,
	.pt-actions .pt-icon-link {
		display: none;
	}
}
@media (max-width: 420px) {
	.pt-brand__word {
		font-size: 19px;
	}
}

/* ---------- Front page ---------- */
.pt-eyebrow {
	margin: 0 0 8px;
	font-size: 13px;
	font-weight: 600;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: var(--ba24-accent-text);
}
.pt-eyebrow--light {
	color: var(--ba24-accent);
}
.pt-hero {
	position: relative;
	overflow: hidden;
	background: radial-gradient(
		120% 140% at 85% 0%,
		#1d3a6b 0%,
		var(--ba24-navy) 60%
	);
	color: #fff;
	box-shadow: 0 40px 80px -50px rgba(22, 103, 184, 0.7);
}
.pt-hero__grid {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 40px;
	padding: clamp(40px, 6vw, 72px) 0 clamp(48px, 7vw, 80px);
}
.pt-hero__text {
	flex: 1 1 460px;
	min-width: 0;
}
.pt-hero__title {
	margin: 0;
	color: #fff;
	font-size: clamp(38px, 5.6vw, 60px);
	line-height: 1.05;
	letter-spacing: -0.02em;
}
.pt-hero__title span {
	color: var(--ba24-accent);
}
.pt-hero__lead {
	max-width: 560px;
	margin: 20px 0 28px;
	font-size: 18px;
	color: rgba(255, 255, 255, 0.8);
}
.pt-hero__cta {
	display: flex;
	flex-wrap: wrap;
	gap: 12px;
}
.pt-hero__visual {
	flex: 1 1 360px;
	min-width: 0;
	display: flex;
	justify-content: center;
	will-change: transform;
}
.pt-hero__photo {
	width: min(100%, 460px);
	border-radius: 24px;
	box-shadow: var(--ba24-glow-lg);
}
.pt-mock {
	position: relative;
	width: min(100%, 420px);
	aspect-ratio: 4 / 5;
}
.pt-mock svg {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	filter: drop-shadow(0 30px 40px rgba(0, 0, 0, 0.35));
}
.pt-mock__glow {
	position: absolute;
	inset: 8% 6% 4%;
	border-radius: 50%;
	background: radial-gradient(
		circle,
		rgba(111, 177, 242, 0.35),
		rgba(111, 177, 242, 0) 70%
	);
}
.pt-mock__logo {
	position: absolute;
	left: 36%;
	top: 32%;
	width: 28%;
	height: auto;
	animation: pt-float 6s ease-in-out infinite;
}
.pt-mock__badge {
	position: absolute;
	right: 0;
	top: 14%;
	padding: 8px 14px;
	border-radius: 999px;
	background: var(--ba24-amber);
	color: var(--ba24-navy);
	font-size: 13px;
	font-weight: 700;
}
@keyframes pt-float {
	50% {
		transform: translateY(-4px);
	}
}

.pt-steps {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
	gap: 16px;
	margin: 48px 0 56px;
}
.pt-step {
	display: flex;
	gap: 14px;
	align-items: flex-start;
	padding: 20px;
	border-radius: 16px;
	background: var(--ba24-card);
	box-shadow: var(--ba24-glow);
}
.pt-step__no {
	flex: none;
	display: grid;
	place-items: center;
	width: 44px;
	height: 44px;
	border-radius: 12px;
	background: var(--ba24-blue);
	color: #fff;
	font-weight: 700;
	font-size: 18px;
}
.pt-step strong {
	display: block;
	color: var(--ba24-heading);
}
.pt-step span span {
	display: block;
	font-size: 15px;
	color: var(--ba24-muted);
}

.pt-section {
	margin-bottom: 64px;
}
.pt-section__head {
	display: flex;
	flex-wrap: wrap;
	justify-content: space-between;
	align-items: flex-end;
	gap: 12px;
	margin-bottom: 20px;
}
.pt-h2 {
	margin: 0;
	font-size: clamp(26px, 3vw, 32px);
}
.pt-more {
	font-weight: 600;
	text-decoration: none;
	padding: 10px 0;
}
.pt-more:hover {
	text-decoration: underline;
}

.pt-methods {
	display: flex;
	flex-wrap: wrap;
	gap: 24px;
	margin-bottom: 64px;
}
.pt-method {
	flex: 1 1 340px;
	min-width: 0;
	display: grid;
	gap: 12px;
	align-content: start;
	padding: 32px;
	border-radius: 20px;
	background: var(--ba24-card);
	box-shadow: var(--ba24-glow);
}
.pt-method h3 {
	margin: 0;
	font-size: 26px;
}
.pt-method p {
	margin: 0;
}
.pt-method--navy {
	background: var(--ba24-navy);
	color: rgba(255, 255, 255, 0.82);
	box-shadow: var(--ba24-glow-lg);
}
.pt-method--navy h3 {
	color: #fff;
}
.pt-method--navy .pt-checks svg {
	color: var(--ba24-accent);
}
.pt-checks {
	list-style: none;
	margin: 0;
	padding: 0;
	display: grid;
	gap: 8px;
}
.pt-checks li {
	display: flex;
	gap: 10px;
	align-items: center;
}
.pt-checks svg {
	flex: none;
	color: var(--ba24-blue);
}

.pt-offer {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: 20px;
	padding: 32px;
	margin-bottom: 64px;
	border-radius: 20px;
	background: var(--ba24-soft);
}
.pt-offer > div {
	flex: 1 1 380px;
	min-width: 0;
}
.pt-offer h2 {
	margin: 0 0 6px;
	font-size: 24px;
}
.pt-offer p {
	margin: 0;
	color: var(--ba24-muted);
}

/* ---------- Pages ---------- */
.pt-pagehead {
	padding: clamp(32px, 5vw, 56px) 0 clamp(20px, 3vw, 32px);
}
.pt-pagehead__title {
	margin: 0;
	font-size: clamp(32px, 4.4vw, 48px);
	letter-spacing: -0.01em;
}
.pt-pagehead__title::after {
	content: "";
	display: block;
	width: 56px;
	height: 4px;
	margin-top: 14px;
	border-radius: 4px;
	background: var(--ba24-blue);
}
.pt-pagehead__lead {
	max-width: 720px;
	margin: 14px 0 0;
	font-size: 18px;
	color: var(--ba24-muted);
}
.pt-content {
	margin-bottom: 64px;
	font-size: 17px;
}
.pt-content
	> :where(
		p,
		ul,
		ol,
		h2,
		h3,
		h4,
		blockquote,
		table,
		figure:not(.alignwide):not(.alignfull)
	) {
	max-width: 780px;
}
body.pt-wide .pt-content > * {
	max-width: none;
}
.pt-content h2 {
	margin: 1.6em 0 0.5em;
	font-size: 26px;
}
.pt-content h3 {
	margin: 1.4em 0 0.4em;
	font-size: 20px;
}
.pt-content a {
	text-underline-offset: 3px;
}
.pt-content table {
	width: 100%;
	border-collapse: collapse;
}
.pt-content th,
.pt-content td {
	padding: 10px 12px;
	text-align: left;
	border-bottom: 1px solid var(--ba24-border);
}
.pt-content blockquote {
	margin: 1.5em 0;
	padding: 4px 0 4px 20px;
	border-left: 3px solid var(--ba24-blue);
	color: var(--ba24-muted);
}
.pt-content .alignwide {
	max-width: 1240px;
}
.pt-meta {
	margin: 0 0 8px;
	font-size: 14px;
	color: var(--ba24-muted);
}
.pt-thumb {
	margin: 0 0 24px;
}
.pt-thumb img {
	border-radius: 16px;
}
.pt-posts {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(300px, 1fr));
	gap: 24px;
	margin-bottom: 40px;
}
.pt-post {
	border-radius: 16px;
	overflow: hidden;
	background: var(--ba24-card);
	box-shadow: var(--ba24-glow);
}
.pt-post__img img {
	display: block;
	width: 100%;
	aspect-ratio: 16 / 10;
	object-fit: cover;
}
.pt-post__body {
	padding: 18px 20px 22px;
}
.pt-post h2 {
	margin: 0 0 8px;
	font-size: 20px;
}
.pt-post h2 a {
	color: inherit;
	text-decoration: none;
}
.pt-pagination {
	margin-bottom: 64px;
}
.pt-pagination .nav-links {
	display: flex;
	gap: 6px;
	justify-content: center;
}
.pt-pagination .page-numbers {
	display: grid;
	place-items: center;
	min-width: 42px;
	height: 42px;
	padding: 0 12px;
	border-radius: 999px;
	background: var(--ba24-card);
	box-shadow: var(--ba24-glow);
	text-decoration: none;
}
.pt-pagination .current {
	background: var(--ba24-blue);
	color: #fff;
}
.pt-404__box {
	max-width: 640px;
	margin: 64px auto;
	padding: 40px;
	border-radius: 24px;
	background: var(--ba24-card);
	box-shadow: var(--ba24-glow-lg);
	text-align: center;
}
.pt-404__box .pt-hero__cta {
	justify-content: center;
}
.pt-404__code {
	margin: 0;
	font-size: 72px;
	font-weight: 700;
	line-height: 1;
	color: var(--ba24-blue);
}

/* Plugin shop pages: the theme header already provides the spacing, so drop the plugin's top margin. */
.ba24-archive .ba24-hero {
	margin-top: 0;
}

/* ---------- Footer ---------- */
.pt-footer {
	margin-top: auto;
	background: var(--ba24-navy-deep);
	color: rgba(255, 255, 255, 0.72);
	font-size: 15px;
}
.pt-footer__grid {
	display: grid;
	grid-template-columns: 2fr 1fr 1fr;
	gap: 32px;
	padding: 48px 0 32px;
}
@media (max-width: 760px) {
	.pt-footer__grid {
		grid-template-columns: 1fr 1fr;
	}
	.pt-footer__brand {
		grid-column: 1 / -1;
	}
}
.pt-footer__brand p {
	max-width: 420px;
	margin: 12px 0 0;
}
.pt-footer__muted {
	color: rgba(255, 255, 255, 0.5);
	font-size: 14px;
}
.pt-footer__title {
	margin: 0 0 12px;
	color: #fff;
	font-size: 13px;
	letter-spacing: 0.08em;
	text-transform: uppercase;
}
.pt-footer__list {
	list-style: none;
	margin: 0;
	padding: 0;
	display: grid;
	gap: 8px;
}
.pt-footer a {
	color: rgba(255, 255, 255, 0.72);
	text-decoration: none;
	transition: color 0.2s;
}
.pt-footer a:hover {
	color: #fff;
}
.pt-footer .pt-brand {
	color: #fff;
}
.pt-footer__bottom {
	display: flex;
	flex-wrap: wrap;
	justify-content: space-between;
	gap: 8px;
	padding: 18px 0 24px;
	border-top: 1px solid rgba(255, 255, 255, 0.08);
	font-size: 13px;
	color: rgba(255, 255, 255, 0.5);
}

/* ---------- Motion (scroll reveal, reduced-motion fallback) ---------- */
.pt-js .pt-reveal {
	opacity: 0;
	transform: translateY(18px);
	transition:
		opacity 0.7s var(--ba24-ease),
		transform 0.7s var(--ba24-ease);
}
.pt-js .pt-reveal.is-visible {
	opacity: 1;
	transform: none;
}
@media (prefers-reduced-motion: reduce) {
	html {
		scroll-behavior: auto;
	}
	*,
	*::before,
	*::after {
		animation-duration: 0.01ms !important;
		animation-iteration-count: 1 !important;
		transition-duration: 0.01ms !important;
	}
	.pt-js .pt-reveal {
		opacity: 1;
		transform: none;
	}
}
