:where(*) {
	box-sizing: border-box;
}

:root {
	/* Color palette */
	--panam-accent: #0f766e;
	--panam-accent-dark: #155044;
	--panam-primary: var(--panam-accent);
	--panam-ink: #17211f;
	--panam-muted: #5d6b66;
	--panam-surface: #f7f5ef;
	--panam-bg: #fff;
	--panam-on-accent: #fff;
	--panam-border: #dde5df;

	/* Semantic colors */
	--panam-sale: #b42318;
	--panam-sale-badge: var(--panam-sale);
	--panam-sale-timer-bg: var(--panam-sale);
	--panam-sale-dark: #7a1f1f;
	--panam-sale-bg: #fff3f0;
	--panam-sale-border: #f3b4aa;
	--panam-rating: #d8b11e;
	--panam-warning: #d97706;
	--panam-success: #8bd8bd;

	/* Typography */
	--panam-font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
	--panam-heading-font-family: var(--panam-font-family);
	--panam-font-size-base: 16px;
	--panam-line-height: 1.6;
	--panam-body-weight: 400;
	--panam-heading-weight: 700;

	/* Shape */
	--panam-radius: 8px;
	--panam-radius-button: var(--panam-radius);
	--panam-radius-card: 0;
	--panam-radius-image: 0;
	--panam-radius-pill: 999px;

	/* Borders & shadow */
	--panam-border-width: 1px;
	--panam-shadow: 0 18px 40px rgb(23 33 31 / 10%);

	/* Layout */
	--panam-container: 1180px;

	/* Buttons */
	--panam-btn-height: 44px;
	--panam-btn-padding-x: 18px;
	--panam-btn-font-size: 0.8125rem;
	--panam-btn-font-weight: 700;
	--panam-btn-letter-spacing: 0.04em;
	--panam-btn-text-transform: none;
	--panam-btn-radius: var(--panam-radius-button);
	--panam-btn-product-inset: 14px;
}

html {
	scroll-behavior: smooth;
}

body {
	margin: 0;
	color: var(--panam-ink);
	background: var(--panam-bg);
	font-family: var(--panam-font-family);
	font-size: var(--panam-font-size-base);
	font-weight: var(--panam-body-weight);
	line-height: var(--panam-line-height);
	text-rendering: optimizeLegibility;
}

h1, h2, h3, h4, h5, h6 {
	font-family: var(--panam-heading-font-family);
	font-weight: var(--panam-heading-weight);
}

img,
svg {
	display: block;
	max-width: 100%;
	height: auto;
}

svg {
	width: 1.25em;
	height: 1.25em;
	fill: none;
	stroke: currentColor;
	stroke-width: 2;
	stroke-linecap: round;
	stroke-linejoin: round;
}

a {
	color: inherit;
	text-decoration-color: color-mix(in srgb, var(--panam-accent), transparent 45%);
	text-underline-offset: 0.18em;
}

a:not(:is(.button, .added_to_cart)):hover {
	color: var(--panam-accent);
}

button,
input,
select,
textarea {
	font: inherit;
}

.container {
	width: min(calc(100% - 32px), var(--panam-container));
	margin-inline: auto;
}

.narrow {
	max-width: 760px;
}

.screen-reader-text {
	position: absolute;
	width: 1px;
	height: 1px;
	padding: 0;
	margin: -1px;
	overflow: hidden;
	clip: rect(0, 0, 0, 0);
	white-space: nowrap;
	border: 0;
}

.screen-reader-text:focus,
.skip-link:focus {
	z-index: 100000;
	top: 10px;
	left: 10px;
	width: auto;
	height: auto;
	padding: 10px 14px;
	clip: auto;
	color: var(--panam-on-accent);
	background: var(--panam-ink);
	border-radius: var(--panam-radius);
}

.announcement-bar {
	font-size: 0.9rem;
	color: var(--panam-on-accent);
	background: var(--panam-ink);
}

.announcement-bar .container {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 12px;
	padding-block: 7px;
}

/* With the language switcher present, a 3-column grid keeps the message perfectly
   centred while the switcher sits flush to the right edge. */
.announcement-bar--has-lang .container {
	display: grid;
	grid-template-columns: 1fr auto 1fr;
}

.announcement-bar__msg {
	grid-column: 2;
	min-width: 0;
	text-align: center;
}

.announcement-bar a {
	color: inherit;
	text-decoration: none;
}

.announcement-bar a:hover {
	text-decoration: underline;
}

/* Language switcher — the GTranslate `flags` widget: a compact row of flag
   links (no names), pinned right. */
.announcement-bar__lang {
	grid-column: 3;
	justify-self: end;
	display: inline-flex;
	align-items: center;
}

.announcement-bar__lang .gtranslate_wrapper {
	display: inline-flex;
	align-items: center;
	flex-wrap: wrap;
	justify-content: flex-end;
	gap: 7px;
	line-height: 0;
}

/* Each flag is a small SVG link. Override the plugin's inline img rules
   (opacity:0.8 / margin-right:2px) for a tighter, dimmed-until-hover look. */
.announcement-bar__lang .glink {
	display: inline-flex;
	line-height: 0;
	border-radius: 0;
	/* Transparent underline on every flag reserves space so the active marker
	   below causes no layout shift. */
	padding-bottom: 3px;
	border-bottom: 2px solid transparent;
}

.announcement-bar__lang .glink img {
	display: block;
	width: 20px;
	height: 20px;
	margin: 0;
	opacity: 0.65;
	transition: opacity 140ms ease;
}

.announcement-bar__lang .glink:hover img,
.announcement-bar__lang .glink:focus-visible img {
	opacity: 1;
}

/* Current language: full-opacity flag with a subtle accent underline — a neutral,
   on-brand marker rather than a hard outline box. */
.announcement-bar__lang .glink.gt-current-lang {
	border-bottom-color: var(--panam-accent);
}

.announcement-bar__lang .glink.gt-current-lang img {
	opacity: 1;
}

.site-header {
	position: relative;
	z-index: 40;
	overflow: visible;
	background: rgb(255 255 255 / 94%);
	border-bottom: 1px solid var(--panam-border);
	backdrop-filter: blur(14px);
}

.has-sticky-header .site-header {
	position: sticky;
	top: 0;
}

.admin-bar.has-sticky-header .site-header {
	top: 32px;
}

.header-inner {
	position: relative;
	display: grid;
	grid-template-columns: auto minmax(280px, 1fr) auto;
	grid-template-rows: auto auto;
	gap: 12px 24px;
	align-items: center;
	padding-block: 12px 0;
	overflow: visible;
}

.site-branding {
	grid-column: 1;
	grid-row: 1;
	min-width: 0;
}

.header-search {
	grid-column: 2;
	grid-row: 1;
	min-width: 0;
}

.header-actions {
	grid-column: 3;
	grid-row: 1;
}

.custom-logo-link img {
	max-height: 58px;
	width: auto;
}

.site-title {
	display: inline-block;
	color: var(--panam-ink);
	font-size: 1.35rem;
	font-weight: 800;
	text-decoration: none;
}

.footer-bottom ul {
	display: flex;
	flex-wrap: wrap;
	gap: 6px 18px;
	align-items: center;
	padding: 0;
	margin: 0;
	list-style: none;
}

.footer-bottom a {
	color: var(--panam-ink);
	font-weight: 650;
	text-decoration: none;
}

.desktop-nav ul,
.mobile-menu__nav ul {
	padding: 0;
	margin: 0;
	list-style: none;
}

.desktop-nav {
	grid-column: 1 / -1;
	grid-row: 2;
	width: 100%;
	min-width: 0;
	padding-top: 10px;
	border-top: 1px solid var(--panam-border);
}

.desktop-nav .menu {
	display: flex;
	flex-wrap: nowrap;
	gap: clamp(6px, 1.5vw, 24px);
	align-items: center;
	justify-content: flex-start;
	min-height: 0;
	overflow: visible;
}

.desktop-nav a {
	color: var(--panam-ink);
	font-weight: 650;
	text-decoration: none;
}

.desktop-nav a:hover,
.desktop-nav .current-menu-item > a,
.desktop-nav .current-menu-ancestor > a {
	color: var(--panam-accent);
}

.desktop-nav .menu > .menu-item {
	position: relative;
	flex: 0 0 auto;
}

.desktop-nav .menu > .mobileonly {
	display: none;
}

.desktop-nav .menu > .menu-item-has-children:not(.compact-menu),
.desktop-nav .menu > .mega-menu {
	position: static;
	display: block;
}

.desktop-nav .menu > .menu-item > a {
	display: inline-flex;
	min-height: 40px;
	align-items: center;
	padding: 8px 12px;
	border-radius: 0;
	font-size: 0.95rem;
	line-height: 1.2;
	white-space: nowrap;
	transition: background-color 160ms ease, color 160ms ease;
}

.desktop-nav .menu > .menu-item:hover > a,
.desktop-nav .menu > .menu-item:focus-within > a,
.desktop-nav .menu > .menu-item.is-mega-open > a,
.desktop-nav .menu > .current-menu-item > a,
.desktop-nav .menu > .current-menu-ancestor > a {
	color: var(--panam-on-accent);
	background: var(--panam-accent);
}

.desktop-nav .submenu-toggle {
	display: none;
}

.desktop-nav .sub-menu {
	position: absolute;
	z-index: 50;
	top: calc(100% + 2px);
	left: 0;
	display: grid;
	min-width: 220px;
	gap: 2px;
	padding: 10px;
	background: var(--panam-bg);
	border: 1px solid var(--panam-border);
	border-radius: var(--panam-radius);
	box-shadow: var(--panam-shadow);
	opacity: 0;
	pointer-events: none;
	visibility: hidden;
	transition: opacity 160ms ease, visibility 160ms ease;
}

.desktop-nav .sub-menu .menu-item {
	position: relative;
}

.desktop-nav .sub-menu a {
	display: flex;
	min-height: 38px;
	align-items: center;
	padding: 8px 12px;
	border-radius: calc(var(--panam-radius) - 2px);
	font-weight: 650;
	line-height: 1.25;
}

.desktop-nav .sub-menu a:hover,
.desktop-nav .sub-menu .current-menu-item > a,
.desktop-nav .sub-menu .current-menu-ancestor > a {
	color: var(--panam-accent);
	background: var(--panam-surface);
}

.desktop-nav .sub-menu .sub-menu {
	top: -10px;
	left: 100%;
}

.desktop-nav .menu > .compact-menu:last-child > .sub-menu,
.desktop-nav .menu > .compact-menu:nth-last-child(2) > .sub-menu {
	right: 0;
	left: auto;
}

.desktop-nav .menu > .compact-menu:last-child .sub-menu .sub-menu,
.desktop-nav .menu > .compact-menu:nth-last-child(2) .sub-menu .sub-menu {
	right: 100%;
	left: auto;
}

.desktop-nav .menu > .compact-menu.menu-item-has-children.is-mega-open > .sub-menu {
	opacity: 1;
	pointer-events: auto;
	visibility: visible;
}

.desktop-nav--dropdown .menu > .menu-item-has-children:not(.compact-menu),
.desktop-nav--dropdown .menu > .mega-menu {
	position: relative;
}

.desktop-nav--dropdown .sub-menu {
	top: 100%;
	gap: 0;
	padding: 0;
	border-radius: 0;
}

.desktop-nav--dropdown .sub-menu .sub-menu {
	top: 0;
}

.desktop-nav--dropdown .sub-menu a {
	border-radius: 0;
}

.desktop-nav--dropdown .menu > .menu-item-has-children:hover > .sub-menu,
.desktop-nav--dropdown .menu > .menu-item-has-children:focus-within > .sub-menu,
.desktop-nav--dropdown .sub-menu .menu-item-has-children:hover > .sub-menu,
.desktop-nav--dropdown .sub-menu .menu-item-has-children:focus-within > .sub-menu {
	opacity: 1;
	pointer-events: auto;
	visibility: visible;
}

.desktop-nav--dropdown .menu > .menu-item-has-children:last-child > .sub-menu,
.desktop-nav--dropdown .menu > .menu-item-has-children:nth-last-child(2) > .sub-menu {
	right: 0;
	left: auto;
}

.desktop-nav--dropdown .menu > .menu-item-has-children:last-child .sub-menu .sub-menu,
.desktop-nav--dropdown .menu > .menu-item-has-children:nth-last-child(2) .sub-menu .sub-menu {
	right: 100%;
	left: auto;
}

.desktop-nav .desktop-mega-panel {
	position: absolute;
	top: 100%;
	right: 0;
	left: 0;
	z-index: 60;
	width: 100%;
	max-width: none;
	max-height: min(72vh, 700px);
	padding: 0;
	margin: 0;
	overflow-y: auto;
	background: linear-gradient(180deg, var(--panam-bg), color-mix(in srgb, var(--panam-surface), var(--panam-bg) 58%));
	border: 0;
	border-top: 1px solid var(--panam-border);
	border-bottom: 1px solid var(--panam-border);
	border-radius: 0;
	box-shadow: 0 24px 48px rgb(23 33 31 / 12%);
	opacity: 0;
	pointer-events: none;
	visibility: hidden;
	transition: opacity 180ms ease, visibility 180ms ease;
}

.desktop-nav .menu > .menu-item-has-children:not(.compact-menu) > .desktop-mega-panel,
.desktop-nav .mega-menu > .desktop-mega-panel {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	grid-template-rows: auto 1fr;
	gap: 14px 24px;
	align-content: start;
	padding: 28px max(24px, calc((100% - var(--panam-container)) / 2));
}

.desktop-nav .desktop-mega-panel > .menu-item {
	display: grid;
	grid-row: span 2;
	grid-template-rows: subgrid;
	gap: 8px;
	min-width: 0;
}

.desktop-nav .menu > .menu-item-has-children:not(.compact-menu).is-mega-open > .desktop-mega-panel,
.desktop-nav .mega-menu.is-mega-open > .desktop-mega-panel {
	opacity: 1;
	pointer-events: auto;
	visibility: visible;
}

.desktop-nav .desktop-mega-panel > .menu-item > a {
	grid-row: 1;
	align-self: stretch;
	display: flex;
	align-items: flex-end;
	box-sizing: border-box;
	min-height: calc(2 * 1.25em + 10px);
	padding: 0 0 10px;
	margin: 0;
	color: var(--panam-ink);
	background: transparent;
	border-bottom: 1px solid var(--panam-border);
	border-radius: 0;
	font-size: 0.92rem;
	font-weight: 850;
	line-height: 1.25;
	letter-spacing: 0.02em;
	text-transform: uppercase;
	white-space: normal;
}

.desktop-nav .desktop-mega-panel > .menu-item > .sub-menu {
	grid-row: 2;
	position: static;
	display: grid;
	min-width: 0;
	padding: 0;
	background: transparent;
	border: 0;
	box-shadow: none;
	opacity: 1;
}

.desktop-nav .menu > .menu-item-has-children:not(.compact-menu).is-mega-open > .desktop-mega-panel > .menu-item > .sub-menu,
.desktop-nav .mega-menu.is-mega-open > .desktop-mega-panel > .menu-item > .sub-menu {
	pointer-events: auto;
	visibility: visible;
}

.desktop-nav .desktop-mega-panel > .menu-item > .sub-menu a {
	min-height: 34px;
	padding: 6px 8px;
	color: var(--panam-muted);
	font-size: 0.95rem;
	font-weight: 650;
	line-height: 1.25;
	text-transform: none;
	white-space: normal;
}

.desktop-nav .desktop-mega-panel > .menu-item > .sub-menu .sub-menu {
	position: static;
	display: grid;
	padding: 0 0 0 12px;
	margin: 0 0 4px 8px;
	background: transparent;
	border: 0;
	border-left: 1px solid var(--panam-border);
	box-shadow: none;
	opacity: 1;
}

.desktop-nav .menu > .menu-item-has-children:not(.compact-menu).is-mega-open > .desktop-mega-panel > .menu-item > .sub-menu .sub-menu,
.desktop-nav .mega-menu.is-mega-open > .desktop-mega-panel > .menu-item > .sub-menu .sub-menu {
	pointer-events: auto;
	visibility: visible;
}

.desktop-nav .desktop-mega-panel > .menu-item > .sub-menu .sub-menu a {
	font-size: 0.9rem;
}

@supports not (grid-template-rows: subgrid) {
	.desktop-nav .desktop-mega-panel > .menu-item {
		display: flex;
		flex-direction: column;
		grid-row: auto;
		grid-template-rows: none;
	}

	.desktop-nav .desktop-mega-panel > .menu-item > a {
		flex: 0 0 calc(2 * 1.25em + 10px);
		height: calc(2 * 1.25em + 10px);
		max-height: calc(2 * 1.25em + 10px);
		overflow: hidden;
	}
}

/* ---- Single-item mega menu (.panam-mega-item / .panam-mega) ---- */
.desktop-nav .menu > .panam-mega-item {
	position: static;
}

.desktop-nav .panam-mega {
	position: absolute;
	top: 100%;
	right: 0;
	left: 0;
	z-index: 60;
	background: var(--panam-bg);
	border-top: 1px solid var(--panam-border);
	border-bottom: 1px solid var(--panam-border);
	box-shadow: 0 24px 48px rgb(23 33 31 / 12%);
	opacity: 0;
	visibility: hidden;
	pointer-events: none;
	transition: opacity 180ms ease, visibility 180ms ease;
}

.desktop-nav .panam-mega-item.is-mega-open > .panam-mega {
	opacity: 1;
	visibility: visible;
	pointer-events: auto;
}

.desktop-nav .panam-mega__inner {
	display: flex;
	gap: 36px;
	align-items: stretch;
	width: min(calc(100% - 32px), var(--panam-container));
	margin-inline: auto;
	max-height: min(74vh, 640px);
	overflow-y: auto;
	padding: 28px 0 32px;
}

.panam-mega__col {
	flex: 1 1 0;
	min-width: 0;
}

.panam-mega__heading {
	margin: 0 0 12px;
	padding: 0 0 10px;
	color: var(--panam-accent);
	font-size: 0.9rem;
	font-weight: 800;
	letter-spacing: 0.04em;
	text-transform: uppercase;
	border-bottom: 1px solid var(--panam-border);
}

/* Submenu mega: headings link to their category; stacked groups in a shared
   column get breathing room between them. */
.panam-mega__heading a {
	color: inherit;
	text-decoration: none;
}

.panam-mega__heading a:hover,
.panam-mega__heading a:focus-visible {
	color: var(--panam-ink);
}

.panam-mega__group + .panam-mega__group {
	margin-top: 22px;
}

/* Submenu mega: keep the link columns compact on the left so the promo ad keeps
   its place on the right (the columns no longer stretch to fill the panel). */
.panam-mega--submenu .panam-mega__inner {
	gap: 30px;
}

/* Columns grow to fill the space left of the promo (so the heading row uses the
   full width); the promo keeps the small "Shop by Bird" size on the right. */
.panam-mega--submenu .panam-mega__col {
	flex: 1 1 0;
	min-width: 0;
}

.panam-mega--submenu .panam-mega__promo {
	flex: 0 0 clamp(220px, 26%, 340px);
}

.panam-mega--submenu .panam-mega__links a {
	padding: 6px 10px;
	font-size: 0.9rem;
}

/* Align the top heading of every column on one row even when some wrap to two
   lines, so the first link of each column starts at the same height. Only the
   first group's heading reserves the two-line height (not a stacked 2nd group). */
.panam-mega--submenu .panam-mega__heading {
	line-height: 1.25;
}

.panam-mega--submenu .panam-mega__col > .panam-mega__group:first-child .panam-mega__heading {
	box-sizing: content-box;
	min-height: 2.6em;
}

.panam-mega__links {
	display: grid;
	gap: 1px;
	margin: 0;
	padding: 0;
	list-style: none;
}

.panam-mega__links a {
	display: block;
	padding: 8px 12px;
	margin: 0;
	color: var(--panam-ink);
	font-size: 0.95rem;
	font-weight: 650;
	line-height: 1.3;
	border-radius: calc(var(--panam-radius) - 2px);
	transition: color 140ms ease, background-color 140ms ease;
}

.panam-mega__links a:hover {
	color: var(--panam-accent);
	background: var(--panam-surface);
}

/* Bird types: small species thumbnail next to the name. */
.panam-mega__links--birds {
	gap: 2px;
}

.panam-mega__links--birds a {
	display: flex;
	align-items: center;
	gap: 12px;
	padding: 5px 12px;
}

.panam-mega__bird-thumb {
	flex: 0 0 auto;
	display: grid;
	place-items: center;
	width: 40px;
	height: 40px;
	overflow: hidden;
	background: var(--panam-surface);
	border: 1px solid var(--panam-border);
}

.panam-mega__bird-thumb img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.panam-mega__bird-name {
	min-width: 0;
	overflow-wrap: anywhere;
}

/* "View all bird types" link under the column. */
.panam-mega__viewall {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	margin: 14px 0 0 -10px;
	padding: 8px 10px;
	color: var(--panam-accent);
	font-size: 0.82rem;
	font-weight: 800;
	letter-spacing: 0.04em;
	text-transform: uppercase;
	transition: color 140ms ease;
}

.panam-mega__viewall svg {
	width: 16px;
	height: 16px;
	transition: transform 160ms ease;
}

.panam-mega__viewall:hover {
	color: var(--panam-accent-dark);
}

.panam-mega__viewall:hover svg {
	transform: translateX(3px);
}

.panam-mega__promo {
	position: relative;
	flex: 0 0 clamp(220px, 26%, 340px);
	display: flex;
	flex-direction: column;
	align-self: stretch;
	overflow: hidden;
	border: 1px solid var(--panam-border);
}

.panam-mega__promo-media {
	display: block;
	flex: 1 1 auto;
	min-height: 0;
	overflow: hidden;
}

.panam-mega__promo-img {
	display: block;
	width: 100%;
	height: 100%;
	min-height: 220px;
	object-fit: cover;
}

/* Optional CTA button (e.g. add-to-cart) floating inside the promo image, inset
   from the bottom and side edges, with white text. The `.panam-mega` ancestor
   keeps the specificity above `.desktop-nav a` / `.mobile-menu__nav a` so the
   link colour isn't overridden to the dark nav text. */
.panam-mega .panam-mega__promo-btn {
	position: absolute;
	right: 12px;
	bottom: 12px;
	left: 12px;
	padding: 12px 14px;
	color: #fff;
	background: var(--panam-accent);
	border-radius: var(--panam-header-radius, 0);
	font-size: 1rem;
	font-weight: 700;
	text-align: center;
	text-decoration: none;
	box-shadow: 0 6px 18px rgb(0 0 0 / 22%);
	transition: background-color 160ms ease;
}

.panam-mega .panam-mega__promo-btn:hover,
.panam-mega .panam-mega__promo-btn:focus-visible {
	color: #fff;
	background: var(--panam-accent-dark);
}

/* Mobile-only toggle for the mega item (hidden on desktop, like .submenu-toggle). */
.panam-mega-toggle {
	display: none;
}

/* ---- "Shop by Bird" mega: 3 columns of species (≈6 each) + image. ---- */
.panam-mega__col--birdwall {
	flex: 1 1 auto;
	min-width: 0;
}

/* Bird wall: a grid that fills 6 rows per column, left-to-right — so it reads
   like the reference (6 / 6 / remainder) instead of one tall scrolling column. */
.desktop-nav .panam-mega__birdgrid {
	display: grid;
	grid-template-rows: repeat(6, auto);
	grid-auto-flow: column;
	grid-auto-columns: minmax(0, 1fr);
	gap: 2px 36px;
}

/* Circular species thumbnails in the bird mega (per the reference design). */
.panam-mega__birdgrid .panam-mega__bird-thumb {
	border-radius: 50%;
}

.panam-mega__birdgrid-all .panam-mega__viewall {
	margin: 6px 0 0;
}

.desktop-nav :focus-visible,
.mobile-menu :focus-visible,
.mobile-menu-toggle:focus-visible,
.mobile-menu__close:focus-visible,
.submenu-toggle:focus-visible {
	outline: 2px solid var(--panam-accent);
	outline-offset: 2px;
}

.mobile-menu,
.mobile-menu-toggle {
	display: none;
}

.mobile-menu-toggle {
	position: relative;
	width: 42px;
	height: 42px;
	place-items: center;
	color: var(--panam-ink);
	background: transparent;
	border: 1px solid var(--panam-border);
	border-radius: var(--panam-radius);
	cursor: pointer;
}

.mobile-menu-toggle__icon {
	display: grid;
	place-items: center;
}

.mobile-menu-toggle__icon svg {
	width: 22px;
	height: 22px;
}

.mobile-menu-toggle__icon--close {
	display: none;
}

.mobile-menu-toggle[aria-expanded="true"] .mobile-menu-toggle__icon--open {
	display: none;
}

.mobile-menu-toggle[aria-expanded="true"] .mobile-menu-toggle__icon--close {
	display: grid;
}

.product-search {
	display: grid;
	grid-template-columns: 1fr 42px;
	overflow: hidden;
	background: var(--panam-bg);
	border: 1px solid var(--panam-border);
	border-radius: var(--panam-header-radius, var(--panam-radius));
}

.product-search input[type="search"] {
	min-width: 0;
	padding: 10px 12px;
	border: 0;
	outline: 0;
}

.product-search button {
	display: grid;
	place-items: center;
	color: var(--panam-on-accent);
	background: var(--panam-accent);
	border: 0;
	cursor: pointer;
}

/* Live AJAX search dropdown */
.panam-search {
	position: relative;
}

.panam-search-results {
	position: absolute;
	top: calc(100% + 6px);
	left: 0;
	right: 0;
	z-index: 80;
	max-height: min(70vh, 460px);
	overflow-y: auto;
	overscroll-behavior: contain;
	background: var(--panam-bg);
	border: 1px solid var(--panam-border);
	border-radius: var(--panam-header-radius, var(--panam-radius));
	box-shadow: 0 18px 40px rgb(23 33 31 / 14%);
}

.panam-search-results[hidden] {
	display: none;
}

.panam-search-results__status,
.panam-search-results__empty {
	margin: 0;
	padding: 16px;
	color: var(--panam-muted);
	font-size: 0.9rem;
}

.panam-search-results__list {
	display: grid;
	gap: 2px;
	margin: 0;
	padding: 6px;
	list-style: none;
}

.panam-search-result {
	display: grid;
	grid-template-columns: 48px minmax(0, 1fr);
	gap: 12px;
	align-items: center;
	padding: 8px;
	color: var(--panam-ink);
	text-decoration: none;
	border-radius: calc(var(--panam-header-radius, var(--panam-radius)) - 2px);
	transition: background-color 140ms ease;
}

.panam-search-result:hover,
.panam-search-result.is-active {
	background: var(--panam-surface);
}

.panam-search-result__media {
	display: grid;
	place-items: center;
	width: 48px;
	height: 48px;
	overflow: hidden;
	background: var(--panam-surface);
	border: 1px solid var(--panam-border);
	border-radius: calc(var(--panam-header-radius, var(--panam-radius)) - 2px);
}

.panam-search-result__media img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.panam-search-result__body {
	display: grid;
	gap: 2px;
	min-width: 0;
}

.panam-search-result__title {
	display: -webkit-box;
	overflow: hidden;
	font-size: 0.9rem;
	font-weight: 650;
	line-height: 1.3;
	overflow-wrap: anywhere;
	-webkit-box-orient: vertical;
	-webkit-line-clamp: 2;
}

.panam-search-result__price {
	color: var(--panam-muted);
	font-size: 0.85rem;
	font-weight: 700;
}

.panam-search-result__price del {
	margin-right: 4px;
	font-weight: 500;
	opacity: 0.6;
}

.panam-search-result__price ins {
	color: var(--panam-sale, #d63638);
	text-decoration: none;
}

.panam-search-results__all {
	position: sticky;
	bottom: 0;
	display: block;
	padding: 12px 16px;
	color: var(--panam-on-accent);
	background: var(--panam-accent);
	font-size: 0.875rem;
	font-weight: 800;
	text-align: center;
	text-decoration: none;
}

.panam-search-results__all:hover,
.panam-search-results__all.is-active {
	filter: brightness(0.95);
}

.header-actions {
	display: flex;
	gap: 8px;
	align-items: center;
	justify-content: flex-end;
}

@media (min-width: 1025px) {
	.mobile-menu,
	.mobile-menu-toggle {
		display: none;
	}
}

.icon-link {
	position: relative;
	display: grid;
	width: 42px;
	height: 42px;
	place-items: center;
	color: var(--panam-ink);
	text-decoration: none;
	border: 1px solid var(--panam-border);
	border-radius: var(--panam-header-radius, var(--panam-radius));
}

.cart-count {
	position: absolute;
	top: -7px;
	right: -7px;
	display: grid;
	min-width: 20px;
	height: 20px;
	padding-inline: 5px;
	place-items: center;
	color: var(--panam-on-accent);
	background: var(--panam-accent);
	border-radius: 999px;
	font-size: 0.72rem;
	font-weight: 800;
}

.site-main {
	padding-block: clamp(32px, 5vw, 72px);
}

.home.site-main {
	padding-block: 0;
}

.home-hero {
	padding-block: clamp(44px, 8vw, 104px);
	background: var(--panam-surface);
}

.hero-grid {
	display: grid;
	grid-template-columns: minmax(0, 0.95fr) minmax(280px, 1.05fr);
	gap: clamp(28px, 5vw, 72px);
	align-items: center;
}

.hero-copy {
	max-width: 640px;
}

.eyebrow {
	margin: 0 0 10px;
	color: var(--panam-accent);
	font-size: 0.85rem;
	font-weight: 800;
	letter-spacing: 0;
	text-transform: uppercase;
}

.home-hero h1 {
	max-width: 780px;
	margin: 0;
	font-size: clamp(2.25rem, 6vw, 4.8rem);
	line-height: 1.02;
	letter-spacing: 0;
}

.home-hero p:not(.eyebrow) {
	max-width: 620px;
	margin: 18px 0 0;
	color: var(--panam-muted);
	font-size: 1.08rem;
}

.hero-media {
	overflow: hidden;
	background: var(--panam-bg);
	border-radius: var(--panam-radius);
	box-shadow: var(--panam-shadow);
	aspect-ratio: 4 / 3;
}

.hero-media img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.hero-actions {
	display: flex;
	flex-wrap: wrap;
	gap: 12px;
	margin-top: 28px;
}

.home-attention {
	padding-block: clamp(28px, 5vw, 58px);
	background:
		linear-gradient(135deg, color-mix(in srgb, var(--panam-accent), var(--panam-bg) 88%), var(--panam-bg) 58%),
		var(--panam-surface);
}

.home-attention .hero-grid {
	position: relative;
	grid-template-columns: minmax(0, 1fr) minmax(260px, 420px);
	gap: clamp(22px, 4vw, 48px);
	padding: clamp(18px, 3vw, 28px);
	overflow: hidden;
	background: var(--panam-bg);
	border: 1px solid color-mix(in srgb, var(--panam-accent), var(--panam-border) 55%);
	border-radius: var(--panam-radius);
	box-shadow: 0 20px 48px rgb(23 33 31 / 10%);
}

.home-attention .hero-grid::before {
	position: absolute;
	inset: 0 auto 0 0;
	width: 5px;
	content: "";
	background: var(--panam-accent);
}

.home-attention .hero-copy {
	padding: clamp(8px, 2vw, 18px);
}

.home-attention h2 {
	max-width: 680px;
	margin: 0;
	font-size: clamp(1.7rem, 3.2vw, 3.15rem);
	line-height: 1.08;
	letter-spacing: 0;
}

.home-attention p:not(.eyebrow) {
	max-width: 58ch;
	margin: 14px 0 0;
	color: var(--panam-muted);
	font-size: 1.03rem;
	line-height: 1.65;
}

.home-attention .hero-actions {
	margin-top: 22px;
}

.home-attention .button--ghost {
	background: var(--panam-bg);
}

.home-attention .hero-media {
	border: 1px solid var(--panam-border);
	box-shadow: none;
	height: min(28vw, 260px);
	aspect-ratio: auto;
}

.button,
.button.button--primary,
.woocommerce :where(a.button, button.button, input.button, #respond input#submit, a.checkout-button),
.wp-block-button__link {
	display: inline-flex;
	box-sizing: border-box;
	min-width: 0;
	min-height: var(--panam-btn-height);
	height: var(--panam-btn-height);
	align-items: center;
	justify-content: center;
	padding: 0 var(--panam-btn-padding-x);
	color: var(--panam-on-accent);
	background: var(--panam-accent);
	border: 1px solid var(--panam-accent);
	border-radius: var(--panam-btn-radius);
	font-weight: 800;
	text-transform: var(--panam-btn-text-transform);
	line-height: 1.2;
	text-align: center;
	text-decoration: none;
	cursor: pointer;
}

.woocommerce :where(a.button, button.button, input.button, #respond input#submit, a.checkout-button) {
	font-size: var(--panam-btn-font-size);
	font-weight: var(--panam-btn-font-weight);
	letter-spacing: var(--panam-btn-letter-spacing);
	white-space: nowrap;
}

.button:hover,
.button:focus-visible,
.button:active,
.button.button--primary:hover,
.button.button--primary:focus-visible,
.button.button--primary:active,
.woocommerce :where(a.button, button.button, input.button, #respond input#submit, a.checkout-button):hover,
.woocommerce :where(a.button, button.button, input.button, #respond input#submit, a.checkout-button):focus-visible,
.woocommerce :where(a.button, button.button, input.button, #respond input#submit, a.checkout-button):active,
.wp-block-button__link:hover,
.wp-block-button__link:focus-visible,
.wp-block-button__link:active {
	color: var(--panam-on-accent);
	background: var(--panam-ink);
	border-color: var(--panam-ink);
}

.button--ghost {
	color: var(--panam-ink);
	background: transparent;
	border-color: var(--panam-border);
}

.button--ghost:hover {
	color: var(--panam-on-accent);
}

.home-hero--catalog {
	text-align: center;
}

.home-hero--catalog .container {
	display: grid;
	justify-items: center;
}

.hero-search {
	width: min(720px, 100%);
	margin-top: 24px;
}

.home-hero--editorial {
	position: relative;
	min-height: clamp(520px, 78vh, 760px);
	display: grid;
	align-items: end;
	overflow: hidden;
	color: var(--panam-on-accent);
	background: var(--panam-ink);
}

.home-hero--editorial::before {
	position: absolute;
	inset: 0;
	content: "";
	background: linear-gradient(180deg, rgb(0 0 0 / 16%), rgb(0 0 0 / 68%));
}

.home-hero--editorial .hero-bg {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.hero-overlay {
	position: relative;
	z-index: 1;
	padding-bottom: 48px;
}

.home-hero--editorial p:not(.eyebrow) {
	color: rgb(255 255 255 / 86%);
}

.benefit-strip {
	border-block: 1px solid var(--panam-border);
}

.benefits {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 1px;
}

.benefit {
	display: flex;
	gap: 10px;
	align-items: center;
	justify-content: center;
	min-height: 64px;
	color: var(--panam-ink);
	font-weight: 750;
}

.benefit svg {
	color: var(--panam-accent);
}

.home-section {
	padding-block: clamp(42px, 7vw, 84px);
}

.home-section + .home-section {
	border-top: 1px solid var(--panam-border);
}

.home-products {
	background: var(--panam-bg);
}

.home-products .container {
	display: grid;
	gap: 6px;
}

.section-heading {
	display: flex;
	gap: 20px;
	align-items: end;
	justify-content: space-between;
	margin-bottom: 24px;
}

.section-heading h2,
.page-header h1,
.entry--single .entry-title,
.entry-header .entry-title {
	margin: 0;
	font-size: clamp(1.7rem, 3vw, 2.65rem);
	line-height: 1.15;
	letter-spacing: 0;
}

.section-heading p {
	margin: 6px 0 0;
	color: var(--panam-muted);
}

.text-link {
	display: inline-flex;
	gap: 8px;
	align-items: center;
	color: var(--panam-accent);
	font-weight: 800;
	text-decoration: none;
	white-space: nowrap;
}

.category-grid {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 16px;
}

.category-card {
	display: grid;
	gap: 10px;
	padding: 12px;
	color: var(--panam-ink);
	text-decoration: none;
	border: 1px solid var(--panam-border);
	border-radius: var(--panam-radius);
}

.category-media {
	display: block;
	overflow: hidden;
	background: var(--panam-surface);
	border-radius: calc(var(--panam-radius) - 2px);
	aspect-ratio: 4 / 3;
}

.category-media img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.category-title {
	font-size: 1.05rem;
	font-weight: 800;
	line-height: 1.25;
}

.category-count {
	color: var(--panam-muted);
	font-size: 0.9rem;
}

.native-home-content {
	padding-block: 0;
}

.native-welcome {
	--native-welcome-minh: clamp(430px, 62vw, 680px);
	--native-welcome-minh-m: 420px;
	position: relative;
	overflow: hidden;
	color: var(--panam-on-accent);
	background: var(--panam-ink);
}

/* Banner height (Slider settings > Banner height). */
.native-welcome--h-short {
	--native-welcome-minh: clamp(320px, 44vw, 480px);
	--native-welcome-minh-m: 320px;
}

.native-welcome--h-tall {
	--native-welcome-minh: clamp(520px, 78vw, 820px);
	--native-welcome-minh-m: 560px;
}

/* Slider width (Homepage settings). By default the hero is full-bleed; this
   constrains it to a max of 1440px (a touch wider than the 1180px content
   container) so a "contain" image doesn't leave dark bands at the screen edges. */
.native-welcome--contained {
	width: min(calc(100% - 32px), 1440px);
	margin-inline: auto;
}

/* Slides stack in one grid cell, so the hero sizes to the tallest slide and we
   can crossfade between them. A single slide renders exactly like before. */
.native-welcome__slides {
	display: grid;
}

.native-welcome__slide {
	grid-area: 1 / 1;
	position: relative;
	display: grid;
	min-height: var(--native-welcome-minh, clamp(430px, 62vw, 680px));
	background: var(--native-welcome-bg, var(--panam-ink));
}

.native-welcome__slide::before {
	position: absolute;
	inset: 0;
	content: "";
	background: var(--native-welcome-image) center / cover no-repeat;
	transform: scale(1.01);
}

/* Image fit (Homepage settings, per-slide). "Contain" shows the whole image
   without cropping; drop the 1% edge-bleed scale so nothing is clipped, and the
   surrounding space falls back to the .native-welcome dark background. */
.native-welcome--contain::before {
	background-size: contain;
	transform: none;
}

/* Darkening overlay — paints above the image but below the copy (which has
   z-index:1). Per-slide toggle (Theme settings > Design > Homepage);
   .native-welcome--no-overlay hides it for slides whose image already carries
   its own text. */
.native-welcome__slide::after {
	position: absolute;
	inset: 0;
	content: "";
	background: linear-gradient(90deg, rgb(0 0 0 / calc(var(--native-welcome-overlay, 0.72) * 100%)), rgb(0 0 0 / calc(var(--native-welcome-overlay, 0.72) * 47%)) 48%, rgb(0 0 0 / calc(var(--native-welcome-overlay, 0.72) * 17%)));
	pointer-events: none;
}

.native-welcome--no-overlay::after {
	display: none;
}

/* Crossfade only when there is more than one slide; a single slide stays visible
   with no JS. */
.native-welcome--has-slides .native-welcome__slide {
	opacity: 0;
	pointer-events: none;
	transition: opacity var(--native-welcome-speed, 700ms) ease, transform var(--native-welcome-speed, 700ms) ease;
}

.native-welcome--has-slides .native-welcome__slide.is-active {
	opacity: 1;
	pointer-events: auto;
}

/* Slide transition (Slider settings > Transition). The incoming slide eases in
   from the side based on the navigation direction; fade mode uses opacity only. */
.native-welcome--tr-slide .native-welcome__slide:not(.is-active) {
	transform: translateX(40px);
}

.native-welcome--tr-slide[data-hero-dir="prev"] .native-welcome__slide:not(.is-active) {
	transform: translateX(-40px);
}

.native-welcome--tr-slide .native-welcome__slide.is-active {
	transform: translateX(0);
}

@media (prefers-reduced-motion: reduce) {
	.native-welcome--has-slides .native-welcome__slide {
		transition: none;
	}
}

.native-welcome__inner {
	position: relative;
	z-index: 1;
	display: grid;
	align-items: center;
}

.native-welcome__copy {
	display: grid;
	gap: 14px;
	max-width: 620px;
	padding-block: clamp(70px, 9vw, 130px);
}

.native-welcome__copy h2 {
	margin: 0;
	font-size: clamp(2.9rem, 8vw, var(--hero-title-max, 6.8rem));
	line-height: 0.92;
	letter-spacing: 0;
}

.native-welcome__copy p:not(.eyebrow) {
	margin: 0 0 10px;
	color: rgb(255 255 255 / 86%);
	font-size: clamp(1.3rem, 3vw, var(--hero-subtitle-max, 2.1rem));
	font-weight: 850;
}

.native-welcome__copy .eyebrow {
	font-size: var(--hero-eyebrow-max, 0.85rem);
}

.native-welcome__copy .button {
	width: fit-content;
	min-width: 180px;
}

/* Hero text placement — Theme settings > Design > Homepage > Text placement.
   Left is the default; center/right reposition the copy and mirror the gradient
   so the text keeps its dark backing for contrast. */
.native-welcome--center .native-welcome__inner {
	justify-items: center;
}

.native-welcome--center .native-welcome__copy {
	justify-items: center;
	text-align: center;
}

.native-welcome--center::after {
	background: linear-gradient(180deg, rgb(0 0 0 / calc(var(--native-welcome-overlay, 0.72) * 67%)), rgb(0 0 0 / calc(var(--native-welcome-overlay, 0.72) * 86%)));
}

.native-welcome--right .native-welcome__inner {
	justify-items: end;
}

.native-welcome--right .native-welcome__copy {
	justify-items: end;
	text-align: right;
}

.native-welcome--right::after {
	background: linear-gradient(270deg, rgb(0 0 0 / calc(var(--native-welcome-overlay, 0.72) * 100%)), rgb(0 0 0 / calc(var(--native-welcome-overlay, 0.72) * 47%)) 48%, rgb(0 0 0 / calc(var(--native-welcome-overlay, 0.72) * 17%)));
}

/* Slider controls (only rendered when there is more than one slide). */
.native-welcome__arrow {
	position: absolute;
	top: 50%;
	z-index: 2;
	display: grid;
	place-items: center;
	width: 44px;
	height: 44px;
	margin: 0;
	padding: 0;
	color: #fff;
	background: rgb(0 0 0 / 35%);
	border: 0;
	cursor: pointer;
	transform: translateY(-50%);
	transition: background 160ms ease;
}

.native-welcome__arrow:hover,
.native-welcome__arrow:focus-visible {
	background: rgb(0 0 0 / 62%);
}

.native-welcome__arrow svg {
	width: 24px;
	height: 24px;
	fill: none;
	stroke: currentColor;
	stroke-width: 2;
}

.native-welcome__arrow--prev {
	left: 14px;
}

.native-welcome__arrow--prev svg {
	transform: rotate(180deg);
}

.native-welcome__arrow--next {
	right: 14px;
}

.native-welcome__dots {
	position: absolute;
	bottom: 16px;
	left: 50%;
	z-index: 2;
	display: flex;
	gap: 8px;
	transform: translateX(-50%);
}

.native-welcome__dot {
	width: 22px;
	height: 4px;
	padding: 0;
	background: rgb(255 255 255 / 45%);
	border: 0;
	cursor: pointer;
	transition: background 160ms ease;
}

.native-welcome__dot:hover {
	background: rgb(255 255 255 / 75%);
}

.native-welcome__dot.is-active {
	background: #fff;
}

/* Whole-slide link (Slider: a slide with a link but no button label). The copy
   ignores pointer events so a click anywhere on the slide follows the link; the
   arrows / dots sit above it (z-index 2) and stay clickable. */
.native-welcome__link {
	position: absolute;
	inset: 0;
	z-index: 1;
}

.native-welcome--clickable {
	cursor: pointer;
}

.native-welcome--clickable .native-welcome__inner {
	pointer-events: none;
}

/* Button pinned to an edge / corner (Slider settings > Button placement). */
.native-welcome__floatbtn {
	position: absolute;
	z-index: 2;
	width: fit-content;
	min-width: 160px;
}

.native-welcome--btn-top-left .native-welcome__floatbtn {
	top: clamp(16px, 4vw, 48px);
	left: clamp(16px, 4vw, 48px);
}

.native-welcome--btn-top-center .native-welcome__floatbtn {
	top: clamp(16px, 4vw, 48px);
	left: 50%;
	transform: translateX(-50%);
}

.native-welcome--btn-top-right .native-welcome__floatbtn {
	top: clamp(16px, 4vw, 48px);
	right: clamp(16px, 4vw, 48px);
}

.native-welcome--btn-mid-left .native-welcome__floatbtn {
	top: 50%;
	left: clamp(16px, 4vw, 48px);
	transform: translateY(-50%);
}

.native-welcome--btn-mid-center .native-welcome__floatbtn {
	top: 50%;
	left: 50%;
	transform: translate(-50%, -50%);
}

.native-welcome--btn-mid-right .native-welcome__floatbtn {
	top: 50%;
	right: clamp(16px, 4vw, 48px);
	transform: translateY(-50%);
}

.native-welcome--btn-bottom-left .native-welcome__floatbtn {
	bottom: clamp(16px, 4vw, 48px);
	left: clamp(16px, 4vw, 48px);
}

.native-welcome--btn-bottom-center .native-welcome__floatbtn {
	bottom: clamp(16px, 4vw, 48px);
	left: 50%;
	transform: translateX(-50%);
}

.native-welcome--btn-bottom-right .native-welcome__floatbtn {
	bottom: clamp(16px, 4vw, 48px);
	right: clamp(16px, 4vw, 48px);
}

.native-category-nav {
	display: flex;
	flex-wrap: wrap;
	gap: 10px 12px;
	justify-content: center;
	padding-block: clamp(20px, 3vw, 30px);
}

.native-category-nav a {
	display: inline-flex;
	align-items: center;
	gap: 9px;
	min-height: 48px;
	padding: 9px 22px 9px 12px;
	color: var(--panam-ink);
	background: var(--panam-bg);
	border: 1px solid var(--panam-border);
	border-radius: 0;
	font-size: 0.95rem;
	font-weight: 800;
	text-decoration: none;
	transition: transform 200ms ease, color 200ms ease, background-color 200ms ease, border-color 200ms ease, box-shadow 200ms ease;
}

.native-category-nav__icon {
	display: inline-grid;
	flex: 0 0 auto;
	place-items: center;
	width: 30px;
	height: 30px;
	color: var(--panam-accent);
	background: color-mix(in srgb, var(--panam-accent) 12%, transparent);
	border-radius: 0;
	transition: color 200ms ease, background-color 200ms ease;
}

.native-category-nav__icon svg {
	width: 17px;
	height: 17px;
}

.native-category-nav a:hover,
.native-category-nav a:focus-visible {
	color: var(--panam-on-accent);
	background: var(--panam-accent);
	border-color: var(--panam-accent);
	transform: translateY(-2px);
	box-shadow: 0 12px 26px color-mix(in srgb, var(--panam-accent) 32%, transparent);
}

.native-category-nav a:hover .native-category-nav__icon,
.native-category-nav a:focus-visible .native-category-nav__icon {
	color: var(--panam-on-accent);
	background: rgb(255 255 255 / 22%);
}

.native-home-block {
	padding-block: clamp(42px, 7vw, 84px);
	border-top: 1px solid var(--panam-border);
}

.native-product-row:nth-of-type(odd),
.native-blog {
	background: var(--panam-bg);
}

.native-card-grid {
	display: grid;
	grid-template-columns: repeat(6, minmax(0, 1fr));
	gap: 18px;
}

.native-feature-card {
	position: relative;
	display: grid;
	grid-column: span 2;
	min-height: 360px;
	overflow: hidden;
	color: var(--panam-on-accent);
	background: var(--panam-ink);
	border-radius: var(--panam-radius);
	text-decoration: none;
	isolation: isolate;
}

.native-feature-card:nth-child(-n + 2) {
	grid-column: span 3;
}

.native-feature-card__media,
.native-feature-card__media::after {
	position: absolute;
	inset: 0;
}

.native-feature-card__media::after {
	content: "";
	background: linear-gradient(180deg, rgb(0 0 0 / 8%), rgb(0 0 0 / 72%));
}

.native-feature-card__media img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform 260ms ease;
}

.native-feature-card:hover .native-feature-card__media img {
	transform: scale(1.04);
}

.native-feature-card__body {
	position: relative;
	z-index: 1;
	display: grid;
	gap: 10px;
	align-content: end;
	padding: 24px;
}

.native-feature-card__title {
	font-size: clamp(1.35rem, 2.2vw, 2rem);
	font-weight: 900;
	line-height: 1.1;
}

.native-feature-card__text {
	max-width: 38ch;
	color: rgb(255 255 255 / 86%);
	font-weight: 650;
	line-height: 1.45;
}

.native-feature-card__link {
	display: inline-flex;
	gap: 8px;
	align-items: center;
	width: fit-content;
	margin-top: 4px;
	font-weight: 900;
}

.native-blog-grid,
.native-review-grid {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 18px;
	align-items: stretch;
}

.native-blog-card,
.native-review-card {
	display: grid;
	overflow: hidden;
	color: var(--panam-ink);
	background: var(--panam-bg);
	border: 1px solid var(--panam-border);
	border-radius: var(--panam-radius);
	text-decoration: none;
}

.native-review-card {
	grid-template-rows: auto minmax(0, 1fr) auto auto;
	height: 100%;
	min-height: 100%;
}

.native-blog-card__media {
	display: block;
	background: var(--panam-surface);
	aspect-ratio: 16 / 10;
}

.native-blog-card__media img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.native-blog-card__body,
.native-review-card {
	gap: 8px;
	padding: 18px;
}

.native-review-card[hidden],
.native-review-card.is-hidden {
	display: none;
}

.native-blog-card__date,
.native-review-card span {
	color: var(--panam-muted);
	font-size: 0.85rem;
	font-weight: 750;
}

.native-review-card__photo {
	margin: -18px -18px 10px;
	background: var(--panam-surface);
}

.native-review-card__photo img {
	display: block;
	width: 100%;
	aspect-ratio: 1;
	object-fit: cover;
}

.native-review-card__photos {
	margin-top: 4px;
}

.panam-review-photo-grid {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 58px));
	gap: 8px;
	align-items: center;
}

.panam-review-photo-button {
	display: block;
	width: 100%;
	padding: 0;
	overflow: hidden;
	color: inherit;
	background: var(--panam-surface);
	border: 1px solid var(--panam-border);
	border-radius: 0;
	cursor: zoom-in;
	aspect-ratio: 1;
}

.panam-review-photo-button img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform 180ms ease;
}

.panam-review-photo-button:hover img,
.panam-review-photo-button:focus-visible img {
	transform: scale(1.05);
}

.panam-review-photo-button:focus-visible {
	outline: 2px solid var(--panam-primary);
	outline-offset: 2px;
}

.native-blog-card__title {
	font-size: 1.1rem;
	font-weight: 850;
	line-height: 1.25;
}

.native-review-card p {
	margin: 0;
	color: var(--panam-muted);
	line-height: 1.55;
}

/* Customer reviews — compact tile wall (5–6 small windows per row) */
.native-review-wall {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(190px, 1fr));
	gap: 12px;
}

.native-review-tile {
	display: flex;
	flex-direction: column;
	gap: 9px;
	padding: 16px;
	color: var(--panam-ink);
	background: var(--panam-bg);
	border: 1px solid var(--panam-border);
	transition: border-color 180ms ease, box-shadow 180ms ease, transform 180ms ease;
}

.native-review-tile.is-hidden,
.native-review-tile[hidden] {
	display: none;
}

.native-review-tile:hover {
	border-color: color-mix(in srgb, var(--panam-accent), var(--panam-border) 45%);
	box-shadow: 0 10px 24px rgb(23 33 31 / 7%);
	transform: translateY(-2px);
}

.native-review-tile__stars {
	color: var(--panam-accent);
	font-size: 0.95rem;
	line-height: 1;
	letter-spacing: 2px;
}

.native-review-tile__stars-empty {
	color: var(--panam-border);
}

.native-review-tile__text {
	display: -webkit-box;
	overflow: hidden;
	margin: 0;
	font-size: 0.875rem;
	line-height: 1.5;
	overflow-wrap: anywhere;
	-webkit-box-orient: vertical;
	-webkit-line-clamp: 5;
}

.native-review-tile__photos.panam-review-photo-grid {
	grid-template-columns: repeat(3, minmax(0, 46px));
	gap: 6px;
	margin-top: 2px;
}

.native-review-tile__author {
	margin-top: auto;
	padding-top: 2px;
	color: var(--panam-muted);
	font-size: 0.8rem;
	font-weight: 750;
}

/* Final "load more" tile — a button styled as a card so it reads as an obvious
   "there are more reviews, tap to see them" affordance, not just a plain button. */
.native-review-tile--more {
	align-items: center;
	justify-content: center;
	gap: 6px;
	width: 100%;
	text-align: center;
	cursor: pointer;
	appearance: none;
	font-family: inherit;
	color: var(--panam-accent);
	background: color-mix(in srgb, var(--panam-accent) 7%, var(--panam-bg));
	border: 1px dashed color-mix(in srgb, var(--panam-accent), var(--panam-border) 40%);
}

.native-review-tile--more:hover,
.native-review-tile--more:focus-visible {
	border-color: var(--panam-accent);
	background: color-mix(in srgb, var(--panam-accent) 14%, var(--panam-bg));
	box-shadow: 0 10px 24px rgb(23 33 31 / 7%);
	transform: translateY(-2px);
	outline: none;
}

.native-review-tile__more-num {
	font-size: 1.9rem;
	font-weight: 850;
	line-height: 1;
}

.native-review-tile__more-label {
	font-size: 0.9rem;
	font-weight: 800;
}

.native-review-tile__more-hint {
	color: var(--panam-muted);
	font-size: 0.78rem;
	font-weight: 650;
}

/* "Read full" — revealed by JS only when the quote is clamped; opens a modal. */
.native-review-tile__readmore {
	align-self: flex-start;
	margin-top: -2px;
	padding: 0;
	color: var(--panam-accent);
	background: none;
	border: 0;
	font: inherit;
	font-size: 0.78rem;
	font-weight: 800;
	cursor: pointer;
}

.native-review-tile__readmore[hidden] {
	display: none;
}

.native-review-tile__readmore:hover,
.native-review-tile__readmore:focus-visible {
	text-decoration: underline;
}

/* Full-review modal */
.panam-review-modal {
	position: fixed;
	inset: 0;
	z-index: 9999;
	display: none;
	align-items: center;
	justify-content: center;
	padding: 20px;
}

.panam-review-modal.is-open {
	display: flex;
}

.panam-review-modal__overlay {
	position: absolute;
	inset: 0;
	background: rgb(10 18 16 / 62%);
}

.panam-review-modal__dialog {
	position: relative;
	z-index: 1;
	width: min(560px, 100%);
	max-height: min(82vh, 640px);
	overflow-y: auto;
	padding: clamp(22px, 4vw, 34px);
	background: var(--panam-bg);
	border: 1px solid var(--panam-border);
	border-radius: var(--panam-radius-card, var(--panam-radius));
	box-shadow: 0 30px 70px rgb(10 18 16 / 28%);
}

.panam-review-modal__close {
	position: absolute;
	top: 10px;
	right: 10px;
	display: grid;
	width: 36px;
	height: 36px;
	place-items: center;
	color: var(--panam-muted);
	background: none;
	border: 0;
	font-size: 1.4rem;
	line-height: 1;
	cursor: pointer;
}

.panam-review-modal__close:hover {
	color: var(--panam-ink);
}

.panam-review-modal .native-review-tile {
	gap: 12px;
	padding: 0;
	background: none;
	border: 0;
	transform: none;
	box-shadow: none;
}

.panam-review-modal .native-review-tile__text {
	display: block;
	overflow: visible;
	font-size: 0.98rem;
	white-space: pre-line;
	-webkit-line-clamp: unset;
}

.panam-review-modal .native-review-tile__stars {
	font-size: 1.05rem;
}

.panam-review-modal .native-review-tile__photos.panam-review-photo-grid {
	grid-template-columns: repeat(3, minmax(0, 84px));
}

/* Customer reviews: two per row on phones (instead of one). */
@media (max-width: 600px) {
	.native-review-wall {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: 10px;
	}

	.native-review-tile {
		padding: 12px;
	}
}

/* ============================================================
   Blog — modern editorial revamp
   ============================================================ */

/* Reusable compact post card (homepage recent list + related posts) */
.panam-post-card {
	display: grid;
	grid-template-columns: 96px minmax(0, 1fr);
	gap: 14px;
	align-items: center;
	padding: 10px;
	color: var(--panam-ink);
	background: var(--panam-bg);
	border: 1px solid var(--panam-border);
	text-decoration: none;
	transition: border-color 180ms ease, transform 180ms ease, box-shadow 180ms ease;
}

.panam-post-card:hover,
.panam-post-card:focus-visible {
	border-color: color-mix(in srgb, var(--panam-accent), var(--panam-border) 40%);
	transform: translateY(-2px);
	box-shadow: 0 10px 26px rgb(23 33 31 / 8%);
}

.panam-post-card__media {
	display: block;
	overflow: hidden;
	background: var(--panam-surface);
	aspect-ratio: 1;
}

.panam-post-card__media img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform 280ms ease;
}

.panam-post-card:hover .panam-post-card__media img {
	transform: scale(1.05);
}

.panam-post-card__body {
	display: flex;
	flex-direction: column;
	gap: 5px;
	min-width: 0;
}

.panam-post-card__category {
	color: var(--panam-accent);
	font-size: 0.7rem;
	font-weight: 800;
	letter-spacing: 0.05em;
	text-transform: uppercase;
}

.panam-post-card__title {
	display: -webkit-box;
	overflow: hidden;
	font-size: 0.98rem;
	font-weight: 800;
	line-height: 1.3;
	-webkit-box-orient: vertical;
	-webkit-line-clamp: 2;
}

.panam-post-card__meta {
	display: flex;
	flex-wrap: wrap;
	gap: 6px;
	align-items: center;
	color: var(--panam-muted);
	font-size: 0.8rem;
	font-weight: 650;
}

.panam-post-card__dot,
.entry-card__dot {
	color: var(--panam-border);
}

/* Related posts variant — vertical card, three across */
.panam-post-card--related {
	grid-template-columns: none;
	grid-template-rows: auto auto;
	padding: 0;
	overflow: hidden;
}

.panam-post-card--related .panam-post-card__media {
	aspect-ratio: 4 / 3;
}

.panam-post-card--related .panam-post-card__body {
	gap: 6px;
	padding: 14px 16px 16px;
}

/* Homepage editorial layout: featured + recent list */
.native-blog__layout {
	display: grid;
	grid-template-columns: minmax(0, 1.35fr) minmax(0, 1fr);
	gap: clamp(16px, 2.5vw, 28px);
	align-items: start;
}

.native-blog__list {
	display: grid;
	gap: 12px;
	align-content: start;
}

/* Featured cards — homepage and archive share the visual treatment */
.native-blog-featured,
.panam-blog-featured__link {
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
	align-items: stretch;
	overflow: hidden;
	color: var(--panam-ink);
	background: var(--panam-bg);
	border: 1px solid var(--panam-border);
	text-decoration: none;
	transition: border-color 180ms ease, box-shadow 180ms ease;
}

.native-blog-featured:hover,
.native-blog-featured:focus-visible,
.panam-blog-featured__link:hover,
.panam-blog-featured__link:focus-visible {
	border-color: color-mix(in srgb, var(--panam-accent), var(--panam-border) 40%);
	box-shadow: 0 16px 40px rgb(23 33 31 / 10%);
}

.native-blog-featured__media,
.panam-blog-featured__media {
	position: relative;
	overflow: hidden;
	min-height: 240px;
	background: var(--panam-surface);
}

.native-blog-featured__media img,
.panam-blog-featured__media img {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform 360ms ease;
}

.native-blog-featured:hover .native-blog-featured__media img,
.panam-blog-featured__link:hover .panam-blog-featured__media img {
	transform: scale(1.04);
}

.native-blog-featured__body,
.panam-blog-featured__body {
	display: flex;
	flex-direction: column;
	gap: 10px;
	justify-content: center;
	padding: clamp(20px, 3vw, 32px);
}

.native-blog-featured__category,
.panam-blog-featured__category {
	color: var(--panam-accent);
	font-size: 0.75rem;
	font-weight: 800;
	letter-spacing: 0.05em;
	text-transform: uppercase;
}

.panam-blog-featured__flag {
	width: fit-content;
	padding: 4px 10px;
	color: var(--panam-on-accent);
	background: var(--panam-accent);
	font-size: 0.68rem;
	font-weight: 850;
	letter-spacing: 0.08em;
	text-transform: uppercase;
}

.native-blog-featured__title,
.panam-blog-featured__title {
	font-size: clamp(1.3rem, 2.4vw, 1.9rem);
	font-weight: 850;
	line-height: 1.18;
}

.native-blog-featured__excerpt,
.panam-blog-featured__excerpt {
	display: -webkit-box;
	overflow: hidden;
	color: var(--panam-muted);
	font-size: 1rem;
	line-height: 1.55;
	-webkit-box-orient: vertical;
	-webkit-line-clamp: 2;
}

.native-blog-featured__meta,
.panam-blog-featured__meta {
	display: flex;
	flex-wrap: wrap;
	gap: 7px;
	align-items: center;
	color: var(--panam-muted);
	font-size: 0.85rem;
	font-weight: 700;
}

.native-blog-featured__cta,
.panam-blog-featured__cta {
	display: inline-flex;
	gap: 8px;
	align-items: center;
	margin-top: 2px;
	color: var(--panam-ink);
	font-weight: 850;
}

.native-blog-featured__cta svg,
.panam-blog-featured__cta svg {
	transition: transform 180ms ease;
}

.native-blog-featured:hover .native-blog-featured__cta svg,
.panam-blog-featured__link:hover .panam-blog-featured__cta svg {
	transform: translateX(3px);
}

.panam-blog-featured {
	margin-bottom: clamp(22px, 3.5vw, 36px);
}

.panam-blog-featured__media--placeholder {
	background: var(--panam-surface);
}

/* Browse-by-topic pill nav */
.panam-blog-cats {
	margin-bottom: clamp(20px, 3vw, 30px);
}

.panam-blog-cats__list {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	padding: 0;
	margin: 0;
	list-style: none;
}

.panam-blog-cats__pill {
	display: inline-flex;
	align-items: center;
	min-height: 38px;
	padding: 6px 16px;
	color: var(--panam-ink);
	background: var(--panam-bg);
	border: 1px solid var(--panam-border);
	border-radius: 999px;
	font-size: 0.85rem;
	font-weight: 750;
	text-decoration: none;
	transition: color 150ms ease, background-color 150ms ease, border-color 150ms ease;
}

.panam-blog-cats__pill:hover,
.panam-blog-cats__pill:focus-visible {
	border-color: var(--panam-accent);
}

.panam-blog-cats__pill.is-current {
	color: var(--panam-on-accent);
	background: var(--panam-ink);
	border-color: var(--panam-ink);
}

/* Reading progress bar (single post) */
.panam-reading-progress {
	position: fixed;
	top: 0;
	left: 0;
	z-index: 1200;
	width: 100%;
	height: 3px;
	background: transparent;
	pointer-events: none;
}

.panam-reading-progress__bar {
	display: block;
	width: 0;
	height: 100%;
	background: var(--panam-accent);
	transition: width 80ms linear;
}

/* Single article — back link + related */
.panam-article__back {
	display: inline-flex;
	gap: 6px;
	align-items: center;
	margin-bottom: 16px;
	color: var(--panam-muted);
	font-size: 0.85rem;
	font-weight: 750;
	text-decoration: none;
}

.panam-article__back:hover,
.panam-article__back:focus-visible {
	color: var(--panam-accent);
}

.panam-related {
	margin-top: clamp(36px, 5vw, 56px);
	padding-top: clamp(28px, 4vw, 40px);
	border-top: 1px solid var(--panam-border);
}

.panam-related__title {
	margin: 0 0 20px;
	font-size: clamp(1.25rem, 2vw, 1.6rem);
	font-weight: 850;
}

.panam-related__grid {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 16px;
}

@media (max-width: 880px) {
	.native-blog__layout,
	.native-blog-featured,
	.panam-blog-featured__link {
		grid-template-columns: 1fr;
	}

	.native-blog-featured__media,
	.panam-blog-featured__media {
		min-height: 0;
		aspect-ratio: 16 / 9;
	}

	.panam-related__grid {
		grid-template-columns: 1fr;
		gap: 12px;
	}

	.panam-post-card--related {
		grid-template-columns: 110px minmax(0, 1fr);
		grid-template-rows: none;
	}

	.panam-post-card--related .panam-post-card__media {
		aspect-ratio: 1;
	}

	.panam-post-card--related .panam-post-card__body {
		padding: 12px 14px 12px 0;
	}
}

@media (max-width: 560px) {
	.panam-post-card {
		grid-template-columns: 84px minmax(0, 1fr);
	}
}

.native-review-shortcode {
	overflow: hidden;
}

.content-layout,
.shop-layout {
	display: grid;
	grid-template-columns: minmax(0, 1fr);
	gap: 32px;
}

.content-layout:has(.page-sidebar) {
	grid-template-columns: minmax(0, 1fr) 300px;
}

.shop-layout--left {
	grid-template-columns: 280px minmax(0, 1fr);
}

.shop-layout--left .shop-sidebar {
	grid-column: 1;
	grid-row: 1;
}

.shop-layout--left .shop-content {
	grid-column: 2;
}

.shop-layout--right {
	grid-template-columns: minmax(0, 1fr) 280px;
}

.shop-layout--none {
	display: block;
}

/* Collection / shop archives — Shopify-style */
.panam-shop-archive .site-main--shop {
	padding-top: clamp(20px, 3vw, 36px);
}

.panam-shop-archive .shop-content {
	min-width: 0;
}

/* Shop by bird — species plates at the top of the shop page (max 8 per row,
   dropping to 4 when there isn't enough room). */
.shop-by-bird {
	margin-bottom: clamp(24px, 4vw, 44px);
}

.shop-by-bird__grid {
	display: grid;
	grid-template-columns: repeat(8, minmax(0, 1fr));
	gap: clamp(10px, 1.4vw, 18px);
	margin: 0;
	padding: 0;
	list-style: none;
}

.shop-by-bird__item {
	margin: 0;
}

.shop-by-bird__plate {
	display: grid;
	gap: 8px;
	color: var(--panam-ink);
	text-align: center;
	text-decoration: none;
}

.shop-by-bird__media {
	display: block;
	overflow: hidden;
	aspect-ratio: 1 / 1;
	background: var(--panam-surface);
	border: 1px solid var(--panam-border);
	border-radius: var(--panam-radius);
}

.shop-by-bird__media img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform 0.3s ease;
}

.shop-by-bird__plate:hover .shop-by-bird__media {
	border-color: var(--panam-accent);
}

.shop-by-bird__plate:hover .shop-by-bird__media img {
	transform: scale(1.05);
}

.shop-by-bird__name {
	font-size: 0.9rem;
	font-weight: 800;
	line-height: 1.2;
}

@media (max-width: 1000px) {
	.shop-by-bird__grid {
		grid-template-columns: repeat(4, minmax(0, 1fr));
	}
}

/* Homepage browse rows — "Shop by bird" (round photo thumbs) and "Shop by
   category" (contained product/category images). Uses the site design tokens. */
.native-browse__grid {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(120px, 1fr));
	gap: clamp(14px, 2vw, 26px);
	margin: 0;
	padding: 0;
	list-style: none;
}

.native-browse__item {
	margin: 0;
}

.native-browse__card {
	display: grid;
	gap: 12px;
	color: var(--panam-ink);
	text-align: center;
	text-decoration: none;
}

.native-browse__thumb {
	display: grid;
	place-items: center;
	overflow: hidden;
	aspect-ratio: 1 / 1;
	background: var(--panam-surface);
	border: 1px solid var(--panam-border);
	border-radius: var(--panam-radius);
	transition: border-color 200ms ease;
}

.native-browse__thumb--round {
	border-radius: 50%;
}

.native-browse__thumb img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform 0.3s ease;
}

/* Category images are product shots — show them whole rather than cropped. */
.native-browse--cats .native-browse__thumb img {
	object-fit: contain;
	padding: 14px;
}

.native-browse__card:hover .native-browse__thumb {
	border-color: var(--panam-accent);
}

.native-browse__card:hover .native-browse__thumb img {
	transform: scale(1.05);
}

.native-browse__name {
	font-size: 0.95rem;
	font-weight: 700;
	line-height: 1.25;
	overflow-wrap: anywhere;
}

@media (max-width: 640px) {
	.native-browse__grid {
		grid-template-columns: repeat(3, minmax(0, 1fr));
	}
}

.panam-collection,
.panam-collection__main {
	display: block;
}

.panam-collection .woocommerce-notices-wrapper {
	margin-bottom: 20px;
}

.panam-collection .woocommerce-notices-wrapper:empty {
	display: none;
	margin: 0;
}

.panam-collection .woocommerce-message,
.panam-collection .woocommerce-info,
.panam-collection .woocommerce-error {
	margin: 0 0 12px;
	padding: 14px 16px;
	border: 1px solid var(--panam-border);
	border-top: 2px solid var(--panam-accent);
	border-radius: 0;
}

.panam-collection__empty,
.panam-collection-empty {
	display: grid;
	gap: 14px;
	justify-items: start;
	padding: clamp(36px, 6vw, 72px) 0;
	text-align: left;
}

.panam-collection-empty__title {
	margin: 0;
	font-size: clamp(1.35rem, 2.5vw, 1.75rem);
	font-weight: 500;
	line-height: 1.25;
}

.panam-collection-empty__text {
	margin: 0;
	max-width: 42ch;
	color: var(--panam-muted);
	font-size: 0.9375rem;
	line-height: 1.6;
}

.panam-collection-header {
	margin-bottom: clamp(24px, 4vw, 40px);
}

.panam-collection-header--has-media {
	display: grid;
	grid-template-columns: clamp(190px, 21vw, 280px) minmax(0, 1fr);
	gap: clamp(20px, 3vw, 36px);
	align-items: center;
}

.panam-collection-header__media {
	overflow: hidden;
	background: var(--panam-surface);
	aspect-ratio: 1 / 1;
	border-radius: var(--panam-radius-image, var(--panam-radius));
}

.panam-collection-header__media img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.panam-collection-header__content {
	display: grid;
	gap: 10px;
	max-width: 760px;
}

.panam-collection-header .woocommerce-products-header__title,
.panam-collection-header .page-title {
	margin: 0;
	font-size: clamp(1.75rem, 3vw, 2.5rem);
	font-weight: 500;
	line-height: 1.2;
	letter-spacing: 0.01em;
}

.panam-collection-header__count {
	margin: 0;
	color: var(--panam-muted);
	font-size: 0.9375rem;
	font-weight: 500;
}

.panam-collection-header .term-description {
	margin: 0;
	color: var(--panam-muted);
	font-size: 0.9375rem;
	line-height: 1.65;
}

.panam-collection-header .term-description p:last-child {
	margin-bottom: 0;
}

.shop-toolbar {
	display: flex;
	flex-wrap: wrap;
	gap: 12px 20px;
	align-items: center;
	justify-content: space-between;
	margin-bottom: clamp(20px, 3vw, 28px);
	padding-bottom: 16px;
	border-bottom: 1px solid var(--panam-border);
}

.shop-toolbar .woocommerce-result-count,
.shop-toolbar .woocommerce-ordering {
	margin: 0;
}

.shop-toolbar .woocommerce-ordering {
	margin-left: auto;
}

.shop-toolbar .woocommerce-ordering select {
	min-width: 200px;
	min-height: var(--panam-btn-height);
	padding: 0 12px;
	border-radius: 0;
	font-size: 0.875rem;
}

/* Toolbar: result count left, Filters + Sort grouped on the right. */
.shop-toolbar .woocommerce-result-count {
	margin-right: auto;
}

.shop-toolbar .woocommerce-ordering {
	margin-left: 0;
}

/* Shop filters — steady dropdown (desktop) / left fly-in drawer (mobile).
   One shared vertical panel; only its positioning differs per breakpoint. */
.shop-filters {
	position: relative;
	margin-bottom: clamp(16px, 2.4vw, 22px);
}

.shop-filters__toggle {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	min-height: var(--panam-btn-height);
	padding: 0 16px;
	color: var(--panam-ink);
	background: var(--panam-bg);
	border: 1px solid var(--panam-border);
	font-size: 0.875rem;
	font-weight: 800;
	cursor: pointer;
}

.shop-filters__toggle:hover,
.shop-filters.is-open .shop-filters__toggle {
	border-color: var(--panam-accent);
}

.shop-filters__toggle-icon {
	width: 18px;
	height: 18px;
}

.shop-filters__badge {
	display: inline-grid;
	place-items: center;
	min-width: 20px;
	height: 20px;
	padding: 0 5px;
	color: var(--panam-on-accent);
	background: var(--panam-accent);
	border-radius: 999px;
	font-size: 0.72rem;
	font-weight: 800;
	line-height: 1;
}

.shop-filters__badge[hidden] {
	display: none;
}

.shop-filters__overlay {
	display: none;
}

/* The panel slides down in flow (grid-rows reveal). __inner clips it to a
   smooth 0 -> auto height; __bar is the visible, bordered horizontal bar. */
.panam-shop-filters {
	display: grid;
	grid-template-rows: 0fr;
	transition: grid-template-rows 0.3s ease;
}

.shop-filters.is-open .panam-shop-filters {
	grid-template-rows: 1fr;
}

.panam-shop-filters__inner {
	min-width: 0;
	min-height: 0;
	overflow: hidden;
	visibility: hidden;
	transition: visibility 0s linear 0.3s;
}

.shop-filters.is-open .panam-shop-filters__inner {
	visibility: visible;
	transition-delay: 0s;
}

.panam-shop-filters__bar {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 12px 22px;
	margin-top: 10px;
	padding: 14px 16px;
	background: var(--panam-bg);
	border: 1px solid var(--panam-border);
}

.panam-shop-filters__head {
	display: none;
}

.panam-shop-filters__groups {
	display: flex;
	flex: 1 1 auto;
	flex-wrap: wrap;
	align-items: center;
	gap: 12px 22px;
	min-width: 0;
}

.panam-filter-group {
	display: flex;
	align-items: center;
	gap: 10px;
	min-width: 0;
	margin: 0;
	padding: 0;
	border: 0;
}

.panam-filter-group__label {
	color: var(--panam-muted);
	font-size: 0.72rem;
	font-weight: 850;
	letter-spacing: 0.05em;
	text-transform: uppercase;
	white-space: nowrap;
}

.panam-filter-chips {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	width: 100%;
	min-width: 0;
}

.panam-chip {
	position: relative;
	display: inline-flex;
	max-width: 100%;
	cursor: pointer;
}

.panam-chip input {
	position: absolute;
	width: 1px;
	height: 1px;
	margin: 0;
	opacity: 0;
	pointer-events: none;
}

.panam-chip > span {
	display: inline-flex;
	align-items: center;
	max-width: 100%;
	min-height: 38px;
	padding: 6px 14px;
	color: var(--panam-ink);
	background: var(--panam-bg);
	border: 1px solid var(--panam-border);
	font-size: 0.85rem;
	font-weight: 700;
	line-height: 1.2;
	overflow-wrap: anywhere;
	transition: border-color 0.15s ease, background-color 0.15s ease, color 0.15s ease;
}

.panam-chip:hover > span {
	border-color: var(--panam-accent);
}

.panam-chip input:checked + span {
	color: var(--panam-on-accent);
	background: var(--panam-accent);
	border-color: var(--panam-accent);
}

.panam-chip input:focus-visible + span {
	outline: 2px solid var(--panam-accent);
	outline-offset: 2px;
}

.panam-filter-price {
	display: flex;
	align-items: center;
	gap: 8px;
	width: 100%;
	min-width: 0;
}

.panam-filter-price input {
	width: 90px;
	min-height: 38px;
	padding: 6px 10px;
	color: var(--panam-ink);
	background: var(--panam-bg);
	border: 1px solid var(--panam-border);
	border-radius: 0;
	font-size: 0.875rem;
}

.panam-filter-price input:focus-visible {
	outline: none;
	border-color: var(--panam-accent);
}

.panam-filter-price__sep {
	flex: 0 0 auto;
	color: var(--panam-muted);
}

.panam-shop-filters__foot {
	display: flex;
	align-items: center;
	gap: 16px;
	margin-left: auto;
}

.panam-shop-filters__clear {
	flex: 0 0 auto;
	color: var(--panam-muted);
	font-size: 0.8125rem;
	font-weight: 750;
	text-decoration: underline;
	text-underline-offset: 3px;
	white-space: nowrap;
}

.panam-shop-filters__clear:hover {
	color: var(--panam-accent);
}

.panam-shop-filters__apply {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	border-radius: 0;
}

.panam-shop-filters__close {
	display: none;
}

/* Mobile: the panel becomes a left fly-in drawer instead of the slide-down bar. */
@media (max-width: 768px) {
	.shop-filters__overlay {
		display: block;
		position: fixed;
		inset: 0;
		z-index: 1100;
		background: rgb(10 15 14 / 50%);
		opacity: 0;
		visibility: hidden;
		transition: opacity 0.28s ease, visibility 0.28s ease;
	}

	.shop-filters.is-open .shop-filters__overlay {
		opacity: 1;
		visibility: visible;
	}

	.panam-shop-filters {
		display: block;
		position: fixed;
		top: 0;
		left: 0;
		bottom: 0;
		z-index: 1101;
		width: min(360px, 88vw);
		max-width: 88vw;
		background: var(--panam-bg);
		overflow-x: hidden;
		overflow-y: auto;
		overscroll-behavior: contain;
		transform: translateX(-100%);
		transition: transform 0.3s ease;
		box-shadow: 0 0 60px rgb(10 15 14 / 26%);
	}

	.shop-filters.is-open .panam-shop-filters {
		transform: translateX(0);
	}

	/* Flatten the desktop slide-down wrappers into full-width passthroughs so the
	   head/groups/foot stack and scroll inside the drawer. Plain blocks (not
	   display:contents) so the horizontal base never leaks through and overflows
	   the drawer on engines that don't honour display:contents. */
	.panam-shop-filters__inner {
		display: block;
		width: 100%;
		min-width: 0;
		max-width: 100%;
		overflow: visible;
		visibility: visible;
	}

	.panam-shop-filters__bar {
		display: block;
		width: 100%;
		min-width: 0;
		max-width: 100%;
		margin: 0;
		padding: 0;
		border: 0;
		background: none;
	}

	.panam-shop-filters__head {
		display: flex;
		position: sticky;
		top: 0;
		z-index: 1;
		align-items: center;
		justify-content: space-between;
		gap: 12px;
		padding: 16px 18px;
		background: var(--panam-bg);
		border-bottom: 1px solid var(--panam-border);
	}

	.panam-shop-filters__head h2 {
		margin: 0;
		font-size: 1.05rem;
		font-weight: 850;
	}

	.panam-shop-filters__close {
		display: inline-flex;
		flex: 0 0 auto;
		align-items: center;
		justify-content: center;
		width: 40px;
		height: 40px;
		margin: -8px -8px -8px 0;
		color: var(--panam-ink);
		background: none;
		border: 0;
		cursor: pointer;
	}

	.panam-shop-filters__close svg {
		width: 22px;
		height: 22px;
	}

	.panam-shop-filters__groups {
		flex: 0 0 auto;
		flex-direction: column;
		flex-wrap: nowrap;
		align-items: stretch;
		gap: 0;
		width: 100%;
		max-width: 100%;
		min-width: 0;
	}

	.panam-filter-group {
		flex-direction: column;
		align-items: stretch;
		gap: 12px;
		width: 100%;
		max-width: 100%;
		min-width: 0;
		padding: 16px 18px;
		border-bottom: 1px solid var(--panam-border);
	}

	.panam-filter-group__label {
		font-size: 0.8125rem;
		text-align: left;
	}

	.panam-filter-chips {
		width: 100%;
		max-width: 100%;
		min-width: 0;
	}

	.panam-filter-price {
		display: grid;
		grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr);
		align-items: center;
		gap: 8px;
		width: 100%;
		max-width: 100%;
		min-width: 0;
	}

	.panam-filter-price input {
		width: 100%;
		min-width: 0;
	}

	.panam-shop-filters__foot {
		position: sticky;
		bottom: 0;
		gap: 12px;
		margin-left: 0;
		padding: 16px 18px;
		background: var(--panam-bg);
		border-top: 1px solid var(--panam-border);
	}

	.panam-shop-filters__apply {
		flex: 1 1 auto;
	}

	body.shop-filters-open {
		overflow: hidden;
	}
}

.collection-subcategories {
	margin-bottom: clamp(24px, 4vw, 36px);
}

.collection-subcategories__grid {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 16px;
	padding: 0;
	margin: 0;
	list-style: none;
}

.collection-subcategories__grid::before,
.collection-subcategories__grid::after {
	display: none;
}

.collection-subcategories__grid li.collection-subcategory {
	width: auto;
	margin: 0;
	padding: 0;
	float: none;
}

.collection-subcategories__grid .collection-subcategory__card {
	height: 100%;
}

.shop-sidebar {
	align-self: start;
	padding: 20px;
	background: var(--panam-bg);
	border: 1px solid var(--panam-border);
	border-radius: 0;
}

.shop-sidebar .widget {
	margin-bottom: 24px;
}

.shop-sidebar .widget:last-child {
	margin-bottom: 0;
}

.shop-sidebar .widget-title,
.shop-sidebar .wp-block-heading {
	margin: 0 0 12px;
	font-size: 0.8125rem;
	font-weight: 700;
	letter-spacing: 0.04em;
	text-transform: uppercase;
}

.shop-sidebar :where(ul, ol) {
	padding-left: 0;
	margin: 0;
	list-style: none;
}

.shop-sidebar :where(ul li, ol li) {
	margin-bottom: 8px;
}

.shop-sidebar :where(ul li a, ol li a) {
	color: var(--panam-ink);
	font-size: 0.9375rem;
	text-decoration: none;
}

.shop-sidebar :where(ul li a:hover, ol li a:focus-visible) {
	color: var(--panam-accent);
}

.shop-sidebar .wc-block-product-categories-list-item-count,
.shop-sidebar .count {
	color: var(--panam-muted);
}

/* Loading state: dim only the products while the AJAX swap is in flight, so the
   filter bar / drawer stays crisp and interactive. */
.shop-layout.is-filtering .panam-collection .products {
	opacity: 0.5;
	pointer-events: none;
	transition: opacity 0.15s ease;
}

.breadcrumbs {
	margin-bottom: 22px;
	color: var(--panam-muted);
	font-size: 0.9rem;
}

.entry-card:not(.entry-card--blog):not(.entry-card--product) {
	display: grid;
	grid-template-columns: 220px minmax(0, 1fr);
	gap: 20px;
	padding-block: 24px;
	border-bottom: 1px solid var(--panam-border);
}

.entry-media {
	overflow: hidden;
	border-radius: var(--panam-radius);
	aspect-ratio: 4 / 3;
}

.entry-media img,
.entry-featured img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.entry-title a {
	text-decoration: none;
}

.entry-meta {
	display: flex;
	gap: 12px;
	margin-top: 8px;
	color: var(--panam-muted);
	font-size: 0.9rem;
}

.entry-content > *:first-child {
	margin-top: 0;
}

.entry-content img {
	border-radius: var(--panam-radius);
}

.entry-featured {
	margin: 24px 0;
	overflow: hidden;
	border-radius: var(--panam-radius);
}

/* Blog / journal archive & single — Shopify-style */
.panam-blog-archive-page .site-main--blog,
.panam-blog-single-page .site-main--blog {
	padding-top: clamp(20px, 3vw, 36px);
	padding-bottom: clamp(36px, 6vw, 72px);
}

.panam-journal,
.panam-journal__main {
	display: block;
	min-width: 0;
}

.panam-journal-header,
.panam-blog-header {
	margin-bottom: clamp(24px, 4vw, 40px);
}

.panam-journal-header--has-media,
.panam-blog-header--has-media {
	display: grid;
	gap: clamp(20px, 3vw, 28px);
}

.panam-journal-header__media,
.panam-blog-header__media {
	overflow: hidden;
	background: var(--panam-surface);
	aspect-ratio: 21 / 9;
}

.panam-journal-header__media img,
.panam-blog-header__media img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.panam-journal-header__content,
.panam-blog-header__content {
	display: grid;
	gap: 10px;
	max-width: 760px;
}

.panam-journal-header .page-title,
.panam-blog-header .page-title {
	margin: 0;
	font-size: clamp(1.75rem, 3vw, 2.5rem);
	font-weight: 500;
	line-height: 1.2;
	letter-spacing: 0.01em;
}

.panam-journal-header__count,
.panam-blog-header__count {
	margin: 0;
	color: var(--panam-muted);
	font-size: 0.9375rem;
	font-weight: 500;
}

.panam-journal-header__description,
.panam-blog-header__description,
.panam-journal-header .archive-description,
.panam-blog-header .archive-description {
	max-width: 62ch;
	margin: 0;
	color: var(--panam-muted);
	font-size: 0.9375rem;
	line-height: 1.65;
}

.panam-journal-header__description p:last-child,
.panam-blog-header__description p:last-child,
.panam-journal-header .archive-description p:last-child,
.panam-blog-header .archive-description p:last-child {
	margin-bottom: 0;
}

.panam-journal-header__search {
	margin-top: 8px;
}

.panam-journal-header__search .search-form {
	display: flex;
	flex-wrap: wrap;
	gap: 10px;
	max-width: 480px;
}

.panam-journal-header__search .search-field {
	flex: 1 1 220px;
	min-height: 44px;
	padding: 10px 14px;
	border: 1px solid var(--panam-border);
}

.panam-journal-header__search .search-submit {
	min-height: 44px;
	padding: 10px 18px;
	color: var(--panam-on-accent);
	font-weight: 700;
	background: var(--panam-ink);
	border: 1px solid var(--panam-ink);
}

.panam-blog-grid {
	--panam-blog-gap: 18px;
	--panam-blog-columns: 3;
	display: flex;
	flex-wrap: wrap;
	gap: var(--panam-blog-gap);
	margin-bottom: clamp(28px, 4vw, 44px);
}

.panam-blog-grid .entry-card--blog {
	display: block;
	flex: 0 0
		calc(
			(100% - (var(--panam-blog-gap) * (var(--panam-blog-columns) - 1))) /
				var(--panam-blog-columns)
		);
	max-width: calc(
		(100% - (var(--panam-blog-gap) * (var(--panam-blog-columns) - 1))) /
			var(--panam-blog-columns)
	);
	grid-template-columns: none;
	gap: 0;
	margin: 0;
	padding: 0;
	border: 0;
}

.panam-blog-grid .entry-card__link {
	display: flex;
	flex-direction: column;
	height: 100%;
	overflow: hidden;
	color: var(--panam-ink);
	background: var(--panam-bg);
	border: 1px solid var(--panam-border);
	text-decoration: none;
	transition: border-color 180ms ease;
}

.panam-blog-grid .entry-card__link:hover,
.panam-blog-grid .entry-card__link:focus-visible {
	border-color: color-mix(in srgb, var(--panam-accent), var(--panam-border) 45%);
}

.panam-blog-grid .entry-card__media {
	display: block;
	overflow: hidden;
	border-radius: 0;
	aspect-ratio: 4 / 3;
}

.panam-blog-grid .entry-card__media--placeholder {
	background: var(--panam-surface);
}

.panam-blog-grid .entry-card__media img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform 260ms ease;
}

.panam-blog-grid .entry-card__link:hover .entry-card__media img,
.panam-blog-grid .entry-card__link:focus-visible .entry-card__media img {
	transform: scale(1.03);
}

.panam-blog-grid .entry-card__body {
	display: flex;
	flex-direction: column;
	gap: 8px;
	padding: 18px;
}

.panam-blog-grid .entry-card__category {
	margin: 0;
	color: var(--panam-accent);
	font-size: 0.75rem;
	font-weight: 700;
	letter-spacing: 0.04em;
	text-transform: uppercase;
}

.panam-blog-grid .entry-card__meta {
	margin: 0;
	color: var(--panam-muted);
	font-size: 0.85rem;
	font-weight: 650;
}

.panam-blog-grid .entry-card__title {
	font-size: 1.1rem;
	font-weight: 700;
	line-height: 1.3;
}

.panam-blog-grid .entry-card__cta {
	margin-top: 4px;
	color: var(--panam-ink);
	font-size: 0.875rem;
	font-weight: 700;
	text-decoration: underline;
	text-underline-offset: 3px;
}

.panam-blog-grid .entry-card__excerpt {
	display: -webkit-box;
	overflow: hidden;
	color: var(--panam-muted);
	font-size: 0.9375rem;
	line-height: 1.55;
	-webkit-box-orient: vertical;
	-webkit-line-clamp: 3;
}

.panam-journal .navigation.pagination,
.panam-journal .posts-navigation,
.panam-blog-archive-page .navigation.pagination,
.panam-blog-archive-page .posts-navigation {
	margin-top: clamp(28px, 4vw, 44px);
	padding-top: clamp(20px, 3vw, 28px);
	border-top: 1px solid var(--panam-border);
}

.panam-journal .nav-links,
.panam-blog-archive-page .nav-links {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	justify-content: center;
}

.panam-journal .page-numbers,
.panam-blog-archive-page .page-numbers {
	display: inline-flex;
	min-width: 42px;
	min-height: 42px;
	align-items: center;
	justify-content: center;
	padding: 0 12px;
	color: var(--panam-ink);
	border: 1px solid var(--panam-border);
	text-decoration: none;
}

.panam-journal .page-numbers.current,
.panam-blog-archive-page .page-numbers.current {
	color: var(--panam-on-accent);
	background: var(--panam-ink);
	border-color: var(--panam-ink);
}

.panam-journal .page-numbers:hover,
.panam-journal .page-numbers:focus-visible,
.panam-blog-archive-page .page-numbers:hover,
.panam-blog-archive-page .page-numbers:focus-visible {
	color: var(--panam-on-accent);
	background: var(--panam-accent);
	border-color: var(--panam-accent);
}

.panam-blog-single-page .site-main--blog > .container {
	max-width: min(calc(100% - 32px), 860px);
}

.panam-article__header {
	margin-bottom: clamp(20px, 3vw, 28px);
}

.panam-article__category {
	margin: 0 0 10px;
	font-size: 0.8125rem;
	font-weight: 700;
	letter-spacing: 0.04em;
	text-transform: uppercase;
}

.panam-article__category a {
	color: var(--panam-accent);
	text-decoration: none;
}

.panam-article__category a:hover,
.panam-article__category a:focus-visible {
	text-decoration: underline;
}

.panam-article__title {
	margin: 0 0 12px;
	font-size: clamp(1.75rem, 3.2vw, 2.5rem);
	font-weight: 500;
	line-height: 1.2;
	letter-spacing: 0.01em;
}

.panam-article__meta {
	display: flex;
	flex-wrap: wrap;
	gap: 8px 12px;
	align-items: center;
	margin: 0;
	color: var(--panam-muted);
	font-size: 0.9rem;
	font-weight: 600;
}

.panam-article__author {
	display: inline-flex;
	align-items: center;
	gap: 9px;
	color: var(--panam-ink);
	font-weight: 750;
}

.panam-article__avatar {
	display: inline-grid;
	flex: 0 0 auto;
	place-items: center;
	width: 30px;
	height: 30px;
	color: var(--panam-on-accent);
	background: var(--panam-accent);
	border-radius: 50%;
}

.panam-article__avatar svg {
	width: 16px;
	height: 16px;
}

.panam-article__readtime {
	display: inline-flex;
	align-items: center;
	gap: 5px;
}

.panam-article__readtime-icon {
	width: 15px;
	height: 15px;
}

.panam-article__meta-sep {
	color: var(--panam-border);
}

.panam-article__media {
	margin: 0 0 clamp(24px, 4vw, 36px);
	overflow: hidden;
	border-radius: 0;
	aspect-ratio: 21 / 9;
}

.panam-article__media img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.panam-article__content {
	color: var(--panam-ink);
	font-size: 1.0625rem;
	line-height: 1.75;
}

.panam-article__content > *:first-child {
	margin-top: 0;
}

.panam-article__content h2,
.panam-article__content h3,
.panam-article__content h4 {
	margin: 1.6em 0 0.6em;
	line-height: 1.25;
}

.panam-article__content p,
.panam-article__content ul,
.panam-article__content ol,
.panam-article__content blockquote {
	margin: 0 0 1.15em;
}

.panam-article__content blockquote {
	padding-left: 18px;
	color: var(--panam-muted);
	border-left: 2px solid var(--panam-accent);
}

.panam-article__content img {
	border-radius: 0;
}

.panam-article__content a {
	color: var(--panam-accent);
}

.panam-article__page-links {
	margin-top: 28px;
	padding-top: 20px;
	border-top: 1px solid var(--panam-border);
	font-size: 0.9rem;
}

.panam-article__tags {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	margin-top: clamp(24px, 4vw, 36px);
	padding-top: 20px;
	border-top: 1px solid var(--panam-border);
}

.panam-article__tags a {
	display: inline-flex;
	padding: 6px 10px;
	color: var(--panam-ink);
	font-size: 0.8125rem;
	text-decoration: none;
	background: var(--panam-surface);
	border: 1px solid var(--panam-border);
}

.panam-article__tags a:hover,
.panam-article__tags a:focus-visible {
	border-color: var(--panam-accent);
}

.panam-blog-single-page .post-navigation {
	margin-top: clamp(32px, 5vw, 56px);
	padding-top: clamp(24px, 4vw, 36px);
	border-top: 1px solid var(--panam-border);
}

.panam-blog-single-page .post-navigation .nav-links {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 16px;
}

.panam-blog-single-page .post-navigation .nav-previous,
.panam-blog-single-page .post-navigation .nav-next {
	display: block;
}

.panam-blog-single-page .post-navigation .nav-next {
	text-align: right;
}

.panam-blog-single-page .post-navigation a {
	display: grid;
	gap: 6px;
	padding: 16px;
	color: var(--panam-ink);
	text-decoration: none;
	border: 1px solid var(--panam-border);
	transition: border-color 180ms ease;
}

.panam-blog-single-page .post-navigation a:hover,
.panam-blog-single-page .post-navigation a:focus-visible {
	border-color: color-mix(in srgb, var(--panam-accent), var(--panam-border) 45%);
}

.panam-post-nav__label {
	color: var(--panam-muted);
	font-size: 0.8125rem;
	font-weight: 700;
	letter-spacing: 0.04em;
	text-transform: uppercase;
}

.panam-post-nav__title {
	font-size: 1rem;
	font-weight: 600;
	line-height: 1.35;
}

.panam-blog-single-page .comments-area {
	margin-top: clamp(32px, 5vw, 56px);
	padding-top: clamp(24px, 4vw, 36px);
	border-top: 1px solid var(--panam-border);
}

.panam-blog-single-page .comments-title {
	margin: 0 0 20px;
	font-size: clamp(1.25rem, 2vw, 1.5rem);
	font-weight: 500;
}

.panam-blog-single-page .comment-list {
	padding: 0;
	margin: 0 0 24px;
	list-style: none;
}

.panam-blog-single-page .comment-list .comment {
	margin-bottom: 20px;
	padding-bottom: 20px;
	border-bottom: 1px solid var(--panam-border);
}

.panam-blog-single-page .comment-list .children {
	padding-left: 20px;
	margin-top: 16px;
	list-style: none;
}

.panam-blog-single-page .comment-respond {
	margin-top: 24px;
}

.panam-blog-single-page .comment-respond label {
	display: block;
	margin-bottom: 6px;
	font-size: 0.875rem;
	font-weight: 600;
}

.panam-blog-single-page .comment-respond input:not([type="checkbox"]),
.panam-blog-single-page .comment-respond textarea {
	width: 100%;
	min-height: 44px;
	margin-bottom: 14px;
	padding: 10px 12px;
	border: 1px solid var(--panam-border);
	border-radius: 0;
}

.panam-blog-single-page .comment-respond textarea {
	min-height: 140px;
}

.panam-blog-single-page .comment-respond .submit {
	min-height: var(--panam-btn-height);
	padding: 0 var(--panam-btn-padding-x);
	color: var(--panam-on-accent);
	background: var(--panam-accent);
	border: 1px solid var(--panam-accent);
	border-radius: 0;
	cursor: pointer;
}

.panam-journal .no-results,
.panam-blog .no-results {
	padding: clamp(36px, 6vw, 72px) 0;
}

.panam-journal .no-results h1,
.panam-blog .no-results h1 {
	margin: 0 0 10px;
	font-size: clamp(1.35rem, 2.5vw, 1.75rem);
	font-weight: 500;
}

.panam-journal .no-results p,
.panam-blog .no-results p {
	margin: 0 0 18px;
	color: var(--panam-muted);
}

.widget {
	margin-bottom: 22px;
}

.widget-title {
	margin: 0 0 12px;
	font-size: 1rem;
}

.site-footer {
	position: relative;
	overflow: hidden;
	padding-block: clamp(48px, 7vw, 76px) 24px;
	color: var(--panam-on-accent);
	background:
		linear-gradient(135deg, rgb(15 34 31 / 96%), rgb(24 44 39 / 98%)),
		var(--panam-ink);
}

.site-footer::before {
	position: absolute;
	inset: 0;
	pointer-events: none;
	content: "";
	background:
		linear-gradient(90deg, rgb(255 255 255 / 7%) 1px, transparent 1px),
		linear-gradient(0deg, rgb(255 255 255 / 5%) 1px, transparent 1px);
	background-size: 42px 42px;
	mask-image: linear-gradient(180deg, rgb(0 0 0 / 50%), transparent 72%);
}

.site-footer > .container {
	position: relative;
	z-index: 1;
}

.footer-grid {
	display: grid;
	grid-template-columns: minmax(260px, 1.35fr) repeat(4, minmax(130px, 1fr));
	gap: clamp(22px, 4vw, 46px);
	align-items: start;
}

.footer-grid:has(.footer-brand:only-child) {
	grid-template-columns: 1fr;
}

.footer-brand {
	display: grid;
	gap: 16px;
	max-width: 390px;
}

.footer-brand:only-child {
	max-width: none;
	grid-template-columns: minmax(240px, 390px) minmax(280px, 1fr);
	align-items: end;
}

.footer-brand:only-child .footer-trust {
	grid-template-columns: repeat(3, minmax(0, 1fr));
}

.footer-brand .custom-logo-link,
.footer-brand .site-title {
	display: inline-flex;
	width: fit-content;
}

.footer-brand img {
	max-width: min(220px, 100%);
	height: auto;
}

.footer-brand .site-title {
	font-size: clamp(1.45rem, 2vw, 2rem);
	font-weight: 900;
	line-height: 1.05;
	text-decoration: none;
}

.footer-brand p {
	max-width: 34ch;
	margin: 0;
	line-height: 1.65;
}

.footer-trust {
	display: grid;
	gap: 8px;
	margin-top: 4px;
}

.footer-trust span {
	display: inline-flex;
	gap: 9px;
	align-items: center;
	width: fit-content;
	min-height: 32px;
	padding: 6px 10px;
	color: rgb(255 255 255 / 86%);
	background: rgb(255 255 255 / 8%);
	border: 1px solid rgb(255 255 255 / 12%);
	border-radius: var(--panam-radius);
	font-size: 0.9rem;
	font-weight: 750;
}

.footer-trust svg {
	flex: 0 0 auto;
	color: var(--panam-success);
}

.footer-column {
	min-width: 0;
}

.footer-column .widget:last-child {
	margin-bottom: 0;
}

.site-footer a,
.site-footer .site-title {
	color: var(--panam-on-accent);
	text-decoration: none;
}

.site-footer p,
.site-footer .widget {
	color: rgb(255 255 255 / 76%);
}

.site-footer .widget-title,
.site-footer h2,
.site-footer h3 {
	margin: 0 0 14px;
	color: var(--panam-on-accent);
	font-size: 0.9rem;
	font-weight: 900;
	letter-spacing: 0.04em;
	text-transform: uppercase;
}

.site-footer ul,
.site-footer ol {
	display: grid;
	gap: 9px;
	padding: 0;
	margin: 0;
	list-style: none;
}

.site-footer li {
	margin: 0;
}

.site-footer a:not(.site-title):not(.custom-logo-link) {
	color: rgb(255 255 255 / 78%);
	font-weight: 700;
	line-height: 1.35;
	transition: color 160ms ease, transform 160ms ease;
}

.site-footer a:not(.site-title):not(.custom-logo-link):hover {
	color: var(--panam-on-accent);
}

.site-footer :where(input, select, textarea) {
	width: 100%;
	min-height: 44px;
	padding: 10px 12px;
	color: var(--panam-ink);
	background: var(--panam-bg);
	border: 1px solid rgb(255 255 255 / 18%);
	border-radius: var(--panam-radius);
}

.site-footer :where(button, input[type="submit"], .button) {
	width: 100%;
	margin-top: 10px;
	color: var(--panam-on-accent);
	background: var(--panam-accent);
	border-color: var(--panam-accent);
}

.footer-bottom {
	display: flex;
	gap: 20px;
	align-items: center;
	justify-content: space-between;
	padding-top: 22px;
	margin-top: clamp(34px, 5vw, 52px);
	border-top: 1px solid rgb(255 255 255 / 18%);
	color: rgb(255 255 255 / 76%);
	font-size: 0.9rem;
}

.footer-bottom nav {
	min-width: 0;
}

.footer-bottom ul {
	gap: 8px 18px;
	justify-content: flex-start;
}

.footer-bottom a {
	color: rgb(255 255 255 / 72%);
	font-size: 0.9rem;
	font-weight: 750;
}

.footer-bottom p {
	margin: 0;
	white-space: nowrap;
}

.footer {
	position: relative;
	overflow: hidden;
	color: var(--panam-on-accent);
	background:
		linear-gradient(135deg, rgb(13 34 31 / 96%), rgb(23 45 39 / 98%)),
		var(--panam-ink);
}

.footer.pt-4.py-md-5.pt-md-5 {
	display: none;
}

.footer::before {
	position: absolute;
	inset: 0;
	pointer-events: none;
	content: "";
	background:
		linear-gradient(90deg, rgb(255 255 255 / 7%) 1px, transparent 1px),
		linear-gradient(0deg, rgb(255 255 255 / 5%) 1px, transparent 1px);
	background-size: 42px 42px;
	mask-image: linear-gradient(180deg, rgb(0 0 0 / 42%), transparent 72%);
}

.main-footer,
.post-footer {
	position: relative;
	z-index: 1;
}

.main-footer {
	padding-block: clamp(46px, 7vw, 76px);
}

.footer-layout {
	display: grid;
	grid-template-columns: minmax(260px, 1.25fr) repeat(3, minmax(160px, 0.75fr));
	gap: clamp(24px, 4vw, 52px);
	align-items: start;
}

.logo-div {
	display: grid;
	gap: 16px;
	max-width: 410px;
}

.logo-div .custom-logo-link,
.logo-div .footer-logo-link,
.logo-div .site-title {
	display: inline-flex;
	width: fit-content;
}

.logo-div img {
	max-width: min(270px, 100%);
	height: auto;
}

.logo-div .site-title {
	color: var(--panam-on-accent);
	font-size: clamp(1.45rem, 2vw, 2rem);
	font-weight: 900;
	line-height: 1.05;
	text-decoration: none;
}

.logo-div p {
	max-width: 42ch;
	margin: 0;
	color: rgb(255 255 255 / 76%);
	line-height: 1.7;
}

.footer-column h2 {
	margin: 0 0 16px;
	color: var(--panam-on-accent);
	font-size: 0.92rem;
	font-weight: 900;
	letter-spacing: 0.04em;
	text-transform: uppercase;
}

.footer-column ul {
	display: grid;
	gap: 10px;
	padding: 0;
	margin: 0;
	list-style: none;
}

.footer-column li {
	margin: 0;
}

.footer-column a,
.post-footer a {
	color: rgb(255 255 255 / 76%);
	font-weight: 720;
	line-height: 1.38;
	text-decoration: none;
	transition: color 160ms ease, transform 160ms ease, background-color 160ms ease, border-color 160ms ease;
}

.footer-column a:hover,
.post-footer a:hover {
	color: var(--panam-on-accent);
}

.inline-contacts {
	display: inline-flex;
	gap: 10px;
	align-items: center;
	min-width: 0;
}

.inline-contacts svg {
	flex: 0 0 auto;
	width: 17px;
	height: 17px;
	color: var(--panam-success);
}

.socials {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	margin-top: 18px;
}

.socials a {
	display: grid;
	width: 40px;
	height: 40px;
	place-items: center;
	color: var(--panam-on-accent);
	background: rgb(255 255 255 / 8%);
	border: 1px solid rgb(255 255 255 / 14%);
	/* --panam-header-radius isn't clobbered by the delivery CSS on checkout, so
	   the squares stay square there too (--panam-radius gets forced to 0.5em). */
	border-radius: var(--panam-header-radius, var(--panam-radius));
}

.socials a:hover {
	background: var(--panam-accent);
	border-color: var(--panam-accent);
	transform: translateY(-1px);
}

.socials svg {
	width: 18px;
	height: 18px;
}

.post-footer {
	background: rgb(0 0 0 / 18%);
	border-top: 1px solid rgb(255 255 255 / 14%);
}

.post-footer-inner {
	display: flex;
	gap: 18px;
	align-items: center;
	justify-content: space-between;
	min-height: 58px;
	padding-block: 14px;
	color: rgb(255 255 255 / 70%);
	font-size: 0.88rem;
}

.post-footer nav {
	display: flex;
	flex-wrap: wrap;
	gap: 10px 18px;
	justify-content: flex-end;
}

.post-footer .white {
	color: var(--panam-on-accent);
	font-weight: 780;
}

.not-found,
.no-results {
	max-width: 720px;
	text-align: center;
}

.cart-drawer-shell {
	pointer-events: none;
}

.cart-drawer-overlay {
	position: fixed;
	z-index: 80;
	inset: 0;
	background: rgb(23 33 31 / 42%);
	opacity: 0;
	transition: opacity 180ms ease;
}

.cart-drawer {
	position: fixed;
	z-index: 90;
	top: 0;
	right: 0;
	display: grid;
	grid-template-rows: auto minmax(0, 1fr) auto;
	width: min(100vw, 460px);
	height: 100dvh;
	background: var(--panam-bg);
	box-shadow: -24px 0 56px rgb(23 33 31 / 18%);
	outline: 0;
	transform: translateX(104%);
	transition: transform 220ms ease;
}

html.cart-drawer-is-open,
html.cart-drawer-is-open body {
	overflow: hidden;
}

html.cart-drawer-is-open .cart-drawer-shell {
	pointer-events: auto;
}

html.cart-drawer-is-open .cart-drawer-overlay {
	opacity: 1;
}

html.cart-drawer-is-open .cart-drawer,
.cart-drawer[aria-hidden="false"] {
	transform: translateX(0) !important;
}

.cart-drawer-header,
.cart-drawer-footer {
	padding: 22px;
}

.cart-drawer-header {
	display: flex;
	gap: 16px;
	align-items: start;
	justify-content: space-between;
	border-bottom: 1px solid var(--panam-border);
}

.cart-drawer-header h2 {
	margin: 0;
	font-size: 1.55rem;
	line-height: 1.15;
}

.cart-drawer-close {
	display: grid;
	width: 42px;
	height: 42px;
	padding: 0;
	place-items: center;
	color: var(--panam-ink);
	background: var(--panam-bg);
	border: 1px solid var(--panam-border);
	border-radius: var(--panam-radius);
	cursor: pointer;
}

.cart-drawer-body {
	min-height: 0;
	overflow: auto;
	padding: 8px 22px;
}

.cart-drawer-items {
	display: grid;
	gap: 0;
	padding: 0;
	margin: 0;
	list-style: none;
}

.cart-drawer-item {
	display: grid;
	grid-template-columns: 82px minmax(0, 1fr) auto;
	gap: 14px;
	padding: 16px 0;
	border-bottom: 1px solid var(--panam-border);
}

.cart-drawer-thumb {
	overflow: hidden;
	background: var(--panam-surface);
	border-radius: var(--panam-radius);
	aspect-ratio: 1;
}

.cart-drawer-thumb img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.cart-drawer-item-main {
	display: grid;
	gap: 5px;
	align-content: start;
}

.cart-drawer-product-name {
	color: var(--panam-ink);
	font-weight: 800;
	line-height: 1.28;
	text-decoration: none;
}

.cart-drawer-meta,
.cart-drawer-remove,
.cart-drawer-footer p {
	color: var(--panam-muted);
	font-size: 0.9rem;
}

.cart-drawer-remove {
	width: max-content;
	text-decoration: underline;
	text-underline-offset: 0.2em;
}

.cart-drawer-item-price {
	color: var(--panam-ink);
	font-weight: 850;
	white-space: nowrap;
}

.cart-drawer-empty {
	display: grid;
	min-height: 360px;
	align-content: center;
	justify-items: center;
	text-align: center;
}

.cart-drawer-empty h3 {
	margin: 0;
	font-size: 1.5rem;
}

.cart-drawer-empty p {
	max-width: 280px;
	color: var(--panam-muted);
}

.cart-drawer-footer {
	display: grid;
	gap: 12px;
	border-top: 1px solid var(--panam-border);
	box-shadow: 0 -12px 28px rgb(23 33 31 / 6%);
}

.cart-drawer-subtotal {
	display: flex;
	gap: 16px;
	align-items: center;
	justify-content: space-between;
	font-size: 1.05rem;
}

.cart-drawer-subtotal strong {
	font-size: 1.25rem;
}

.cart-drawer-footer p {
	margin: 0;
}

.cart-drawer-footer .button:not(.button--ghost) {
	width: 100%;
	color: var(--panam-on-accent);
}

.cart-drawer-footer .button:not(.button--ghost):hover,
.cart-drawer-footer .button:not(.button--ghost):focus-visible {
	color: var(--panam-on-accent);
}

.cart-drawer-footer .button.button--ghost {
	width: 100%;
}

/* WooCommerce */
.woocommerce .woocommerce-result-count {
	color: var(--panam-muted);
	font-size: 0.875rem;
}

.woocommerce .woocommerce-ordering {
	margin: 0;
}

.woocommerce .woocommerce-ordering select,
.woocommerce :where(input.input-text, textarea, select) {
	min-height: 42px;
	padding: 9px 11px;
	background: var(--panam-bg);
	border: 1px solid var(--panam-border);
	border-radius: var(--panam-radius);
}

.woocommerce ul.products:not(.collection-subcategories__grid),
.featured-product-grid ul.products,
.home-products ul.products,
.woocommerce ul.products.panam-collection-grid:not(.collection-subcategories__grid) {
	--panam-product-gap: 22px;
	--panam-product-columns: 4;
	display: flex;
	flex-wrap: wrap;
	gap: var(--panam-product-gap);
	padding: 0;
	margin: 0;
	list-style: none;
}

.woocommerce ul.products.columns-1,
.featured-product-grid ul.products.columns-1,
.home-products ul.products.columns-1 {
	--panam-product-columns: 1;
}

.woocommerce ul.products.columns-2,
.featured-product-grid ul.products.columns-2,
.home-products ul.products.columns-2 {
	--panam-product-columns: 2;
}

.woocommerce ul.products.columns-3,
.featured-product-grid ul.products.columns-3,
.home-products ul.products.columns-3 {
	--panam-product-columns: 3;
}

.woocommerce ul.products.columns-4,
.featured-product-grid ul.products.columns-4,
.home-products ul.products.columns-4 {
	--panam-product-columns: 4;
}

.woocommerce ul.products.columns-5,
.featured-product-grid ul.products.columns-5,
.home-products ul.products.columns-5 {
	--panam-product-columns: 5;
}

.woocommerce ul.products.columns-6,
.featured-product-grid ul.products.columns-6,
.home-products ul.products.columns-6 {
	--panam-product-columns: 6;
}

.woocommerce ul.products:not(.collection-subcategories__grid) > li.product,
.featured-product-grid ul.products > li.product,
.home-products ul.products > li.product,
.woocommerce .related.products ul.products > li.product,
.woocommerce .upsells.products ul.products > li.product {
	flex: 0 0
		calc(
			(100% - (var(--panam-product-gap) * (var(--panam-product-columns) - 1))) /
				var(--panam-product-columns)
		);
	max-width: calc(
		(100% - (var(--panam-product-gap) * (var(--panam-product-columns) - 1))) /
			var(--panam-product-columns)
	);
}

.woocommerce ul.products li::marker,
.featured-product-grid ul.products li::marker,
.home-products ul.products li::marker {
	content: "";
}

.woocommerce ul.products::before,
.woocommerce ul.products::after,
.featured-product-grid ul.products::before,
.featured-product-grid ul.products::after,
.home-products ul.products::before,
.home-products ul.products::after {
	display: none;
}

/* Shopify-style product cards (shop, home, related, upsells) */
.woocommerce ul.products li.product,
.woocommerce-page ul.products li.product,
.featured-product-grid ul.products li.product,
.home-products ul.products li.product,
.woocommerce .related.products ul.products li.product,
.woocommerce .upsells.products ul.products li.product {
	position: relative;
	display: flex;
	flex-direction: column;
	float: none;
	clear: none;
	width: auto;
	max-width: none;
	margin: 0;
	padding: 0;
	overflow: hidden;
	background: var(--panam-bg);
	border: 1px solid var(--panam-border);
	border-radius: var(--panam-radius-card);
	box-shadow: none;
	transition: border-color 180ms ease;
}

.woocommerce ul.products li.product::before,
.woocommerce-page ul.products li.product::before,
.featured-product-grid ul.products li.product::before,
.home-products ul.products li.product::before,
.woocommerce .related.products ul.products li.product::before,
.woocommerce .upsells.products ul.products li.product::before {
	position: absolute;
	top: 0;
	right: 0;
	left: 0;
	z-index: 2;
	height: 2px;
	content: "";
	background: var(--panam-accent);
	opacity: 0;
	transition: opacity 180ms ease;
}

.woocommerce ul.products li.product:hover,
.woocommerce-page ul.products li.product:hover,
.featured-product-grid ul.products li.product:hover,
.home-products ul.products li.product:hover,
.woocommerce .related.products ul.products li.product:hover,
.woocommerce .upsells.products ul.products li.product:hover {
	border-color: color-mix(in srgb, var(--panam-accent), var(--panam-border) 45%);
	box-shadow: none;
	transform: none;
}

.woocommerce ul.products li.product:hover::before,
.woocommerce-page ul.products li.product:hover::before,
.featured-product-grid ul.products li.product:hover::before,
.home-products ul.products li.product:hover::before,
.woocommerce .related.products ul.products li.product:hover::before,
.woocommerce .upsells.products ul.products li.product:hover::before {
	opacity: 1;
}

.woocommerce ul.products li.product a,
.featured-product-grid ul.products li.product a,
.home-products ul.products li.product a,
.woocommerce .related.products ul.products li.product a,
.woocommerce .upsells.products ul.products li.product a {
	color: inherit;
	text-decoration: none;
}

.woocommerce ul.products li.product .woocommerce-loop-product__link,
.featured-product-grid ul.products li.product .woocommerce-loop-product__link,
.home-products ul.products li.product .woocommerce-loop-product__link {
	display: flex;
	flex: 1 1 auto;
	flex-direction: column;
}

.woocommerce ul.products li.product img,
.featured-product-grid ul.products li.product img,
.home-products ul.products li.product img,
.woocommerce .related.products ul.products li.product img,
.woocommerce .upsells.products ul.products li.product img {
	display: block;
	width: 100%;
	margin: 0;
	background: var(--panam-surface);
	border-radius: var(--panam-radius-image);
	aspect-ratio: 1;
	object-fit: cover;
	transition: none;
}

.woocommerce ul.products li.product:hover img,
.featured-product-grid ul.products li.product:hover img,
.home-products ul.products li.product:hover img,
.woocommerce .related.products ul.products li.product:hover img,
.woocommerce .upsells.products ul.products li.product:hover img {
	transform: none;
}

.woocommerce-loop-product__title,
.woocommerce ul.products li.product .woocommerce-loop-category__title {
	margin: 0;
	padding: 14px 14px 6px;
	color: var(--panam-ink);
	font-size: 0.9375rem;
	font-weight: 500;
	line-height: 1.45;
	letter-spacing: 0.01em;
}

.woocommerce ul.products li.product .price,
.featured-product-grid ul.products li.product .price,
.home-products ul.products li.product .price {
	display: block;
	padding: 0 14px 14px;
	margin: 0;
	color: var(--panam-ink);
	font-size: 1.1875rem;
	font-weight: 700;
	line-height: 1.35;
}

:is(.woocommerce, .woocommerce-page, .featured-product-grid, .home-products) ul.products li.product .price .amount,
:is(.woocommerce, .woocommerce-page, .featured-product-grid, .home-products) ul.products li.product .price ins {
	color: var(--panam-ink);
	font-weight: 700;
}

/* New (sale) price stands out in the sale colour. */
:is(.woocommerce, .woocommerce-page, .featured-product-grid, .home-products) ul.products li.product .price ins {
	text-decoration: none;
}

:is(.woocommerce, .woocommerce-page, .featured-product-grid, .home-products) ul.products li.product .price ins .amount {
	color: var(--panam-sale, #d63638);
}

/* Old price is clearly struck through and muted, sitting before the new price. */
:is(.woocommerce, .woocommerce-page, .featured-product-grid, .home-products) ul.products li.product .price del {
	display: inline-block;
	margin-right: 8px;
	font-size: 1.0625rem;
	font-weight: 500;
	text-decoration: line-through;
	opacity: 1;
}

:is(.woocommerce, .woocommerce-page, .featured-product-grid, .home-products) ul.products li.product .price del .amount {
	color: var(--panam-muted);
	font-weight: 500;
}

/* Sale badge — a flat, notched ribbon overlaying the product image (shop, home,
   related). Pinned flush to the TOP of every card, spans ~half the card width and
   tapers to a ribbon tail on the right. Flat fill only — no gradient, shadow, 3D. */
:is(.woocommerce, .woocommerce-page, .featured-product-grid, .home-products) ul.products li.product span.onsale {
	position: absolute;
	z-index: 3;
	top: 0;
	left: 0;
	display: flex;
	align-items: center;
	gap: 6px;
	/* At least half the card, but grows to fit a longer word (e.g. "Намаление")
	   rather than clipping it; capped so it never overflows the card. */
	width: auto;
	min-width: 50%;
	max-width: calc(100% - 16px);
	min-height: auto;
	margin: 0;
	/* ~10% thinner band than before (5px vs 6px block padding); the label font
	   size is deliberately unchanged. */
	padding: 5px 17px 5px 12px;
	background: var(--panam-sale-badge, var(--panam-sale, #d63638));
	color: #fff;
	border-radius: 0;
	box-shadow: none;
	font-size: 0.78rem;
	font-weight: 800;
	line-height: 1.15;
	letter-spacing: 0.03em;
	text-transform: uppercase;
	white-space: nowrap;
	clip-path: polygon(0 0, 100% 0, calc(100% - 9px) 50%, 100% 100%, 0 100%);
}

/* Sale badge inner parts ("Sale" label + "-20%" discount). */
.onsale .onsale__label {
	display: inline-block;
}

.onsale .onsale__pct {
	display: inline-block;
	flex: 0 0 auto;
	font-weight: 850;
	opacity: 0.92;
}

/* Scheduled-sale countdown — a bar pinned to the BOTTOM of the product image
   (panam_theme_sale_flash / initSaleCountdowns). It is an aspect-ratio square
   overlay so it lines up with the square thumbnail and adds no height to the
   card (loop items stay equal height whether or not the sale is timed). Its
   positioning context is li.product on loops and the gallery on the single
   product (initSaleCountdowns moves it into the gallery there). */
:is(.woocommerce, .woocommerce-page, .featured-product-grid, .home-products) ul.products li.product {
	position: relative;
}

.panam-sale-timer {
	position: absolute;
	top: 0;
	left: 0;
	z-index: 3;
	display: flex;
	align-items: flex-end;
	width: 100%;
	aspect-ratio: 1 / 1;
	pointer-events: none;
}

/* ============================================================
   Panam sale flip countdown  (.pst-*)
   Split-flap flip timer overlaid on the bottom of a square image.
   Card faces = var(--panam-sale). Only transform + opacity animate
   (compositor-only), so it stays smooth with many cards flipping
   their seconds at once. Reduced motion is handled in JS (instant
   swap); there are no CSS transitions to suppress.
   Server-render the value into every .pst-flip__num, the
   .pst-flip__size sizer, and the data-v attribute so the card is
   correct before JS runs (flaps are hidden at rest).
   ============================================================ */
.pst-timer{
  --pst-face: #fff;
  --pst-text: #111;
  --pst-radius: 3px;         /* slight rounding on the card's OUTER corners only */
  --pst-h: 1.4em;            /* card height, in digit-em                       */
  --pst-dur: 620ms;          /* one full flip; JS reads this (ms or s)         */
  display:flex; align-items:flex-start; justify-content:center;
  gap:.32em; padding:.5em .5em .45em;
  width:100%; box-sizing:border-box;
  font-family: ui-monospace, SFMono-Regular, "SF Mono", Menlo, Consolas, monospace;
  font-size:14px;            /* bump for the wider single-product bar          */
  line-height:1; color:#fff;
  /* Backing bar colour — its own setting (Design > Brand colors > Sale timer
     background), falling back to the sale colour when unset. */
  background:var(--panam-sale-timer-bg, var(--panam-sale, #b42318));
  -webkit-font-smoothing:antialiased;
}
.pst-unit{ display:flex; flex-direction:column; align-items:center; gap:.16em; min-width:0; }
.pst-unit__label{
  font-family: system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
  font-size:.55em; line-height:1; letter-spacing:.06em; text-transform:uppercase;
  font-weight:600; color:#fff;
}

/* --- the flip card --- */
.pst-flip{
  position:relative; display:inline-block; height:var(--pst-h);
  perspective:210px; color:var(--pst-text);
}
/* crisp flat seam line at the fold (theme has no shadows / radii) */
.pst-flip::after{
  content:""; position:absolute; left:0; right:0; top:calc(50% - 0.5px);
  height:1px; background:rgb(0 0 0 / 25%); z-index:3; pointer-events:none;
}
/* in-flow sizer: gives the card width (auto-grows for 3-digit days) + height.
   Everything else is absolutely positioned on top of it. */
.pst-flip__size{
  display:block; visibility:hidden; padding:0 .46em;
  font-weight:800; line-height:var(--pst-h);
}
.pst-flip__panel, .pst-flip__flap{
  position:absolute; left:0; right:0; height:50%; overflow:hidden;
  background:var(--pst-face);
  backface-visibility:hidden; -webkit-backface-visibility:hidden;
}
.pst-flip__panel--top, .pst-flip__flap--top{
  top:0; transform-origin:center bottom;
  border-radius: var(--pst-radius) var(--pst-radius) 0 0;   /* round only the top-outer corners */
}
.pst-flip__panel--bottom, .pst-flip__flap--bottom{
  bottom:0; transform-origin:center top;
  border-radius: 0 0 var(--pst-radius) var(--pst-radius);   /* round only the bottom-outer corners */
}
.pst-flip__panel{ z-index:1; }
/* Flaps sit above the static panels and are hidden at rest (opacity:0);
   JS reveals them only while a flip is running, so a parked, edge-on flap
   can never leave a sub-pixel sliver on the seam. */
.pst-flip__flap{ z-index:2; opacity:0; will-change:transform; }
.pst-flip__flap--top{ transform:rotateX(-90deg); }    /* parked (hidden) at rest */
.pst-flip__flap--bottom{ transform:rotateX(90deg); }  /* parked (hidden) at rest */

/* the number: full card height, so top/bottom halves line up across the seam */
.pst-flip__num{
  position:absolute; left:0; right:0; height:var(--pst-h); line-height:var(--pst-h);
  text-align:center; font-weight:800;
  font-variant-numeric:tabular-nums; font-feature-settings:"tnum" 1; letter-spacing:.02em;
}
.pst-flip__panel--top .pst-flip__num,
.pst-flip__flap--top  .pst-flip__num{ top:0; }
.pst-flip__panel--bottom .pst-flip__num,
.pst-flip__flap--bottom  .pst-flip__num{ top:calc(var(--pst-h) * -0.5); }

/* Fold shade removed for the theme's flat look: the .pst-flip__shade elements
   stay (JS still animates their opacity) but have no background, so there is no
   fold shadow. */
.pst-flip__shade{ position:absolute; inset:0; pointer-events:none; opacity:0; z-index:1; }

@media (prefers-reduced-motion: reduce){
  /* JS also skips the flip and swaps instantly; keep flaps hidden regardless. */
  .pst-flip__flap{ opacity:0 !important; }
}

/* Loop / archive: bigger cards, clustered together and centred (same spacing as
   the single product). */
.panam-sale-timer .pst-timer {
	justify-content: center;
	gap: 0.4em;
	padding: 4px 6px 4px;
	font-size: 18px;
}

/* Single product: the timer is moved into the gallery (its image column) and shown
   as a bigger rounded block pinned to the image's TOP-RIGHT corner (the zoom
   magnifier moves to the bottom-right to make room). */
.woocommerce div.product .woocommerce-product-gallery {
	position: relative;
}

.woocommerce div.product .woocommerce-product-gallery > .panam-sale-timer {
	align-items: flex-start;
	justify-content: flex-end;
	padding: 8px 12px;
}

.woocommerce div.product .woocommerce-product-gallery > .panam-sale-timer .pst-timer {
	width: auto;
	justify-content: center;
	gap: 0.34em;
	padding: 3px 8px 4px;
	font-size: 18px;
}

/* WooCommerce's zoom/lightbox trigger (a "magnifier" link). WooCommerce's own CSS
   that floats it over the image is disabled here, so it sat in the flow above the
   image (pushing it down and misaligning the countdown overlay). Pin it to the
   image's top-right like the standard control. */
.woocommerce div.product .woocommerce-product-gallery__trigger {
	position: absolute;
	top: 12px;
	right: 12px;
	z-index: 4;
	display: grid;
	place-items: center;
	width: 36px;
	height: 36px;
	background: rgb(255 255 255 / 88%);
	font-size: 18px;
	line-height: 1;
	text-decoration: none;
}

/* When a top-right countdown is present, initSaleCountdowns() moves the zoom
   trigger into the countdown's square overlay (= the main image) and it sits at
   the image's bottom-right instead. The overlay is pointer-events:none, so the
   trigger re-enables its own clicks. */
.woocommerce div.product .panam-sale-timer > .woocommerce-product-gallery__trigger {
	top: auto;
	bottom: 12px;
	right: 12px;
	pointer-events: auto;
}

.woocommerce ul.products li.product :is(.button, .added_to_cart),
.featured-product-grid ul.products li.product :is(.button, .added_to_cart),
.home-products ul.products li.product :is(.button, .added_to_cart),
.woocommerce .related.products ul.products li.product :is(.button, .added_to_cart),
.woocommerce .upsells.products ul.products li.product :is(.button, .added_to_cart) {
	width: calc(100% - (var(--panam-btn-product-inset) * 2));
	/* 30% thinner than the standard button height — product-grid cards only; the
	   font size is unchanged and the single product add-to-cart is untouched. */
	min-height: calc(var(--panam-btn-height) * 0.7);
	height: calc(var(--panam-btn-height) * 0.7);
	margin: 0 var(--panam-btn-product-inset) 8px;
	padding: 0 var(--panam-btn-padding-x);
	border-radius: 0;
	color: var(--panam-on-accent);
	font-size: var(--panam-btn-font-size);
	font-weight: var(--panam-btn-font-weight);
	line-height: 1.2;
	letter-spacing: var(--panam-btn-letter-spacing);
	text-transform: uppercase;
	white-space: nowrap;
}

.woocommerce ul.products li.product :is(.button, .added_to_cart):last-child,
.featured-product-grid ul.products li.product :is(.button, .added_to_cart):last-child,
.home-products ul.products li.product :is(.button, .added_to_cart):last-child,
.woocommerce .related.products ul.products li.product :is(.button, .added_to_cart):last-child,
.woocommerce .upsells.products ul.products li.product :is(.button, .added_to_cart):last-child {
	margin-bottom: var(--panam-btn-product-inset);
}

.woocommerce ul.products li.product .button:hover,
.woocommerce ul.products li.product .button:focus-visible,
.featured-product-grid ul.products li.product .button:hover,
.featured-product-grid ul.products li.product .button:focus-visible,
.home-products ul.products li.product .button:hover,
.home-products ul.products li.product .button:focus-visible,
.woocommerce .related.products ul.products li.product .button:hover,
.woocommerce .related.products ul.products li.product .button:focus-visible,
.woocommerce .upsells.products ul.products li.product .button:hover,
.woocommerce .upsells.products ul.products li.product .button:focus-visible {
	color: var(--panam-on-accent);
}

.woocommerce ul.products li.product .added_to_cart,
.featured-product-grid ul.products li.product .added_to_cart,
.home-products ul.products li.product .added_to_cart {
	color: var(--panam-ink);
	background: transparent;
	border: 1px solid var(--panam-border);
}

.woocommerce ul.products li.product .star-rating {
	margin: 0 14px 8px;
	color: var(--panam-warning);
	font-size: 0.75rem;
}

.featured-product-grid .woocommerce ul.products,
.home-products .woocommerce ul.products,
.home-products ul.products {
	list-style: none;
}

/* Search / archive product card fallback */
.entry-card.entry-card--product {
	position: relative;
	display: flex;
	flex-direction: column;
	grid-template-columns: none;
	gap: 0;
	padding: 0;
	overflow: hidden;
	border: 1px solid var(--panam-border);
	border-radius: 0;
}

.entry-card.entry-card--product::before {
	position: absolute;
	top: 0;
	right: 0;
	left: 0;
	z-index: 2;
	height: 2px;
	content: "";
	background: var(--panam-accent);
	opacity: 0;
	transition: opacity 180ms ease;
}

.entry-card.entry-card--product:hover::before {
	opacity: 1;
}

.entry-card.entry-card--product:hover {
	border-color: color-mix(in srgb, var(--panam-accent), var(--panam-border) 45%);
	transform: none;
}

.entry-card.entry-card--product .entry-media {
	border-radius: 0;
	aspect-ratio: 1;
}

.entry-card.entry-card--product .entry-body {
	padding: 14px;
}

.entry-card.entry-card--product .entry-title {
	margin: 0 0 6px;
	font-size: 0.9375rem;
	font-weight: 500;
	line-height: 1.45;
}

.entry-card.entry-card--product .entry-meta {
	margin: 0 0 12px;
	color: var(--panam-ink);
	font-size: 0.9375rem;
	font-weight: 500;
}

.entry-card.entry-card--product .entry-summary {
	display: none;
}

.entry-card.entry-card--product .button {
	width: 100%;
	min-height: var(--panam-btn-height);
	height: var(--panam-btn-height);
	margin: 0;
	padding: 0 var(--panam-btn-padding-x);
	border-radius: 0;
	color: var(--panam-on-accent);
	font-size: var(--panam-btn-font-size);
	font-weight: var(--panam-btn-font-weight);
	letter-spacing: var(--panam-btn-letter-spacing);
	text-transform: uppercase;
	white-space: nowrap;
}

.entry-card.entry-card--product .button:hover,
.entry-card.entry-card--product .button:focus-visible {
	color: var(--panam-on-accent);
}

/* Single product — Shopify-style PDP */
.panam-single-product-page .site-main--shop {
	padding-top: clamp(20px, 3vw, 36px);
}

.woocommerce div.product {
	display: block;
}

.woocommerce div.product .panam-product-top {
	position: relative;
	display: grid;
	grid-template-columns: minmax(0, 1.15fr) minmax(320px, 0.85fr);
	gap: clamp(28px, 4vw, 56px);
	align-items: start;
}

.woocommerce div.product .panam-product-top div.images,
.woocommerce div.product .panam-product-top .summary {
	float: none;
	width: auto;
}

.woocommerce div.product div.images {
	position: relative;
}

.woocommerce div.product .panam-product-top > span.onsale,
.woocommerce div.product div.images span.onsale {
	position: absolute;
	top: 0;
	left: 0;
	z-index: 3;
	display: inline-flex;
	align-items: center;
	gap: 7px;
	margin: 0;
	min-width: auto;
	min-height: auto;
	max-width: 75%;
	/* Flush to the top + ~10% thinner band; label font size unchanged. */
	padding: 6px 20px 6px 16px;
	background: var(--panam-sale-badge, var(--panam-sale, #d63638));
	color: #fff;
	border-radius: 0;
	box-shadow: none;
	font-size: 0.9rem;
	font-weight: 800;
	line-height: 1.15;
	letter-spacing: 0.03em;
	text-transform: uppercase;
	white-space: nowrap;
	clip-path: polygon(0 0, 100% 0, calc(100% - 11px) 50%, 100% 100%, 0 100%);
}

.woocommerce div.product div.images .woocommerce-product-gallery {
	width: 100%;
}

.woocommerce div.product div.images .woocommerce-product-gallery .flex-viewport {
	overflow: hidden;
	margin-bottom: 12px;
	background: var(--panam-surface);
	aspect-ratio: 1;
}

.woocommerce div.product div.images .woocommerce-product-gallery .flex-viewport img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.woocommerce div.product div.images .woocommerce-product-gallery__wrapper {
	display: block;
	margin: 0;
	padding: 0;
}

/* Base / no-JS fallback: every gallery image stacks vertically and stays visible. */
.woocommerce div.product div.images .woocommerce-product-gallery__wrapper > .woocommerce-product-gallery__image {
	overflow: hidden;
	background: var(--panam-surface);
	aspect-ratio: 1;
}

.woocommerce div.product div.images .woocommerce-product-gallery__wrapper > .woocommerce-product-gallery__image + .woocommerce-product-gallery__image {
	margin-top: 10px;
}

.woocommerce div.product div.images .woocommerce-product-gallery__wrapper > .woocommerce-product-gallery__image img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

/* Flexslider active (desktop main-image slot). WooCommerce's own flexslider track
   CSS is disabled here (woocommerce_enqueue_styles is emptied) and the wrapper's
   translate-based track has no effect in this setup, so every image after the
   first used to stay clipped out of view. Drive the display off flexslider's
   reliable .flex-active-slide class instead: overlay every slide in one cell and
   reveal only the active one — thumbnail clicks / swipe just move that class. */
.woocommerce div.product div.images .flex-viewport .woocommerce-product-gallery__wrapper {
	display: grid;
	width: auto !important;
	transform: none !important;
}

.woocommerce div.product div.images .flex-viewport .woocommerce-product-gallery__wrapper > .woocommerce-product-gallery__image {
	grid-area: 1 / 1;
	width: 100% !important;
	margin: 0;
	opacity: 0;
	pointer-events: none;
	transition: opacity 200ms ease;
}

.woocommerce div.product div.images .flex-viewport .woocommerce-product-gallery__wrapper > .woocommerce-product-gallery__image.flex-active-slide {
	opacity: 1;
	pointer-events: auto;
}

.woocommerce div.product div.images .woocommerce-product-gallery ol.flex-control-thumbs {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(72px, 1fr));
	gap: 8px;
	margin: 0;
	padding: 0;
	list-style: none;
}

.woocommerce div.product div.images .woocommerce-product-gallery ol.flex-control-thumbs li {
	float: none;
	width: auto !important;
	margin: 0 !important;
}

.woocommerce div.product div.images .woocommerce-product-gallery ol.flex-control-thumbs li img {
	display: block;
	width: 100%;
	border: 1px solid transparent;
	aspect-ratio: 1;
	object-fit: cover;
	cursor: pointer;
	transition: border-color 160ms ease;
}

.woocommerce div.product div.images .woocommerce-product-gallery ol.flex-control-thumbs li img.flex-active,
.woocommerce div.product div.images .woocommerce-product-gallery ol.flex-control-thumbs li:hover img {
	border-color: var(--panam-ink);
}

.woocommerce div.product .woocommerce-product-gallery :is(ol.flex-control-thumbs, .wpgs-nav, .slick-dots),
.woocommerce div.product .woo-product-gallery-slider :is(ol.flex-control-thumbs, .wpgs-nav, .slick-dots) {
	--panam-gallery-thumb-gap: 10px;
	display: flex !important;
	flex-wrap: nowrap;
	gap: var(--panam-gallery-thumb-gap);
	width: 100%;
	margin: 12px 0 0 !important;
	padding: 0 !important;
	overflow-x: auto;
	overflow-y: hidden;
	list-style: none !important;
	scroll-snap-type: x mandatory;
	scrollbar-width: none;
	-webkit-overflow-scrolling: touch;
}

.woocommerce div.product .woocommerce-product-gallery :is(ol.flex-control-thumbs, .wpgs-nav, .slick-dots)::-webkit-scrollbar,
.woocommerce div.product .woo-product-gallery-slider :is(ol.flex-control-thumbs, .wpgs-nav, .slick-dots)::-webkit-scrollbar {
	display: none;
}

.woocommerce div.product .woocommerce-product-gallery :is(ol.flex-control-thumbs, .wpgs-nav, .slick-dots) > li,
.woocommerce div.product .woo-product-gallery-slider :is(ol.flex-control-thumbs, .wpgs-nav, .slick-dots) > li {
	display: block !important;
	float: none !important;
	flex: 0 0 calc((100% - (var(--panam-gallery-thumb-gap) * 2)) / 3) !important;
	width: calc((100% - (var(--panam-gallery-thumb-gap) * 2)) / 3) !important;
	max-width: calc((100% - (var(--panam-gallery-thumb-gap) * 2)) / 3) !important;
	margin: 0 !important;
	padding: 0 !important;
	list-style: none !important;
	scroll-snap-align: start;
}

.woocommerce div.product .woocommerce-product-gallery :is(ol.flex-control-thumbs, .wpgs-nav, .slick-dots) > li::before,
.woocommerce div.product .woocommerce-product-gallery :is(ol.flex-control-thumbs, .wpgs-nav, .slick-dots) > li::marker,
.woocommerce div.product .woo-product-gallery-slider :is(ol.flex-control-thumbs, .wpgs-nav, .slick-dots) > li::before,
.woocommerce div.product .woo-product-gallery-slider :is(ol.flex-control-thumbs, .wpgs-nav, .slick-dots) > li::marker {
	content: "" !important;
}

.woocommerce div.product .woocommerce-product-gallery :is(ol.flex-control-thumbs, .wpgs-nav, .slick-dots) img,
.woocommerce div.product .woo-product-gallery-slider :is(ol.flex-control-thumbs, .wpgs-nav, .slick-dots) img {
	display: block;
	width: 100% !important;
	height: auto !important;
	margin: 0;
	background: var(--panam-surface);
	border: 1px solid transparent;
	aspect-ratio: 1 / 1;
	object-fit: contain;
}

.woocommerce div.product .panam-product-top .summary.entry-summary {
	position: sticky;
	top: calc(var(--panam-header-bottom, 80px) + 20px);
	display: flex;
	flex-direction: column;
	gap: 0;
	align-self: start;
	max-height: none;
	overflow: visible;
}

.woocommerce div.product .product_title {
	margin: 0 0 10px;
	font-size: clamp(1.5rem, 2.4vw, 2rem);
	font-weight: 500;
	line-height: 1.25;
	letter-spacing: 0.01em;
}

.woocommerce div.product .woocommerce-product-rating {
	margin: 0 0 12px;
}

.woocommerce div.product .woocommerce-product-rating .star-rating {
	font-size: 0.85rem;
}

.woocommerce div.product p.price {
	margin: 0 0 16px;
	color: var(--panam-ink);
	font-size: 1.5rem;
	font-weight: 700;
	line-height: 1.3;
}

.woocommerce div.product p.price del {
	display: inline-block;
	margin-right: 10px;
	font-size: 1.25rem;
	font-weight: 500;
	text-decoration: line-through;
	opacity: 1;
}

.woocommerce div.product p.price del .amount {
	color: var(--panam-muted);
	font-weight: 500;
}

.woocommerce div.product p.price ins {
	font-weight: 700;
	text-decoration: none;
}

.woocommerce div.product p.price ins .amount {
	color: var(--panam-sale, #d63638);
}

.woocommerce div.product .woocommerce-product-details__short-description {
	margin: 0 0 20px;
	color: var(--panam-muted);
	font-size: 0.9375rem;
	line-height: 1.65;
	overflow: visible;
}

.woocommerce div.product .woocommerce-product-details__short-description p:last-child {
	margin-bottom: 0;
}

.woocommerce div.product .woocommerce-product-details__short-description.is-clamped {
	display: -webkit-box;
	max-height: calc(1.65em * 20);
	overflow: hidden;
	-webkit-box-orient: vertical;
	-webkit-line-clamp: 20;
}

.woocommerce div.product .woocommerce-product-details__short-description.is-expanded {
	display: block;
	max-height: none;
	overflow: visible;
	-webkit-line-clamp: unset;
}

.panam-read-more {
	display: inline-flex;
	align-items: center;
	width: auto;
	min-height: 0;
	margin: -4px 0 20px;
	padding: 0;
	color: var(--panam-ink);
	background: transparent;
	border: 0;
	border-radius: 0;
	font-size: 0.875rem;
	font-weight: 700;
	line-height: 1.4;
	text-decoration: underline;
	text-underline-offset: 3px;
	cursor: pointer;
}

.panam-read-more:hover,
.panam-read-more:focus-visible {
	color: var(--panam-accent);
	background: transparent;
	outline-offset: 4px;
}

.woocommerce div.product form.cart,
.woocommerce div.product form.variations_form.cart {
	display: grid;
	grid-template-columns: minmax(148px, 168px) minmax(0, 1fr);
	gap: 12px;
	align-items: stretch;
	margin: 0;
	padding-top: 20px;
	border-top: 1px solid var(--panam-border);
}

.woocommerce div.product form.variations_form.cart {
	grid-template-columns: 1fr;
}

.woocommerce div.product form.cart .quantity,
.woocommerce div.product .woocommerce-variation-add-to-cart .quantity {
	width: 100%;
}

.woocommerce div.product form.cart .button,
.woocommerce div.product form.cart .button:hover,
.woocommerce div.product form.cart .button:focus-visible,
.woocommerce div.product .woocommerce-variation-add-to-cart .button {
	width: 100%;
	min-height: 48px;
	height: 48px;
	padding: 0 var(--panam-btn-padding-x);
	border-radius: 0;
	color: var(--panam-on-accent);
	font-size: var(--panam-btn-font-size);
	font-weight: var(--panam-btn-font-weight);
	letter-spacing: var(--panam-btn-letter-spacing);
	text-transform: uppercase;
	white-space: nowrap;
}

.woocommerce div.product .woocommerce-variation-add-to-cart {
	display: grid;
	grid-template-columns: minmax(120px, 140px) minmax(0, 1fr);
	gap: 12px;
}

.woocommerce div.product table.variations {
	width: 100%;
	margin: 0 0 8px;
}

.woocommerce div.product table.variations tr {
	display: block;
	margin-bottom: 14px;
}

.woocommerce div.product table.variations th,
.woocommerce div.product table.variations td {
	display: block;
	padding: 0;
	text-align: left;
}

.woocommerce div.product table.variations label {
	color: var(--panam-ink);
	font-size: 0.8125rem;
	font-weight: 600;
	letter-spacing: 0.04em;
	text-transform: uppercase;
}

.woocommerce div.product table.variations select {
	width: 100%;
	min-height: var(--panam-btn-height);
	margin-top: 8px;
	padding: 10px 12px;
	color: var(--panam-ink);
	background: var(--panam-bg);
	border: 1px solid var(--panam-border);
	border-radius: 0;
}

/* Variation swatches (replace the dropdown on variable products). Progressive
   enhancement: the native <select> shows until theme.js adds `.is-ready`. */
.panam-swatches {
	margin-top: 8px;
}

.panam-swatches__options {
	display: none;
}

.panam-swatches.is-ready .panam-swatches__options {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
}

.panam-swatches.is-ready .panam-swatches__select {
	display: none;
}

.panam-swatch {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 44px;
	min-height: 44px;
	padding: 0 14px;
	color: var(--panam-ink);
	background: var(--panam-bg);
	border: 1px solid var(--panam-border);
	border-radius: 0;
	font-size: 0.875rem;
	font-weight: 600;
	line-height: 1.2;
	cursor: pointer;
	transition: border-color 140ms ease, color 140ms ease, box-shadow 140ms ease;
}

.panam-swatch:hover {
	border-color: var(--panam-ink);
}

.panam-swatch:focus-visible {
	outline: 2px solid var(--panam-accent);
	outline-offset: 2px;
}

.panam-swatch.is-active {
	color: var(--panam-accent);
	border-color: var(--panam-accent);
	box-shadow: inset 0 0 0 1px var(--panam-accent);
}

.panam-swatch.is-disabled,
.panam-swatch:disabled {
	opacity: 0.4;
	cursor: not-allowed;
	text-decoration: line-through;
}

.panam-swatch--image {
	width: 56px;
	height: 56px;
	min-width: 0;
	padding: 0;
	overflow: hidden;
}

.panam-swatch--image.is-active {
	box-shadow: inset 0 0 0 2px var(--panam-accent);
}

.panam-swatch__img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.woocommerce div.product .reset_variations {
	display: inline-block;
	margin-top: 4px;
	color: var(--panam-muted);
	font-size: 0.85rem;
	text-decoration: underline;
}

.woocommerce div.product .single_variation_wrap .woocommerce-variation-description:not(:empty) {
	margin-bottom: 12px;
	color: var(--panam-muted);
	font-size: 0.9rem;
}

.woocommerce div.product .stock {
	margin: 0 0 12px;
	font-size: 0.875rem;
	font-weight: 600;
}

.woocommerce div.product .product_meta {
	margin-top: 20px;
	padding-top: 20px;
	border-top: 1px solid var(--panam-border);
	color: var(--panam-muted);
	font-size: 0.85rem;
	line-height: 1.5;
}

.woocommerce div.product .product_meta > span {
	display: block;
	margin-bottom: 6px;
}

.woocommerce div.product .product_meta a {
	color: var(--panam-ink);
	text-decoration: underline;
}

.woocommerce .quantity .qty {
	width: 100%;
	min-height: 48px;
	padding: 0 12px;
	border: 1px solid var(--panam-border);
	border-radius: 0;
	text-align: center;
}

/* Quantity stepper — sharp minus/plus buttons flanking the number input.
   Rendered by woocommerce/global/quantity-input.php; behaviour in
   initQuantitySteppers() (theme.js). Readonly quantities keep the plain .qty
   rule above (they carry no .quantity--stepper class). */
.quantity.quantity--stepper {
	display: inline-flex;
	align-items: stretch;
	max-width: 100%;
	border: 1px solid var(--panam-border);
	border-radius: 0;
	background: var(--panam-surface);
	overflow: hidden;
	vertical-align: middle;
}

.quantity.quantity--stepper .qty {
	width: 3.25rem;
	min-height: 44px;
	margin: 0;
	padding: 0 4px;
	border: 0;
	border-inline: 1px solid var(--panam-border);
	border-radius: 0;
	background: var(--panam-bg);
	color: var(--panam-ink);
	font-weight: 600;
	text-align: center;
	/* Hide the native spinners — the buttons replace them (arrow keys still work). */
	appearance: textfield;
	-moz-appearance: textfield;
}

.quantity.quantity--stepper .qty::-webkit-outer-spin-button,
.quantity.quantity--stepper .qty::-webkit-inner-spin-button {
	-webkit-appearance: none;
	margin: 0;
}

.quantity.quantity--stepper .qty-btn {
	display: inline-flex;
	flex: 0 0 auto;
	align-items: center;
	justify-content: center;
	width: 44px;
	min-height: 44px;
	padding: 0;
	border: 0;
	background: var(--panam-surface);
	color: var(--panam-ink);
	font-size: 1.25rem;
	font-weight: 500;
	line-height: 1;
	cursor: pointer;
	user-select: none;
	-webkit-user-select: none;
	transition: background-color 0.15s ease, color 0.15s ease;
}

.quantity.quantity--stepper .qty-btn:hover,
.quantity.quantity--stepper .qty-btn:focus-visible {
	background: var(--panam-accent);
	color: var(--panam-on-accent);
	outline: none;
}

.quantity.quantity--stepper .qty-btn:active {
	background: var(--panam-ink);
	color: var(--panam-on-accent);
}

/* Single product: the stepper fills its column — the number field flexes, the
   buttons stay a fixed width. Works for the simple-product qty column (beside the
   add-to-cart button) and the variable-product full-width row (stacked above it). */
.woocommerce div.product form.cart .quantity.quantity--stepper,
.woocommerce div.product .woocommerce-variation-add-to-cart .quantity.quantity--stepper {
	display: flex;
	width: 100%;
}

.woocommerce div.product form.cart .quantity.quantity--stepper .qty,
.woocommerce div.product .woocommerce-variation-add-to-cart .quantity.quantity--stepper .qty {
	flex: 1 1 auto;
	width: auto;
	min-width: 2.25rem;
	min-height: 48px;
}

.woocommerce div.product form.cart .quantity.quantity--stepper .qty-btn,
.woocommerce div.product .woocommerce-variation-add-to-cart .quantity.quantity--stepper .qty-btn {
	width: 44px;
	min-height: 48px;
}

.woocommerce div.product .woocommerce-tabs,
.woocommerce div.product .panam-product-accordion,
.woocommerce div.product .related,
.woocommerce div.product .upsells,
.product-after-widgets {
	position: relative;
	z-index: 2;
	background: var(--panam-bg);
}

.woocommerce div.product .panam-product-accordion {
	margin-top: 0;
	border-top: 1px solid var(--panam-border);
}

.woocommerce div.product .panam-product-accordion__item {
	border-bottom: 1px solid var(--panam-border);
}

/* No trailing divider — the related-products section below has its own top rule. */
.woocommerce div.product .panam-product-accordion__item:last-child {
	border-bottom: 0;
}

.woocommerce div.product .panam-product-accordion__summary {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 16px;
	padding: 20px 2px;
	color: var(--panam-ink);
	font-size: 1.02rem;
	font-weight: 750;
	line-height: 1.3;
	letter-spacing: 0.01em;
	list-style: none;
	cursor: pointer;
	transition: color 140ms ease;
}

.woocommerce div.product .panam-product-accordion__summary:hover {
	color: var(--panam-accent);
}

.woocommerce div.product .panam-product-accordion__summary::-webkit-details-marker {
	display: none;
}

/* Square +/- toggle — the bars are drawn (solid colour, centred via
   background-position) instead of a font glyph, so they're always perfectly
   centred regardless of the font's metrics. Open state = a single bar (minus). */
.woocommerce div.product .panam-product-accordion__summary::after {
	content: "";
	flex: 0 0 auto;
	width: 26px;
	height: 26px;
	border: 1px solid var(--panam-border);
	border-radius: var(--panam-header-radius, 0);
	background-image:
		linear-gradient(var(--panam-muted), var(--panam-muted)),
		linear-gradient(var(--panam-muted), var(--panam-muted));
	background-repeat: no-repeat;
	background-position: center;
	background-size: 12px 2px, 2px 12px;
	transition: background-color 140ms ease, border-color 140ms ease;
}

.woocommerce div.product .panam-product-accordion__summary:hover::after {
	border-color: var(--panam-accent);
	background-image:
		linear-gradient(var(--panam-accent), var(--panam-accent)),
		linear-gradient(var(--panam-accent), var(--panam-accent));
}

.woocommerce div.product .panam-product-accordion__item[open] > .panam-product-accordion__summary::after {
	border-color: var(--panam-accent);
	background-color: var(--panam-accent);
	background-image: linear-gradient(var(--panam-on-accent), var(--panam-on-accent));
	background-size: 12px 2px;
}

.woocommerce div.product .panam-product-accordion__panel {
	padding: 0 0 22px;
	color: var(--panam-muted);
	font-size: 0.9375rem;
	line-height: 1.65;
}

.woocommerce div.product .panam-product-accordion__panel > h2:first-child {
	display: none;
}

.woocommerce div.product .related.products,
.woocommerce div.product .upsells.products {
	margin-top: clamp(32px, 5vw, 56px);
	padding-top: clamp(32px, 5vw, 56px);
	border-top: 1px solid var(--panam-border);
}

.woocommerce div.product .related.products > h2,
.woocommerce div.product .upsells.products > h2 {
	margin: 0 0 24px;
	font-size: clamp(1.25rem, 2vw, 1.5rem);
	font-weight: 500;
	letter-spacing: 0.02em;
}

.panam-product-reviews {
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(300px, 420px);
	gap: clamp(24px, 4vw, 44px);
	align-items: start;
	max-width: 100%;
	overflow: clip;
}

.panam-product-reviews__list,
.panam-product-reviews__form-wrap {
	min-width: 0;
	max-width: 100%;
}

.panam-product-reviews__header {
	display: flex;
	gap: 18px;
	align-items: flex-start;
	justify-content: space-between;
	margin-bottom: 20px;
}

.panam-product-reviews__header .eyebrow {
	margin: 0 0 6px;
	color: var(--panam-muted);
	font-size: 0.75rem;
	font-weight: 850;
	letter-spacing: 0.08em;
	text-transform: uppercase;
}

.panam-product-reviews .woocommerce-Reviews-title {
	margin: 0;
	color: var(--panam-ink);
	font-size: clamp(1.25rem, 2vw, 1.65rem);
	font-weight: 650;
	line-height: 1.2;
}

.panam-product-reviews__score {
	display: grid;
	gap: 3px;
	justify-items: end;
	color: var(--panam-muted);
	font-size: 0.85rem;
	white-space: nowrap;
}

.panam-product-reviews__score strong {
	color: var(--panam-ink);
	font-size: 1.45rem;
	line-height: 1;
}

.panam-review-list {
	display: grid;
	gap: 14px;
	padding: 0;
	margin: 0;
	list-style: none;
	min-width: 0;
}

.panam-review-card {
	min-width: 0;
	margin: 0;
}

.panam-review-card__inner {
	min-width: 0;
	padding: 18px;
	overflow: hidden;
	background: var(--panam-bg);
	border: 1px solid var(--panam-border);
	border-radius: 0;
}

.panam-review-card__header {
	display: grid;
	grid-template-columns: 48px minmax(0, 1fr) auto;
	gap: 12px;
	align-items: center;
	margin-bottom: 12px;
}

.panam-review-card__avatar {
	width: 48px;
	height: 48px;
	border-radius: 50%;
}

.panam-review-card__meta {
	display: grid;
	gap: 2px;
	min-width: 0;
}

.panam-review-card__meta strong {
	color: var(--panam-ink);
	font-size: 0.95rem;
	line-height: 1.2;
}

.panam-review-card__meta span,
.panam-review-card__verified {
	color: var(--panam-muted);
	font-size: 0.78rem;
	font-weight: 650;
}

.panam-review-card__verified {
	padding: 5px 8px;
	color: var(--panam-accent);
	background: color-mix(in srgb, var(--panam-accent), var(--panam-bg) 90%);
}

.panam-review-card__rating,
.panam-review-stars {
	display: flex;
	flex-direction: row-reverse;
	justify-content: flex-end;
	gap: 2px;
	color: var(--panam-rating);
	font-size: 1rem;
	line-height: 1;
}

.panam-review-card__rating {
	flex-direction: row;
	margin-bottom: 10px;
}

.panam-review-card__rating span:not(.is-filled) {
	color: color-mix(in srgb, var(--panam-border), var(--panam-bg) 15%);
}

.panam-review-card__title {
	margin: 0 0 8px;
	color: var(--panam-ink);
	font-size: 1rem;
	font-weight: 750;
	line-height: 1.35;
}

.panam-review-card__content {
	min-width: 0;
	color: var(--panam-muted);
	font-size: 0.9375rem;
	line-height: 1.65;
	overflow-wrap: anywhere;
	word-break: break-word;
}

.panam-review-card__content p {
	max-width: 100%;
	overflow-wrap: anywhere;
	word-break: break-word;
}

.panam-review-card__content p:last-child {
	margin-bottom: 0;
}

.panam-review-card__photos {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 88px));
	gap: 8px;
	margin-top: 14px;
}

.panam-review-card__photos .panam-review-photo-button,
.panam-review-card__photos img {
	display: block;
	width: 100%;
	aspect-ratio: 1;
}

.panam-review-card__photos img {
	height: 100%;
	object-fit: cover;
	background: var(--panam-surface);
}

.panam-product-reviews__form {
	position: sticky;
	top: calc(var(--panam-header-bottom, 80px) + 20px);
	min-width: 0;
	max-width: 100%;
	padding: 20px;
	background: color-mix(in srgb, var(--panam-surface), var(--panam-bg) 64%);
	border: 1px solid var(--panam-border);
	border-radius: 0;
	box-sizing: border-box;
}

.panam-product-reviews__form .comment-reply-title {
	display: block;
	margin: 0 0 8px;
	color: var(--panam-ink);
	font-size: 1.2rem;
	font-weight: 750;
	line-height: 1.25;
}

.panam-product-reviews__form .logged-in-as,
.panam-review-login p,
.comment-form-photos span {
	color: var(--panam-muted);
	font-size: 0.875rem;
	line-height: 1.55;
}

.panam-review-form {
	display: grid;
	gap: 14px;
	min-width: 0;
	max-width: 100%;
}

.panam-review-form p,
.panam-review-form fieldset {
	display: grid;
	gap: 7px;
	padding: 0;
	margin: 0;
	border: 0;
}

.panam-review-form label,
.panam-review-form legend {
	color: var(--panam-ink);
	font-size: 0.8125rem;
	font-weight: 850;
	line-height: 1.2;
	letter-spacing: 0.04em;
	text-transform: uppercase;
}

.panam-review-form input[type="text"],
.panam-review-form input[type="email"],
.panam-review-form input[type="file"],
.panam-review-form textarea {
	width: 100%;
	max-width: 100%;
	box-sizing: border-box;
	padding: 10px 12px;
	color: var(--panam-ink);
	background: var(--panam-bg);
	border: 1px solid var(--panam-border);
	border-radius: 0;
}

.panam-review-form input[type="file"] {
	min-width: 0;
	overflow: hidden;
}

.panam-review-form textarea {
	min-height: 136px;
	resize: vertical;
}

.panam-review-stars {
	flex-direction: row-reverse;
	justify-content: flex-end;
	gap: 6px;
}

.panam-review-stars input {
	position: absolute;
	width: 1px;
	height: 1px;
	overflow: hidden;
	clip: rect(0 0 0 0);
}

.panam-review-stars label {
	display: inline-grid;
	place-items: center;
	width: 34px;
	height: 34px;
	color: color-mix(in srgb, var(--panam-border), var(--panam-bg) 8%);
	font-size: 1.55rem;
	line-height: 1;
	letter-spacing: 0;
	cursor: pointer;
	transition: color 140ms ease, transform 140ms ease;
}

.panam-review-stars label span[aria-hidden="true"] {
	display: block;
	pointer-events: none;
}

.panam-review-stars input:checked ~ label,
.panam-review-stars input.is-active ~ label,
.panam-review-stars input:focus-visible + label,
.panam-review-stars label:hover,
.panam-review-stars label:hover ~ label {
	color: var(--panam-rating);
}

.panam-review-stars label:hover {
	transform: translateY(-1px);
}

.panam-review-form .form-submit {
	margin: 2px 0 0;
}

.panam-review-form .submit,
.panam-review-login .button {
	width: 100%;
	min-height: var(--panam-btn-height);
	height: var(--panam-btn-height);
	border-radius: 0;
	color: var(--panam-on-accent);
	background: var(--panam-accent);
	border-color: var(--panam-accent);
	font-size: var(--panam-btn-font-size);
	font-weight: var(--panam-btn-font-weight);
	letter-spacing: var(--panam-btn-letter-spacing);
	text-transform: uppercase;
}

.panam-review-login {
	display: grid;
	gap: 10px;
}

.panam-review-login h3 {
	margin: 0;
	color: var(--panam-ink);
	font-size: 1.15rem;
	line-height: 1.25;
}

.panam-review-purchase-panel {
	position: fixed;
	inset: 0;
	z-index: 999;
	pointer-events: none;
}

.panam-review-purchase-overlay {
	position: absolute;
	inset: 0;
	background: rgba(9, 30, 34, 0.42);
	opacity: 0;
	transition: opacity 180ms ease;
}

.panam-review-purchase-drawer {
	position: absolute;
	top: 0;
	right: 0;
	display: grid;
	grid-template-rows: auto 1fr;
	width: min(460px, 100vw);
	height: 100%;
	color: var(--panam-ink);
	background: var(--panam-bg);
	box-shadow: -22px 0 48px rgba(9, 30, 34, 0.18);
	transform: translateX(100%);
	transition: transform 220ms ease;
	outline: none;
}

html.review-purchase-is-open,
html.review-purchase-is-open body {
	overflow: hidden;
}

html.review-purchase-is-open .panam-review-purchase-panel {
	pointer-events: auto;
}

html.review-purchase-is-open .panam-review-purchase-overlay {
	opacity: 1;
}

html.review-purchase-is-open .panam-review-purchase-drawer {
	transform: translateX(0);
}

.panam-review-purchase-header {
	display: flex;
	align-items: flex-start;
	justify-content: space-between;
	gap: 16px;
	padding: 20px;
	border-bottom: 1px solid var(--panam-border);
}

.panam-review-purchase-header span {
	display: block;
	margin-bottom: 5px;
	color: var(--panam-muted);
	font-size: 0.78rem;
	font-weight: 800;
	letter-spacing: 0.08em;
	text-transform: uppercase;
}

.panam-review-purchase-header h3 {
	margin: 0;
	color: var(--panam-ink);
	font-size: 1.05rem;
	line-height: 1.3;
}

.panam-review-purchase-header button {
	width: 34px;
	height: 34px;
	padding: 0;
	color: var(--panam-ink);
	background: var(--panam-bg);
	border: 1px solid var(--panam-border);
	border-radius: 0;
	font-size: 1.35rem;
	line-height: 1;
	cursor: pointer;
}

.panam-review-purchase-body {
	overflow: auto;
	padding: 20px;
}

.panam-review-purchase-body form.variations_form.cart {
	display: grid;
	grid-template-columns: 1fr;
	gap: 14px;
	margin: 0;
	padding: 0;
	border: 0;
}

.panam-review-purchase-body table.variations {
	margin: 0;
}

.panam-review-purchase-body .woocommerce-variation-add-to-cart {
	grid-template-columns: minmax(92px, 112px) minmax(0, 1fr);
}

.panam-review-toast {
	position: fixed;
	right: clamp(14px, 3vw, 32px);
	bottom: clamp(14px, 3vw, 32px);
	z-index: 1000;
	display: grid;
	grid-template-columns: 1fr auto;
	gap: 4px 14px;
	width: min(390px, calc(100vw - 28px));
	padding: 16px 18px;
	color: var(--panam-ink);
	background: var(--panam-bg);
	border: 1px solid color-mix(in srgb, var(--panam-accent), var(--panam-bg) 72%);
	box-shadow: 0 18px 46px rgba(11, 38, 45, 0.16);
	animation: panam-toast-in 220ms ease-out both;
}

.panam-review-toast strong,
.panam-review-toast span {
	grid-column: 1;
}

.panam-review-toast strong {
	font-size: 0.95rem;
	font-weight: 850;
}

.panam-review-toast span {
	color: var(--panam-muted);
	font-size: 0.9rem;
	line-height: 1.45;
}

.panam-review-toast button {
	grid-column: 2;
	grid-row: 1 / span 2;
	align-self: start;
	width: 28px;
	height: 28px;
	padding: 0;
	color: var(--panam-muted);
	background: transparent;
	border: 0;
	font-size: 1.3rem;
	line-height: 1;
	cursor: pointer;
}

.panam-review-toast.is-hiding {
	animation: panam-toast-out 180ms ease-in both;
}

.panam-review-lightbox {
	position: fixed;
	inset: 0;
	z-index: 10000;
	display: grid;
	place-items: center;
	padding: 20px;
	pointer-events: none;
	opacity: 0;
	visibility: hidden;
	transition: opacity 180ms ease, visibility 180ms ease;
}

.panam-review-lightbox.is-open {
	pointer-events: auto;
	opacity: 1;
	visibility: visible;
}

.panam-review-lightbox__overlay {
	position: absolute;
	inset: 0;
	background: rgba(15, 24, 22, 0.82);
}

.panam-review-lightbox__dialog {
	position: relative;
	z-index: 1;
	display: grid;
	grid-template-columns: auto minmax(0, 1fr) auto;
	gap: 12px;
	align-items: center;
	width: min(100%, 980px);
	max-height: calc(100vh - 40px);
}

.panam-review-lightbox__figure {
	display: grid;
	gap: 10px;
	min-width: 0;
	margin: 0;
}

.panam-review-lightbox__image {
	display: block;
	width: 100%;
	max-height: calc(100vh - 132px);
	object-fit: contain;
	background: var(--panam-bg);
	box-shadow: 0 22px 70px rgba(0, 0, 0, 0.28);
}

.panam-review-lightbox__caption {
	min-height: 1.4em;
	color: var(--panam-on-accent);
	font-weight: 750;
	text-align: center;
}

.panam-review-lightbox__counter {
	color: rgba(255, 255, 255, 0.78);
	font-size: 0.9rem;
	font-weight: 800;
	text-align: center;
}

.panam-review-lightbox__button,
.panam-review-lightbox__close {
	display: inline-grid;
	place-items: center;
	width: 44px;
	height: 44px;
	padding: 0;
	color: var(--panam-on-accent);
	background: rgba(255, 255, 255, 0.12);
	border: 1px solid rgba(255, 255, 255, 0.24);
	border-radius: 0;
	cursor: pointer;
}

.panam-review-lightbox__button:hover,
.panam-review-lightbox__close:hover,
.panam-review-lightbox__button:focus-visible,
.panam-review-lightbox__close:focus-visible {
	background: var(--panam-primary);
	outline: none;
}

.panam-review-lightbox__close {
	position: absolute;
	top: 18px;
	right: 18px;
	z-index: 2;
	font-size: 1.5rem;
	line-height: 1;
}

html.review-lightbox-is-open,
html.review-lightbox-is-open body {
	overflow: hidden;
}

@keyframes panam-toast-in {
	from {
		opacity: 0;
		transform: translateY(12px);
	}
	to {
		opacity: 1;
		transform: translateY(0);
	}
}

@keyframes panam-toast-out {
	from {
		opacity: 1;
		transform: translateY(0);
	}
	to {
		opacity: 0;
		transform: translateY(10px);
	}
}

@media (min-width: 900px) {
	.woocommerce div.product div.images .woocommerce-product-gallery:has(ol.flex-control-thumbs li) {
		display: block;
	}

	.woocommerce div.product div.images .woocommerce-product-gallery:has(ol.flex-control-thumbs li) .flex-viewport {
		margin-bottom: 0;
	}

	.woocommerce div.product div.images .woocommerce-product-gallery:has(ol.flex-control-thumbs li) ol.flex-control-thumbs {
		grid-template-columns: none;
	}
}

@media (max-width: 899px) {
	.panam-review-lightbox {
		padding: 12px;
	}

	.panam-review-lightbox__dialog {
		grid-template-columns: 1fr 1fr;
		gap: 10px;
	}

	.panam-review-lightbox__figure {
		grid-column: 1 / -1;
		grid-row: 1;
	}

	.panam-review-lightbox__image {
		max-height: calc(100vh - 170px);
	}

	.panam-review-lightbox__button {
		width: 100%;
	}

	.panam-contact-hero__inner,
	.panam-contact-grid {
		grid-template-columns: 1fr;
	}

	.panam-contact-hero__inner {
		align-items: stretch;
	}

	.panam-contact-form {
		grid-template-columns: 1fr;
	}

	.panam-contact-support {
		position: static;
	}

	.panam-contact-method {
		padding: 16px;
	}

	.woocommerce div.product .panam-product-top {
		grid-template-columns: 1fr;
	}

	.panam-product-reviews {
		grid-template-columns: 1fr;
	}

	.panam-product-reviews__form {
		position: static;
	}

	.woocommerce div.product div.images,
	.woocommerce div.product div.images .woocommerce-product-gallery {
		width: 100% !important;
		max-width: 100%;
	}

	.woocommerce div.product div.images .woocommerce-product-gallery .flex-viewport {
		overflow: visible !important;
		margin-bottom: 12px;
		background: transparent;
		aspect-ratio: auto;
	}

	.woocommerce div.product div.images .woocommerce-product-gallery__wrapper {
		--panam-mobile-gallery-gap: 10px;
		display: block !important;
		width: auto !important;
		transition: none !important;
	}

	.woocommerce div.product div.images .woocommerce-product-gallery__wrapper > .woocommerce-product-gallery__image,
	.woocommerce div.product div.images .woocommerce-product-gallery__wrapper > .woocommerce-product-gallery__image:first-child {
		width: 100% !important;
		min-width: 0 !important;
		max-width: 100% !important;
		overflow: hidden;
		background: var(--panam-surface);
		aspect-ratio: 1 / 1;
		opacity: 1 !important;
		pointer-events: auto;
	}

	.woocommerce div.product div.images .woocommerce-product-gallery__wrapper > .woocommerce-product-gallery__image:first-child {
		display: block;
	}

	.woocommerce div.product div.images .woocommerce-product-gallery__wrapper > .woocommerce-product-gallery__image a,
	.woocommerce div.product div.images .woocommerce-product-gallery__wrapper > .woocommerce-product-gallery__image:first-child a {
		display: block;
		width: 100%;
		height: 100%;
	}

	.woocommerce div.product div.images .woocommerce-product-gallery__wrapper > .woocommerce-product-gallery__image img,
	.woocommerce div.product div.images .woocommerce-product-gallery__wrapper > .woocommerce-product-gallery__image:first-child img {
		display: block;
		width: 100% !important;
		height: 100% !important;
		max-width: none;
		object-fit: contain;
	}

	.woocommerce div.product .woo-product-gallery-slider .wpgs-for {
		position: relative;
		width: 100%;
		max-width: 100%;
	}

	.woocommerce div.product .woo-product-gallery-slider .wpgs-for .slick-list {
		overflow: hidden !important;
		height: auto !important;
		background: var(--panam-surface);
		aspect-ratio: 1 / 1;
	}

	.woocommerce div.product .woo-product-gallery-slider .wpgs-for .slick-track {
		--panam-mobile-gallery-gap: 10px;
		display: block !important;
		transition: none !important;
	}

	.woocommerce div.product .woo-product-gallery-slider .wpgs-for .slick-track::before,
	.woocommerce div.product .woo-product-gallery-slider .wpgs-for .slick-track::after {
		display: none;
	}

	.woocommerce div.product .woo-product-gallery-slider .wpgs-for .slick-slide,
	.woocommerce div.product .woo-product-gallery-slider .wpgs-for .slick-track > .woocommerce-product-gallery__image {
		float: none !important;
		display: block !important;
		width: 100% !important;
		min-width: 0 !important;
		max-width: 100% !important;
		height: auto !important;
		overflow: hidden;
		background: var(--panam-surface);
		aspect-ratio: 1 / 1;
		opacity: 1 !important;
	}

	.woocommerce div.product .woo-product-gallery-slider .wpgs-for .slick-slide:first-child,
	.woocommerce div.product .woo-product-gallery-slider .wpgs-for .slick-track > .woocommerce-product-gallery__image:first-child {
		display: block !important;
	}

	.woocommerce div.product .woo-product-gallery-slider .wpgs-for .woocommerce-product-gallery__image a,
	.woocommerce div.product .woo-product-gallery-slider .wpgs-for .zoomtoo-container {
		display: block;
		width: 100% !important;
		height: 100% !important;
	}

	.woocommerce div.product .woo-product-gallery-slider .wpgs-for img {
		display: block;
		width: 100% !important;
		height: 100% !important;
		object-fit: contain;
	}

	.woocommerce div.product .woo-product-gallery-slider .slick-arrow {
		display: none !important;
	}

	.woocommerce div.product .panam-product-top .summary.entry-summary {
		position: static;
		max-height: none;
		overflow: visible;
	}

	.woocommerce div.product form.cart,
	.woocommerce div.product .woocommerce-variation-add-to-cart {
		grid-template-columns: 1fr;
	}
}

.woocommerce table.shop_table {
	border: 1px solid var(--panam-border);
	border-radius: var(--panam-radius);
}

/* Checkout corner radius — Theme settings > Design > Shape & corners > Checkout
   radius (--panam-radius-checkout). Defaults to the global radius until set, so
   the checkout looks unchanged until customized. Scoped to the checkout page. */
.woocommerce-checkout .woocommerce :where(input.input-text, textarea, select),
.woocommerce-checkout form.checkout :where(input.input-text, textarea, select) {
	border-radius: var(--panam-radius-checkout);
}

.woocommerce-checkout .woocommerce table.shop_table {
	border-radius: var(--panam-radius-checkout);
	overflow: hidden;
}

.woocommerce-checkout #payment,
.woocommerce-checkout .woocommerce-checkout-payment {
	border-radius: var(--panam-radius-checkout);
}

/* WooCommerce notices (add-to-cart message, cart/checkout info, errors) —
   a modern padded card with a coloured left edge + soft tint per type. */
.woocommerce-message,
.woocommerce-info,
.woocommerce-error {
	margin: 0 0 24px;
	padding: 14px 18px;
	color: var(--panam-ink);
	background: var(--panam-surface);
	border: 1px solid var(--panam-border);
	border-left: 3px solid var(--panam-accent);
	border-radius: var(--panam-radius);
	font-size: 0.95rem;
	font-weight: 600;
	line-height: 1.45;
	list-style: none;
}

.woocommerce-message {
	border-left-color: var(--panam-success);
	background: color-mix(in srgb, var(--panam-success) 8%, var(--panam-surface));
}

.woocommerce-error {
	border-left-color: var(--panam-sale, #d63638);
	background: color-mix(in srgb, var(--panam-sale, #d63638) 7%, var(--panam-surface));
}

/* WooCommerce focuses the notice for screen readers after add-to-cart; suppress
   the default black focus ring (it's programmatic focus, not keyboard, and the
   notice has tabindex="-1" so it's never reached by Tab). */
.woocommerce-message:focus,
.woocommerce-info:focus,
.woocommerce-error:focus {
	outline: none;
}

.woocommerce-message::before,
.woocommerce-info::before {
	color: var(--panam-accent);
}

/* "Added to cart" message: message text left, a styled action button right. */
.woocommerce-message:has(.button),
.woocommerce-info:has(.button) {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 8px 16px;
}

.woocommerce-message .button,
.woocommerce-info .button {
	order: 2;
	display: inline-flex;
	align-items: center;
	min-height: 40px;
	margin-left: auto;
	padding: 0 18px;
	color: var(--panam-on-accent);
	background: var(--panam-accent);
	border: 1px solid var(--panam-accent);
	border-radius: var(--panam-header-radius, var(--panam-radius));
	font-size: 0.78rem;
	font-weight: 800;
	letter-spacing: 0.03em;
	text-transform: uppercase;
	text-decoration: none;
	white-space: nowrap;
}

.woocommerce-message .button:hover,
.woocommerce-message .button:focus-visible,
.woocommerce-info .button:hover,
.woocommerce-info .button:focus-visible {
	color: var(--panam-on-accent);
	background: var(--panam-ink);
	border-color: var(--panam-ink);
}

.panam-shop-archive nav.woocommerce-pagination {
	margin-top: clamp(28px, 4vw, 44px);
	padding-top: clamp(20px, 3vw, 28px);
	border-top: 1px solid var(--panam-border);
}

.woocommerce nav.woocommerce-pagination ul {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	justify-content: center;
	margin: 0;
	border: 0;
	list-style: none;
}

.woocommerce nav.woocommerce-pagination ul li {
	border: 0;
	list-style: none;
}

/* Kill the default list bullet that otherwise shows next to each page button. */
.woocommerce nav.woocommerce-pagination ul li::marker {
	content: "";
}

.woocommerce nav.woocommerce-pagination ul li a,
.woocommerce nav.woocommerce-pagination ul li span {
	display: inline-flex;
	min-width: 42px;
	min-height: 42px;
	align-items: center;
	justify-content: center;
	border: 1px solid var(--panam-border);
	border-radius: 0;
	font-size: 0.875rem;
}

.woocommerce nav.woocommerce-pagination ul li span.current {
	color: var(--panam-on-accent);
	background: var(--panam-ink);
	border-color: var(--panam-ink);
}

.panam-shop-archive nav.woocommerce-pagination ul li a:hover,
.panam-shop-archive nav.woocommerce-pagination ul li a:focus-visible {
	color: var(--panam-on-accent);
	background: var(--panam-accent);
	border-color: var(--panam-accent);
}

/* Checkout (and order-received): drop the page-title header — these layouts
   provide their own headings, so the big "Checkout" title is redundant. */
.woocommerce-checkout .entry-header {
	display: none;
}

.woocommerce-cart .entry--page > .entry-header {
	margin-bottom: 24px;
}

.woocommerce-cart .entry-title {
	font-size: clamp(2.2rem, 5vw, 4rem);
}

.woocommerce-cart .entry-content > .woocommerce {
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(300px, 360px);
	gap: 24px;
	align-items: start;
}

.woocommerce-cart .woocommerce-notices-wrapper,
.woocommerce-cart .woocommerce > .woocommerce-notices-wrapper,
.woocommerce-cart .woocommerce > .wc-empty-cart-message,
.woocommerce-cart .woocommerce > .return-to-shop {
	grid-column: 1 / -1;
}

.woocommerce-cart form.woocommerce-cart-form {
	min-width: 0;
}

.woocommerce-cart table.shop_table.cart,
.woocommerce-cart table.shop_table.cart tbody,
.woocommerce-cart table.shop_table.cart tr,
.woocommerce-cart table.shop_table.cart td {
	display: block;
	width: auto;
}

.woocommerce-cart table.shop_table.cart {
	margin: 0;
	background: var(--panam-bg);
	border: 1px solid var(--panam-border);
	border-radius: var(--panam-radius);
	box-shadow: 0 10px 30px rgb(23 33 31 / 7%);
	overflow: hidden;
}

.woocommerce-cart table.shop_table.cart thead {
	display: none;
}

/* Each line item is a self-contained grid card so it never overflows the column. */
.woocommerce-cart table.cart tr.cart_item {
	display: grid;
	grid-template-columns: 72px minmax(0, 1fr) auto;
	grid-template-areas:
		"thumb name  remove"
		"thumb price total"
		"thumb qty   total";
	gap: 4px 14px;
	align-items: center;
	padding: 16px;
	border-top: 1px solid var(--panam-border);
}

.woocommerce-cart table.cart tbody tr.cart_item:first-of-type {
	border-top: 0;
}

.woocommerce-cart table.cart tr.cart_item td {
	padding: 0;
	border: 0;
}

.woocommerce-cart table.cart td.product-thumbnail {
	grid-area: thumb;
	align-self: start;
}

.woocommerce-cart table.cart td.product-thumbnail img {
	display: block;
	width: 72px;
	height: 72px;
	object-fit: contain;
	background: var(--panam-surface);
	border: 1px solid var(--panam-border);
	border-radius: var(--panam-radius);
}

.woocommerce-cart table.cart td.product-name {
	grid-area: name;
	align-self: center;
	font-size: 0.96rem;
	line-height: 1.35;
}

.woocommerce-cart table.cart td.product-name a {
	color: var(--panam-ink);
	font-weight: 800;
	text-decoration: none;
}

.woocommerce-cart table.cart td.product-name a:hover {
	color: var(--panam-accent);
}

.woocommerce-cart table.cart td.product-price {
	grid-area: price;
	align-self: end;
	color: var(--panam-muted);
	font-size: 0.85rem;
	font-weight: 700;
	white-space: nowrap;
}

.woocommerce-cart table.cart td.product-quantity {
	grid-area: qty;
	align-self: start;
}

.woocommerce-cart table.cart td.product-subtotal {
	grid-area: total;
	justify-self: end;
	align-self: center;
	font-size: 1.02rem;
	font-weight: 850;
	white-space: nowrap;
}

.woocommerce-cart table.cart td.product-remove {
	grid-area: remove;
	justify-self: end;
	align-self: start;
}

.woocommerce-cart table.cart .product-remove a {
	display: grid;
	width: 30px;
	height: 30px;
	place-items: center;
	color: var(--panam-muted) !important;
	background: var(--panam-bg);
	border: 1px solid var(--panam-border);
	border-radius: 999px;
	font-size: 1.1rem;
	line-height: 1;
	text-decoration: none;
}

.woocommerce-cart table.cart .product-remove a:hover {
	color: var(--panam-on-accent) !important;
	background: var(--panam-sale);
	border-color: var(--panam-sale);
}

.woocommerce-cart table.cart .quantity {
	display: inline-flex;
}

.woocommerce-cart table.cart .quantity .qty {
	width: 72px;
	min-height: 38px;
	padding: 6px;
	text-align: center;
	border: 1px solid var(--panam-border);
	border-radius: var(--panam-radius);
}

/* Cart: compact stepper (overrides the plain .qty sizing above). */
.woocommerce-cart table.cart .quantity.quantity--stepper .qty {
	width: 2.75rem;
	min-height: 40px;
	padding: 0 4px;
	border: 0;
	border-inline: 1px solid var(--panam-border);
	border-radius: 0;
}

.woocommerce-cart table.cart .quantity.quantity--stepper .qty-btn {
	width: 38px;
	min-height: 40px;
	font-size: 1.125rem;
}

/* Cart actions — a fixed 2-column grid (coupon | update) so applying a coupon
   (which inserts/changes the hook message) can't reflow the row and shift the
   "Update cart" button. The button stays pinned in the right column. */
.woocommerce-cart table.cart td.actions {
	display: grid;
	grid-template-columns: minmax(0, 1fr) auto;
	gap: 12px 16px;
	align-items: start;
	padding: 16px;
	border-top: 1px solid var(--panam-border);
	background: color-mix(in srgb, var(--panam-surface), var(--panam-bg) 42%);
}

/* Coupon = input + apply button as one cohesive group; any helper / message
   wraps to its own line below them, inside this column. */
.woocommerce-cart table.cart td.actions .coupon {
	grid-column: 1;
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	align-items: center;
	margin: 0;
	float: none;
}

.woocommerce-cart table.cart .coupon :is(p, span, small, .woocommerce-info) {
	flex-basis: 100%;
	margin: 0;
	color: var(--panam-muted);
	font-size: 0.85rem;
	font-weight: 500;
}

.woocommerce-cart table.cart td.actions > button[name="update_cart"],
.woocommerce-cart table.cart td.actions > input[name="update_cart"] {
	grid-column: 2;
	justify-self: end;
	margin: 0;
}

.woocommerce-cart table.cart .coupon .input-text {
	flex: 1 1 200px;
	width: auto;
	min-width: 0;
	max-width: 280px;
	min-height: var(--panam-btn-height);
	padding: 10px 12px;
	border: 1px solid var(--panam-border);
	border-radius: var(--panam-radius);
}

.woocommerce-cart table.cart .coupon button[name="apply_coupon"] {
	flex: 0 0 auto;
	white-space: nowrap;
}

@media (max-width: 560px) {
	.woocommerce-cart table.cart td.actions {
		grid-template-columns: 1fr;
	}

	.woocommerce-cart table.cart td.actions > button[name="update_cart"],
	.woocommerce-cart table.cart td.actions > input[name="update_cart"] {
		grid-column: 1;
		justify-self: stretch;
	}

	.woocommerce-cart table.cart .coupon .input-text {
		max-width: none;
	}
}

.woocommerce-cart .cart-collaterals {
	position: sticky;
	top: 128px;
	width: auto;
}

.woocommerce-cart .cart-collaterals::before,
.woocommerce-cart .cart-collaterals::after {
	display: none;
}

.woocommerce-cart .cart-collaterals .cart_totals {
	float: none;
	width: 100%;
	padding: 22px;
	background: var(--panam-bg);
	border: 1px solid var(--panam-border);
	border-radius: var(--panam-radius);
	box-shadow: 0 18px 42px rgb(23 33 31 / 10%);
}

.woocommerce-cart .cart_totals h2 {
	margin: 0 0 16px;
	font-size: 1.35rem;
}

.woocommerce-cart .cart_totals table.shop_table {
	display: block;
	margin: 0 0 18px;
	border: 0;
}

.woocommerce-cart .cart_totals table.shop_table tbody {
	display: block;
}

.woocommerce-cart .cart_totals tr {
	display: flex;
	gap: 16px;
	align-items: baseline;
	justify-content: space-between;
	border-top: 1px solid var(--panam-border);
}

.woocommerce-cart .cart_totals th,
.woocommerce-cart .cart_totals td {
	display: block;
	padding: 13px 0;
}

.woocommerce-cart .cart_totals th {
	color: var(--panam-muted);
	font-size: 0.92rem;
	font-weight: 850;
	text-align: left;
	white-space: nowrap;
}

.woocommerce-cart .cart_totals td {
	color: var(--panam-ink);
	font-weight: 850;
	text-align: right;
}

/* Shipping row: stack the label above the options so nothing collides. */
.woocommerce-cart .cart_totals tr.woocommerce-shipping-totals {
	flex-direction: column;
	align-items: stretch;
	gap: 6px;
}

.woocommerce-cart .cart_totals tr.woocommerce-shipping-totals th {
	padding-bottom: 0;
}

.woocommerce-cart .cart_totals tr.woocommerce-shipping-totals td {
	padding-top: 0;
	text-align: left;
	font-weight: 600;
}

.woocommerce-cart .cart_totals ul#shipping_method,
.woocommerce-cart .cart_totals .woocommerce-shipping-methods {
	display: grid;
	gap: 8px;
	margin: 0;
	padding: 0;
	list-style: none;
}

.woocommerce-cart .cart_totals .woocommerce-shipping-methods li {
	display: flex;
	gap: 8px;
	align-items: baseline;
	margin: 0;
	color: var(--panam-ink);
}

.woocommerce-cart .cart_totals .woocommerce-shipping-methods li label {
	display: inline;
}

.woocommerce-cart .cart_totals .woocommerce-shipping-destination {
	margin: 8px 0 0;
	color: var(--panam-muted);
	font-size: 0.85rem;
	font-weight: 600;
	line-height: 1.45;
}

.woocommerce-cart .cart_totals .woocommerce-shipping-calculator {
	margin: 6px 0 0;
}

.woocommerce-cart .cart_totals .shipping-calculator-button {
	display: inline-block;
	color: var(--panam-accent);
	font-size: 0.85rem;
	font-weight: 700;
	text-decoration: underline;
	text-underline-offset: 2px;
}

.woocommerce-cart .cart_totals .order-total {
	border-top: 1px solid var(--panam-ink);
}

.woocommerce-cart .cart_totals .order-total th,
.woocommerce-cart .cart_totals .order-total td {
	color: var(--panam-ink);
	font-size: 1.2rem;
}

.woocommerce-cart .wc-proceed-to-checkout {
	padding: 0;
}

.woocommerce-cart .wc-proceed-to-checkout a.checkout-button {
	width: 100%;
	min-height: var(--panam-btn-height);
	height: var(--panam-btn-height);
	margin: 0;
	padding: 0 var(--panam-btn-padding-x);
	color: var(--panam-on-accent);
	font-size: var(--panam-btn-font-size);
	font-weight: var(--panam-btn-font-weight);
	letter-spacing: var(--panam-btn-letter-spacing);
	white-space: nowrap;
}

.woocommerce-cart .wc-proceed-to-checkout a.checkout-button:hover,
.woocommerce-cart .wc-proceed-to-checkout a.checkout-button:focus-visible,
.woocommerce-cart table.cart :where(.button, button.button, input.button),
.woocommerce-cart table.cart :where(.button, button.button, input.button):hover,
.woocommerce-cart table.cart :where(.button, button.button, input.button):focus-visible {
	min-height: var(--panam-btn-height);
	height: var(--panam-btn-height);
	padding: 0 var(--panam-btn-padding-x);
	color: var(--panam-on-accent);
	font-size: var(--panam-btn-font-size);
	font-weight: var(--panam-btn-font-weight);
	letter-spacing: var(--panam-btn-letter-spacing);
	white-space: nowrap;
}

/* Contact page template */
.panam-contact-page {
	padding-block: 0;
	background: var(--panam-bg);
}

.panam-contact-hero {
	padding: clamp(28px, 4vw, 46px) 0;
	background:
		linear-gradient(135deg, color-mix(in srgb, var(--panam-surface), var(--panam-bg) 20%) 0, var(--panam-bg) 58%),
		var(--panam-bg);
	border-bottom: 1px solid var(--panam-border);
}

.panam-contact-hero__inner {
	display: grid;
	grid-template-columns: minmax(260px, 0.42fr) minmax(0, 1fr);
	gap: clamp(18px, 3vw, 32px);
	align-items: center;
}

.panam-contact-hero__content {
	display: grid;
	gap: 10px;
	max-width: 560px;
}

.panam-contact-hero__content h1 {
	margin: 0;
	color: var(--panam-ink);
	font-size: clamp(2.25rem, 5vw, 4.5rem);
	font-weight: 750;
	letter-spacing: 0;
	line-height: 1;
}

.panam-contact-hero__text {
	max-width: 66ch;
	color: var(--panam-muted);
	font-size: 1rem;
	line-height: 1.58;
}

.panam-contact-hero__text > :first-child {
	margin-top: 0;
}

.panam-contact-hero__text > :last-child {
	margin-bottom: 0;
}

.panam-contact-hero__panel,
.panam-contact-address,
.panam-contact-form-card,
.panam-contact-support {
	background: var(--panam-bg);
	border: 1px solid var(--panam-border);
	box-shadow: 0 14px 34px rgba(11, 38, 45, 0.06);
}

.panam-contact-hero__aside {
	display: grid;
	gap: 12px;
	min-width: 0;
}

.panam-contact-hero__panel {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(176px, 1fr));
	gap: 12px;
	padding: 12px;
	background: color-mix(in srgb, var(--panam-surface), var(--panam-bg) 48%);
	border: 1px solid color-mix(in srgb, var(--panam-accent), var(--panam-border) 76%);
	box-shadow: 0 18px 46px rgba(11, 38, 45, 0.08);
}

.panam-contact-hero__panel--count-1 {
	grid-template-columns: minmax(0, 1fr);
}

.panam-contact-method {
	display: grid;
	grid-template-columns: 40px minmax(0, 1fr);
	align-content: center;
	min-height: 98px;
	gap: 3px 12px;
	padding: 15px;
	color: var(--panam-ink);
	background: var(--panam-bg);
	border: 1px solid var(--panam-border);
	text-decoration: none;
	transition: border-color 160ms ease, background-color 160ms ease, transform 160ms ease;
}

.panam-contact-address {
	display: grid;
	grid-template-columns: 44px minmax(0, 1fr) auto;
	align-items: center;
	gap: 4px 14px;
	min-height: 72px;
	padding: 16px 18px;
	color: var(--panam-ink);
	border-color: color-mix(in srgb, var(--panam-accent), var(--panam-border) 70%);
	text-decoration: none;
	transition: border-color 160ms ease, background-color 160ms ease, transform 160ms ease;
}

.panam-contact-address span {
	grid-row: 1 / span 2;
	display: grid;
	width: 44px;
	height: 44px;
	place-items: center;
	color: var(--panam-on-accent);
	background: var(--panam-accent);
}

.panam-contact-address strong {
	align-self: end;
	font-size: 0.78rem;
	font-weight: 850;
	letter-spacing: 0.06em;
	line-height: 1.15;
	text-transform: uppercase;
}

.panam-contact-address em {
	align-self: start;
	color: var(--panam-muted);
	font-size: 0.98rem;
	font-style: normal;
	font-weight: 700;
	line-height: 1.35;
	overflow-wrap: anywhere;
}

.panam-contact-address::after {
	grid-column: 3;
	grid-row: 1 / span 2;
	color: var(--panam-accent);
	font-size: 1.25rem;
	font-weight: 800;
	content: ">";
}

.panam-contact-address:hover,
.panam-contact-address:focus-visible {
	color: var(--panam-ink);
	background: color-mix(in srgb, var(--panam-surface), var(--panam-bg) 58%);
	border-color: var(--panam-accent);
	transform: translateY(-1px);
}

.panam-contact-method span {
	grid-row: 1 / span 2;
	display: grid;
	width: 40px;
	height: 40px;
	place-items: center;
	color: var(--panam-accent);
	background: color-mix(in srgb, var(--panam-accent), var(--panam-bg) 90%);
}

.panam-contact-method strong {
	align-self: end;
	font-size: 0.78rem;
	font-weight: 850;
	letter-spacing: 0.06em;
	line-height: 1.15;
	text-transform: uppercase;
}

.panam-contact-method em {
	align-self: start;
	color: var(--panam-muted);
	font-size: 0.94rem;
	font-style: normal;
	font-weight: 650;
	line-height: 1.35;
	overflow-wrap: anywhere;
}

.panam-contact-method:hover,
.panam-contact-method:focus-visible {
	color: var(--panam-ink);
	background: color-mix(in srgb, var(--panam-surface), var(--panam-bg) 64%);
	border-color: color-mix(in srgb, var(--panam-accent), var(--panam-border) 45%);
	transform: translateY(-1px);
}

.panam-contact-main {
	padding: clamp(22px, 3vw, 32px) 0 clamp(36px, 5vw, 62px);
}

.panam-contact-grid {
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(280px, 340px);
	gap: clamp(18px, 3vw, 26px);
	align-items: start;
}

.panam-contact-form-card,
.panam-contact-support {
	padding: clamp(18px, 2.4vw, 24px);
}

.panam-contact-form-card header {
	margin-bottom: 18px;
}

.panam-contact-form-card h2,
.panam-contact-support h2 {
	margin: 0;
	color: var(--panam-ink);
	font-size: clamp(1.25rem, 1.7vw, 1.55rem);
	font-weight: 800;
	line-height: 1.2;
}

.panam-contact-form-card header p:not(.eyebrow),
.panam-contact-support p {
	margin: 8px 0 0;
	color: var(--panam-muted);
	font-size: 0.92rem;
	line-height: 1.55;
}

.panam-contact-form {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 13px;
}

.panam-contact-form p {
	display: grid;
	gap: 7px;
	margin: 0;
}

.panam-contact-form__wide,
.panam-contact-form button,
.panam-contact-notice {
	grid-column: 1 / -1;
}

.panam-contact-form label {
	color: var(--panam-ink);
	font-size: 0.8125rem;
	font-weight: 850;
	letter-spacing: 0.04em;
	line-height: 1.25;
	text-transform: uppercase;
}

.panam-contact-form label span {
	color: var(--panam-accent);
}

.panam-contact-form :is(input, textarea) {
	width: 100%;
	min-height: 44px;
	padding: 10px 12px;
	color: var(--panam-ink);
	background: var(--panam-bg);
	border: 1px solid var(--panam-border);
	border-radius: 0;
	transition: border-color 160ms ease, box-shadow 160ms ease;
}

.panam-contact-form textarea {
	min-height: 126px;
	resize: vertical;
}

.panam-contact-form :is(input, textarea):focus {
	border-color: var(--panam-accent);
	box-shadow: 0 0 0 3px color-mix(in srgb, var(--panam-accent), var(--panam-bg) 80%);
	outline: 0;
}

.panam-contact-form .button {
	min-height: var(--panam-btn-height);
	color: var(--panam-on-accent);
	background: var(--panam-accent);
	border-color: var(--panam-accent);
	border-radius: 0;
	font-size: var(--panam-btn-font-size);
	font-weight: var(--panam-btn-font-weight);
	letter-spacing: var(--panam-btn-letter-spacing);
	text-transform: uppercase;
}

.panam-contact-form .button:hover,
.panam-contact-form .button:focus-visible {
	background: var(--panam-ink);
	border-color: var(--panam-ink);
}

.panam-contact-hp {
	position: absolute;
	left: -9999px;
}

.panam-contact-notice {
	margin-bottom: 18px;
	padding: 12px 14px;
	font-size: 0.92rem;
	font-weight: 650;
}

.panam-contact-notice p {
	margin: 0;
}

.panam-contact-notice--success {
	color: var(--panam-accent-dark);
	background: color-mix(in srgb, var(--panam-accent), var(--panam-bg) 88%);
	border: 1px solid color-mix(in srgb, var(--panam-accent), var(--panam-bg) 62%);
}

.panam-contact-notice--error {
	color: var(--panam-sale-dark);
	background: var(--panam-sale-bg);
	border: 1px solid var(--panam-sale-border);
}

.panam-contact-support {
	position: sticky;
	top: calc(var(--panam-header-bottom, 80px) + 22px);
	display: grid;
	gap: 14px;
}

.panam-contact-support__block {
	display: grid;
	align-content: start;
	min-height: 185px;
	gap: 8px;
	padding: 14px;
	background: color-mix(in srgb, var(--panam-surface), var(--panam-bg) 46%);
	border-bottom: 1px solid var(--panam-border);
}

.panam-contact-support__block:last-of-type {
	border-bottom: 0;
}

.panam-contact-support__block span {
	display: grid;
	width: 38px;
	height: 38px;
	place-items: center;
	color: var(--panam-accent);
	background: color-mix(in srgb, var(--panam-accent), var(--panam-bg) 90%);
}

.panam-contact-socials {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 10px;
}

.panam-contact-socials a {
	display: grid;
	min-height: 42px;
	place-items: center;
	color: var(--panam-ink);
	border: 1px solid var(--panam-border);
	text-decoration: none;
}

.panam-contact-socials a:hover,
.panam-contact-socials a:focus-visible {
	color: var(--panam-on-accent);
	background: var(--panam-accent);
	border-color: var(--panam-accent);
}

/* Thank you / order-received page */
/* The page title (e.g. "Checkout") is redundant on the confirmation screen.
   `panam-order-received` body class added in inc/upsells.php. */
body.panam-order-received .entry-header {
	display: none;
}

.panam-thankyou {
	max-width: 860px;
	margin-inline: auto;
}

.panam-thankyou__head {
	margin-bottom: clamp(22px, 3vw, 32px);
	text-align: center;
}

.panam-thankyou__icon {
	display: grid;
	width: 64px;
	height: 64px;
	margin: 0 auto 16px;
	place-items: center;
	color: var(--panam-on-accent);
	background: var(--panam-accent);
	border-radius: 999px;
}

.panam-thankyou__icon svg {
	width: 30px;
	height: 30px;
}

.panam-thankyou__head .woocommerce-thankyou-order-received,
.panam-thankyou__head > p:not(.woocommerce-thankyou-order-failed-actions) {
	margin: 0;
	color: var(--panam-ink);
	font-size: clamp(1.4rem, 3vw, 2rem);
	font-weight: 800;
	line-height: 1.25;
}

.panam-thankyou__overview {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
	gap: 1px;
	margin: 0 0 clamp(22px, 4vw, 36px);
	padding: 0;
	overflow: hidden;
	list-style: none;
	background: var(--panam-border);
	border: 1px solid var(--panam-border);
	border-radius: var(--panam-radius-card, var(--panam-radius));
}

.panam-thankyou__overview li {
	display: grid;
	gap: 4px;
	margin: 0;
	padding: 15px 18px;
	background: var(--panam-bg);
}

.panam-thankyou__overview li span {
	color: var(--panam-muted);
	font-size: 0.72rem;
	font-weight: 800;
	letter-spacing: 0.05em;
	text-transform: uppercase;
}

.panam-thankyou__overview li strong {
	color: var(--panam-ink);
	font-size: 0.98rem;
	font-weight: 800;
	overflow-wrap: anywhere;
}

.panam-thankyou__actions {
	display: flex;
	flex-wrap: wrap;
	gap: 10px;
	justify-content: center;
}

/* Order details table + customer addresses (rendered by woocommerce_thankyou) */
.panam-thankyou .woocommerce-order-details__title,
.panam-thankyou .woocommerce-customer-details__title {
	margin: clamp(28px, 4vw, 40px) 0 14px;
	color: var(--panam-ink);
	font-size: clamp(1.1rem, 2vw, 1.4rem);
	font-weight: 800;
	letter-spacing: 0;
}

.panam-thankyou table.order_details {
	width: 100%;
	margin: 0;
	border-collapse: collapse;
	overflow: hidden;
	background: var(--panam-bg);
	border: 1px solid var(--panam-border);
	border-radius: var(--panam-radius-card, var(--panam-radius));
}

.panam-thankyou table.order_details th,
.panam-thankyou table.order_details td {
	padding: 13px 18px;
	text-align: left;
	vertical-align: top;
	border-bottom: 1px solid var(--panam-border);
}

.panam-thankyou table.order_details thead th {
	color: var(--panam-muted);
	font-size: 0.72rem;
	font-weight: 800;
	letter-spacing: 0.05em;
	text-transform: uppercase;
	background: var(--panam-surface);
}

.panam-thankyou table.order_details td.product-name {
	color: var(--panam-ink);
	font-weight: 600;
}

.panam-thankyou table.order_details td.product-name a {
	color: var(--panam-ink);
	text-decoration: none;
}

.panam-thankyou table.order_details td.product-name a:hover {
	color: var(--panam-accent);
}

.panam-thankyou table.order_details .product-total,
.panam-thankyou table.order_details .woocommerce-table__product-table,
.panam-thankyou table.order_details tfoot td {
	text-align: right;
	white-space: nowrap;
}

.panam-thankyou table.order_details tfoot th {
	color: var(--panam-muted);
	font-weight: 750;
}

.panam-thankyou table.order_details tfoot td {
	color: var(--panam-ink);
	font-weight: 750;
}

.panam-thankyou table.order_details tfoot tr.order-total th,
.panam-thankyou table.order_details tfoot tr.order-total td {
	color: var(--panam-ink);
	font-size: 1.05rem;
	font-weight: 850;
}

.panam-thankyou table.order_details tfoot tr:last-child th,
.panam-thankyou table.order_details tfoot tr:last-child td {
	border-bottom: 0;
}

/* Billing + shipping addresses in one row */
.panam-thankyou .woocommerce-customer-details {
	margin-top: 0;
}

.panam-thankyou .woocommerce-columns--addresses {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: clamp(14px, 2.5vw, 22px);
	margin: 0;
}

.panam-thankyou .woocommerce-columns--addresses .col-1,
.panam-thankyou .woocommerce-columns--addresses .col-2 {
	width: auto;
	float: none;
	margin: 0;
	padding: 16px 18px;
	background: var(--panam-surface);
	border: 1px solid var(--panam-border);
	border-radius: var(--panam-radius-card, var(--panam-radius));
}

.panam-thankyou .woocommerce-column__title {
	margin: 0 0 10px;
	color: var(--panam-ink);
	font-size: 0.95rem;
	font-weight: 800;
}

.panam-thankyou .woocommerce-customer-details address {
	padding: 0;
	color: var(--panam-muted);
	font-style: normal;
	line-height: 1.6;
	border: 0;
	border-radius: 0;
}

.panam-thankyou .woocommerce-customer-details--phone,
.panam-thankyou .woocommerce-customer-details--email {
	margin: 8px 0 0;
	color: var(--panam-ink);
	font-weight: 650;
}

@media (max-width: 600px) {
	.panam-thankyou .woocommerce-columns--addresses {
		grid-template-columns: 1fr;
	}
}

/* Upsells — compact recommendation strip; grid of 3 (2 mobile), slider when more */
.panam-upsells {
	max-width: 860px;
	margin: clamp(26px, 4vw, 40px) auto 0;
	padding-top: clamp(20px, 3vw, 30px);
	border-top: 1px solid var(--panam-border);
}

.panam-upsells .section-heading {
	margin-bottom: clamp(12px, 2vw, 18px);
}

.panam-upsells .section-heading h2 {
	font-size: clamp(1.05rem, 1.8vw, 1.3rem);
}

.panam-upsells__viewport {
	position: relative;
}

.panam-upsells__grid ul.products {
	--panam-product-columns: 3;
	--panam-product-gap: 14px;
}

/* Compact cards — smaller than the homepage product rows. */
.panam-upsells .featured-product-grid ul.products li.product .woocommerce-loop-product__title {
	padding: 10px 12px 2px;
	font-size: 0.84rem;
	line-height: 1.35;
}

.panam-upsells .featured-product-grid ul.products li.product .price {
	padding: 0 12px 12px;
	font-size: 0.95rem;
}

.panam-upsells .featured-product-grid ul.products li.product :is(.button, .added_to_cart) {
	--panam-btn-product-inset: 12px;
	min-height: 36px;
	height: 36px;
	font-size: 0.7rem;
}

.panam-upsells--slider .panam-upsells__grid ul.products {
	flex-wrap: nowrap;
	overflow-x: auto;
	overflow-y: hidden;
	scroll-snap-type: x mandatory;
	scroll-padding-inline: 0;
	-webkit-overflow-scrolling: touch;
	scrollbar-width: none;
	padding-bottom: 6px;
}

.panam-upsells--slider .panam-upsells__grid ul.products::-webkit-scrollbar {
	display: none;
}

.panam-upsells--slider .panam-upsells__grid ul.products > li.product {
	scroll-snap-align: start;
}

/* Square arrows (sharp, like the theme; immune to the checkout radius clobber). */
.panam-upsells__arrow {
	position: absolute;
	top: 34%;
	z-index: 2;
	display: none;
	width: 36px;
	height: 36px;
	place-items: center;
	color: var(--panam-ink);
	background: var(--panam-bg);
	border: 1px solid var(--panam-border);
	border-radius: var(--panam-header-radius, 0);
	box-shadow: 0 8px 22px rgb(23 33 31 / 14%);
	transform: translateY(-50%);
	cursor: pointer;
	transition: background-color 140ms ease, color 140ms ease, opacity 140ms ease;
}

.panam-upsells--slider .panam-upsells__arrow {
	display: grid;
}

.panam-upsells__arrow:hover:not([disabled]) {
	color: var(--panam-on-accent);
	background: var(--panam-accent);
	border-color: var(--panam-accent);
}

.panam-upsells__arrow[disabled] {
	opacity: 0.3;
	cursor: default;
}

.panam-upsells__arrow svg {
	width: 16px;
	height: 16px;
}

.panam-upsells__arrow--prev {
	left: -8px;
}

.panam-upsells__arrow--prev svg {
	transform: rotate(180deg);
}

.panam-upsells__arrow--next {
	right: -8px;
}

/* Bar dots — same shape as the hero slider dots. */
.panam-upsells__dots {
	display: flex;
	gap: 8px;
	justify-content: center;
	margin-top: 16px;
}

.panam-upsells__dots:empty {
	display: none;
}

.panam-upsells__dot {
	width: 22px;
	height: 4px;
	padding: 0;
	background: var(--panam-border);
	border: 0;
	cursor: pointer;
	transition: background 160ms ease;
}

.panam-upsells__dot:hover {
	background: var(--panam-muted);
}

.panam-upsells__dot.is-active {
	background: var(--panam-accent);
}

@media (max-width: 768px) {
	.panam-upsells__grid ul.products {
		--panam-product-columns: 2;
	}

	/* Mobile: swipe the slider; dots remain, arrows hide. */
	.panam-upsells__arrow {
		display: none !important;
	}
}

/* My Account — Shopify-style customer account */
/* Native popups */
.panam-popup-root {
	position: relative;
	z-index: 9998;
}

.panam-popup {
	position: fixed;
	inset: 0;
	z-index: 9998;
	display: grid;
	padding: clamp(14px, 3vw, 28px);
	pointer-events: none;
	visibility: hidden;
	opacity: 0;
	transition: opacity 180ms ease, visibility 0s linear 180ms;
}

.panam-popup.is-open {
	pointer-events: auto;
	visibility: visible;
	opacity: 1;
	transition: opacity 180ms ease, visibility 0s;
}

.panam-popup__overlay {
	position: absolute;
	inset: 0;
	background: rgb(23 33 31 / 54%);
}

.panam-popup[data-no-overlay] .panam-popup__overlay {
	display: none;
}

.panam-popup__dialog {
	position: relative;
	z-index: 1;
	width: min(100%, var(--panam-popup-width, 560px));
	max-height: min(88vh, 760px);
	overflow: auto;
	color: var(--panam-popup-color, var(--panam-ink));
	background: var(--panam-popup-bg, var(--panam-bg));
	border: 1px solid var(--panam-border);
	box-shadow: 0 24px 80px rgb(11 38 45 / 22%);
	transform: translateY(12px);
	opacity: 0;
	transition: transform 220ms cubic-bezier(0.22, 1, 0.36, 1), opacity 180ms ease;
}

.panam-popup.is-open .panam-popup__dialog {
	transform: translateY(0);
	opacity: 1;
}

.panam-popup--center {
	place-items: center;
}

.panam-popup--top {
	place-items: start center;
}

.panam-popup--bottom {
	place-items: end center;
}

.panam-popup--left {
	place-items: center start;
}

.panam-popup--right {
	place-items: center end;
}

.panam-popup--bottom-left {
	place-items: end start;
}

.panam-popup--bottom-right {
	place-items: end end;
}

.panam-popup--fade .panam-popup__dialog {
	transform: none;
}

.panam-popup--scale .panam-popup__dialog {
	transform: scale(0.96);
}

.panam-popup--scale.is-open .panam-popup__dialog {
	transform: scale(1);
}

.panam-popup--slide .panam-popup__dialog {
	transform: translateX(18px);
}

.panam-popup--slide.is-open .panam-popup__dialog {
	transform: translateX(0);
}

.panam-popup__close {
	position: absolute;
	top: 12px;
	right: 12px;
	z-index: 2;
	display: grid;
	width: 38px;
	height: 38px;
	place-items: center;
	color: var(--panam-ink);
	background: var(--panam-bg);
	border: 1px solid var(--panam-border);
	cursor: pointer;
}

.panam-popup__close:hover,
.panam-popup__close:focus-visible {
	color: var(--panam-on-accent);
	background: var(--panam-accent);
	border-color: var(--panam-accent);
}

.panam-popup__media img {
	width: 100%;
	max-height: 320px;
	object-fit: cover;
}

.panam-popup__content {
	padding: clamp(22px, 4vw, 34px);
}

.panam-popup__title {
	margin: 0 46px 14px 0;
	color: inherit;
	font-size: clamp(1.45rem, 3vw, 2.25rem);
	font-weight: 850;
	line-height: 1.1;
}

.panam-popup__content > :last-child {
	margin-bottom: 0;
}

.panam-popup__content .wp-block-buttons {
	margin-top: 20px;
}

html.panam-popup-is-open {
	overflow: hidden;
}

@media (max-width: 560px) {
	.panam-popup {
		padding: 10px;
	}

	.panam-popup:is(.panam-popup--left, .panam-popup--right, .panam-popup--bottom-left, .panam-popup--bottom-right) {
		place-items: end stretch;
	}

	.panam-popup__dialog {
		width: 100%;
		max-height: 86vh;
	}
}

.panam-account-page .site-main--shop {
	padding-top: clamp(20px, 3vw, 36px);
	padding-bottom: clamp(36px, 6vw, 72px);
}

.panam-account-page.woocommerce-account .entry--page > .entry-header {
	margin-bottom: clamp(24px, 4vw, 40px);
}

.panam-account-page.woocommerce-account .entry-title {
	margin: 0;
	font-size: clamp(1.75rem, 3vw, 2.5rem);
	font-weight: 500;
	line-height: 1.2;
	letter-spacing: 0.01em;
}

.panam-account-page.woocommerce-account:not(.logged-in) .entry--page > .entry-header {
	display: none;
}

.panam-account-page .entry-content > .woocommerce {
	min-width: 0;
}

.panam-account__layout {
	display: grid;
	grid-template-columns: minmax(200px, 260px) minmax(0, 1fr);
	gap: clamp(24px, 4vw, 40px);
	align-items: start;
}

.woocommerce-account:not(.logged-in) .panam-account__layout {
	grid-template-columns: 1fr;
}

.woocommerce-account:not(.logged-in) .panam-account-nav {
	display: none;
}

.panam-account__content {
	min-width: 0;
}

.panam-account__heading {
	margin-bottom: clamp(20px, 3vw, 28px);
	padding-bottom: 16px;
	border-bottom: 1px solid var(--panam-border);
}

.panam-account__title {
	margin: 0;
	font-size: clamp(1.35rem, 2.2vw, 1.75rem);
	font-weight: 500;
	line-height: 1.25;
}

/* Mobile-only dropdown toggle for the account nav (hidden on desktop sidebar). */
.panam-account-nav__toggle {
	display: none;
}

.panam-account-nav__list {
	padding: 0;
	margin: 0;
	list-style: none;
}

.panam-account-nav__item {
	margin: 0;
	border-bottom: 1px solid var(--panam-border);
}

.panam-account-nav__item:first-child {
	border-top: 1px solid var(--panam-border);
}

.panam-account-nav__link {
	display: block;
	padding: 14px 0;
	color: var(--panam-muted);
	font-size: 0.9375rem;
	font-weight: 500;
	text-decoration: none;
	transition: color 180ms ease;
}

.panam-account-nav__link:hover,
.panam-account-nav__link:focus-visible {
	color: var(--panam-ink);
}

.panam-account-nav__item.is-active .panam-account-nav__link,
.panam-account-nav__item.is-active .panam-account-nav__link[aria-current="page"] {
	color: var(--panam-ink);
	font-weight: 700;
}

.panam-account-dashboard__greeting {
	margin: 0 0 10px;
	font-size: 1.0625rem;
	line-height: 1.6;
}

.panam-account-dashboard__intro {
	margin: 0 0 clamp(24px, 4vw, 32px);
	max-width: 62ch;
	color: var(--panam-muted);
	font-size: 0.9375rem;
	line-height: 1.65;
}

.panam-account-dashboard__cards {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 16px;
}

.panam-account-card {
	display: grid;
	gap: 8px;
	padding: 20px;
	color: var(--panam-ink);
	text-decoration: none;
	background: var(--panam-bg);
	border: 1px solid var(--panam-border);
	transition: border-color 180ms ease;
}

.panam-account-card:hover,
.panam-account-card:focus-visible {
	border-color: color-mix(in srgb, var(--panam-accent), var(--panam-border) 45%);
}

.panam-account-card__label {
	font-size: 1rem;
	font-weight: 700;
	line-height: 1.3;
}

.panam-account-card__text {
	color: var(--panam-muted);
	font-size: 0.875rem;
	line-height: 1.55;
}

.panam-account-auth {
	position: relative;
	max-width: 980px;
	margin-inline: auto;
	padding: clamp(18px, 3vw, 30px);
	background: color-mix(in srgb, var(--panam-surface), var(--panam-bg) 42%);
	border: 1px solid var(--panam-border);
}

.panam-account-auth__intro {
	display: grid;
	gap: 8px;
	margin-bottom: clamp(22px, 4vw, 34px);
	padding-bottom: clamp(18px, 3vw, 24px);
	border-bottom: 1px solid var(--panam-border);
}

.panam-account-auth__title {
	margin: 0;
	color: var(--panam-ink);
	font-size: clamp(1.75rem, 3vw, 2.5rem);
	font-weight: 650;
	line-height: 1.2;
}

.panam-account-auth__text {
	margin: 0;
	max-width: 52ch;
	color: var(--panam-muted);
	font-size: 0.9375rem;
	line-height: 1.65;
}

.panam-account-auth__columns {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: clamp(16px, 3vw, 24px);
}

.panam-account-auth__columns--single {
	grid-template-columns: minmax(0, 560px);
	justify-content: center;
}

.panam-account-auth__panel {
	display: grid;
	align-content: start;
	padding: clamp(20px, 3vw, 30px);
	background: var(--panam-bg);
	border: 1px solid var(--panam-border);
	box-shadow: 0 14px 34px rgba(11, 38, 45, 0.06);
}

.panam-account-auth__panel-title {
	margin: 0 0 20px;
	color: var(--panam-ink);
	font-size: 1.2rem;
	font-weight: 800;
	line-height: 1.25;
}

.panam-account-auth :is(.woocommerce-form-login, .woocommerce-form-register) {
	display: grid;
	gap: 14px;
	margin: 0;
}

.panam-account-auth :is(.form-row, .woocommerce-form-row) {
	margin: 0;
}

.panam-account-auth label {
	display: block;
	margin-bottom: 7px;
	color: var(--panam-ink);
	font-size: 0.8125rem;
	font-weight: 850;
	letter-spacing: 0.04em;
	line-height: 1.25;
	text-transform: uppercase;
}

.panam-account-auth .woocommerce-form__label-for-checkbox {
	display: inline-flex;
	align-items: center;
	gap: 9px;
	margin: 0;
	color: var(--panam-muted);
	font-size: 0.9rem;
	font-weight: 650;
	letter-spacing: 0;
	text-transform: none;
}

.panam-account-auth input[type="checkbox"] {
	width: 18px;
	height: 18px;
	margin: 0;
	accent-color: var(--panam-accent);
}

.panam-account-auth :is(.input-text, .woocommerce-Input, input:not([type="checkbox"])) {
	width: 100%;
	min-height: 48px;
	padding: 11px 13px;
	color: var(--panam-ink);
	background: var(--panam-bg);
	border: 1px solid var(--panam-border);
	border-radius: 0;
	font-size: 1rem;
	transition: border-color 160ms ease, box-shadow 160ms ease;
}

.panam-account-auth :is(.input-text, .woocommerce-Input, input:not([type="checkbox"])):focus {
	border-color: var(--panam-accent);
	box-shadow: 0 0 0 3px color-mix(in srgb, var(--panam-accent), var(--panam-bg) 78%);
	outline: none;
}

.panam-account-auth__actions {
	display: grid;
	grid-template-columns: 1fr;
	gap: 14px;
	align-items: stretch;
}

.panam-account-auth__actions .button,
.panam-account-auth :is(.woocommerce-form-login__submit, .woocommerce-form-register__submit) {
	width: 100%;
	min-height: var(--panam-btn-height);
	border-radius: 0;
	color: var(--panam-on-accent);
	background: var(--panam-accent);
	border-color: var(--panam-accent);
	font-size: var(--panam-btn-font-size);
	font-weight: var(--panam-btn-font-weight);
	letter-spacing: var(--panam-btn-letter-spacing);
	text-transform: uppercase;
}

.panam-account-auth__actions .button:hover,
.panam-account-auth__actions .button:focus-visible,
.panam-account-auth :is(.woocommerce-form-login__submit, .woocommerce-form-register__submit):hover,
.panam-account-auth :is(.woocommerce-form-login__submit, .woocommerce-form-register__submit):focus-visible {
	color: var(--panam-on-accent);
	background: var(--panam-ink);
	border-color: var(--panam-ink);
}

.panam-account-auth .lost_password {
	margin: 4px 0 0;
	font-size: 0.9rem;
}

.panam-account-auth a {
	color: var(--panam-accent);
	font-weight: 700;
	text-decoration: underline;
	text-underline-offset: 3px;
}

.panam-account-auth a:hover,
.panam-account-auth a:focus-visible {
	color: var(--panam-ink);
}

.panam-account-auth .woocommerce-privacy-policy-text {
	color: var(--panam-muted);
	font-size: 0.875rem;
	line-height: 1.6;
}

.panam-account-auth .woocommerce-privacy-policy-text p {
	margin: 0;
}

.panam-account-page .woocommerce-MyAccount-content :is(p, .woocommerce-info, .woocommerce-message, .woocommerce-error) {
	margin-top: 0;
}

.panam-account-page .woocommerce-MyAccount-content > p {
	margin-bottom: 1.15em;
	color: var(--panam-muted);
	font-size: 0.9375rem;
	line-height: 1.65;
}

.panam-account-page .woocommerce-MyAccount-content a {
	color: var(--panam-on-accent);
}

.panam-account-page .woocommerce-MyAccount-content .panam-account-dashboard__greeting a {
	color: var(--panam-accent);
	font-weight: 700;
}

.panam-account-page .woocommerce-MyAccount-content .panam-account-card {
	color: var(--panam-ink);
}

.panam-account-page .woocommerce-MyAccount-content .panam-account-card__text {
	color: var(--panam-muted);
}

.panam-account-page .woocommerce-MyAccount-content fieldset {
	margin: 0 0 24px;
	padding: 0;
	border: 0;
}

.panam-account-page .woocommerce-MyAccount-content fieldset legend {
	margin-bottom: 12px;
	padding: 0;
	font-size: 1rem;
	font-weight: 700;
}

.panam-account-page .woocommerce-MyAccount-content :is(.form-row, .woocommerce-form-row) {
	margin-bottom: 16px;
}

.panam-account-page .woocommerce-MyAccount-content label {
	display: block;
	margin-bottom: 6px;
	font-size: 0.875rem;
	font-weight: 600;
}

.panam-account-page .woocommerce-MyAccount-content :is(.input-text, .woocommerce-Input, input:not([type="checkbox"]), select, textarea) {
	width: 100%;
	min-height: 44px;
	padding: 10px 14px;
	border: 1px solid var(--panam-border);
	border-radius: 0;
}

/* Password fields with Show/Hide toggle (WooCommerce) */
.woocommerce form .password-input {
	position: relative;
	display: block;
	width: 100%;
}

.woocommerce form .password-input input[type="password"],
.woocommerce form .password-input input[type="text"] {
	width: 100%;
	min-height: 44px;
	padding: 10px 14px;
	padding-right: clamp(7.5rem, 28vw, 11rem);
	border: 1px solid var(--panam-border);
	border-radius: 0;
}

.woocommerce form .password-input input::-ms-reveal {
	display: none;
}

.woocommerce form .show-password-input {
	position: absolute;
	top: 1px;
	right: 1px;
	bottom: 1px;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 6px;
	min-width: 7rem;
	max-width: calc(100% - 12px);
	padding: 0 12px;
	color: var(--panam-ink);
	font-family: inherit;
	font-size: 0.75rem;
	font-weight: 700;
	line-height: 1.2;
	text-align: center;
	white-space: nowrap;
	cursor: pointer;
	background: var(--panam-surface);
	border: 0;
	border-left: 1px solid var(--panam-border);
	transition: color 180ms ease, background-color 180ms ease, border-color 180ms ease;
	-webkit-appearance: none;
	appearance: none;
}

.woocommerce form .show-password-input::before {
	content: "";
	display: block;
	flex-shrink: 0;
	width: 18px;
	height: 18px;
	background-color: currentColor;
	mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20' fill='none'%3E%3Cpath d='M10 4.5C6.4 4.6 3.5 6.6 2 9.5c1.5 2.9 4.4 4.9 8 4.9s6.5-2 8-4.9c-1.5-2.9-4.4-4.9-8-4.9Zm0 7.5a3 3 0 1 1 0-6 3 3 0 0 1 0 6Z' fill='%23000'/%3E%3C/svg%3E");
	mask-repeat: no-repeat;
	mask-position: center;
	mask-size: contain;
	-webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20' fill='none'%3E%3Cpath d='M10 4.5C6.4 4.6 3.5 6.6 2 9.5c1.5 2.9 4.4 4.9 8 4.9s6.5-2 8-4.9c-1.5-2.9-4.4-4.9-8-4.9Zm0 7.5a3 3 0 1 1 0-6 3 3 0 0 1 0 6Z' fill='%23000'/%3E%3C/svg%3E");
	-webkit-mask-repeat: no-repeat;
	-webkit-mask-position: center;
	-webkit-mask-size: contain;
}

.woocommerce form .show-password-input.display-password::before {
	mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20' fill='none'%3E%3Cpath d='M2.5 2.5 17.5 17.5M8.2 8.4A3 3 0 0 0 10 13a3 3 0 0 0 2.8-2.1M5.7 5.6C4.4 6.5 3.3 7.7 2.5 9.2c1.5 2.9 4.4 4.8 7.5 4.8 1.2 0 2.3-.3 3.3-.8M12.1 12.2c1.1-.8 2-1.9 2.7-3.2' stroke='%23000' stroke-width='1.6' stroke-linecap='round'/%3E%3C/svg%3E");
	-webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20' fill='none'%3E%3Cpath d='M2.5 2.5 17.5 17.5M8.2 8.4A3 3 0 0 0 10 13a3 3 0 0 0 2.8-2.1M5.7 5.6C4.4 6.5 3.3 7.7 2.5 9.2c1.5 2.9 4.4 4.8 7.5 4.8 1.2 0 2.3-.3 3.3-.8M12.1 12.2c1.1-.8 2-1.9 2.7-3.2' stroke='%23000' stroke-width='1.6' stroke-linecap='round'/%3E%3C/svg%3E");
}

.woocommerce form .show-password-text {
	display: inline-block;
	max-width: 9rem;
	overflow: hidden;
	text-overflow: ellipsis;
}

.woocommerce form .show-password-input:hover,
.woocommerce form .show-password-input:focus-visible {
	color: var(--panam-on-accent);
	background: var(--panam-ink);
	border-left-color: var(--panam-ink);
	outline: none;
}

.panam-account-page .woocommerce-MyAccount-content textarea {
	min-height: 120px;
}

.panam-account-page .woocommerce-MyAccount-content .woocommerce-address-fields__field-wrapper {
	display: grid;
	gap: 0;
}

.panam-account-page .woocommerce-MyAccount-content table.shop_table {
	width: 100%;
	margin: 0 0 20px;
	border: 1px solid var(--panam-border);
	border-collapse: collapse;
}

.panam-account-page .woocommerce-MyAccount-content table.shop_table th {
	padding: 14px 16px;
	color: var(--panam-muted);
	background: var(--panam-surface);
	font-size: 0.75rem;
	font-weight: 700;
	letter-spacing: 0.04em;
	text-align: left;
	text-transform: uppercase;
	border-bottom: 1px solid var(--panam-border);
}

.panam-account-page .woocommerce-MyAccount-content table.shop_table td {
	padding: 16px;
	border-top: 1px solid var(--panam-border);
	vertical-align: top;
}

.panam-account-page .woocommerce-MyAccount-content table.shop_table a {
	color: var(--panam-ink);
	font-weight: 600;
	text-decoration: none;
}

.panam-account-page .woocommerce-MyAccount-content table.shop_table a:hover,
.panam-account-page .woocommerce-MyAccount-content table.shop_table a:focus-visible {
	color: var(--panam-accent);
}

.panam-account-page .woocommerce-MyAccount-content .woocommerce-orders-table__cell-order-status {
	font-weight: 600;
}

.panam-account-page .woocommerce-MyAccount-content .woocommerce-orders-table__cell-order-actions :is(.button, a.button) {
	display: inline-flex;
	min-height: 36px;
	margin: 2px 4px 2px 0;
	padding: 0 14px;
	color: var(--panam-ink) !important;
	font-size: 0.8125rem;
	font-weight: 700;
	background: var(--panam-bg) !important;
	border: 1px solid var(--panam-border) !important;
}

.panam-account-page .woocommerce-MyAccount-content .woocommerce-orders-table__cell-order-actions :is(.button, a.button):hover,
.panam-account-page .woocommerce-MyAccount-content .woocommerce-orders-table__cell-order-actions :is(.button, a.button):focus-visible {
	color: var(--panam-on-accent) !important;
	background: var(--panam-ink) !important;
	border-color: var(--panam-ink) !important;
}

.panam-account-page .woocommerce-MyAccount-content .woocommerce-pagination {
	margin-top: 20px;
}

.panam-account-page .woocommerce-MyAccount-content .woocommerce-pagination .button {
	min-height: var(--panam-btn-height);
	padding: 0 var(--panam-btn-padding-x);
	color: var(--panam-on-accent);
}

.panam-account-page .woocommerce-Addresses {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 16px;
}

.panam-account-page .woocommerce-Address {
	padding: 20px;
	background: var(--panam-bg);
	border: 1px solid var(--panam-border);
}

.panam-account-page .woocommerce-Address-title {
	display: flex;
	flex-wrap: wrap;
	gap: 8px 12px;
	align-items: center;
	justify-content: space-between;
	margin-bottom: 12px;
}

.panam-account-page .woocommerce-Address-title h2,
.panam-account-page .woocommerce-Address-title h3 {
	margin: 0;
	font-size: 1rem;
	font-weight: 700;
}

.panam-account-page .woocommerce-Address address {
	margin: 0;
	font-style: normal;
	line-height: 1.65;
}

.panam-account-page .woocommerce-MyAccount-content :where(.button, button.button, input.button) {
	min-height: var(--panam-btn-height);
	padding: 0 var(--panam-btn-padding-x);
	color: var(--panam-on-accent);
	font-size: var(--panam-btn-font-size);
	font-weight: var(--panam-btn-font-weight);
	letter-spacing: var(--panam-btn-letter-spacing);
	text-transform: uppercase;
}

.panam-account-page .woocommerce-MyAccount-content :where(.button, button.button, input.button):hover,
.panam-account-page .woocommerce-MyAccount-content :where(.button, button.button, input.button):focus-visible {
	color: var(--panam-on-accent);
}

.panam-account-page .woocommerce-MyAccount-content .woocommerce-message,
.panam-account-page .woocommerce-MyAccount-content .woocommerce-info,
.panam-account-page .woocommerce-MyAccount-content .woocommerce-error {
	margin-bottom: 20px;
	padding: 14px 16px;
	border: 1px solid var(--panam-border);
	border-top: 2px solid var(--panam-accent);
}

.panam-account-page .woocommerce-MyAccount-content .order-again .button {
	margin-top: 16px;
}

.panam-account-page .woocommerce-MyAccount-content .woocommerce-OrderUpdates {
	padding: 0;
	margin: 20px 0;
	list-style: none;
}

.panam-account-page .woocommerce-MyAccount-content .woocommerce-OrderUpdates li {
	margin-bottom: 12px;
	padding-bottom: 12px;
	border-bottom: 1px solid var(--panam-border);
}

.panam-account-page .woocommerce-MyAccount-content .woocommerce-order-details,
.panam-account-page .woocommerce-MyAccount-content .woocommerce-customer-details {
	margin-top: 28px;
}

.panam-account-page .woocommerce-MyAccount-content .woocommerce-order-details h2,
.panam-account-page .woocommerce-MyAccount-content .woocommerce-customer-details h2 {
	margin: 0 0 16px;
	font-size: 1.125rem;
	font-weight: 700;
}

.panam-account-page .woocommerce-MyAccount-content .woocommerce-table--order-details {
	margin-bottom: 0;
}

.panam-account-page .woocommerce-MyAccount-content .woocommerce-table--order-details .product-quantity {
	color: var(--panam-muted);
	font-weight: 500;
}

/* Influencer program tab (My Account). */
.panam-influencer__subtitle {
	margin: 28px 0 14px;
	font-size: 1.05rem;
	font-weight: 700;
}

.panam-influencer__subtitle:first-child {
	margin-top: 0;
}

.panam-influencer__code {
	padding: 14px 16px;
	margin-bottom: 12px;
	background: var(--panam-surface);
	border: 1px solid var(--panam-border);
	border-radius: var(--panam-radius);
}

.panam-influencer__code-head {
	display: flex;
	align-items: baseline;
	justify-content: space-between;
	gap: 12px;
	margin-bottom: 10px;
}

.panam-influencer__code-value {
	font-size: 1.1rem;
	font-weight: 800;
	letter-spacing: 0.04em;
	color: var(--panam-ink);
}

.panam-influencer__code-rate {
	font-size: 0.85rem;
	font-weight: 700;
	color: var(--panam-accent);
}

.panam-influencer__link {
	display: flex;
	gap: 8px;
}

.panam-influencer__link-input {
	flex: 1 1 auto;
	min-width: 0;
	padding: 9px 12px;
	font-size: 0.9rem;
	color: var(--panam-muted);
	background: var(--panam-bg);
	border: 1px solid var(--panam-border);
	border-radius: var(--panam-radius);
}

.panam-influencer__copy {
	flex: 0 0 auto;
}

.panam-influencer__copy.is-copied {
	color: var(--panam-on-accent);
	background: var(--panam-accent);
	border-color: var(--panam-accent);
}

.panam-influencer__hint,
.panam-influencer__empty {
	margin: 12px 0 0;
	color: var(--panam-muted);
	font-size: 0.9rem;
	line-height: 1.6;
}

.panam-influencer__stats {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
	gap: 14px;
	margin: 22px 0;
}

.panam-influencer__stat {
	display: grid;
	gap: 4px;
	padding: 16px;
	background: var(--panam-surface);
	border: 1px solid var(--panam-border);
	border-radius: var(--panam-radius);
}

.panam-influencer__stat-value {
	font-size: 1.4rem;
	font-weight: 800;
	line-height: 1.15;
	color: var(--panam-ink);
}

.panam-influencer__stat-label {
	font-size: 0.78rem;
	font-weight: 600;
	text-transform: uppercase;
	letter-spacing: 0.03em;
	color: var(--panam-muted);
}

.panam-influencer__filter {
	display: flex;
	flex-wrap: wrap;
	align-items: end;
	gap: 12px;
	margin: 0 0 8px;
}

.panam-influencer__filter label {
	display: grid;
	gap: 4px;
	font-size: 0.85rem;
	font-weight: 600;
}

.panam-influencer__filter input {
	padding: 8px 10px;
	border: 1px solid var(--panam-border);
	border-radius: var(--panam-radius);
}

.panam-influencer__reset {
	color: var(--panam-muted);
	font-size: 0.9rem;
}

.panam-influencer__table-wrap {
	overflow-x: auto;
}

.panam-influencer__table {
	width: 100%;
	border-collapse: collapse;
	font-size: 0.92rem;
}

.panam-influencer__table th,
.panam-influencer__table td {
	padding: 10px 12px;
	text-align: left;
	border-bottom: 1px solid var(--panam-border);
}

.panam-influencer__table th {
	font-size: 0.72rem;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.03em;
	color: var(--panam-muted);
}

.panam-influencer__table .is-num {
	text-align: right;
	white-space: nowrap;
}

@media (max-width: 560px) {
	.panam-influencer__table,
	.panam-influencer__table thead,
	.panam-influencer__table tbody,
	.panam-influencer__table tr,
	.panam-influencer__table td {
		display: block;
	}

	.panam-influencer__table thead {
		display: none;
	}

	.panam-influencer__table tr {
		margin-bottom: 14px;
		padding: 6px 12px;
		border: 1px solid var(--panam-border);
		border-radius: var(--panam-radius);
	}

	.panam-influencer__table td {
		display: flex;
		justify-content: space-between;
		gap: 16px;
		padding: 8px 0;
		border: 0;
		border-bottom: 1px solid var(--panam-border);
		text-align: right;
	}

	.panam-influencer__table td:last-child {
		border-bottom: 0;
	}

	.panam-influencer__table td::before {
		content: attr(data-title);
		font-weight: 700;
		color: var(--panam-ink);
	}
}

/* Loyalty program tab (My Account). */
.panam-loyalty__balance {
	display: flex;
	align-items: baseline;
	gap: 10px;
	padding: 20px 22px;
	background: var(--panam-surface);
	border: 1px solid var(--panam-border);
	border-radius: var(--panam-radius);
}

.panam-loyalty__balance-value {
	font-size: 2.4rem;
	font-weight: 800;
	line-height: 1;
	color: var(--panam-accent);
}

.panam-loyalty__balance-label {
	font-size: 0.9rem;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.04em;
	color: var(--panam-muted);
}

.panam-loyalty__intro {
	margin: 14px 0 0;
	color: var(--panam-muted);
	line-height: 1.6;
}

.panam-loyalty__subtitle {
	margin: 30px 0 14px;
	font-size: 1.05rem;
	font-weight: 700;
}

.panam-loyalty__rewards {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
	gap: 14px;
}

.panam-loyalty__reward {
	display: grid;
	gap: 8px;
	padding: 16px;
	background: var(--panam-surface);
	border: 1px solid var(--panam-border);
	border-radius: var(--panam-radius);
}

.panam-loyalty__reward.is-locked {
	opacity: 0.6;
}

.panam-loyalty__reward-media {
	display: grid;
	place-items: center;
	min-height: 128px;
	margin-bottom: 4px;
	background: var(--panam-bg);
	border: 1px solid var(--panam-border);
	border-radius: var(--panam-radius);
	overflow: hidden;
}

.panam-loyalty__reward-thumb {
	display: block;
	width: 100%;
	height: 100%;
}

.panam-loyalty__reward-thumb img {
	display: block;
	width: 100%;
	height: 128px;
	object-fit: contain;
	padding: 8px;
}

.panam-loyalty__reward-amount {
	display: flex;
	align-items: baseline;
	gap: 3px;
	color: var(--panam-accent);
	font-weight: 800;
	line-height: 1;
}

.panam-loyalty__reward-num {
	font-size: 3.2rem;
}

.panam-loyalty__reward-sym {
	font-size: 1.9rem;
}

.panam-loyalty__reward--gift .panam-loyalty__reward-sym {
	font-size: 3.4rem;
}

.panam-loyalty__reward-label {
	font-weight: 700;
	color: var(--panam-ink);
}

.panam-loyalty__reward-label a {
	color: var(--panam-accent);
	font-weight: 700;
	text-decoration: none;
}

.panam-loyalty__reward-label a:hover {
	text-decoration: underline;
}

.panam-loyalty__reward-cost {
	font-size: 0.85rem;
	font-weight: 700;
	color: var(--panam-accent);
}

.panam-loyalty__reward form {
	margin: 0;
}

.panam-loyalty__reward .button {
	width: 100%;
}

.panam-loyalty__coupons {
	margin: 0;
	padding: 0;
	list-style: none;
	display: grid;
	gap: 8px;
}

.panam-loyalty__coupon {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 10px 16px;
	padding: 10px 14px;
	background: var(--panam-surface);
	border: 1px solid var(--panam-border);
	border-radius: var(--panam-radius);
}

.panam-loyalty__coupon.is-spent {
	opacity: 0.55;
}

.panam-loyalty__coupon code {
	font-weight: 800;
	letter-spacing: 0.03em;
}

.panam-loyalty__coupon-state {
	margin-left: auto;
	font-size: 0.82rem;
	color: var(--panam-muted);
}

.panam-loyalty__history {
	width: 100%;
	border-collapse: collapse;
	font-size: 0.9rem;
}

.panam-loyalty__history td {
	padding: 9px 12px;
	border-bottom: 1px solid var(--panam-border);
}

.panam-loyalty__history .is-num {
	text-align: right;
	font-weight: 700;
	white-space: nowrap;
}

.panam-loyalty__history .is-pos {
	color: #1f9d55;
}

.panam-loyalty__history .is-neg {
	color: var(--panam-muted);
}

/* "Earn X points" banner (checkout + thank-you) — outside the order summary. */
.panam-loyalty-banner {
	display: flex;
	align-items: center;
	gap: 12px;
	margin: 0 0 22px;
	padding: 14px 18px;
	background: color-mix(in srgb, var(--panam-accent) 10%, var(--panam-bg));
	border: 1px solid color-mix(in srgb, var(--panam-accent) 35%, var(--panam-border));
	border-radius: var(--panam-radius);
	line-height: 1.5;
}

.panam-loyalty-banner--thankyou {
	margin: 22px 0;
}

.panam-loyalty-banner__icon {
	flex: 0 0 auto;
	font-size: 1.3rem;
	color: var(--panam-accent);
}

.panam-loyalty-banner__text a {
	margin-left: 8px;
	font-weight: 700;
	color: var(--panam-accent);
}

/* "Gift" badge on a redeemed free product in the cart. */
.panam-gift-badge {
	display: inline-block;
	margin-left: 6px;
	padding: 1px 8px;
	font-size: 0.72rem;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.03em;
	color: var(--panam-on-accent);
	background: var(--panam-accent);
	border-radius: var(--panam-radius);
	vertical-align: middle;
}

@media (max-width: 1024px) {
	.panam-account__layout {
		grid-template-columns: 1fr;
	}

	/* Account nav -> collapsible dropdown: a "current page" button that expands
	   the full list. Replaces the cramped horizontal-scroll tabs. */
	.panam-account-nav {
		position: relative;
	}

	.panam-account-nav__toggle {
		display: flex;
		align-items: center;
		justify-content: space-between;
		gap: 12px;
		width: 100%;
		padding: 13px 16px;
		font: inherit;
		font-weight: 700;
		color: var(--panam-ink);
		text-align: left;
		background: var(--panam-surface);
		border: 1px solid var(--panam-border);
		border-radius: var(--panam-radius);
		cursor: pointer;
	}

	.panam-account-nav__toggle::after {
		content: "";
		flex: 0 0 auto;
		width: 10px;
		height: 10px;
		margin-bottom: 4px;
		border-right: 2px solid currentColor;
		border-bottom: 2px solid currentColor;
		transform: rotate(45deg);
		transition: transform 180ms ease;
	}

	.panam-account-nav.is-open .panam-account-nav__toggle::after {
		margin-bottom: -4px;
		transform: rotate(-135deg);
	}

	.panam-account-nav__list {
		display: none;
		margin-top: 8px;
		border: 1px solid var(--panam-border);
		border-radius: var(--panam-radius);
		overflow: hidden;
	}

	.panam-account-nav.is-open .panam-account-nav__list {
		display: block;
	}

	.panam-account-nav__item {
		border: 0;
		border-bottom: 1px solid var(--panam-border);
	}

	.panam-account-nav__item:first-child {
		border-top: 0;
	}

	.panam-account-nav__item:last-child {
		border-bottom: 0;
	}

	.panam-account-nav__link {
		padding: 13px 16px;
	}

	.panam-account-nav__item.is-active .panam-account-nav__link,
	.panam-account-nav__item.is-active .panam-account-nav__link[aria-current="page"] {
		color: var(--panam-ink);
		background: var(--panam-surface);
	}

	.panam-account-dashboard__cards {
		grid-template-columns: 1fr;
	}

	.panam-account-auth__columns {
		grid-template-columns: 1fr;
	}

	.panam-account-auth {
		padding: 16px;
	}

	.panam-account-page .woocommerce-Addresses {
		grid-template-columns: 1fr;
	}
}

/* Mobile account — optimise every My Account tab on phones. Layout/nav/cards/
   addresses already stack at <=1024px; this block handles the remaining phone
   issues across tabs: wide tables, multi-part cell values, 2-column form rows,
   and full-width primary actions. */
@media (max-width: 768px) {
	/* --- Orders / Downloads: stack the wide tables into labelled cards. WC
	   outputs data-title on every cell; the 2-col order-details table is left
	   tabular (it fits) but allowed to wrap. --- */
	.panam-account-page .woocommerce-MyAccount-content table.shop_table:not(.order_details) {
		display: block;
		border: 0;
		background: transparent;
	}

	.panam-account-page .woocommerce-MyAccount-content table.shop_table:not(.order_details) thead {
		display: none;
	}

	.panam-account-page .woocommerce-MyAccount-content table.shop_table:not(.order_details) tbody,
	.panam-account-page .woocommerce-MyAccount-content table.shop_table:not(.order_details) tr {
		display: block;
		width: 100%;
	}

	.panam-account-page .woocommerce-MyAccount-content table.shop_table:not(.order_details) tr {
		margin: 0 0 16px;
		padding: 4px 16px;
		border: 1px solid var(--panam-border);
		border-radius: var(--panam-radius);
		background: var(--panam-surface);
	}

	/* flow-root contains the floated label; text-align:right keeps multi-part
	   values (e.g. "300.70€ за 4 продукта") grouped together on the right. */
	.panam-account-page .woocommerce-MyAccount-content table.shop_table:not(.order_details) td {
		display: flow-root;
		width: 100% !important;
		padding: 12px 0;
		border: 0;
		border-bottom: 1px solid var(--panam-border);
		text-align: right;
		overflow-wrap: anywhere;
	}

	.panam-account-page .woocommerce-MyAccount-content table.shop_table:not(.order_details) td::before {
		content: attr(data-title);
		float: left;
		margin-right: 12px;
		font-weight: 700;
		color: var(--panam-ink);
		text-align: left;
	}

	.panam-account-page .woocommerce-MyAccount-content table.shop_table:not(.order_details) td:last-child {
		border-bottom: 0;
	}

	/* Order number becomes the card's title row. */
	.panam-account-page .woocommerce-MyAccount-content table.shop_table:not(.order_details) td.woocommerce-orders-table__cell-order-number {
		font-size: 1.0625rem;
		font-weight: 700;
		text-align: left;
	}

	.panam-account-page .woocommerce-MyAccount-content table.shop_table:not(.order_details) td.woocommerce-orders-table__cell-order-number::before {
		float: none;
		display: block;
		margin: 0 0 2px;
		font-size: 0.7rem;
		font-weight: 600;
		color: var(--panam-muted);
		text-transform: uppercase;
		letter-spacing: 0.04em;
	}

	/* Actions cell -> full-width buttons, no label. */
	.panam-account-page .woocommerce-MyAccount-content table.shop_table:not(.order_details) td.woocommerce-orders-table__cell-order-actions {
		text-align: left;
		padding-top: 12px;
	}

	.panam-account-page .woocommerce-MyAccount-content table.shop_table:not(.order_details) td.woocommerce-orders-table__cell-order-actions::before {
		display: none;
	}

	.panam-account-page .woocommerce-MyAccount-content table.shop_table:not(.order_details) td.woocommerce-orders-table__cell-order-actions .button {
		display: block;
		width: 100%;
		margin: 6px 0 0;
		text-align: center;
	}

	/* Order-details (Product / Total) stays a 2-col table but wraps long names. */
	.panam-account-page .woocommerce-MyAccount-content table.shop_table.order_details :is(th, td) {
		overflow-wrap: anywhere;
	}

	/* --- Account details / Edit address tabs: force every form row full width
	   (no 2-up first/last pairs) and wrap addresses. --- */
	.panam-account-page .woocommerce-MyAccount-content :is(.form-row-first, .form-row-last, .form-row-wide, .form-row, .woocommerce-address-fields .form-row) {
		width: 100%;
		float: none;
		margin-left: 0;
		margin-right: 0;
	}

	.panam-account-page .woocommerce-MyAccount-content .woocommerce-Address address {
		overflow-wrap: anywhere;
	}

	/* Primary form actions (Save changes / Save address) span the width. */
	.panam-account-page .woocommerce-MyAccount-content :is(.woocommerce-Button, button[type="submit"], input[type="submit"], .button[name="save_address"], .button[name="save_account_details"]) {
		display: block;
		width: 100%;
		text-align: center;
	}
}

@media (max-width: 1180px) and (min-width: 1025px) {
	.header-inner {
		grid-template-columns: auto minmax(0, 1fr) minmax(200px, 260px) auto;
		gap: 10px 14px;
	}

	.desktop-nav .menu {
		flex-wrap: wrap;
		gap: 4px 8px;
		justify-content: flex-start;
		min-height: 0;
	}

	.desktop-nav .menu > .menu-item > a {
		min-height: 36px;
		padding: 7px 8px;
		font-size: 0.9rem;
	}

	.desktop-nav .menu > .menu-item-has-children:not(.compact-menu) > .desktop-mega-panel,
	.desktop-nav .mega-menu > .desktop-mega-panel {
		grid-template-columns: repeat(3, minmax(0, 1fr));
		padding: 22px max(20px, calc((100% - var(--panam-container)) / 2));
	}

	.featured-product-grid .products,
	.home-products .products,
	.featured-product-grid ul.products,
	.home-products ul.products {
		--panam-product-columns: 3;
	}

	.panam-blog-grid {
		--panam-blog-columns: 2;
	}

	.native-card-grid,
	.native-blog-grid,
	.native-review-grid {
		grid-template-columns: repeat(3, minmax(0, 1fr));
	}

	.native-feature-card,
	.native-feature-card:nth-child(-n + 2) {
		grid-column: span 1;
	}
}

@media (max-width: 1024px) {
	html.mobile-menu-is-open,
	html.mobile-menu-is-open body {
		overflow: hidden;
	}

	.footer-layout {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.footer-logo-column {
		grid-column: 1 / -1;
	}

	.logo-div {
		max-width: none;
	}

	.header-inner {
		grid-template-columns: 1fr auto auto;
		gap: 10px;
		padding-block: 10px;
		min-height: 66px;
	}

	.desktop-nav,
	.header-search {
		display: none;
	}

	.mobile-menu-toggle {
		display: grid;
	}

	.header-actions {
		justify-self: end;
	}

	.mobile-menu {
		position: fixed;
		z-index: 200;
		inset: 0;
		display: block;
		visibility: hidden;
		opacity: 0;
		pointer-events: none;
		transition: opacity 220ms ease, visibility 0s linear 220ms;
	}

	html.mobile-menu-is-open .mobile-menu,
	.mobile-menu.is-open {
		visibility: visible;
		opacity: 1;
		pointer-events: auto;
		transition: opacity 220ms ease, visibility 0s;
	}

	.mobile-menu__backdrop {
		position: absolute;
		inset: 0;
		z-index: 0;
		padding: 0;
		border: 0;
		background: rgb(23 33 31 / 48%);
		cursor: pointer;
	}

	.mobile-menu__panel {
		position: absolute;
		inset: 0;
		z-index: 1;
		display: grid;
		grid-template-rows: auto auto minmax(0, 1fr);
		width: 100%;
		overflow: hidden;
		background: var(--panam-bg);
		transform: translateY(-8px);
		opacity: 0;
		transition: transform 280ms cubic-bezier(0.22, 1, 0.36, 1), opacity 220ms ease;
	}

	html.mobile-menu-is-open .mobile-menu__panel,
	.mobile-menu.is-open .mobile-menu__panel {
		transform: translateY(0);
		opacity: 1;
	}

	.mobile-menu__header {
		display: flex;
		flex-shrink: 0;
		gap: 14px;
		align-items: center;
		justify-content: space-between;
		min-height: 64px;
		padding: calc(12px + env(safe-area-inset-top)) 18px 12px;
		background: var(--panam-bg);
		border-bottom: 1px solid var(--panam-border);
	}

	.mobile-menu__brand .custom-logo-link,
	.mobile-menu__brand .site-title {
		display: inline-flex;
	}

	.mobile-menu__brand img {
		max-width: 180px;
		max-height: 44px;
		object-fit: contain;
	}

	.mobile-menu__close {
		display: grid;
		flex: 0 0 44px;
		width: 44px;
		height: 44px;
		place-items: center;
		color: var(--panam-ink);
		background: var(--panam-surface);
		border: 1px solid var(--panam-border);
		border-radius: 999px;
		cursor: pointer;
	}

	.mobile-menu__close svg {
		width: 22px;
		height: 22px;
	}

	.mobile-menu__search {
		flex-shrink: 0;
		padding: 16px 18px;
		background: var(--panam-surface);
		border-bottom: 1px solid var(--panam-border);
	}

	.mobile-menu__search .product-search {
		border-color: color-mix(in srgb, var(--panam-accent), var(--panam-border) 55%);
	}

	.mobile-menu__nav {
		overflow-x: hidden;
		overflow-y: auto;
		-webkit-overflow-scrolling: touch;
		overscroll-behavior: contain;
		padding-bottom: calc(24px + env(safe-area-inset-bottom));
	}

	.mobile-menu__nav .menu {
		display: grid;
		gap: 0;
		margin: 0;
	}

	.mobile-menu__nav a {
		color: var(--panam-ink);
		font-weight: 750;
		text-decoration: none;
		transition: background-color 140ms ease, color 140ms ease;
	}

	.mobile-menu__nav a:active {
		background: var(--panam-surface);
	}

	.mobile-menu__nav .menu > .menu-item,
	.mobile-menu__nav .sub-menu .menu-item,
	.mobile-menu__nav .menu > .menu-item-has-children,
	.mobile-menu__nav .mega-menu {
		position: relative;
		display: grid;
		grid-template-columns: minmax(0, 1fr) 56px;
		grid-template-rows: auto auto;
		align-items: stretch;
		border-bottom: 1px solid var(--panam-border);
	}

	.mobile-menu__nav .menu-item:not(.menu-item-has-children) {
		grid-template-columns: 1fr;
		grid-template-rows: auto;
	}

	.mobile-menu__nav .menu-item-has-children > a {
		grid-column: 1;
		grid-row: 1;
	}

	.mobile-menu__nav .menu-item-has-children > .submenu-toggle {
		grid-column: 2;
		grid-row: 1;
	}

	.mobile-menu__nav .menu-item-has-children > .sub-menu {
		grid-column: 1 / -1;
		grid-row: 2;
	}

	.mobile-menu__nav .menu > .menu-item:last-child {
		border-bottom: 0;
	}

	.mobile-menu__nav .menu > .mobileonly {
		display: grid;
	}

	.mobile-menu__nav .menu > .menu-item > a {
		min-height: 56px;
		padding: 18px 20px;
		font-size: 1.1rem;
		font-weight: 800;
		line-height: 1.3;
	}

	.mobile-menu__nav .sub-menu a {
		display: flex;
		min-height: 50px;
		align-items: center;
		padding: 14px 20px 14px 28px;
		font-size: 1rem;
		font-weight: 700;
		line-height: 1.35;
	}

	.mobile-menu__nav .sub-menu {
		position: static;
		display: none;
		width: 100%;
		min-width: 0;
		max-height: none;
		padding: 0;
		margin: 0;
		overflow: visible;
		background: color-mix(in srgb, var(--panam-surface), var(--panam-bg) 38%);
		border: 0;
		border-top: 1px solid var(--panam-border);
		border-radius: 0;
		box-shadow: none;
		opacity: 1;
		visibility: visible;
		pointer-events: auto;
		grid-template-columns: minmax(0, 1fr);
		list-style: none;
	}

	.mobile-menu__nav .sub-menu.is-submenu-open,
	.mobile-menu__nav .menu-item.is-open > .sub-menu,
	.mobile-menu__nav .menu > .menu-item-has-children.is-open > .sub-menu,
	.mobile-menu__nav .mega-menu.is-open > .sub-menu {
		display: grid !important;
	}

	/* Mega menus: show column link lists when the top-level section is open */
	.mobile-menu__nav .mega-menu.is-open > .sub-menu > .menu-item-has-children > .sub-menu.is-submenu-open,
	.mobile-menu__nav .mega-menu.is-open > .sub-menu > .menu-item-has-children > .sub-menu {
		display: grid !important;
	}

	.mobile-menu__nav .mega-menu.is-open > .sub-menu > .menu-item:not(.menu-item-has-children) {
		display: block;
		grid-column: 1 / -1;
	}

	.mobile-menu__nav .sub-menu > .menu-item > a {
		font-size: 0.98rem;
		font-weight: 800;
		color: var(--panam-ink);
		text-transform: uppercase;
		letter-spacing: 0.02em;
	}

	.mobile-menu__nav .submenu-toggle {
		display: grid;
		width: 56px;
		min-height: 56px;
		padding: 0;
		place-items: center;
		color: var(--panam-muted);
		background: transparent;
		border: 0;
		border-left: 1px solid var(--panam-border);
		border-radius: 0;
		cursor: pointer;
	}

	.mobile-menu__nav .submenu-toggle svg {
		width: 20px;
		height: 20px;
		transition: transform 200ms ease;
	}

	.mobile-menu__nav .is-open > .submenu-toggle {
		color: var(--panam-accent);
		background: color-mix(in srgb, var(--panam-surface), var(--panam-bg) 50%);
	}

	.mobile-menu__nav .is-open > .submenu-toggle svg {
		transform: rotate(180deg);
	}

	.mobile-menu__nav .is-open > a {
		color: var(--panam-accent);
		background: color-mix(in srgb, var(--panam-surface), var(--panam-bg) 55%);
	}

	/* ---- Mega menu inside the mobile menu ---- */
	.mobile-menu__nav .menu-item.panam-mega-item {
		grid-template-columns: minmax(0, 1fr) 56px;
		grid-template-rows: auto auto;
	}

	.mobile-menu__nav .panam-mega-item > a {
		grid-column: 1;
		grid-row: 1;
	}

	.mobile-menu__nav .panam-mega-toggle {
		display: grid;
		grid-column: 2;
		grid-row: 1;
		width: 56px;
		min-height: 56px;
		padding: 0;
		place-items: center;
		color: var(--panam-muted);
		background: transparent;
		border: 0;
		border-left: 1px solid var(--panam-border);
		cursor: pointer;
	}

	.mobile-menu__nav .panam-mega-toggle svg {
		width: 20px;
		height: 20px;
		transition: transform 200ms ease;
	}

	.mobile-menu__nav .panam-mega-item.is-mega-open > .panam-mega-toggle {
		color: var(--panam-accent);
		background: color-mix(in srgb, var(--panam-surface), var(--panam-bg) 50%);
	}

	.mobile-menu__nav .panam-mega-item.is-mega-open > .panam-mega-toggle svg {
		transform: rotate(180deg);
	}

	.mobile-menu__nav .panam-mega-item.is-mega-open > a {
		color: var(--panam-accent);
		background: color-mix(in srgb, var(--panam-surface), var(--panam-bg) 55%);
	}

	.mobile-menu__nav .panam-mega {
		display: none;
		grid-column: 1 / -1;
		grid-row: 2;
		background: color-mix(in srgb, var(--panam-surface), var(--panam-bg) 38%);
		border-top: 1px solid var(--panam-border);
	}

	.mobile-menu__nav .panam-mega-item.is-mega-open > .panam-mega {
		display: block;
	}

	.mobile-menu__nav .panam-mega__inner {
		display: block;
		max-height: none;
		overflow: visible;
		padding: 10px 20px 18px;
	}

	.mobile-menu__nav .panam-mega__col {
		margin: 0 0 16px;
	}

	.mobile-menu__nav .panam-mega__heading {
		margin-bottom: 6px;
	}

	.mobile-menu__nav .panam-mega__links a {
		display: flex;
		min-height: 44px;
		align-items: center;
		font-size: 1rem;
	}

	.mobile-menu__nav .panam-mega__viewall {
		margin: 8px 0 2px;
		min-height: 44px;
	}

	/* Promo image adds little on a narrow stacked menu — hide it on mobile. */
	.mobile-menu__nav .panam-mega__promo {
		display: none;
	}

	/* Submenu-mega groups collapse into dropdowns on mobile: the heading is a row
	   with a chevron marker, and its links show only when expanded. */
	.mobile-menu__nav .panam-mega--submenu .panam-mega__col > .panam-mega__group .panam-mega__heading {
		display: flex;
		align-items: center;
		gap: 8px;
		min-height: 0;
		margin: 0;
		padding: 12px 0;
	}

	.mobile-menu__nav .panam-mega--submenu .panam-mega__group .panam-mega__heading > a {
		flex: 1 1 auto;
	}

	.mobile-menu__nav .panam-mega__group-toggle {
		flex: 0 0 auto;
		display: grid;
		place-items: center;
		width: 34px;
		height: 34px;
		margin: 0;
		padding: 0;
		color: var(--panam-ink);
		background: transparent;
		border: 0;
		border-radius: var(--panam-header-radius, 0);
		cursor: pointer;
	}

	.mobile-menu__nav .panam-mega__group-toggle svg {
		width: 18px;
		height: 18px;
		fill: none;
		stroke: currentColor;
		stroke-width: 2;
		stroke-linecap: round;
		stroke-linejoin: round;
		transition: transform 200ms ease;
	}

	.mobile-menu__nav .panam-mega__group.is-open .panam-mega__group-toggle {
		color: var(--panam-accent);
	}

	.mobile-menu__nav .panam-mega__group.is-open .panam-mega__group-toggle svg {
		transform: rotate(180deg);
	}

	.mobile-menu__nav .panam-mega__group--collapsible .panam-mega__links {
		display: none;
	}

	.mobile-menu__nav .panam-mega__group--collapsible.is-open .panam-mega__links {
		display: grid;
		padding-bottom: 8px;
	}

	.mobile-menu__nav .sub-menu .sub-menu a {
		padding-left: 44px;
		font-size: 0.95rem;
		font-weight: 650;
		text-transform: none;
		letter-spacing: 0;
		color: var(--panam-muted);
	}

	.mobile-menu__nav .sub-menu .sub-menu .sub-menu a {
		padding-left: 60px;
		font-size: 0.92rem;
	}

	.category-grid,
	.footer-grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.footer-brand {
		grid-column: 1 / -1;
		max-width: none;
	}

	.footer-brand:only-child {
		grid-template-columns: 1fr;
	}

	.footer-trust {
		grid-template-columns: repeat(3, max-content);
		align-items: center;
	}

	.native-card-grid,
	.native-blog-grid,
	.native-review-grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.native-feature-card,
	.native-feature-card:nth-child(-n + 2) {
		grid-column: span 1;
	}

	.shop-layout--left,
	.shop-layout--right,
	.content-layout:has(.page-sidebar) {
		grid-template-columns: 1fr;
	}

	.shop-layout--left .shop-sidebar,
	.shop-layout--left .shop-content {
		grid-column: auto;
	}

	.collection-subcategories__grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.panam-journal-header__media,
	.panam-blog-header__media {
		aspect-ratio: 16 / 9;
	}

	/* Collection header: stack the square image above the text on phones. */
	.panam-collection-header--has-media {
		grid-template-columns: 1fr;
		justify-items: start;
	}

	.panam-collection-header__media {
		width: clamp(150px, 45vw, 200px);
	}

	.shop-toolbar .woocommerce-ordering {
		width: 100%;
		margin-left: 0;
	}

	.shop-toolbar .woocommerce-ordering select {
		width: 100%;
	}

	.woocommerce-cart .entry-content > .woocommerce {
		grid-template-columns: 1fr;
	}

	.woocommerce-cart .cart-collaterals {
		position: static;
	}
}

/* Contact page — tablet & phone: stack the hero and the form/support grid so
   nothing gets crushed. Desktop rules above are unchanged. */
@media (max-width: 860px) {
	.panam-contact-hero__inner {
		grid-template-columns: 1fr;
		gap: clamp(18px, 4vw, 26px);
		align-items: start;
	}

	.panam-contact-hero__content,
	.panam-contact-hero__text {
		max-width: none;
	}

	.panam-contact-grid {
		grid-template-columns: 1fr;
	}

	.panam-contact-support {
		position: static;
		top: auto;
	}

	.panam-contact-support__block {
		min-height: 0;
	}
}

@media (max-width: 560px) {
	/* Phones: drop the symmetric 3-col grid (it squeezes the message); put the
	   message on the left and keep the switcher flush right. */
	.announcement-bar--has-lang .container {
		grid-template-columns: 1fr auto;
		gap: 6px 10px;
	}

	.announcement-bar--has-lang .announcement-bar__msg {
		grid-column: 1;
		text-align: left;
	}

	.announcement-bar__lang {
		grid-column: 2;
	}

	.announcement-bar__lang .glink img {
		width: 18px;
		height: 18px;
	}

	.panam-contact-hero__panel {
		grid-template-columns: 1fr;
		gap: 10px;
		padding: 10px;
	}

	.panam-contact-method {
		min-height: 82px;
	}

	.panam-contact-address {
		grid-template-columns: 40px minmax(0, 1fr);
		padding: 14px;
	}

	.panam-contact-address span {
		width: 40px;
		height: 40px;
	}

	.panam-contact-address::after {
		display: none;
	}

	/* Single-column form fields on phones. */
	.panam-contact-form {
		grid-template-columns: 1fr;
	}
}

@media (max-width: 779px) {
	.container {
		width: min(calc(100% - 24px), var(--panam-container));
	}

	.admin-bar.has-sticky-header .site-header {
		top: 46px;
	}

	.header-inner {
		gap: 10px;
		min-height: 66px;
	}

	.icon-link {
		width: 38px;
		height: 38px;
	}

	.hero-grid,
	.woocommerce div.product .panam-product-top,
	.entry-card:not(.entry-card--blog) {
		grid-template-columns: 1fr;
	}

	.panam-blog-grid {
		--panam-blog-gap: 12px;
		--panam-blog-columns: 2;
	}

	.home-hero h1 {
		font-size: 2.35rem;
	}

	.home-attention .hero-grid {
		grid-template-columns: 1fr;
		padding: 16px;
	}

	.home-attention .hero-media {
		height: auto;
		aspect-ratio: 16 / 10;
	}

	.home-hero--editorial {
		min-height: 560px;
	}

	.benefits,
	.category-grid,
	.footer-grid {
		grid-template-columns: 1fr;
	}

	.site-footer {
		padding-block: 42px 20px;
	}

	.footer-grid {
		gap: 26px;
	}

	.footer-brand {
		gap: 14px;
		text-align: left;
	}

	.footer-brand p {
		max-width: none;
	}

	.footer-trust {
		grid-template-columns: 1fr;
	}

	.footer-brand:only-child .footer-trust {
		grid-template-columns: 1fr;
	}

	.footer-layout {
		grid-template-columns: 1fr;
	}

	.footer-logo-column {
		grid-column: 1 / -1;
	}

	.logo-div {
		max-width: none;
	}

	.post-footer-inner {
		display: grid;
		gap: 12px;
		justify-items: start;
	}

	.post-footer nav {
		justify-content: flex-start;
	}

	.footer-trust span {
		width: 100%;
		justify-content: flex-start;
	}

	.footer-column {
		padding-top: 22px;
		border-top: 1px solid rgb(255 255 255 / 12%);
	}

	.site-footer ul,
	.site-footer ol {
		gap: 8px;
	}

	/* Mobile banner format: every slide is a fixed 9:16 portrait box, regardless
	   of the desktop banner-height setting. Drop the pixel min-height and let the
	   aspect ratio drive the height off the (full-bleed) slide width. A "cover"
	   image fills this box; a "contain" image letterboxes within it. Desktop is
	   unchanged. */
	.native-welcome__slide {
		min-height: 0;
		aspect-ratio: 9 / 16;
	}

	/* Swap to the portrait image on phones when one is set (falls back to the
	   main image). Override only the image so the fit / position / contain rule
	   from above still apply. */
	.native-welcome__slide::before {
		background-image: var(--native-welcome-image-mobile, var(--native-welcome-image));
	}

	.native-welcome__slide::after {
		background: linear-gradient(180deg, rgb(0 0 0 / calc(var(--native-welcome-overlay, 0.72) * 61%)), rgb(0 0 0 / calc(var(--native-welcome-overlay, 0.72) * 108%)));
	}

	.native-welcome__arrow {
		width: 38px;
		height: 38px;
	}

	/* Stack the quick links vertically (item under item), full-width, sharp
	   corners — matches the theme's straight-line ecommerce style. */
	.native-category-nav {
		flex-direction: column;
		flex-wrap: nowrap;
		align-items: stretch;
		gap: 8px;
	}

	/* On mobile these are the customer's primary shortcuts, so make them stand
	   out: solid accent-filled buttons (white text/icon) instead of the quiet
	   outlined chips used on desktop. */
	.native-category-nav a {
		width: 100%;
		justify-content: flex-start;
		color: var(--panam-on-accent);
		background: var(--panam-accent);
		border-color: var(--panam-accent);
	}

	.native-category-nav__icon {
		color: var(--panam-on-accent);
		background: rgb(255 255 255 / 22%);
	}

	.native-card-grid,
	.native-blog-grid,
	.native-review-grid {
		grid-template-columns: 1fr;
	}

	.native-feature-card {
		min-height: 300px;
	}

	.section-heading,
	.footer-bottom {
		display: grid;
		align-items: start;
	}

	.footer-bottom {
		gap: 16px;
		justify-items: start;
	}

	.footer-bottom ul {
		display: flex;
		flex-wrap: wrap;
		gap: 8px 14px;
	}

	.footer-bottom p {
		white-space: normal;
	}

	.woocommerce ul.products:not(.collection-subcategories__grid),
	/* Match the (0,4,1) base rule for the shop/category collection grid so this
	   mobile 2-up override actually wins (otherwise it stays at the desktop count). */
	.woocommerce ul.products.panam-collection-grid:not(.collection-subcategories__grid),
	.featured-product-grid ul.products:not(.collection-subcategories__grid),
	.home-products ul.products:not(.collection-subcategories__grid) {
		--panam-product-gap: 12px;
		--panam-product-columns: 2;
	}

	.woocommerce ul.products li.product :is(.button, .added_to_cart),
	.featured-product-grid ul.products li.product :is(.button, .added_to_cart),
	.home-products ul.products li.product :is(.button, .added_to_cart) {
		--panam-btn-product-inset: 10px;
	}

	.woocommerce-loop-product__title {
		font-size: 0.92rem;
	}

	.cart-drawer {
		width: 100vw;
	}

	.cart-drawer-header,
	.cart-drawer-footer {
		padding: 18px;
	}

	.cart-drawer-body {
		padding-inline: 18px;
	}

	.cart-drawer-item {
		grid-template-columns: 72px minmax(0, 1fr);
	}

	.cart-drawer-item-price {
		grid-column: 2;
	}

	.woocommerce-cart table.cart tr.cart_item {
		grid-template-columns: 64px minmax(0, 1fr) auto;
		padding: 14px;
	}

	.woocommerce-cart table.cart td.product-thumbnail img {
		width: 64px;
		height: 64px;
	}

	.woocommerce-cart table.cart td.actions {
		flex-direction: column;
		align-items: stretch;
		padding: 14px;
	}

	.woocommerce-cart table.cart .coupon {
		display: grid;
		float: none;
		width: 100%;
	}

	.woocommerce-cart table.cart td.actions > button[name="update_cart"],
	.woocommerce-cart table.cart td.actions > input[name="update_cart"] {
		margin-left: 0;
	}

	.woocommerce-cart table.cart .coupon .input-text,
	.woocommerce-cart table.cart .coupon .button,
	.woocommerce-cart table.cart td.actions > .button {
		width: 100%;
	}
}

@media (max-width: 420px) {
	.woocommerce ul.products:not(.collection-subcategories__grid),
	.featured-product-grid ul.products:not(.collection-subcategories__grid),
	.home-products ul.products:not(.collection-subcategories__grid) {
		--panam-product-columns: 2;
	}

	.collection-subcategories__grid {
		grid-template-columns: 1fr;
	}

	.panam-blog-grid {
		--panam-blog-columns: 1;
	}
}

@media (max-width: 1024px) {
	.woocommerce div.product :is(.related.products, .upsells.products) {
		overflow: hidden;
	}

	.woocommerce div.product :is(.related.products, .upsells.products) > ul.products {
		--panam-related-slider-gap: 12px;
		--panam-related-slider-items: 3;
		display: flex !important;
		flex-wrap: nowrap !important;
		gap: var(--panam-related-slider-gap);
		overflow-x: auto;
		overflow-y: hidden;
		padding: 0 0 14px;
		margin: 0;
		list-style: none;
		scroll-snap-type: x mandatory;
		scroll-padding-inline: 0;
		-webkit-overflow-scrolling: touch;
		scrollbar-width: none;
		touch-action: pan-x;
	}

	.woocommerce div.product :is(.related.products, .upsells.products) > ul.products::-webkit-scrollbar {
		display: none;
	}

	.woocommerce div.product :is(.related.products, .upsells.products) > ul.products > li.product {
		flex: 0 0
			calc(
				(100% - (var(--panam-related-slider-gap) * (var(--panam-related-slider-items) - 1))) /
					var(--panam-related-slider-items)
			) !important;
		width: calc(
			(100% - (var(--panam-related-slider-gap) * (var(--panam-related-slider-items) - 1))) /
				var(--panam-related-slider-items)
		) !important;
		max-width: calc(
			(100% - (var(--panam-related-slider-gap) * (var(--panam-related-slider-items) - 1))) /
				var(--panam-related-slider-items)
		) !important;
		min-width: 0;
		scroll-snap-align: start;
		scroll-snap-stop: always;
	}
}

@media (max-width: 779px) {
	.woocommerce div.product :is(.related.products, .upsells.products) > ul.products {
		--panam-related-slider-items: 2;
	}
}
