/**
 * PHOTOPROMPT DESIGN FOUNDATION
 * Global tokens and low-level utilities. Signature-home rules are split into
 * home.css so the heavier editorial layer only loads on the front page.
 */
:root {
	--pp-paper: #f6f5f1;
	--pp-white: #ffffff;
	--pp-ink: #101010;
	--pp-charcoal: #2b2b2e;
	--pp-muted: #66635e;
	--pp-line: rgba(16, 16, 16, 0.24);
	--pp-soft-line: rgba(16, 16, 16, 0.12);
	--pp-panel: #ebe9e4;
	--pp-signal: #e7542d;
	--pp-red: #e7542d;
	--pp-serif: Georgia, 'Times New Roman', serif;
	--pp-sans: 'Helvetica Neue', Helvetica, Arial, 'Liberation Sans', sans-serif;
	--pp-display: 'Helvetica Neue', Helvetica, Arial, 'Liberation Sans', sans-serif;
	--pp-mono: ui-monospace, 'SFMono-Regular', Menlo, Monaco, Consolas, 'Liberation Mono', monospace;
	--pp-analog: ui-monospace, 'SFMono-Regular', Menlo, Monaco, Consolas, 'Liberation Mono', monospace;
	--pp-max: 1920px;
	--pp-gutter: clamp(16px, 1.5vw, 30px);
	--pp-radius: 0px;
	--pp-ease: cubic-bezier(0.22, 1, 0.36, 1);

	/* Semantic colour tokens — never use text colours directly against unknown surfaces. */
	--pp-bg: #f6f5f1;
	--pp-surface: #ffffff;
	--pp-surface-2: #efeee9;
	--pp-text: #101010;
	--pp-text-muted: #5f5d58;
	--pp-border: rgba(16,16,16,.38);
	--pp-border-soft: rgba(16,16,16,.17);
	--pp-inverse: #101010;
	--pp-inverse-text: #ffffff;
	--pp-control: #ffffff;
	--pp-control-text: #101010;
	--pp-shadow: rgba(16,16,16,.14);
}

html[data-pp-theme="dark"] {
	--pp-bg: #0f0f0f;
	--pp-surface: #171717;
	--pp-surface-2: #212121;
	--pp-text: #f7f6f2;
	--pp-text-muted: #c8c6c0;
	--pp-border: rgba(255,255,255,.40);
	--pp-border-soft: rgba(255,255,255,.17);
	--pp-inverse: #f7f6f2;
	--pp-inverse-text: #101010;
	--pp-control: #f7f6f2;
	--pp-control-text: #101010;
	--pp-shadow: rgba(0,0,0,.42);
	color-scheme: dark;
}

html[data-pp-theme="light"] { color-scheme: light; }


html {
	scroll-behavior: smooth;
}

body.photoprompt-site {
	font-family: var(--pp-sans);
	color: var(--pp-text);
	background: var(--pp-bg);
	-webkit-font-smoothing: antialiased;
	text-rendering: geometricPrecision;
	font-feature-settings: 'kern' 1, 'liga' 1, 'ss01' 1;
	font-kerning: normal;
	letter-spacing: -0.016em;
}

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

.photoprompt-site img {
	max-width: 100%;
}

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

.pp-visually-hidden:focus,
.pp-visually-hidden:active {
	position: fixed !important;
	z-index: 100000 !important;
	top: 12px !important;
	left: 12px !important;
	width: auto !important;
	height: auto !important;
	padding: 10px 14px !important;
	margin: 0 !important;
	overflow: visible !important;
	clip: auto !important;
	white-space: normal !important;
	background: var(--pp-surface);
	color: var(--pp-text);
}

.pp-button {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 0.65rem;
	min-height: 46px;
	padding: 0.8rem 1.15rem;
	border: 1px solid currentColor;
	border-radius: var(--pp-radius);
	font: 700 11px/1 var(--pp-analog);
	letter-spacing: 0.035em;
	text-transform: uppercase;
	text-decoration: none;
	transition: color 220ms ease, background-color 220ms ease, transform 420ms var(--pp-ease);
}

.pp-button:hover,
.pp-button:focus-visible {
	transform: translateY(-2px);
}

.pp-button--dark {
	background: var(--pp-inverse);
	color: var(--pp-inverse-text);
	border-color: var(--pp-inverse);
}

.pp-button--light {
	background: var(--pp-control);
	color: var(--pp-control-text);
	border-color: var(--pp-control);
}

.pp-button--ghost {
	background: transparent;
	color: currentColor;
}

.pp-kicker {
	font: 600 11px/1.2 var(--pp-mono);
	text-transform: uppercase;
	letter-spacing: 0.06em;
}

.pp-arrow {
	font-size: 1.25em;
	line-height: 0;
}



/* Polaroid-inspired typography foundation: broad grotesk, bold but not over-condensed. */
.photoprompt-site h1,
.photoprompt-site h2,
.photoprompt-site h3,
.photoprompt-site h4,
.photoprompt-site .pp-wordmark,
.photoprompt-site .pp-mega-wordmark {
	font-family: var(--pp-display);
	font-weight: 800;
	line-height: 0.92;
	letter-spacing: -0.052em;
	text-wrap: balance;
}

.photoprompt-site .pp-button,
.photoprompt-site .pp-kicker {
	font-family: var(--pp-analog);
	letter-spacing: 0.045em;
}


/* Global light/dark mode — applies beyond the signature homepage too. */
body.photoprompt-site,
body.photoprompt-site .site-main {
	background: var(--pp-bg);
	color: var(--pp-text);
}

body.photoprompt-site :where(h1,h2,h3,h4,h5,h6,p,li,dt,dd,label,legend) {
	color: inherit;
}

body.photoprompt-site :where(input:not([type="checkbox"]):not([type="radio"]), textarea, select) {
	background: var(--pp-surface);
	color: var(--pp-text);
	border-color: var(--pp-border);
}

body.photoprompt-site :where(input, textarea, select)::placeholder {
	color: var(--pp-text-muted);
	opacity: 1;
}

body.photoprompt-site a:focus-visible,
body.photoprompt-site button:focus-visible,
body.photoprompt-site input:focus-visible,
body.photoprompt-site textarea:focus-visible,
body.photoprompt-site select:focus-visible {
	outline: 2px solid var(--pp-red);
	outline-offset: 3px;
}

.pp-theme-toggle {
	appearance: none;
	border: 1px solid currentColor;
	background: transparent;
	color: inherit;
	min-height: 40px;
	padding: 0 12px;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 8px;
	font: 700 10px/1 var(--pp-analog);
	letter-spacing: .04em;
	text-transform: uppercase;
	cursor: pointer;
}
.pp-theme-toggle__icon { font: 700 15px/1 var(--pp-sans); }
.pp-theme-toggle:hover { background: currentColor; }
.pp-theme-toggle:hover > * { filter: invert(1); }

/* Generic WooCommerce surfaces. */
body.photoprompt-site.photoprompt-woocommerce :where(.woocommerce-message,.woocommerce-info,.woocommerce-error,.product,.products .product,.woocommerce-tabs,.related,.upsells,.cart_totals,.woocommerce-checkout-review-order,.woocommerce-MyAccount-content) {
	color: var(--pp-text);
}
body.photoprompt-site.photoprompt-woocommerce :where(.woocommerce-message,.woocommerce-info,.woocommerce-error,.woocommerce-tabs,.cart_totals,.woocommerce-checkout-review-order,.woocommerce-MyAccount-content) {
	background: var(--pp-surface);
	border-color: var(--pp-border);
}
body.photoprompt-site.photoprompt-woocommerce :where(.price,.amount,.woocommerce-product-details__short-description,.product_meta) {
	color: var(--pp-text);
}

@media (prefers-reduced-motion: reduce) {
	html { scroll-behavior: auto; }
	*, *::before, *::after {
		animation-duration: 0.001ms !important;
		animation-iteration-count: 1 !important;
		scroll-behavior: auto !important;
		transition-duration: 0.001ms !important;
	}
}
