/*
Theme Name: PG Forever Yours
Theme URI: https://pgforeveryours.com/
Author: PG Forever Yours
Author URI: https://pgforeveryours.com/
Description: Editorial luxury storefront for PG Forever Yours. A Twenty Twenty-Five child theme built for WooCommerce, the block editor and Kadence Blocks. Mobile-first, with a full desktop layout. Every section ships as an editable block pattern.
Template: twentytwentyfive
Version: 1.0.0
Requires at least: 6.6
Requires PHP: 7.4
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Text Domain: pgforeveryours
Tags: e-commerce, block-patterns, full-site-editing, wide-blocks
*/

/* ==========================================================================
   TABLE OF CONTENTS
   1.  Tokens
   2.  Base type + utilities
   3.  Plate (matted photograph)
   4.  Header, announcement bar, navigation, overlay menu
   5.  Home — hero
   6.  Home — sections (why / plates / rail / houses / ordering / quote)
   7.  Footer
   8.  Collection intro + product detail extras
   9.  WooCommerce — shop archive
   10. WooCommerce — single product
   11. WooCommerce — cart, checkout, account
   12. Sticky buy bar
   13. Forms, buttons, misc
   14. Per-device visibility
   15. Editor-only corrections
   ========================================================================== */


/* ==========================================================================
   1. TOKENS
   Change the look of the whole site from here. These mirror the palette in
   theme.json, so the Site Editor's Styles panel and this file agree.
   ========================================================================== */
:root {
	--pg-paper: #f3f2f2;
	--pg-surface: #eae9e9;
	--pg-ink: #201f1d;
	--pg-ink-warm: #2b2926;

	--pg-gold: #b68235;
	--pg-gold-100: #fff3e4;
	--pg-gold-300: #facb8d;
	--pg-gold-600: #a06f24;
	--pg-gold-700: #7d5411;
	--pg-gold-800: #5a3b0a;

	--pg-n300: #d7d3d3;
	--pg-n400: #bab6b6;
	--pg-n500: #9b9797;
	--pg-n600: #7d7979;
	--pg-n700: #605d5d;

	--pg-line: rgba(32, 31, 29, .16);
	--pg-line-ink: rgba(32, 31, 29, .85);

	--pg-heading: "Cormorant Garamond", Georgia, "Times New Roman", serif;
	--pg-body: Lora, Georgia, "Times New Roman", serif;
	--pg-mono: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;

	/* Keep this in step with settings.custom.gutter and styles.spacing.padding
	   in theme.json — the three are the same measure. */
	--pg-gutter: clamp(20px, 4vw, 48px);
	--pg-radius: 4px;
	--pg-radius-lg: 7px;
	--pg-shadow-sm: 0 1px 2px rgba(45, 43, 43, .14);
	--pg-shadow-md: 0 3px 10px rgba(45, 43, 43, .16);

	/* Scrim over hero / category photographs. */
	--pg-scrim: linear-gradient(to top, rgba(32, 31, 29, .80) 0%, rgba(32, 31, 29, .30) 46%, rgba(32, 31, 29, 0) 80%);
}


/* ==========================================================================
   2. BASE TYPE + UTILITIES
   ========================================================================== */
body {
	font-family: var(--pg-body);
	-webkit-font-smoothing: antialiased;
	text-rendering: optimizeLegibility;
}

/* Kicker — the small uppercase gold label above a heading. */
.pg-kicker {
	font-family: var(--pg-body);
	font-size: 10px;
	line-height: 1.4;
	letter-spacing: .18em;
	text-transform: uppercase;
	color: var(--pg-gold-700);
	margin: 0;
}
.pg-kicker--light { color: var(--pg-gold-300); }
.pg-kicker--muted { color: var(--pg-n600); }

/* Display heading — the bigger it gets, the lighter it sets. */
.pg-display {
	font-family: var(--pg-heading);
	font-weight: 300;
	line-height: 1.06;
	letter-spacing: -.01em;
	margin: 0;
}
.pg-display em, .pg-display i { font-weight: 400; }

/* Justified editorial paragraph. */
.pg-justify {
	text-align: justify;
	hyphens: auto;
	-webkit-hyphens: auto;
}

/* Figures set tabular wherever they stand as numbers. */
.pg-num, .price, .amount, .woocommerce-Price-amount,
.pg-meta, .order-total, .cart-subtotal {
	font-variant-numeric: tabular-nums;
	font-feature-settings: "tnum";
}

/* Small uppercase meta line. */
.pg-meta {
	font-size: 10px;
	letter-spacing: .12em;
	text-transform: uppercase;
	color: var(--pg-n600);
	margin: 0;
}

/* Hairline dividers carry the structure. */
.pg-rule-top    { border-top: 1px solid var(--pg-line); }
.pg-rule-bottom { border-bottom: 1px solid var(--pg-line); }
.pg-rule-ink    { border-top: 1px solid var(--pg-line-ink); }

/* A full-width band with hairlines and standard vertical rhythm. */
.pg-band {
	border-bottom: 1px solid var(--pg-line);
}
.pg-band--surface { background: var(--pg-surface); }

/* Link that reads as a small uppercase action. */
.pg-action a, a.pg-action {
	font-size: 11px;
	letter-spacing: .12em;
	text-transform: uppercase;
	color: var(--pg-gold-700);
	display: inline-flex;
	align-items: center;
	gap: 7px;
}
.pg-action a::after, a.pg-action::after {
	content: "\2192"; /* → */
	font-size: 13px;
	line-height: 1;
	transition: transform .18s ease;
}
.pg-action a:hover::after, a.pg-action:hover::after { transform: translateX(3px); }

/* Gold five-star row. */
.pg-stars {
	color: var(--pg-gold);
	letter-spacing: 4px;
	font-size: 13px;
	margin: 0;
}


/* ==========================================================================
   3. PLATE — the matted photograph
   Registered as a block style ("Plate") for Image and Cover blocks, so you can
   switch it on per image from the editor sidebar.
   ========================================================================== */
.is-style-pg-plate img,
.is-style-pg-plate.wp-block-image img,
.pg-plate img {
	filter: sepia(.22) saturate(.82) contrast(1.05);
	border: 6px solid var(--pg-surface);
	outline: 1px solid var(--pg-line);
	outline-offset: -1px;
	box-sizing: border-box;
	display: block;
	width: 100%;
	height: auto;
}


/* ==========================================================================
   4. HEADER
   ========================================================================== */
.pg-announce {
	text-align: center;
	font-size: 10px;
	letter-spacing: .14em;
	text-transform: uppercase;
	color: var(--pg-gold-700);
	border-bottom: 1px solid var(--pg-line);
	padding: 9px var(--pg-gutter);
	margin: 0;
}

.pg-header {
	position: relative;
	z-index: 20;
	background: var(--pg-paper);
}
.pg-header__bar {
	display: flex;
	align-items: center;
	gap: 12px;
	padding: 12px var(--pg-gutter);
}
.pg-header__left,
.pg-header__right {
	flex: 1 1 0;
	display: flex;
	align-items: center;
	gap: 14px;
	min-width: 0;
}
.pg-header__right { justify-content: flex-end; }
.pg-header__center {
	flex: 0 1 auto;
	text-align: center;
	white-space: nowrap;
}
.pg-header__center .wp-block-site-title { margin: 0; }
.pg-header__center .wp-block-site-title a { text-decoration: none; }

/* Search reduced to an icon button. */
.pg-header .wp-block-search__button {
	background: transparent;
	border: 0;
	padding: 0;
	color: var(--pg-ink);
	min-width: 0;
}
.pg-header .wp-block-search__button svg { width: 19px; height: 19px; fill: currentColor; }
.pg-header .wp-block-search { margin: 0; }

/* Mini cart. */
.pg-header .wc-block-mini-cart__button {
	padding: 0;
	color: var(--pg-ink);
	background: none;
	border: 0;
}
.pg-header .wc-block-mini-cart__badge {
	font-family: var(--pg-body);
	font-size: 11px;
	background: transparent;
	color: var(--pg-gold-700);
	border: 0;
	font-variant-numeric: tabular-nums;
}
.pg-header .wc-block-mini-cart__quantity-badge { margin-inline-start: 0; }

/* --- Navigation ------------------------------------------------------- */
.pg-header .wp-block-navigation { --navigation-layout-justification-setting: flex-start; }
.pg-header .wp-block-navigation .wp-block-navigation-item__content { padding: 4px 0; }
.pg-header .wp-block-navigation__responsive-container-open,
.pg-header .wp-block-navigation__responsive-container-close { color: var(--pg-ink); }
.pg-header .wp-block-navigation__responsive-container-open svg,
.pg-header .wp-block-navigation__responsive-container-close svg { width: 22px; height: 22px; }

/* The overlay menu — screen 02 of the design: big serif rows on hairlines. */
.wp-block-navigation__responsive-container.is-menu-open {
	background: var(--pg-paper) !important;
	color: var(--pg-ink) !important;
	padding: 0 !important;
}
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-close {
	max-width: 720px;
	margin-inline: auto;
	width: 100%;
	padding: 14px var(--pg-gutter) 40px;
}
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content {
	padding-top: 18px;
}
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__container {
	gap: 0;
	width: 100%;
}
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item {
	width: 100%;
	border-top: 1px solid var(--pg-line);
}
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item:last-child {
	border-bottom: 1px solid var(--pg-line);
}
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item__content {
	font-family: var(--pg-heading);
	font-size: 25px;
	font-weight: 400;
	letter-spacing: 0;
	text-transform: none;
	padding: 17px 0;
	width: 100%;
	display: flex;
	align-items: center;
	justify-content: space-between;
}
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item__content::after {
	content: "\2197"; /* ↗ */
	color: var(--pg-gold);
	font-size: 17px;
	font-family: var(--pg-body);
}


/* ==========================================================================
   5. HOME — HERO
   ========================================================================== */
.pg-hero.wp-block-cover { min-height: 462px; }
.pg-hero .wp-block-cover__background {
	opacity: 1 !important;
	background: var(--pg-scrim) !important;
}
.pg-hero .wp-block-cover__inner-container { width: 100%; }
.pg-hero .pg-display { font-size: clamp(38px, 10vw, 44px); color: #f6f3ee; }
.pg-hero p { color: #f6f3ee; }
.pg-hero__price {
	font-size: 12px;
	opacity: .78;
	color: #f6f3ee;
	margin: 0;
}
.pg-hero .wp-block-button__link {
	color: var(--pg-gold-300) !important;
	border-color: var(--pg-gold-300) !important;
}
.pg-hero .wp-block-button__link:hover { background: rgba(250, 203, 141, .14) !important; }

@media (min-width: 900px) {
	.pg-hero.wp-block-cover { min-height: 76vh; }
	.pg-hero .pg-display { font-size: clamp(56px, 6.4vw, 88px); max-width: 12ch; }
	.pg-hero .wp-block-cover__inner-container { max-width: 1340px; margin-inline: auto; }
}


/* ==========================================================================
   6. HOME — SECTIONS
   ========================================================================== */

/* --- Why us ----------------------------------------------------------- */
.pg-why p {
	font-size: 13.5px;
	line-height: 1.75;
	margin: 0;
}
@media (min-width: 900px) {
	.pg-why { display: grid; grid-template-columns: 200px minmax(0, 1fr); gap: 56px; align-items: start; }
	.pg-why p { font-size: 17px; line-height: 1.85; max-width: 58ch; }
}

/* --- The two category plates ------------------------------------------ */
.pg-plates { display: grid; gap: 1px; background: var(--pg-line); }
.pg-plates > * { margin: 0 !important; }
.pg-plate-card.wp-block-cover { min-height: 268px; }
.pg-plate-card .wp-block-cover__background {
	opacity: 1 !important;
	background: linear-gradient(to top, rgba(32, 31, 29, .62) 0%, rgba(32, 31, 29, 0) 62%) !important;
}
.pg-plate-card .wp-block-cover__inner-container { width: 100%; }
.pg-plate-card h2, .pg-plate-card h3 {
	font-family: var(--pg-heading);
	font-weight: 400;
	font-size: 30px;
	line-height: 1.1;
	color: #f6f3ee;
	margin: 0;
}
.pg-plate-card p { color: #f6f3ee; margin: 8px 0 0; }
.pg-plate-card .pg-action a { color: var(--pg-gold-300); }

@media (min-width: 700px) {
	.pg-plates { grid-template-columns: 1fr 1fr; }
	.pg-plate-card.wp-block-cover { min-height: 460px; }
	.pg-plate-card h2, .pg-plate-card h3 { font-size: clamp(34px, 3.4vw, 52px); }
}

/* --- Horizontal product rail (mobile) → grid (desktop) ----------------- */
.pg-rail-head {
	display: flex;
	align-items: baseline;
	justify-content: space-between;
	gap: 16px;
	margin-bottom: 16px;
}
.pg-rail-head h2 { margin: 0; }

.pg-rail {
	display: flex;
	gap: 14px;
	overflow-x: auto;
	scroll-snap-type: x mandatory;
	-webkit-overflow-scrolling: touch;
	scrollbar-width: none;
	padding-inline: var(--pg-gutter);
	margin-inline: calc(var(--pg-gutter) * -1);
}
.pg-rail::-webkit-scrollbar { display: none; }
.pg-rail > * { flex: 0 0 156px; scroll-snap-align: start; margin: 0; }

/* --- The houses we carry ---------------------------------------------- */
.pg-houses .pg-house {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 16px;
	padding: 15px 0;
	border-top: 1px solid var(--pg-line);
	color: inherit;
	text-decoration: none;
}
.pg-houses .pg-house:last-child { border-bottom: 1px solid var(--pg-line); }
.pg-houses .pg-house__name {
	font-family: var(--pg-heading);
	font-size: 19px;
	font-weight: 400;
}
.pg-houses .pg-house__num {
	font-size: 11px;
	color: var(--pg-gold);
	font-variant-numeric: tabular-nums;
	margin-right: 10px;
}
.pg-houses .pg-house__count {
	font-size: 11px;
	color: var(--pg-n600);
	font-variant-numeric: tabular-nums;
}
.pg-houses .pg-house--soon { color: var(--pg-n500); }
.pg-houses a.pg-house:hover .pg-house__name { color: var(--pg-gold-700); }
@media (min-width: 900px) {
	.pg-houses .pg-house { padding: 26px 0; }
	.pg-houses .pg-house__name { font-size: clamp(24px, 2.4vw, 34px); }
}

/* --- Ordering from Nepal ---------------------------------------------- */
.pg-split { display: flex; gap: 18px; align-items: flex-start; }
.pg-split > .pg-split__media { flex: 0 0 124px; }
.pg-split > .pg-split__body { flex: 1 1 auto; min-width: 0; }
.pg-split__body h2, .pg-split__body h3 { margin: 0 0 10px; }
.pg-split__body p { font-size: 12.5px; line-height: 1.7; color: var(--pg-n700); margin: 0 0 14px; }
@media (min-width: 900px) {
	.pg-split { gap: 64px; align-items: center; }
	.pg-split > .pg-split__media { flex: 0 0 40%; }
	.pg-split__body p { font-size: 16px; line-height: 1.85; max-width: 46ch; }
}

/* --- Review quote ------------------------------------------------------ */
.pg-quote { text-align: center; }
.pg-quote blockquote, .pg-quote .wp-block-quote {
	border: 0;
	padding: 0;
	margin: 16px 0 12px;
	font-family: var(--pg-heading);
	font-style: italic;
	font-weight: 400;
	font-size: 22px;
	line-height: 1.4;
}
.pg-quote cite, .pg-quote .wp-block-quote cite {
	display: block;
	font-family: var(--pg-body);
	font-style: normal;
	font-size: 10px;
	letter-spacing: .14em;
	text-transform: uppercase;
	color: var(--pg-n600);
}
@media (min-width: 900px) {
	.pg-quote blockquote, .pg-quote .wp-block-quote {
		font-size: clamp(28px, 3vw, 40px);
		max-width: 20ch;
		margin-inline: auto;
	}
}

/* --- "Not listed? Ask on WhatsApp" ------------------------------------ */
.pg-ask { display: flex; gap: 16px; align-items: center; }
.pg-ask__media { flex: 0 0 104px; }
.pg-ask p { font-size: 12.5px; line-height: 1.65; color: var(--pg-n700); margin: 8px 0 10px; }
@media (min-width: 900px) {
	.pg-ask { gap: 40px; }
	.pg-ask__media { flex: 0 0 240px; }
	.pg-ask p { font-size: 15px; }
}


/* ==========================================================================
   7. FOOTER
   ========================================================================== */
.pg-footer {
	background: var(--pg-surface);
	padding: 30px var(--pg-gutter) 26px;
}
.pg-footer h2, .pg-footer h3 { font-size: 24px; font-weight: 400; margin: 0; }
.pg-footer p { font-size: 12.5px; line-height: 1.7; color: var(--pg-n700); }
.pg-footer__links {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 12px 24px;
	margin-top: 28px;
	padding-top: 22px;
	border-top: 1px solid var(--pg-line);
	font-size: 12px;
}
.pg-footer__links a { color: var(--pg-n700); }
.pg-footer__links a:hover { color: var(--pg-gold-700); }
.pg-footer__legal {
	margin: 24px 0 0;
	font-size: 10px;
	letter-spacing: .12em;
	text-transform: uppercase;
	color: var(--pg-n500);
}
@media (min-width: 900px) {
	.pg-footer { padding-block: 72px 40px; }
	.pg-footer__inner {
		display: grid;
		grid-template-columns: minmax(0, 1fr) minmax(0, 1.1fr);
		gap: 80px;
		align-items: start;
		max-width: 1340px;
		margin-inline: auto;
	}
	.pg-footer h2, .pg-footer h3 { font-size: 34px; }
	.pg-footer__links {
		grid-template-columns: repeat(4, 1fr);
		margin-top: 0;
		padding-top: 0;
		border-top: 0;
		font-size: 13px;
	}
	.pg-footer__legal { max-width: 1340px; margin-inline: auto; }
}


/* ==========================================================================
   8. COLLECTION INTRO + PRODUCT DETAIL EXTRAS
   ========================================================================== */
.pg-collection-intro p {
	font-size: 13px;
	line-height: 1.75;
	color: var(--pg-n700);
	margin: 0;
}
.pg-collection-intro .pg-display { font-size: 38px; margin: 10px 0 12px; }
@media (min-width: 900px) {
	.pg-collection-intro { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 64px; align-items: end; }
	.pg-collection-intro .pg-display { font-size: clamp(48px, 5vw, 76px); }
	.pg-collection-intro p { font-size: 16px; line-height: 1.85; }
}

/* Spec rows — Brand / Type / Alcohol / Origin. */
.pg-specs { margin: 0; }
.pg-specs .pg-spec {
	display: flex;
	align-items: baseline;
	justify-content: space-between;
	gap: 16px;
	padding: 14px 0;
	border-top: 1px solid var(--pg-line);
}
.pg-specs .pg-spec__label {
	font-size: 10px;
	letter-spacing: .14em;
	text-transform: uppercase;
	color: var(--pg-gold);
}
.pg-specs .pg-spec__value { font-family: var(--pg-heading); font-size: 17px; }

/* Accordions — core Details block. */
.pg-accordions .wp-block-details {
	border-bottom: 1px solid var(--pg-line);
	padding: 0;
	margin: 0;
}
.pg-accordions .wp-block-details summary {
	list-style: none;
	cursor: pointer;
	padding: 18px 0;
	font-family: var(--pg-heading);
	font-size: 18px;
	font-weight: 500;
	display: flex;
	align-items: center;
	justify-content: space-between;
}
.pg-accordions .wp-block-details summary::-webkit-details-marker { display: none; }
.pg-accordions .wp-block-details summary::after {
	content: "+";
	color: var(--pg-gold);
	font-family: var(--pg-body);
	font-size: 18px;
	line-height: 1;
}
.pg-accordions .wp-block-details[open] summary::after { content: "\2212"; /* − */ }
.pg-accordions .wp-block-details > *:not(summary) {
	font-size: 13.5px;
	line-height: 1.8;
	color: var(--pg-n700);
	padding-bottom: 18px;
	margin: 0;
}


/* ==========================================================================
   9. WOOCOMMERCE — SHOP ARCHIVE
   Covers both the classic product loop (ul.products, used by the [products]
   shortcode and the shop page) and the newer product blocks.
   ========================================================================== */
.woocommerce .woocommerce-result-count,
.woocommerce .woocommerce-ordering { margin: 0; }
.woocommerce .woocommerce-ordering select {
	font-family: var(--pg-body);
	font-size: 12px;
	border: 1px solid var(--pg-line);
	border-radius: var(--pg-radius);
	background: transparent;
	padding: 6px 10px;
}
.woocommerce .woocommerce-result-count {
	font-size: 11px;
	letter-spacing: .1em;
	text-transform: uppercase;
	color: var(--pg-n600);
	font-variant-numeric: tabular-nums;
}

/* The grid itself: hairline gaps, no cards, no fills. */
.woocommerce ul.products,
.woocommerce-page ul.products {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 1px;
	background: var(--pg-line);
	margin: 0;
	padding: 0;
	list-style: none;
	border-top: 1px solid var(--pg-line);
	border-bottom: 1px solid var(--pg-line);
}
.woocommerce ul.products::before,
.woocommerce ul.products::after { content: none; }
.woocommerce ul.products li.product {
	background: var(--pg-paper);
	float: none !important;
	width: auto !important;
	margin: 0 !important;
	padding: 18px 16px;
	text-align: left;
	clear: none !important;
}
.woocommerce ul.products li.product a img {
	margin: 0 0 12px;
	filter: sepia(.22) saturate(.82) contrast(1.05);
	border: 6px solid var(--pg-surface);
	outline: 1px solid var(--pg-line);
	outline-offset: -1px;
	box-shadow: none;
	transition: filter .3s ease;
}
.woocommerce ul.products li.product:hover a img { filter: sepia(.1) saturate(.95) contrast(1.03); }
.woocommerce ul.products li.product .woocommerce-loop-product__title {
	font-family: var(--pg-heading);
	font-size: 18px;
	font-weight: 500;
	line-height: 1.2;
	padding: 0;
	margin: 0 0 4px;
	color: var(--pg-ink);
}
.woocommerce ul.products li.product .price {
	font-family: var(--pg-body);
	font-size: 13.5px;
	color: var(--pg-ink);
	margin: 10px 0 0;
	display: block;
}
.woocommerce ul.products li.product .price del { color: var(--pg-n500); opacity: 1; margin-right: 6px; }
.woocommerce ul.products li.product .price ins { text-decoration: none; }
.woocommerce ul.products li.product .star-rating { font-size: .7em; color: var(--pg-gold); margin: 6px 0 0; }

/* Add-to-cart in the loop reduced to a gold "+" that reveals its label. */
.woocommerce ul.products li.product .button,
.woocommerce ul.products li.product .added_to_cart {
	font-family: var(--pg-heading);
	font-size: 12px;
	font-weight: 600;
	letter-spacing: .06em;
	background: transparent;
	color: var(--pg-gold-700);
	border: 1px solid var(--pg-line);
	border-radius: var(--pg-radius);
	padding: 7px 12px;
	margin: 12px 0 0;
	display: inline-block;
}
.woocommerce ul.products li.product .button:hover { background: rgba(182, 130, 53, .12); border-color: var(--pg-gold); }
.woocommerce span.onsale,
.woocommerce ul.products li.product .onsale {
	background: var(--pg-gold-100);
	color: var(--pg-gold-800);
	font-family: var(--pg-body);
	font-size: 10px;
	letter-spacing: .1em;
	text-transform: uppercase;
	border-radius: 3px;
	min-height: 0;
	min-width: 0;
	line-height: 1;
	padding: 5px 10px;
	top: 22px;
	right: 20px;
	margin: 0;
}

@media (min-width: 700px) {
	.woocommerce ul.products, .woocommerce-page ul.products { grid-template-columns: repeat(3, minmax(0, 1fr)); }
	.woocommerce ul.products li.product { padding: 28px 24px 32px; }
}
@media (min-width: 1100px) {
	.woocommerce ul.products, .woocommerce-page ul.products { grid-template-columns: repeat(4, minmax(0, 1fr)); }
}

/* The same grid, rendered as a horizontal rail on phones. Add the class
   pg-products-rail to the Group that wraps a [products] shortcode. */
@media (max-width: 699px) {
	.pg-products-rail .woocommerce ul.products,
	.pg-products-rail ul.products {
		display: flex;
		gap: 14px;
		background: transparent;
		border: 0;
		overflow-x: auto;
		scroll-snap-type: x mandatory;
		scrollbar-width: none;
		padding-inline: var(--pg-gutter);
		margin-inline: calc(var(--pg-gutter) * -1);
	}
	.pg-products-rail ul.products::-webkit-scrollbar { display: none; }
	.pg-products-rail ul.products li.product {
		flex: 0 0 156px;
		scroll-snap-align: start;
		padding: 0;
	}
	.pg-products-rail ul.products li.product .woocommerce-loop-product__title { font-size: 17px; }
}

/* Product blocks (Product Collection / All Products) get the same treatment. */
.wc-block-product-template,
.wc-block-grid__products {
	gap: 1px;
	background: var(--pg-line);
}
.wc-block-product-template .wc-block-product,
.wc-block-grid__product {
	background: var(--pg-paper);
	padding: 18px 16px;
	margin: 0;
	text-align: left;
}
.wc-block-components-product-title,
.wc-block-grid__product-title {
	font-family: var(--pg-heading) !important;
	font-size: 18px !important;
	font-weight: 500 !important;
	line-height: 1.2;
}
.wc-block-components-product-image img,
.wc-block-grid__product-image img {
	filter: sepia(.22) saturate(.82) contrast(1.05);
	border: 6px solid var(--pg-surface);
	outline: 1px solid var(--pg-line);
	outline-offset: -1px;
}
.wc-block-components-product-price { font-family: var(--pg-body); font-size: 13.5px; }

/* Category filter chips — a Categories/Terms list styled as tags. */
.pg-chips { display: flex; gap: 8px; overflow-x: auto; scrollbar-width: none; list-style: none; margin: 0; padding: 0; }
.pg-chips::-webkit-scrollbar { display: none; }
.pg-chips li { flex: none; }
.pg-chips a {
	display: inline-flex;
	align-items: center;
	font-size: 11px;
	padding: 4px 12px;
	border-radius: 3px;
	background: #f8f4f4;
	color: #444141;
	white-space: nowrap;
}
.pg-chips a:hover, .pg-chips .current-cat a {
	background: transparent;
	border: 1px solid var(--pg-gold);
	color: var(--pg-gold);
	padding: 3px 11px;
}

/* Pagination. */
.woocommerce nav.woocommerce-pagination ul {
	border: 0;
	display: flex;
	justify-content: center;
	gap: 6px;
	margin: 32px 0;
}
.woocommerce nav.woocommerce-pagination ul li { border: 0; }
.woocommerce nav.woocommerce-pagination ul li a,
.woocommerce nav.woocommerce-pagination ul li span {
	font-family: var(--pg-body);
	font-size: 13px;
	border: 1px solid transparent;
	border-radius: var(--pg-radius);
	padding: 6px 12px;
	font-variant-numeric: tabular-nums;
}
.woocommerce nav.woocommerce-pagination ul li span.current { border-color: var(--pg-gold); color: var(--pg-gold); background: transparent; }


/* ==========================================================================
   10. WOOCOMMERCE — SINGLE PRODUCT
   ========================================================================== */
.woocommerce div.product .product_title {
	font-family: var(--pg-heading);
	font-weight: 300;
	font-size: 34px;
	line-height: 1.12;
	margin: 10px 0 12px;
}
.woocommerce div.product p.price,
.woocommerce div.product span.price {
	font-family: var(--pg-heading);
	font-size: 22px;
	font-weight: 500;
	color: var(--pg-ink);
	margin: 0 0 16px;
}
.woocommerce div.product .woocommerce-product-details__short-description {
	font-size: 13.5px;
	line-height: 1.8;
	text-align: justify;
	hyphens: auto;
}
.woocommerce div.product .stock.in-stock {
	display: inline-flex;
	font-size: 11px;
	letter-spacing: .02em;
	padding: 3px 10px;
	border-radius: 3px;
	background: var(--pg-gold-100);
	color: var(--pg-gold-800);
}
.woocommerce div.product .stock.out-of-stock { background: #f8f4f4; color: #444141; }

/* Gallery as a plate. */
.woocommerce div.product div.images img {
	filter: sepia(.22) saturate(.82) contrast(1.05);
	border: 6px solid var(--pg-surface);
	outline: 1px solid var(--pg-line);
	outline-offset: -1px;
}
.woocommerce div.product div.images .flex-control-thumbs { gap: 6px; display: flex; margin-top: 8px; }
.woocommerce div.product div.images .flex-control-thumbs li { width: auto; flex: 0 0 22%; margin: 0; }

/* Quantity + add to cart. */
.woocommerce div.product form.cart { margin: 24px 0; display: flex; gap: 12px; align-items: stretch; flex-wrap: wrap; }
.woocommerce .quantity .qty {
	font-family: var(--pg-body);
	font-size: 14px;
	width: 72px;
	height: 100%;
	min-height: 44px;
	padding: 6px 10px;
	background: transparent;
	border: 1px solid var(--pg-line);
	border-radius: var(--pg-radius);
	font-variant-numeric: tabular-nums;
}
.woocommerce div.product form.cart .button,
.woocommerce a.button, .woocommerce button.button, .woocommerce input.button,
.woocommerce #respond input#submit {
	font-family: var(--pg-heading);
	font-size: 14px;
	font-weight: 600;
	letter-spacing: .02em;
	line-height: 1.2;
	background: transparent;
	color: var(--pg-gold);
	border: 1px solid var(--pg-gold);
	border-radius: var(--pg-radius);
	padding: 13px 22px;
	text-transform: none;
}
.woocommerce a.button:hover, .woocommerce button.button:hover,
.woocommerce input.button:hover, .woocommerce #respond input#submit:hover {
	background: rgba(182, 130, 53, .12);
	color: var(--pg-gold-700);
	border-color: var(--pg-gold);
}
.woocommerce a.button.alt, .woocommerce button.button.alt, .woocommerce input.button.alt {
	background: transparent;
	color: var(--pg-gold);
	border-color: var(--pg-gold);
}
.woocommerce a.button.alt:hover, .woocommerce button.button.alt:hover { background: rgba(182, 130, 53, .12); color: var(--pg-gold-700); }

/* Variations table. */
.woocommerce div.product form.cart .variations { margin: 0 0 16px; width: 100%; border: 0; }
.woocommerce div.product form.cart .variations td,
.woocommerce div.product form.cart .variations th { padding: 8px 0; border: 0; }
.woocommerce div.product form.cart .variations label {
	font-size: 10px;
	letter-spacing: .14em;
	text-transform: uppercase;
	color: var(--pg-gold);
	font-weight: 400;
}
.woocommerce div.product form.cart .variations select {
	font-family: var(--pg-body);
	font-size: 14px;
	border: 1px solid var(--pg-line);
	border-radius: var(--pg-radius);
	background: transparent;
	padding: 9px 10px;
	width: 100%;
}

/* Meta + tabs. */
.woocommerce div.product .product_meta {
	font-size: 11px;
	letter-spacing: .06em;
	color: var(--pg-n600);
	border-top: 1px solid var(--pg-line);
	padding-top: 16px;
	display: flex;
	flex-direction: column;
	gap: 6px;
}
.woocommerce div.product .woocommerce-tabs ul.tabs {
	padding: 0;
	margin: 0 0 24px;
	display: flex;
	gap: 0;
	border-bottom: 1px solid var(--pg-line);
}
.woocommerce div.product .woocommerce-tabs ul.tabs::before { display: none; }
.woocommerce div.product .woocommerce-tabs ul.tabs li {
	background: transparent;
	border: 0;
	border-radius: 0;
	margin: 0;
	padding: 0;
	flex: 1 1 auto;
	text-align: center;
}
.woocommerce div.product .woocommerce-tabs ul.tabs li::before,
.woocommerce div.product .woocommerce-tabs ul.tabs li::after { display: none; }
.woocommerce div.product .woocommerce-tabs ul.tabs li a {
	font-family: var(--pg-body);
	font-size: 12px;
	letter-spacing: .1em;
	text-transform: uppercase;
	color: var(--pg-n600);
	padding: 14px 8px;
	display: block;
	font-weight: 400;
}
.woocommerce div.product .woocommerce-tabs ul.tabs li.active a {
	color: var(--pg-gold);
	box-shadow: inset 0 -1px 0 var(--pg-gold);
}
.woocommerce div.product .woocommerce-tabs .panel h2 { font-size: 22px; }

/* Related / upsells. */
.woocommerce .related > h2, .woocommerce .upsells > h2, .woocommerce .cross-sells > h2 {
	font-family: var(--pg-heading);
	font-size: 22px;
	font-weight: 500;
	margin: 0 0 16px;
}

/* --------------------------------------------------------------------------
   Desktop product layout — two equal columns split by a hairline, per
   "PG Forever Yours - Desktop.dc.html".

   Key rule: every direct child of div.product spans BOTH columns by default,
   and only the gallery and the summary are pulled into the two-column row.
   The earlier version placed only those two and let everything else auto-flow,
   which dropped related products and tabs into a single narrow track.
   -------------------------------------------------------------------------- */
.woocommerce div.product { width: 100%; max-width: none; }

@media (min-width: 900px) {
	.woocommerce div.product {
		display: grid;
		grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
		column-gap: 0;
		align-items: start;
		border-top: 1px solid var(--pg-line);
	}

	/* Default for anything WooCommerce puts in here, now or later. */
	.woocommerce div.product > * {
		grid-column: 1 / -1;
		min-width: 0;
	}

	/* The gallery and the summary share the first row. */
	.woocommerce div.product > div.images,
	.woocommerce div.product > .woocommerce-product-gallery {
		grid-column: 1;
		grid-row: 1;
		padding: 44px clamp(24px, 2.4vw, 32px) 44px 0;
		border-right: 1px solid var(--pg-line);
		position: sticky;
		top: 24px;
	}
	.woocommerce div.product > .summary {
		grid-column: 2;
		grid-row: 1;
		margin: 0;
		padding: 44px 0 44px clamp(28px, 3.2vw, 48px);
	}

	/* Thumbnails run down the left of the main image, as in the design. */
	.woocommerce div.product div.images.woocommerce-product-gallery {
		display: flex;
		flex-direction: row-reverse;
		gap: 20px;
		align-items: flex-start;
	}
	.woocommerce div.product div.images .woocommerce-product-gallery__wrapper {
		flex: 1 1 auto;
		min-width: 0;
		margin: 0;
	}
	.woocommerce div.product div.images .flex-control-thumbs {
		flex: 0 0 78px;
		flex-direction: column;
		gap: 14px;
		margin: 0;
	}
	.woocommerce div.product div.images .flex-control-thumbs li { flex: none; width: 100%; }

	/* Type, scaled up for the desktop column. */
	.woocommerce div.product .product_title { font-size: clamp(38px, 3.6vw, 52px); margin: 16px 0 18px; }
	.woocommerce div.product p.price,
	.woocommerce div.product span.price { font-size: 30px; }
	.woocommerce div.product .woocommerce-product-details__short-description {
		font-size: 15px;
		line-height: 1.85;
		max-width: 52ch;
		margin-top: 22px;
	}
	.woocommerce div.product .pg-specs .pg-spec__value { font-size: 19px; }
	.woocommerce div.product .pg-accordions .wp-block-details summary { font-size: 20px; padding: 20px 0; }

	/* Add-to-cart row sits between hairlines. */
	.woocommerce div.product form.cart {
		margin: 32px 0 0;
		padding: 28px 0;
		border-top: 1px solid var(--pg-line);
		border-bottom: 1px solid var(--pg-line);
		gap: 16px;
		align-items: center;
	}
	.woocommerce div.product form.cart .button { flex: 1 1 auto; justify-content: center; }

	/* Related / upsells become their own full-width band. */
	.woocommerce div.product > .related,
	.woocommerce div.product > .upsells {
		margin-top: 52px;
		padding-top: 52px;
		border-top: 1px solid var(--pg-line-ink);
	}
	.woocommerce div.product > .woocommerce-tabs { margin-top: 48px; }
	.woocommerce .related > h2,
	.woocommerce .upsells > h2 { font-size: 30px; font-weight: 400; margin-bottom: 28px; }
}

/* Related products are matted plates with air between them, not the hairline
   grid used on the shop archive. */
.woocommerce .related ul.products,
.woocommerce .upsells ul.products,
.woocommerce .cross-sells ul.products {
	gap: clamp(20px, 2.4vw, 32px);
	background: transparent;
	border-top: 0;
	border-bottom: 0;
}
.woocommerce .related ul.products li.product,
.woocommerce .upsells ul.products li.product,
.woocommerce .cross-sells ul.products li.product {
	padding: 0;
	background: transparent;
}


/* ==========================================================================
   11. WOOCOMMERCE — CART, CHECKOUT, ACCOUNT
   ========================================================================== */
.woocommerce-cart table.cart, .woocommerce table.shop_table {
	border: 0;
	border-radius: 0;
	border-collapse: collapse;
	font-size: 14px;
}
.woocommerce table.shop_table th {
	font-family: var(--pg-body);
	font-size: 10px;
	letter-spacing: .14em;
	text-transform: uppercase;
	color: var(--pg-n600);
	font-weight: 400;
	border-bottom: 1px solid var(--pg-line);
	padding: 12px 8px;
}
.woocommerce table.shop_table td { border-top: 1px solid var(--pg-line); padding: 16px 8px; }
.woocommerce table.shop_table img { border: 6px solid var(--pg-surface); outline: 1px solid var(--pg-line); outline-offset: -1px; }
.woocommerce-cart .cart_totals h2, .woocommerce-checkout h3, .woocommerce-checkout h2 {
	font-family: var(--pg-heading);
	font-size: 22px;
	font-weight: 500;
}

/* Checkout block (WooCommerce Blocks). */
.wc-block-checkout__form .wc-block-components-checkout-step,
.wc-block-components-checkout-step {
	border-bottom: 1px solid var(--pg-line);
	padding-bottom: 24px;
}
.wc-block-components-checkout-step__title,
.wc-block-components-title {
	font-family: var(--pg-heading) !important;
	font-size: 22px !important;
	font-weight: 500 !important;
}
.wc-block-components-text-input input,
.wc-block-components-textarea,
.wc-block-components-combobox-control input.components-combobox-control__input {
	font-family: var(--pg-body) !important;
	font-size: 14px !important;
	background: transparent !important;
	border: 1px solid var(--pg-line) !important;
	border-radius: var(--pg-radius) !important;
}
.wc-block-components-text-input.is-active label,
.wc-block-components-text-input label { color: var(--pg-n700); }
.wc-block-components-radio-control__option { border-top: 1px solid var(--pg-line); padding: 15px 0; }
.wc-block-components-totals-item { font-size: 13px; }
.wc-block-components-totals-footer-item .wc-block-components-totals-item__label,
.wc-block-components-totals-footer-item .wc-block-formatted-money-amount {
	font-family: var(--pg-heading);
	font-size: 20px;
}
.wc-block-components-button:not(.is-link) {
	background: transparent !important;
	color: var(--pg-gold) !important;
	border: 1px solid var(--pg-gold) !important;
	border-radius: var(--pg-radius) !important;
	font-family: var(--pg-heading) !important;
	font-weight: 600 !important;
}
.wc-block-components-button:not(.is-link):hover { background: rgba(182, 130, 53, .12) !important; }

/* Mini-cart drawer — screen 05. */
.wc-block-mini-cart__drawer .wc-block-components-drawer {
	background: var(--pg-paper);
	border-top: 1px solid var(--pg-line-ink);
}
.wc-block-mini-cart__title { font-family: var(--pg-heading); font-size: 20px; }
.wc-block-mini-cart__footer { border-top: 1px solid var(--pg-line); }

/* Notices. */
.woocommerce-message, .woocommerce-info, .woocommerce-error {
	background: transparent;
	border-top: 2px solid var(--pg-gold);
	color: var(--pg-ink);
	font-size: 13px;
	border-radius: 0;
	padding: 16px 16px 16px 0;
}
.woocommerce-message::before, .woocommerce-info::before { color: var(--pg-gold); }

/* My account. */
.woocommerce-account .woocommerce-MyAccount-navigation ul { list-style: none; margin: 0; padding: 0; }
.woocommerce-account .woocommerce-MyAccount-navigation li {
	border-top: 1px solid var(--pg-line);
}
.woocommerce-account .woocommerce-MyAccount-navigation li:last-child { border-bottom: 1px solid var(--pg-line); }
.woocommerce-account .woocommerce-MyAccount-navigation li a {
	display: block;
	padding: 15px 0;
	font-family: var(--pg-heading);
	font-size: 18px;
	color: var(--pg-ink);
}
.woocommerce-account .woocommerce-MyAccount-navigation li.is-active a { color: var(--pg-gold); }
@media (min-width: 900px) {
	.woocommerce-account .woocommerce-MyAccount-navigation { float: none; width: auto; }
	.woocommerce-account .woocommerce-MyAccount-content { float: none; width: auto; }
	/* Scoped to pages that actually have the nav (the logged-in dashboard) —
	   without :has() this also grabbed the logged-out login/register page,
	   which has no nav, and crushed its two columns into the 260px meant
	   for the sidebar. */
	.woocommerce-account .woocommerce:has(> .woocommerce-MyAccount-navigation) {
		display: grid;
		grid-template-columns: 260px minmax(0, 1fr);
		gap: 64px;
		align-items: start;
	}
}

/* --- Login / Register (the logged-out My Account page) ----------------
   These class names come from woocommerce/myaccount/form-login.php in this
   theme, not from WooCommerce. The plugin's own `u-columns col2-set` wrapper
   was being restyled by a stylesheet we don't control — owning the markup is
   what makes this layout hold.
   --------------------------------------------------------------------- */
.pg-account {
	display: flex;
	flex-direction: column;
	gap: 48px;
	width: 100%;
	max-width: none;
}
.pg-account__col {
	box-sizing: border-box;
	min-width: 0;
	width: 100%;
	float: none;
}
.pg-account__title {
	font-family: var(--pg-heading);
	font-weight: 300;
	font-size: clamp(34px, 5vw, 46px);
	line-height: 1.1;
	margin: 0 0 10px;
}
.pg-account__lede {
	font-size: 14px;
	line-height: 1.8;
	color: var(--pg-n700);
	max-width: 46ch;
	margin: 0 0 40px;
}
.pg-account h2 {
	font-family: var(--pg-heading);
	font-size: 26px;
	font-weight: 500;
	margin: 0 0 22px;
	padding-bottom: 22px;
	border-bottom: 1px solid var(--pg-line);
}
.pg-account .form-row { margin: 0 0 18px; }
.pg-account .form-row label {
	display: block;
	font-size: 12px;
	margin-bottom: 5px;
	color: var(--pg-n700);
}
.pg-account .required { color: var(--pg-gold); border: 0; text-decoration: none; }
.pg-account input.input-text { width: 100%; }

/* Log in button and "Remember me" share a row. */
.pg-account__actions {
	display: flex;
	align-items: center;
	gap: 22px;
	flex-wrap: wrap;
}
.pg-account__actions label {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	margin: 0;
	font-size: 13px;
	color: var(--pg-ink);
}
.pg-account__actions .woocommerce-form__input-checkbox { width: auto; margin: 0; }
.pg-account .woocommerce-LostPassword { font-size: 13px; margin: 0; }
.pg-account .woocommerce-privacy-policy-text p,
.pg-account .woocommerce-password-hint {
	font-size: 12.5px;
	line-height: 1.75;
	color: var(--pg-n700);
}

/* Password strength meter, drawn as the design's thin gold rule. */
.pg-account .woocommerce-password-strength {
	font-size: 10px;
	letter-spacing: .12em;
	text-transform: uppercase;
	text-align: right;
	padding: 6px 0 0;
	border: 0;
	background: transparent;
	color: var(--pg-n600);
	border-top: 2px solid var(--pg-n300);
}
.pg-account .woocommerce-password-strength.strong { border-top-color: var(--pg-gold); color: var(--pg-gold-700); }
.pg-account .woocommerce-password-strength.good { border-top-color: var(--pg-gold); }
.pg-account .woocommerce-password-strength.short,
.pg-account .woocommerce-password-strength.bad { border-top-color: var(--pg-n400); }

/* "Without an account" rows. */
.pg-account__aside { margin-top: 44px; padding-top: 26px; border-top: 1px solid var(--pg-line); }
.pg-account__aside .pg-kicker { margin-bottom: 8px; }
.pg-account__aside-row {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 16px;
	padding: 16px 0;
	border-bottom: 1px solid var(--pg-line);
	color: var(--pg-ink);
	font-size: 14px;
}
.pg-account__aside-row:last-child { border-bottom: 0; }
.pg-account__aside-row:hover { color: var(--pg-gold-700); }
.pg-account__aside-tag {
	font-size: 11px;
	letter-spacing: .1em;
	text-transform: uppercase;
	color: var(--pg-gold-700);
}

/* Desktop: two equal columns divided by a hairline, Register on the surface
   tone — matching "PG Forever Yours - Desktop.dc.html". */
@media (min-width: 900px) {
	.pg-account--split {
		display: grid;
		grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
		gap: 0;
		align-items: stretch;
		border-top: 1px solid var(--pg-line);
	}
	/* Grid items stretch to their track on their own; a width of 100% would
	   add the padding on top of a full-width box and push the page sideways. */
	.pg-account--split > .pg-account__col { width: auto; }
	.pg-account--split > .pg-account__col--login {
		padding: 56px clamp(32px, 3.6vw, 56px) 64px 0;
		border-right: 1px solid var(--pg-line);
	}
	.pg-account--split > .pg-account__col--register {
		padding: 56px clamp(32px, 3.6vw, 56px) 64px;
		background: var(--pg-surface);
	}
	.pg-account__panel { max-width: 460px; }
	.pg-account h2 { font-size: 28px; }
	/* The Register column sits on the surface tone, so its fields need the
	   paper colour back or they disappear into it. */
	.pg-account__col--register input.input-text { background: var(--pg-paper); }
}


/* ==========================================================================
   12. STICKY BUY BAR (single product, phones)
   Output by functions.php. Switch it off with:
   add_filter( 'pgfy_enable_buy_bar', '__return_false' );
   ========================================================================== */
.pg-buybar {
	position: fixed;
	left: 0;
	right: 0;
	bottom: 0;
	z-index: 90;
	display: flex;
	align-items: center;
	gap: 14px;
	background: var(--pg-paper);
	border-top: 1px solid var(--pg-line-ink);
	padding: 12px var(--pg-gutter);
	box-shadow: 0 -6px 18px rgba(45, 43, 43, .10);
}
.pg-buybar__price {
	flex: 1 1 auto;
	min-width: 0;
}
.pg-buybar__amount {
	font-family: var(--pg-heading);
	font-size: 18px;
	font-weight: 500;
	line-height: 1.2;
	font-variant-numeric: tabular-nums;
}
.pg-buybar__amount del { color: var(--pg-n500); font-size: .8em; margin-right: 6px; }
.pg-buybar__amount ins { text-decoration: none; }
.pg-buybar__meta {
	font-size: 10px;
	letter-spacing: .12em;
	text-transform: uppercase;
	color: var(--pg-n600);
}
.pg-buybar__btn {
	flex: 1.15 1 0;
	font-family: var(--pg-heading);
	font-size: 14px;
	font-weight: 600;
	color: var(--pg-gold);
	background: transparent;
	border: 1px solid var(--pg-gold);
	border-radius: var(--pg-radius);
	padding: 13px 10px;
	cursor: pointer;
}
.pg-buybar__btn:hover { background: rgba(182, 130, 53, .12); }
body.pg-has-buybar { padding-bottom: 84px; }
@media (min-width: 900px) {
	.pg-buybar { display: none; }
	body.pg-has-buybar { padding-bottom: 0; }
}


/* ==========================================================================
   13. FORMS, BUTTONS, MISC
   ========================================================================== */
input[type="text"], input[type="email"], input[type="tel"], input[type="number"],
input[type="password"], input[type="search"], input[type="url"], textarea, select {
	font-family: var(--pg-body);
	font-size: 14px;
	color: var(--pg-ink);
	caret-color: var(--pg-gold);
	background: transparent;
	border: 1px solid var(--pg-line);
	border-radius: var(--pg-radius);
	padding: 9px 10px;
}
input:hover, textarea:hover, select:hover { border-color: rgba(32, 31, 29, .45); }
:focus-visible { outline: 2px solid var(--pg-gold); outline-offset: 2px; }
::selection { background: rgba(182, 130, 53, .3); }

/* Secondary (outline-neutral) button style, registered for core/button. */
.wp-block-button.is-style-pg-secondary .wp-block-button__link {
	color: var(--pg-ink);
	border-color: var(--pg-line);
	background: transparent;
}
.wp-block-button.is-style-pg-secondary .wp-block-button__link:hover {
	background: rgba(32, 31, 29, .07);
	color: var(--pg-ink);
}

/* Small link-style button. */
.wp-block-button.is-style-pg-link .wp-block-button__link {
	border: 0;
	padding: 0;
	font-family: var(--pg-body);
	font-size: 11px;
	letter-spacing: .12em;
	text-transform: uppercase;
	color: var(--pg-gold-700);
	background: transparent;
}

/* Tags. */
.pg-tag {
	display: inline-flex;
	align-items: center;
	font-size: 11px;
	letter-spacing: .02em;
	padding: 3px 10px;
	border-radius: 3px;
	background: var(--pg-gold-100);
	color: var(--pg-gold-800);
}
.pg-tag--neutral { background: #f8f4f4; color: #444141; }
.pg-tag--outline { background: transparent; border: 1px solid var(--pg-gold); color: var(--pg-gold); padding: 2px 9px; }

/* Screen reader text. */
.pg-sr-only {
	position: absolute !important;
	width: 1px; height: 1px;
	overflow: hidden;
	clip: rect(1px, 1px, 1px, 1px);
	white-space: nowrap;
}


/* ==========================================================================
   14. PER-DEVICE VISIBILITY
   Driven by the "Visibility" panel in every block's sidebar. The classes are
   added at render time by functions.php, so they also work if you type them
   by hand into a block's Advanced → Additional CSS classes.

   Note: hiding is visual only — the content is still in the page source. Use
   it for layout (a desktop-only banner, a mobile-only button), not to conceal
   anything, and don't build two full copies of a page this way.
   ========================================================================== */
@media (max-width: 699px) {
	.pg-hide-mobile { display: none !important; }
}
@media (min-width: 700px) and (max-width: 899px) {
	.pg-hide-tablet { display: none !important; }
}
@media (min-width: 900px) {
	.pg-hide-desktop { display: none !important; }
}


/* ==========================================================================
   15. EDITOR-ONLY CORRECTIONS
   These live in assets/css/editor.css, loaded through add_editor_style().
   They can't sit in this file: WordPress prefixes editor styles with
   .editor-styles-wrapper itself, so writing that prefix here would double it
   and the rules would never match.
   ========================================================================== */
