/**
 * Pizza Suprema — modern rustic trattoria.
 *
 * WCAG 2.2 AA contrast ratios (sRGB, verified for this palette):
 * - White (#fff) on primary tomato (#b8321f):           5.97:1
 * - White on primary-hover (#8f2414):                   7.45:1
 * - White on secondary basil (#2f5d3a):                 7.61:1
 * - Heading (#1d1a17) on bg cream (#faf5ec):           16.3:1
 * - Heading on surface (#fffdf8):                      16.8:1
 * - Body text (#2a2520) on bg (#faf5ec):               13.9:1
 * - Body text on surface (#fffdf8):                    14.3:1
 * - Muted (#5e564c) on surface (#fffdf8):               7.05:1
 * - Accent-text (#8a5a12) on bg (#faf5ec):              5.45:1
 * - Heading (#1d1a17) on accent amber (#c8872b):        5.90:1  (Featured tag)
 * - On-primary (#fff) on inverse (#1d1a17):            16.8:1
 * - Danger (#9b1c1c) on danger-bg (#fdf2f2):            7.2:1
 *
 * Tokens sync to Astra --ast-global-color-0..8 via inc/palette.php
 * (filters astra_get_option_global-color-palette + astra_global_current_palette).
 *
 * @package PizzaSoprema
 */

@font-face {
	font-family: "Source Sans 3";
	font-style: normal;
	font-weight: 400;
	font-display: swap;
	src: url("../fonts/source-sans-3-latin-400-normal.woff2") format("woff2");
}
@font-face {
	font-family: "Source Sans 3";
	font-style: normal;
	font-weight: 600;
	font-display: swap;
	src: url("../fonts/source-sans-3-latin-600-normal.woff2") format("woff2");
}
@font-face {
	font-family: "Source Sans 3";
	font-style: normal;
	font-weight: 700;
	font-display: swap;
	src: url("../fonts/source-sans-3-latin-700-normal.woff2") format("woff2");
}
@font-face {
	font-family: Fraunces;
	font-style: normal;
	font-weight: 400 700;
	font-display: swap;
	src: url("../fonts/fraunces-latin-wght-normal.woff2") format("woff2-variations"),
		url("../fonts/fraunces-latin-wght-normal.woff2") format("woff2");
}
@font-face {
	font-family: Fraunces;
	font-style: italic;
	font-weight: 400 700;
	font-display: swap;
	src: url("../fonts/fraunces-latin-wght-italic.woff2") format("woff2-variations"),
		url("../fonts/fraunces-latin-wght-italic.woff2") format("woff2");
}

:root {
	--ps-color-primary: var(--ast-global-color-0, #b8321f);
	--ps-color-primary-hover: #8f2414;
	--ps-color-secondary: var(--ast-global-color-1, #2f5d3a);
	--ps-color-accent: #c8872b;
	--ps-color-accent-text: #8a5a12;
	--ps-color-heading: var(--ast-global-color-2, #1d1a17);
	--ps-color-text: var(--ast-global-color-3, #2a2520);
	--ps-color-border: var(--ast-global-color-4, #e8dfd0);
	--ps-color-surface: var(--ast-global-color-5, #fffdf8);
	--ps-color-bg: var(--ast-global-color-6, #faf5ec);
	--ps-color-muted: var(--ast-global-color-7, #5e564c);
	--ps-color-inverse: var(--ast-global-color-8, #1d1a17);
	--ps-color-on-primary: #fff;
	--ps-color-on-inverse: #fff;
	/* Decorative amber; for text/icons on light surfaces use --ps-color-accent-text. */
	--ps-color-star: var(--ps-color-accent);
	--ps-color-danger: #9b1c1c;
	--ps-color-danger-bg: #fdf2f2;
	--ps-color-overlay: rgba(29, 26, 23, 0.55);
	--ps-hero-overlay: linear-gradient(
		160deg,
		rgba(29, 26, 23, 0.82) 0%,
		rgba(29, 26, 23, 0.55) 42%,
		rgba(29, 26, 23, 0.28) 100%
	);
	--ps-focus: var(--ps-color-secondary);
	--ps-font-body: "Source Sans 3", "Segoe UI", system-ui, sans-serif;
	--ps-font-display: Fraunces, Georgia, "Times New Roman", serif;
	--ps-text-xs: clamp(0.8125rem, 0.78rem + 0.15vw, 0.875rem);
	--ps-text-sm: clamp(0.875rem, 0.84rem + 0.2vw, 0.9375rem);
	--ps-text-base: 1.0625rem;
	--ps-text-md: clamp(1.125rem, 1.05rem + 0.35vw, 1.25rem);
	--ps-text-lg: clamp(1.375rem, 1.2rem + 0.7vw, 1.75rem);
	--ps-text-xl: clamp(1.75rem, 1.4rem + 1.4vw, 2.5rem);
	--ps-text-hero: clamp(2.25rem, 1.6rem + 2.8vw, 4.5rem);
	--ps-leading-tight: 1.2;
	--ps-leading: 1.6;
	--ps-space-1: 0.25rem;
	--ps-space-2: 0.5rem;
	--ps-space-3: 0.75rem;
	--ps-space-4: 1rem;
	--ps-space-5: 1.5rem;
	--ps-space-6: 2rem;
	--ps-space-7: 3rem;
	--ps-space-8: clamp(3rem, 2rem + 3vw, 5rem);
	--ps-gutter: clamp(1rem, 0.7rem + 1.5vw, 1.75rem);
	--ps-measure: 65ch;
	--ps-content: 72rem;
	--ps-radius-sm: 0.625rem;
	--ps-radius: 0.625rem;
	--ps-radius-lg: 1rem;
	--ps-radius-pill: 999px;
	--ps-shadow-sm: 0 1px 2px rgba(60, 35, 15, 0.08);
	--ps-shadow: 0 4px 16px rgba(60, 35, 15, 0.12);
	--ps-shadow-lg: 0 12px 32px rgba(60, 35, 15, 0.18);
	--ps-ease: 180ms ease;
	--ps-touch: 3.25rem;
	--ps-header-height: 5.5rem;
	--ps-header-clearance: 2.5rem;
	--ps-logo-max-height: 3.5rem;
	--ps-page-hero-height: 26rem;
	--ps-page-hero-height-compact: 16rem;
}

@media (prefers-reduced-motion: reduce) {
	:root { --ps-ease: 0ms; }
	*, *::before, *::after {
		animation-duration: 0.01ms !important;
		animation-iteration-count: 1 !important;
		transition-duration: 0.01ms !important;
		scroll-behavior: auto !important;
	}
}

body {
	font-family: var(--ps-font-body);
	font-size: var(--ps-text-base);
	line-height: var(--ps-leading);
	color: var(--ps-color-text);
	background: var(--ps-color-bg);
}

h1, h2, h3, .ps-hero__title {
	font-family: var(--ps-font-display);
	font-weight: 600;
	letter-spacing: -0.01em;
	line-height: var(--ps-leading-tight);
	color: var(--ps-color-heading);
}
h1, .ps-hero__title { font-weight: 700; }
h1 em, h2 em, h3 em, .ps-hero__title em {
	font-style: italic;
	font-weight: inherit;
	color: var(--ps-color-primary);
}
.ps-lede {
	max-width: var(--ps-measure);
	font-size: var(--ps-text-md);
	line-height: var(--ps-leading);
	color: var(--ps-color-text);
}
.ps-eyebrow {
	margin: 0 0 var(--ps-space-2);
	font-size: var(--ps-text-xs);
	font-weight: 700;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: var(--ps-color-accent-text);
}
.ps-divider-wave {
	display: block;
	width: 100%;
	height: 1.25rem;
	margin: var(--ps-space-6) 0;
	border: 0;
	background:
		radial-gradient(circle at 0.5rem 0.35rem, var(--ps-color-accent) 0.2rem, transparent 0.22rem) 0 0 / 1.25rem 100% repeat-x;
	opacity: 0.65;
}

a { color: var(--ps-color-primary); }
a:hover, a:focus { color: var(--ps-color-primary-hover); }
:focus-visible { outline: 2px solid var(--ps-focus); outline-offset: 2px; }
img { max-width: 100%; height: auto; }

/* Header (Astra) — solid sticky by default; fixed+transparent when overlapping hero */
.site-header,
#masthead {
	position: sticky;
	top: 0;
	z-index: 100;
	background: var(--ps-color-surface);
	box-shadow: var(--ps-shadow-sm);
	transition: background-color var(--ps-ease), box-shadow var(--ps-ease);
}
.admin-bar .site-header,
.admin-bar #masthead {
	top: var(--wp-admin--admin-bar--height, 32px);
}
@media screen and (max-width: 782px) {
	.admin-bar .site-header,
	.admin-bar #masthead {
		top: var(--wp-admin--admin-bar--height, 46px);
	}
}
.main-header-bar,
.ast-primary-header-bar {
	min-height: var(--ps-header-height);
	background: var(--ps-color-surface);
	transition: background-color var(--ps-ease);
}
.custom-logo-link {
	display: inline-flex;
	align-items: center;
	flex-shrink: 0;
	min-height: var(--ps-logo-max-height);
}
.custom-logo-link img,
.site-logo-img img,
img.custom-logo {
	/* Explicit height — SVG + width/height:auto + max-width:100% in a flex
	   parent collapses to 0×0 (circular percentage sizing). */
	display: block;
	width: auto;
	height: var(--ps-logo-max-height);
	max-width: min(14rem, 70vw);
	max-height: var(--ps-logo-max-height);
	transition: filter var(--ps-ease), opacity var(--ps-ease);
}

/*
 * Dual logos: Customizer logo over the hero; colour logo on solid headers.
 * Requires body.ps-has-colour-logo (Business Info → Colour logo).
 */
body.ps-has-colour-logo .ps-logo--colour {
	filter: none !important;
}
body.ps-has-colour-logo:not(.has-transparent-header) .ps-logo--default {
	display: none;
}
body.ps-has-colour-logo:not(.has-transparent-header) .ps-logo--colour {
	display: block;
}
body.ps-has-colour-logo.has-transparent-header:not(.ps-header-scrolled) .ps-logo--colour,
body.ps-has-colour-logo.ps-mobile-nav-open .ps-logo--colour {
	display: none;
}
body.ps-has-colour-logo.has-transparent-header:not(.ps-header-scrolled) .ps-logo--default,
body.ps-has-colour-logo.ps-mobile-nav-open .ps-logo--default {
	display: block;
}
body.ps-has-colour-logo.has-transparent-header.ps-header-scrolled:not(.ps-mobile-nav-open) .ps-logo--default {
	display: none;
}
body.ps-has-colour-logo.has-transparent-header.ps-header-scrolled:not(.ps-mobile-nav-open) .ps-logo--colour {
	display: block;
}
.main-header-menu .menu-link,
.site-header .site-title a {
	color: var(--ps-color-heading);
	font-weight: 600;
	transition: color var(--ps-ease);
}
.main-header-menu .menu-link:hover,
.main-header-menu .current-menu-item > .menu-link,
.main-header-menu .current_page_item > .menu-link {
	color: var(--ps-color-primary);
}

/*
 * Transparent header over hero (all pages, including pizza/portfolio archives).
 * Own fixed positioning — do not rely on Astra absolute + negative margin
 * (that combo caused white bars on archives and breadcrumbs over the logo).
 *
 * Critical: Astra “separate container” puts margin-top on #primary (~68px).
 * With a fixed transparent header that gap shows body bg (light) = white band.
 */
/* Clip only — avoid 100vw/margin calc horizontal scroll with classic scrollbars */
body.has-transparent-header {
	overflow-x: clip;
}
body.has-transparent-header #primary,
body.has-transparent-header #primary.content-area,
body.has-transparent-header.ast-separate-container #primary,
body.has-transparent-header.ast-separate-container .ast-article-single,
body.has-transparent-header.ast-separate-container .ast-article-post {
	margin-top: 0 !important;
}
body.has-transparent-header .site-header,
body.has-transparent-header #masthead,
body.ast-theme-transparent-header .site-header,
body.ast-theme-transparent-header #masthead {
	position: fixed !important;
	top: 0 !important;
	left: 0;
	right: 0;
	width: 100%;
	z-index: 100;
}
.admin-bar.has-transparent-header .site-header,
.admin-bar.has-transparent-header #masthead,
.admin-bar.ast-theme-transparent-header .site-header,
.admin-bar.ast-theme-transparent-header #masthead {
	top: var(--wp-admin--admin-bar--height, 32px) !important;
}
@media screen and (max-width: 782px) {
	.admin-bar.has-transparent-header .site-header,
	.admin-bar.has-transparent-header #masthead,
	.admin-bar.ast-theme-transparent-header .site-header,
	.admin-bar.ast-theme-transparent-header #masthead {
		top: var(--wp-admin--admin-bar--height, 46px) !important;
	}
}
body.has-transparent-header:not(.ps-header-scrolled) .site-header,
body.has-transparent-header:not(.ps-header-scrolled) #masthead,
body.has-transparent-header:not(.ps-header-scrolled) .main-header-bar,
body.has-transparent-header:not(.ps-header-scrolled) .ast-primary-header-bar,
body.has-transparent-header:not(.ps-header-scrolled) .ast-mobile-header-wrap,
body.has-transparent-header:not(.ps-header-scrolled) .ast-main-header-wrap,
body.has-transparent-header:not(.ps-header-scrolled) .ast-builder-grid-row,
body.has-transparent-header:not(.ps-header-scrolled) .ast-builder-grid-row-container,
body.has-transparent-header:not(.ps-header-scrolled) .ast-builder-grid-row-container-inner,
body.has-transparent-header:not(.ps-header-scrolled) .ast-builder-grid-row-section-wrap,
body.has-transparent-header:not(.ps-header-scrolled) .site-header-focus-item,
body.has-transparent-header:not(.ps-header-scrolled) .site-primary-header-wrap,
body.has-transparent-header:not(.ps-header-scrolled) #ast-desktop-header,
body.has-transparent-header:not(.ps-header-scrolled) #ast-mobile-header,
body.has-transparent-header:not(.ps-header-scrolled) .ast-desktop-header-content,
body.has-transparent-header:not(.ps-header-scrolled) .ast-mobile-header-content,
body.ast-theme-transparent-header:not(.ps-header-scrolled) .main-header-bar,
body.ast-theme-transparent-header:not(.ps-header-scrolled) .ast-primary-header-bar {
	background: transparent !important;
	background-color: transparent !important;
	background-image: none !important;
	box-shadow: none !important;
	border-color: transparent !important;
}
body.has-transparent-header:not(.ps-header-scrolled) .main-header-menu .menu-link,
body.has-transparent-header:not(.ps-header-scrolled) .ast-builder-menu-1 .menu-link,
body.has-transparent-header:not(.ps-header-scrolled) .site-header .site-title a,
body.has-transparent-header:not(.ps-header-scrolled) .ast-site-identity .site-title a,
body.has-transparent-header:not(.ps-header-scrolled) .ast-header-account-wrap,
body.has-transparent-header:not(.ps-header-scrolled) .ast-mobile-menu-buttons {
	color: color-mix(in srgb, var(--ps-color-on-inverse) 95%, transparent) !important;
}
body.has-transparent-header:not(.ps-header-scrolled) .main-header-menu .menu-link:hover,
body.has-transparent-header:not(.ps-header-scrolled) .main-header-menu .current-menu-item > .menu-link,
body.has-transparent-header:not(.ps-header-scrolled) .main-header-menu .current_page_item > .menu-link,
body.has-transparent-header:not(.ps-header-scrolled) .ast-builder-menu-1 .menu-link:hover,
body.has-transparent-header:not(.ps-header-scrolled) .ast-builder-menu-1 .current-menu-item > .menu-link {
	color: var(--ps-color-star) !important;
}
body.has-transparent-header:not(.ps-header-scrolled) .custom-logo-link img,
body.has-transparent-header:not(.ps-header-scrolled) .site-logo-img img,
body.has-transparent-header:not(.ps-header-scrolled) img.custom-logo {
	filter: brightness(0) invert(1);
}
body.has-transparent-header:not(.ps-header-scrolled) .menu-toggle,
body.has-transparent-header:not(.ps-header-scrolled) .ast-mobile-menu-trigger-minimal,
body.has-transparent-header:not(.ps-header-scrolled) .ast-button-wrap .menu-toggle,
body.has-transparent-header:not(.ps-header-scrolled) .ast-mobile-svg {
	color: var(--ps-color-on-inverse) !important;
	fill: var(--ps-color-on-inverse) !important;
}
body.has-transparent-header.ps-header-scrolled .site-header,
body.has-transparent-header.ps-header-scrolled #masthead,
body.has-transparent-header.ps-header-scrolled .main-header-bar,
body.has-transparent-header.ps-header-scrolled .ast-primary-header-bar,
body.has-transparent-header.ps-header-scrolled .ast-mobile-header-wrap,
body.has-transparent-header.ps-header-scrolled .ast-main-header-wrap,
body.has-transparent-header.ps-header-scrolled .ast-builder-grid-row-container-inner,
body.has-transparent-header.ps-header-scrolled .site-primary-header-wrap {
	background: var(--ps-color-surface) !important;
	background-color: var(--ps-color-surface) !important;
	box-shadow: var(--ps-shadow-sm);
}
body.has-transparent-header.ps-header-scrolled .main-header-menu .menu-link,
body.has-transparent-header.ps-header-scrolled .ast-builder-menu-1 .menu-link,
body.has-transparent-header.ps-header-scrolled .site-header .site-title a {
	color: var(--ps-color-heading) !important;
}
body.has-transparent-header.ps-header-scrolled .main-header-menu .menu-link:hover,
body.has-transparent-header.ps-header-scrolled .main-header-menu .current-menu-item > .menu-link,
body.has-transparent-header.ps-header-scrolled .main-header-menu .current_page_item > .menu-link {
	color: var(--ps-color-primary) !important;
}
body.has-transparent-header.ps-header-scrolled .custom-logo-link img,
body.has-transparent-header.ps-header-scrolled .site-logo-img img,
body.has-transparent-header.ps-header-scrolled img.custom-logo {
	filter: none;
}

/*
 * Mobile menu open — header keeps its dark bar; only the nav panel is basil green.
 * header.js sets body.ps-mobile-nav-open from Astra’s `ast-main-header-nav-open`
 * / menu-toggle aria-expanded (astra/assets/js/unminified/frontend.js).
 */
/* Header bar: original dark inverse (not green). */
body.has-transparent-header.ps-mobile-nav-open .site-header,
body.has-transparent-header.ps-mobile-nav-open #masthead,
body.has-transparent-header.ps-mobile-nav-open .main-header-bar,
body.has-transparent-header.ps-mobile-nav-open .ast-primary-header-bar,
body.has-transparent-header.ps-mobile-nav-open .ast-mobile-header-wrap,
body.has-transparent-header.ps-mobile-nav-open .ast-main-header-wrap,
body.has-transparent-header.ps-mobile-nav-open .ast-builder-grid-row-container-inner,
body.has-transparent-header.ps-mobile-nav-open .site-primary-header-wrap,
.ast-mobile-popup-drawer.active .ast-mobile-popup-header {
	background: var(--ps-color-inverse) !important;
	background-color: var(--ps-color-inverse) !important;
	box-shadow: var(--ps-shadow-sm);
}
body.has-transparent-header.ps-mobile-nav-open .menu-toggle,
body.has-transparent-header.ps-mobile-nav-open .ast-mobile-menu-trigger-minimal,
body.has-transparent-header.ps-mobile-nav-open .ast-mobile-svg,
body.has-transparent-header.ps-mobile-nav-open .ast-mobile-menu-buttons,
body.has-transparent-header.ps-mobile-nav-open .site-header .site-title a,
body.has-transparent-header.ps-mobile-nav-open .ast-site-identity .site-title a,
.ast-mobile-popup-drawer.active .menu-toggle-close,
.ast-mobile-popup-drawer.active .ast-mobile-svg {
	color: var(--ps-color-on-inverse) !important;
	fill: var(--ps-color-on-inverse) !important;
}
body.has-transparent-header.ps-mobile-nav-open .custom-logo-link img,
body.has-transparent-header.ps-mobile-nav-open .site-logo-img img,
body.has-transparent-header.ps-mobile-nav-open img.custom-logo {
	filter: brightness(0) invert(1);
}

/* Nav panel only: basil green. Beige was on each .menu-link (#e8dfd0), not the UL. */
body.ps-mobile-nav-open .ast-mobile-header-content,
body.ps-mobile-nav-open .main-header-bar-navigation,
body.ps-mobile-nav-open .ast-builder-menu-mobile,
body.ps-mobile-nav-open .ast-mobile-header-content .main-navigation,
body.ps-mobile-nav-open .ast-mobile-header-content .main-header-menu,
body.ps-mobile-nav-open .ast-mobile-header-content .main-header-menu .menu-item,
body.ps-mobile-nav-open .ast-mobile-header-content .menu-link,
body.has-transparent-header.ps-mobile-nav-open .ast-mobile-header-content,
body.has-transparent-header.ps-mobile-nav-open .main-header-bar-navigation,
body.has-transparent-header.ps-mobile-nav-open .ast-builder-menu-mobile,
body.has-transparent-header.ps-mobile-nav-open .ast-mobile-header-content .main-navigation,
body.has-transparent-header.ps-mobile-nav-open .ast-mobile-header-content .main-header-menu,
body.has-transparent-header.ps-mobile-nav-open .ast-mobile-header-content .main-header-menu .menu-item,
body.has-transparent-header.ps-mobile-nav-open .ast-mobile-header-content .menu-link,
.ast-mobile-popup-drawer.active .ast-mobile-popup-inner,
.ast-mobile-popup-drawer.active .ast-mobile-popup-content,
.ast-mobile-popup-drawer.active .main-header-menu,
.ast-mobile-popup-drawer.active .main-header-menu .menu-item,
.ast-mobile-popup-drawer.active .menu-link {
	background: var(--ps-color-secondary) !important;
	background-color: var(--ps-color-secondary) !important;
	box-shadow: none;
}
body.ps-mobile-nav-open .ast-mobile-header-content .menu-link,
body.ps-mobile-nav-open .ast-builder-menu-mobile .menu-link,
body.has-transparent-header.ps-mobile-nav-open .ast-mobile-header-content .menu-link,
body.has-transparent-header.ps-mobile-nav-open .ast-builder-menu-1 .menu-link,
.ast-mobile-popup-drawer.active .menu-link {
	color: var(--ps-color-on-primary) !important;
}
body.ps-mobile-nav-open .ast-mobile-header-content .menu-link:hover,
body.ps-mobile-nav-open .ast-builder-menu-mobile .menu-link:hover,
body.has-transparent-header.ps-mobile-nav-open .ast-mobile-header-content .menu-link:hover,
.ast-mobile-popup-drawer.active .menu-link:hover {
	color: var(--ps-color-on-primary) !important;
	background: var(--ps-color-secondary) !important;
	background-color: var(--ps-color-secondary) !important;
}
/*
 * Current item: white + tomato red.
 * Specificity must beat transparent-header star colour on .current-menu-item.
 */
body.ps-mobile-nav-open .ast-mobile-header-content .current-menu-item > .menu-link,
body.ps-mobile-nav-open .ast-mobile-header-content .current_page_item > .menu-link,
body.ps-mobile-nav-open .ast-builder-menu-mobile .current-menu-item > .menu-link,
body.has-transparent-header.ps-mobile-nav-open .ast-mobile-header-content .current-menu-item > .menu-link,
body.has-transparent-header.ps-mobile-nav-open .ast-mobile-header-content .current_page_item > .menu-link,
body.has-transparent-header.ps-mobile-nav-open .ast-builder-menu-1 .current-menu-item > .menu-link,
body.has-transparent-header:not(.ps-header-scrolled).ps-mobile-nav-open .ast-builder-menu-1 .current-menu-item > .menu-link,
body.has-transparent-header:not(.ps-header-scrolled).ps-mobile-nav-open .ast-mobile-header-content .current-menu-item > .menu-link,
.ast-mobile-popup-drawer.active .current-menu-item > .menu-link,
.ast-mobile-popup-drawer.active .current_page_item > .menu-link {
	color: var(--ps-color-primary) !important;
	background: #fff !important;
	background-color: #fff !important;
	border-radius: var(--ps-radius-sm);
}
/* Sticky contact bar under the open menu. */
body.ps-mobile-nav-open .ps-mobile-actions {
	visibility: hidden;
	pointer-events: none;
}

/* Astra renders .ast-custom-button + a fallback .menu-link; keep only the button visible. */
.ast-header-button-1 .menu-link {
	display: none !important;
}
.ast-header-button-1 .ast-custom-button {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: var(--ps-touch);
	padding: 0.65em 1.35em;
	border: 2px solid var(--ps-color-primary);
	border-radius: var(--ps-radius);
	background: var(--ps-color-primary) !important;
	color: var(--ps-color-on-primary) !important;
	font-weight: 700;
	text-decoration: none;
	transition: background-color var(--ps-ease), border-color var(--ps-ease), color var(--ps-ease);
}
.ast-header-button-1 .ast-custom-button:hover,
.ast-header-button-1 .ast-custom-button:focus {
	background: var(--ps-color-secondary) !important;
	border-color: var(--ps-color-secondary);
	color: var(--ps-color-on-primary) !important;
}
/* On the basil mobile panel, keep the CTA tomato (green hover would vanish). */
body.ps-mobile-nav-open .ast-header-button-1 .ast-custom-button,
.ast-mobile-popup-drawer.active .ast-header-button-1 .ast-custom-button {
	background: var(--ps-color-primary) !important;
	border-color: var(--ps-color-primary) !important;
	color: var(--ps-color-on-primary) !important;
}
body.ps-mobile-nav-open .ast-header-button-1 .ast-custom-button:hover,
body.ps-mobile-nav-open .ast-header-button-1 .ast-custom-button:focus,
.ast-mobile-popup-drawer.active .ast-header-button-1 .ast-custom-button:hover,
.ast-mobile-popup-drawer.active .ast-header-button-1 .ast-custom-button:focus {
	background: var(--ps-color-primary-hover) !important;
	border-color: var(--ps-color-primary-hover) !important;
}

/* Buttons — tomato fill / basil outline / ghost on dark; pill radius */
.ps-button {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	box-sizing: border-box;
	gap: var(--ps-space-2);
	min-height: var(--ps-touch);
	max-width: 100%;
	padding: 0.7em 1.55em;
	border: 2px solid transparent;
	border-radius: var(--ps-radius-pill);
	font: inherit;
	font-weight: 700;
	line-height: 1.2;
	text-align: center;
	text-decoration: none;
	cursor: pointer;
	transition: background-color var(--ps-ease), border-color var(--ps-ease), color var(--ps-ease), transform var(--ps-ease), box-shadow var(--ps-ease);
}
.ps-button:focus-visible { outline: 2px solid var(--ps-focus); outline-offset: 3px; }
.ps-button--primary {
	background: var(--ps-color-primary);
	border-color: var(--ps-color-primary);
	color: var(--ps-color-on-primary);
}
.ps-button--primary:hover,
.ps-button--primary:focus {
	background: var(--ps-color-primary-hover);
	border-color: var(--ps-color-primary-hover);
	color: var(--ps-color-on-primary);
}
.ps-button--primary.ps-button--arrow::after {
	content: "→";
	font-weight: 700;
	line-height: 1;
}
.ps-button--secondary {
	background: transparent;
	border-color: var(--ps-color-secondary);
	color: var(--ps-color-secondary);
}
.ps-button--secondary:hover,
.ps-button--secondary:focus {
	background: var(--ps-color-secondary);
	border-color: var(--ps-color-secondary);
	color: var(--ps-color-on-primary);
}
.ps-button--ghost {
	background: transparent;
	border-color: var(--ps-color-on-inverse);
	color: var(--ps-color-on-inverse);
}
.ps-button--ghost:hover,
.ps-button--ghost:focus {
	background: var(--ps-color-on-inverse);
	color: var(--ps-color-inverse);
}
.ps-hero .ps-button--secondary {
	background: transparent;
	border-color: var(--ps-color-on-inverse);
	color: var(--ps-color-on-inverse);
}
.ps-hero .ps-button--secondary:hover,
.ps-hero .ps-button--secondary:focus {
	background: var(--ps-color-on-inverse);
	color: var(--ps-color-inverse);
}
@media (prefers-reduced-motion: no-preference) {
	.ps-button--primary:hover,
	.ps-button--secondary:hover,
	.ps-button--ghost:hover {
		transform: translateY(-2px);
		box-shadow: var(--ps-shadow);
	}
}
.ps-button-group {
	display: flex;
	flex-wrap: wrap;
	gap: var(--ps-space-3);
}

/* Hero — real <img> for LCP (preload + fetchpriority), not CSS background */
.ps-hero {
	position: relative;
	display: flex;
	align-items: center;
	min-height: clamp(22rem, 70vh, 38rem);
	padding: calc(var(--ps-header-height) + var(--ps-header-clearance)) var(--ps-gutter) var(--ps-space-8);
	color: var(--ps-color-surface);
	background-color: var(--ps-color-inverse);
	isolation: isolate;
	overflow: hidden;
}
.ps-hero--home {
	min-height: 85svh;
	/* Room for the overlapping trust bar (~half its height). */
	padding-bottom: calc(var(--ps-space-8) + 2.25rem);
}
.ps-hero--home .ps-hero__eyebrow,
.ps-hero--home .ps-hero__title,
.ps-hero--home .ps-hero__text,
.ps-hero--home .ps-hero__quicklink {
	text-shadow: 0 1px 2px rgba(0, 0, 0, 0.55), 0 2px 10px rgba(0, 0, 0, 0.35);
}
.ps-hero__media {
	position: absolute;
	inset: 0;
	z-index: -2;
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: center;
}
.ps-hero::before {
	content: "";
	position: absolute;
	inset: 0;
	z-index: -1;
	background: var(--ps-hero-overlay);
}
.ps-hero__grain {
	position: absolute;
	inset: 0;
	z-index: 0;
	pointer-events: none;
	opacity: 0.18;
	mix-blend-mode: soft-light;
	background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 200 200' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
}
.ps-hero__inner {
	position: relative;
	z-index: 1;
	width: min(100%, var(--ps-content));
	margin-inline: auto;
}
.ps-hero__eyebrow {
	color: var(--ps-color-star);
}
.ps-hero__divider {
	display: block;
	width: 3.5rem;
	height: 0.2rem;
	margin: 0 0 var(--ps-space-4);
	background: var(--ps-color-star);
	border: 0;
}
.ps-hero__title {
	margin: 0 0 var(--ps-space-3);
	font-size: var(--ps-text-hero);
	color: var(--ps-color-surface);
	max-width: 18ch;
}
.ps-hero__subline {
	margin: 0 0 var(--ps-space-3);
	font-family: var(--ps-font-body);
	font-size: var(--ps-text-md);
	font-weight: 600;
	color: var(--ps-color-surface);
}
.ps-hero__text {
	max-width: 36rem;
	margin: 0 0 var(--ps-space-5);
	color: color-mix(in srgb, var(--ps-color-on-inverse) 92%, transparent);
}
.ps-hero__actions {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: var(--ps-space-3) var(--ps-space-4);
}
.ps-hero__quicklink {
	display: inline-flex;
	align-items: center;
	gap: 0.45em;
	color: var(--ps-color-on-inverse);
	font-weight: 700;
	text-decoration: none;
}
.ps-hero__quicklink:hover,
.ps-hero__quicklink:focus {
	color: var(--ps-color-star);
}
/* Interior page hero — under transparent header (not home).
 * Order: logo (header) → breadcrumbs → divider → title (PIMTAB).
 * padding-top = header bar + clearance so breadcrumbs sit under the logo. */
.ps-page-hero {
	position: relative;
	display: flex;
	align-items: flex-start;
	box-sizing: border-box;
	width: 100%;
	max-width: 100%;
	min-height: var(--ps-page-hero-height);
	padding: calc(var(--ps-header-height) + var(--ps-header-clearance)) var(--ps-gutter) var(--ps-space-7);
	color: var(--ps-color-on-primary);
	background-color: var(--ps-color-inverse);
	isolation: isolate;
	overflow: hidden;
}
/* Force light type on dark band — beats Astra / global h1–h3 heading colour */
.ps-page-hero h1,
.ps-page-hero h2,
.ps-page-hero h3,
.ps-page-hero p,
.ps-page-hero li,
.ps-page-hero .ps-page-hero__title,
.ps-page-hero .ps-page-hero__intro,
.ps-page-hero .ps-page-hero__intro p,
.ps-page-hero .ps-page-hero__meta,
.ps-page-hero .ps-page-hero__details,
.ps-page-hero .ps-page-hero__details a {
	color: var(--ps-color-on-primary);
}
@media (max-width: 600px) {
	:root {
		--ps-page-hero-height: 20rem;
		--ps-page-hero-height-compact: 13rem;
	}
}
.ps-page-hero--compact {
	min-height: var(--ps-page-hero-height-compact);
	padding-bottom: var(--ps-space-5);
}
/* Full-bleed via Astra page-builder layout (no 100vw / calc margin) */
.site-main > .ps-page-hero {
	width: 100%;
	max-width: none;
	margin-left: 0;
	margin-right: 0;
}
.ps-page-hero__media {
	position: absolute;
	inset: 0;
	z-index: -2;
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: center;
}
.ps-page-hero--has-media::before {
	content: "";
	position: absolute;
	inset: 0;
	z-index: -1;
	background: var(--ps-hero-overlay);
}
.ps-page-hero:not(.ps-page-hero--has-media)::before {
	content: "";
	position: absolute;
	inset: 0;
	z-index: 0;
	opacity: 0.35;
	background-image:
		linear-gradient(90deg, color-mix(in srgb, var(--ps-color-on-inverse) 4%, transparent) 1px, transparent 1px),
		linear-gradient(color-mix(in srgb, var(--ps-color-on-inverse) 4%, transparent) 1px, transparent 1px);
	background-size: 48px 48px;
	pointer-events: none;
}
.ps-page-hero__inner {
	position: relative;
	z-index: 1;
	width: min(100%, var(--ps-content));
	margin-inline: auto;
}
.ps-page-hero__breadcrumbs {
	margin: 0 0 var(--ps-space-3);
}
.ps-page-hero__breadcrumbs .ps-breadcrumbs {
	margin-bottom: 0;
}
.ps-page-hero__breadcrumbs .ps-breadcrumbs__link,
.ps-page-hero__breadcrumbs .ps-breadcrumbs__current {
	color: color-mix(in srgb, var(--ps-color-on-inverse) 85%, transparent);
}
.ps-page-hero__breadcrumbs .ps-breadcrumbs__current {
	color: var(--ps-color-on-inverse);
}
.ps-page-hero__breadcrumbs .ps-breadcrumbs__item:not(:last-child)::after {
	color: color-mix(in srgb, var(--ps-color-on-inverse) 40%, transparent);
}
.ps-page-hero__breadcrumbs .ps-breadcrumbs__link:hover,
.ps-page-hero__breadcrumbs .ps-breadcrumbs__link:focus {
	color: var(--ps-color-star);
}
.ps-page-hero__divider {
	display: block;
	width: 3.5rem;
	height: 0.2rem;
	margin: 0 0 var(--ps-space-4);
	background: var(--ps-color-star);
	border: 0;
}
.ps-page-hero__title {
	margin: 0 0 var(--ps-space-3);
	font-size: var(--ps-text-xl);
	color: var(--ps-color-on-inverse);
}
.ps-page-hero__intro {
	max-width: var(--ps-measure);
	margin: 0 0 var(--ps-space-4);
	color: color-mix(in srgb, var(--ps-color-on-inverse) 92%, transparent);
}
.ps-page-hero__intro p { margin: 0 0 var(--ps-space-2); }
.ps-page-hero__intro p:last-child { margin-bottom: 0; }
.ps-page-hero__rating { margin-top: var(--ps-space-4); }
.ps-page-hero__rating .ps-rating-badge,
.ps-page-hero__rating .ps-rating-badge__link,
.ps-page-hero__rating .ps-rating-badge__label {
	color: #000;
}
.ps-page-hero__rating .ps-rating-badge__link:hover,
.ps-page-hero__rating .ps-rating-badge__link:focus {
	color: var(--ps-color-primary);
}
.ps-page-hero__meta {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: var(--ps-space-3);
	margin: var(--ps-space-3) 0 0;
}
.ps-page-hero__price {
	font-size: var(--ps-text-md);
	font-weight: 700;
	color: var(--ps-color-star);
}
.ps-page-hero__details {
	display: flex;
	flex-wrap: wrap;
	gap: var(--ps-space-4);
	list-style: none;
	margin: var(--ps-space-4) 0 0;
	padding: 0;
}
.ps-page-hero__detail-label {
	display: block;
	font-size: var(--ps-text-xs);
	text-transform: uppercase;
	letter-spacing: 0.04em;
	color: color-mix(in srgb, var(--ps-color-on-inverse) 65%, transparent);
}
.ps-page-hero__details a {
	color: color-mix(in srgb, var(--ps-color-on-inverse) 95%, transparent);
}
.ps-page-hero__details a:hover,
.ps-page-hero__details a:focus {
	color: var(--ps-color-star);
}

/* Badges + filter chips */
.ps-badge {
	display: inline-block;
	padding: 0.2em 0.65em;
	border: 1px solid var(--ps-color-border);
	border-radius: var(--ps-radius-pill);
	font-size: var(--ps-text-xs);
	font-weight: 600;
	line-height: 1.4;
	background: var(--ps-color-bg);
	color: var(--ps-color-text);
}
.ps-badge--curated,
.ps-badge--google,
.ps-badge--source,
.ps-badge--dietary,
.ps-badge--featured {
	font-size: var(--ps-text-xs);
	letter-spacing: 0.04em;
	text-transform: uppercase;
}
.ps-badge--google {
	background: var(--ps-color-surface);
	border: 1px solid var(--ps-color-border);
	color: var(--ps-color-heading);
}
.ps-badge--curated {
	background: color-mix(in srgb, var(--ps-color-secondary) 12%, var(--ps-color-surface));
	border: 1px solid var(--ps-color-border);
	color: var(--ps-color-heading);
}
.ps-badge--featured {
	background: var(--ps-color-accent);
	border-color: var(--ps-color-accent);
	color: var(--ps-color-heading);
}
.ps-badge--dietary {
	display: inline-flex;
	align-items: center;
	gap: 0.4em;
	background: var(--ps-color-bg);
	border-color: var(--ps-color-border);
	color: var(--ps-color-text);
}
.ps-badge--dietary::before {
	content: "";
	width: 0.45em;
	height: 0.45em;
	border-radius: 50%;
	background: var(--ps-color-secondary);
	flex-shrink: 0;
}
.ps-pizza-filters,
.ps-portfolio-filters { margin: 0 0 var(--ps-space-6); }
.ps-pizza-filters__list,
.ps-portfolio-filters__list {
	display: flex;
	flex-wrap: nowrap;
	gap: var(--ps-space-2);
	list-style: none;
	margin: 0;
	padding: 0 0 var(--ps-space-2);
	overflow-x: auto;
	scroll-snap-type: x mandatory;
	-webkit-overflow-scrolling: touch;
	scrollbar-width: thin;
}
@media (min-width: 48rem) {
	.ps-pizza-filters__list,
	.ps-portfolio-filters__list {
		flex-wrap: wrap;
		overflow: visible;
		scroll-snap-type: none;
		padding-bottom: 0;
	}
}
.ps-pizza-filters__chip,
.ps-portfolio-filters__chip {
	display: inline-flex;
	align-items: center;
	gap: 0.35em;
	flex-shrink: 0;
	scroll-snap-align: start;
	min-height: 2.5rem;
	padding: 0.45em 1.15em;
	border: 1.5px solid var(--ps-color-border);
	border-radius: var(--ps-radius-pill);
	background: var(--ps-color-surface);
	color: var(--ps-color-heading);
	font-size: var(--ps-text-sm);
	font-weight: 600;
	text-decoration: none;
	transition: background-color var(--ps-ease), border-color var(--ps-ease), color var(--ps-ease);
}
.ps-pizza-filters__chip:hover,
.ps-pizza-filters__chip:focus,
.ps-portfolio-filters__chip:hover,
.ps-portfolio-filters__chip:focus {
	border-color: var(--ps-color-primary);
	color: var(--ps-color-primary);
}
.ps-pizza-filters__chip.is-active,
.ps-portfolio-filters__chip.is-active {
	background: var(--ps-color-primary);
	border-color: var(--ps-color-primary);
	color: var(--ps-color-on-primary);
}
.ps-pizza-filters__chip.is-active::before,
.ps-portfolio-filters__chip.is-active::before {
	content: "✓";
	font-size: 0.85em;
	line-height: 1;
}

/* Cards + grids */
.ps-pizza-grid,
.ps-portfolio-grid {
	display: grid;
	grid-template-columns: 1fr;
	gap: var(--ps-space-5);
	margin: 0 0 var(--ps-space-7);
}
@media (min-width: 768px) {
	.ps-pizza-grid,
	.ps-portfolio-grid,
	.ps-portfolio-gallery__list { grid-template-columns: repeat(2, 1fr); }
	.ps-footer-contact { grid-template-columns: 1.2fr 1fr; align-items: start; }
}
@media (min-width: 1100px) {
	.ps-pizza-grid,
	.ps-portfolio-grid {
		grid-template-columns: repeat(3, 1fr);
		gap: var(--ps-space-6);
	}
	.ps-portfolio-gallery__list { grid-template-columns: repeat(3, 1fr); }
}
.ps-pizza-card,
.ps-portfolio-card {
	position: relative;
	display: flex;
	flex-direction: column;
	height: 100%;
	margin: 0;
	background: var(--ps-color-surface);
	border: 1px solid var(--ps-color-border);
	border-radius: var(--ps-radius-lg);
	box-shadow: var(--ps-shadow-sm);
	overflow: hidden;
	transition: box-shadow var(--ps-ease), border-color var(--ps-ease), transform var(--ps-ease);
}
.ps-pizza-card:hover,
.ps-portfolio-card:hover {
	border-color: color-mix(in srgb, var(--ps-color-primary) 35%, var(--ps-color-border));
	box-shadow: var(--ps-shadow);
}
@media (prefers-reduced-motion: no-preference) {
	.ps-pizza-card:hover,
	.ps-portfolio-card:hover { transform: translateY(-2px); }
}
.ps-pizza-card__media,
.ps-portfolio-card__media {
	position: relative;
	display: block;
	aspect-ratio: 4 / 3;
	overflow: hidden;
	background: var(--ps-color-border);
	text-decoration: none;
}
.ps-pizza-card__link::after {
	content: "";
	position: absolute;
	inset: 0;
	z-index: 1;
}
.ps-pizza-card__image,
.ps-portfolio-card__image {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
}
@media (prefers-reduced-motion: no-preference) {
	.ps-pizza-card__image,
	.ps-portfolio-card__image {
		transition: transform 320ms ease;
	}
	.ps-pizza-card:hover .ps-pizza-card__image,
	.ps-portfolio-card:hover .ps-portfolio-card__image { transform: scale(1.04); }
}
.ps-pizza-card__placeholder,
.ps-portfolio-card__placeholder {
	display: grid;
	place-items: center;
	width: 100%;
	height: 100%;
	background:
		radial-gradient(circle at 30% 30%, color-mix(in srgb, var(--ps-color-star) 18%, transparent), transparent 55%),
		linear-gradient(145deg, var(--ps-color-bg), var(--ps-color-border));
}
.ps-pizza-card__placeholder::after {
	content: "";
	width: 3.25rem;
	height: 3.25rem;
	border: 2px solid color-mix(in srgb, var(--ps-color-primary) 45%, var(--ps-color-border));
	border-radius: 50%;
	opacity: 0.85;
	box-shadow: inset 0 0 0 6px color-mix(in srgb, var(--ps-color-surface) 70%, transparent);
}
.ps-pizza-card__badge {
	position: absolute;
	top: var(--ps-space-3);
	left: var(--ps-space-3);
	z-index: 2;
}
.ps-pizza-card__price {
	position: absolute;
	top: var(--ps-space-3);
	right: var(--ps-space-3);
	z-index: 2;
	margin: 0;
	padding: 0.35em 0.75em;
	border-radius: var(--ps-radius-pill);
	background: var(--ps-color-primary);
	color: var(--ps-color-on-primary);
	font-size: var(--ps-text-sm);
	font-weight: 700;
	line-height: 1.2;
	white-space: nowrap;
	box-shadow: var(--ps-shadow-sm);
}
.ps-portfolio-card__media-shade {
	position: absolute;
	inset: 0;
	z-index: 1;
	background: linear-gradient(
		180deg,
		transparent 35%,
		color-mix(in srgb, var(--ps-color-inverse) 55%, transparent) 100%
	);
	pointer-events: none;
}
.ps-portfolio-card__type {
	position: absolute;
	left: var(--ps-space-3);
	bottom: var(--ps-space-3);
	z-index: 2;
	background: var(--ps-color-surface);
	border-color: transparent;
	color: var(--ps-color-heading);
	box-shadow: var(--ps-shadow-sm);
}
.ps-pizza-card__body,
.ps-portfolio-card__body {
	display: flex;
	flex: 1;
	flex-direction: column;
	gap: var(--ps-space-3);
	padding: var(--ps-space-5);
}
.ps-pizza-card__header {
	display: flex;
	flex-wrap: wrap;
	align-items: baseline;
	gap: var(--ps-space-2);
}
.ps-pizza-card__title,
.ps-portfolio-card__title {
	margin: 0;
	flex: 1 1 12rem;
	font-family: var(--ps-font-display);
	font-size: var(--ps-text-md);
	font-weight: 600;
	letter-spacing: -0.01em;
	line-height: var(--ps-leading-tight);
	color: var(--ps-color-heading);
}
.ps-pizza-card__title a,
.ps-portfolio-card__title a {
	text-decoration: none;
	color: inherit;
}
.ps-pizza-card__title a:hover,
.ps-pizza-card__title a:focus,
.ps-portfolio-card__title a:hover,
.ps-portfolio-card__title a:focus { color: var(--ps-color-primary); }
.ps-pizza-card__categories,
.ps-pizza-card__dietary {
	display: flex;
	flex-wrap: wrap;
	gap: var(--ps-space-2);
	list-style: none;
	margin: 0;
	padding: 0;
}
.ps-pizza-card__category {
	display: inline-flex;
	align-items: center;
	min-height: 1.75rem;
	padding: 0.15em 0.55em;
	border: 1px solid var(--ps-color-border);
	border-radius: var(--ps-radius-sm);
	background: var(--ps-color-bg);
	color: var(--ps-color-text);
	font-size: var(--ps-text-xs);
	font-weight: 600;
}
.ps-pizza-card__ingredients,
.ps-pizza-card__excerpt,
.ps-portfolio-card__excerpt {
	margin: 0;
	font-size: var(--ps-text-sm);
	line-height: 1.5;
	color: var(--ps-color-muted);
}
.ps-pizza-card__ingredients {
	display: -webkit-box;
	-webkit-box-orient: vertical;
	-webkit-line-clamp: 2;
	line-clamp: 2;
	overflow: hidden;
}
.ps-pizza-card__allergens {
	margin: 0;
	margin-top: auto;
	padding-top: var(--ps-space-1);
	font-size: var(--ps-text-xs);
	font-weight: 600;
	color: var(--ps-color-muted);
}
.ps-pizza-card[hidden] { display: none !important; }
.ps-pizza-archive__listing,
.ps-portfolio-archive__listing {
	padding-top: var(--ps-space-7);
	padding-bottom: var(--ps-space-8);
	background: var(--ps-color-bg);
}
.ps-pizza-archive__status {
	margin: 0 0 var(--ps-space-2);
	font-size: var(--ps-text-sm);
	font-weight: 600;
	color: var(--ps-color-heading);
}
.ps-pizza-archive__allergy-note {
	margin: 0 0 var(--ps-space-5);
	font-size: var(--ps-text-sm);
	color: var(--ps-color-muted);
}
.ps-pizza-filters--dietary { margin-top: calc(var(--ps-space-3) * -1); }
.ps-pizza-archive__empty {
	margin: 0 0 var(--ps-space-6);
	padding: var(--ps-space-6);
	border: 1px dashed var(--ps-color-border);
	border-radius: var(--ps-radius-lg);
	background: var(--ps-color-surface);
	color: var(--ps-color-text);
	text-align: center;
}
.ps-pizza-archive__empty[hidden] { display: none !important; }
.ps-pizza-archive__cta {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: var(--ps-space-4);
	margin-top: var(--ps-space-2);
	padding: var(--ps-space-5) var(--ps-space-6);
	border: 1px solid var(--ps-color-border);
	border-radius: var(--ps-radius-lg);
	background: var(--ps-color-surface);
}
.ps-pizza-archive__cta-text {
	flex: 1 1 18rem;
	max-width: 36rem;
	margin: 0;
	color: var(--ps-color-text);
}
.ps-portfolio-card__meta {
	display: flex;
	flex-wrap: wrap;
	gap: var(--ps-space-2) var(--ps-space-4);
	list-style: none;
	margin: 0;
	padding: 0;
	font-size: var(--ps-text-sm);
	color: var(--ps-color-muted);
}
.ps-portfolio-card__meta-item {
	display: inline-flex;
	align-items: center;
	gap: 0.4em;
}
.ps-portfolio-card__meta-item .ps-icon {
	color: var(--ps-color-secondary);
	opacity: 0.9;
}

/* Rating + reviews */
.ps-rating-badge { margin: 0 0 var(--ps-space-4); }
.ps-rating-badge__link,
.ps-rating-badge__text {
	display: inline-flex;
	align-items: center;
	gap: var(--ps-space-2);
	padding: var(--ps-space-2) var(--ps-space-3);
	border: 1px solid var(--ps-color-border);
	border-radius: var(--ps-radius);
	background: var(--ps-color-surface);
	box-shadow: var(--ps-shadow-sm);
	color: var(--ps-color-heading);
	font-weight: 700;
	text-decoration: none;
}
.ps-rating-badge__link:hover,
.ps-rating-badge__link:focus {
	border-color: var(--ps-color-primary);
	color: var(--ps-color-primary);
}
.ps-stars {
	display: inline-flex;
	gap: 0.1rem;
	/* Accent amber fails WCAG AA as text on cream; use accent-text. */
	color: var(--ps-color-accent-text);
	line-height: 1;
}
.ps-star {
	position: relative;
	display: inline-block;
	width: 1.15em;
	height: 1.15em;
	font-size: 1.15rem;
}
.ps-star__empty,
.ps-star__full { display: block; width: 1.15em; height: 1.15em; }
.ps-star__empty path { fill: var(--ps-color-border); }
.ps-star__full path { fill: currentColor; }
.ps-star__clip {
	position: absolute;
	top: 0;
	left: 0;
	height: 100%;
	overflow: hidden;
}
.ps-review-card {
	position: relative;
	margin: 0 0 var(--ps-space-5);
	padding: var(--ps-space-5);
	border: 1px solid var(--ps-color-border);
	border-radius: var(--ps-radius-lg);
	background: var(--ps-color-surface);
	box-shadow: var(--ps-shadow-sm);
}
.ps-review-card--curated {
	border-left: 3px solid var(--ps-color-accent);
}
.ps-review-card--curated::before {
	content: "“";
	position: absolute;
	top: 0.35rem;
	right: var(--ps-space-4);
	font-family: var(--ps-font-display);
	font-size: 3.5rem;
	font-style: italic;
	line-height: 1;
	color: color-mix(in srgb, var(--ps-color-accent) 45%, transparent);
	pointer-events: none;
}
.ps-review-card__source { margin: 0 0 var(--ps-space-2); }
.ps-review-card__author {
	margin: 0 0 var(--ps-space-1);
	font-family: var(--ps-font-display);
	font-size: var(--ps-text-md);
	font-weight: 600;
	letter-spacing: -0.01em;
}
.ps-review-card__text {
	margin: var(--ps-space-3) 0;
	font-family: var(--ps-font-display);
	font-style: italic;
	font-weight: 400;
	font-size: var(--ps-text-md);
	color: var(--ps-color-text);
}
.ps-review-card__text p { margin: 0; }
.ps-review-card .ps-stars {
	color: var(--ps-color-accent-text);
}
.ps-review-card__meta {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: var(--ps-space-3);
	margin: 0;
	color: var(--ps-color-muted);
	font-size: var(--ps-text-sm);
}

/* Archives / singles (hero lives outside article; content below) */
.ps-pizza-single,
.ps-portfolio-single {
	width: min(100%, var(--ps-content));
	margin-inline: auto;
	padding: var(--ps-space-6) var(--ps-gutter) var(--ps-space-8);
}
.ps-pizza-single {
	width: min(100%, 80rem);
	padding-block: var(--ps-space-8);
}
.ps-pizza-single__layout {
	display: grid;
	gap: var(--ps-space-6);
}
@media (min-width: 768px) {
	.ps-pizza-single__layout--has-media {
		grid-template-columns: minmax(0, 36rem) minmax(0, 1fr);
		align-items: center;
		gap: var(--ps-space-6) var(--ps-space-7);
	}
}
@media (min-width: 1024px) {
	.ps-pizza-single__layout--has-media {
		grid-template-columns: minmax(0, 42rem) minmax(0, 1fr);
		gap: var(--ps-space-7) clamp(2.5rem, 4vw, 4.5rem);
	}
}
.ps-pizza-single__photo {
	margin: 0;
	width: 100%;
	max-width: 42rem;
	border-radius: var(--ps-radius-lg);
	overflow: hidden;
	background: var(--ps-color-surface);
	box-shadow: 0 1px 0 color-mix(in srgb, var(--ps-color-border) 80%, transparent);
}
@media (max-width: 767px) {
	.ps-pizza-single__photo {
		max-width: 32rem;
		margin-inline: auto;
	}
}
.ps-pizza-single__photo-trigger {
	position: relative;
	display: block;
	width: 100%;
	padding: 0;
	border: 0;
	cursor: zoom-in;
	background: transparent;
}
.ps-pizza-single__image {
	display: block;
	width: 100%;
	height: auto;
	object-fit: contain;
}
.ps-pizza-single__zoom {
	position: absolute;
	right: var(--ps-space-3);
	bottom: var(--ps-space-3);
	padding: 0.35em 0.75em;
	border-radius: var(--ps-radius-pill);
	background: color-mix(in srgb, var(--ps-color-inverse) 75%, transparent);
	color: var(--ps-color-on-inverse);
	font-size: var(--ps-text-xs);
	font-weight: 700;
	letter-spacing: 0.04em;
	text-transform: uppercase;
}
.ps-pizza-single__details {
	min-width: 0;
}
.ps-pizza-single__details > :first-child { margin-top: 0; }
.ps-pizza-single__details > :last-child { margin-bottom: 0; }
.ps-pizza-single__ingredients,
.ps-pizza-single__allergens,
.ps-pizza-single__dietary,
.ps-pizza-related { margin: var(--ps-space-5) 0; }
.ps-pizza-single__ingredients h2,
.ps-pizza-single__allergens h2,
.ps-pizza-single__dietary h2,
.ps-pizza-related h2,
.ps-portfolio-gallery h2 {
	margin: 0 0 var(--ps-space-3);
	font-size: var(--ps-text-lg);
}
.ps-pizza-single__allergy-note {
	margin: var(--ps-space-2) 0 0;
	font-size: var(--ps-text-sm);
	color: var(--ps-color-muted);
}
.ps-pizza-single__dietary-list {
	display: flex;
	flex-wrap: wrap;
	gap: var(--ps-space-2);
	list-style: none;
	margin: 0;
	padding: 0;
}
.ps-pizza-single__categories { margin: var(--ps-space-4) 0; }
.ps-pizza-single__categories-label {
	font-weight: 700;
	margin-right: 0.35em;
}
.ps-pizza-single__cta,
.ps-portfolio-single__cta { margin: var(--ps-space-6) 0; }
.ps-portfolio-pullquote {
	margin: var(--ps-space-6) 0;
	padding: var(--ps-space-5) var(--ps-space-4);
	border-left: 3px solid var(--ast-global-color-0, var(--ps-color-accent));
	background: color-mix(in srgb, var(--ps-color-bg) 70%, transparent);
}
.ps-portfolio-pullquote__text {
	margin: 0;
	font-family: var(--ps-font-display, inherit);
	font-size: var(--ps-text-lg);
	line-height: 1.45;
	font-style: italic;
}
.ps-portfolio-pullquote__author {
	margin: var(--ps-space-3) 0 0;
	font-size: var(--ps-text-sm);
	color: var(--ps-color-muted);
}
.ps-portfolio-nav {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: var(--ps-space-4);
	margin: var(--ps-space-7) 0 0;
	padding-top: var(--ps-space-5);
	border-top: 1px solid var(--ps-color-border);
}
.ps-portfolio-nav__link {
	display: flex;
	flex-direction: column;
	gap: 0.25rem;
	text-decoration: none;
	min-width: 0;
}
.ps-portfolio-nav__link--next { text-align: right; }
.ps-portfolio-nav__dir {
	font-size: var(--ps-text-xs);
	text-transform: uppercase;
	letter-spacing: 0.04em;
	color: var(--ps-color-muted);
}
.ps-portfolio-nav__title {
	font-weight: 700;
	color: inherit;
}
.ps-portfolio-related {
	width: min(100%, var(--ps-content));
	margin: var(--ps-space-7) auto 0;
	padding: var(--ps-space-6) var(--ps-gutter) var(--ps-space-8);
	border-top: 1px solid var(--ps-color-border);
}
.ps-portfolio-related h2 {
	margin: 0 0 var(--ps-space-4);
	font-size: var(--ps-text-lg);
}
.ps-portfolio-archive__status {
	min-height: 1.25em;
	margin: 0 0 var(--ps-space-4);
	font-size: var(--ps-text-sm);
	color: var(--ps-color-muted);
}
.ps-pizza-allergens-admin__list {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(14rem, 1fr));
	gap: 0.35rem 1rem;
	margin: 0.5rem 0 0;
	padding: 0;
	list-style: none;
}
.ps-pizza-related {
	width: min(100%, var(--ps-content));
	margin: var(--ps-space-7) auto 0;
	padding: var(--ps-space-6) var(--ps-gutter) var(--ps-space-8);
	border-top: 1px solid var(--ps-color-border);
}
.ps-portfolio-gallery { margin: var(--ps-space-6) 0; }
.ps-search-results__list {
	list-style: none;
	margin: 0;
	padding: 0;
}
.ps-search-results__item {
	margin: 0 0 var(--ps-space-5);
	padding-bottom: var(--ps-space-4);
	border-bottom: 1px solid var(--ps-color-border);
}
.ps-search-results__title {
	margin: 0 0 var(--ps-space-2);
	font-family: var(--ps-font-display);
	font-size: var(--ps-text-lg);
}
.ps-search-results__excerpt {
	margin: 0;
	color: var(--ps-color-muted);
}
.ps-portfolio-gallery__list {
	display: grid;
	grid-template-columns: 1fr;
	gap: var(--ps-space-3);
	list-style: none;
	margin: 0;
	padding: 0;
}
.ps-portfolio-gallery__item { margin: 0; }
.ps-portfolio-gallery__trigger {
	display: block;
	width: 100%;
	aspect-ratio: 4 / 3;
	padding: 0;
	overflow: hidden;
	border: 0;
	border-radius: var(--ps-radius);
	background: var(--ps-color-border);
	cursor: pointer;
}
.ps-portfolio-gallery__image {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
}

/* Breadcrumbs */
.ps-breadcrumbs {
	margin: 0 0 var(--ps-space-4);
	font-size: var(--ps-text-sm);
}
.ps-breadcrumbs__list {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: var(--ps-space-1) var(--ps-space-2);
	list-style: none;
	margin: 0;
	padding: 0;
	color: var(--ps-color-muted);
}
.ps-breadcrumbs__item:not(:last-child)::after {
	content: "/";
	margin-left: var(--ps-space-2);
	color: var(--ps-color-border);
}
.ps-breadcrumbs__link {
	color: var(--ps-color-muted);
	text-decoration: none;
}
.ps-breadcrumbs__link:hover,
.ps-breadcrumbs__link:focus {
	color: var(--ps-color-primary);
	text-decoration: underline;
}
.ps-breadcrumbs__current {
	color: var(--ps-color-heading);
	font-weight: 600;
}

/* Forms */
.ps-form {
	position: relative;
	box-sizing: border-box;
	min-width: 0;
	max-width: 100%;
	overflow-x: clip;
}
.ps-form__section,
.ps-form__row {
	max-width: 100%;
	min-width: 0;
}
.ps-form__message {
	margin: 0 0 var(--ps-space-5);
	padding: var(--ps-space-4) var(--ps-space-5);
	border: 1px solid var(--ps-color-border);
	border-radius: var(--ps-radius-lg);
}
.ps-form__message p { margin: 0; }
.ps-form__message-title {
	margin: 0 0 var(--ps-space-2);
	font-family: var(--ps-font-display);
	font-size: var(--ps-text-md);
	font-weight: 700;
	color: var(--ps-color-heading);
}
.ps-form__message--success {
	border-color: var(--ps-color-secondary);
	background: color-mix(in srgb, var(--ps-color-secondary) 12%, var(--ps-color-surface));
}
.ps-form__message--error {
	border-color: var(--ps-color-danger);
	background: var(--ps-color-danger-bg);
}
.ps-form__section {
	/* Grid + minmax(0,1fr) beats UA fieldset min-width:min-content (iOS overflow). */
	display: grid;
	grid-template-columns: minmax(0, 1fr);
	margin: 0 0 var(--ps-space-6);
	padding: 0;
	border: 0;
	width: 100%;
	max-width: 100%;
	min-width: 0;
	min-inline-size: 0;
	box-sizing: border-box;
}
.ps-form fieldset.ps-form__section {
	min-width: 0;
}
.ps-form__section-title {
	display: block;
	width: 100%;
	margin: 0 0 var(--ps-space-4);
	padding: 0 0 var(--ps-space-2);
	border-bottom: 1px solid var(--ps-color-border);
	font-family: var(--ps-font-display);
	font-size: var(--ps-text-md);
	font-weight: 700;
	color: var(--ps-color-heading);
}
.ps-form__row {
	display: grid;
	grid-template-columns: minmax(0, 1fr);
	gap: var(--ps-space-4);
	min-width: 0;
}
@media (min-width: 560px) {
	.ps-form__row { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); }
}
.ps-form__field,
.ps-form__fieldset {
	margin: 0 0 var(--ps-space-5);
	min-width: 0;
}
.ps-form__row > .ps-form__field:last-child,
.ps-form__section > .ps-form__field:last-child { margin-bottom: 0; }
.ps-form__field label,
.ps-form__fieldset legend {
	display: block;
	margin-bottom: var(--ps-space-2);
	font-weight: 700;
	color: var(--ps-color-heading);
}
.ps-form__field--consent label {
	display: flex;
	gap: var(--ps-space-2);
	align-items: flex-start;
	font-weight: 400;
}
.ps-form__field--consent input[type="checkbox"] {
	margin-top: 0.3em;
	flex-shrink: 0;
	width: 1.25rem;
	height: 1.25rem;
}
.ps-form__required { color: var(--ps-color-danger); }
.ps-form__field input[type="text"],
.ps-form__field input[type="email"],
.ps-form__field input[type="tel"],
.ps-form__field input[type="date"],
.ps-form__field input[type="month"],
.ps-form__field input[type="number"],
.ps-form__field select,
.ps-form__field textarea {
	display: block;
	box-sizing: border-box;
	width: 100%;
	max-width: 100%;
	/* date/month controls have large intrinsic min-widths on mobile WebKit */
	min-width: 0;
	min-height: 3.25rem;
	padding: 0.7em 0.95em;
	border: 1.5px solid var(--ps-color-border);
	border-radius: var(--ps-radius);
	background: var(--ps-color-surface);
	color: var(--ps-color-text);
	font: inherit;
	box-shadow: inset 0 1px 2px rgba(60, 35, 15, 0.04);
	transition: border-color var(--ps-ease), box-shadow var(--ps-ease);
}
/*
 * Native date/month pickers (esp. mobile WebKit/Blink) ignore min-width:0 and
 * expand past the card. Grid + overflow forces them to stay in frame.
 */
.ps-form__field:has(> input[type="date"]),
.ps-form__field:has(> input[type="month"]) {
	display: grid;
	grid-template-columns: minmax(0, 1fr);
	align-content: start;
	max-width: 100%;
	overflow-x: clip;
}
.ps-form__field input[type="date"],
.ps-form__field input[type="month"] {
	width: 100%;
	max-width: 100%;
	min-width: 0;
	overflow: hidden;
}
.ps-form__field input[type="date"]::-webkit-datetime-edit,
.ps-form__field input[type="month"]::-webkit-datetime-edit {
	min-width: 0;
	max-width: 100%;
	padding: 0;
}
.ps-form__field input[type="date"]::-webkit-calendar-picker-indicator,
.ps-form__field input[type="month"]::-webkit-calendar-picker-indicator {
	flex-shrink: 0;
	margin-inline-start: 0.25em;
}
.ps-form__field input:focus-visible,
.ps-form__field select:focus-visible,
.ps-form__field textarea:focus-visible {
	border-color: var(--ps-color-secondary);
	box-shadow: 0 0 0 3px color-mix(in srgb, var(--ps-color-secondary) 22%, transparent);
	outline: none;
}
.ps-form__field textarea {
	min-height: 6.5rem;
	resize: vertical;
}
.ps-form__field--error input,
.ps-form__field--error select,
.ps-form__field--error textarea { border-color: var(--ps-color-danger); }
.ps-form__error {
	display: flex;
	align-items: flex-start;
	gap: 0.4em;
	margin-top: var(--ps-space-1);
	color: var(--ps-color-danger);
	font-size: var(--ps-text-sm);
	font-weight: 600;
}
.ps-form__error::before {
	content: "!";
	display: inline-grid;
	place-items: center;
	width: 1.15em;
	height: 1.15em;
	margin-top: 0.1em;
	border-radius: 50%;
	background: var(--ps-color-danger);
	color: var(--ps-color-on-primary);
	font-size: 0.75em;
	font-weight: 700;
	line-height: 1;
	flex-shrink: 0;
}
.ps-form__hint {
	margin: 0 0 var(--ps-space-3);
	font-size: var(--ps-text-sm);
	color: var(--ps-color-muted);
}
.ps-form__checkboxes {
	display: grid;
	gap: var(--ps-space-2);
	list-style: none;
	margin: 0;
	padding: 0;
}
@media (min-width: 560px) {
	.ps-form__checkboxes--grid { grid-template-columns: 1fr 1fr; }
}
.ps-form__checkboxes label {
	display: flex;
	gap: var(--ps-space-2);
	align-items: flex-start;
	min-height: 3.25rem;
	margin: 0;
	padding: 0.7em 0.95em;
	border: 1.5px solid var(--ps-color-border);
	border-radius: var(--ps-radius);
	background: var(--ps-color-surface);
	font-weight: 400;
	cursor: pointer;
	transition: border-color var(--ps-ease), background-color var(--ps-ease), box-shadow var(--ps-ease);
}
.ps-form__checkboxes label:has(input:checked) {
	border-color: var(--ps-color-secondary);
	background: color-mix(in srgb, var(--ps-color-secondary) 12%, var(--ps-color-surface));
	box-shadow: inset 0 0 0 1px var(--ps-color-secondary);
}
.ps-form__checkboxes input[type="checkbox"] {
	width: 1.25rem;
	height: 1.25rem;
	margin-top: 0.15em;
	flex-shrink: 0;
}
.ps-form__actions {
	margin: var(--ps-space-5) 0 0;
	padding-top: var(--ps-space-5);
	border-top: 1px solid var(--ps-color-border);
}
.ps-form__actions .ps-button,
.ps-form__submit {
	width: 100%;
	border-style: solid;
	cursor: pointer;
	font-size: var(--ps-text-md);
}
@media (min-width: 560px) {
	.ps-form__actions .ps-button,
	.ps-form__submit { width: auto; min-width: 16rem; }
}
.ps-form__reassure {
	margin: var(--ps-space-3) 0 0;
	font-size: var(--ps-text-sm);
	color: var(--ps-color-muted);
}
/* Visually hidden — avoid left:-9999px (expands scrollWidth on some mobiles). */
.ps-form__honeypot {
	position: absolute;
	width: 1px;
	height: 1px;
	padding: 0;
	margin: -1px;
	overflow: hidden;
	clip: rect(0, 0, 0, 0);
	clip-path: inset(50%);
	white-space: nowrap;
	border: 0;
}
.ps-form__progress {
	margin: 0 0 var(--ps-space-4);
	font-size: var(--ps-text-sm);
	font-weight: 700;
	letter-spacing: 0.04em;
	text-transform: uppercase;
	color: var(--ps-color-muted);
}
.ps-form__error-summary {
	margin: 0 0 var(--ps-space-5);
	padding: var(--ps-space-4) var(--ps-space-5);
	border: 1px solid var(--ps-color-danger);
	border-radius: var(--ps-radius-lg);
	background: var(--ps-color-danger-bg);
}
.ps-form__error-summary[hidden] { display: none; }
.ps-form__error-summary-title {
	margin: 0 0 var(--ps-space-2);
	font-weight: 700;
	color: var(--ps-color-danger);
}
.ps-form__error-summary-list {
	margin: 0;
	padding-left: 1.2em;
}
.ps-form__error-summary-list a {
	color: inherit;
	font-weight: 600;
}
.ps-form__summary {
	margin: 0 0 var(--ps-space-5);
	padding: var(--ps-space-4);
	border: 1px solid var(--ps-color-border);
	border-radius: var(--ps-radius);
	background: color-mix(in srgb, var(--ps-color-bg) 65%, var(--ps-color-surface));
}
.ps-form__summary[hidden] { display: none; }
.ps-form__summary-title {
	margin: 0 0 var(--ps-space-3);
	font-weight: 700;
	color: var(--ps-color-heading);
}
.ps-form__summary-list { margin: 0; }
.ps-form__summary-row {
	display: grid;
	grid-template-columns: minmax(7rem, 35%) 1fr;
	gap: var(--ps-space-2) var(--ps-space-3);
	margin: 0 0 var(--ps-space-2);
	font-size: var(--ps-text-sm);
}
.ps-form__summary-row dt {
	margin: 0;
	font-weight: 700;
	color: var(--ps-color-muted);
}
.ps-form__summary-row dd { margin: 0; }
.ps-form__actions--steps {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: var(--ps-space-3);
}
.ps-form__actions--steps .ps-form__reassure {
	flex: 1 1 100%;
}
.ps-js .ps-form--stepped .ps-form__step:not(.is-active) {
	display: none;
}
.ps-form__confirm {
	margin: 0 0 var(--ps-space-5);
	padding: var(--ps-space-5);
	border: 1px solid var(--ps-color-secondary);
	border-radius: var(--ps-radius-lg);
	background: color-mix(in srgb, var(--ps-color-secondary) 12%, var(--ps-color-surface));
}
.ps-form__confirm-title {
	margin: 0 0 var(--ps-space-2);
	font-family: var(--ps-font-display);
	font-size: var(--ps-text-lg);
	font-weight: 700;
	color: var(--ps-color-heading);
}
.ps-form__confirm-reply {
	margin: 0 0 var(--ps-space-4);
	font-weight: 600;
}
.ps-form__confirm-steps {
	margin: 0;
	padding-left: 1.25em;
	display: grid;
	gap: var(--ps-space-2);
}

/* Request a Service — conversion layout */
.ps-request-page__grid {
	display: grid;
	grid-template-columns: minmax(0, 1fr);
	gap: var(--ps-space-7);
}
.ps-request-page__grid > * {
	min-width: 0;
}
@media (min-width: 900px) {
	.ps-request-page__grid {
		grid-template-columns: minmax(0, 1.55fr) minmax(16rem, 0.85fr);
		align-items: start;
		gap: var(--ps-space-8);
	}
}
.ps-request-page__form-title {
	margin: 0 0 var(--ps-space-2);
	font-size: var(--ps-text-lg);
}
.ps-request-page__form-lede {
	margin: 0 0 var(--ps-space-5);
	max-width: var(--ps-measure);
	color: var(--ps-color-muted);
}
.ps-request-page__form .ps-form {
	padding: var(--ps-space-5);
	border: 1px solid var(--ps-color-border);
	border-radius: var(--ps-radius-lg);
	background: var(--ps-color-surface);
	box-shadow: var(--ps-shadow-sm);
	width: 100%;
	max-width: 100%;
	min-width: 0;
	box-sizing: border-box;
}
@media (min-width: 560px) {
	.ps-request-page__form .ps-form { padding: var(--ps-space-6); }
}
/* Keep the whole request card + controls inside the phone viewport. */
@media (max-width: 599px) {
	.ps-request-page .ps-section {
		padding-inline: max(0.75rem, env(safe-area-inset-left, 0px))
			max(0.75rem, env(safe-area-inset-right, 0px));
		overflow-x: clip;
		max-width: 100%;
	}
	.ps-request-page .ps-section__inner,
	.ps-request-page .ps-request-page__grid,
	.ps-request-page .ps-request-page__form {
		width: 100%;
		max-width: 100%;
		min-width: 0;
		box-sizing: border-box;
	}
	.ps-request-page .ps-form {
		padding: 1rem;
		overflow-x: clip;
	}
	.ps-request-page .ps-form__actions--steps {
		display: grid;
		grid-template-columns: minmax(0, 1fr);
		gap: var(--ps-space-3);
		max-width: 100%;
	}
	.ps-request-page .ps-form__actions--steps .ps-button {
		width: 100%;
		min-width: 0;
		max-width: 100%;
	}
	.ps-request-page .ps-form__field,
	.ps-request-page .ps-form__row,
	.ps-request-page .ps-form__section {
		max-width: 100%;
		min-width: 0;
	}
	.ps-request-page .ps-form__field input,
	.ps-request-page .ps-form__field select,
	.ps-request-page .ps-form__field textarea {
		width: 100%;
		max-width: 100%;
		min-width: 0;
	}
}
.ps-request-page__aside {
	padding: var(--ps-space-5);
	border-left: 3px solid var(--ps-color-primary);
	background: color-mix(in srgb, var(--ps-color-bg) 70%, var(--ps-color-surface));
	border-radius: 0 var(--ps-radius-lg) var(--ps-radius-lg) 0;
}
@media (min-width: 900px) {
	.ps-request-page__aside {
		position: sticky;
		top: calc(var(--ps-header-height) + var(--ps-space-4));
	}
}
.ps-request-page__aside-title {
	margin: 0 0 var(--ps-space-4);
	font-size: var(--ps-text-md);
}
.ps-request-aside__response {
	margin: 0 0 var(--ps-space-4);
	font-size: var(--ps-text-sm);
	font-weight: 600;
	color: var(--ps-color-heading);
}
.ps-request-page__aside .ps-rating-badge {
	margin: 0 0 var(--ps-space-4);
}
.ps-request-contact__wa {
	display: inline-flex;
	align-items: center;
	gap: 0.5em;
}
.ps-request-steps {
	list-style: none;
	margin: 0 0 var(--ps-space-5);
	padding: 0;
	display: grid;
	gap: var(--ps-space-3);
}
.ps-request-steps__item {
	display: flex;
	gap: var(--ps-space-3);
	align-items: flex-start;
	margin: 0;
}
.ps-request-steps__num {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	flex-shrink: 0;
	width: 1.75rem;
	height: 1.75rem;
	border-radius: 50%;
	background: var(--ps-color-primary);
	color: var(--ps-color-on-primary);
	font-size: var(--ps-text-sm);
	font-weight: 700;
	line-height: 1;
}
.ps-request-steps__text {
	padding-top: 0.15em;
	font-size: var(--ps-text-sm);
	color: var(--ps-color-text);
}
.ps-request-reassurance {
	list-style: none;
	margin: 0 0 var(--ps-space-5);
	padding: 0;
	display: grid;
	gap: var(--ps-space-2);
}
.ps-request-reassurance li {
	position: relative;
	margin: 0;
	padding-left: 1.35em;
	font-size: var(--ps-text-sm);
	color: var(--ps-color-text);
}
.ps-request-reassurance li::before {
	content: "";
	position: absolute;
	left: 0;
	top: 0.45em;
	width: 0.55em;
	height: 0.55em;
	border-radius: 50%;
	background: var(--ps-color-secondary);
}
.ps-request-contact {
	margin: 0 0 var(--ps-space-5);
	padding-top: var(--ps-space-4);
	border-top: 1px solid var(--ps-color-border);
}
.ps-request-contact__label {
	margin: 0 0 var(--ps-space-2);
	font-weight: 700;
	color: var(--ps-color-heading);
}
.ps-request-contact__row { margin: 0 0 var(--ps-space-1); }
.ps-request-contact__link {
	font-weight: 700;
	text-decoration: none;
}
.ps-request-contact__link:hover,
.ps-request-contact__link:focus {
	text-decoration: underline;
}
.ps-request-quote {
	margin: 0;
	padding-top: var(--ps-space-4);
	border-top: 1px solid var(--ps-color-border);
}
.ps-request-quote__text {
	margin: 0 0 var(--ps-space-3);
	padding: 0;
	border: 0;
	font-family: var(--ps-font-display);
	font-size: var(--ps-text-sm);
	font-style: italic;
	line-height: 1.45;
	color: var(--ps-color-heading);
}
.ps-request-quote__meta {
	display: flex;
	flex-wrap: wrap;
	align-items: baseline;
	gap: var(--ps-space-2) var(--ps-space-3);
	font-size: var(--ps-text-sm);
	color: var(--ps-color-muted);
}
.ps-request-quote__author { font-weight: 700; color: var(--ps-color-heading); font-style: normal; }
.ps-request-quote__more { font-weight: 600; }
.ps-request-page__faq .ps-faq { margin: 0; }

/* Areas + footer */
.ps-areas { padding: var(--ps-space-7) 0; }
.ps-areas h2 {
	margin: 0 0 var(--ps-space-3);
	font-size: var(--ps-text-lg);
}
.ps-areas__list {
	display: flex;
	flex-wrap: wrap;
	gap: var(--ps-space-2);
	list-style: none;
	margin: var(--ps-space-4) 0;
	padding: 0;
}
.ps-areas__item {
	padding: 0.35em 0.75em;
	border: 1px solid var(--ps-color-border);
	border-radius: var(--ps-radius-sm);
	background: var(--ps-color-surface);
	font-size: var(--ps-text-sm);
}
.ps-areas__item--primary {
	border-color: var(--ps-color-secondary);
	background: color-mix(in srgb, var(--ps-color-secondary) 12%, var(--ps-color-surface));
	font-weight: 700;
}
.ps-areas__ask a { font-weight: 700; }
.site-footer,
.ast-footer-overlay {
	background: #000;
	color: color-mix(in srgb, var(--ps-color-on-inverse) 88%, transparent);
}
/* Astra below-footer strip removed — copyright is inside .ps-site-footer__bar. */
.site-below-footer-wrap {
	display: none !important;
}
.site-footer a,
.footer-widget a,
.ast-footer-copyright a { color: var(--ps-color-on-inverse); }
.site-footer a:hover,
.site-footer a:focus,
.footer-widget a:hover,
.footer-widget a:focus { color: var(--ps-color-star); }
.ps-footer-contact {
	display: grid;
	gap: var(--ps-space-4);
	padding: var(--ps-space-6) 0;
}
.ps-footer-contact__title {
	margin: 0 0 var(--ps-space-2);
	font-family: var(--ps-font-display);
	font-size: var(--ps-text-md);
	color: var(--ps-color-on-inverse);
}
.ps-footer-contact__phone {
	font-size: var(--ps-text-lg);
	font-weight: 700;
	color: var(--ps-color-on-inverse);
	text-decoration: none;
}
.ps-footer-contact__phone:hover,
.ps-footer-contact__phone:focus { color: var(--ps-color-star); }
.ps-footer-contact__meta {
	margin: var(--ps-space-2) 0 0;
	font-size: var(--ps-text-sm);
	color: color-mix(in srgb, var(--ps-color-on-inverse) 75%, transparent);
}
.ps-footer-contact__social {
	display: flex;
	flex-wrap: wrap;
	gap: var(--ps-space-3);
	list-style: none;
	margin: var(--ps-space-3) 0 0;
	padding: 0;
}
.ps-footer-areas { margin-top: var(--ps-space-4); }
.ps-footer-areas .ps-areas { padding: 0; }
.ps-footer-areas .ps-areas h2,
.ps-footer-areas .ps-areas p,
.ps-footer-areas .ps-areas__ask a { color: color-mix(in srgb, var(--ps-color-on-inverse) 88%, transparent); }
.ps-footer-areas .ps-areas__item {
	background: transparent;
	border-color: color-mix(in srgb, var(--ps-color-on-inverse) 25%, transparent);
	color: color-mix(in srgb, var(--ps-color-on-inverse) 90%, transparent);
}
.ps-footer-areas .ps-areas__item--primary {
	border-color: var(--ps-color-star);
	background: color-mix(in srgb, var(--ps-color-accent) 20%, transparent);
}

/* CTA band */
.ps-cta-band {
	position: relative;
	padding: var(--ps-space-8) var(--ps-gutter);
	text-align: center;
	color: var(--ps-color-on-inverse);
	background-color: var(--ps-color-inverse);
	background-image: var(--ps-cta-image, none);
	background-position: center;
	background-size: cover;
	isolation: isolate;
}
.ps-cta-band::before {
	content: "";
	position: absolute;
	inset: 0;
	z-index: -1;
	background: var(--ps-color-overlay);
}
.ps-cta-band__title {
	margin: 0 0 var(--ps-space-3);
	font-family: var(--ps-font-display);
	font-size: var(--ps-text-lg);
	color: var(--ps-color-on-inverse);
}
.ps-cta-band__text {
	max-width: 36rem;
	margin: 0 auto var(--ps-space-5);
	color: color-mix(in srgb, var(--ps-color-on-inverse) 92%, transparent);
}

/* Page sections (home / reviews / contact) */
.ps-section {
	box-sizing: border-box;
	padding: var(--ps-space-8) var(--ps-gutter);
	min-width: 0;
}
.ps-section--alt { background: var(--ps-color-bg); }
.ps-section__inner {
	box-sizing: border-box;
	width: min(100%, var(--ps-content));
	max-width: 100%;
	min-width: 0;
	margin-inline: auto;
}
.ps-section__header {
	max-width: 40rem;
	margin: 0 0 var(--ps-space-6);
}
.ps-section__label {
	margin: 0 0 var(--ps-space-2);
	font-size: var(--ps-text-sm);
	font-weight: 700;
	letter-spacing: 0.04em;
	text-transform: uppercase;
	color: var(--ps-color-primary);
}
.ps-section__title {
	margin: 0 0 var(--ps-space-3);
	font-size: var(--ps-text-lg);
}
.ps-section__lede {
	margin: 0;
	max-width: var(--ps-measure);
	color: var(--ps-color-muted);
}
.ps-section__action {
	margin: var(--ps-space-6) 0 0;
	text-align: center;
}
.ps-text-link {
	font-weight: 700;
	text-decoration: underline;
	text-underline-offset: 0.15em;
}
.ps-hero__rating { margin-top: var(--ps-space-5); }
.ps-hero .ps-rating-badge,
.ps-hero .ps-rating-badge__link,
.ps-hero .ps-rating-badge__label { color: #000; }
.ps-hero .ps-rating-badge__link:hover,
.ps-hero .ps-rating-badge__link:focus { color: var(--ps-color-primary); }

/* Alternating story / recipe — arch media */
.ps-split__inner {
	display: grid;
	gap: var(--ps-space-6);
	align-items: center;
}
.ps-split__content { max-width: var(--ps-measure); }
.ps-split__media {
	position: relative;
	justify-self: center;
	width: min(100%, 26rem);
}
.ps-split__blob {
	position: absolute;
	z-index: 0;
	width: 78%;
	height: 70%;
	left: -6%;
	bottom: 4%;
	border-radius: 50% 45% 50% 40%;
	background: color-mix(in srgb, var(--ps-color-bg) 85%, var(--ps-color-accent));
	opacity: 0.9;
}
.ps-split__arch {
	position: relative;
	z-index: 1;
	overflow: hidden;
	border-radius: 999px 999px 1rem 1rem;
	aspect-ratio: 4 / 5;
	box-shadow: var(--ps-shadow);
}
.ps-split__image {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
}
.ps-split__badge {
	position: absolute;
	z-index: 2;
	top: 12%;
	right: -0.35rem;
	padding: 0.45em 0.85em;
	border-radius: var(--ps-radius-sm);
	background: var(--ps-color-accent);
	color: var(--ps-color-heading);
	font-size: var(--ps-text-xs);
	font-weight: 700;
	letter-spacing: 0.04em;
	text-transform: uppercase;
	transform: rotate(8deg);
	box-shadow: var(--ps-shadow-sm);
}
.ps-split--text-only .ps-split__inner { grid-template-columns: 1fr; }
@media (min-width: 48rem) {
	.ps-split:not(.ps-split--text-only) .ps-split__inner {
		grid-template-columns: 1fr 1fr;
		gap: var(--ps-space-7);
	}
	.ps-split--reverse:not(.ps-split--text-only) .ps-split__content { order: 2; }
	.ps-split--reverse:not(.ps-split--text-only) .ps-split__media { order: 1; }
}

/* How it works — icons + dashed connector */
.ps-steps {
	display: grid;
	gap: var(--ps-space-5);
	list-style: none;
	margin: 0;
	padding: 0;
	position: relative;
}
.ps-steps__item {
	display: grid;
	justify-items: center;
	gap: var(--ps-space-3);
	position: relative;
	z-index: 1;
	text-align: center;
}
.ps-steps__icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 3.25rem;
	height: 3.25rem;
	border-radius: 50%;
	background: color-mix(in srgb, var(--ps-color-secondary) 14%, var(--ps-color-surface));
	color: var(--ps-color-secondary);
	border: 1.5px solid var(--ps-color-border);
}
.ps-steps__title {
	margin: 0;
	font-size: var(--ps-text-md);
}
.ps-steps__item p {
	margin: 0;
	max-width: 28ch;
	color: var(--ps-color-muted);
}
@media (min-width: 48rem) {
	.ps-steps {
		grid-template-columns: repeat(3, 1fr);
		gap: var(--ps-space-6);
	}
	/* Dashed connector through centred icon centres. */
	.ps-steps::before {
		content: "";
		position: absolute;
		top: calc(3.25rem / 2);
		left: calc((100% - 2 * var(--ps-space-6)) / 6);
		right: calc((100% - 2 * var(--ps-space-6)) / 6);
		border-top: 2px dashed color-mix(in srgb, var(--ps-color-border) 80%, var(--ps-color-secondary));
		z-index: 0;
	}
}

/* Reviews page: curated grid, Google panel */
.ps-reviews-curated__title,
.ps-google-reviews__title {
	margin: 0 0 var(--ps-space-3);
	font-family: var(--ps-font-display);
	font-size: var(--ps-text-xl);
}
.ps-reviews-curated__eyebrow,
.ps-google-reviews__source { margin: 0 0 var(--ps-space-2); }
.ps-reviews-curated__intro,
.ps-google-reviews__intro {
	margin: 0 0 var(--ps-space-5);
	max-width: 40rem;
	color: var(--ps-color-muted);
}
.ps-reviews-grid {
	display: grid;
	grid-template-columns: 1fr;
	gap: var(--ps-space-5);
}
@media (min-width: 40rem) {
	.ps-reviews-grid { grid-template-columns: repeat(2, 1fr); }
}
@media (min-width: 64rem) {
	.ps-reviews-grid { grid-template-columns: repeat(3, 1fr); }
}

/* Distinct Google Maps content container (Places attribution policy). */
.ps-google-reviews__panel {
	padding: var(--ps-space-5);
	border: 2px solid var(--ps-color-border);
	border-radius: var(--ps-radius-lg);
	background: var(--ps-color-bg);
}
.ps-google-reviews__score { margin-bottom: var(--ps-space-4); }
.ps-google-reviews__label { margin: var(--ps-space-2) 0 0; font-weight: 600; }
.ps-google-reviews__attribution {
	margin: var(--ps-space-4) 0 0;
}
.ps-google-reviews__gmp {
	font-family: Roboto, "Segoe UI", sans-serif;
	font-style: normal;
	font-weight: 400;
	font-size: 0.875rem;
	letter-spacing: normal;
	white-space: nowrap;
	color: var(--ps-color-muted);
}
.ps-google-reviews__actions { margin: var(--ps-space-4) 0 0; }
.ps-google-review-card {
	margin: 0 0 var(--ps-space-4);
	padding: var(--ps-space-4);
	border: 1px solid var(--ps-color-border);
	border-radius: var(--ps-radius);
	background: var(--ps-color-surface);
}
.ps-google-review-card__author { margin: 0 0 var(--ps-space-2); font-weight: 700; }
.ps-google-review-card__text { margin: 0 0 var(--ps-space-2); }
.ps-google-review-card__meta {
	display: flex;
	flex-wrap: wrap;
	gap: var(--ps-space-3);
	font-size: var(--ps-text-sm);
	color: var(--ps-color-muted);
}
.ps-pagination {
	margin: var(--ps-space-6) 0 0;
}
.ps-pagination .page-numbers {
	display: flex;
	flex-wrap: wrap;
	gap: var(--ps-space-2);
	justify-content: center;
	list-style: none;
	margin: 0;
	padding: 0;
}
.ps-pagination .page-numbers a,
.ps-pagination .page-numbers span {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 2.5rem;
	min-height: 2.5rem;
	padding: 0.35em 0.65em;
	border: 1px solid var(--ps-color-border);
	border-radius: var(--ps-radius);
	background: var(--ps-color-surface);
	color: var(--ps-color-text);
	font-weight: 600;
	text-decoration: none;
}
.ps-pagination .page-numbers .current,
.ps-pagination .page-numbers a:hover,
.ps-pagination .page-numbers a:focus {
	border-color: var(--ps-color-primary);
	color: var(--ps-color-primary);
}

/* Contact */
.ps-contact-page__grid {
	display: grid;
	grid-template-columns: minmax(0, 1fr);
	gap: var(--ps-space-7);
}
.ps-contact-page__grid > * {
	min-width: 0;
}
@media (min-width: 48rem) {
	.ps-contact-page__grid {
		grid-template-columns: minmax(0, 1fr) minmax(0, 1.2fr);
		align-items: start;
	}
}
.ps-contact-list {
	list-style: none;
	margin: 0 0 var(--ps-space-5);
	padding: 0;
}
.ps-contact-list__item { margin: 0 0 var(--ps-space-4); }
.ps-contact-list__label {
	display: block;
	margin-bottom: var(--ps-space-1);
	font-size: var(--ps-text-sm);
	font-weight: 700;
	color: var(--ps-color-muted);
}
.ps-contact-list__value {
	display: inline-block;
	max-width: 100%;
	font-size: var(--ps-text-md);
	font-weight: 700;
	text-decoration: none;
	overflow-wrap: anywhere;
}
.ps-contact-page__response {
	margin: 0 0 var(--ps-space-4);
	font-weight: 600;
	color: var(--ps-color-heading);
}
.ps-contact-actions {
	display: grid;
	grid-template-columns: minmax(0, 1fr);
	gap: var(--ps-space-3);
	margin: 0 0 var(--ps-space-5);
}
@media (min-width: 480px) {
	.ps-contact-actions { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); }
}
.ps-contact-actions__btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 0.5em;
	min-height: 3.25rem;
	width: 100%;
	max-width: 100%;
	min-width: 0;
	box-sizing: border-box;
}
.ps-contact-page__cta {
	margin: 0 0 var(--ps-space-5);
}
.ps-contact-page__quick {
	margin: 0;
	padding-top: var(--ps-space-4);
	border-top: 1px solid var(--ps-color-border);
}
.ps-contact-page__quick-summary {
	cursor: pointer;
	font-weight: 700;
	color: var(--ps-color-heading);
}
.ps-contact-page__form {
	box-sizing: border-box;
	max-width: 100%;
	min-width: 0;
	margin: var(--ps-space-4) 0 0;
	padding: var(--ps-space-5);
	border: 1px solid var(--ps-color-border);
	border-radius: var(--ps-radius-lg);
	background: var(--ps-color-surface);
}
.ps-contact-page__form-title {
	margin: 0 0 var(--ps-space-2);
	font-size: var(--ps-text-md);
}
.ps-contact-page__form-lede {
	margin: 0 0 var(--ps-space-4);
	font-size: var(--ps-text-sm);
	color: var(--ps-color-muted);
}
.ps-contact-page__form .ps-form__actions {
	margin-top: var(--ps-space-4);
}
.ps-map {
	overflow: hidden;
	max-width: 100%;
	min-width: 0;
	aspect-ratio: 16 / 9;
	min-height: 16rem;
	border: 1px solid var(--ps-color-border);
	border-radius: var(--ps-radius-lg);
	background: var(--ps-color-bg);
}
.ps-map__iframe {
	display: block;
	width: 100%;
	max-width: 100%;
	height: 100%;
	min-width: 0;
	min-height: 18rem;
	border: 0;
}

/* FAQ (native details/summary) */
.ps-faq {
	width: 100%;
	max-width: var(--ps-content);
}
.ps-faq__title {
	margin: 0 0 var(--ps-space-5);
	font-size: var(--ps-text-lg);
}
.ps-faq__list {
	display: grid;
	grid-template-columns: 1fr;
	gap: var(--ps-space-2);
	align-items: start;
}
@media (min-width: 48rem) {
	.ps-faq__list {
		grid-template-columns: 1fr 1fr;
		gap: var(--ps-space-3);
	}
}
.ps-faq__item {
	border: 1px solid var(--ps-color-border);
	border-radius: var(--ps-radius);
	background: var(--ps-color-surface);
}
.ps-faq__question {
	display: list-item;
	padding: var(--ps-space-4) var(--ps-space-5);
	cursor: pointer;
	font-weight: 600;
	color: var(--ps-color-heading);
	list-style-position: outside;
	margin-inline-start: var(--ps-space-5);
}
.ps-faq__question::-webkit-details-marker {
	color: var(--ps-color-secondary);
}
.ps-faq__question:focus {
	outline: 2px solid var(--ps-focus);
	outline-offset: 2px;
}
.ps-faq__question:focus:not(:focus-visible) {
	outline: none;
}
.ps-faq__question:focus-visible {
	outline: 2px solid var(--ps-focus);
	outline-offset: 2px;
}
.ps-faq__answer {
	padding: 0 var(--ps-space-5) var(--ps-space-4);
	color: var(--ps-color-text);
}
.ps-faq__answer p {
	margin: 0;
	max-width: var(--ps-measure);
}
/* Privacy / legal pages (hero is a sibling before the article) */
.ps-legal {
	width: min(100%, var(--ps-content));
	max-width: var(--ps-measure);
	margin: 0 auto;
	padding: var(--ps-space-6) var(--ps-gutter) var(--ps-space-8);
}
.ps-legal__meta {
	margin: var(--ps-space-3) 0 0;
	font-size: var(--ps-text-sm);
}
.ps-legal__section {
	margin: 0 0 var(--ps-space-6);
}
.ps-legal__section h2 {
	margin: 0 0 var(--ps-space-3);
	font-size: var(--ps-text-md);
}
.ps-legal__section p {
	margin: 0 0 var(--ps-space-3);
}
.ps-legal__contact {
	margin: 0;
	padding: 0;
	list-style: none;
}
.ps-legal__contact li { margin: 0 0 var(--ps-space-2); }
.ps-footer-privacy {
	color: var(--ps-color-on-inverse);
	text-decoration: underline;
	text-underline-offset: 0.15em;
}
.ps-footer-privacy:hover,
.ps-footer-privacy:focus { color: var(--ps-color-star); }
.ps-footer-privacy-sep {
	margin: 0 0.15em;
	opacity: 0.6;
}
.ps-footer-cookies {
	display: inline;
	margin: 0;
	padding: 0;
	border: 0;
	background: none;
	color: var(--ps-color-on-inverse);
	font: inherit;
	text-decoration: underline;
	text-underline-offset: 0.15em;
	cursor: pointer;
}
.ps-footer-cookies:hover,
.ps-footer-cookies:focus { color: var(--ps-color-star); }
.ps-footer-cookies:focus-visible {
	outline: 2px solid var(--ps-color-star);
	outline-offset: 3px;
}

/* Cookie consent banner */
.ps-consent {
	position: fixed;
	z-index: 10000;
	right: 0;
	bottom: 0;
	left: 0;
	padding: var(--ps-space-4) var(--ps-gutter);
	background: var(--ps-color-inverse);
	color: var(--ps-color-on-inverse);
	box-shadow: var(--ps-shadow-lg);
}
.ps-consent__inner {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: var(--ps-space-4);
	max-width: var(--ps-content);
	margin: 0 auto;
}
.ps-consent__title {
	margin: 0 0 var(--ps-space-2);
	font-family: var(--ps-font-display);
	font-size: var(--ps-text-md);
	font-weight: 700;
	line-height: var(--ps-leading-tight);
	color: var(--ps-color-on-inverse);
}
.ps-consent__text {
	margin: 0;
	max-width: 40rem;
	font-size: var(--ps-text-sm);
	line-height: var(--ps-leading);
	color: color-mix(in srgb, var(--ps-color-on-inverse) 90%, transparent);
}
.ps-consent__privacy {
	color: var(--ps-color-on-inverse);
	text-decoration: underline;
	text-underline-offset: 0.15em;
}
.ps-consent__privacy:hover,
.ps-consent__privacy:focus { color: var(--ps-color-star); }
.ps-consent__actions {
	display: flex;
	flex-wrap: wrap;
	gap: var(--ps-space-3);
	flex-shrink: 0;
}
/* Accept and Reject share equal visual weight (both primary). */
.ps-consent__accept.ps-button--primary,
.ps-consent__reject.ps-button--primary {
	min-width: 7.5rem;
	background: var(--ps-color-surface);
	border-color: var(--ps-color-on-inverse);
	color: var(--ps-color-inverse);
}
.ps-consent__accept.ps-button--primary:hover,
.ps-consent__accept.ps-button--primary:focus,
.ps-consent__reject.ps-button--primary:hover,
.ps-consent__reject.ps-button--primary:focus {
	background: var(--ps-color-star);
	border-color: var(--ps-color-star);
	color: var(--ps-color-inverse);
}
.ps-consent__accept:focus-visible,
.ps-consent__reject:focus-visible {
	outline: 2px solid var(--ps-color-star);
	outline-offset: 3px;
}

/* —— Home conversion: trust, events, packages, strip, footer, reveal —— */
.ps-icon {
	display: inline-block;
	vertical-align: middle;
	flex-shrink: 0;
}
.ps-section--cream { background: var(--ps-color-bg); }
.ps-section--surface { background: var(--ps-color-surface); }

.ps-divider-wave {
	display: block;
	line-height: 0;
	color: var(--ps-color-bg);
	margin: 0;
	background: transparent;
	height: auto;
	opacity: 1;
}
.ps-divider-wave__svg {
	display: block;
	width: 100%;
	height: 2.5rem;
}
.ps-divider-wave--cream { color: var(--ps-color-bg); background: var(--ps-color-surface); }

.ps-home {
	/* ~half the chip height so the bar sits on the hero / section join. */
	--ps-trust-overlap: 1.5rem;
}
.ps-trust-bar {
	position: relative;
	z-index: 3;
	/* Hug the rating text; centre over the hero / next-section join. */
	width: fit-content;
	max-width: calc(100% - 2 * var(--ps-gutter));
	margin: calc(-1 * var(--ps-trust-overlap)) auto;
	/* Negative bottom margin pulls the next section up so no cream strip
	   shows beside the chip (the “line” on either side). */
	padding: var(--ps-space-4) clamp(2.75rem, 5vw, 4.5rem);
	border: 1px solid var(--ps-color-border);
	border-radius: var(--ps-radius-lg);
	background: var(--ps-color-surface);
	box-shadow: var(--ps-shadow);
}
.ps-trust-bar + .ps-section {
	/* Section meets the hero edge under the floating chip. */
	padding-top: calc(var(--ps-space-8) + var(--ps-trust-overlap));
}
.ps-trust-bar__list {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: center;
	gap: var(--ps-space-3) var(--ps-space-5);
	list-style: none;
	margin: 0;
	padding: 0;
}
.ps-trust-bar__item {
	display: flex;
	align-items: center;
	gap: 0.55em;
	font-size: var(--ps-text-sm);
	font-weight: 600;
	color: var(--ps-color-heading);
}
.ps-trust-bar__item--rating {
	flex-wrap: wrap;
	min-width: 0;
}
.ps-trust-bar__item--rating .ps-stars {
	flex-shrink: 0;
}
.ps-trust-bar__item--rating .ps-star {
	width: 1em;
	height: 1em;
	font-size: 1.1rem;
}
.ps-trust-bar__item--rating .ps-star__empty,
.ps-trust-bar__item--rating .ps-star__full {
	width: 1em;
	height: 1em;
}
.ps-trust-bar__item a {
	color: inherit;
	text-decoration: none;
}
.ps-trust-bar__item a:hover,
.ps-trust-bar__item a:focus { color: var(--ps-color-primary); }
.ps-trust-bar__icon { color: var(--ps-color-secondary); }
@media (min-width: 48rem) {
	.ps-home {
		--ps-trust-overlap: 1.75rem;
	}
}

.ps-event-cards {
	display: grid;
	gap: var(--ps-space-5);
	list-style: none;
	margin: 0;
	padding: 0;
}
.ps-event-card {
	display: flex;
	flex-direction: column;
	border: 1px solid var(--ps-color-border);
	border-radius: var(--ps-radius-lg);
	background: var(--ps-color-bg);
	overflow: hidden;
}
.ps-event-card__media {
	display: block;
	aspect-ratio: 16 / 10;
	background: var(--ps-color-inverse);
	overflow: hidden;
}
.ps-event-card__image {
	width: 100%;
	height: 100%;
	object-fit: cover;
}
@media (prefers-reduced-motion: no-preference) {
	.ps-event-card__image { transition: transform var(--ps-ease); }
	.ps-event-card:hover .ps-event-card__image { transform: scale(1.04); }
}
.ps-event-card__placeholder {
	display: block;
	width: 100%;
	height: 100%;
	background: linear-gradient(135deg, var(--ps-color-secondary), var(--ps-color-primary));
	opacity: 0.35;
}
.ps-event-card__body {
	display: flex;
	flex: 1;
	flex-direction: column;
	gap: var(--ps-space-2);
	padding: var(--ps-space-5);
}
.ps-event-card__title {
	margin: 0;
	font-family: var(--ps-font-display);
	font-size: var(--ps-text-md);
	font-weight: 600;
}
.ps-event-card__title a {
	color: inherit;
	text-decoration: none;
}
.ps-event-card__title a:hover,
.ps-event-card__title a:focus { color: var(--ps-color-primary); }
.ps-event-card__body p { margin: 0; color: var(--ps-color-muted); }
.ps-event-card__links {
	display: flex;
	flex-wrap: wrap;
	gap: var(--ps-space-3);
	margin-top: auto !important;
	padding-top: var(--ps-space-2);
}
@media (min-width: 48rem) {
	.ps-event-cards { grid-template-columns: repeat(3, 1fr); }
}

.ps-packages {
	display: grid;
	gap: var(--ps-space-5);
	list-style: none;
	margin: 0 0 var(--ps-space-4);
	padding: 0;
}
.ps-package {
	position: relative;
	display: flex;
	flex-direction: column;
	gap: var(--ps-space-3);
	padding: var(--ps-space-5);
	border: 1px solid var(--ps-color-border);
	border-radius: var(--ps-radius-lg);
	background: var(--ps-color-surface);
	box-shadow: var(--ps-shadow-sm);
}
.ps-package.is-highlighted {
	border-color: var(--ps-color-primary);
	box-shadow: var(--ps-shadow);
}
.ps-package__badge {
	position: absolute;
	top: 0.85rem;
	right: 0.85rem;
	padding: 0.25em 0.65em;
	border-radius: var(--ps-radius-pill);
	background: var(--ps-color-accent);
	color: var(--ps-color-heading);
	font-size: var(--ps-text-xs);
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.04em;
}
.ps-package__title {
	margin: 0;
	font-family: var(--ps-font-display);
	font-size: var(--ps-text-md);
	font-weight: 600;
	padding-right: 5rem;
}
.ps-package__price {
	margin: 0;
	font-size: var(--ps-text-lg);
	font-weight: 700;
	color: var(--ps-color-primary);
}
.ps-package__meta,
.ps-package__includes {
	list-style: none;
	margin: 0;
	padding: 0;
	display: grid;
	gap: 0.4rem;
}
.ps-package__meta li,
.ps-package__includes li {
	display: flex;
	align-items: center;
	gap: 0.4em;
	font-size: var(--ps-text-sm);
	color: var(--ps-color-text);
}
.ps-package .ps-button { margin-top: auto; align-self: flex-start; }
.ps-packages__disclaimer {
	margin: 0;
	font-size: var(--ps-text-sm);
	color: var(--ps-color-muted);
	text-align: center;
}
@media (min-width: 48rem) {
	.ps-packages { grid-template-columns: repeat(3, 1fr); }
}

/* Home gallery carousel — horizontal snap + prev/next. */
.ps-carousel {
	position: relative;
	width: 100%;
	max-width: 100%;
}
.ps-carousel__viewport {
	width: 100%;
	max-width: 100%;
	min-width: 0;
	overflow: hidden;
}
.ps-photo-strip,
.ps-carousel__track {
	display: flex;
	gap: var(--ps-space-3);
	list-style: none;
	width: 100%;
	max-width: 100%;
	min-width: 0;
	margin: 0;
	padding: 0 0 var(--ps-space-2);
	overflow-x: auto;
	scroll-snap-type: x mandatory;
	scroll-behavior: smooth;
	-webkit-overflow-scrolling: touch;
	scrollbar-width: none;
}
.ps-photo-strip::-webkit-scrollbar,
.ps-carousel__track::-webkit-scrollbar {
	display: none;
}
.ps-carousel__slide {
	flex: 0 0 min(78vw, 18rem);
	min-width: min(78vw, 18rem);
	scroll-snap-align: start;
}
.ps-photo-strip__item {
	display: block;
	width: 100%;
	padding: 0;
	border: 0;
	border-radius: var(--ps-radius);
	overflow: hidden;
	cursor: zoom-in;
	background: var(--ps-color-bg);
	aspect-ratio: 4 / 3;
}
.ps-photo-strip__image {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
}
.ps-carousel__controls {
	display: none;
	justify-content: flex-end;
	gap: var(--ps-space-2);
	margin-top: var(--ps-space-4);
}
.ps-carousel--scrollable .ps-carousel__controls {
	display: flex;
}
.ps-carousel__btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 2.75rem;
	height: 2.75rem;
	padding: 0;
	border: 1px solid var(--ps-color-border);
	border-radius: 50%;
	background: var(--ps-color-surface);
	color: var(--ps-color-heading);
	cursor: pointer;
	box-shadow: var(--ps-shadow-sm);
	transition: background var(--ps-ease), color var(--ps-ease), border-color var(--ps-ease);
}
.ps-carousel__btn:hover,
.ps-carousel__btn:focus {
	border-color: var(--ps-color-primary);
	color: var(--ps-color-primary);
}
.ps-carousel__btn:disabled {
	opacity: 0.35;
	cursor: not-allowed;
}
.ps-carousel__btn-icon {
	display: inline-flex;
	line-height: 0;
}
.ps-carousel__btn-icon--prev {
	transform: scaleX(-1);
}
@media (prefers-reduced-motion: reduce) {
	.ps-carousel__track {
		scroll-behavior: auto;
	}
}
@media (min-width: 48rem) {
	.ps-carousel__slide {
		flex: 0 0 calc((100% - 2 * var(--ps-space-3)) / 3);
		min-width: calc((100% - 2 * var(--ps-space-3)) / 3);
	}
}

.ps-cta-band--dark {
	background-color: var(--ps-color-inverse);
}
.ps-cta-band__actions {
	justify-content: center;
}

/* Site footer (4 columns) */
.ps-site-footer {
	background: #000;
	color: color-mix(in srgb, var(--ps-color-on-inverse) 88%, transparent);
	padding: var(--ps-space-8) var(--ps-gutter) var(--ps-space-5);
}
.ps-site-footer__inner {
	display: grid;
	gap: var(--ps-space-6);
	width: min(100%, var(--ps-content));
	margin-inline: auto;
}
.ps-site-footer__logo {
	display: inline-block;
	margin: 0 0 var(--ps-space-3);
	line-height: 0;
	text-decoration: none;
}
.ps-site-footer__logo-img {
	display: block;
	width: auto;
	max-width: 11rem;
	height: auto;
	max-height: 3.5rem;
}
.ps-site-footer__brand {
	margin: 0 0 var(--ps-space-2);
	font-family: var(--ps-font-display);
	font-size: var(--ps-text-lg);
	font-weight: 700;
	color: var(--ps-color-on-inverse);
}
.ps-site-footer__brand a {
	color: inherit;
	text-decoration: none;
}
.ps-site-footer__tagline {
	margin: 0 0 var(--ps-space-4);
	max-width: 28ch;
	font-size: var(--ps-text-sm);
}
.ps-site-footer__bar {
	display: flex;
	flex-wrap: wrap;
	align-items: baseline;
	justify-content: space-between;
	gap: var(--ps-space-3) var(--ps-space-5);
	width: min(100%, var(--ps-content));
	margin: var(--ps-space-7) auto 0;
	padding-top: var(--ps-space-5);
	border-top: 1px solid color-mix(in srgb, var(--ps-color-on-inverse) 18%, transparent);
}
.ps-site-footer__copy,
.ps-site-footer__meta {
	margin: 0;
	font-size: var(--ps-text-sm);
	color: color-mix(in srgb, var(--ps-color-on-inverse) 75%, transparent);
}
.ps-site-footer__credit {
	color: var(--ps-color-on-inverse);
	text-decoration: underline;
	text-underline-offset: 0.15em;
}
.ps-site-footer__credit:hover,
.ps-site-footer__credit:focus { color: var(--ps-color-star); }
.ps-site-footer__meta {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 0.35em;
}
.ps-site-footer__heading {
	margin: 0 0 var(--ps-space-3);
	font-size: var(--ps-text-xs);
	font-weight: 700;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: var(--ps-color-star);
}
.ps-site-footer__menu,
.ps-site-footer__areas,
.ps-site-footer__social {
	list-style: none;
	margin: 0;
	padding: 0;
}
.ps-site-footer__menu a {
	color: inherit;
	text-decoration: none;
	display: inline-block;
	padding: 0.2em 0;
}
.ps-site-footer__menu a:hover,
.ps-site-footer__menu a:focus { color: var(--ps-color-star); }
.ps-site-footer__social {
	display: flex;
	gap: var(--ps-space-3);
}
.ps-site-footer__social a {
	display: inline-flex;
	color: var(--ps-color-on-inverse);
}
.ps-site-footer__social a:hover,
.ps-site-footer__social a:focus { color: var(--ps-color-star); }
.ps-site-footer__phone {
	display: inline-flex;
	align-items: center;
	gap: 0.45em;
	margin: 0 0 var(--ps-space-3);
	font-size: var(--ps-text-lg);
	font-weight: 700;
	color: var(--ps-color-on-inverse);
	text-decoration: none;
}
.ps-site-footer__phone:hover,
.ps-site-footer__phone:focus,
.ps-site-footer__whatsapp:hover,
.ps-site-footer__whatsapp:focus,
.ps-site-footer__email:hover,
.ps-site-footer__email:focus { color: var(--ps-color-star); }
.ps-site-footer__whatsapp,
.ps-site-footer__email {
	display: inline-flex;
	align-items: center;
	gap: 0.4em;
	margin: 0 0 var(--ps-space-2);
	color: inherit;
	text-decoration: none;
	font-weight: 600;
}
.ps-site-footer__areas {
	display: flex;
	flex-wrap: wrap;
	gap: 0.4rem 0.75rem;
	font-size: var(--ps-text-sm);
}
.ps-site-footer__areas .is-primary { font-weight: 700; color: var(--ps-color-on-inverse); }
@media (min-width: 48rem) {
	.ps-site-footer__inner { grid-template-columns: 1.3fr 1fr 1.2fr 1fr; }
}

/* Scroll reveal — visible by default; animate only with .ps-js */
html.ps-js [data-ps-reveal] {
	opacity: 1;
	transform: none;
}
@media (prefers-reduced-motion: no-preference) {
	html.ps-js [data-ps-reveal] {
		opacity: 0;
		transform: translateY(1rem);
		transition: opacity 520ms ease, transform 520ms ease;
	}
	html.ps-js [data-ps-reveal].is-revealed {
		opacity: 1;
		transform: none;
	}
}

/*
 * Mobile header focus: Astra hides #ast-desktop-header below the break point.
 * Reinforce so focus never lands on desktop-only controls under 922px.
 * Margin on the toggle only — padding nested grid rows clipped the hamburger
 * under body.has-transparent-header { overflow-x: clip }.
 */
@media (max-width: 921.98px) {
	#ast-desktop-header {
		display: none !important;
	}
	/* Astra puts the trigger in .ast-button-wrap (no .ast-mobile-menu-buttons here). */
	#ast-mobile-header .ast-button-wrap {
		margin-right: var(--ps-gutter);
	}
	#ast-mobile-header .menu-toggle,
	#ast-mobile-header .ast-mobile-menu-trigger-minimal {
		display: inline-flex;
		align-items: center;
		justify-content: center;
		min-width: var(--ps-touch);
		min-height: var(--ps-touch);
	}
	.ast-mobile-popup-drawer .menu-toggle-close {
		display: inline-flex;
		align-items: center;
		justify-content: center;
		margin-right: var(--ps-gutter);
		min-width: var(--ps-touch);
		min-height: var(--ps-touch);
	}
	/* Centre the Request a Service CTA in the open mobile panel. */
	body.ps-mobile-nav-open .ast-mobile-header-content .ast-header-button-1,
	body.ps-mobile-nav-open .ast-mobile-header-content .ast-builder-button-wrap,
	.ast-mobile-popup-drawer.active .ast-header-button-1,
	.ast-mobile-popup-drawer.active .ast-builder-button-wrap {
		display: flex;
		justify-content: center;
		align-items: center;
		width: 100%;
		padding: var(--ps-space-3) var(--ps-gutter);
		box-sizing: border-box;
	}
	body.ps-mobile-nav-open .ast-mobile-header-content .ast-header-button-1 .ast-custom-button-link,
	.ast-mobile-popup-drawer.active .ast-header-button-1 .ast-custom-button-link {
		display: flex;
		justify-content: center;
		width: auto;
	}
}
@media (min-width: 922px) {
	#ast-mobile-header {
		display: none !important;
	}
}

/* Sticky mobile contact actions (<768px) */
.ps-mobile-actions {
	display: none;
}
@media (max-width: 767.98px) {
	.ps-has-mobile-actions {
		--ps-mobile-actions-h: 3.75rem;
		padding-bottom: calc(var(--ps-mobile-actions-h) + env(safe-area-inset-bottom, 0px));
	}
	html.ps-mobile-actions-hidden.ps-has-mobile-actions,
	html.ps-mobile-actions-hidden .ps-has-mobile-actions {
		padding-bottom: 0;
	}
	.ps-mobile-actions {
		display: block;
		position: fixed;
		z-index: 9990; /* below #ps-consent-banner (10000) */
		right: 0;
		bottom: 0;
		left: 0;
		padding: 0.35rem 0.5rem calc(0.35rem + env(safe-area-inset-bottom, 0px));
		background: color-mix(in srgb, var(--ps-color-inverse) 96%, transparent);
		border-top: 1px solid color-mix(in srgb, var(--ps-color-on-inverse) 18%, transparent);
		box-shadow: 0 -4px 18px rgba(0, 0, 0, 0.18);
	}
	.ps-mobile-actions[hidden] {
		display: none !important;
	}
	.ps-mobile-actions__list {
		display: grid;
		grid-template-columns: repeat(3, minmax(0, 1fr));
		gap: 0.35rem;
		list-style: none;
		margin: 0;
		padding: 0;
		max-width: var(--ps-content);
		margin-inline: auto;
	}
	.ps-mobile-actions__list:has(> :nth-child(2):last-child) {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
	.ps-mobile-actions__list:has(> :only-child) {
		grid-template-columns: 1fr;
	}
	.ps-mobile-actions__item { margin: 0; }
	.ps-mobile-actions__btn {
		display: flex;
		flex-direction: column;
		align-items: center;
		justify-content: center;
		gap: 0.15rem;
		min-height: 44px;
		padding: 0.35rem 0.4rem;
		border-radius: var(--ps-radius);
		text-decoration: none;
		font-size: var(--ps-text-xs);
		font-weight: 700;
		letter-spacing: 0.02em;
		color: var(--ps-color-on-inverse);
		background: color-mix(in srgb, var(--ps-color-on-inverse) 10%, transparent);
	}
	.ps-mobile-actions__btn:focus-visible {
		outline: 2px solid var(--ps-color-star);
		outline-offset: 2px;
	}
	.ps-mobile-actions__btn--quote {
		background: var(--ps-color-primary);
		color: var(--ps-color-on-primary);
	}
	.ps-mobile-actions__label { line-height: 1.2; }
}

/* About page — story copy + tilted photo collage */
.ps-about-story__inner {
	display: grid;
	gap: var(--ps-space-7);
	align-items: center;
}
.ps-about-story__content {
	max-width: var(--ps-measure);
}
.ps-about-story__title {
	margin-bottom: var(--ps-space-5);
}
.ps-about-story__content > p {
	margin: 0 0 var(--ps-space-4);
	line-height: 1.75;
}
.ps-about-story__closing {
	font-style: italic;
	color: var(--ps-color-muted);
}
.ps-about-story__tagline {
	display: flex;
	align-items: center;
	gap: var(--ps-space-3);
	margin-top: var(--ps-space-5);
	margin-bottom: 0;
	font-family: var(--ps-font-display);
	font-style: italic;
	font-size: var(--ps-text-sm);
	color: var(--ps-color-accent-text);
}
.ps-about-story__tagline::before {
	content: "";
	display: block;
	width: 2.5rem;
	height: 1px;
	background: var(--ps-color-accent);
	flex-shrink: 0;
}
.ps-text-accent {
	color: var(--ps-color-accent-text);
	font-weight: 700;
}
.ps-about-collage {
	position: relative;
	isolation: isolate;
	min-height: 22rem;
	width: min(100%, 26rem);
	margin-inline: auto;
}
.ps-about-collage__item {
	position: absolute;
	margin: 0;
	overflow: hidden;
	border-radius: var(--ps-radius-sm);
	box-shadow: var(--ps-shadow-lg);
	background: var(--ps-color-surface);
	border: 0.35rem solid var(--ps-color-surface);
	will-change: transform;
}
.ps-about-collage__item--one {
	top: 0;
	left: 8%;
	width: 72%;
	z-index: 2;
	transform: rotate(-7deg);
}
.ps-about-collage__item--two {
	bottom: 6%;
	left: 0;
	width: 48%;
	z-index: 3;
	transform: rotate(5deg);
}
.ps-about-collage__item--three {
	bottom: 0;
	right: 0;
	width: 52%;
	z-index: 1;
	transform: rotate(8deg);
}
.ps-about-collage__image,
.ps-about-collage__placeholder {
	display: block;
	width: 100%;
	aspect-ratio: 4 / 3;
	object-fit: cover;
}
.ps-about-collage__item--one .ps-about-collage__image,
.ps-about-collage__item--one .ps-about-collage__placeholder {
	aspect-ratio: 5 / 4;
}
.ps-about-collage__placeholder {
	display: grid;
	place-items: center;
	padding: var(--ps-space-3);
	text-align: center;
	background:
		repeating-linear-gradient(
			-12deg,
			color-mix(in srgb, var(--ps-color-border) 55%, var(--ps-color-surface)),
			color-mix(in srgb, var(--ps-color-border) 55%, var(--ps-color-surface)) 10px,
			color-mix(in srgb, var(--ps-color-bg) 80%, var(--ps-color-accent)) 10px,
			color-mix(in srgb, var(--ps-color-bg) 80%, var(--ps-color-accent)) 20px
		);
	color: var(--ps-color-muted);
}
.ps-about-collage__placeholder-label {
	max-width: 12ch;
	padding: 0.45em 0.65em;
	border-radius: var(--ps-radius-sm);
	background: color-mix(in srgb, var(--ps-color-surface) 92%, transparent);
	font-size: var(--ps-text-xs);
	font-weight: 600;
	line-height: 1.35;
	box-shadow: var(--ps-shadow-sm);
}
.ps-about-next .ps-section__header {
	margin-bottom: var(--ps-space-5);
}
@media (min-width: 48rem) {
	.ps-about-story__inner {
		grid-template-columns: minmax(0, 1.05fr) minmax(0, 0.95fr);
		gap: var(--ps-space-8);
	}
	.ps-about-collage {
		width: 100%;
		min-height: 28rem;
		margin-inline: 0;
	}
	.ps-about-collage__item--one {
		left: 12%;
		width: 68%;
	}
	.ps-about-collage__item--two {
		width: 46%;
	}
	.ps-about-collage__item--three {
		width: 50%;
	}
}
@media (prefers-reduced-motion: no-preference) {
	.ps-about-collage__item--one {
		animation: ps-about-float-a 7.5s ease-in-out infinite;
	}
	.ps-about-collage__item--two {
		animation: ps-about-float-b 9s ease-in-out infinite;
	}
	.ps-about-collage__item--three {
		animation: ps-about-float-c 8.2s ease-in-out infinite;
	}
	.ps-about-collage__item:hover,
	.ps-about-collage__item:focus-within {
		z-index: 4;
		animation-play-state: paused;
	}
	.ps-about-collage__item--one:hover,
	.ps-about-collage__item--one:focus-within {
		transform: rotate(-4deg) translateY(-0.35rem) scale(1.03);
	}
	.ps-about-collage__item--two:hover,
	.ps-about-collage__item--two:focus-within {
		transform: rotate(3deg) translateY(-0.35rem) scale(1.03);
	}
	.ps-about-collage__item--three:hover,
	.ps-about-collage__item--three:focus-within {
		transform: rotate(5deg) translateY(-0.35rem) scale(1.03);
	}
	@keyframes ps-about-float-a {
		0%, 100% { transform: rotate(-7deg) translateY(0); }
		50% { transform: rotate(-5.5deg) translateY(-0.55rem); }
	}
	@keyframes ps-about-float-b {
		0%, 100% { transform: rotate(5deg) translateY(0); }
		50% { transform: rotate(6.5deg) translateY(-0.4rem); }
	}
	@keyframes ps-about-float-c {
		0%, 100% { transform: rotate(8deg) translateY(0); }
		50% { transform: rotate(6deg) translateY(-0.5rem); }
	}
}
