/*
 * Only what theme.json cannot express. Every value is a design token,
 * so each brand preset restyles this file without edits.
 */

/* Keyboard focus: 2px ring with a 2px gap, visible on every surface. */
:where(a, button, input, select, textarea, summary, [tabindex]):focus-visible {
	outline: 2px solid var(--wp--preset--color--focus);
	outline-offset: 2px;
	border-radius: var(--wp--custom--radius--small);
}

img, video { max-width: 100%; height: auto; }

/* ---------- Site chrome ---------- */

/* When a logo is set, the typed site name stays for screen readers only:
   brand rules forbid showing the name in type as a stand-in for the logo. */
.wp-block-site-logo:has(img) + .wp-block-site-title {
	position: absolute !important;
	width: 1px; height: 1px;
	margin: -1px; padding: 0; border: 0;
	overflow: hidden;
	clip: rect(0, 0, 0, 0);
	white-space: nowrap;
}

.pc-site-header .wp-block-search__button {
	background: transparent;
	color: var(--wp--preset--color--heading);
	padding: var(--wp--preset--spacing--xs);
}
.pc-site-header .wp-block-search__button:hover { color: var(--wp--preset--color--primary); }
.pc-site-header .wc-block-customer-account__account-icon,
.pc-site-header .wc-block-mini-cart__icon { color: var(--wp--preset--color--heading); fill: currentColor; }

.pc-card {
	background: var(--wp--preset--color--surface);
	border: 1px solid var(--wp--preset--color--border);
	border-radius: var(--wp--custom--radius--medium);
	overflow: hidden;
}

/* ---------- Header ---------- */
.pc-site-header { border-bottom: 1px solid var(--wp--preset--color--border); background: var(--wp--preset--color--background); }
.pc-site-footer { border-top: 0; }

/* Announcement bar: one line, hidden while its text is empty. */
.pc-announcement p { margin: 0; line-height: 2.25rem; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.pc-announcement:not(:has(p:not(:empty))) { display: none; }

/* Sticky header: the template-part wrapper sticks; a visible announcement bar scrolls off first. */
body { --pc-admin-bar: 0px; }
body.admin-bar { --pc-admin-bar: 32px; }
@media (max-width: 782px) { body.admin-bar { --pc-admin-bar: 46px; } }
@media (max-width: 600px) { body.admin-bar { --pc-admin-bar: 0px; } }
.wp-block-template-part:has(> .is-style-pc-sticky) {
	position: sticky;
	top: calc(var(--pc-admin-bar) - var(--pc-announce, 0px));
	z-index: 90;
}
.wp-block-template-part:has(> .is-style-pc-sticky .pc-announcement p:not(:empty)) { --pc-announce: 2.25rem; }
.pc-site-header .pc-header-main { position: relative; }

/* Centred header: hamburger on phones, full menu row from 600px. */
@media (min-width: 600px) { .pc-nav-mobile-only { display: none !important; } }
@media (max-width: 599px) { .pc-header-centered-nav { display: none !important; } }
.pc-header-centered-row { align-items: center; }

/* Phones: a smaller logo leaves room for the icons. */
@media (max-width: 599px) {
	.pc-header-brand .wp-block-site-logo img { max-width: 112px; height: auto; }
	.pc-header-icons { gap: 0.25rem !important; }
}

/* ---------- Brand-dark sections and footer ---------- */
.is-style-section-inverse .is-style-eyebrow { color: var(--wp--preset--color--highlight); }
.pc-site-footer .wp-block-site-tagline {
	color: var(--wp--preset--color--highlight);
	font-family: var(--wp--preset--font-family--accent);
	font-style: italic;
	font-size: var(--wp--preset--font-size--xl);
	line-height: 1.2;
	margin-top: var(--wp--preset--spacing--md);
}
.pc-site-footer .pc-footer-rule { color: color-mix(in srgb, var(--wp--preset--color--on-inverse) 18%, transparent); background-color: currentColor; border: 0; height: 1px; }
.pc-footer-links,
.pc-footer-links ul { list-style: none; margin: 0; padding: 0; }
.pc-footer-links li { margin: 0 0 0.6rem; }
.pc-site-footer .pc-footer-links a { color: var(--wp--preset--color--on-inverse); text-decoration: none; font-weight: 500; }
.pc-site-footer .pc-footer-links a:hover { color: var(--wp--preset--color--highlight); text-decoration: underline; }
.pc-site-footer .pc-brand-logo__name { font-family: var(--wp--preset--font-family--heading); font-size: var(--wp--preset--font-size--xl); color: var(--wp--preset--color--on-inverse); }
.pc-site-footer .pc-brand-logo a { color: inherit; text-decoration: none; }

/* ---------- Mega menu content ---------- */
.pc-mega-categories { list-style: none; margin: 0; padding: 0; }
.pc-mega-categories li { margin: 0 0 0.5rem; }
.pc-mega-categories a { color: var(--wp--preset--color--heading); text-decoration: none; font-weight: 600; }
.pc-mega-categories a:hover { color: var(--wp--preset--color--primary); text-decoration: underline; }

/* ---------- Form fields ---------- */
:where(input[type="text"], input[type="email"], input[type="tel"], input[type="number"], input[type="search"], input[type="password"], input[type="url"], select, textarea) {
	font: inherit;
	color: var(--wp--preset--color--ink);
	background: var(--wp--preset--color--surface);
	border: 1px solid var(--wp--preset--color--border);
	border-radius: var(--wp--custom--radius--small);
	padding: 0.625rem 0.75rem;
}
::placeholder { color: var(--wp--preset--color--muted); opacity: 1; }

/* ---------- WooCommerce: prices, badges, ratings ---------- */
.woocommerce .price,
.wc-block-components-product-price,
.wc-block-grid__product-price,
.woocommerce-Price-amount {
	font-family: var(--wp--preset--font-family--body);
	font-weight: 800;
	color: var(--wp--preset--color--heading);
	font-variant-numeric: tabular-nums;
}
.woocommerce .price del,
.wc-block-components-product-price del,
.wc-block-components-product-price__regular {
	color: var(--wp--preset--color--muted);
	font-weight: 400;
	opacity: 1;
}
.woocommerce .price del .woocommerce-Price-amount,
.wc-block-components-product-price del .woocommerce-Price-amount { color: inherit; font-weight: inherit; }
.woocommerce .price ins { text-decoration: none; }

.woocommerce span.onsale,
.wc-block-components-product-sale-badge {
	background: var(--wp--preset--color--sale);
	color: var(--wp--preset--color--on-primary);
	border: 0;
	border-radius: var(--wp--custom--radius--small);
	font-family: var(--wp--preset--font-family--body);
	font-size: var(--wp--preset--font-size--xs);
	font-weight: 700;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	line-height: 1;
	min-height: 0;
	min-width: 0;
	padding: 0.4em 0.6em;
}

.star-rating,
.wc-block-components-product-rating__stars,
.woocommerce p.stars a { color: var(--wp--preset--color--highlight); }

/* ---------- WooCommerce: notices and forms ---------- */
.wc-block-components-notice-banner { border-radius: var(--wp--custom--radius--medium); }
.wc-block-components-text-input input,
.wc-block-components-combobox .wc-block-components-combobox-control input { border-radius: var(--wp--custom--radius--small); }

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

/* Footer menus: same rhythm as the category list. */
.pc-site-footer .wp-block-navigation.pc-footer-links .wp-block-navigation__container { gap: 0.6rem; }
.pc-site-footer .wp-block-navigation.pc-footer-links .wp-block-navigation-item__content { padding: 0; }

/* Mobile menu overlay: items left-aligned with comfortable tap targets. */
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content {
	align-items: flex-start;
	padding-top: var(--wp--preset--spacing--lg);
}
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__container {
	align-items: flex-start;
	width: 100%;
	gap: 1rem;
	font-size: var(--wp--preset--font-size--lg);
}
.wp-block-navigation .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content .wp-block-navigation__container { align-items: flex-start !important; }

/* Native selects: room for the chosen text at every size. */
select { min-height: 2.75rem; line-height: 1.4; }

/*
 * Headline accent: words set in Italic (Ctrl+I) inside a headline switch to the
 * accent serif, e.g. "Our featured *collection*". The serif is drawn a touch
 * larger so its smaller x-height matches the sans optically.
 */
:where(h1, h2, h3, .wp-block-heading, .wp-block-post-title, .wp-block-query-title, .wp-block-cover__inner-container p) :where(em, i) {
	font-family: var(--wp--preset--font-family--accent);
	font-style: italic;
	font-weight: 400;
	letter-spacing: 0;
	font-size: 1.1em;
	line-height: 0.95;
}

/* "Cookie settings" link: shown only once the consent script is running. */
.pc-cookie-settings { display: none; margin-left: 0.75rem; color: inherit; text-decoration: underline; }
.pc-cookie-settings.is-ready { display: inline; }

/* ---------- Homepage ---------- */
.pc-hero { position: relative; overflow: hidden; isolation: isolate; }
/* Concentric arcs bleeding off the top-right, a shade deeper than the ground. */
.pc-hero::before {
	content: ""; position: absolute; z-index: -1; top: -45%; right: -18%;
	width: min(75vw, 760px); aspect-ratio: 1; border-radius: 50%;
	background: repeating-radial-gradient(circle at center, transparent 0 54px, color-mix(in srgb, var(--wp--preset--color--inverse) 78%, #000) 54px 57px);
	pointer-events: none;
}
.pc-hero__inner { max-width: 46rem; }
.pc-hero__title { margin: 0; }
.pc-hero__rule { width: 64px; max-width: 64px; margin: 0 !important; border: 0; height: 3px; background: var(--wp--preset--color--highlight); }
.pc-hero__text { margin: 0; max-width: 38rem; color: color-mix(in srgb, var(--wp--preset--color--on-inverse) 82%, transparent); }
.pc-trustbar { border-top: 1px solid color-mix(in srgb, var(--wp--preset--color--on-inverse) 15%, transparent); }
.pc-trustbar__row { margin: 0; gap: 0; }
.pc-trustbar__item { padding: 0.5rem 1.25rem; text-align: center; }
.pc-trustbar__item + .pc-trustbar__item { border-left: 1px solid color-mix(in srgb, var(--wp--preset--color--on-inverse) 15%, transparent); }
.pc-trustbar__value { margin: 0; font-weight: 800; font-size: 2rem; line-height: 1.1; color: var(--wp--preset--color--highlight); }
.pc-trustbar__label { margin: 0.25rem 0 0; font-size: 0.6875rem; font-weight: 600; letter-spacing: 0.12em; text-transform: uppercase; color: color-mix(in srgb, var(--wp--preset--color--on-inverse) 75%, transparent); }
@media (max-width: 781px) {
	.pc-trustbar__row { flex-direction: column; gap: 0.75rem; }
	.pc-trustbar__item + .pc-trustbar__item { border-left: 0; border-top: 1px solid color-mix(in srgb, var(--wp--preset--color--on-inverse) 15%, transparent); padding-top: 0.75rem; }
}

/* Promo strip (gold ground, forest text; one offer at a time). */
.pc-announcement p { text-transform: uppercase; font-weight: 800; letter-spacing: 0.06em; font-size: 0.875rem !important; }
.pc-announcement.is-style-section-highlight { background: var(--wp--preset--color--highlight); color: var(--wp--preset--color--inverse); }

.pc-hero .pc-hero__inner { margin-left: 0 !important; margin-right: auto !important; }
.wp-block-post-content > .alignfull { margin-block-start: 0; margin-block-end: 0; }
