/*
Theme Name: Paradise Padel Camp — Listify Child
Theme URI: https://paradisepadelcamp.com/
Description: Tema hijo accesible y adaptable para el catálogo curado de Paradise Padel Camp.
Author: Paradise Padel Camp
Template: listify
Version: 0.5.4
Text Domain: paradise-padel-camp
Requires at least: 6.4
Requires PHP: 7.4
License: GNU General Public License v2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
*/

/*
 * Paradise Padel Camp visual layer
 * --------------------------------
 * All public classes and custom properties use the ppc- prefix. The stylesheet
 * does not target Listify, WP Job Manager or form-plugin internals. Components
 * are opt-in and can be rendered by blocks, shortcodes or verified templates.
 */

:root {
	--ppc-color-ink: #15332d;
	--ppc-color-ink-soft: #294a43;
	--ppc-color-primary: #0a6a55;
	--ppc-color-primary-hover: #075241;
	--ppc-color-primary-soft: #dceee8;
	--ppc-color-deep: #0b3c34;
	--ppc-color-deepest: #072b26;
	--ppc-color-sand: #f4ead4;
	--ppc-color-sand-soft: #faf6ed;
	--ppc-color-coral: #b94a35;
	--ppc-color-coral-hover: #8f3324;
	--ppc-color-surface: #f4f8f6;
	--ppc-color-paper: #ffffff;
	--ppc-color-border: #cfddd8;
	--ppc-color-border-strong: #9eb8b0;
	--ppc-color-muted: #52645f;
	--ppc-color-success: #176b4f;
	--ppc-color-warning: #895b06;
	--ppc-color-danger: #a5382d;
	--ppc-focus-ring: #b4472e;
	--ppc-focus-on-dark: #ffd890;
	--ppc-font-body: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
	--ppc-font-display: Georgia, Cambria, "Times New Roman", serif;
	--ppc-radius-small: 0.5rem;
	--ppc-radius-medium: 0.75rem;
	--ppc-radius-large: 1.25rem;
	--ppc-radius-pill: 999px;
	--ppc-shadow-card: 0 1rem 2.5rem rgba(7, 43, 38, 0.1);
	--ppc-shadow-raised: 0 1.25rem 3.5rem rgba(7, 43, 38, 0.18);
	--ppc-content-width: 75rem;
	--ppc-reading-width: 45rem;
	--ppc-gutter: clamp(1rem, 4vw, 2rem);
	--ppc-section-space: clamp(3.5rem, 8vw, 7rem);
	--ppc-transition: 180ms ease;
}

/* Corporate shell --------------------------------------------------------- */

body.ppc-site #masthead.site-header,
body.ppc-site #masthead .primary-header,
body.ppc-site #masthead .main-navigation {
	background: var(--ppc-color-deepest) !important;
	border-color: rgba(255, 255, 255, 0.12);
	color: #ffffff;
}

body.ppc-site.fixed-header {
	padding-block-start: 0 !important;
}

body.ppc-site #masthead.site-header {
	position: relative !important;
	top: 0 !important;
}

body.ppc-site #masthead .primary-header-inner {
	align-items: center;
	display: flex;
	min-block-size: 5.25rem;
}

body.ppc-site #masthead .site-branding {
	align-items: center;
	display: flex;
	flex: 1 1 auto;
	gap: clamp(0.45rem, 1vw, 0.85rem);
	justify-content: space-between;
	min-inline-size: 0;
}

body.ppc-site .ppc-brand-lockup {
	display: block;
	flex: 0 1 auto;
	inline-size: clamp(11.5rem, 18vw, 15rem);
	line-height: 0;
	min-inline-size: 0;
}

body.ppc-site .ppc-brand-lockup__image {
	block-size: auto;
	display: block;
	inline-size: 100%;
	max-block-size: 3.9rem;
}

body.ppc-site .ppc-brand-tagline {
	block-size: 1px;
	clip: rect(0 0 0 0);
	clip-path: inset(50%);
	inline-size: 1px;
	overflow: hidden;
	position: absolute;
	white-space: nowrap;
}

body.ppc-site #masthead .primary.nav-menu a,
body.ppc-site #masthead .navigation-bar-toggle,
body.ppc-site #masthead .main-navigation .search-overlay-toggle {
	color: rgba(255, 255, 255, 0.9) !important;
}

body.ppc-site #masthead .primary.nav-menu > .nav-menu-container > ul > li > a {
	font-family: var(--ppc-font-body);
	font-size: 0.86rem;
	font-weight: 750;
	letter-spacing: 0.01em;
}

body.ppc-site #masthead .primary.nav-menu > .nav-menu-container > ul > li > a:hover,
body.ppc-site #masthead .primary.nav-menu > .nav-menu-container > ul > li.current-menu-item > a {
	color: var(--ppc-color-sand) !important;
}

body.ppc-site #masthead .navigation-bar-toggle:focus-visible,
body.ppc-site #masthead .search-overlay-toggle:focus-visible {
	border-radius: var(--ppc-radius-small);
	box-shadow: 0 0 0 5px var(--ppc-focus-ring);
	outline: 3px solid #ffffff;
	outline-offset: 1px;
}

body.ppc-site #masthead .ppc-language-switcher {
	align-self: center;
	flex: 0 0 auto;
	font-family: var(--ppc-font-body);
	position: relative;
	z-index: 120;
}

body.ppc-site #masthead .ppc-language-switcher details {
	position: relative;
}

body.ppc-site #masthead .ppc-language-switcher summary {
	align-items: center;
	color: rgba(255, 255, 255, 0.92);
	cursor: pointer;
	display: flex;
	font-size: 0.86rem;
	font-weight: 750;
	gap: 0.4rem;
	list-style: none;
	min-block-size: 2.75rem;
	padding: 0.65rem 0.75rem;
	white-space: nowrap;
}

body.ppc-site #masthead .ppc-language-switcher summary::-webkit-details-marker {
	display: none;
}

body.ppc-site #masthead .ppc-language-switcher summary:focus-visible {
	border-radius: var(--ppc-radius-small);
	outline: 3px solid var(--ppc-focus-on-dark);
	outline-offset: 2px;
}

body.ppc-site #masthead .ppc-language-switcher__chevron {
	block-size: 0.5rem;
	border-block-end: 2px solid currentColor;
	border-inline-end: 2px solid currentColor;
	inline-size: 0.5rem;
	transition: transform var(--ppc-transition);
	transform: rotate(45deg) translateY(-0.12rem);
}

body.ppc-site #masthead .ppc-language-switcher details[open] .ppc-language-switcher__chevron {
	transform: rotate(225deg) translate(-0.12rem, -0.12rem);
}

body.ppc-site #masthead .ppc-language-switcher__list {
	background: var(--ppc-color-paper);
	border: 1px solid var(--ppc-color-border);
	border-radius: var(--ppc-radius-medium);
	box-shadow: var(--ppc-shadow-raised);
	inset-block-start: calc(100% + 0.35rem);
	inset-inline-end: 0;
	margin: 0;
	inline-size: min(12rem, calc(100vw - 2rem));
	list-style: none;
	max-block-size: min(24rem, calc(100vh - 6rem));
	min-inline-size: 11.5rem;
	overflow-y: auto;
	padding: 0.45rem;
	position: absolute;
	z-index: 1000;
}

body.ppc-site #masthead .ppc-language-switcher__item {
	margin: 0;
}

body.ppc-site #masthead .ppc-language-switcher__item > a {
	border-radius: var(--ppc-radius-small);
	color: var(--ppc-color-ink) !important;
	display: block;
	font-size: 0.9rem;
	font-weight: 650;
	line-height: 1.3;
	padding: 0.7rem 0.8rem;
	text-decoration: none;
}

body.ppc-site #masthead .ppc-language-switcher__item > a:hover,
body.ppc-site #masthead .ppc-language-switcher__item > a:focus-visible,
body.ppc-site #masthead .ppc-language-switcher__item > a[aria-current="page"] {
	background: var(--ppc-color-primary-soft);
	color: var(--ppc-color-deepest) !important;
}

body.ppc-site #masthead .ppc-language-switcher__item > a:focus-visible {
	outline: 3px solid var(--ppc-focus-ring);
	outline-offset: 1px;
}

body.ppc-site .site-footer-widgets {
	background: var(--ppc-color-deep);
}

/*
 * A registered widget can still decide not to emit markup. In that final
 * runtime case, remove Listify's padded empty band while preserving the band
 * automatically as soon as any genuine footer widget is present.
 */
body.ppc-content-page .site-footer-widgets:not(:has(.footer-widget)) {
	display: none;
}

body.ppc-site .site-footer {
	background: var(--ppc-color-deepest);
	color: rgba(255, 255, 255, 0.66);
}

body.ppc-site .site-footer a {
	color: #ffffff;
}

@media (min-width: 62rem) {
	body.ppc-site #masthead .site-branding {
		flex: 0 1 22rem;
	}

	body.ppc-site #masthead .primary-header-inner > .primary.nav-menu {
		flex: 1 1 auto;
		min-inline-size: 0;
	}

	body.ppc-site #masthead .primary.nav-menu .ppc-nav-secondary-item {
		display: none;
	}
}

@media (max-width: 47.99rem) {
	body.ppc-site #masthead .primary-header-inner {
		min-block-size: 4.5rem;
	}

	body.ppc-site .ppc-brand-lockup {
		inline-size: min(14.5rem, 62vw);
	}
}

@media (max-width: 61.99rem) {
	body.ppc-site #masthead .site-branding {
		flex: 1 1 100%;
		inline-size: 100%;
	}

	body.ppc-site #masthead .ppc-language-switcher summary {
		padding-inline: 0.6rem;
	}
}

/*
 * Listify page-shell integration for the curated PPC pages. The body class is
 * added only when the saved page content contains a ppc-* component, so shop,
 * account and third-party pages keep the parent theme's normal layout.
 */

.ppc-content-page .page-cover {
	display: none;
}

.ppc-content-page .content-area > .site-main {
	flex: 0 0 100%;
	inline-size: 100%;
	max-inline-size: 100%;
	padding-inline: 0;
}

.ppc-content-page .content-area > .widget-area {
	display: none;
}

.ppc-content-page .content-box,
.ppc-content-page .content-box-wrapper {
	background: transparent;
	border: 0;
	box-shadow: none;
	inline-size: 100%;
	margin: 0;
}

.ppc-content-page .content-box-inner,
.ppc-content-page .entry-content {
	inline-size: 100%;
	max-inline-size: none;
	padding: 0;
}

.ppc-content-page .content-box.content-box-wrapper .content-box-inner {
	padding: 0;
}

:where(.ppc-page, .ppc-section, .ppc-hero, .ppc-trust, .ppc-form, .ppc-footer, .ppc-mobile-sticky-cta),
:where(.ppc-page, .ppc-section, .ppc-hero, .ppc-trust, .ppc-form, .ppc-footer, .ppc-mobile-sticky-cta) *,
:where(.ppc-page, .ppc-section, .ppc-hero, .ppc-trust, .ppc-form, .ppc-footer, .ppc-mobile-sticky-cta)::before,
:where(.ppc-page, .ppc-section, .ppc-hero, .ppc-trust, .ppc-form, .ppc-footer, .ppc-mobile-sticky-cta)::after {
	box-sizing: border-box;
}

.ppc-page {
	background: var(--ppc-color-paper);
	color: var(--ppc-color-ink);
	font-family: var(--ppc-font-body);
	font-size: 1rem;
	line-height: 1.65;
	overflow: clip;
}

.ppc-page :where(img, svg, video) {
	display: block;
	height: auto;
	max-width: 100%;
}

.ppc-page :where(h1, h2, h3, h4) {
	color: inherit;
	font-family: var(--ppc-font-display);
	font-weight: 700;
	letter-spacing: -0.025em;
	line-height: 1.08;
	margin-block: 0;
	text-wrap: balance;
}

.ppc-page :where(p, ul, ol) {
	margin-block-start: 0;
}

.ppc-page a {
	text-underline-offset: 0.16em;
	text-decoration-thickness: 0.08em;
}

.ppc-shell,
.ppc-wrap {
	inline-size: min(100% - (2 * var(--ppc-gutter)), var(--ppc-content-width));
	margin-inline: auto;
}

.ppc-section {
	background: var(--ppc-color-paper);
	color: var(--ppc-color-ink);
	padding-block: var(--ppc-section-space);
}

.ppc-section--compact {
	padding-block: clamp(2.25rem, 5vw, 4rem);
}

.ppc-section--tinted {
	background: var(--ppc-color-surface);
}

.ppc-section--sand {
	background: var(--ppc-color-sand-soft);
}

.ppc-section--dark {
	background: var(--ppc-color-deep);
	color: var(--ppc-color-paper);
}

.ppc-section-header {
	max-width: 48rem;
	margin-block-end: clamp(1.75rem, 4vw, 3rem);
}

.ppc-section-header--center {
	margin-inline: auto;
	text-align: center;
}

.ppc-section-title {
	font-size: clamp(2rem, 5vw, 3.6rem);
}

.ppc-section-intro,
.ppc-lede,
.ppc-lead {
	color: var(--ppc-color-muted);
	font-size: clamp(1.0625rem, 2vw, 1.25rem);
	line-height: 1.65;
	margin-block: 1rem 0;
	max-width: 44rem;
}

.ppc-section--dark :is(.ppc-section-intro, .ppc-lede, .ppc-lead) {
	color: #d8e7e2;
}

.ppc-eyebrow,
.ppc-kicker {
	color: var(--ppc-color-primary);
	display: block;
	font-family: var(--ppc-font-body);
	font-size: 0.8125rem;
	font-weight: 800;
	letter-spacing: 0.11em;
	line-height: 1.3;
	margin-block: 0 0.75rem;
	text-transform: uppercase;
}

.ppc-section--dark :is(.ppc-eyebrow, .ppc-kicker),
.ppc-hero :is(.ppc-eyebrow, .ppc-kicker),
.ppc-final-cta :is(.ppc-eyebrow, .ppc-kicker) {
	color: var(--ppc-color-sand);
}

.ppc-prose {
	color: var(--ppc-color-ink-soft);
	max-width: var(--ppc-reading-width);
}

.ppc-prose > * + * {
	margin-block-start: 1.1em;
}

.ppc-prose :where(h2, h3, h4) {
	color: var(--ppc-color-ink);
	margin-block-start: 1.6em;
}

.ppc-prose :where(ul, ol) {
	padding-inline-start: 1.3rem;
}

.ppc-prose li + li {
	margin-block-start: 0.45rem;
}

.ppc-actions {
	display: flex;
	flex-wrap: wrap;
	gap: 0.75rem;
	margin-block-start: 1.5rem;
}

.ppc-button {
	align-items: center;
	appearance: none;
	background: var(--ppc-color-primary);
	border: 2px solid var(--ppc-color-primary);
	border-radius: var(--ppc-radius-small);
	color: #ffffff;
	cursor: pointer;
	display: inline-flex;
	font: 750 1rem/1.2 var(--ppc-font-body);
	justify-content: center;
	min-block-size: 2.875rem;
	padding: 0.8rem 1.2rem;
	text-align: center;
	text-decoration: none;
	transition: background-color var(--ppc-transition), border-color var(--ppc-transition), color var(--ppc-transition), box-shadow var(--ppc-transition), transform var(--ppc-transition);
}

.ppc-button:hover {
	background: var(--ppc-color-primary-hover);
	border-color: var(--ppc-color-primary-hover);
	color: #ffffff;
	text-decoration: none;
	transform: translateY(-1px);
}

.ppc-button--secondary,
.ppc-button--outline {
	background: transparent;
	color: var(--ppc-color-primary);
}

.ppc-button--secondary:hover,
.ppc-button--outline:hover {
	background: var(--ppc-color-primary);
	border-color: var(--ppc-color-primary);
	color: #ffffff;
}

.ppc-button--coral {
	background: var(--ppc-color-coral);
	border-color: var(--ppc-color-coral);
	color: #ffffff;
}

.ppc-button--coral:hover {
	background: var(--ppc-color-coral-hover);
	border-color: var(--ppc-color-coral-hover);
}

.ppc-button--light {
	background: var(--ppc-color-paper);
	border-color: var(--ppc-color-paper);
	color: var(--ppc-color-deep);
}

.ppc-button--light:hover {
	background: var(--ppc-color-sand);
	border-color: var(--ppc-color-sand);
	color: var(--ppc-color-deepest);
}

.ppc-button--wide {
	inline-size: 100%;
}

.ppc-text-link,
.ppc-link {
	color: var(--ppc-color-primary);
	font-weight: 750;
}

.ppc-text-link:hover,
.ppc-link:hover {
	color: var(--ppc-color-primary-hover);
}

/* Hero */

.ppc-hero {
	background:
		radial-gradient(circle at 88% 12%, rgba(244, 234, 212, 0.18), transparent 22rem),
		linear-gradient(132deg, var(--ppc-color-deepest), var(--ppc-color-deep));
	color: var(--ppc-color-paper);
	isolation: isolate;
	min-block-size: min(46rem, 86vh);
	overflow: hidden;
	padding-block: clamp(3.5rem, 7vw, 6rem);
	position: relative;
}

.ppc-hero::after {
	border: 1px solid rgba(255, 255, 255, 0.13);
	border-radius: 50%;
	content: "";
	inline-size: min(38rem, 80vw);
	aspect-ratio: 1;
	inset: auto -12rem -22rem auto;
	pointer-events: none;
	position: absolute;
	z-index: -1;
}

.ppc-hero--compact,
.ppc-hero--product {
	min-block-size: auto;
	padding-block: clamp(3.5rem, 8vw, 6rem);
}

.ppc-hero--text-only .ppc-hero__inner {
	grid-template-columns: minmax(0, 1fr);
}

.ppc-hero--light {
	background:
		radial-gradient(circle at 90% 15%, rgba(10, 106, 85, 0.13), transparent 20rem),
		var(--ppc-color-sand-soft);
	color: var(--ppc-color-ink);
}

.ppc-hero--light::after {
	border-color: rgba(10, 106, 85, 0.15);
}

.ppc-hero__inner {
	align-items: center;
	display: grid;
	gap: clamp(2.25rem, 6vw, 5rem);
	grid-template-columns: minmax(0, 1fr);
	inline-size: min(100% - (2 * var(--ppc-gutter)), var(--ppc-content-width));
	margin-inline: auto;
}

.ppc-hero__content {
	max-width: 46rem;
}

.ppc-hero__title {
	font-size: clamp(2.65rem, 8vw, 5.9rem);
	max-width: 13ch;
}

.ppc-hero--compact .ppc-hero__title,
.ppc-hero--product .ppc-hero__title {
	font-size: clamp(2.5rem, 6vw, 4.75rem);
	max-width: 16ch;
}

.ppc-hero__lede {
	color: #dce9e5;
	font-size: clamp(1.1rem, 2.3vw, 1.4rem);
	line-height: 1.6;
	margin-block: 1.25rem 0;
	max-width: 40rem;
}

.ppc-hero--light .ppc-hero__lede {
	color: var(--ppc-color-ink-soft);
}

.ppc-hero__support {
	color: #bad0c9;
	font-size: 0.95rem;
	margin-block: 1rem 0;
	max-width: 42rem;
}

.ppc-hero--light .ppc-hero__support {
	color: var(--ppc-color-muted);
}

.ppc-hero__media {
	align-items: center;
	aspect-ratio: 4 / 3;
	background: linear-gradient(145deg, rgba(255, 255, 255, 0.16), rgba(244, 234, 212, 0.07));
	border: 1px solid rgba(255, 255, 255, 0.24);
	border-radius: var(--ppc-radius-large);
	display: flex;
	justify-content: center;
	min-inline-size: 0;
	overflow: hidden;
	position: relative;
}

.ppc-hero--light .ppc-hero__media {
	background: var(--ppc-color-primary-soft);
	border-color: var(--ppc-color-border);
}

.ppc-hero__media > :where(img, video) {
	block-size: 100%;
	inline-size: 100%;
	object-fit: cover;
}

.ppc-hero__media-placeholder {
	color: rgba(255, 255, 255, 0.76);
	font-size: 0.875rem;
	max-width: 18rem;
	padding: 2rem;
	text-align: center;
}

.ppc-hero--light .ppc-hero__media-placeholder {
	color: var(--ppc-color-muted);
}

.ppc-hero__badge,
.ppc-badge {
	align-items: center;
	background: var(--ppc-color-sand);
	border-radius: var(--ppc-radius-pill);
	color: var(--ppc-color-deepest);
	display: inline-flex;
	font-size: 0.8125rem;
	font-weight: 800;
	gap: 0.4rem;
	line-height: 1.2;
	padding: 0.45rem 0.75rem;
}

.ppc-badge--flagship {
	background: var(--ppc-color-coral);
	color: #ffffff;
}

.ppc-badge--available {
	background: #dff1e8;
	color: #155b43;
}

.ppc-badge--limited {
	background: #fff0ce;
	color: #754b00;
}

.ppc-badge--full {
	background: #f7dfdc;
	color: #8a2f28;
}

.ppc-facts,
.ppc-hero__facts,
.ppc-camp-card__facts,
.ppc-listing-card__facts {
	display: flex;
	flex-wrap: wrap;
	gap: 0.55rem;
	list-style: none;
	margin: 1.25rem 0 0;
	padding: 0;
}

:is(.ppc-facts, .ppc-hero__facts, .ppc-camp-card__facts, .ppc-listing-card__facts) > li {
	background: var(--ppc-color-surface);
	border: 1px solid var(--ppc-color-border);
	border-radius: var(--ppc-radius-pill);
	color: var(--ppc-color-muted);
	font-size: 0.875rem;
	font-weight: 650;
	line-height: 1.35;
	padding: 0.45rem 0.75rem;
}

.ppc-hero :is(.ppc-facts, .ppc-hero__facts) > li {
	background: rgba(255, 255, 255, 0.09);
	border-color: rgba(255, 255, 255, 0.22);
	color: #edf5f2;
}

.ppc-hero--light :is(.ppc-facts, .ppc-hero__facts) > li {
	background: var(--ppc-color-paper);
	border-color: var(--ppc-color-border);
	color: var(--ppc-color-muted);
}

/* Gutenberg seed-content fallback: current MVP markup has direct hero children. */

.ppc-hero > :where(.ppc-eyebrow, h1, .ppc-lead, .wp-block-buttons, p),
.ppc-hero > .wp-block-group__inner-container > :where(.ppc-eyebrow, h1, .ppc-lead, .wp-block-buttons, p) {
	inline-size: min(100%, 46rem);
	margin-inline: auto;
}

.ppc-hero > .wp-block-group__inner-container {
	inline-size: min(100% - (2 * var(--ppc-gutter)), 46rem);
	margin-inline: auto;
}

.ppc-hero > h1,
.ppc-hero > .wp-block-group__inner-container > h1 {
	color: #ffffff;
	font-family: var(--ppc-font-display);
	font-size: clamp(2.35rem, 4.2vw, 4rem);
	font-weight: 700;
	hyphens: none;
	letter-spacing: -0.025em;
	line-height: 1.08;
	margin-block: 0;
	max-inline-size: 14ch;
	overflow-wrap: normal;
	text-wrap: balance;
	word-break: normal;
}

.ppc-hero > .ppc-lead,
.ppc-hero > .wp-block-group__inner-container > .ppc-lead {
	color: #dce9e5;
	font-size: clamp(1.1rem, 2.3vw, 1.4rem);
	hyphens: none;
	margin-block: 1.25rem 0;
	overflow-wrap: normal;
	word-break: normal;
}

.ppc-hero > .wp-block-buttons,
.ppc-hero > .wp-block-group__inner-container > .wp-block-buttons {
	display: flex;
	flex-wrap: wrap;
	gap: 0.75rem;
	margin-block-start: 1.5rem;
}

.ppc-hero .wp-block-button__link,
.ppc-final-cta .wp-block-button__link,
.ppc-cta-final .wp-block-button__link {
	align-items: center;
	background: var(--ppc-color-paper);
	border: 2px solid var(--ppc-color-paper);
	border-radius: var(--ppc-radius-small);
	color: var(--ppc-color-deepest);
	display: inline-flex;
	font: 750 1rem/1.2 var(--ppc-font-body);
	justify-content: center;
	min-block-size: 2.875rem;
	padding: 0.8rem 1.2rem;
	text-decoration: none;
	transition: background-color var(--ppc-transition), border-color var(--ppc-transition), color var(--ppc-transition), transform var(--ppc-transition);
}

.ppc-hero .wp-block-button__link:hover,
.ppc-final-cta .wp-block-button__link:hover,
.ppc-cta-final .wp-block-button__link:hover {
	background: var(--ppc-color-sand);
	border-color: var(--ppc-color-sand);
	color: var(--ppc-color-deepest);
	transform: translateY(-1px);
}

.ppc-hero .wp-block-button.is-style-outline .wp-block-button__link,
.ppc-final-cta .wp-block-button.is-style-outline .wp-block-button__link,
.ppc-cta-final .wp-block-button.is-style-outline .wp-block-button__link {
	background: transparent;
	border-color: #ffffff;
	color: #ffffff;
}

.ppc-hero .wp-block-button.is-style-outline .wp-block-button__link:hover,
.ppc-final-cta .wp-block-button.is-style-outline .wp-block-button__link:hover,
.ppc-cta-final .wp-block-button.is-style-outline .wp-block-button__link:hover {
	background: #ffffff;
	color: var(--ppc-color-deepest);
}

/* Trust strip */

.ppc-trust,
.ppc-trust-strip {
	background: var(--ppc-color-paper);
	border: 1px solid var(--ppc-color-border);
	border-radius: var(--ppc-radius-large);
	box-shadow: var(--ppc-shadow-card);
	inline-size: min(100% - (2 * var(--ppc-gutter)), var(--ppc-content-width));
	margin: -2rem auto 0;
	padding: 1.25rem clamp(1rem, 3vw, 2rem);
	position: relative;
	z-index: 2;
}

.ppc-trust__list,
.ppc-trust-strip__list {
	display: grid;
	gap: 0.85rem 1.25rem;
	grid-template-columns: repeat(auto-fit, minmax(min(100%, 12rem), 1fr));
	list-style: none;
	margin: 0;
	padding: 0;
}

.ppc-trust__item,
.ppc-trust-strip__item {
	align-items: flex-start;
	color: var(--ppc-color-ink-soft);
	display: flex;
	font-size: 0.9rem;
	font-weight: 700;
	gap: 0.6rem;
	line-height: 1.4;
}

:is(.ppc-trust__item, .ppc-trust-strip__item)::before {
	background: var(--ppc-color-primary);
	border: 0.22rem solid var(--ppc-color-primary-soft);
	border-radius: 50%;
	content: "";
	flex: 0 0 auto;
	inline-size: 0.85rem;
	block-size: 0.85rem;
	margin-block-start: 0.16rem;
}

/* Current Gutenberg columns used by the seeded home page. */

.ppc-trust-strip.wp-block-columns {
	display: grid;
	gap: 0.85rem 1.25rem;
	grid-template-columns: repeat(auto-fit, minmax(min(100%, 12rem), 1fr));
}

.ppc-trust-strip > .wp-block-column {
	align-items: flex-start;
	color: var(--ppc-color-muted);
	display: flex;
	font-size: 0.9rem;
	gap: 0.6rem;
	line-height: 1.45;
}

.ppc-trust-strip > .wp-block-column::before {
	background: var(--ppc-color-primary);
	border: 0.22rem solid var(--ppc-color-primary-soft);
	border-radius: 50%;
	content: "";
	flex: 0 0 auto;
	inline-size: 0.85rem;
	block-size: 0.85rem;
	margin-block-start: 0.18rem;
}

.ppc-trust-strip > .wp-block-column > p {
	margin: 0;
}

.ppc-trust-list {
	display: flex;
	flex-wrap: wrap;
	gap: 0.55rem;
	list-style: none;
	margin: 1.25rem 0;
	padding: 0;
}

.ppc-trust-list > li {
	background: var(--ppc-color-primary-soft);
	border: 1px solid var(--ppc-color-border);
	border-radius: var(--ppc-radius-pill);
	color: var(--ppc-color-primary-hover);
	font-size: 0.875rem;
	font-weight: 750;
	padding: 0.5rem 0.8rem;
}

/* Camp and listing cards */

:is(.ppc-card-grid, .ppc-camp-grid, .ppc-listing-grid, .ppc-listings) {
	display: grid;
	gap: clamp(1rem, 3vw, 1.5rem);
	grid-template-columns: repeat(auto-fit, minmax(min(100%, 17rem), 1fr));
}

:is(.ppc-card, .ppc-camp-card, .ppc-listing-card) {
	background: var(--ppc-color-paper);
	border: 1px solid var(--ppc-color-border);
	border-radius: var(--ppc-radius-large);
	box-shadow: 0 0.5rem 1.5rem rgba(7, 43, 38, 0.06);
	color: var(--ppc-color-ink);
	display: flex;
	flex-direction: column;
	min-inline-size: 0;
	overflow: hidden;
	position: relative;
	transition: border-color var(--ppc-transition), box-shadow var(--ppc-transition), transform var(--ppc-transition);
}

:is(.ppc-card, .ppc-camp-card, .ppc-listing-card):hover {
	border-color: var(--ppc-color-border-strong);
	box-shadow: var(--ppc-shadow-card);
	transform: translateY(-0.2rem);
}

:is(.ppc-card, .ppc-camp-card, .ppc-listing-card).ppc-card--flagship,
.ppc-camp-card--flagship {
	border-color: rgba(201, 86, 63, 0.55);
	box-shadow: 0 1rem 2.75rem rgba(201, 86, 63, 0.13);
}

.ppc-card__media,
.ppc-camp-card__media,
.ppc-listing-card__media {
	aspect-ratio: 16 / 10;
	background: linear-gradient(145deg, var(--ppc-color-primary-soft), var(--ppc-color-sand-soft));
	overflow: hidden;
	position: relative;
}

:is(.ppc-card__media, .ppc-camp-card__media, .ppc-listing-card__media) > :where(img, video) {
	block-size: 100%;
	inline-size: 100%;
	object-fit: cover;
	transition: transform 350ms ease;
}

:is(.ppc-card, .ppc-camp-card, .ppc-listing-card):hover :is(.ppc-card__media, .ppc-camp-card__media, .ppc-listing-card__media) > :where(img, video) {
	transform: scale(1.025);
}

.ppc-card__badge,
.ppc-camp-card__badge,
.ppc-listing-card__badge {
	inset: 0.85rem auto auto 0.85rem;
	position: absolute;
	z-index: 1;
}

.ppc-card__body,
.ppc-camp-card__body,
.ppc-listing-card__body {
	display: flex;
	flex: 1 1 auto;
	flex-direction: column;
	padding: clamp(1.15rem, 3vw, 1.6rem);
}

.ppc-card__title,
.ppc-camp-card__title,
.ppc-listing-card__title {
	font-size: clamp(1.45rem, 3vw, 1.85rem);
}

:is(.ppc-card__title, .ppc-camp-card__title, .ppc-listing-card__title) a {
	color: inherit;
	text-decoration: none;
}

:is(.ppc-card__title, .ppc-camp-card__title, .ppc-listing-card__title) a:hover {
	color: var(--ppc-color-primary);
}

.ppc-card__tagline,
.ppc-camp-card__tagline,
.ppc-listing-card__tagline {
	color: var(--ppc-color-primary);
	font-weight: 750;
	line-height: 1.45;
	margin-block: 0.75rem 0;
}

.ppc-card__description,
.ppc-camp-card__description,
.ppc-listing-card__description {
	color: var(--ppc-color-muted);
	margin-block: 0.75rem 0;
}

.ppc-card__price,
.ppc-camp-card__price,
.ppc-listing-card__price {
	color: var(--ppc-color-ink);
	font-size: 1.1rem;
	font-weight: 800;
	margin-block: 1rem 0;
}

.ppc-card__footer,
.ppc-camp-card__footer,
.ppc-listing-card__footer {
	align-items: center;
	border-block-start: 1px solid var(--ppc-color-border);
	display: flex;
	flex-wrap: wrap;
	gap: 0.75rem;
	justify-content: space-between;
	margin-block-start: auto;
	padding-block-start: 1rem;
}

/* Gutenberg seed-content fallback: current cards have no BEM body wrapper. */

.ppc-card > :not(.ppc-card__media):not(.ppc-card__body):not(.ppc-card__badge) {
	margin-inline: clamp(1.15rem, 3vw, 1.6rem);
}

.ppc-card > :first-child:not(.ppc-card__media):not(.ppc-card__badge) {
	margin-block-start: clamp(1.15rem, 3vw, 1.6rem);
}

.ppc-card > :last-child:not(.ppc-card__media) {
	margin-block-end: clamp(1.15rem, 3vw, 1.6rem);
}

.ppc-card > :where(h2, h3) {
	font-family: var(--ppc-font-display);
	font-size: clamp(1.45rem, 3vw, 1.85rem);
	line-height: 1.15;
}

.ppc-card > ul {
	color: var(--ppc-color-muted);
	padding-inline-start: 1.4rem;
}

.ppc-card > p:last-child {
	margin-block-start: auto;
	padding-block-start: 0.75rem;
}

.ppc-card > p:last-child > a {
	color: var(--ppc-color-primary);
	font-weight: 800;
}

/* Method and process */

:is(.ppc-method-steps, .ppc-process, .ppc-steps) {
	counter-reset: ppc-step;
	display: grid;
	gap: 1rem;
	grid-template-columns: repeat(auto-fit, minmax(min(100%, 12rem), 1fr));
}

:is(.ppc-method-step, .ppc-process__step, .ppc-step) {
	background: var(--ppc-color-paper);
	border: 1px solid var(--ppc-color-border);
	border-radius: var(--ppc-radius-medium);
	counter-increment: ppc-step;
	min-inline-size: 0;
	padding: 1.25rem;
	position: relative;
}

:is(.ppc-method-step__number, .ppc-process__number, .ppc-step__number) {
	align-items: center;
	background: var(--ppc-color-primary);
	border-radius: 50%;
	color: #ffffff;
	display: inline-flex;
	font-weight: 800;
	inline-size: 2.5rem;
	block-size: 2.5rem;
	justify-content: center;
	margin-block-end: 1rem;
}

:is(.ppc-method-step__number, .ppc-process__number, .ppc-step__number):empty::before {
	content: counter(ppc-step);
}

:is(.ppc-method-step__title, .ppc-process__title, .ppc-step__title) {
	font-size: 1.3rem;
	margin-block-end: 0.55rem;
}

:is(.ppc-method-step__text, .ppc-process__text, .ppc-step__text) {
	color: var(--ppc-color-muted);
	font-size: 0.95rem;
	margin: 0;
}

.ppc-dimensions {
	display: grid;
	gap: 1rem;
	grid-template-columns: repeat(auto-fit, minmax(min(100%, 14rem), 1fr));
}

.ppc-dimension {
	background: var(--ppc-color-sand-soft);
	border-inline-start: 0.25rem solid var(--ppc-color-primary);
	border-radius: 0 var(--ppc-radius-medium) var(--ppc-radius-medium) 0;
	padding: 1.25rem;
}

.ppc-dimension__title {
	font-size: 1.25rem;
	margin-block-end: 0.4rem;
}

.ppc-dimension p:last-child {
	margin-block-end: 0;
}

/* Schedule and programme */

:is(.ppc-schedule, .ppc-programme) {
	display: grid;
	gap: 1rem;
}

:is(.ppc-schedule-grid, .ppc-programme-grid) {
	display: grid;
	gap: 1rem;
	grid-template-columns: repeat(auto-fit, minmax(min(100%, 16rem), 1fr));
}

:is(.ppc-schedule-item, .ppc-programme-item, .ppc-day-card) {
	background: var(--ppc-color-paper);
	border: 1px solid var(--ppc-color-border);
	border-radius: var(--ppc-radius-medium);
	padding: clamp(1.15rem, 3vw, 1.5rem);
}

:is(.ppc-schedule-item__time, .ppc-programme-item__time, .ppc-day-card__label) {
	color: var(--ppc-color-primary);
	display: block;
	font-size: 0.78rem;
	font-weight: 800;
	letter-spacing: 0.08em;
	margin-block-end: 0.55rem;
	text-transform: uppercase;
}

:is(.ppc-schedule-item__title, .ppc-programme-item__title, .ppc-day-card__title) {
	font-size: 1.35rem;
	margin-block-end: 0.6rem;
}

:is(.ppc-schedule-item, .ppc-programme-item, .ppc-day-card) :where(ul, ol) {
	color: var(--ppc-color-muted);
	margin-block-end: 0;
	padding-inline-start: 1.25rem;
}

.ppc-schedule-note,
.ppc-programme-note {
	border-inline-start: 0.25rem solid var(--ppc-color-coral);
	color: var(--ppc-color-muted);
	font-size: 0.95rem;
	margin-block-start: 1.25rem;
	padding: 0.6rem 0.9rem;
}

/* Split layouts, coach and destination */

:is(.ppc-split, .ppc-coach, .ppc-destination) {
	align-items: center;
	display: grid;
	gap: clamp(2rem, 6vw, 5rem);
	grid-template-columns: minmax(0, 1fr);
}

.ppc-split--reverse :is(.ppc-split__media, .ppc-coach__media, .ppc-destination__media) {
	order: 2;
}

:is(.ppc-split__media, .ppc-coach__media, .ppc-destination__media) {
	aspect-ratio: 4 / 5;
	background: linear-gradient(145deg, var(--ppc-color-primary-soft), var(--ppc-color-sand));
	border-radius: var(--ppc-radius-large);
	overflow: hidden;
}

:is(.ppc-split__media, .ppc-coach__media, .ppc-destination__media) > :where(img, video) {
	block-size: 100%;
	inline-size: 100%;
	object-fit: cover;
}

:is(.ppc-split__content, .ppc-coach__content, .ppc-destination__content) {
	min-inline-size: 0;
}

.ppc-coach__name {
	font-size: clamp(2rem, 5vw, 3.4rem);
}

.ppc-coach__role {
	color: var(--ppc-color-primary);
	font-weight: 800;
	margin-block: 0.55rem 0;
}

.ppc-coach__meta,
.ppc-profile-facts {
	display: grid;
	gap: 0.75rem;
	grid-template-columns: repeat(auto-fit, minmax(min(100%, 10rem), 1fr));
	margin-block: 1.5rem;
}

:is(.ppc-coach__meta, .ppc-profile-facts) > div {
	background: var(--ppc-color-surface);
	border-radius: var(--ppc-radius-small);
	padding: 0.85rem;
}

:is(.ppc-coach__meta, .ppc-profile-facts) dt {
	color: var(--ppc-color-muted);
	font-size: 0.75rem;
	font-weight: 800;
	letter-spacing: 0.06em;
	text-transform: uppercase;
}

:is(.ppc-coach__meta, .ppc-profile-facts) dd {
	color: var(--ppc-color-ink);
	font-weight: 750;
	margin: 0.2rem 0 0;
}

/* Destination collection */

.ppc-destination-grid {
	display: grid;
	gap: 1rem;
	grid-template-columns: repeat(2, minmax(0, 1fr));
}

.ppc-destination-grid--compact {
	grid-template-columns: repeat(auto-fit, minmax(min(100%, 13rem), 1fr));
}

.ppc-destination-card,
.ppc-card.ppc-destination-card {
	background: linear-gradient(145deg, #167462, #0a3d34);
	border: 0;
	border-radius: var(--ppc-radius-large);
	box-shadow: 0 0.75rem 2rem rgba(7, 43, 38, 0.12);
	color: #ffffff;
	display: flex;
	flex-direction: column;
	justify-content: space-between;
	min-block-size: 18rem;
	overflow: hidden;
	padding: 1.35rem;
	position: relative;
}

.ppc-destination-card::before,
.ppc-destination-card::after {
	content: "";
	pointer-events: none;
	position: absolute;
}

.ppc-destination-card::before {
	background: rgba(255, 255, 255, 0.11);
	border-radius: 50%;
	block-size: 18rem;
	inline-size: 18rem;
	inset: -8rem -6rem auto auto;
}

.ppc-destination-card::after {
	background: linear-gradient(transparent, rgba(4, 28, 24, 0.64));
	inset: 40% 0 0;
}

.ppc-destination-card > * {
	position: relative;
	z-index: 1;
}

.ppc-card.ppc-destination-card > :not(.ppc-card__media):not(.ppc-card__body):not(.ppc-card__badge) {
	margin-inline: 0;
}

.ppc-card.ppc-destination-card > :first-child:not(.ppc-card__media):not(.ppc-card__badge) {
	margin-block-start: 0;
}

.ppc-card.ppc-destination-card > :last-child:not(.ppc-card__media) {
	margin-block-end: 0;
}

.ppc-destination-card :is(h2, h3) {
	color: #ffffff;
	font-family: var(--ppc-font-display);
	font-size: clamp(2rem, 4vw, 3.3rem);
	line-height: 1;
	margin-block: 0.5rem;
}

.ppc-destination-card p {
	color: rgba(255, 255, 255, 0.82);
}

.ppc-destination-card > p:not(.ppc-destination-status) {
	margin-block: 0.55rem;
}

.ppc-destination-card a {
	color: #ffffff;
	font-weight: 800;
}

.ppc-destination-card small {
	color: rgba(255, 255, 255, 0.72);
	display: block;
}

.ppc-destination-status {
	align-self: flex-start;
	background: rgba(255, 255, 255, 0.91);
	border-radius: var(--ppc-radius-pill);
	color: var(--ppc-color-deepest) !important;
	font-size: 0.64rem;
	font-weight: 850;
	letter-spacing: 0.08em;
	line-height: 1.25;
	margin: 0 !important;
	padding: 0.45rem 0.7rem;
	text-transform: uppercase;
}

.ppc-destination-card .wp-block-buttons {
	display: flex;
	flex-wrap: wrap;
	gap: 0.65rem;
	margin-block-start: 1rem;
}

.ppc-destination-card .wp-block-button__link {
	background: #ffffff;
	border: 2px solid #ffffff;
	border-radius: var(--ppc-radius-pill);
	color: var(--ppc-color-deepest);
	font-size: 0.9rem;
	font-weight: 800;
	padding: 0.7rem 1rem;
	text-decoration: none;
}

.ppc-destination-card .wp-block-button.is-style-outline .wp-block-button__link {
	background: transparent;
	color: #ffffff;
}

.ppc-destination-card--compact {
	min-block-size: 12rem;
}

.ppc-destination-card--featured {
	min-block-size: 25rem;
}

.ppc-destinations--flagship .ppc-destination-card,
.ppc-destination-card--featured {
	background: linear-gradient(145deg, #0a806d, #073a31);
}

.ppc-destinations--next .ppc-destination-card {
	background: linear-gradient(145deg, #c4874f, #68442d);
}

.ppc-destinations--capsule .ppc-destination-card {
	background: linear-gradient(145deg, #385c63, #19343a);
}

.ppc-content-page .entry-content > .ppc-destinations-hero {
	background:
		radial-gradient(circle at 88% 10%, rgba(244, 234, 212, 0.17), transparent 24rem),
		linear-gradient(135deg, var(--ppc-color-deep), var(--ppc-color-deepest));
	color: #ffffff;
	padding: clamp(4rem, 9vw, 7rem) max(var(--ppc-gutter), calc((100% - var(--ppc-content-width)) / 2));
}

.ppc-content-page .entry-content > .ppc-destinations-hero > * {
	max-inline-size: 48rem;
}

.ppc-content-page .entry-content > .ppc-destinations-hero h1 {
	color: #ffffff;
	font-family: var(--ppc-font-display);
	font-size: clamp(2.75rem, 7vw, 5.5rem);
	letter-spacing: -0.045em;
	line-height: 0.98;
}

.ppc-content-page .entry-content > .ppc-destinations-hero .ppc-lead {
	color: #d8e7e2;
}

.ppc-content-page .entry-content > .ppc-destinations-hero small {
	color: #b7cec6;
}

.ppc-content-page .entry-content > .ppc-destinations {
	padding: var(--ppc-section-space) max(var(--ppc-gutter), calc((100% - var(--ppc-content-width)) / 2));
}

.ppc-content-page .entry-content > .ppc-destinations--next {
	background: var(--ppc-color-sand-soft);
}

.ppc-content-page .entry-content > .ppc-destinations--capsule {
	background: var(--ppc-color-surface);
}

.ppc-content-page .entry-content > .ppc-destinations > h2 {
	font-family: var(--ppc-font-display);
	font-size: clamp(2rem, 5vw, 3.7rem);
	letter-spacing: -0.035em;
	line-height: 1.02;
	max-inline-size: 48rem;
}

.ppc-content-page .entry-content > .ppc-destinations > p:not(.ppc-eyebrow) {
	color: var(--ppc-color-muted);
	max-inline-size: 48rem;
}

.ppc-content-page .entry-content > .ppc-info,
.ppc-content-page .entry-content > .ppc-final-cta {
	inline-size: min(100% - (2 * var(--ppc-gutter)), var(--ppc-content-width));
	margin: clamp(3rem, 7vw, 6rem) auto;
}

/* Tables, comparisons and definition lists */

.ppc-table-wrap,
.ppc-comparison {
	border: 1px solid var(--ppc-color-border);
	border-radius: var(--ppc-radius-medium);
	overflow-x: auto;
}

.ppc-table,
.ppc-comparison table {
	border-collapse: collapse;
	inline-size: 100%;
	min-inline-size: 42rem;
}

:is(.ppc-table, .ppc-comparison table) :where(th, td) {
	border-block-end: 1px solid var(--ppc-color-border);
	padding: 0.9rem 1rem;
	text-align: start;
	vertical-align: top;
}

:is(.ppc-table, .ppc-comparison table) th {
	background: var(--ppc-color-deep);
	color: #ffffff;
	font-size: 0.8125rem;
	font-weight: 800;
	letter-spacing: 0.04em;
	text-transform: uppercase;
}

:is(.ppc-table, .ppc-comparison table) tbody tr:nth-child(even) {
	background: var(--ppc-color-surface);
}

:is(.ppc-table, .ppc-comparison table) tbody tr:last-child :where(th, td) {
	border-block-end: 0;
}

.ppc-detail-list {
	border-block-start: 1px solid var(--ppc-color-border);
	margin: 0;
}

.ppc-detail-list > div {
	border-block-end: 1px solid var(--ppc-color-border);
	display: grid;
	gap: 0.35rem 1rem;
	grid-template-columns: minmax(9rem, 0.7fr) minmax(0, 1.3fr);
	padding-block: 0.85rem;
}

.ppc-detail-list dt {
	color: var(--ppc-color-muted);
	font-weight: 700;
}

.ppc-detail-list dd {
	font-weight: 650;
	margin: 0;
}

/* FAQ */

:is(.ppc-faq, .ppc-faq-list) {
	margin-inline: auto;
	max-width: 52rem;
}

.ppc-faq-group + .ppc-faq-group {
	margin-block-start: 2.5rem;
}

.ppc-faq-group__title {
	font-size: 1.65rem;
	margin-block-end: 0.9rem;
}

:is(.ppc-faq-item, .ppc-faq details) {
	background: var(--ppc-color-paper);
	border: 1px solid var(--ppc-color-border);
	border-radius: var(--ppc-radius-medium);
	overflow: clip;
}

:is(.ppc-faq-item, .ppc-faq details) + :is(.ppc-faq-item, .ppc-faq details) {
	margin-block-start: 0.75rem;
}

:is(.ppc-faq-item, .ppc-faq details) > summary {
	align-items: center;
	color: var(--ppc-color-ink);
	cursor: pointer;
	display: flex;
	font-weight: 800;
	gap: 1rem;
	justify-content: space-between;
	list-style: none;
	min-block-size: 3.25rem;
	padding: 1rem 1.15rem;
}

:is(.ppc-faq-item, .ppc-faq details) > summary::-webkit-details-marker {
	display: none;
}

:is(.ppc-faq-item, .ppc-faq details) > summary::after {
	align-items: center;
	background: var(--ppc-color-primary-soft);
	border-radius: 50%;
	color: var(--ppc-color-primary-hover);
	content: "+";
	display: inline-flex;
	flex: 0 0 auto;
	font-size: 1.2rem;
	font-weight: 700;
	inline-size: 1.9rem;
	block-size: 1.9rem;
	justify-content: center;
}

:is(.ppc-faq-item, .ppc-faq details)[open] > summary::after {
	content: "−";
}

.ppc-faq-item__answer,
:is(.ppc-faq-item, .ppc-faq details) > :not(summary) {
	color: var(--ppc-color-muted);
	padding-inline: 1.15rem;
}

.ppc-faq-item__answer:last-child,
:is(.ppc-faq-item, .ppc-faq details) > :last-child {
	padding-block-end: 1.1rem;
}

/* Forms and filters */

.ppc-form,
.ppc-filter-form,
.ppc-availability-form {
	background: var(--ppc-color-paper);
	border: 1px solid var(--ppc-color-border);
	border-radius: var(--ppc-radius-large);
	box-shadow: var(--ppc-shadow-card);
	color: var(--ppc-color-ink);
	padding: clamp(1.25rem, 4vw, 2.5rem);
}

.ppc-form__intro {
	color: var(--ppc-color-muted);
	margin-block-end: 1.5rem;
	max-width: 42rem;
}

.ppc-form__section + .ppc-form__section {
	border-block-start: 1px solid var(--ppc-color-border);
	margin-block-start: 2rem;
	padding-block-start: 2rem;
}

.ppc-form__section-title {
	font-size: clamp(1.4rem, 3vw, 1.8rem);
	margin-block-end: 1rem;
}

.ppc-form__grid,
.ppc-filter-form__grid,
.ppc-filter-grid {
	display: grid;
	gap: 1rem;
	grid-template-columns: repeat(12, minmax(0, 1fr));
}

.ppc-field {
	grid-column: span 12;
	min-inline-size: 0;
}

.ppc-field--half {
	grid-column: span 6;
}

.ppc-field--third {
	grid-column: span 4;
}

.ppc-field--full {
	grid-column: 1 / -1;
}

.ppc-label,
.ppc-field > label,
.ppc-fieldset > legend {
	color: var(--ppc-color-ink);
	display: block;
	font-size: 0.9375rem;
	font-weight: 800;
	line-height: 1.35;
	margin-block-end: 0.45rem;
}

.ppc-required {
	color: var(--ppc-color-danger);
	font-weight: 800;
}

.ppc-form :is(input:not([type="checkbox"]):not([type="radio"]):not([type="submit"]), select, textarea),
.ppc-input,
.ppc-select,
.ppc-textarea {
	appearance: none;
	background-color: var(--ppc-color-paper);
	border: 1px solid var(--ppc-color-border-strong);
	border-radius: var(--ppc-radius-small);
	color: var(--ppc-color-ink);
	font: 500 1rem/1.45 var(--ppc-font-body);
	inline-size: 100%;
	min-block-size: 3rem;
	padding: 0.72rem 0.85rem;
	transition: border-color var(--ppc-transition), box-shadow var(--ppc-transition);
}

.ppc-form select,
.ppc-select {
	appearance: auto;
}

.ppc-form textarea,
.ppc-textarea {
	min-block-size: 8rem;
	resize: vertical;
}

.ppc-form :is(input, select, textarea)::placeholder,
.ppc-input::placeholder,
.ppc-textarea::placeholder {
	color: #687c76;
	opacity: 1;
}

.ppc-form :is(input, select, textarea)[aria-invalid="true"],
.ppc-field--error :is(input, select, textarea),
.ppc-input--error {
	border-color: var(--ppc-color-danger);
}

.ppc-field__help,
.ppc-help {
	color: var(--ppc-color-muted);
	display: block;
	font-size: 0.8125rem;
	line-height: 1.45;
	margin-block-start: 0.4rem;
}

.ppc-field__error,
.ppc-error {
	color: var(--ppc-color-danger);
	display: block;
	font-size: 0.875rem;
	font-weight: 700;
	line-height: 1.45;
	margin-block-start: 0.4rem;
}

.ppc-fieldset {
	border: 0;
	margin: 0;
	min-inline-size: 0;
	padding: 0;
}

.ppc-options,
.ppc-checkboxes,
.ppc-radios {
	display: grid;
	gap: 0.65rem;
}

.ppc-choice,
.ppc-checkbox,
.ppc-radio {
	align-items: flex-start;
	cursor: pointer;
	display: flex;
	font-weight: 550;
	gap: 0.65rem;
	line-height: 1.45;
}

:is(.ppc-choice, .ppc-checkbox, .ppc-radio) input {
	accent-color: var(--ppc-color-primary);
	block-size: 1.2rem;
	flex: 0 0 auto;
	inline-size: 1.2rem;
	margin-block-start: 0.1rem;
}

.ppc-form__actions,
.ppc-filter-form__actions {
	align-items: center;
	display: flex;
	flex-wrap: wrap;
	gap: 0.75rem 1rem;
	margin-block-start: 1.5rem;
}

.ppc-form__reassurance,
.ppc-booking-reassurance {
	color: var(--ppc-color-muted);
	font-size: 0.875rem;
	margin: 0;
}

/* Notices, status and empty states */

.ppc-notice,
.ppc-empty-state,
.ppc-info,
.ppc-editor-warning {
	background: var(--ppc-color-surface);
	border: 1px solid var(--ppc-color-border);
	border-inline-start: 0.3rem solid var(--ppc-color-primary);
	border-radius: var(--ppc-radius-small);
	color: var(--ppc-color-ink-soft);
	padding: 1rem 1.1rem;
}

.ppc-notice > :last-child,
.ppc-empty-state > :last-child,
.ppc-info > :last-child,
.ppc-editor-warning > :last-child {
	margin-block-end: 0;
}

.ppc-info {
	background: var(--ppc-color-sand-soft);
	border-color: #decfae;
	border-inline-start-color: var(--ppc-color-primary);
	margin-block: 1.5rem;
}

.ppc-info > :where(h2, h3) {
	font-family: var(--ppc-font-display);
	font-size: 1.45rem;
	margin-block: 0 0.5rem;
}

.ppc-editor-warning {
	background: #fff1ef;
	border-color: #e7c0bb;
	border-inline-start-color: var(--ppc-color-danger);
	color: #762820;
	font-weight: 650;
	margin-block: 1rem 1.5rem;
}

.ppc-notice--success {
	background: #eef8f3;
	border-color: #bddfce;
	border-inline-start-color: var(--ppc-color-success);
}

.ppc-notice--warning {
	background: #fff8e8;
	border-color: #ead6a8;
	border-inline-start-color: var(--ppc-color-warning);
}

.ppc-notice--error {
	background: #fff1ef;
	border-color: #e7c0bb;
	border-inline-start-color: var(--ppc-color-danger);
}

.ppc-notice--legal {
	background: var(--ppc-color-sand-soft);
	border-color: #decfae;
	border-inline-start-color: var(--ppc-color-coral);
}

.ppc-empty-state {
	padding: clamp(1.5rem, 4vw, 2.5rem);
	text-align: center;
}

.ppc-status {
	align-items: center;
	display: inline-flex;
	font-size: 0.8125rem;
	font-weight: 800;
	gap: 0.4rem;
}

.ppc-status::before {
	background: currentColor;
	border-radius: 50%;
	content: "";
	inline-size: 0.55rem;
	block-size: 0.55rem;
}

.ppc-status--available {
	color: var(--ppc-color-success);
}

.ppc-status--limited {
	color: var(--ppc-color-warning);
}

.ppc-status--full {
	color: var(--ppc-color-danger);
}

/* Final call to action */

.ppc-final-cta,
.ppc-cta-final {
	background:
		radial-gradient(circle at 10% 20%, rgba(244, 234, 212, 0.16), transparent 20rem),
		linear-gradient(135deg, var(--ppc-color-deep), var(--ppc-color-deepest));
	border-radius: var(--ppc-radius-large);
	box-shadow: var(--ppc-shadow-raised);
	color: var(--ppc-color-paper);
	overflow: hidden;
	padding: clamp(2rem, 6vw, 4.5rem);
	position: relative;
}

.ppc-final-cta__inner,
.ppc-cta-final__inner {
	max-width: 50rem;
	position: relative;
	z-index: 1;
}

.ppc-final-cta__title,
.ppc-cta-final__title {
	font-size: clamp(2rem, 5vw, 3.7rem);
}

.ppc-final-cta__text,
.ppc-cta-final__text {
	color: #d7e6e1;
	font-size: clamp(1.025rem, 2vw, 1.2rem);
	margin-block: 1rem 0;
	max-width: 43rem;
}

.ppc-final-cta__microcopy,
.ppc-cta-final__microcopy {
	color: #bcd1ca;
	font-size: 0.875rem;
	margin-block: 1rem 0;
}

/* Gutenberg seed-content fallback: current CTA has direct children. */

:is(.ppc-final-cta, .ppc-cta-final) > h2 {
	color: #ffffff;
	font-family: var(--ppc-font-display);
	font-size: clamp(2rem, 5vw, 3.7rem);
	font-weight: 700;
	letter-spacing: -0.025em;
	line-height: 1.08;
	margin-block: 0;
	max-width: 18ch;
	text-wrap: balance;
}

:is(.ppc-final-cta, .ppc-cta-final) > p {
	color: #d7e6e1;
	font-size: clamp(1rem, 2vw, 1.15rem);
	max-width: 43rem;
}

:is(.ppc-final-cta, .ppc-cta-final) > p:last-child small {
	color: #bcd1ca;
	font-size: 0.875rem;
}

:is(.ppc-final-cta, .ppc-cta-final) > .wp-block-buttons {
	display: flex;
	flex-wrap: wrap;
	gap: 0.75rem;
	margin-block: 1.5rem 1rem;
}

.ppc-final-cta .ppc-button--secondary,
.ppc-cta-final .ppc-button--secondary {
	border-color: #ffffff;
	color: #ffffff;
}

.ppc-final-cta .ppc-button--secondary:hover,
.ppc-cta-final .ppc-button--secondary:hover {
	background: #ffffff;
	border-color: #ffffff;
	color: var(--ppc-color-deepest);
}

/* Footer */

.ppc-footer {
	background: var(--ppc-color-deepest);
	color: #d9e6e2;
	font-family: var(--ppc-font-body);
	padding-block: clamp(3rem, 7vw, 5rem) 1.5rem;
}

.ppc-footer__inner {
	display: grid;
	gap: 2rem;
	grid-template-columns: minmax(0, 1fr);
	inline-size: min(100% - (2 * var(--ppc-gutter)), var(--ppc-content-width));
	margin-inline: auto;
}

.ppc-footer__brand {
	max-width: 28rem;
}

.ppc-footer__title {
	color: #ffffff;
	font-family: var(--ppc-font-display);
	font-size: 1.65rem;
	font-weight: 700;
	line-height: 1.2;
	margin: 0;
}

.ppc-footer__tagline {
	color: #afc8c0;
	margin-block: 0.75rem 0;
}

.ppc-footer__nav,
.ppc-footer__legal-nav {
	display: flex;
	flex-wrap: wrap;
	gap: 0.65rem 1.25rem;
	list-style: none;
	margin: 0;
	padding: 0;
}

.ppc-footer a {
	color: #edf5f2;
}

.ppc-footer a:hover {
	color: var(--ppc-color-sand);
}

.ppc-footer__bottom {
	border-block-start: 1px solid rgba(255, 255, 255, 0.16);
	color: #9fbab2;
	font-size: 0.8125rem;
	inline-size: min(100% - (2 * var(--ppc-gutter)), var(--ppc-content-width));
	margin: 2.5rem auto 0;
	padding-block-start: 1.25rem;
}

/* Sticky CTA is intentionally mobile-only. */

.ppc-mobile-sticky-cta {
	display: none;
}

/* Accessible focus and utility classes */

:is(
	.ppc-button,
	.ppc-text-link,
	.ppc-link,
	.ppc-card a,
	.ppc-camp-card a,
	.ppc-listing-card a,
	.ppc-faq-item > summary,
	.ppc-faq details > summary,
	.ppc-form input,
	.ppc-form select,
	.ppc-form textarea,
	.ppc-footer a,
	.ppc-hero .wp-block-button__link,
	.ppc-final-cta .wp-block-button__link,
	.ppc-cta-final .wp-block-button__link
):focus-visible {
	outline: 3px solid var(--ppc-focus-ring);
	outline-offset: 3px;
}

.ppc-hero :is(.ppc-button, .ppc-link):focus-visible,
.ppc-hero .wp-block-button__link:focus-visible,
.ppc-final-cta :is(.ppc-button, .ppc-link):focus-visible,
.ppc-final-cta .wp-block-button__link:focus-visible,
.ppc-cta-final .wp-block-button__link:focus-visible,
.ppc-footer a:focus-visible,
.ppc-mobile-sticky-cta .ppc-button:focus-visible {
	outline-color: var(--ppc-focus-on-dark);
}

.ppc-skip-link {
	background: var(--ppc-color-paper);
	color: var(--ppc-color-deepest);
	inset: 0 auto auto 0;
	padding: 0.8rem 1rem;
	position: fixed;
	transform: translateY(-150%);
	z-index: 100000;
}

.ppc-skip-link:focus {
	transform: translateY(0);
}

.ppc-visually-hidden {
	block-size: 1px;
	clip: rect(0 0 0 0);
	clip-path: inset(50%);
	inline-size: 1px;
	overflow: hidden;
	position: absolute;
	white-space: nowrap;
}

@media (min-width: 48rem) {
	.ppc-hero__inner {
		grid-template-columns: minmax(0, 1.1fr) minmax(18rem, 0.9fr);
	}

	.ppc-hero--compact .ppc-hero__inner:not(:has(.ppc-hero__media)),
	.ppc-hero--product .ppc-hero__inner:not(:has(.ppc-hero__media)) {
		grid-template-columns: minmax(0, 1fr);
	}

	:is(.ppc-split, .ppc-coach, .ppc-destination) {
		grid-template-columns: minmax(16rem, 0.85fr) minmax(0, 1.15fr);
	}

	.ppc-split--reverse :is(.ppc-split__media, .ppc-coach__media, .ppc-destination__media) {
		order: 2;
	}

	.ppc-footer__inner {
		grid-template-columns: minmax(15rem, 1.2fr) minmax(0, 1fr);
	}
}

@media (max-width: 47.99rem) {
	.ppc-hero {
		min-block-size: auto;
	}

	.ppc-hero__title {
		font-size: clamp(2.45rem, 13vw, 4.2rem);
	}

	.ppc-trust,
	.ppc-trust-strip {
		border-inline: 0;
		border-radius: 0;
		inline-size: 100%;
		margin-block-start: 0;
	}

	.ppc-actions > .ppc-button {
		flex: 1 1 100%;
	}

	.ppc-field--half,
	.ppc-field--third {
		grid-column: span 12;
	}

	.ppc-detail-list > div {
		grid-template-columns: minmax(0, 1fr);
	}

	.ppc-destination-grid,
	.ppc-destination-grid--compact {
		grid-template-columns: minmax(0, 1fr);
	}

	.ppc-destination-card--featured {
		min-block-size: 20rem;
	}

	.ppc-split--reverse :is(.ppc-split__media, .ppc-coach__media, .ppc-destination__media) {
		order: initial;
	}

	.ppc-mobile-sticky-cta {
		align-items: center;
		background: rgba(7, 43, 38, 0.98);
		border-block-start: 1px solid rgba(255, 255, 255, 0.18);
		box-shadow: 0 -0.5rem 1.5rem rgba(7, 43, 38, 0.22);
		display: flex;
		gap: 0.75rem;
		inset: auto 0 0;
		justify-content: space-between;
		padding: 0.65rem max(0.75rem, env(safe-area-inset-right)) max(0.65rem, env(safe-area-inset-bottom)) max(0.75rem, env(safe-area-inset-left));
		position: fixed;
		z-index: 9990;
	}

	.ppc-mobile-sticky-cta__text {
		color: #ffffff;
		font-size: 0.8rem;
		font-weight: 750;
		line-height: 1.25;
		margin: 0;
		max-width: 11rem;
	}

	.ppc-mobile-sticky-cta .ppc-button {
		background: var(--ppc-color-coral);
		border-color: var(--ppc-color-coral);
		flex: 0 0 auto;
		font-size: 0.9rem;
		min-block-size: 2.75rem;
		padding-inline: 0.9rem;
	}

	.ppc-site:has(.ppc-mobile-sticky-cta) {
		padding-block-end: calc(4.75rem + env(safe-area-inset-bottom));
	}
}

@media (max-width: 23rem) {
	.ppc-mobile-sticky-cta__text {
		display: none;
	}

	.ppc-mobile-sticky-cta .ppc-button {
		inline-size: 100%;
	}
}

@media (prefers-reduced-motion: reduce) {
	.ppc-page *,
	.ppc-page *::before,
	.ppc-page *::after,
	.ppc-mobile-sticky-cta *,
	.ppc-mobile-sticky-cta *::before,
	.ppc-mobile-sticky-cta *::after {
		scroll-behavior: auto !important;
		transition-duration: 0.01ms !important;
	}

	:is(.ppc-button, .ppc-card, .ppc-camp-card, .ppc-listing-card):hover,
	:is(.ppc-card, .ppc-camp-card, .ppc-listing-card):hover :is(.ppc-card__media, .ppc-camp-card__media, .ppc-listing-card__media) > :where(img, video) {
		transform: none;
	}
}

@media (forced-colors: active) {
	:is(.ppc-button, .ppc-badge, .ppc-notice, .ppc-card, .ppc-camp-card, .ppc-listing-card) {
		forced-color-adjust: auto;
	}

	:is(.ppc-trust__item, .ppc-trust-strip__item)::before,
	.ppc-status::before {
		background: CanvasText;
	}
}

@media print {
	.ppc-mobile-sticky-cta,
	.ppc-actions,
	.ppc-form__actions,
	.ppc-filter-form__actions {
		display: none !important;
	}

	.ppc-hero,
	.ppc-final-cta,
	.ppc-footer {
		background: #ffffff !important;
		color: #000000 !important;
	}

	:is(.ppc-card, .ppc-camp-card, .ppc-listing-card, .ppc-form) {
		box-shadow: none;
	}
}
