/*
 * pilotMap theme CSS: only what theme.json cannot express.
 * Tokens come from theme.json (--wp--preset--* and --wp--custom--*).
 * Sections: base, forms, buttons and chips, type helpers, bands, map frame, legend, utilities.
 */

/* ---------- Base ---------- */
html { -webkit-text-size-adjust: 100%; }
body { -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; text-rendering: optimizeLegibility; }
img, svg, video { max-width: 100%; height: auto; }

:where(.wp-site-blocks) :where(p, li) a { text-underline-offset: 0.18em; text-decoration-thickness: 1px; }

/* Focus: 2px accent-dark, 2px offset, always visible for keyboard users */
:where(a, button, input, select, textarea, summary, [tabindex]):focus-visible {
	outline: 2px solid var(--wp--preset--color--accent-dark);
	outline-offset: 2px;
}
.has-contrast-background-color :where(a, button, input, select, textarea, summary):focus-visible,
.is-style-band-dark :where(a, button, input, select, textarea, summary):focus-visible {
	outline-color: var(--wp--preset--color--accent-light);
}

::selection { background: var(--wp--preset--color--accent-tint); color: var(--wp--preset--color--contrast); }

.skip-link.screen-reader-text:focus {
	background: var(--wp--preset--color--contrast);
	color: var(--wp--preset--color--base);
	font-weight: 600;
	padding: 14px 22px;
	border-radius: var(--wp--custom--radius--pill);
	z-index: 100000;
}

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

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

/* ---------- Forms ---------- */
:where(input[type="text"], input[type="email"], input[type="search"], input[type="tel"], input[type="url"],
       input[type="password"], input[type="number"], select) {
	box-sizing: border-box;
	min-height: var(--wp--custom--control--height);
	padding: 0 22px;
	border: 1px solid var(--wp--preset--color--contrast);
	border-radius: var(--wp--custom--radius--pill);
	background: var(--wp--preset--color--base-3);
	color: var(--wp--preset--color--contrast);
	font-family: var(--wp--preset--font-family--body);
	font-size: 16px;
	line-height: 1.4;
	max-width: 100%;
}
:where(select) { padding-right: 44px; appearance: none; background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1.5l5 5 5-5' fill='none' stroke='%231C2735' stroke-width='1.6'/%3E%3C/svg%3E"); background-repeat: no-repeat; background-position: right 20px center; }
:where(textarea) {
	box-sizing: border-box;
	padding: 14px 18px;
	border: 1px solid var(--wp--preset--color--contrast);
	border-radius: var(--wp--custom--radius--box);
	background: var(--wp--preset--color--base-3);
	color: var(--wp--preset--color--contrast);
	font: 16px/1.5 var(--wp--preset--font-family--body);
	max-width: 100%;
}
::placeholder { color: var(--wp--preset--color--contrast-3); opacity: 1; }
/* ICAO field: 64px tall (60px on phones), codes in Inter caps (Fraunces' hooked J made "KJFK" look wonky) */
input.pm-icao-input {
	min-height: var(--wp--custom--control--height-search);
	padding: 0 24px;
	font-family: var(--wp--preset--font-family--body);
	font-size: 20px;
	font-weight: 500;
	letter-spacing: 0.14em;
	text-transform: uppercase;
}
input.pm-icao-input::placeholder { text-transform: none; letter-spacing: 0.04em; }
@media (max-width: 767px) { input.pm-icao-input { min-height: 60px; } }
:where(input[type="checkbox"], input[type="radio"]) { accent-color: var(--wp--preset--color--contrast); width: 20px; height: 20px; }

/* ---------- Buttons ---------- */
/* Core button block: primary is the theme.json default; variations below. */
.wp-block-button .wp-block-button__link { display: inline-flex; align-items: center; justify-content: center; min-height: var(--wp--custom--control--height); box-sizing: border-box; }

.wp-block-button.is-style-dark .wp-block-button__link { background: var(--wp--preset--color--contrast); color: var(--wp--preset--color--base); }
.wp-block-button.is-style-dark .wp-block-button__link:hover { background: #26354A; color: var(--wp--preset--color--base); }

.wp-block-button.is-style-outline .wp-block-button__link,
.wp-block-button.is-style-outline-light .wp-block-button__link { background: transparent; border: 1px solid var(--wp--preset--color--contrast); color: var(--wp--preset--color--contrast); font-weight: 500; padding: 14px 31px; }
.wp-block-button.is-style-outline .wp-block-button__link:hover { background: rgba(28,39,53,0.08); }
.wp-block-button.is-style-outline-light .wp-block-button__link { border-color: rgba(252,251,250,0.5); color: var(--wp--preset--color--base); }
.wp-block-button.is-style-outline-light .wp-block-button__link:hover { background: rgba(252,251,250,0.08); }

.wp-block-button.is-style-text-link .wp-block-button__link {
	min-height: 0; padding: 0 0 4px; background: none; border-radius: 0;
	border-bottom: 1px solid currentColor; color: var(--wp--preset--color--contrast);
	font-size: var(--wp--preset--font-size--nav); font-weight: 500; letter-spacing: var(--wp--custom--tracking--nav); text-transform: uppercase;
}
.wp-block-button.is-style-text-link .wp-block-button__link:hover { background: none; color: var(--wp--preset--color--contrast-2); }

/* Same buttons for markup printed by PHP (plugin blocks, WooCommerce) */
.pm-btn {
	display: inline-flex; align-items: center; justify-content: center; gap: 8px;
	box-sizing: border-box; min-height: var(--wp--custom--control--height); padding: 0 32px;
	border: 1px solid transparent; border-radius: var(--wp--custom--radius--pill);
	background: var(--wp--preset--color--accent); color: var(--wp--preset--color--contrast);
	font: 600 16px/1.2 var(--wp--preset--font-family--body); letter-spacing: 0.04em;
	text-decoration: none; cursor: pointer; text-align: center;
}
.pm-btn:hover { background: #6EA2A2; color: var(--wp--preset--color--contrast); }
.pm-btn--dark { background: var(--wp--preset--color--contrast); color: var(--wp--preset--color--base); }
.pm-btn--dark:hover { background: #26354A; color: var(--wp--preset--color--base); }
.pm-btn--outline { background: transparent; border-color: var(--wp--preset--color--contrast); color: var(--wp--preset--color--contrast); font-weight: 500; }
.pm-btn--outline:hover { background: rgba(28,39,53,0.08); color: var(--wp--preset--color--contrast); }
.pm-btn--outline-light { background: transparent; border-color: rgba(252,251,250,0.5); color: var(--wp--preset--color--base); font-weight: 500; }
.pm-btn--outline-light:hover { background: rgba(252,251,250,0.08); color: var(--wp--preset--color--base); }
.pm-btn--block { display: flex; width: 100%; }

.pm-text-link {
	display: inline-block; padding-bottom: 4px; border-bottom: 1px solid currentColor;
	color: var(--wp--preset--color--contrast); text-decoration: none;
	font-size: var(--wp--preset--font-size--nav); font-weight: 500; letter-spacing: var(--wp--custom--tracking--nav); text-transform: uppercase;
}
.pm-text-link:hover { color: var(--wp--preset--color--contrast-2); }

/* Chips: 40px pill links. Active = dark. Custom = tint with accent border. */
.pm-chips { display: flex; flex-wrap: wrap; gap: 10px; align-items: center; margin: 0; padding: 0; list-style: none; }
.pm-chip {
	display: inline-flex; align-items: center; box-sizing: border-box;
	min-height: var(--wp--custom--control--chip); padding: 0 18px;
	border: 1px solid var(--wp--custom--border--strong); border-radius: var(--wp--custom--radius--pill);
	background: transparent; color: var(--wp--preset--color--contrast);
	font-size: var(--wp--preset--font-size--caption); font-weight: 500; text-decoration: none; white-space: nowrap;
}
.pm-chip:hover { background: rgba(28,39,53,0.06); color: var(--wp--preset--color--contrast); }
.pm-chip.is-active, .pm-chip[aria-current] { background: var(--wp--preset--color--contrast); border-color: var(--wp--preset--color--contrast); color: var(--wp--preset--color--base); }
.pm-chip--custom { background: var(--wp--preset--color--accent-tint); border-color: var(--wp--preset--color--accent); }

/* ---------- Type helpers ---------- */
.is-style-eyebrow, .pm-eyebrow {
	font-family: var(--wp--preset--font-family--body) !important;
	font-size: var(--wp--preset--font-size--eyebrow) !important;
	font-weight: 400 !important;
	line-height: 1.4 !important;
	letter-spacing: var(--wp--custom--tracking--eyebrow);
	text-transform: uppercase;
	color: var(--wp--preset--color--accent-dark);
}
.pm-caption { font-size: var(--wp--preset--font-size--caption); color: var(--wp--preset--color--contrast-3); }
.pm-display { font-family: var(--wp--preset--font-family--display); font-weight: 400; color: var(--wp--preset--color--contrast-2); }

/* ---------- Bands (full-width sections) ---------- */
.is-style-band-alt { background: var(--wp--preset--color--base-2); }
.is-style-band-tint { background: var(--wp--preset--color--accent-tint); }
.is-style-band-dark { background: var(--wp--preset--color--contrast); color: var(--wp--preset--color--base); }
.is-style-band-dark :where(h1, h2, h3, h4, h5, h6) { color: var(--wp--preset--color--base); }
.is-style-band-dark :where(a:not(.pm-btn, .wp-block-button__link)) { color: var(--wp--preset--color--base); }
.is-style-band-dark .is-style-eyebrow, .is-style-band-dark .pm-eyebrow { color: var(--wp--preset--color--accent-light); }
.is-style-band-dark :where(input[type="email"], input[type="text"]) { background: transparent; color: var(--wp--preset--color--base); border-color: rgba(252,251,250,0.3); }
.is-style-band-dark ::placeholder { color: rgba(252,251,250,0.7); }
/* Muted text on bands where contrast-3 is not allowed (base-2, tint): use contrast */
.is-style-band-alt .has-contrast-3-color, .is-style-band-tint .has-contrast-3-color { color: var(--wp--preset--color--contrast) !important; }

/* Hairline rules */
.pm-hairline-top { border-top: var(--wp--custom--border--hairline); }
.pm-hairline-bottom { border-bottom: var(--wp--custom--border--hairline); }

/* ---------- Map frame ---------- */
.pm-frame, .is-style-map-frame img, .wp-block-image.is-style-map-frame img, .wp-block-post-featured-image.is-style-map-frame img {
	box-sizing: border-box;
	border: var(--pm-frame-width, var(--wp--custom--frame--card)) solid var(--wp--preset--color--contrast-2);
	background: var(--wp--preset--color--chart-paper);
}
.pm-frame--white, .is-style-map-frame-white img {
	box-sizing: border-box;
	border: var(--pm-frame-width, var(--wp--custom--frame--card)) solid #FFFFFF;
	outline: 1px solid rgba(28,39,53,0.2);
	outline-offset: 0;
	background: var(--wp--preset--color--chart-paper);
}
.pm-frame--hero { --pm-frame-width: var(--wp--custom--frame--hero); box-shadow: var(--wp--preset--shadow--hero); }
.pm-frame--gallery { --pm-frame-width: var(--wp--custom--frame--gallery); box-shadow: var(--wp--preset--shadow--gallery); }
.pm-frame--small { --pm-frame-width: var(--wp--custom--frame--small); }
.pm-frame img { display: block; width: 100%; height: 100%; object-fit: cover; }

/* ---------- Product photos ---------- */
/* White studio backgrounds multiplied into cream (colours shift < 2%) */
.pm-card__media, .pm-gallery__main, .pm-gallery__thumb, .pm-nudge__photo,
.wc-block-cart-item__image, .wc-block-components-order-summary-item__image {
	background-color: var(--wp--preset--color--base); isolation: isolate;
}
.pm-card__img, .pm-gallery__img, .pm-gallery__zoom, .pm-gallery__thumb img, .pm-nudge__photo img,
.wc-block-cart-item__image img, .wc-block-components-order-summary-item__image img { mix-blend-mode: multiply; }
/* Teal bands (airport results, nudge): into the teal. darken only changes pixels lighter than the teal,
   so the map and LED colours stay true (multiply would tint them) */
.is-style-band-tint :is(.pm-card__media, .pm-nudge__photo) { background-color: var(--wp--preset--color--accent-tint); }
.is-style-band-tint :is(.pm-card__img, .pm-nudge__photo img) { mix-blend-mode: darken; }

/* ---------- METAR legend (product colours only here) ---------- */
.pm-legend {
	display: inline-flex; flex-direction: column; gap: 6px; padding: 10px 14px;
	background: rgba(255,255,255,0.88); border: 1px solid rgba(28,39,53,0.2);
	font-size: 12px; letter-spacing: 0.08em; text-transform: uppercase; color: var(--wp--preset--color--contrast);
}
.pm-legend span { display: flex; align-items: center; gap: 8px; }
.pm-legend span::before { content: ""; width: 8px; height: 8px; border-radius: 50%; background: var(--dot); }
.pm-legend .vfr { --dot: #2DB84A; } .pm-legend .mvfr { --dot: #2F6FE6; } .pm-legend .ifr { --dot: #E0321C; } .pm-legend .lifr { --dot: #C93ACF; }

/* ---------- Utilities ---------- */
.pm-stack { display: flex; flex-direction: column; }
.pm-nowrap { white-space: nowrap; }

/* ---------- Page frame ---------- */
.wp-site-blocks > * { margin-block-start: 0; }

/* ---------- Announcement bar ---------- */
.pm-announcement p {
	margin: 0;
	font-size: var(--wp--preset--font-size--eyebrow);
	letter-spacing: var(--wp--custom--tracking--bar);
	line-height: 1.5;
	text-transform: uppercase;
}
.pm-announcement__short { display: none; }
@media (max-width: 767px) {
	.pm-announcement { padding-top: 9px !important; padding-bottom: 9px !important; }
	.pm-announcement p { font-size: 12px; letter-spacing: 0.12em; }
	.pm-announcement__long { display: none; }
	.pm-announcement__short { display: block; }
}
/* One line on 320px phones */
@media (max-width: 359px) { .pm-announcement p { letter-spacing: 0.03em; } }

/* ---------- Header ---------- */
.pm-header { position: relative; background: var(--wp--preset--color--base); }
.pm-header__inner { gap: 16px; align-items: center; }
.pm-logo { display: block; line-height: 0; flex: none; }
.pm-logo img { display: block; height: 30px; width: auto; }

.pm-nav .wp-block-navigation-item__content {
	display: inline-block;
	padding: 4px 0 2px;
	border-bottom: 2px solid transparent;
	color: var(--wp--preset--color--contrast);
}
.pm-nav .wp-block-navigation-item__content:hover { border-bottom-color: rgba(120,176,176,0.5); }
.pm-nav .current-menu-item > .wp-block-navigation-item__content,
.pm-nav [aria-current="page"] { border-bottom-color: var(--wp--preset--color--accent); }

.pm-header__actions { flex: none; align-items: center; }

/* Search: icon button that expands into a field (core search block, button-only) */
.pm-header-search .wp-block-search__button {
	display: inline-flex; align-items: center; justify-content: center;
	width: 44px; height: 44px; min-height: 44px; margin: 0; padding: 0;
	border: 0; border-radius: 50%; background: transparent; color: var(--wp--preset--color--contrast);
}
.pm-header-search .wp-block-search__button:hover { background: rgba(28,39,53,0.06); }
.pm-header-search .wp-block-search__button svg { width: 22px; height: 22px; fill: currentColor; }
.pm-header-search .wp-block-search__inside-wrapper { align-items: center; gap: 8px; }
.pm-header-search:not(.wp-block-search__searchfield-hidden) .wp-block-search__input { min-height: 44px; width: 240px; padding: 0 18px; }

/* Cart pill (desktop) and bag icon (phone) */
.pm-cart-link {
	display: inline-flex; align-items: center; gap: 8px; box-sizing: border-box;
	height: 44px; padding: 0 16px;
	border: 1px solid var(--wp--preset--color--contrast); border-radius: var(--wp--custom--radius--pill);
	color: var(--wp--preset--color--contrast); text-decoration: none;
	font-size: 13px; font-weight: 500; letter-spacing: var(--wp--custom--tracking--nav); text-transform: uppercase;
}
.pm-cart-link:hover { background: rgba(28,39,53,0.06); color: var(--wp--preset--color--contrast); }
.pm-cart-link__icon { display: none; }
.pm-cart-link__count { opacity: 0.6; }

.pm-menu-toggle {
	display: none; align-items: center; justify-content: center;
	width: 44px; height: 44px; padding: 0; margin: 0;
	border: 0; border-radius: 50%; background: transparent; color: var(--wp--preset--color--contrast); cursor: pointer;
}
.pm-menu-toggle__close { display: none; }
.pm-menu-toggle[aria-expanded="true"] .pm-menu-toggle__bars { display: none; }
.pm-menu-toggle[aria-expanded="true"] .pm-menu-toggle__close { display: inline; }

/* Narrow desktops: tighter nav so it stays on one row */
@media (max-width: 1179px) and (min-width: 1024px) {
	.pm-nav .wp-block-navigation__container { gap: 22px !important; }
	.pm-nav .wp-block-navigation-item__content { font-size: 14px; letter-spacing: 0.04em; }
	.pm-logo img { height: 24px; }
	.pm-header-search { display: none; }
}

/* Phones and tablets (< 1024px): menu button left, logo centre, cart icon right; nav opens as a panel below the header */
@media (max-width: 1023px) {
	.pm-header { padding-top: 14px !important; padding-bottom: 14px !important; }
	.pm-header__inner { display: grid !important; grid-template-columns: 44px 1fr 44px; gap: 8px; }
	.pm-menu-toggle { display: inline-flex; }
	.pm-logo { justify-self: center; }
	.pm-logo img { height: 22px; }
	.pm-header-search { display: none; }
	.pm-cart-link { position: relative; width: 44px; height: 44px; padding: 0; border: 0; justify-content: center; }
	.pm-cart-link__icon { display: block; }
	.pm-cart-link__label { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }
	.pm-cart-link__count {
		position: absolute; top: 4px; right: 2px; min-width: 18px; height: 18px; padding: 0 4px; box-sizing: border-box;
		border-radius: 9px; background: var(--wp--preset--color--contrast); color: var(--wp--preset--color--base);
		font-size: 11px; line-height: 18px; text-align: center; letter-spacing: 0; opacity: 1;
	}
	.pm-cart-link[data-count="0"] .pm-cart-link__count { display: none; }

	/* Without JS the nav shows as a row under the logo */
	html:not(.pm-js) .pm-nav { grid-column: 1 / -1; }
	.pm-js .pm-nav {
		position: absolute; z-index: 50; top: 100%; left: 0; right: 0;
		background: var(--wp--preset--color--base); border-bottom: var(--wp--custom--border--hairline);
		box-shadow: 0 16px 24px rgba(28,39,53,0.08);
		visibility: hidden; opacity: 0; transition: opacity 160ms ease, visibility 0s linear 160ms;
	}
	.pm-js .pm-header.is-menu-open .pm-nav { visibility: visible; opacity: 1; transition: opacity 160ms ease; }
	.pm-js .pm-nav .wp-block-navigation__container { flex-direction: column; align-items: stretch; gap: 0 !important; width: 100%; }
	.pm-js .pm-nav .wp-block-navigation-item { border-top: var(--wp--custom--border--hairline); }
	.pm-js .pm-nav .wp-block-navigation-item__content {
		display: flex; align-items: center; min-height: 56px; box-sizing: border-box;
		padding: 0 var(--wp--preset--spacing--gutter); border-bottom: 0; font-size: 15px;
	}
	.pm-js .pm-nav .current-menu-item > .wp-block-navigation-item__content { box-shadow: inset 4px 0 0 var(--wp--preset--color--accent); }
}

/* ---------- Footer ---------- */
.pm-footer__grid {
	display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); column-gap: 32px; row-gap: 40px;
	font-size: 15px;
}
.pm-footer__brand { grid-column: 1 / span 4; display: flex; flex-direction: column; gap: 14px; }
.pm-footer__brand img { display: block; height: 26px; width: auto; }
.pm-footer__brand p { margin: 0; max-width: 300px; color: var(--wp--preset--color--contrast-3); }
.pm-footer__col:nth-of-type(1) { grid-column: 6 / span 2; }
.pm-footer__col:nth-of-type(2) { grid-column: 8 / span 2; }
.pm-footer__col:nth-of-type(3) { grid-column: 10 / span 3; }
.pm-footer__head {
	margin: 0 0 16px; font-family: var(--wp--preset--font-family--body); font-size: 12px; font-weight: 400;
	line-height: 1.4; letter-spacing: 0.14em; text-transform: uppercase; color: var(--wp--preset--color--accent-dark);
}
.pm-footer__col ul { margin: 0; padding: 0; list-style: none; display: flex; flex-direction: column; gap: 10px; }
.pm-footer__col a { color: var(--wp--preset--color--contrast); text-decoration: none; }
.pm-footer__col a:hover { text-decoration: underline; text-underline-offset: 0.18em; }
.pm-footer__bottom {
	grid-column: 1 / -1; display: flex; justify-content: space-between; flex-wrap: wrap; gap: 12px;
	padding-top: 20px; border-top: var(--wp--custom--border--hairline);
	font-size: 13px; color: var(--wp--preset--color--contrast-3);
}
@media (max-width: 767px) {
	.pm-footer { padding-top: 40px !important; padding-bottom: 28px !important; }
	.pm-footer__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: 16px; row-gap: 24px; }
	.pm-footer__brand, .pm-footer__bottom { grid-column: 1 / -1; }
	.pm-footer__col:nth-of-type(n) { grid-column: auto; }
	.pm-footer__brand img { height: 22px; }
	.pm-footer__head { margin-bottom: 4px; }
	.pm-footer__col ul { gap: 0; }
	.pm-footer__col a { display: inline-flex; align-items: center; min-height: 44px; }
}

/* ---------- Layout helpers: 12-column splits ---------- */
.pm-split { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); column-gap: 32px; row-gap: 24px; align-items: center; }
.pm-split > * { margin: 0 !important; }
/* Placed as 1st and 2nd child, not first/last: browser extensions that add an element after a form
   (seen in Brave) would otherwise drop the form into one narrow column */
.pm-split--7-4 > :first-child { grid-column: 1 / span 7; }
.pm-split--7-4 > :nth-child(2) { grid-column: 9 / span 4; }
.pm-split--5-7 > :first-child { grid-column: 1 / span 5; }
.pm-split--5-7 > :nth-child(2) { grid-column: 6 / span 7; }
.pm-split--4-7 > :first-child { grid-column: 1 / span 4; }
.pm-split--4-7 > :nth-child(2) { grid-column: 6 / span 7; }
.pm-split--7-5 > :first-child { grid-column: 1 / span 7; }
.pm-split--7-5 > :nth-child(2) { grid-column: 8 / span 5; }
@media (max-width: 899px) {
	.pm-split { grid-template-columns: minmax(0, 1fr); }
	.pm-split > * { grid-column: 1 / -1 !important; }
}
.pm-stack-buttons { gap: 12px; }
.pm-stack-buttons .wp-block-button { width: 100%; }
.pm-stack-buttons .wp-block-button__link { width: 100%; }

/* ---------- Badges ---------- */
.pm-badge {
	display: inline-block; padding: 5px 10px; border-radius: var(--wp--custom--radius--pill);
	background: var(--wp--preset--color--accent); color: var(--wp--preset--color--contrast);
	font-size: 12px; font-weight: 600; letter-spacing: 0.12em; line-height: 1.2; text-transform: uppercase;
}
.pm-badge--dark { background: var(--wp--preset--color--contrast); color: var(--wp--preset--color--base); }

/* ---------- Product grid and card ---------- */
.pm-grid { display: grid; grid-template-columns: repeat(var(--pm-cols, 3), minmax(0, 1fr)); gap: 40px 32px; margin: 0; padding: 0; list-style: none; }
.pm-grid--cols-4 { --pm-cols: 4; column-gap: 24px; }
.pm-grid--cols-2 { --pm-cols: 2; }
@media (max-width: 1023px) { .pm-grid, .pm-grid--cols-4 { --pm-cols: 2; gap: 32px 20px; } }
@media (max-width: 599px) { .pm-grid { --pm-cols: 1; } .pm-grid--cols-4 { --pm-cols: 2; gap: 28px 14px; } }

.pm-card { margin: 0; min-width: 0; }
.pm-card__link { display: flex; flex-direction: column; gap: 14px; height: 100%; color: var(--wp--preset--color--contrast); text-decoration: none; }
.pm-card__link:hover { color: var(--wp--preset--color--contrast); }
.pm-card__link:hover .pm-card__name { text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: 0.15em; }
.pm-card__link:focus-visible { outline-offset: 6px; }
.pm-card__media { position: relative; display: block; aspect-ratio: 1 / 1; overflow: hidden; }
.pm-card__img { display: block; width: 100%; height: 100%; object-fit: cover; }
.pm-card__media .pm-badge { position: absolute; top: 12px; left: 12px; }
.pm-card__placeholder { display: block; width: 100%; height: 100%; }
.pm-card__row { display: flex; justify-content: space-between; align-items: baseline; gap: 12px; }
.pm-card__name { margin: 0; font-family: var(--wp--preset--font-family--display); font-size: 24px; font-weight: 400; line-height: 1.2; color: var(--wp--preset--color--contrast-2); }
.pm-card__price { flex: none; font-weight: 500; }
.pm-card__sub { font-size: var(--wp--preset--font-size--caption); color: var(--wp--preset--color--contrast-3); }
.pm-card__sub:empty { display: none; }

/* Custom map tile */
.pm-card__media--custom {
	--pm-frame-width: var(--wp--custom--frame--card);
	display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 12px;
	padding: 32px; text-align: center; background: var(--wp--preset--color--accent-tint);
	border: var(--wp--custom--border--hairline);
}
.pm-card__custom-title { font-family: var(--wp--preset--font-family--display); font-size: 30px; line-height: 1.1; color: var(--wp--preset--color--contrast-2); }
.pm-card__custom-text { font-size: 14px; color: var(--wp--preset--color--contrast); }

/* Small cards (related maps, airport search results) */
.pm-card--small .pm-card__link { gap: 12px; }
.pm-card--small .pm-card__name { font-size: 20px; }
.pm-card--small .pm-card__price { font-size: 17px; }
.pm-card--small .pm-card__media--custom { --pm-frame-width: var(--wp--custom--frame--small); padding: 16px; }
.pm-card--small .pm-card__custom-title { font-size: 22px; }

/* Feature cards (home bestsellers): 4:3 photo, blurb, button */
.pm-card--feature .pm-card__link { gap: 18px; }
.pm-card--feature .pm-card__media { aspect-ratio: 4 / 3; }
.pm-card--feature .pm-card__img { object-fit: contain; }
.pm-card--feature .pm-card__name { font-size: var(--wp--preset--font-size--h-3); }
.pm-card--feature .pm-card__price { font-size: 18px; }
.pm-card--feature .pm-card__blurb { font-size: var(--wp--preset--font-size--body-sm); color: var(--wp--preset--color--contrast-3); }
.pm-card--feature .pm-card__cta { margin-top: auto; min-height: 52px; font-size: 15px; }
.pm-card--feature .pm-card__link:hover .pm-card__cta { background: rgba(28,39,53,0.08); }

/* ---------- Shop ---------- */
.pm-shop-head {
	display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); column-gap: 32px; row-gap: 24px; align-items: end;
	padding: 56px 0 32px;
}
.pm-shop-head__text { grid-column: 1 / span 7; }
.pm-shop-head__text > * { margin: 0; }
.pm-shop-head__text h1 { margin: 12px 0; }
.pm-shop-head__intro { max-width: 560px; font-size: 17px; color: var(--wp--preset--color--contrast-3); }
.pm-shop-head .pm-icao { grid-column: 8 / span 5; margin: 0; }
@media (max-width: 899px) {
	.pm-shop-head { grid-template-columns: minmax(0, 1fr); padding: 32px 0 24px; }
	.pm-shop-head__text, .pm-shop-head .pm-icao { grid-column: 1 / -1; }
}

.pm-filters { display: flex; flex-direction: column; gap: 16px; padding-bottom: 40px; }
.pm-filters__bar {
	display: flex; justify-content: space-between; align-items: center; flex-wrap: wrap; gap: 16px;
	padding: 16px 0; border-top: var(--wp--custom--border--hairline); border-bottom: var(--wp--custom--border--hairline);
}
.pm-filters__regions { display: flex; align-items: center; flex-wrap: wrap; gap: 10px; }
.pm-filters__label { margin-right: 6px; font-size: 12px; letter-spacing: 0.14em; text-transform: uppercase; color: var(--wp--preset--color--contrast-3); }
.pm-sort { display: flex; align-items: center; gap: 10px; margin: 0; }
.pm-sort__label { font-size: 14px; color: var(--wp--preset--color--contrast-3); }
.pm-sort select { min-height: var(--wp--custom--control--chip); padding: 0 40px 0 14px; border-color: var(--wp--custom--border--strong); font-size: 14px; background-position: right 14px center; }
.pm-js .pm-sort__go { display: none; }
.pm-filters__sizes { display: flex; align-items: center; flex-wrap: wrap; gap: 10px; }
.pm-filters__sizes ul { display: flex; flex-wrap: wrap; gap: 4px 22px; margin: 0; padding: 0; list-style: none; }
.pm-size {
	display: inline-flex; align-items: center; min-height: 40px; padding: 0;
	border-bottom: 2px solid transparent; color: var(--wp--preset--color--contrast-3);
	font-size: 14px; text-decoration: none;
}
.pm-size:hover { color: var(--wp--preset--color--contrast); }
.pm-size.is-active { border-bottom-color: var(--wp--preset--color--accent); color: var(--wp--preset--color--contrast); }
.pm-filters__icao { display: flex; align-items: center; gap: 14px; margin: 0; font-family: var(--wp--preset--font-family--display); font-size: 22px; color: var(--wp--preset--color--contrast-2); }
.pm-filters__icao .pm-chip { font-family: var(--wp--preset--font-family--body); }
@media (max-width: 767px) {
	/* Chips scroll sideways on phones instead of wrapping into four rows */
	.pm-filters__regions { flex: 1 1 100%; min-width: 0; flex-wrap: nowrap; margin-right: calc(-1 * var(--wp--preset--spacing--gutter)); }
	.pm-filters__regions .pm-chips { flex: 1 1 auto; min-width: 0; flex-wrap: nowrap; overflow-x: auto; padding: 2px var(--wp--preset--spacing--gutter) 2px 2px; scrollbar-width: none; }
	.pm-filters__regions .pm-chips::-webkit-scrollbar { display: none; }
	.pm-filters__regions .pm-chips li { flex: none; }
	.pm-filters__regions > .pm-filters__label { display: none; }
	.pm-filters__bar { padding: 12px 0; }
	.pm-filters { padding-bottom: 28px; }
}

.pm-more { display: flex; flex-direction: column; align-items: center; gap: 14px; padding: 48px 0 48px; }
.pm-more__next { padding: 0 40px; }
.pm-more__count { margin: 0; font-size: 14px; color: var(--wp--preset--color--contrast-3); }
.pm-more__next[aria-busy="true"] { opacity: 0.6; pointer-events: none; }

.pm-empty { padding: 48px 0; text-align: center; }
.pm-empty__title { margin: 0 0 20px; font-family: var(--wp--preset--font-family--display); font-size: var(--wp--preset--font-size--h-3); color: var(--wp--preset--color--contrast-2); }
.pm-empty p:last-child { display: flex; justify-content: center; flex-wrap: wrap; gap: 12px; }

/* ---------- ICAO search ---------- */
.pm-icao__form { display: flex; flex-wrap: wrap; gap: 12px; align-items: center; margin: 0; }
.pm-icao--large .pm-icao__input { flex: 1 1 280px; }
.pm-icao--large .pm-icao__button { min-height: var(--wp--custom--control--height-search); padding: 0 36px; }
/* Compact (shop header): input and button in one bordered pill */
.pm-icao--compact .pm-icao__form { flex-wrap: nowrap; gap: 0; overflow: hidden; border: 1px solid var(--wp--preset--color--contrast); border-radius: var(--wp--custom--radius--pill); background: var(--wp--preset--color--base-3); }
.pm-icao--compact .pm-icao__input { flex: 1 1 auto; min-width: 0; border: 0; border-radius: 0; background: transparent; letter-spacing: 0.08em; text-transform: uppercase; }
.pm-icao--compact .pm-icao__input::placeholder { text-transform: none; letter-spacing: 0; }
.pm-icao--compact .pm-icao__input:focus-visible { outline-offset: -4px; border-radius: var(--wp--custom--radius--pill); }
.pm-icao--compact .pm-icao__button { flex: none; border-radius: 0; padding: 0 24px; font-size: 14px; }
.pm-icao.is-loading .pm-icao__button { opacity: 0.6; }
.pm-icao__results { margin-top: 32px; }
.pm-icao__msg { margin: 0 0 20px; font-size: 17px; }
.pm-icao__msg a { color: var(--wp--preset--color--contrast); font-weight: 500; }
.pm-grid--results { --pm-cols: 4; gap: 24px; }
@media (max-width: 767px) {
	.pm-icao--large .pm-icao__form { flex-direction: column; align-items: stretch; }
	.pm-icao--large .pm-icao__input { flex: none; }
	.pm-icao--large .pm-icao__button { min-height: var(--wp--custom--control--height); }
	.pm-grid--results { --pm-cols: 2; }
}

/* ---------- Help band ---------- */
.pm-help-band h2 { font-size: clamp(28px, calc(20px + 1.6vw), 36px) !important; }

/* ---------- Product page ---------- */
.pm-product > * { margin-block-start: 0; }
.pm-breadcrumb { padding-top: 8px; font-size: var(--wp--preset--font-size--caption); color: var(--wp--preset--color--contrast-3); }
.pm-breadcrumb ol { display: flex; flex-wrap: wrap; gap: 8px; margin: 0; padding: 0; list-style: none; }
.pm-breadcrumb li + li::before { content: "/"; margin-right: 8px; color: var(--wp--preset--color--contrast-3); }
.pm-breadcrumb a { display: inline-flex; align-items: center; min-height: 44px; color: var(--wp--preset--color--contrast-3); text-decoration: none; }
.pm-breadcrumb ol { align-items: center; }
.pm-breadcrumb a:hover { color: var(--wp--preset--color--contrast); text-decoration: underline; }
.pm-breadcrumb [aria-current] { color: var(--wp--preset--color--contrast); }

.pm-product__top {
	display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); column-gap: 48px; align-items: start;
	padding: 32px 0 80px;
}
.pm-product__top > .pm-gallery { grid-column: 1 / span 7; }
.pm-product__top > .pm-buybox { grid-column: 8 / span 5; position: sticky; top: 24px; display: flex; flex-direction: column; gap: 24px; }
.pm-buybox > * { margin: 0 !important; }
@media (max-width: 1023px) {
	.pm-product__top { grid-template-columns: minmax(0, 1fr); row-gap: 32px; padding: 20px 0 48px; }
	.pm-product__top > .pm-gallery, .pm-product__top > .pm-buybox { grid-column: 1 / -1; position: static; }
}

/* Gallery: photo straight on the page (see Product photos) */
.pm-gallery { display: flex; flex-direction: column; gap: 16px; }
.pm-gallery__main { position: relative; display: block; aspect-ratio: 1 / 1; overflow: hidden; cursor: zoom-in; }
.pm-gallery__img { display: block; width: 100%; height: 100%; object-fit: contain; transition: opacity 0.15s; }
/* Hover magnifier (gallery.js). Photo below hidden while zooming (the two would multiply); two classes beat .woocommerce img */
.pm-gallery__main .pm-gallery__zoom { position: absolute; top: 0; left: 0; width: auto; height: auto; max-width: none; opacity: 0; pointer-events: none; transition: opacity 0.15s; }
.pm-gallery__main.is-zooming .pm-gallery__zoom { opacity: 1; }
.pm-gallery__main.is-zooming .pm-gallery__img { opacity: 0; }
.pm-gallery__thumbs { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 12px; margin: 0; padding: 0; list-style: none; }
.pm-gallery__thumb { display: block; aspect-ratio: 1 / 1; box-sizing: border-box; border: 1px solid rgba(28,39,53,0.2); }
.pm-gallery__thumb img { display: block; width: 100%; height: 100%; object-fit: cover; }
.pm-gallery__thumb[aria-current] { border: 3px solid var(--wp--preset--color--contrast-2); }
.pm-zoom { width: 100vw; height: 100vh; max-width: none; max-height: none; margin: 0; padding: 0; border: 0; background: rgba(12,16,22,0.94); }
.pm-zoom::backdrop { background: rgba(12,16,22,0.94); }
.pm-zoom__body { width: 100%; height: 100%; overflow: auto; display: flex; }
.pm-zoom__body img { margin: auto; max-width: 96vw; max-height: 94vh; object-fit: contain; cursor: zoom-in; }
.pm-zoom.is-zoomed .pm-zoom__body img { max-width: none; max-height: none; cursor: zoom-out; }
.pm-zoom__close {
	position: fixed; top: 16px; right: 16px; z-index: 2; width: 48px; height: 48px; border: 0; border-radius: 50%;
	background: var(--wp--preset--color--base); color: var(--wp--preset--color--contrast); font-size: 28px; line-height: 1; cursor: pointer;
}

/* Summary */
.pm-summary > * { margin: 0; }
.pm-summary .pm-eyebrow { margin-bottom: 10px; }
.pm-product__title { margin: 0 0 8px; font-family: var(--wp--preset--font-family--display); font-size: var(--wp--preset--font-size--product-title); font-weight: 400; line-height: 1.05; color: var(--wp--preset--color--contrast-2); }
.pm-product__sub { font-size: var(--wp--preset--font-size--body-sm); color: var(--wp--preset--color--contrast-3); }
.pm-product__price { display: flex; align-items: baseline; flex-wrap: wrap; gap: 6px 14px; margin-top: 24px !important; }
.pm-product__amount { font-family: var(--wp--preset--font-family--display); font-size: var(--wp--preset--font-size--price); color: var(--wp--preset--color--contrast); }
.pm-product__note { font-size: 14px; font-weight: 500; color: var(--wp--preset--color--accent-dark); }
.pm-product__short { margin-top: 24px !important; font-size: var(--wp--preset--font-size--body-sm); }
.pm-product__short p { margin: 0 0 0.8em; }
.pm-product__short p:last-child { margin-bottom: 0; }

/* Add to cart form (WooCommerce classic form, restyled) */
.pm-buybox form.cart { display: flex; flex-direction: column; gap: 24px; margin: 0; }
.pm-buybox table.variations, .pm-buybox table.variations tbody, .pm-buybox table.variations tr, .pm-buybox table.variations td { display: block; width: 100%; margin: 0; padding: 0; border: 0; background: none; }
.pm-buybox table.variations { margin: 0; }
.pm-buybox table.variations tr + tr { margin-top: 20px; }
.pm-buybox table.variations th.label { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }
.pm-buybox .single_variation_wrap { display: flex; flex-direction: column; gap: 24px; }
.pm-buybox .woocommerce-variation:empty, .pm-buybox .woocommerce-variation-description:empty { display: none; }
.pm-buybox .woocommerce-variation-price .price { font-family: var(--wp--preset--font-family--display); font-size: 24px; }
.pm-buybox .woocommerce-variation-availability p { margin: 0; font-size: 14px; color: var(--wp--preset--color--accent-dark); }

/* Pills sit inside WooCommerce's variations table, whose classic CSS sets label and cell styles: scope tightly */
.pm-buybox table.variations select[hidden] { display: none !important; }
.pm-buybox table.variations td.value { line-height: 1.4; }
.pm-buybox form.cart, .pm-buybox table.variations { margin: 0 !important; }
.pm-buybox table.variations th, .pm-buybox table.variations td { padding: 0 !important; }
.pm-buybox .single_variation_wrap { gap: 0 !important; }
.pm-buybox .single_variation { margin: 0 !important; }
.pm-buybox .single_variation > :not(:empty) { margin-bottom: 16px; }
/* WooCommerce's clearfix pseudo-elements would become flex items and add gaps */
.pm-buybox form.cart::before, .pm-buybox form.cart::after,
.pm-buybox .woocommerce-variation-add-to-cart::before, .pm-buybox .woocommerce-variation-add-to-cart::after { display: none !important; }
.pm-buybox .pm-pills__legend { line-height: 1.4; }
.pm-buybox .pm-pill { margin: 0 !important; }
.pm-buybox .wc-block-add-to-cart-form { margin: 0 !important; padding: 0 !important; }
.pm-pills { margin: 0; padding: 0; border: 0; min-width: 0; }
.pm-pills__legend { margin-bottom: 10px; padding: 0; font-size: 13px; font-weight: 500; letter-spacing: 0.12em; text-transform: uppercase; color: var(--wp--preset--color--contrast); }
.pm-pills__row { display: flex; flex-wrap: wrap; gap: 12px; }
.pm-buybox .pm-pill, .pm-pill {
	position: relative; display: flex; flex: 1 1 140px; align-items: center; gap: 12px; box-sizing: border-box;
	min-height: var(--wp--custom--control--height); padding: 0 18px;
	border: 1px solid var(--wp--custom--border--strong); border-radius: var(--wp--custom--radius--pill);
	font-size: 15px; font-weight: 500; line-height: 1.3; text-align: left; cursor: pointer;
}
.pm-pill:hover { border-color: var(--wp--preset--color--contrast); }
.pm-pill input { margin: 0; width: 18px; height: 18px; flex: none; }
.pm-pill:has(input:checked) { border: 2px solid var(--wp--preset--color--contrast); padding: 0 17px; }
.pm-pill:has(input:focus-visible) { outline: 2px solid var(--wp--preset--color--accent-dark); outline-offset: 2px; }
.pm-pill input:focus-visible { outline: none; }
.pm-pill__dot { width: 22px; height: 22px; flex: none; border-radius: 50%; border: 1px solid rgba(28,39,53,0.3); box-sizing: border-box; }

/* Gift option */
.pm-gift { display: flex; flex-direction: column; gap: 12px; }
.pm-gift__box {
	display: flex; align-items: flex-start; gap: 12px; padding: 16px 18px;
	border-radius: var(--wp--custom--radius--box); background: var(--wp--preset--color--accent-tint);
	font-size: 15px; cursor: pointer;
}
.pm-gift__box input { margin: 3px 0 0; flex: none; }
.pm-gift__box strong { font-weight: 600; }
.pm-gift__message { display: flex; flex-direction: column; gap: 6px; }
.pm-gift__message label { font-size: 14px; font-weight: 500; }
.pm-gift__message textarea { width: 100%; }
.pm-gift__hint { font-size: 14px; color: var(--wp--preset--color--contrast-3); }
.pm-gift:has(.pm-gift__check:not(:checked)) .pm-gift__message { display: none; }

/* Quantity stepper + add to cart */
.pm-buybox .woocommerce-variation-add-to-cart, .pm-buybox form.cart:not(.variations_form) { flex-direction: row; }
.pm-buybox .woocommerce-variation-add-to-cart, .pm-buybox form.cart:not(.variations_form) { display: flex; flex-wrap: wrap; align-items: stretch; gap: 12px; }
.pm-buybox .woocommerce-variation-add-to-cart > .pm-gift, .pm-buybox form.cart:not(.variations_form) > .pm-gift { flex: 1 1 100%; }
.quantity { display: inline-flex; align-items: center; gap: 4px; box-sizing: border-box; height: 60px; padding: 0 6px; border: 1px solid var(--wp--custom--border--strong); border-radius: var(--wp--custom--radius--pill); background: var(--wp--preset--color--base-3); }
.quantity:has(input[type="hidden"]) { display: none; }
.quantity .qty { width: 44px; min-height: 44px; padding: 0; border: 0; border-radius: 0; background: transparent; text-align: center; font-size: 16px; -moz-appearance: textfield; }
.quantity .qty::-webkit-outer-spin-button, .quantity .qty::-webkit-inner-spin-button { -webkit-appearance: none; margin: 0; }
.pm-qty__btn { width: 44px; height: 44px; padding: 0; border: 0; border-radius: 50%; background: transparent; color: var(--wp--preset--color--contrast); font-size: 20px; cursor: pointer; }
.pm-qty__btn:hover { background: rgba(28,39,53,0.06); }
.pm-buybox .single_add_to_cart_button {
	flex: 1 1 140px; min-height: var(--wp--custom--control--height-lg); margin: 0; padding: 0 24px;
	border: 0; border-radius: var(--wp--custom--radius--pill);
	background: var(--wp--preset--color--accent); color: var(--wp--preset--color--contrast);
	font: 600 17px/1.2 var(--wp--preset--font-family--body); letter-spacing: 0.02em; cursor: pointer;
}
.pm-buybox .single_add_to_cart_button:hover { background: #6EA2A2; }
.pm-buybox .single_add_to_cart_button.disabled, .pm-buybox .single_add_to_cart_button:disabled { opacity: 0.55; cursor: not-allowed; }

.pm-facts {
	display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px 16px;
	padding-top: 18px; border-top: var(--wp--custom--border--hairline); font-size: 14px;
}
.pm-facts p { margin: 0; }

/* Accordions: native <details> */
.pm-accordions { border-top: var(--wp--custom--border--hairline); }
.pm-accordions > * { margin: 0 !important; }
.pm-accordion { border-bottom: var(--wp--custom--border--hairline); }
.pm-accordion > summary {
	display: flex; justify-content: space-between; align-items: center; gap: 16px;
	min-height: 56px; padding: 0; list-style: none; cursor: pointer;
	font-size: 16px; font-weight: 500;
}
.pm-accordion > summary::-webkit-details-marker { display: none; }
.pm-accordion > summary::after {
	content: ""; flex: none; width: 9px; height: 9px; margin-right: 4px;
	border-right: 1.6px solid currentColor; border-bottom: 1.6px solid currentColor; transform: translateY(-2px) rotate(45deg);
}
.pm-accordion[open] > summary::after { transform: translateY(2px) rotate(-135deg); }
.pm-accordion__count { margin-left: auto; color: var(--wp--preset--color--contrast-3); font-weight: 400; }
.pm-accordion > :not(summary) { margin-top: 0; }
.pm-accordion__body, .wp-block-details.pm-accordion > p { padding: 0 0 18px; font-size: 15px; }
.wp-block-details.pm-accordion > p { margin: 0; }
.pm-airports__list { margin: 0; font-size: 14px; line-height: 1.7; color: var(--wp--preset--color--contrast-3); overflow-wrap: anywhere; }
.pm-airports__more > summary { display: inline-flex; align-items: center; min-height: 44px; color: var(--wp--preset--color--accent-dark); font-size: 14px; font-weight: 500; cursor: pointer; list-style: none; text-decoration: underline; text-underline-offset: 0.2em; }
.pm-airports__more > summary::-webkit-details-marker { display: none; }
.pm-airports__more[open] > summary { display: none; }
.pm-airports__more p { margin: 0; font-size: 14px; line-height: 1.7; color: var(--wp--preset--color--contrast-3); overflow-wrap: anywhere; }
.pm-prose { font-size: 15px; }
.pm-prose p { margin: 0 0 0.9em; }
.pm-prose img { height: auto; }

/* Specs row */
.pm-specs { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 32px; padding: 56px 0; border-top: var(--wp--custom--border--hairline); }
.pm-spec p { margin: 0; }
.pm-spec__label { margin-bottom: 8px !important; font-size: 12px; letter-spacing: 0.14em; text-transform: uppercase; color: var(--wp--preset--color--accent-dark); }
.pm-spec__value { font-family: var(--wp--preset--font-family--display); font-size: var(--wp--preset--font-size--h-3); color: var(--wp--preset--color--contrast-2); }
.pm-spec__note { font-size: 14px; color: var(--wp--preset--color--contrast-3); }
@media (max-width: 899px) { .pm-specs { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 28px 20px; padding: 40px 0; } }

/* Day / night band */
.pm-lifestyle { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); }
.pm-lifestyle img { display: block; width: 100%; height: 100%; min-height: 520px; object-fit: cover; }
@media (max-width: 767px) { .pm-lifestyle { grid-template-columns: minmax(0, 1fr); } .pm-lifestyle img { min-height: 0; aspect-ratio: 4 / 3; } }

/* Reviews */
.pm-reviews { padding: 80px 0; }
.pm-reviews__head h2 { margin: 0 0 12px; font-size: var(--wp--preset--font-size--h-2-small); }
.pm-reviews__head .pm-eyebrow { margin: 0 0 12px; }
.pm-reviews__count { margin: 0; font-size: 15px; color: var(--wp--preset--color--contrast-3); }
.pm-reviews__list { display: flex; flex-direction: column; align-self: start; }
.pm-review { margin: 0; padding: 24px 0; border-top: var(--wp--custom--border--hairline); }
.pm-review:last-child { border-bottom: var(--wp--custom--border--hairline); }
.pm-review__text { margin: 0 0 8px; font-family: var(--wp--preset--font-family--display); font-size: 20px; font-style: italic; line-height: 1.4; }
.pm-review__by { font-size: 13px; letter-spacing: 0.06em; text-transform: uppercase; color: var(--wp--preset--color--contrast-3); }
.pm-review__stars { letter-spacing: 0.1em; color: var(--wp--preset--color--contrast); }
.pm-reviews--empty { padding: 40px 0 56px; border-top: var(--wp--custom--border--hairline); }
.pm-reviews__empty { display: flex; flex-wrap: wrap; align-items: baseline; gap: 8px 16px; }
.pm-reviews__empty > p { margin: 0; font-size: 16px; color: var(--wp--preset--color--contrast-3); }
.pm-reviews__thanks { margin: 0 0 16px; padding: 12px 16px; border-radius: 12px; background: var(--wp--preset--color--base-2, #EEF3F2); font-size: 15px; font-weight: 500; color: var(--wp--preset--color--contrast); }
.pm-review-form > summary { display: inline-flex; align-items: center; min-height: 44px; color: var(--wp--preset--color--accent-dark); font-size: 15px; font-weight: 500; cursor: pointer; list-style: none; text-decoration: underline; text-underline-offset: 0.2em; }
.pm-review-form > summary::-webkit-details-marker { display: none; }
.pm-review-form[open] { flex-basis: 100%; }
.pm-review-form .comment-form { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; max-width: 640px; margin-top: 12px; }
.pm-review-form .comment-form > p { display: flex; flex-direction: column; gap: 6px; margin: 0; grid-column: 1 / -1; }
.pm-review-form .comment-form-author, .pm-review-form .comment-form-email { grid-column: auto !important; }
.pm-review-form label { font-size: 14px; font-weight: 500; }
.pm-review-form .comment-form-cookies-consent { flex-direction: row !important; align-items: center; font-size: 14px; }
@media (max-width: 599px) { .pm-review-form .comment-form { grid-template-columns: minmax(0, 1fr); } }

/* Related */
.pm-related { padding: 0 0 96px; }
.pm-section-head { margin-bottom: 32px; gap: 16px; }
.pm-section-head h2 { margin: 0; }

/* ---------- Home ---------- */
.pm-home > * { margin-block-start: 0; }
.pm-split--6-6 > :first-child { grid-column: 1 / span 6; }
.pm-split--6-6 > :nth-child(2) { grid-column: 7 / span 6; }

/* Hero */
.pm-hero__text { display: flex; flex-direction: column; gap: 28px; }
.pm-hero__text > * { margin: 0 !important; }
.pm-hero__lede { max-width: 480px; line-height: 1.5; }
.pm-hero__buttons { margin-top: 8px !important; gap: 16px; }
.pm-hero__trust { display: flex; flex-wrap: wrap; gap: 8px 28px; margin-top: 12px !important; font-size: 14px; color: var(--wp--preset--color--contrast-3); }
.pm-hero__media { position: relative; }
.pm-hero__photo { margin: 0; aspect-ratio: 4 / 3; overflow: hidden; box-shadow: var(--wp--preset--shadow--hero); }
.pm-hero__photo img { display: block; width: 100%; height: 100%; object-fit: cover; object-position: 50% 30%; }
.pm-hero__placeholder { aspect-ratio: 4 / 3; }
.pm-hero__legend { position: absolute; right: 30px; bottom: 30px; }
@media (max-width: 899px) {
	.pm-hero { padding-top: 32px !important; padding-bottom: 48px !important; }
	.pm-hero__text { gap: 20px; }
	.pm-hero__buttons { flex-direction: column; align-items: stretch; }
	.pm-hero__buttons .wp-block-button__link { width: 100%; }
	.pm-hero__legend { right: 12px; bottom: 12px; }
}

/* Airport search band */
.pm-icao-band .pm-icao { margin: 0; }
.pm-icao-band .pm-icao__results { margin-top: 28px; }
.pm-icao-band .pm-icao__msg a { text-decoration: underline; }
.pm-icao-band .pm-split { align-items: start; }
/* contrast-3 fails on the tint band: captions in cards there use the body colour */
.is-style-band-tint .pm-card__sub, .is-style-band-alt .pm-card__sub, .is-style-band-tint .pm-caption { color: var(--wp--preset--color--contrast); }

/* Trust strip */
.pm-trust { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 6px 32px; padding: 40px 0; border-top: var(--wp--custom--border--hairline); border-bottom: var(--wp--custom--border--hairline); }
/* Flow-layout groups: no block-gap margins inside the grid */
.pm-trust > * { margin: 0 !important; }
/* Title and text rows shared across items (subgrid), so the texts line up when a title wraps */
.pm-trust__item { display: grid; grid-row: span 2; grid-template-rows: subgrid; align-content: start; }
.pm-trust__item > * { margin: 0 !important; }
/* 28px max: "Handmade in the USA" fits one line at 1400px */
.pm-trust__title { align-self: end; font-family: var(--wp--preset--font-family--display); font-size: min(var(--wp--preset--font-size--stat), 28px); line-height: 1.15; color: var(--wp--preset--color--contrast-2); }
.pm-trust__text { font-size: 15px; color: var(--wp--preset--color--contrast-3); }
@media (max-width: 899px) {
	.pm-trust { grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: 16px; padding: 32px 0; }
	.pm-trust__item:nth-child(n+3) { padding-top: 18px; }
	.pm-trust__text { font-size: 14px; }
}

/* How it works */
.pm-how .pm-split { align-items: start; }
.pm-steps { margin: 0; padding: 0; list-style: none; }
.pm-step { display: grid; grid-template-columns: 72px minmax(0, 1fr); gap: 24px; padding: 28px 0; border-top: var(--wp--custom--border--hairline); }
.pm-step:last-child { border-bottom: var(--wp--custom--border--hairline); }
.pm-step__num { font-family: var(--wp--preset--font-family--display); font-size: 40px; line-height: 1; color: var(--wp--preset--color--accent-dark); }
.pm-step__title { margin: 0 0 6px; font-family: var(--wp--preset--font-family--body); font-size: var(--wp--preset--font-size--h-3-ui); font-weight: 500; line-height: 1.3; color: var(--wp--preset--color--contrast); }
.pm-step__text { margin: 0; color: var(--wp--preset--color--contrast-3); }
@media (max-width: 599px) { .pm-step { grid-template-columns: 52px minmax(0, 1fr); gap: 16px; } .pm-step__num { font-size: 32px; } }

/* Gift band */
.pm-gift-band { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); padding: 0 !important; }
.pm-gift-band > * { margin: 0 !important; max-width: none !important; }
.pm-gift-band__photo { margin: 0; min-height: 560px; }
.pm-gift-band__photo img { display: block; width: 100%; height: 100%; min-height: 560px; object-fit: cover; }
.pm-gift-band__text { display: flex; flex-direction: column; justify-content: center; gap: 24px; padding: 88px 72px; }
.pm-gift-band__text > * { margin: 0 !important; }
.pm-gift-band__text p:not(.is-style-eyebrow) { max-width: 520px; }
.pm-gift-band__title { font-size: clamp(34px, calc(22px + 2.4vw), 52px) !important; line-height: 1.05; }
.pm-gift-band .wp-block-buttons { gap: 16px; margin-top: 8px !important; }
@media (max-width: 899px) {
	.pm-gift-band { grid-template-columns: minmax(0, 1fr); }
	.pm-gift-band__photo, .pm-gift-band__photo img { min-height: 0; aspect-ratio: 1 / 1; }
	.pm-gift-band__text { padding: 40px var(--wp--preset--spacing--gutter) 48px; gap: 18px; }
}

/* Testimonials */
.pm-testimonials { padding: var(--wp--preset--spacing--section) 0; text-align: center; }
.pm-testimonials .pm-eyebrow { margin: 0 0 12px; }
.pm-testimonials h2 { margin: 0 0 56px; font-size: clamp(32px, calc(24px + 1.6vw), 44px); }
.pm-quotes { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 32px; text-align: left; }
.pm-quotes--1 { grid-template-columns: minmax(0, 760px); justify-content: center; }
.pm-quotes--2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.pm-quote { display: flex; flex-direction: column; gap: 20px; margin: 0; padding: 36px; background: var(--wp--preset--color--base-3); border: var(--wp--custom--border--hairline); }
.pm-quote__text { margin: 0; font-family: var(--wp--preset--font-family--display); font-size: 22px; font-style: italic; line-height: 1.4; }
.pm-quote__by { font-size: 14px; letter-spacing: 0.06em; text-transform: uppercase; color: var(--wp--preset--color--contrast-3); }
@media (max-width: 899px) { .pm-quotes { grid-template-columns: minmax(0, 1fr); } .pm-quote { padding: 24px; } .pm-quote__text { font-size: 19px; } }

/* Journal teaser */
.pm-journal__head { padding-top: 48px; border-top: var(--wp--custom--border--hairline); margin-bottom: 40px; }
.pm-journal__list { gap: 32px !important; }
.pm-teaser { display: grid; grid-template-columns: 200px minmax(0, 1fr); gap: 24px; align-items: center; }
.pm-teaser > * { margin: 0 !important; }
.pm-teaser__img { width: 200px !important; height: 200px !important; background: var(--wp--preset--color--base-2); }
.pm-teaser__img img { width: 100%; height: 100%; object-fit: cover; }
.pm-teaser__text > * { margin: 0 !important; }
/* Posts without a featured image keep the square slot */
.pm-teaser:not(:has(.pm-teaser__img))::before { content: ""; width: 200px; height: 200px; background: var(--wp--preset--color--chart-paper); }
@media (max-width: 899px) { .pm-teaser:not(:has(.pm-teaser__img))::before { width: 112px; height: 112px; } }
.pm-teaser__cat { margin-bottom: 8px !important; }
.pm-teaser__cat a { color: inherit; text-decoration: none; }
.pm-teaser__title { font-size: var(--wp--preset--font-size--h-3); line-height: 1.2; }
.pm-teaser__title a { text-decoration: none; color: var(--wp--preset--color--contrast-2); }
.pm-teaser__title a:hover { text-decoration: underline; text-decoration-thickness: 1px; }
@media (max-width: 899px) {
	.pm-journal__list { grid-template-columns: minmax(0, 1fr) !important; gap: 24px !important; }
	.pm-teaser { grid-template-columns: 112px minmax(0, 1fr); gap: 16px; }
	.pm-teaser__img { width: 112px !important; height: 112px !important; }
	.pm-teaser__title { font-size: 21px; }
}

/* ---------- Blog ---------- */
.pm-blog > * { margin-block-start: 0; }
.pm-blog-head { padding: 56px 0 40px; gap: 24px; }
.pm-blog-head__text > * { margin: 0; }
.pm-blog-head__text h1 { margin: 12px 0; }
.pm-blog-head__intro { max-width: 560px; font-size: 17px; color: var(--wp--preset--color--contrast-3); }
.pm-blog-chips { margin: 0; }
@media (max-width: 767px) { .pm-blog-head { padding: 32px 0 28px; } }

.pm-post-feature { padding: 40px 0 64px; border-top: var(--wp--custom--border--hairline); }
.pm-post-feature__link { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); column-gap: 32px; row-gap: 20px; align-items: center; color: var(--wp--preset--color--contrast); text-decoration: none; }
.pm-post-feature__media { grid-column: 1 / span 7; display: block; aspect-ratio: 16 / 10; overflow: hidden; background: var(--wp--preset--color--chart-paper); }
.pm-post-feature__media img { display: block; width: 100%; height: 100%; object-fit: cover; }
.pm-post-feature__text { grid-column: 8 / span 5; display: flex; flex-direction: column; gap: 16px; }
.pm-post-feature__title { font-family: var(--wp--preset--font-family--display); font-size: var(--wp--preset--font-size--h-2-small); line-height: 1.1; color: var(--wp--preset--color--contrast-2); }
.pm-post-feature__link:hover .pm-post-feature__title { text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: 0.12em; }
.pm-post-feature__excerpt { font-size: 17px; }
.pm-post-feature .pm-text-link { align-self: flex-start; }
@media (max-width: 899px) { .pm-post-feature__media, .pm-post-feature__text { grid-column: 1 / -1; } .pm-post-feature { padding: 28px 0 40px; } }

.pm-posts__grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 48px 32px; margin: 0; padding: 0 0 72px; list-style: none; }
@media (max-width: 1023px) { .pm-posts__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 40px 20px; } }
@media (max-width: 599px) { .pm-posts__grid { grid-template-columns: minmax(0, 1fr); } }
.pm-post-card__link { display: flex; flex-direction: column; gap: 14px; height: 100%; color: var(--wp--preset--color--contrast); text-decoration: none; }
.pm-post-card__media { display: block; aspect-ratio: 4 / 3; overflow: hidden; background: var(--wp--preset--color--chart-paper); }
.pm-post-card__media img { display: block; width: 100%; height: 100%; object-fit: cover; }
.pm-post-card__placeholder { display: block; width: 100%; height: 100%; }
.pm-post-card__title { margin: 0; font-family: var(--wp--preset--font-family--display); font-size: var(--wp--preset--font-size--h-3); font-weight: 400; line-height: 1.2; color: var(--wp--preset--color--contrast-2); }
.pm-post-card__link:hover .pm-post-card__title { text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: 0.12em; }
.pm-post-card__excerpt { font-size: 15px; color: var(--wp--preset--color--contrast-3); }
.pm-newsletter-tile {
	display: flex; flex-direction: column; justify-content: center; align-items: center; gap: 14px; height: 100%; box-sizing: border-box;
	padding: 40px; border-radius: var(--wp--custom--radius--box); background: var(--wp--preset--color--contrast);
	color: var(--wp--preset--color--base); text-align: center; text-decoration: none;
}
.pm-newsletter-tile .pm-eyebrow { color: var(--wp--preset--color--accent-light); }
.pm-newsletter-tile__title { font-family: var(--wp--preset--font-family--display); font-size: var(--wp--preset--font-size--h-3); line-height: 1.2; }
.pm-newsletter-tile__text { font-size: 15px; color: rgba(252,251,250,0.7); }
.pm-newsletter-tile .pm-btn { min-height: 48px; margin-top: 8px; padding: 0 28px; font-size: 15px; }
.pm-newsletter-tile:hover { color: var(--wp--preset--color--base); }
.pm-newsletter-tile:hover .pm-btn { background: #6EA2A2; }

.pm-pagination { display: flex; justify-content: center; flex-wrap: wrap; gap: 12px; padding: 0 0 96px; font-size: 15px; }
.pm-pagination .page-numbers, .pm-pagination__word {
	display: inline-flex; align-items: center; justify-content: center; min-width: 44px; height: 44px; box-sizing: border-box;
	border: 1px solid var(--wp--custom--border--strong); border-radius: var(--wp--custom--radius--pill);
	color: var(--wp--preset--color--contrast); text-decoration: none;
}
.pm-pagination__word { padding: 0 18px; }
.pm-pagination .page-numbers.current { background: var(--wp--preset--color--contrast); border-color: var(--wp--preset--color--contrast); color: var(--wp--preset--color--base); font-weight: 500; }
.pm-pagination .page-numbers.dots { border: 0; }

/* Shop nudge band */
.pm-nudge__grid { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); column-gap: 32px; row-gap: 20px; align-items: center; }
.pm-nudge__grid > * { margin: 0 !important; }
.pm-nudge__photo { grid-column: 1 / span 2; aspect-ratio: 1 / 1; overflow: hidden; }
.pm-nudge__photo img { display: block; width: 100%; height: 100%; object-fit: cover; }
.pm-nudge__text { grid-column: 3 / span 6; }
.pm-nudge__text h2 { font-size: clamp(26px, calc(18px + 1.4vw), 32px) !important; }
.pm-nudge__button { grid-column: 10 / span 3; }
.pm-nudge__button .wp-block-button { width: 100%; }
@media (max-width: 899px) {
	.pm-nudge__grid { grid-template-columns: 96px minmax(0, 1fr); }
	.pm-nudge__photo { grid-column: 1; }
	.pm-nudge__text { grid-column: 2; }
	.pm-nudge__button { grid-column: 1 / -1; }
}

/* Single post */
.pm-article > * { margin-block-start: 0; }
.pm-article__body { padding: 56px 0 64px; }
.pm-article__meta { gap: 0 !important; margin-bottom: 16px; }
.pm-article__meta > * + *::before { content: "·"; margin: 0 0.6em; }
.pm-article__meta a { color: inherit; text-decoration: none; }
.pm-article__title { margin: 0 0 24px; font-size: clamp(34px, calc(24px + 2.4vw), 48px); font-weight: 300; line-height: 1.08; }
.pm-article__image { margin: 0 0 32px; }
.pm-article__image img { width: 100%; height: 100%; object-fit: cover; }
.pm-article__content { font-size: 18px; line-height: 1.65; }
.pm-article__content > p:first-child { font-size: 20px; line-height: 1.55; }
.pm-article__content h2 { font-size: clamp(26px, calc(20px + 1.2vw), 32px); margin-top: 1.6em; }
.pm-article__content h3 { font-size: var(--wp--preset--font-size--h-3); margin-top: 1.4em; }
.pm-article__content img { width: 100%; height: auto; }
.pm-article__content .wp-block-image, .pm-article__content figure { margin-left: 0; margin-right: 0; }
.pm-article__content a { color: var(--wp--preset--color--contrast); }
.pm-author { display: flex; align-items: center; gap: 20px; margin-top: 48px; padding-top: 28px; border-top: var(--wp--custom--border--hairline); }
.pm-author__img { flex: none; width: 88px; height: 88px; border-radius: 50%; background: #FFFFFF; border: var(--wp--custom--border--hairline); object-fit: cover; }
.pm-author p { margin: 0; }
.pm-author__name { font-family: var(--wp--preset--font-family--display); font-size: 22px; color: var(--wp--preset--color--contrast-2); }
.pm-author__text { font-size: 16px; color: var(--wp--preset--color--contrast-3); }
.pm-author__text a { color: var(--wp--preset--color--contrast); }
.pm-nearby { padding: 0 0 80px; border-top: var(--wp--custom--border--hairline); }
.pm-nearby__title { margin: 48px 0 32px; }
.pm-nearby .pm-posts__grid { padding-bottom: 0; }

/* Newsletter band */
.pm-newsletter__text { color: rgba(252,251,250,0.7); }
.pm-newsletter-form { display: flex; flex-wrap: wrap; gap: 12px; margin: 0; }
.pm-newsletter-form input[type="email"] { flex: 1 1 240px; min-width: min(100%, 240px); background: transparent; color: var(--wp--preset--color--base); border-color: rgba(252,251,250,0.3); }
.pm-newsletter-form input[type="email"]::placeholder { color: rgba(252,251,250,0.7); }
.pm-newsletter-form .pm-btn { padding: 0 28px; font-size: 15px; }
/* Turnstile widget (pilotmap-core): own row, shown once rendered */
.pm-turnstile { flex: 1 1 100%; min-width: 0; }
.pm-turnstile:empty { display: none; }

@media (max-width: 767px) {
	.pm-newsletter { padding-top: 48px !important; padding-bottom: 48px !important; }
	.pm-newsletter-form { flex-direction: column; align-items: stretch; }
	.pm-newsletter-form input[type="email"] { flex: none; }
}

/* ---------- Cart and checkout (WooCommerce blocks, restyled with the tokens) ---------- */
.pm-checkout-page > * { margin-block-start: 0; }
.pm-checkout-page__title { margin: 0 0 32px; font-size: var(--wp--preset--font-size--page-title); font-weight: 300; }
/* WooCommerce block-theme CSS caps these at 1000px */
.pm-checkout-page .pm-checkout-page__title, .pm-checkout-page .woocommerce { max-width: none !important; margin-left: 0 !important; }
.pm-checkout-page .wc-block-components-sidebar-layout { margin-bottom: 0; }
.pm-checkout-page .wp-block-woocommerce-cart, .pm-checkout-page .wp-block-woocommerce-checkout { font-family: var(--wp--preset--font-family--body); }

/* Buttons: pill, accent, 56px */
.pm-checkout-page .wc-block-components-button:not(.is-link):not(.wc-block-components-chip__remove) {
	min-height: var(--wp--custom--control--height); padding: 0 32px; border: 0; border-radius: var(--wp--custom--radius--pill);
	background: var(--wp--preset--color--accent); color: var(--wp--preset--color--contrast);
	font-family: var(--wp--preset--font-family--body); font-size: 17px; font-weight: 600; letter-spacing: 0.02em; text-decoration: none;
}
.pm-checkout-page .wc-block-components-button:not(.is-link):not(.wc-block-components-chip__remove):hover { background: #6EA2A2; color: var(--wp--preset--color--contrast); }
.pm-checkout-page .wc-block-components-checkout-place-order-button { min-height: var(--wp--custom--control--height-lg) !important; }
.pm-checkout-page .wc-block-cart__submit-button { min-height: var(--wp--custom--control--height-lg) !important; }

/* Inputs: 56px, contrast border, white */
.pm-checkout-page .wc-block-components-text-input input,
.pm-checkout-page .wc-block-components-text-input textarea,
.pm-checkout-page .wc-blocks-components-select .wc-blocks-components-select__select,
.pm-checkout-page .wc-block-components-combobox .wc-block-components-combobox-control input {
	min-height: var(--wp--custom--control--height) !important; border: 1px solid var(--wp--preset--color--contrast) !important;
	border-radius: 12px !important; background: var(--wp--preset--color--base-3) !important; font-size: 16px !important;
}
.pm-checkout-page .wc-blocks-components-select__container { border-radius: 12px; }
.pm-checkout-page .wc-block-components-text-input input:focus,
.pm-checkout-page .wc-blocks-components-select__select:focus { outline: 2px solid var(--wp--preset--color--accent-dark) !important; outline-offset: 2px; box-shadow: none !important; }

/* Product names and totals in Fraunces; hairlines instead of boxes */
.pm-checkout-page .wc-block-components-product-name { font-family: var(--wp--preset--font-family--display); font-size: 20px; color: var(--wp--preset--color--contrast-2); text-decoration: none; }
.pm-checkout-page .wc-block-components-totals-footer-item .wc-block-components-totals-item__value,
.pm-checkout-page .wc-block-components-totals-footer-item .wc-block-components-totals-item__label { font-family: var(--wp--preset--font-family--display); font-size: 26px; font-weight: 400; }
.pm-checkout-page .wc-block-components-title, .pm-checkout-page .wc-block-cart__totals-title { font-family: var(--wp--preset--font-family--body); font-size: 15px !important; font-weight: 500 !important; letter-spacing: 0.06em; text-transform: uppercase; }
.pm-checkout-page .wc-block-components-checkout-step__title { font-family: var(--wp--preset--font-family--display); font-size: var(--wp--preset--font-size--h-3); font-weight: 400; text-transform: none; letter-spacing: 0; }
.pm-checkout-page .wc-block-components-totals-wrapper, .pm-checkout-page .wc-block-cart-items, .pm-checkout-page .wc-block-cart-items__row { border-color: var(--wp--custom--border--color) !important; }
.pm-checkout-page .wc-block-components-product-details { font-size: 14px; color: var(--wp--preset--color--contrast); }
.pm-checkout-page .wc-block-components-product-details__name { font-weight: 600; }
.pm-checkout-page .wc-block-components-radio-control__option, .pm-checkout-page .wc-block-components-radio-control-accordion-option { min-height: 56px; }
.pm-checkout-page .wc-block-components-notice-banner { border-radius: 12px; }
/* Long gift messages must wrap instead of widening the cart table on phones */
.pm-checkout-page .wc-block-cart-items { width: 100%; }
.pm-checkout-page :is(.is-mobile, .is-small) table.wc-block-cart-items .wc-block-cart-items__row { grid-template-columns: 80px minmax(0, 1fr) auto; }
.pm-checkout-page .wc-block-components-product-details, .pm-checkout-page .wc-block-components-product-name { overflow-wrap: anywhere; }

/* Checkout header: logo and "Secure checkout" only */
.pm-checkout-header { padding-top: 22px; padding-bottom: 22px; background: var(--wp--preset--color--base); }
.pm-checkout-header__inner { gap: 16px; align-items: center; }
.pm-checkout-header__secure svg { flex: none; }
.pm-checkout-header__secure { display: flex; align-items: center; gap: 8px; margin: 0; white-space: nowrap; font-size: 14px; font-weight: 500; letter-spacing: 0.06em; text-transform: uppercase; color: var(--wp--preset--color--contrast); }
@media (max-width: 1023px) {
	.pm-checkout-header { padding-top: 14px; padding-bottom: 14px; }
	.pm-checkout-header__secure { font-size: 12px; letter-spacing: 0.04em; }
}
@media (max-width: 480px) {
	.pm-checkout-header .pm-logo img { height: 18px; }
	.pm-checkout-header__secure { gap: 6px; font-size: 11px; letter-spacing: 0.02em; }
	.pm-checkout-header__secure svg { width: 16px; height: 16px; }
}
/* Small phones: the logo and "Secure checkout" don't fit side by side */
@media (max-width: 374px) { .pm-checkout-header__word { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; } }

/* Trust lines under the Place Order button (pilotMap Core, includes/checkout-trust.php) */
.pm-checkout-trust { list-style: none; margin: 20px 0 0; padding: 0; display: grid; gap: 10px; font-size: 15px; line-height: 1.45; color: var(--wp--preset--color--contrast); }
.pm-checkout-trust__item { display: flex; gap: 10px; align-items: flex-start; }
.pm-checkout-trust__icon { flex: none; margin-top: 2px; color: var(--wp--preset--color--accent-dark); }
.pm-checkout-trust a { color: inherit; text-decoration: underline; text-underline-offset: 3px; }

/* ---------- Contact Form 7 ---------- */
.wpcf7-form p { display: flex; flex-direction: column; gap: 6px; margin: 0 0 18px; font-size: 15px; font-weight: 500; }
.wpcf7-form .wpcf7-form-control-wrap { display: block; }
.wpcf7-form input[type="text"], .wpcf7-form input[type="email"], .wpcf7-form input[type="tel"], .wpcf7-form textarea { width: 100%; font-weight: 400; }
.wpcf7-form .wpcf7-submit {
	align-self: flex-start; min-height: var(--wp--custom--control--height); padding: 0 32px; border: 0; border-radius: var(--wp--custom--radius--pill);
	background: var(--wp--preset--color--contrast); color: var(--wp--preset--color--base); font: 600 16px/1 var(--wp--preset--font-family--body); cursor: pointer;
}
.wpcf7-form .wpcf7-submit:hover { background: #26354A; }
.wpcf7-not-valid-tip { margin-top: 4px; font-size: 14px; font-weight: 400; color: #A3261A; }
.wpcf7-response-output { margin: 12px 0 0 !important; padding: 14px 18px !important; border-radius: 12px; font-size: 15px; }

/* ---------- 404 ---------- */
.pm-404 h1 { margin: 12px 0 16px; }

/* ---------- Generic pages (page.html): 820px reading column ---------- */
.wp-block-post-content.alignfull > h2 { font-size: clamp(26px, calc(20px + 1.2vw), 32px); margin-top: 1.6em; }
.wp-block-post-content.alignfull > details, .wp-block-post-content.alignfull .wp-block-details { border-bottom: var(--wp--custom--border--hairline); padding: 0; }
.wp-block-post-content.alignfull .wp-block-details > summary { min-height: 56px; display: flex; align-items: center; font-weight: 500; cursor: pointer; }

/* ---------- Plugin fixes ---------- */
/* BetterDocs: the help centre search bar is wider than a phone screen */
[class*="betterdocs"] .search-bar, [class*="betterdocs"] .betterdocs-search-form { max-width: 100%; box-sizing: border-box; }
