@font-face {
	font-display: swap;
	font-family: "Switzer";
	font-style: normal;
	font-weight: 100 900;
	src: url("../fonts/Switzer-Variable.woff2") format("woff2");
}

:root {
	--pg-color-navy: #102f55;
	--pg-color-red: #c82028;
	--pg-color-gold: #b99755;
	/* Same hue as --pg-color-gold, darkened to clear 4.5:1 on white/ivory for text (WCAG AA). */
	--pg-color-gold-text: #7d5e2e;
	--pg-color-ivory: #f5f1e9;
	--pg-color-anthracite: #222222;
	--pg-color-white: #ffffff;
	--pg-color-border: rgba(185, 151, 85, 0.3);
	--pg-color-border-soft: rgba(196, 198, 207, 0.45);
	--pg-color-surface: #fcf9f8;
	--pg-color-surface-muted: #f0eded;
	--pg-font-heading: "Involve", "Switzer", "Helvetica Neue", Helvetica, Arial, sans-serif;
	--pg-font-body: "Switzer", "Helvetica Neue", Helvetica, Arial, sans-serif;
	--pg-font-serif: var(--pg-font-heading);
	--pg-font-sans: var(--pg-font-body);
	--pg-container-max: 1280px;
	--pg-container-gutter: 20px;
	--pg-radius: 4px;
	--pg-header-height: 76px;
	--pg-section-space: clamp(64px, 8vw, 104px);
	--pg-section-space-compact: clamp(48px, 6vw, 80px);
	--pg-card-gap: clamp(18px, 2vw, 28px);
	--pg-readable-width: 760px;
}

*,
*::before,
*::after {
	box-sizing: border-box;
}

html {
	scroll-behavior: smooth;
}

@media (prefers-reduced-motion: reduce) {
	html {
		scroll-behavior: auto;
	}

	*,
	*::before,
	*::after {
		animation-duration: 0.01ms !important;
		animation-iteration-count: 1 !important;
		scroll-behavior: auto !important;
		transition-duration: 0.01ms !important;
	}
}

body {
	margin: 0;
	background: var(--pg-color-surface);
	color: var(--pg-color-anthracite);
	font-family: var(--pg-font-body);
	font-size: 18px;
	line-height: 26px;
	text-rendering: optimizeLegibility;
}

.pg-animate-ready [data-animate] {
	opacity: 0;
	transition-duration: 760ms;
	transition-property: opacity, transform, filter;
	transition-timing-function: cubic-bezier(0.16, 1, 0.3, 1);
	will-change: opacity, transform, filter;
}

.pg-animate-ready [data-animate="fade-up"] {
	filter: blur(8px);
	transform: translate3d(0, 28px, 0);
}

.pg-animate-ready [data-animate="fade-in"] {
	filter: blur(10px);
	transform: scale(0.985);
}

.pg-animate-ready [data-animate].is-animated {
	filter: none;
	opacity: 1;
	transform: none;
	will-change: auto;
}

.pg-animate-ready [data-animate-delay="1"] {
	transition-delay: 90ms;
}

.pg-animate-ready [data-animate-delay="2"] {
	transition-delay: 180ms;
}

.pg-animate-ready [data-animate-delay="3"] {
	transition-delay: 270ms;
}

.pg-animate-ready [data-animate-delay="4"] {
	transition-delay: 360ms;
}

.pg-animate-ready [data-animate-delay="5"] {
	transition-delay: 450ms;
}

.pg-reduce-motion [data-animate],
.pg-reduce-motion [data-animate].is-animated {
	filter: none;
	opacity: 1;
	transform: none;
	transition: none;
}

body.is-menu-open {
	overflow: hidden;
}

body.is-menu-open::before {
	background: rgba(16, 47, 85, 0.46);
	content: "";
	inset: var(--pg-header-height) 0 0;
	position: fixed;
	z-index: 80;
}

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

a {
	color: var(--pg-color-navy);
	text-decoration-thickness: 1px;
	text-underline-offset: 0.2em;
}

a:focus-visible,
button:focus-visible,
input:focus-visible,
select:focus-visible,
textarea:focus-visible {
	outline: 2px solid var(--pg-color-red);
	outline-offset: 3px;
}

h1,
h2,
h3,
h4,
h5,
h6 {
	color: var(--pg-color-navy);
	font-family: var(--pg-font-heading);
	font-weight: 700;
	line-height: 1.2;
	margin-block: 0 0.5em;
}

h1 {
	line-height: 1;
	letter-spacing: -2px;
}

body,
p,
li,
input,
textarea,
select,
label,
button {
	font-family: var(--pg-font-body);
}

p {
	margin-block: 0 1em;
}

.container {
	margin-inline: auto;
	max-width: var(--pg-container-max);
	padding-inline: var(--pg-container-gutter);
	width: 100%;
}

.site-header {
	background: rgba(252, 249, 248, 0.96);
	border-bottom: 1px solid var(--pg-color-border-soft);
	box-shadow: 0 12px 32px rgba(16, 47, 85, 0.08);
	inset-block-start: 0;
	position: sticky;
	z-index: 100;
}

.page-scroll-progress {
	background: rgba(16, 47, 85, 0.16);
	block-size: 3px;
	inset-block-start: 0;
	inset-inline: 0;
	overflow: hidden;
	pointer-events: none;
	position: fixed;
	z-index: 140;
}

.page-scroll-progress__bar {
	background: var(--pg-color-red);
	display: block;
	height: 100%;
	transform: scaleX(0);
	transform-origin: left center;
	width: 100%;
	will-change: transform;
}

.site-header__inner {
	align-items: center;
	display: flex;
	gap: 18px;
	justify-content: space-between;
	min-height: var(--pg-header-height);
}

.site-branding,
.site-footer__logo-link {
	align-items: center;
	color: var(--pg-color-navy);
	display: inline-flex;
	gap: 12px;
	text-decoration: none;
}

.site-branding__logo {
	aspect-ratio: 1;
	border-radius: 50%;
	height: 44px;
	object-fit: contain;
	width: 44px;
}

.site-branding__name,
.site-footer__logo-link span {
	color: var(--pg-color-navy);
	font-family: var(--pg-font-heading);
	font-size: 18px;
	font-weight: 700;
	text-decoration: none;
}

.site-navigation--desktop,
.site-header__actions {
	display: none;
}

.site-navigation__menu {
	display: flex;
	flex-wrap: wrap;
	gap: 12px 20px;
	list-style: none;
	margin: 0;
	padding: 0;
}

.site-navigation a {
	color: var(--pg-color-anthracite);
	display: inline-flex;
	font-size: 13px;
	font-weight: 600;
	letter-spacing: 0.02em;
	line-height: 1.2;
	padding-block: 10px;
	position: relative;
	text-decoration: none;
	transition: color 180ms ease, border-color 180ms ease, background 180ms ease;
}

.site-navigation a::after {
	background: var(--pg-color-gold);
	block-size: 2px;
	content: "";
	inline-size: 100%;
	inset-block-end: 4px;
	inset-inline-start: 0;
	opacity: 0;
	position: absolute;
	transform: scaleX(0.4);
	transform-origin: center;
	transition: opacity 180ms ease, transform 180ms ease;
}

.site-navigation a:hover,
.site-navigation a:focus-visible,
.site-navigation .current-menu-item > a,
.site-navigation .current_page_item > a,
.site-navigation a[aria-current="page"] {
	color: var(--pg-color-red);
}

.site-navigation a:hover::after,
.site-navigation a:focus-visible::after,
.site-navigation .current-menu-item > a::after,
.site-navigation .current_page_item > a::after,
.site-navigation a[aria-current="page"]::after {
	opacity: 1;
	transform: scaleX(1);
}

.site-header__actions,
.mobile-navigation__meta {
	align-items: center;
	gap: 16px;
}

.site-language-switcher,
.site-language-switcher .trp-language-switcher,
.site-language-switcher .trp-ls-shortcode-current-language,
.site-language-switcher .trp-ls-shortcode-language {
	align-items: center;
	display: inline-flex;
	gap: 6px;
}

.site-language-switcher .trp-shortcode-switcher__wrapper,
.site-language-switcher .trp-language-switcher,
.site-language-switcher .trp-current-language-item__wrapper,
.site-language-switcher .trp-language-item {
	box-sizing: border-box;
	max-width: none;
	width: auto;
}

.site-language-switcher [hidden] {
	display: none !important;
}

.site-language-switcher .trp-language-switcher,
.site-language-switcher .trp-ls-shortcode-current-language,
.site-language-switcher .trp-ls-shortcode-language {
	height: auto;
	margin: 0;
	padding: 0;
	width: auto;
}

.site-language-switcher a,
.site-language-switcher .trp-language-item,
.site-language-switcher .trp-ls-shortcode-current-language a,
.site-language-switcher .trp-ls-shortcode-language a {
	align-items: center;
	border: 1px solid transparent;
	border-radius: var(--pg-radius);
	color: var(--pg-color-anthracite);
	display: inline-flex;
	font-size: 12px;
	font-weight: 700;
	justify-content: center;
	letter-spacing: 0.03em;
	min-height: 32px;
	min-width: 34px;
	text-decoration: none;
	text-transform: uppercase;
}

.site-language-switcher .trp-language-item-name {
	line-height: 1;
	overflow: visible;
	text-overflow: clip;
	white-space: nowrap;
}

.site-language-switcher a:hover,
.site-language-switcher a:focus-visible,
.site-language-switcher .trp-language-item__current,
.site-language-switcher .trp-ls-shortcode-current-language a {
	border-color: var(--pg-color-border);
	color: var(--pg-color-navy);
}

.site-language-switcher .trp-flag-image {
	flex: 0 0 auto;
	margin: 0 6px 0 0;
}

.button {
	align-items: center;
	border-radius: var(--pg-radius);
	display: inline-flex;
	font-size: 12px;
	font-weight: 800;
	justify-content: center;
	letter-spacing: 0.04em;
	line-height: 1.2;
	min-height: 42px;
	padding: 12px 18px;
	text-decoration: none;
	text-transform: uppercase;
	transition: background 180ms ease, border-color 180ms ease, color 180ms ease;
}

.button--cta {
	background: var(--pg-color-red);
	border: 1px solid var(--pg-color-red);
	color: var(--pg-color-white);
}

.button--cta:hover,
.button--cta:focus-visible {
	background: var(--pg-color-navy);
	border-color: var(--pg-color-navy);
	color: var(--pg-color-white);
}

.button--secondary {
	background: var(--pg-color-navy);
	border: 1px solid var(--pg-color-navy);
	color: var(--pg-color-white);
}

.button--secondary:hover,
.button--secondary:focus-visible {
	background: var(--pg-color-red);
	border-color: var(--pg-color-red);
	color: var(--pg-color-white);
}

.button--outline {
	background: transparent;
	border: 1px solid var(--pg-color-gold);
	color: var(--pg-color-navy);
}

.button--outline:hover,
.button--outline:focus-visible {
	background: var(--pg-color-navy);
	border-color: var(--pg-color-navy);
	color: var(--pg-color-white);
}

.button--outline-light {
	border-color: rgba(255, 255, 255, 0.55);
	color: var(--pg-color-white);
}

.button--outline-light:hover,
.button--outline-light:focus-visible {
	background: var(--pg-color-white);
	border-color: var(--pg-color-white);
	color: var(--pg-color-navy);
}

.menu-toggle {
	align-items: center;
	background: var(--pg-color-navy);
	border: 1px solid var(--pg-color-navy);
	border-radius: var(--pg-radius);
	display: inline-flex;
	flex-direction: column;
	gap: 5px;
	height: 44px;
	justify-content: center;
	margin-inline-start: auto;
	padding: 0;
	width: 44px;
}

.menu-toggle__line {
	background: var(--pg-color-white);
	block-size: 2px;
	display: block;
	inline-size: 20px;
	transition: transform 180ms ease, opacity 180ms ease;
}

.menu-toggle[aria-expanded="true"] .menu-toggle__line:nth-of-type(2) {
	opacity: 0;
}

.menu-toggle[aria-expanded="true"] .menu-toggle__line:nth-of-type(1) {
	transform: translateY(7px) rotate(45deg);
}

.menu-toggle[aria-expanded="true"] .menu-toggle__line:nth-of-type(3) {
	transform: translateY(-7px) rotate(-45deg);
}

.mobile-navigation {
	background: var(--pg-color-surface);
	border-block-start: 1px solid var(--pg-color-border-soft);
	box-shadow: 0 18px 32px rgba(16, 47, 85, 0.1);
	inline-size: 100%;
	inset-block-start: var(--pg-header-height);
	inset-inline: 0;
	max-block-size: calc(100vh - var(--pg-header-height));
	overflow-y: auto;
	position: fixed;
	z-index: 90;
}

.mobile-navigation__inner {
	display: grid;
	gap: 28px;
	padding-block: 24px 32px;
}

.site-navigation__menu--mobile {
	display: grid;
	gap: 2px;
}

.site-navigation__menu--mobile a {
	border-bottom: 1px solid var(--pg-color-border-soft);
	font-size: 18px;
	padding-block: 16px;
}

.site-navigation__menu--mobile a::after {
	display: none;
}

.mobile-navigation__meta {
	display: grid;
}

.site-language-switcher--mobile {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	justify-content: center;
	width: 100%;
}

.site-language-switcher--mobile .trp-language-switcher,
.site-language-switcher--mobile .trp-ls-shortcode-current-language,
.site-language-switcher--mobile .trp-ls-shortcode-language {
	flex-wrap: wrap;
	justify-content: center;
}

.site-language-switcher--mobile a {
	flex: 0 0 auto;
	min-width: 42px;
}

.site-navigation__menu--mobile + .site-navigation__menu--mobile {
	display: none;
}

.site-main {
	min-height: 60vh;
	padding-block: 64px;
}

.entry__header,
.archive-header {
	margin-block-end: 32px;
}

.site-footer {
	background: var(--pg-color-surface-muted);
	border-top: 1px solid var(--pg-color-border-soft);
	color: var(--pg-color-anthracite);
	padding-block: 56px 88px;
}

.site-footer a {
	color: var(--pg-color-anthracite);
	text-decoration: none;
}

.site-footer a:hover,
.site-footer a:focus-visible {
	color: var(--pg-color-red);
}

.site-footer__inner {
	display: grid;
	gap: 36px;
}

.site-footer__brand {
	max-width: 420px;
}

.site-footer__logo {
	aspect-ratio: 1;
	border-radius: 50%;
	height: 48px;
	object-fit: contain;
	width: 48px;
}

.site-footer__brand p,
.site-footer__list,
.site-footer__social,
.site-footer__bottom {
	color: #43474e;
	font-size: 14px;
}

.site-footer__heading {
	color: var(--pg-color-navy);
	font-family: var(--pg-font-body);
	font-size: 12px;
	font-weight: 800;
	letter-spacing: 0.05em;
	margin-block-end: 16px;
	text-transform: uppercase;
}

.site-footer__heading--social {
	margin-block-start: 24px;
}

.site-footer__menu,
.site-footer__list,
.site-footer__social {
	display: grid;
	gap: 10px;
	list-style: none;
	margin: 0;
	padding: 0;
}

.site-footer__menu a {
	font-size: 14px;
}

.site-footer__bottom {
	align-items: center;
	border-top: 1px solid var(--pg-color-border-soft);
	display: flex;
	flex-direction: column;
	gap: 18px;
	margin-block-start: 40px;
	padding-block-start: 24px;
}

.site-footer__bottom p {
	margin: 0;
}

.site-footer__legal {
	display: flex;
	flex-wrap: wrap;
	gap: 12px 20px;
	justify-content: center;
}

.mobile-contact-bar {
	background: var(--pg-color-white);
	border-top: 1px solid var(--pg-color-border-soft);
	box-shadow: 0 -12px 32px rgba(16, 47, 85, 0.12);
	display: grid;
	gap: 8px;
	grid-template-columns: 1fr 1fr;
	inset-block-end: 0;
	inset-inline: 0;
	padding: 10px var(--pg-container-gutter);
	position: fixed;
	z-index: 95;
}

.mobile-contact-bar__item {
	align-items: center;
	border: 1px solid var(--pg-color-gold);
	border-radius: var(--pg-radius);
	color: var(--pg-color-navy);
	display: inline-flex;
	font-size: 12px;
	font-weight: 800;
	justify-content: center;
	letter-spacing: 0.03em;
	min-height: 44px;
	text-align: center;
	text-decoration: none;
	text-transform: uppercase;
}

.mobile-contact-bar__item--primary {
	background: var(--pg-color-red);
	border-color: var(--pg-color-red);
	color: var(--pg-color-white);
}

.home .site-main {
	padding-block: 0;
}

.home-section,
.home-professional,
.home-benefits,
.home-final-cta {
	padding-block: 72px;
}

.home-section__header {
	margin-inline: auto;
	margin-block-end: 40px;
	max-width: 760px;
	text-align: center;
}

.home-section__header--split {
	margin-inline: 0;
	max-width: 820px;
	text-align: left;
}

.home-section__header h2,
.home-professional h2,
.home-benefits h2,
.home-final-cta h2 {
	font-size: clamp(30px, 4vw, 48px);
	letter-spacing: 0;
	margin-block-end: 16px;
}

.home-section__header p,
.home-hero__text,
.home-professional p,
.home-final-cta p {
	color: #43474e;
	font-size: 16px;
	line-height: 1.7;
}

.home-eyebrow {
	align-items: center;
	color: var(--pg-color-gold-text);
	display: inline-flex;
	font-size: 12px;
	font-weight: 800;
	gap: 12px;
	letter-spacing: 0.05em;
	margin-block: 0 16px;
	text-transform: uppercase;
}

.home-eyebrow::before,
.home-eyebrow::after {
	background: var(--pg-color-border);
	content: "";
	display: inline-block;
	height: 1px;
	width: 36px;
}

/* Home hero — full-bleed skyline, navy scrim, white type, linked service strip.
   All rules here are hero-scoped; the shared .home-professional__visual rules
   further down are kept verbatim. */
/* Home hero — cinematic skyline background with a clean service slider. */
.home-hero {
	background: var(--pg-color-navy);
	color: var(--pg-color-white);
	display: flex;
	flex-direction: column;
	isolation: isolate;
	min-height: min(88vh, 760px);
	overflow: hidden;
	position: relative;
}

.home-hero__media {
	--home-hero-parallax-y: 0px;
	inset: -8% 0;
	position: absolute;
	transform: translate3d(0, var(--home-hero-parallax-y), 0);
	z-index: 0;
	will-change: transform;
}

.home-hero__img {
	display: block;
	filter: saturate(1.07) contrast(1.04);
	height: 100%;
	object-fit: cover;
	object-position: 58% 42%;
	transform-origin: 58% 42%;
	transform: translate3d(-1.4%, -0.7%, 0) scale(1.1);
	width: 100%;
	will-change: transform;
}

.home-hero__scrim {
	background:
		linear-gradient(94deg, rgba(11, 28, 48, 0.94) 0%, rgba(11, 28, 48, 0.78) 40%, rgba(11, 28, 48, 0.34) 72%, rgba(11, 28, 48, 0.12) 100%),
		linear-gradient(180deg, rgba(11, 28, 48, 0.12) 0%, rgba(11, 28, 48, 0) 34%, rgba(11, 28, 48, 0.55) 100%);
	inset: 0;
	position: absolute;
	z-index: 1;
}

.home-hero__inner {
	align-items: center;
	display: flex;
	flex: 1 1 auto;
	justify-content: center;
	padding-block: clamp(72px, 11vw, 128px);
	position: relative;
	z-index: 2;
}

.home-hero__content {
	text-align: center;
	width: min(100%, 680px);
}

/* Fixed Ytera Paraguay brand mark — a light monogram identity cue, present on
   every slide, never the focus of the composition. */
/* Ytera Paraguay brand mark — the round emblem set on the right of the
   composition. A soft halo and a lifted shadow blend it into the scene
   instead of letting it read as a pasted sticker. */
.home-hero__brandmark {
	align-items: center;
	aspect-ratio: 1;
	display: flex;
	justify-content: center;
	margin: 0 auto clamp(18px, 2.4vw, 28px);
	pointer-events: none;
	position: relative;
	width: clamp(74px, 6.6vw, 96px);
}

.home-hero__brandmark::before {
	background: radial-gradient(circle at 50% 46%, rgba(255, 255, 255, 0.18), rgba(255, 255, 255, 0.05) 56%, rgba(255, 255, 255, 0) 74%);
	border-radius: 50%;
	content: "";
	inset: -20%;
	position: absolute;
	z-index: -1;
}

.home-hero__brandmark-img {
	border-radius: 50%;
	display: block;
	filter: drop-shadow(0 14px 30px rgba(6, 17, 33, 0.5));
	height: 100%;
	margin-inline: auto;
	object-fit: cover;
	width: 100%;
}

.home-hero .button--outline-light {
	border-color: rgba(255, 255, 255, 0.85);
}

.home-hero .home-eyebrow {
	color: #e3c79a;
	justify-content: center;
	margin-inline: auto;
	min-height: 24px;
	text-align: center;
}

.home-hero .home-eyebrow::before,
.home-hero .home-eyebrow::after {
	background: rgba(227, 199, 154, 0.5);
}

.home-hero__slide-lead {
	color: var(--pg-color-white);
	font-family: var(--pg-font-heading);
	font-size: clamp(19px, 1.9vw, 26px);
	line-height: 1.3;
	margin: 0 auto 14px;
	max-width: 34ch;
}

.home-hero__headline {
	align-items: flex-start;
	display: flex;
	justify-content: center;
	margin-block-end: 14px;
	/* Reserve two title lines so changing slide never shifts the layout;
	   short titles stay close to the eyebrow. */
	min-height: calc(2.12 * clamp(38px, 5.6vw, 64px));
	transition: opacity 260ms ease;
}

.home-hero h1 {
	color: var(--pg-color-white);
	font-size: clamp(38px, 5.6vw, 64px);
	letter-spacing: -1.5px;
	line-height: 1.05;
	margin: 0 auto;
	max-width: 19ch;
	text-wrap: balance;
}

.home-hero__slides {
	display: grid;
}

.home-hero__slide {
	grid-area: 1 / 1;
	opacity: 0;
	transition: opacity 460ms ease, transform 460ms ease;
	transform: translateY(12px);
	visibility: hidden;
}

.home-hero__slide.is-active {
	opacity: 1;
	transform: none;
	visibility: visible;
}

.home-hero__slide-text {
	color: rgba(255, 255, 255, 0.85);
	font-size: clamp(16px, 1.35vw, 19px);
	line-height: 1.65;
	margin-inline: auto;
	max-width: 52ch;
}

/* Headline swap: brief fade while JS updates the H1 text. */
.home-hero[data-hero-slider].is-swapping .home-hero__headline {
	opacity: 0.15;
	transition: opacity 180ms ease;
}

/* No JS: only the first slide renders; the slider chrome is hidden. */
.home-hero:not(.is-hero-ready) .home-hero__slider-controls {
	display: none;
}

.home-hero:not(.is-hero-ready) .home-hero__slide {
	transition: none;
}

.home-actions {
	display: flex;
	flex-wrap: wrap;
	gap: 14px;
	justify-content: center;
	margin-block: 28px 18px;
}

.home-actions--center {
	justify-content: center;
}

.home-hero__support {
	color: rgba(255, 255, 255, 0.72);
	font-size: 13px;
	font-weight: 600;
	margin: 0;
}

/* Minimal slider controls: discreet arrows + small dots. */
.home-hero__slider-controls {
	align-items: center;
	display: flex;
	gap: 16px;
	justify-content: center;
	margin-block-start: 26px;
}

.home-hero__arrow {
	align-items: center;
	appearance: none;
	background: transparent;
	border: 1px solid rgba(255, 255, 255, 0.36);
	border-radius: 50%;
	color: var(--pg-color-white);
	cursor: pointer;
	display: inline-flex;
	font-size: 20px;
	height: 38px;
	justify-content: center;
	line-height: 1;
	transition: background 180ms ease, border-color 180ms ease;
	width: 38px;
}

.home-hero__arrow:hover,
.home-hero__arrow:focus-visible {
	background: rgba(255, 255, 255, 0.14);
	border-color: var(--pg-color-white);
}

.home-hero__dots {
	display: flex;
	gap: 9px;
}

.home-hero__dot {
	appearance: none;
	background: rgba(255, 255, 255, 0.32);
	border: 0;
	border-radius: 50%;
	cursor: pointer;
	height: 7px;
	padding: 0;
	transition: background 180ms ease, width 180ms ease;
	width: 7px;
}

.home-hero__dot:hover,
.home-hero__dot:focus-visible {
	background: rgba(255, 255, 255, 0.7);
}

.home-hero__dot.is-active {
	background: #e3c79a;
	border-radius: 4px;
	width: 22px;
}

@media (prefers-reduced-motion: reduce) {
	.home-hero__media,
	.home-hero__img {
		animation: none;
		transform: none;
	}
}

/* Intro band directly under the hero — reinstates the brand line as an H2. */
.home-hero-intro {
	background: var(--pg-color-surface);
	border-bottom: 1px solid var(--pg-color-border-soft);
	padding-block: clamp(48px, 7vw, 88px);
}

.home-hero-intro__inner {
	display: grid;
	gap: 18px;
	max-width: 840px;
}

.home-hero-intro__eyebrow {
	color: var(--pg-color-gold-text);
	font-size: 12px;
	font-weight: 800;
	letter-spacing: 0.05em;
	margin: 0;
	text-transform: uppercase;
}

.home-hero-intro h2 {
	color: var(--pg-color-navy);
	font-family: var(--pg-font-heading);
	font-size: clamp(28px, 3.6vw, 44px);
	letter-spacing: -0.01em;
	line-height: 1.12;
	margin: 0;
	max-width: 20ch;
}

.home-hero-intro p {
	color: #43474e;
	font-size: clamp(16px, 1.3vw, 18px);
	line-height: 1.7;
	margin: 0;
	max-width: 66ch;
}

.home-hero-intro__actions {
	justify-content: flex-start;
	margin-block: 10px 0;
}

.home-hero-intro__actions .button {
	opacity: 1;
	transform: none;
}

.home-hero__portrait,
.home-professional__visual {
	aspect-ratio: 4 / 5;
	border: 4px solid var(--pg-color-white);
	border-radius: var(--pg-radius);
	box-sizing: border-box;
	box-shadow: 0 28px 60px rgba(16, 47, 85, 0.18);
	display: block;
	min-height: 360px;
	overflow: hidden;
	position: relative;
	width: 100%;
}

.home-professional__visual {
	aspect-ratio: 4 / 3;
	min-height: 320px;
}

.home-hero__portrait::after,
.home-professional__visual::after {
	background: linear-gradient(180deg, rgba(16, 47, 85, 0), rgba(16, 47, 85, 0.24));
	content: "";
	inset: 0;
	pointer-events: none;
	position: absolute;
}

.home-hero__portrait img,
.home-professional__visual img {
	display: block;
	height: 100%;
	object-fit: cover;
	width: 100%;
}

.home-trust {
	background: var(--pg-color-surface-muted);
	border-bottom: 1px solid var(--pg-color-border-soft);
	padding-block: 28px;
}

.home-trust__list {
	display: grid;
	gap: 18px;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	list-style: none;
	margin: 0;
	padding: 0;
	text-align: center;
}

.home-trust__list li {
	align-items: center;
	color: var(--pg-color-navy);
	display: grid;
	font-size: 13px;
	font-weight: 800;
	gap: 8px;
	justify-items: center;
	letter-spacing: 0.03em;
}

.home-icon,
.home-card__mark {
	border: 1px solid var(--pg-color-gold);
	border-radius: 50%;
	display: inline-block;
	height: 22px;
	position: relative;
	width: 22px;
}

.home-icon::after,
.home-card__mark::after {
	background: var(--pg-color-gold);
	border-radius: 50%;
	content: "";
	height: 6px;
	inset: 50%;
	position: absolute;
	transform: translate(-50%, -50%);
	width: 6px;
}

.home-card-grid,
.home-service-grid,
.home-package-grid {
	display: grid;
	gap: var(--pg-card-gap);
}

.home-card,
.home-service-card,
.home-package,
.home-article,
.home-guide {
	background: var(--pg-color-white);
	border: 1px solid var(--pg-color-border-soft);
	border-radius: var(--pg-radius);
	padding: 28px;
}

.home-card h3,
.home-service-card h3,
.home-package h3,
.home-guide h3,
.home-article h3 {
	color: var(--pg-color-navy);
	font-size: 22px;
	margin-block: 16px 12px;
}

.home-card p,
.home-service-card p,
.home-package p,
.home-guide p,
.home-article p {
	color: #43474e;
	font-size: 14px;
	margin: 0;
}

.home-services,
.home-packages,
.home-faq {
	background: var(--pg-color-surface);
}

.home-first-meeting {
	background: var(--pg-color-white);
}

.home-first-meeting__grid {
	align-items: center;
	display: grid;
	gap: clamp(32px, 5vw, 72px);
}

.home-first-meeting__content {
	max-width: 660px;
}

.home-first-meeting__content h2 {
	color: var(--pg-color-navy);
	font-family: var(--pg-font-heading);
	font-size: clamp(32px, 4.2vw, 52px);
	letter-spacing: 0;
	line-height: 1.08;
	margin-block: 0 18px;
	max-width: 13ch;
}

.home-first-meeting__content p:not(.home-eyebrow) {
	color: #43474e;
	font-size: clamp(16px, 1.25vw, 18px);
	line-height: 1.72;
	margin: 0;
	max-width: 64ch;
}

.home-first-meeting__actions {
	justify-content: flex-start;
	margin-block: 28px 0;
}

.home-first-meeting__steps {
	counter-reset: first-meeting;
	display: grid;
	gap: 14px;
	list-style: none;
	margin: 0;
	padding: 0;
}

.home-first-meeting__step {
	align-items: flex-start;
	background: var(--pg-color-surface-muted);
	border: 1px solid var(--pg-color-border-soft);
	border-radius: 8px;
	display: grid;
	gap: 16px;
	grid-template-columns: auto minmax(0, 1fr);
	padding: 22px;
	position: relative;
	transition: border-color 220ms ease, box-shadow 220ms ease, transform 220ms ease;
}

.home-first-meeting__step-icon {
	align-items: center;
	background: var(--pg-color-white);
	border: 1px solid rgba(185, 151, 85, 0.36);
	border-radius: 999px;
	color: var(--pg-color-gold-text);
	display: inline-flex;
	height: 44px;
	justify-content: center;
	width: 44px;
}

.home-first-meeting__step-icon svg {
	display: block;
	fill: none;
	height: 23px;
	stroke: currentColor;
	stroke-linecap: round;
	stroke-linejoin: round;
	stroke-width: 1.7;
	width: 23px;
}

.home-first-meeting__step-copy {
	display: grid;
	gap: 6px;
}

.home-first-meeting__step-number {
	color: var(--pg-color-gold-text);
	font-size: 12px;
	font-weight: 800;
	letter-spacing: 0.05em;
	line-height: 1;
}

.home-first-meeting__step-copy strong {
	color: var(--pg-color-navy);
	font-size: 17px;
	line-height: 1.25;
}

.home-first-meeting__step-copy span:last-child {
	color: #555b63;
	font-size: 14px;
	line-height: 1.55;
}

.home-service-grid {
	grid-template-columns: 1fr;
}

.home-service-card {
	background: linear-gradient(180deg, var(--pg-color-surface-muted) 0, var(--pg-color-white) 188px);
	display: flex;
	flex-direction: column;
	min-height: 188px;
	overflow: hidden;
	padding: 0;
	transition: border-color 220ms ease, box-shadow 220ms ease, transform 220ms ease;
}

.home-service-card__image {
	aspect-ratio: 4 / 3;
	border-bottom: 1px solid var(--pg-color-border-soft);
	display: block;
	height: auto;
	object-fit: cover;
	object-position: center;
	opacity: 0.94;
	transition: opacity 220ms ease, transform 520ms cubic-bezier(0.16, 1, 0.3, 1);
	width: 100%;
}

@media (hover: hover) and (pointer: fine) {
	.home-first-meeting__step:hover,
	.home-service-card:hover {
		border-color: rgba(185, 151, 85, 0.5);
		box-shadow: 0 18px 42px rgba(16, 47, 85, 0.1);
		transform: translateY(-4px);
	}

	.home-service-card:hover .home-service-card__image {
		opacity: 1;
		transform: scale(1.035);
	}
}

.home-service-card > .pg-icon,
.home-service-card h3,
.home-service-card p {
	margin-inline: 24px;
}

.home-service-card p {
	margin-block-end: 24px;
}

.home-service-card > .pg-icon {
	margin-block-start: 24px;
}

.home-service-card p {
	margin-block-end: 24px;
}

.home-package > .pg-icon,
.home-article > .pg-icon {
	margin-block-end: 8px;
}

.home-professional {
	background: var(--pg-color-navy);
	color: var(--pg-color-white);
}

.home-professional__grid {
	align-items: center;
	display: grid;
	gap: 48px;
}

.home-professional h2 {
	color: var(--pg-color-white);
}

.home-professional p {
	color: rgba(255, 255, 255, 0.82);
}

.home-check-list,
.home-benefits__list,
.home-package ul {
	display: grid;
	gap: 12px;
	list-style: none;
	margin: 24px 0 0;
	padding: 0;
}

.home-check-list li,
.home-benefits__list li,
.home-package li {
	padding-inline-start: 28px;
	position: relative;
}

.home-check-list li::before,
.home-benefits__list li::before,
.home-package li::before {
	color: var(--pg-color-gold);
	content: "•";
	font-size: 22px;
	inset-block-start: -2px;
	inset-inline-start: 0;
	position: absolute;
}

/* Mobile: compact vertical timeline (unchanged pattern — a 3-column snake
   would feel cramped below 768px, so narrow screens keep a single reading line). */
.home-process__list {
	counter-reset: process;
	display: grid;
	gap: 0;
	list-style: none;
	margin: 0 auto;
	max-width: 760px;
	padding: 0;
	position: relative;
}

.home-process__list::before {
	background: var(--pg-color-border);
	content: "";
	inset-block: 18px;
	inset-inline-start: 23px;
	position: absolute;
	width: 1px;
}

.home-process__list li {
	align-items: center;
	display: grid;
	gap: 18px;
	grid-template-columns: 48px 1fr;
	padding-block: 18px;
	position: relative;
}

.home-process__list span {
	align-items: center;
	background: var(--pg-color-navy);
	border-radius: var(--pg-radius);
	color: var(--pg-color-white);
	display: inline-flex;
	font-size: 12px;
	font-weight: 800;
	height: 48px;
	justify-content: center;
	position: relative;
	width: 48px;
	z-index: 1;
}

.home-process__list strong {
	color: var(--pg-color-navy);
	font-family: var(--pg-font-heading);
	font-size: 24px;
}

/* Section standfirst under the heading — spacing only, colour/size come from
   the shared .home-section__header p rule. */
.home-process__subtitle {
	margin-block-start: 0;
}

/* Per-step description: a mobile-only aid. Hidden from tablet up, where the
   serpentine route reads on its own and extra copy would break its geometry. */
.home-process__desc {
	display: none;
}

/* Mobile (<768px): the section reads as a short stack of premium step cards
   instead of a cramped timeline — big quiet numerals, a clear title and one
   line of plain-language guidance per step. */
@media (max-width: 767px) {
	.home-process .home-section__header {
		margin-block-end: 28px;
	}

	.home-process__list {
		display: flex;
		flex-direction: column;
		gap: 14px;
		max-width: none;
	}

	.home-process__list::before {
		content: none;
	}

	.home-process__list li {
		align-items: center;
		background: var(--pg-color-white);
		border: 1px solid var(--pg-color-border-soft);
		border-radius: 12px;
		box-shadow: 0 1px 2px rgba(16, 47, 85, 0.05);
		column-gap: 16px;
		display: grid;
		grid-template-columns: auto 1fr;
		padding: 18px 20px;
	}

	.home-process__list span {
		align-self: center;
		background: none;
		border-radius: 0;
		color: var(--pg-color-gold-text);
		font-family: var(--pg-font-heading);
		font-size: 32px;
		font-weight: 800;
		height: auto;
		line-height: 1;
		width: auto;
	}

	.home-process__list .pg-icon {
		display: none;
	}

	.home-process__list strong {
		align-self: center;
		font-size: 19px;
		line-height: 1.3;
	}

	.home-process__list .home-process__desc {
		color: #43474e;
		display: block;
		font-size: 16px;
		grid-column: 2;
		line-height: 1.6;
		margin-block: 8px 0;
	}
}

/* Tablet and up: the timeline becomes a route — six stops laid out as a
   serpentine (boustrophedon) path, so the section reads in two or three
   short rows instead of one long column. The gold line is the through-line
   of the whole site ("un percorso"), traced here literally between stops. */
@media (min-width: 768px) {
	.home-process__list {
		--process-gap-x: 28px;
		--process-gap-y: 52px;
		gap: var(--process-gap-y) var(--process-gap-x);
		grid-template-columns: repeat(2, minmax(0, 1fr));
		max-width: 560px;
	}

	.home-process__list::before {
		content: none;
	}

	.home-process__list li {
		background: var(--pg-color-white);
		border: 1px solid var(--pg-color-border-soft);
		border-radius: var(--pg-radius);
		display: flex;
		flex-direction: column;
		align-items: center;
		gap: 12px;
		padding: 22px 16px;
		text-align: center;
	}

	.home-process__list strong {
		font-size: 16px;
	}

	.home-process__list li:nth-child(1) { grid-column: 1; grid-row: 1; }
	.home-process__list li:nth-child(2) { grid-column: 2; grid-row: 1; }
	.home-process__list li:nth-child(3) { grid-column: 2; grid-row: 2; }
	.home-process__list li:nth-child(4) { grid-column: 1; grid-row: 2; }
	.home-process__list li:nth-child(5) { grid-column: 1; grid-row: 3; }
	.home-process__list li:nth-child(6) { grid-column: 2; grid-row: 3; }

	/* right */
	.home-process__list li:nth-child(1)::after,
	.home-process__list li:nth-child(5)::after {
		content: "";
		position: absolute;
		top: 50%;
		right: calc(-1 * var(--process-gap-x));
		width: var(--process-gap-x);
		height: 2px;
		background: var(--pg-color-gold);
		transform: translateY(-50%);
	}

	/* left */
	.home-process__list li:nth-child(3)::after {
		content: "";
		position: absolute;
		top: 50%;
		left: calc(-1 * var(--process-gap-x));
		width: var(--process-gap-x);
		height: 2px;
		background: var(--pg-color-gold);
		transform: translateY(-50%);
	}

	/* down */
	.home-process__list li:nth-child(2)::after,
	.home-process__list li:nth-child(4)::after {
		content: "";
		position: absolute;
		left: 50%;
		bottom: calc(-1 * var(--process-gap-y));
		width: 2px;
		height: var(--process-gap-y);
		background: var(--pg-color-gold);
		transform: translateX(-50%);
	}
}

/* Desktop: three columns, two rows — the shortest possible route. */
@media (min-width: 1024px) {
	.home-process__list {
		--process-gap-x: 32px;
		--process-gap-y: 56px;
		grid-template-columns: repeat(3, minmax(0, 1fr));
		max-width: 980px;
	}

	.home-process__list .pg-icon {
		width: 26px;
		height: 26px;
	}

	.home-process__list li:nth-child(1) { grid-column: 1; grid-row: 1; }
	.home-process__list li:nth-child(2) { grid-column: 2; grid-row: 1; }
	.home-process__list li:nth-child(3) { grid-column: 3; grid-row: 1; }
	.home-process__list li:nth-child(4) { grid-column: 3; grid-row: 2; }
	.home-process__list li:nth-child(5) { grid-column: 2; grid-row: 2; }
	.home-process__list li:nth-child(6) { grid-column: 1; grid-row: 2; }

	/* right */
	.home-process__list li:nth-child(1)::after,
	.home-process__list li:nth-child(2)::after {
		content: "";
		position: absolute;
		top: 50%;
		right: calc(-1 * var(--process-gap-x));
		left: auto;
		bottom: auto;
		width: var(--process-gap-x);
		height: 2px;
		background: var(--pg-color-gold);
		transform: translateY(-50%);
	}

	/* left */
	.home-process__list li:nth-child(4)::after,
	.home-process__list li:nth-child(5)::after {
		content: "";
		position: absolute;
		top: 50%;
		left: calc(-1 * var(--process-gap-x));
		right: auto;
		bottom: auto;
		width: var(--process-gap-x);
		height: 2px;
		background: var(--pg-color-gold);
		transform: translateY(-50%);
	}

	/* down */
	.home-process__list li:nth-child(3)::after {
		content: "";
		position: absolute;
		left: 50%;
		top: auto;
		right: auto;
		bottom: calc(-1 * var(--process-gap-y));
		width: 2px;
		height: var(--process-gap-y);
		background: var(--pg-color-gold);
		transform: translateX(-50%);
	}
}

.home-package {
	display: flex;
	flex-direction: column;
	min-height: 420px;
	position: relative;
}

.home-package.is-featured {
	background: var(--pg-color-navy);
	border-color: var(--pg-color-navy);
	box-shadow: 0 24px 48px rgba(16, 47, 85, 0.18);
	color: var(--pg-color-white);
	transform: translateY(-10px);
}

.home-package.is-featured h3,
.home-package.is-featured p {
	color: var(--pg-color-white);
}

.home-package__badge {
	background: var(--pg-color-red);
	border-radius: var(--pg-radius);
	color: var(--pg-color-white);
	font-size: 12px;
	font-weight: 800;
	inset-block-start: -14px;
	inset-inline-start: 28px;
	letter-spacing: 0.05em;
	padding: 6px 10px;
	position: absolute;
	text-transform: uppercase;
}

.home-package .button {
	margin-block-start: auto;
}

.home-benefits {
	background: var(--pg-color-surface-muted);
}

.home-benefits__grid {
	display: grid;
	gap: 40px;
}

.home-benefits__list {
	margin: 0;
}

.home-benefits__list li {
	background: var(--pg-color-white);
	border: 1px solid var(--pg-color-border-soft);
	border-radius: var(--pg-radius);
	padding: 18px 18px 18px 46px;
}

.home-benefits__list li::before {
	inset-block-start: 14px;
	inset-inline-start: 22px;
}

.home-resources__grid {
	display: grid;
	gap: 24px;
}

.home-guide {
	background: var(--pg-color-navy);
	color: var(--pg-color-white);
	min-height: 280px;
	overflow: hidden;
	padding: 0;
}

.home-guide__image {
	aspect-ratio: 16 / 9;
	display: block;
	height: auto;
	object-fit: cover;
	opacity: 0.86;
	width: 100%;
}

.home-guide .home-eyebrow,
.home-guide h3,
.home-guide .button {
	margin-inline: 28px;
}

.home-guide .home-eyebrow {
	color: #f3d489;
	margin-block-start: 28px;
}

.home-guide .home-eyebrow::before,
.home-guide .home-eyebrow::after {
	background: rgba(243, 212, 137, 0.78);
}

.home-guide h3 {
	color: var(--pg-color-white);
	font-size: 30px;
}

.home-guide .button--outline {
	background: var(--pg-color-gold);
	border-color: var(--pg-color-gold);
	color: var(--pg-color-navy);
}

.home-guide .button--outline:hover,
.home-guide .button--outline:focus-visible {
	background: var(--pg-color-red);
	border-color: var(--pg-color-red);
	color: var(--pg-color-white);
}

.home-guide .button {
	margin-block-end: 28px;
}

.home-article-list {
	display: grid;
	gap: 16px;
}

.home-article a {
	color: var(--pg-color-red);
	font-size: 13px;
	font-weight: 800;
	text-decoration: none;
	text-transform: uppercase;
}

.home-faq__list {
	display: grid;
	gap: 12px;
	margin-inline: auto;
	max-width: 860px;
}

.home-faq__item {
	background: var(--pg-color-white);
	border: 1px solid var(--pg-color-border-soft);
	border-radius: var(--pg-radius);
}

.home-faq__item h3 {
	font-family: var(--pg-font-body);
	font-size: 16px;
	margin: 0;
}

.home-faq__button {
	align-items: center;
	background: transparent;
	border: 0;
	color: var(--pg-color-navy);
	cursor: pointer;
	display: flex;
	font: inherit;
	font-weight: 800;
	gap: 20px;
	justify-content: space-between;
	padding: 20px;
	text-align: left;
	width: 100%;
}

.home-faq__icon {
	border: 1px solid var(--pg-color-gold);
	border-radius: 50%;
	flex: 0 0 auto;
	height: 24px;
	position: relative;
	width: 24px;
}

.home-faq__icon::before,
.home-faq__icon::after {
	background: var(--pg-color-navy);
	content: "";
	inset: 50%;
	position: absolute;
	transform: translate(-50%, -50%);
}

.home-faq__icon::before {
	height: 2px;
	width: 10px;
}

.home-faq__icon::after {
	height: 10px;
	width: 2px;
}

.home-faq__button[aria-expanded="true"] .home-faq__icon::after {
	display: none;
}

.home-faq__panel {
	color: #43474e;
	padding: 0 20px 20px;
}

.home-faq__panel p {
	margin: 0;
}

.home-final-cta {
	background: var(--pg-color-surface);
}

.home-final-cta__box {
	background:
		linear-gradient(135deg, rgba(16, 47, 85, 0.98), rgba(16, 47, 85, 0.9)),
		var(--pg-color-navy);
	border-radius: var(--pg-radius);
	color: var(--pg-color-white);
	margin-inline: auto;
	max-width: 980px;
	padding: 48px 24px;
	text-align: center;
}

.home-final-cta__box h2,
.home-final-cta__box p {
	color: var(--pg-color-white);
	margin-inline: auto;
	max-width: 760px;
}

.about-page {
	padding-block: 0;
}

.about-hero {
	padding-block: 96px 72px;
	text-align: center;
}

.about-hero .container {
	max-width: 980px;
}

.about-eyebrow {
	align-items: center;
	color: #43474e;
	display: inline-flex;
	font-size: 12px;
	font-weight: 700;
	gap: 16px;
	letter-spacing: 0.2em;
	margin-block: 0 28px;
	text-transform: uppercase;
}

.about-eyebrow::before,
.about-eyebrow::after {
	background: var(--pg-color-border-soft);
	content: "";
	height: 1px;
	width: 64px;
}

.about-hero h1 {
	font-size: clamp(38px, 5vw, 60px);
	letter-spacing: -2px;
	margin-inline: auto;
	max-width: 900px;
}

.about-hero p {
	color: #43474e;
	font-size: 18px;
	line-height: 1.7;
	margin-inline: auto;
	max-width: 760px;
}

.about-profile,
.about-approach,
.about-areas,
.about-final-cta {
	padding-block: 88px;
}

.about-profile__grid,
.about-approach__grid {
	align-items: center;
	display: grid;
	gap: 48px;
}

.about-profile__media {
	position: relative;
}

.about-profile__portrait,
.about-visual-card {
	border: 1px solid var(--pg-color-border);
	border-radius: var(--pg-radius);
	display: block;
	margin: 0;
	overflow: hidden;
	position: relative;
}

.about-profile__portrait {
	aspect-ratio: 4 / 5;
	min-height: 420px;
}

.about-profile__portrait img {
	display: block;
	height: 100%;
	inset: 0;
	object-fit: cover;
	position: absolute;
	width: 100%;
}

.about-visual-card img {
	display: block;
	height: 100%;
	object-fit: cover;
	width: 100%;
}

.about-profile__portrait--official img {
	object-position: center top;
}

.about-profile__card {
	background: var(--pg-color-white);
	border: 1px solid var(--pg-color-border-soft);
	border-radius: var(--pg-radius);
	box-shadow: 0 18px 40px rgba(16, 47, 85, 0.12);
	display: grid;
	gap: 10px;
	margin: -54px 20px 0;
	padding: 24px;
	position: relative;
}

.about-profile__card strong {
	color: var(--pg-color-red);
	font-family: var(--pg-font-heading);
	font-size: 20px;
}

.about-profile__card span {
	border-bottom: 1px solid var(--pg-color-border-soft);
	color: #43474e;
	font-size: 12px;
	font-weight: 800;
	letter-spacing: 0.05em;
	padding-bottom: 12px;
	text-transform: uppercase;
}

.about-profile__card em {
	color: #43474e;
	font-size: 13px;
}

.about-profile__quote {
	color: #43474e;
	display: grid;
	font-size: 13px;
	font-style: italic;
	gap: 12px;
	line-height: 1.65;
}

.about-profile__quote p {
	margin: 0;
}

.about-profile__content h2,
.about-approach h2,
.about-section-header h2,
.about-final-cta h2 {
	font-size: clamp(30px, 4vw, 48px);
	letter-spacing: 0;
}

.about-approach__content > .about-label,
.about-approach__content > h2,
.about-approach__content > p {
	margin-inline: auto;
	max-width: 780px;
	text-align: center;
}

.about-profile__content p,
.about-approach__content p,
.about-section-header p,
.about-final-cta p {
	color: #43474e;
	font-size: 16px;
	line-height: 1.7;
}

.about-profile__meta {
	border-top: 1px solid var(--pg-color-border-soft);
	display: grid;
	gap: 20px;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	margin-top: 32px;
	padding-top: 28px;
}

.about-profile__meta strong,
.about-profile__meta span {
	display: block;
}

.about-profile__meta strong {
	color: var(--pg-color-navy);
	font-size: 12px;
	font-weight: 800;
	letter-spacing: 0.05em;
	text-transform: uppercase;
}

.about-profile__meta span {
	color: #43474e;
	font-size: 13px;
	margin-top: 6px;
}

.about-values {
	background: var(--pg-color-surface-muted);
	padding-block: var(--pg-section-space);
}

.about-section-header {
	margin-inline: auto;
	margin-block-end: 48px;
	max-width: var(--pg-readable-width);
	text-align: center;
}

.about-values__grid {
	display: grid;
	gap: var(--pg-card-gap);
}

.about-value-card {
	background: var(--pg-color-white);
	border: 1px solid var(--pg-color-border-soft);
	border-radius: var(--pg-radius);
	display: flex;
	flex-direction: column;
	min-height: 240px;
	padding: 32px;
}

.about-mark {
	border: 1px solid var(--pg-color-gold);
	border-radius: 50%;
	display: inline-block;
	height: 28px;
	margin-bottom: 24px;
	position: relative;
	width: 28px;
}

.about-mark::after {
	background: var(--pg-color-gold);
	border-radius: 50%;
	content: "";
	height: 8px;
	inset: 50%;
	position: absolute;
	transform: translate(-50%, -50%);
	width: 8px;
}

.about-value-card h3 {
	font-size: 24px;
	margin-bottom: 14px;
}

.about-value-card p {
	color: #43474e;
	font-size: 14px;
	margin: 0;
}

.about-label {
	color: var(--pg-color-red);
	font-size: 12px;
	font-weight: 800;
	letter-spacing: 0.05em;
	margin-bottom: 14px;
	text-transform: uppercase;
}

.about-approach__steps {
	display: grid;
	gap: 22px;
	list-style: none;
	margin: 34px 0 0;
	padding: 0;
}

.about-approach__steps li {
	align-items: flex-start;
	display: grid;
	gap: 16px;
	grid-template-columns: 44px 1fr;
}

.about-approach__steps span {
	align-items: center;
	background: var(--pg-color-navy);
	border-radius: var(--pg-radius);
	color: var(--pg-color-white);
	display: flex;
	font-size: 12px;
	font-weight: 800;
	height: 44px;
	justify-content: center;
	width: 44px;
}

.about-approach__steps strong {
	color: var(--pg-color-navy);
	font-size: 16px;
}

.about-approach__steps p {
	color: var(--pg-color-text-muted, #5b6472);
	font-size: 14px;
	line-height: 1.5;
	margin: 4px 0 0;
}

/* Desktop: the steps column is wide enough to trace the same serpentine
   route used on the home page, so "Come lavoriamo" reads in four short
   rows instead of one long column of seven. */
@media (min-width: 1024px) {
	.about-approach__steps {
		--approach-gap-x: 24px;
		--approach-gap-y: 40px;
		gap: var(--approach-gap-y) var(--approach-gap-x);
		grid-template-columns: repeat(2, minmax(0, 1fr));
		margin-top: 40px;
	}

	.about-approach__steps li {
		background: var(--pg-color-white);
		border: 1px solid var(--pg-color-border-soft);
		border-radius: var(--pg-radius);
		display: flex;
		flex-direction: column;
		align-items: flex-start;
		gap: 8px;
		grid-template-columns: none;
		padding: 18px 16px;
		position: relative;
	}

	.about-approach__steps li:nth-child(1) { grid-column: 1; grid-row: 1; }
	.about-approach__steps li:nth-child(2) { grid-column: 2; grid-row: 1; }
	.about-approach__steps li:nth-child(3) { grid-column: 2; grid-row: 2; }
	.about-approach__steps li:nth-child(4) { grid-column: 1; grid-row: 2; }
	.about-approach__steps li:nth-child(5) { grid-column: 1; grid-row: 3; }
	.about-approach__steps li:nth-child(6) { grid-column: 2; grid-row: 3; }
	.about-approach__steps li:nth-child(7) { grid-column: 2; grid-row: 4; }

	/* right */
	.about-approach__steps li:nth-child(1)::after,
	.about-approach__steps li:nth-child(5)::after {
		content: "";
		position: absolute;
		top: 40px;
		right: calc(-1 * var(--approach-gap-x));
		width: var(--approach-gap-x);
		height: 2px;
		background: var(--pg-color-gold);
	}

	/* left */
	.about-approach__steps li:nth-child(3)::after {
		content: "";
		position: absolute;
		top: 40px;
		left: calc(-1 * var(--approach-gap-x));
		width: var(--approach-gap-x);
		height: 2px;
		background: var(--pg-color-gold);
	}

	/* down */
	.about-approach__steps li:nth-child(2)::after,
	.about-approach__steps li:nth-child(4)::after,
	.about-approach__steps li:nth-child(6)::after {
		content: "";
		position: absolute;
		left: 38px;
		bottom: calc(-1 * var(--approach-gap-y));
		width: 2px;
		height: var(--approach-gap-y);
		background: var(--pg-color-gold);
	}
}

.about-approach__visuals {
	display: grid;
	gap: 18px;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	min-width: 0;
	width: 100%;
}

.about-visual-card {
	aspect-ratio: 4 / 3;
	min-height: 180px;
	min-width: 0;
	width: 100%;
}

.about-visual-card--large {
	grid-row: span 2;
	min-height: 340px;
}

.about-areas {
	background: var(--pg-color-surface-muted);
}

.about-areas__list {
	display: grid;
	gap: 14px;
	grid-template-columns: 1fr;
	list-style: none;
	margin: 0;
	padding: 0;
}

.about-areas__list li {
	align-items: center;
	background: var(--pg-color-white);
	border: 1px solid var(--pg-color-border-soft);
	border-radius: var(--pg-radius);
	color: var(--pg-color-navy);
	display: flex;
	gap: 12px;
	font-weight: 800;
	padding: 18px 20px;
}

.about-final-cta {
	background: var(--pg-color-navy);
	color: var(--pg-color-white);
	text-align: center;
}

.about-final-cta__box {
	margin-inline: auto;
	max-width: 840px;
}

.about-final-cta h2,
.about-final-cta p {
	color: var(--pg-color-white);
}

.about-final-cta p {
	margin-inline: auto;
	max-width: 680px;
}

.about-final-cta .button {
	margin-top: 20px;
}

.services-page {
	padding-block: 0;
}

.services-hero {
	padding-block: 96px 72px;
	text-align: center;
}

.services-hero .container {
	max-width: 980px;
}

.services-eyebrow,
.services-label {
	color: var(--pg-color-gold-text);
	display: block;
	font-size: 12px;
	font-weight: 800;
	letter-spacing: 0.08em;
	margin-block: 0 16px;
	text-transform: uppercase;
}

.services-hero h1 {
	font-size: clamp(36px, 5vw, 58px);
	letter-spacing: -2px;
	margin-inline: auto;
	max-width: 940px;
}

.services-hero p {
	color: #43474e;
	font-size: 18px;
	line-height: 1.7;
	margin-inline: auto;
	max-width: 760px;
}

.services-hero .button {
	margin-top: 18px;
}

.services-divider {
	align-items: center;
	display: flex;
	gap: 22px;
	justify-content: center;
	margin-block: 24px;
}

.services-divider::before,
.services-divider::after {
	background: var(--pg-color-border-soft);
	content: "";
	height: 1px;
	width: 140px;
}

.services-divider span {
	border: 1px solid var(--pg-color-gold);
	border-radius: 50%;
	height: 18px;
	position: relative;
	width: 18px;
}

.services-divider span::after {
	background: var(--pg-color-gold);
	border-radius: 50%;
	content: "";
	height: 6px;
	inset: 50%;
	position: absolute;
	transform: translate(-50%, -50%);
	width: 6px;
}

.services-objectives,
.services-grid-section,
.services-method,
.services-final-cta {
	padding-block: var(--pg-section-space-compact);
}

.services-grid-section {
	padding-block-start: 52px;
}

.services-section-header {
	margin-inline: auto;
	margin-block-end: 40px;
	max-width: var(--pg-readable-width);
	text-align: center;
}

.services-section-header h2,
.services-continuous h2,
.services-final-cta h2 {
	font-size: clamp(30px, 4vw, 48px);
	letter-spacing: 0;
}

.services-objectives__grid {
	display: grid;
	gap: 24px;
}

.services-objective-card,
.service-overview-card {
	background: var(--pg-color-white);
	border: 1px solid var(--pg-color-border-soft);
	border-radius: var(--pg-radius);
	padding: 28px;
}

.services-objective-card h3 {
	font-size: 22px;
	margin-block: 18px 0;
}

.services-icon {
	color: var(--pg-color-navy);
	display: inline-flex;
	height: 34px;
	width: 34px;
}

.services-icon::before {
	content: none;
}

.services-group + .services-group {
	margin-top: 72px;
}

.services-category-heading {
	align-items: center;
	display: flex;
	gap: 24px;
	margin-bottom: 36px;
}

.services-category-heading h3 {
	font-size: clamp(30px, 4vw, 44px);
	margin: 0;
}

.services-category-heading h3 span {
	color: var(--pg-color-navy);
	font-family: var(--pg-font-heading);
	margin-right: 8px;
}

.services-category-heading i {
	background: var(--pg-color-border-soft);
	flex: 1;
	height: 1px;
}

.services-grid {
	display: grid;
	gap: var(--pg-card-gap);
}

.service-overview-card {
	display: flex;
	flex-direction: column;
	min-height: 320px;
	overflow: hidden;
	padding-top: 0;
	transition: box-shadow 180ms ease, transform 180ms ease, border-color 180ms ease;
}

.service-overview-card:hover,
.service-overview-card:focus-within {
	border-color: var(--pg-color-border);
	box-shadow: 0 18px 36px rgba(16, 47, 85, 0.1);
	transform: translateY(-4px);
}

.service-overview-card h4 {
	font-size: 24px;
	margin-block: 0 14px;
}

.service-overview-card p {
	color: #43474e;
	flex: 1;
	font-size: 15px;
	line-height: 1.65;
	margin: 0 0 24px;
}

.service-overview-card a {
	color: var(--pg-color-red);
	font-size: 12px;
	font-weight: 800;
	letter-spacing: 0.04em;
	margin-top: auto;
	text-decoration: none;
	text-transform: uppercase;
}

.service-overview-card a:hover,
.service-overview-card a:focus-visible {
	color: var(--pg-color-navy);
}

.service-overview-card:not(.service-overview-card--featured) .service-overview-card__image {
	border-radius: var(--pg-radius) var(--pg-radius) 0 0;
	margin: -1px -29px 28px;
	overflow: hidden;
	width: calc(100% + 58px);
}

.service-overview-card:not(.service-overview-card--featured) .service-overview-card__image img {
	aspect-ratio: 16 / 10;
	display: block;
	height: auto;
	object-fit: cover;
	width: 100%;
}

.service-overview-card .services-icon {
	align-self: center;
	justify-content: center;
	margin-bottom: 28px;
}

.service-overview-card:not(.service-overview-card--featured) h4 {
	text-align: center;
}

.service-overview-card--dark {
	background: var(--pg-color-navy);
	border-color: var(--pg-color-navy);
	color: var(--pg-color-white);
}

.service-overview-card--dark .services-icon,
.service-overview-card--dark h4,
.service-overview-card--dark p,
.service-overview-card--dark a {
	color: var(--pg-color-white);
}

.service-overview-card--dark .pg-icon {
	color: var(--pg-color-gold);
}

.service-overview-card--muted {
	background: #e5e2e1;
}

.service-overview-card--featured {
	color: var(--pg-color-white);
	justify-content: flex-end;
	min-height: 360px;
	position: relative;
}

.service-overview-card--featured::after {
	background: linear-gradient(180deg, rgba(16, 47, 85, 0.08), rgba(16, 47, 85, 0.88));
	content: "";
	inset: 0;
	position: absolute;
	z-index: 1;
}

.service-overview-card--featured .service-overview-card__image {
	inset: 0;
	margin: 0;
	position: absolute;
}

.service-overview-card--featured .service-overview-card__image img {
	height: 100%;
	object-fit: cover;
	width: 100%;
}

.service-overview-card--featured .services-icon,
.service-overview-card--featured h4,
.service-overview-card--featured p,
.service-overview-card--featured a {
	color: var(--pg-color-white);
	position: relative;
	z-index: 2;
}

.service-overview-card--featured .pg-icon {
	color: var(--pg-color-white);
}

.services-continuous {
	background: var(--pg-color-surface-muted);
	padding-block: 88px;
}

.services-continuous__grid {
	align-items: center;
	display: grid;
	gap: 48px;
}

.services-continuous__media {
	position: relative;
}

.services-continuous__visual {
	aspect-ratio: 4 / 5;
	border: 1px solid var(--pg-color-border);
	border-radius: var(--pg-radius);
	min-height: 320px;
	overflow: hidden;
}

.services-continuous__visual img {
	display: block;
	height: 100%;
	object-fit: cover;
	object-position: center top;
	width: 100%;
}

.services-continuous__badge {
	background: var(--pg-color-gold);
	bottom: -26px;
	color: var(--pg-color-white);
	display: grid;
	gap: 4px;
	padding: 22px 26px;
	position: absolute;
	right: -24px;
	width: min(220px, 70%);
}

.services-continuous__badge strong {
	font-family: var(--pg-font-heading);
	font-size: 30px;
	line-height: 1;
}

.services-continuous__badge span {
	font-size: 12px;
	font-weight: 800;
	line-height: 1.35;
}

.services-continuous__content p {
	color: #43474e;
	font-size: 17px;
	line-height: 1.7;
}

.services-check-list {
	display: grid;
	gap: 14px;
	list-style: none;
	margin: 28px 0 0;
	padding: 0;
}

.services-check-list li {
	align-items: flex-start;
	display: grid;
	gap: 12px;
	grid-template-columns: 22px 1fr;
}

.services-method__list {
	display: grid;
	gap: 18px;
	list-style: none;
	margin: 0 auto;
	max-width: 880px;
	padding: 0;
}

.services-method__list li {
	align-items: center;
	background: var(--pg-color-white);
	border: 1px solid var(--pg-color-border-soft);
	border-radius: var(--pg-radius);
	display: grid;
	gap: 18px;
	grid-template-columns: 48px 1fr;
	padding: 18px;
}

.services-method__list span {
	align-items: center;
	background: var(--pg-color-navy);
	border-radius: var(--pg-radius);
	color: var(--pg-color-white);
	display: flex;
	font-size: 12px;
	font-weight: 800;
	height: 48px;
	justify-content: center;
	width: 48px;
}

.services-method__list strong {
	color: var(--pg-color-navy);
	font-family: var(--pg-font-heading);
	font-size: 22px;
}

.services-final-cta {
	background: var(--pg-color-surface);
}

.services-final-cta__box {
	background: var(--pg-color-navy);
	border-radius: var(--pg-radius);
	color: var(--pg-color-white);
	margin-inline: auto;
	max-width: 980px;
	overflow: hidden;
	padding: 72px 24px;
	position: relative;
	text-align: center;
}

.services-final-cta__box::before,
.services-final-cta__box::after {
	background: rgba(255, 255, 255, 0.08);
	content: "";
	height: 120px;
	position: absolute;
	right: 36px;
	top: 0;
	transform: rotate(45deg);
	width: 18px;
}

.services-final-cta__box::after {
	right: 80px;
	top: -28px;
}

.services-final-cta h2,
.services-final-cta p {
	color: var(--pg-color-white);
	margin-inline: auto;
	max-width: 760px;
}

.services-final-cta p {
	line-height: 1.7;
}

.services-final-cta .button {
	margin-top: 20px;
}

.single-service-page {
	padding-block: 0;
}

.single-service-hero {
	background: var(--pg-color-surface-muted);
	padding-block: 48px 80px;
}

.single-service-hero__grid {
	align-items: center;
	display: grid;
	gap: 48px;
}

.single-service-label {
	color: var(--pg-color-gold-text);
	font-size: 12px;
	font-weight: 800;
	letter-spacing: 0.08em;
	margin-block: 0 16px;
	text-transform: uppercase;
}

.single-service-hero h1 {
	font-size: clamp(38px, 5vw, 64px);
	letter-spacing: -2px;
	max-width: 820px;
}

.single-service-hero__content p {
	color: #43474e;
	font-size: 18px;
	line-height: 1.7;
	max-width: 760px;
}

.single-service-hero__content .button {
	margin-top: 20px;
}

.single-service-hero__image,
.single-service-placeholder {
	aspect-ratio: 1;
	border: 1px solid var(--pg-color-border-soft);
	border-radius: var(--pg-radius);
	box-shadow: 0 18px 42px rgba(16, 47, 85, 0.12);
	width: 100%;
}

.single-service-hero__image {
	object-fit: cover;
}

.single-service-placeholder {
	align-items: center;
	background:
		linear-gradient(145deg, rgba(16, 47, 85, 0.86), rgba(16, 47, 85, 0.42)),
		linear-gradient(90deg, rgba(185, 151, 85, 0.28) 1px, transparent 1px),
		linear-gradient(0deg, rgba(185, 151, 85, 0.18) 1px, transparent 1px),
		var(--pg-color-navy);
	background-size: auto, 44px 44px, 44px 44px, auto;
	color: var(--pg-color-white);
	display: flex;
	justify-content: center;
	min-height: 320px;
	padding: 32px;
	text-align: center;
}

.single-service-placeholder span {
	border: 1px solid rgba(255, 255, 255, 0.48);
	border-radius: var(--pg-radius);
	font-size: 12px;
	font-weight: 800;
	letter-spacing: 0.05em;
	padding: 10px 14px;
	text-transform: uppercase;
}

.single-service-section,
.single-service-final-cta {
	padding-block: 72px;
}

.single-service-two-col {
	display: grid;
	gap: 40px;
}

.single-service-section h2,
.single-service-final-cta h2 {
	font-size: clamp(30px, 4vw, 46px);
	letter-spacing: 0;
}

.single-service-content {
	color: #43474e;
	font-size: 17px;
	line-height: 1.75;
}

.single-service-content > *:first-child {
	margin-top: 0;
}

.single-service-audience {
	background: var(--pg-color-white);
	border-left: 4px solid var(--pg-color-red);
	border-radius: var(--pg-radius);
	padding: 28px;
}

.single-service-audience h3 {
	font-size: 24px;
	margin-bottom: 18px;
}

.single-service-audience ul,
.single-service-document-list {
	display: grid;
	gap: 14px;
	list-style: none;
	margin: 0;
	padding: 0;
}

.single-service-audience li,
.single-service-document-list li {
	color: #43474e;
	line-height: 1.6;
	padding-left: 26px;
	position: relative;
}

.single-service-audience li::before,
.single-service-document-list li::before {
	border: 1px solid var(--pg-color-red);
	border-radius: 50%;
	content: "";
	height: 9px;
	left: 0;
	position: absolute;
	top: 0.55em;
	width: 9px;
}

/* Single service: one simple layout shared by every service.
   Introduction + panel, statement, method, included, excluded. */
.single-service-overview__grid,
.single-service-split {
	align-items: start;
	display: grid;
	gap: 32px;
}

.single-service-overview__main h2,
.single-service-split__intro h2 {
	margin-block-end: 18px;
}

.single-service-split__intro p {
	color: #43474e;
	font-size: 17px;
	line-height: 1.7;
	margin: 0;
	max-width: 520px;
}

.single-service-assist,
.single-service-card {
	background: var(--pg-color-white);
	border-radius: var(--pg-radius);
	box-shadow: 0 10px 28px rgba(16, 47, 85, 0.045);
	padding: 24px;
}

.single-service-assist {
	border-left: 4px solid var(--pg-color-red);
}

.single-service-card {
	border: 1px solid var(--pg-color-border-soft);
}

.single-service-assist h3,
.single-service-card__title {
	font-size: 24px;
	margin-block-end: 18px;
}

.single-service-list {
	display: grid;
	gap: 14px;
	list-style: none;
	margin: 0;
	padding: 0;
}

.single-service-list li {
	color: #43474e;
	font-size: 16px;
	line-height: 26px;
	padding-left: 30px;
	position: relative;
}

.single-service-list li::before {
	background: radial-gradient(circle, var(--pg-color-gold) 0 3px, transparent 3.5px);
	border: 1px solid var(--pg-color-gold);
	border-radius: 50%;
	content: "";
	height: 16px;
	left: 0;
	position: absolute;
	top: 5px;
	width: 16px;
}

.single-service-list--minus li::before {
	background: var(--pg-color-gold);
	border: 0;
	border-radius: 0;
	height: 2px;
	top: 12px;
	width: 14px;
}

.single-service-statement {
	background: var(--pg-color-ivory);
	border-block: 1px solid var(--pg-color-border);
	padding-block: 56px;
	text-align: center;
}

.single-service-statement__text {
	color: var(--pg-color-navy);
	font-family: var(--pg-font-heading);
	font-size: clamp(24px, 3.4vw, 38px);
	font-weight: 700;
	line-height: 1.25;
	margin: 0 auto;
	max-width: 820px;
	text-wrap: balance;
}

.single-service-statement--long .single-service-statement__text {
	font-size: clamp(20px, 2.4vw, 28px);
	line-height: 1.35;
}

.single-service-statement__text::before {
	background: var(--pg-color-gold);
	content: "";
	display: block;
	height: 2px;
	margin: 0 auto 24px;
	width: 48px;
}

.single-service-closing {
	background: var(--pg-color-ivory);
	border-block: 1px solid var(--pg-color-border);
	padding-block: 64px;
}

.single-service-closing__inner {
	display: grid;
	gap: 40px;
	margin-inline: auto;
	max-width: 820px;
}

.single-service-before,
.single-service-callout {
	background: var(--pg-color-white);
	border: 1px solid var(--pg-color-border-soft);
	border-left: 4px solid var(--pg-color-gold);
	border-radius: var(--pg-radius);
	box-shadow: 0 10px 28px rgba(16, 47, 85, 0.045);
	padding: 24px;
}

.single-service-before h2,
.single-service-callout h3 {
	font-size: 24px;
	margin-block-end: 12px;
}

.single-service-before p,
.single-service-callout p {
	color: #43474e;
	font-size: 16px;
	line-height: 1.7;
	margin: 0;
}

.single-service-quote {
	color: var(--pg-color-navy);
	font-family: var(--pg-font-heading);
	font-size: clamp(22px, 2.6vw, 30px);
	font-style: italic;
	font-weight: 600;
	line-height: 1.4;
	margin: 0 auto;
	max-width: 760px;
	quotes: "\201C" "\201D";
	text-align: center;
	text-wrap: balance;
}

.single-service-quote::before {
	content: open-quote;
}

.single-service-quote::after {
	content: close-quote;
}

/* Same background as the introduction: keep one gap, not two. */
.single-service-overview + .single-service-included {
	padding-block-start: 0;
}

/* A light block followed by "Servizi collegati" (same background): one gap, not two. */
.single-service-block:not(.single-service-block--muted) + .single-service-related {
	padding-block-start: 0;
}

.single-service-block--muted {
	background: var(--pg-color-surface-muted);
}

.single-service-block__body {
	display: grid;
	gap: 24px;
}

.single-service-block__heading {
	font-size: 24px;
	margin: 0;
}

.single-service-block__body .single-service-content p:last-child {
	margin-block-end: 0;
}

.single-service-card__lead {
	color: var(--pg-color-navy);
	font-size: 16px;
	font-weight: 700;
	line-height: 1.5;
	margin-block: 0 16px;
}

.single-service-block__lead {
	color: var(--pg-color-navy);
	font-size: 20px;
	font-weight: 700;
	line-height: 1.4;
	margin: 0;
}

/* Booking page: the light blocks alternate with the ivory page, as on the contact page. */
.booking-page .single-service-block--muted {
	background: var(--pg-color-white);
}

/* ...and a section right after a quote stays white, so it does not blend with the ivory quote bands. */
.booking-page .single-service-closing + .single-service-block {
	background: var(--pg-color-white);
}

.booking-hero p + p {
	margin-top: 16px;
}

.booking-hero .button {
	margin-top: 28px;
}

.booking-form-intro h2 {
	scroll-margin-top: 110px;
}

/* ==========================================================================
   "Scegli il percorso" (packages page)
   A switch of three paths; the chosen path is a navy dossier next to one
   continuous column (what it includes, then expandable terms).
   ========================================================================== */

.site-main.about-page,
.site-main.services-page,
.site-main.single-service-page,
.site-main.packages-page,
.site-main.contact-page,
.site-main.guides-page,
.site-main.booking-page {
	padding-block: 0;
}

/* Same rule as .blog-page (no space above the hero, room below the list), strong enough to beat .site-main. */
.site-main.blog-page {
	padding-block: 0 80px;
}

.paths {
	border-top: 1px solid var(--pg-color-border);
	padding-block: 40px clamp(64px, 8vw, 104px);
}

.paths__motto {
	color: var(--pg-color-navy);
	font-size: clamp(22px, 2.6vw, 30px);
	font-weight: 700;
	letter-spacing: -0.015em;
	line-height: 1.2;
	margin: 0 0 20px;
}

/* The switch: one control in three parts, not three cards. */
.paths-switch {
	background: var(--pg-color-white);
	border: 1px solid var(--pg-color-border);
	border-radius: var(--pg-radius);
	display: grid;
	overflow: hidden;
}

.paths-switch__tab {
	align-content: space-between;
	color: var(--pg-color-navy);
	display: grid;
	gap: 6px;
	padding: 20px 24px;
	text-decoration: none;
	transition: background-color 160ms ease, color 160ms ease;
}

.paths-switch__tab + .paths-switch__tab {
	border-top: 1px solid var(--pg-color-border-soft);
}

.paths-switch__icon {
	color: var(--pg-color-gold-text);
	display: block;
	line-height: 0;
}

.paths-switch__tab[aria-selected="true"] .paths-switch__icon {
	color: var(--pg-color-gold);
}

.paths-switch__intent {
	font-size: clamp(19px, 1.9vw, 25px);
	font-weight: 700;
	letter-spacing: -0.015em;
	line-height: 1.2;
}

.paths-switch__name {
	color: #5b6472;
	font-size: 16px;
	transition: color 160ms ease;
}

.paths-switch__tab:hover {
	background: var(--pg-color-ivory);
}

.paths-switch__tab[aria-selected="true"] {
	background: var(--pg-color-navy);
	box-shadow: inset 0 -4px 0 var(--pg-color-gold);
	color: var(--pg-color-white);
}

.paths-switch__tab[aria-selected="true"] .paths-switch__name {
	color: rgba(255, 255, 255, 0.78);
}

.paths__panels {
	display: grid;
	gap: 72px;
	margin-top: 40px;
}

.paths-panel {
	display: grid;
	gap: 40px;
	scroll-margin-top: calc(var(--pg-header-height) + 24px);
}

.paths-panel[hidden] {
	display: none;
}

/* The dossier: who the path is for, and the way to book. */
.paths-dossier {
	background: var(--pg-color-navy);
	border-radius: var(--pg-radius);
	color: var(--pg-color-white);
	display: grid;
	gap: 18px;
	padding: 32px;
}

.paths-dossier__heading {
	color: var(--pg-color-white);
	font-size: clamp(28px, 3vw, 40px);
	letter-spacing: -0.02em;
	line-height: 1.1;
	margin: 0;
}

.paths-dossier p {
	color: rgba(255, 255, 255, 0.86);
	font-size: 16px;
	line-height: 1.65;
	margin: 0;
}

.paths-dossier .paths-dossier__lead {
	color: var(--pg-color-white);
	font-weight: 700;
}

.paths-dots {
	display: grid;
	gap: 12px;
	list-style: none;
	margin: 0;
	padding: 0;
}

.paths-dots li {
	color: rgba(255, 255, 255, 0.86);
	font-size: 15.5px;
	line-height: 1.55;
	padding-left: 22px;
	position: relative;
}

.paths-dots li::before {
	background: #e3c98f;
	border-radius: 50%;
	content: "";
	height: 6px;
	left: 0;
	position: absolute;
	top: 0.6em;
	width: 6px;
}

.paths-dossier .button {
	justify-self: stretch;
	margin-top: 8px;
}

/* One continuous column: what the path includes... */
.paths-detail__heading {
	color: var(--pg-color-navy);
	font-size: clamp(28px, 3vw, 40px);
	letter-spacing: -0.02em;
	line-height: 1.1;
	margin: 0 0 14px;
}

.paths-detail__intro {
	color: #43474e;
	font-size: 17px;
	line-height: 1.7;
	margin: 0 0 24px;
	max-width: 62ch;
}

.paths-detail__lead {
	color: var(--pg-color-navy);
	font-size: 17px;
	font-weight: 700;
	margin: 0 0 10px;
}

.paths-check {
	border-top: 1px solid var(--pg-color-border);
	list-style: none;
	margin: 0;
	padding: 0;
}

.paths-check li {
	border-bottom: 1px solid var(--pg-color-border);
	color: #2d3138;
	font-size: 17px;
	line-height: 1.55;
	padding: 16px 0 16px 40px;
	position: relative;
}

.paths-check li::before {
	border: solid var(--pg-color-gold);
	border-width: 0 2px 2px 0;
	content: "";
	height: 13px;
	left: 9px;
	position: absolute;
	top: 17px;
	transform: rotate(45deg);
	width: 7px;
}

.paths-detail__after p {
	color: #43474e;
	font-size: 16px;
	line-height: 1.7;
	margin: 20px 0 0;
	max-width: 62ch;
}

/* ...then the terms, one line each until opened. */
.paths-more {
	border-top: 2px solid var(--pg-color-navy);
	margin-top: 44px;
}

.paths-more__item {
	border-bottom: 1px solid var(--pg-color-border);
}

.paths-more__item summary {
	align-items: center;
	color: var(--pg-color-navy);
	cursor: pointer;
	display: flex;
	font-size: 20px;
	font-weight: 700;
	gap: 16px;
	justify-content: space-between;
	letter-spacing: -0.01em;
	list-style: none;
	padding: 20px 0;
}

.paths-more__item summary::-webkit-details-marker {
	display: none;
}

.paths-more__item summary::after {
	align-items: center;
	border: 1px solid var(--pg-color-gold);
	border-radius: 50%;
	content: "+";
	display: inline-flex;
	flex: 0 0 auto;
	font-size: 18px;
	font-weight: 400;
	height: 28px;
	justify-content: center;
	line-height: 1;
	transition: background-color 160ms ease;
	width: 28px;
}

.paths-more__item summary:hover::after {
	background: var(--pg-color-ivory);
}

.paths-more__item[open] summary::after {
	content: "\2212";
}

.paths-more__item summary:focus-visible {
	outline: 2px solid var(--pg-color-red);
	outline-offset: 4px;
}

.paths-more__body {
	max-width: 62ch;
	padding-bottom: 12px;
}

.paths-more__body p {
	color: #43474e;
	font-size: 16.5px;
	line-height: 1.7;
	margin: 0 0 14px;
}

.paths-dash {
	display: grid;
	gap: 10px;
	list-style: none;
	margin: 0 0 18px;
	padding: 0;
}

.paths-dash li {
	color: #2d3138;
	font-size: 16px;
	line-height: 1.55;
	padding-left: 26px;
	position: relative;
}

.paths-dash li::before {
	background: var(--pg-color-gold);
	content: "";
	height: 2px;
	left: 0;
	position: absolute;
	top: 0.75em;
	width: 14px;
}

@media (min-width: 768px) {
	.paths-switch {
		grid-template-columns: repeat(3, minmax(0, 1fr));
	}

	.paths-switch__tab {
		padding: 26px 28px;
	}

	.paths-switch__tab + .paths-switch__tab {
		border-left: 1px solid var(--pg-color-border-soft);
		border-top: 0;
	}

	/* A link straight to a path lands with the switch still in view above it. */
	.paths-panel {
		scroll-margin-top: calc(var(--pg-header-height) + 168px);
	}
}

@media (min-width: 1024px) {
	.paths-panel {
		align-items: start;
		gap: 72px;
		grid-template-columns: minmax(300px, 4fr) minmax(0, 7fr);
	}

	.paths-dossier {
		padding: 36px;
		position: sticky;
		top: calc(var(--pg-header-height) + 24px);
	}
}

.single-service-card__text {
	color: #43474e;
	font-size: 16px;
	line-height: 1.6;
	margin-block: 0 16px;
}

.single-service-admin-note {
	background: var(--pg-color-white);
	border: 1px dashed var(--pg-color-gold);
	border-radius: var(--pg-radius);
	color: #43474e;
	font-size: 14px;
	padding: 16px;
}

.single-service-section__header {
	margin-inline: auto;
	margin-bottom: 36px;
	max-width: 820px;
	text-align: center;
}

.single-service-section__header p {
	color: #43474e;
	line-height: 1.7;
}

.single-service-included {
	background: var(--pg-color-surface);
}

.single-service-card-list {
	display: grid;
	gap: var(--pg-card-gap);
	list-style: none;
	margin: 0;
	padding: 0;
}

.single-service-card-list li,
.single-service-note-card,
.single-service-panel,
.single-service-related__grid a {
	background: var(--pg-color-white);
	border: 1px solid var(--pg-color-border-soft);
	border-radius: var(--pg-radius);
}

.single-service-card-list li {
	color: var(--pg-color-navy);
	font-weight: 800;
	padding: 18px 20px;
}

.single-service-excluded,
.single-service-process,
.single-service-faq {
	background: var(--pg-color-surface-muted);
}

.single-service-panel {
	display: grid;
	gap: 28px;
	padding: 32px;
}

.single-service-panel p,
.single-service-note-card p {
	color: #43474e;
	line-height: 1.7;
}

.single-service-chip-list {
	display: flex;
	flex-wrap: wrap;
	gap: 10px;
	list-style: none;
	margin: 0;
	padding: 0;
}

.single-service-chip-list li {
	background: var(--pg-color-surface);
	border: 1px solid var(--pg-color-border);
	border-radius: var(--pg-radius);
	color: var(--pg-color-navy);
	font-size: 12px;
	font-weight: 800;
	letter-spacing: 0.04em;
	padding: 10px 12px;
	text-transform: uppercase;
}

.single-service-note-card {
	border-left: 4px solid var(--pg-color-gold);
	padding: 28px;
}

.single-service-process__list {
	display: grid;
	gap: 18px;
	list-style: none;
	margin: 0;
	padding: 0;
}

.single-service-process__list li {
	align-items: start;
	background: var(--pg-color-white);
	border: 1px solid var(--pg-color-border-soft);
	border-radius: var(--pg-radius);
	display: grid;
	gap: 18px;
	grid-template-columns: 48px 1fr;
	padding: 18px;
}

.single-service-process__list span {
	align-items: center;
	background: var(--pg-color-navy);
	border-radius: var(--pg-radius);
	color: var(--pg-color-white);
	display: flex;
	font-size: 12px;
	font-weight: 800;
	height: 48px;
	justify-content: center;
	width: 48px;
}

.single-service-process__list strong {
	color: var(--pg-color-navy);
	display: block;
	font-family: var(--pg-font-heading);
	font-size: 20px;
	line-height: 1.25;
}

.single-service-process__list p {
	color: #43474e;
	font-size: 15px;
	line-height: 1.6;
	margin: 8px 0 0;
}

.single-service-related__grid {
	display: grid;
	gap: 16px;
}

.single-service-related__grid a {
	color: var(--pg-color-navy);
	font-weight: 800;
	padding: 20px;
	text-decoration: none;
}

.single-service-related__grid a:hover,
.single-service-related__grid a:focus-visible {
	border-color: var(--pg-color-gold);
	color: var(--pg-color-red);
}

.single-service-faq__list {
	display: grid;
	gap: 12px;
	margin-inline: auto;
	max-width: 900px;
}

.single-service-faq__item {
	background: var(--pg-color-white);
	border: 1px solid var(--pg-color-border-soft);
	border-radius: var(--pg-radius);
}

.single-service-faq__item h3 {
	font-family: var(--pg-font-body);
	font-size: 16px;
	margin: 0;
}

.single-service-faq__button {
	align-items: center;
	background: transparent;
	border: 0;
	color: var(--pg-color-navy);
	cursor: pointer;
	display: flex;
	font: inherit;
	font-weight: 800;
	gap: 20px;
	justify-content: space-between;
	padding: 20px;
	text-align: left;
	width: 100%;
}

.single-service-faq__icon {
	border: 1px solid var(--pg-color-gold);
	border-radius: 50%;
	flex: 0 0 auto;
	height: 24px;
	position: relative;
	width: 24px;
}

.single-service-faq__icon::before,
.single-service-faq__icon::after {
	background: var(--pg-color-navy);
	content: "";
	inset: 50%;
	position: absolute;
	transform: translate(-50%, -50%);
}

.single-service-faq__icon::before {
	height: 2px;
	width: 10px;
}

.single-service-faq__icon::after {
	height: 10px;
	width: 2px;
}

.single-service-faq__button[aria-expanded="true"] .single-service-faq__icon::after {
	display: none;
}

.single-service-faq__panel {
	color: #43474e;
	padding: 0 20px 20px;
}

.single-service-faq__panel p {
	margin: 0;
}

.single-service-final-cta {
	background: var(--pg-color-surface);
}

.single-service-final-cta__box {
	background: var(--pg-color-navy);
	border-radius: var(--pg-radius);
	color: var(--pg-color-white);
	margin-inline: auto;
	max-width: 980px;
	padding: 56px 24px;
	text-align: center;
}

.single-service-final-cta h2,
.single-service-final-cta p {
	color: var(--pg-color-white);
	margin-inline: auto;
	max-width: 760px;
}

.single-service-final-cta p {
	line-height: 1.7;
}

.single-service-final-cta .button {
	margin-top: 20px;
}

.packages-page {
	background: var(--pg-color-ivory);
}

.packages-hero {
	background: var(--pg-color-ivory);
	padding-block: 56px 48px;
	text-align: center;
}

.packages-eyebrow {
	color: var(--pg-color-gold-text);
	font-family: var(--pg-font-sans);
	font-size: 12px;
	font-weight: 800;
	letter-spacing: 0.08em;
	margin: 0 0 18px;
	text-transform: uppercase;
}

.packages-hero__grid {
	align-items: center;
	display: grid;
	gap: 40px;
}

.packages-hero__content {
	margin-inline: auto;
	max-width: 760px;
}

.packages-hero__divider {
	align-items: center;
	display: flex;
	gap: 24px;
	justify-content: center;
	margin: 0 auto 28px;
	max-width: 640px;
}

.packages-hero__divider::before,
.packages-hero__divider::after {
	background: rgba(185, 151, 85, 0.32);
	content: "";
	height: 1px;
	width: 100%;
}

.packages-hero__divider span {
	align-items: center;
	color: var(--pg-color-gold);
	display: inline-flex;
	flex: 0 0 auto;
	justify-content: center;
}

.packages-hero h1 {
	font-size: clamp(34px, 5vw, 56px);
	line-height: 1.12;
	margin-bottom: 18px;
	max-width: 820px;
}

.packages-hero p {
	color: #43474e;
	font-size: 17px;
	line-height: 1.7;
	margin-inline: auto;
	margin-bottom: 24px;
	max-width: 720px;
}

.packages-hero__seal {
	align-items: center;
	aspect-ratio: 1;
	background:
		linear-gradient(rgba(185, 151, 85, 0.12) 1px, transparent 1px),
		linear-gradient(90deg, rgba(185, 151, 85, 0.12) 1px, transparent 1px),
		var(--pg-color-navy);
	background-size: 28px 28px;
	border-radius: var(--pg-radius);
	box-shadow: 0 20px 40px rgba(16, 47, 85, 0.12);
	color: var(--pg-color-white);
	display: flex;
	justify-content: center;
	min-height: 280px;
	padding: 28px;
	text-align: center;
}

.packages-hero__seal span {
	border: 1px solid rgba(185, 151, 85, 0.65);
	color: var(--pg-color-white);
	display: inline-flex;
	font-family: var(--pg-font-serif);
	font-size: 24px;
	font-weight: 700;
	padding: 18px 22px;
}

.packages-introduction,
.packages-grid-section,
.packages-comparison,
.packages-costs,
.packages-faq,
.packages-final-cta {
	padding-block: 88px;
}

.packages-introduction {
	background: #f0eded;
}

.packages-introduction__grid {
	align-items: center;
	display: grid;
	gap: 56px;
}

.packages-introduction__content {
	max-width: 620px;
}

.packages-introduction h2,
.packages-costs h2 {
	font-size: clamp(32px, 4vw, 52px);
	line-height: 1.08;
	margin: 0;
}

.packages-introduction p,
.packages-costs p {
	color: #43474e;
	font-size: 17px;
	line-height: 1.75;
	margin: 0;
}

.packages-introduction__steps {
	display: grid;
	gap: 26px;
	list-style: none;
	margin: 36px 0 0;
	padding: 0;
}

.packages-introduction__steps li {
	align-items: start;
	display: grid;
	gap: 18px;
	grid-template-columns: 44px 1fr;
}

.packages-introduction__steps span {
	align-items: center;
	background: var(--pg-color-navy);
	border-radius: var(--pg-radius);
	color: var(--pg-color-white);
	display: flex;
	font-size: 12px;
	font-weight: 800;
	height: 44px;
	justify-content: center;
	width: 44px;
}

.packages-introduction__steps strong {
	color: var(--pg-color-navy);
	display: block;
	font-family: var(--pg-font-serif);
	font-size: 22px;
	line-height: 1.25;
	margin-bottom: 6px;
}

.packages-introduction__steps p {
	font-size: 14px;
	line-height: 1.65;
}

.packages-introduction__visual {
	background: var(--pg-color-white);
	border: 1px solid rgba(185, 151, 85, 0.35);
	box-shadow: 0 24px 52px rgba(16, 47, 85, 0.14);
	margin: 0;
	padding: 18px;
}

.packages-introduction__visual img {
	aspect-ratio: 4 / 3;
	display: block;
	height: auto;
	object-fit: cover;
	width: 100%;
}

.packages-section-header {
	margin: 0 auto 48px;
	max-width: var(--pg-readable-width);
	text-align: center;
}

.packages-section-header h2 {
	font-size: clamp(32px, 4vw, 52px);
	line-height: 1.12;
	margin: 0;
}

.packages-grid {
	display: grid;
	gap: 24px;
}

.packages-grid__note {
	align-items: center;
	background: rgba(255, 255, 255, 0.58);
	border: 1px solid rgba(196, 198, 207, 0.4);
	color: #43474e;
	display: flex;
	gap: 14px;
	margin: 48px auto 0;
	max-width: 920px;
	padding: 20px 24px;
}

.packages-grid__note p {
	font-size: 13px;
	font-style: italic;
	line-height: 1.6;
	margin: 0;
	text-align: center;
	width: 100%;
}

.package-card {
	background: var(--pg-color-white);
	border: 1px solid rgba(185, 151, 85, 0.32);
	border-radius: var(--pg-radius);
	display: flex;
	flex-direction: column;
	min-height: 100%;
	padding: 30px;
	position: relative;
	transition: border-color 180ms ease, box-shadow 180ms ease, transform 180ms ease;
}

.package-card:hover,
.package-card:focus-within {
	border-color: rgba(185, 151, 85, 0.7);
	box-shadow: 0 12px 32px rgba(16, 47, 85, 0.08);
	transform: translateY(-4px);
}

.package-card.is-featured {
	background: var(--pg-color-navy);
	border-color: var(--pg-color-navy);
	color: var(--pg-color-white);
}

.package-card__badge {
	background: var(--pg-color-red);
	color: var(--pg-color-white);
	font-size: 12px;
	font-weight: 800;
	left: 50%;
	letter-spacing: 0.05em;
	line-height: 1;
	padding: 10px 16px;
	position: absolute;
	text-transform: uppercase;
	top: 0;
	transform: translate(-50%, -50%);
	white-space: nowrap;
}

.package-card__icon {
	color: var(--pg-color-gold);
	display: inline-flex;
	height: 42px;
	margin-bottom: 26px;
	width: 44px;
}

.package-card.is-featured .package-card__icon {
	color: var(--pg-color-white);
}

.package-card.is-featured h3 {
	color: var(--pg-color-white);
}

.package-card h3 {
	font-size: 24px;
	line-height: 1.2;
	margin-bottom: 16px;
}

.package-card p {
	color: #43474e;
	line-height: 1.65;
	margin-bottom: 24px;
}

.package-card.is-featured p,
.package-card.is-featured li,
.package-card.is-featured .package-card__footer span {
	color: rgba(255, 255, 255, 0.86);
}

.package-card ul {
	display: grid;
	gap: 14px;
	list-style: none;
	margin: 0 0 30px;
	padding: 0;
}

.package-card li {
	color: var(--pg-color-anthracite);
	font-size: 14px;
	line-height: 1.45;
	padding-left: 24px;
	position: relative;
}

.package-card li::before {
	background: var(--pg-color-gold);
	content: "";
	height: 1px;
	left: 0;
	position: absolute;
	top: 0.78em;
	width: 12px;
}

.package-card__content {
	flex: 1;
}

.package-card__footer {
	display: grid;
	gap: 18px;
	margin-top: auto;
}

.package-card__footer span {
	color: var(--pg-color-navy);
	font-size: 12px;
	font-weight: 800;
	letter-spacing: 0.08em;
	text-transform: uppercase;
}

.package-card .button {
	justify-content: center;
	width: 100%;
}

.packages-comparison {
	background: var(--pg-color-white);
}

.packages-comparison__table-wrap {
	background: var(--pg-color-white);
	border: 1px solid rgba(185, 151, 85, 0.28);
	border-radius: var(--pg-radius);
	box-shadow: inset -28px 0 22px -24px rgba(16, 47, 85, 0.32);
	overflow-x: auto;
	position: relative;
}

.packages-comparison__table-wrap::after {
	content: none;
}

.packages-comparison__table-wrap::before {
	color: var(--pg-color-gold-text);
	content: "Scorri per vedere tutti i pacchetti";
	display: none;
	font-size: 12px;
	font-weight: 800;
	letter-spacing: 0.04em;
	margin: 0 0 12px;
	text-transform: uppercase;
}

.packages-comparison__table {
	border-collapse: collapse;
	min-width: 980px;
	width: 100%;
}

.packages-comparison__table th,
.packages-comparison__table td {
	border-bottom: 1px solid rgba(196, 198, 207, 0.65);
	padding: 18px 16px;
	text-align: left;
	vertical-align: top;
}

.packages-comparison__table thead th {
	background: var(--pg-color-navy);
	color: var(--pg-color-white);
	font-family: var(--pg-font-sans);
	font-size: 12px;
	font-weight: 800;
	letter-spacing: 0.06em;
	text-transform: uppercase;
}

.packages-comparison__table tbody th {
	color: var(--pg-color-navy);
	font-weight: 800;
	width: 220px;
}

.packages-comparison__table td {
	color: #43474e;
	font-size: 13px;
	line-height: 1.45;
}

.packages-comparison__table tbody tr:last-child th,
.packages-comparison__table tbody tr:last-child td {
	border-bottom: 0;
}

.packages-comparison__cards {
	display: none;
}

.packages-comparison-card {
	background: var(--pg-color-white);
	border: 1px solid rgba(185, 151, 85, 0.28);
	border-radius: var(--pg-radius);
	padding: 24px;
}

.packages-comparison-card h3 {
	font-size: 24px;
	margin-bottom: 22px;
}

.packages-comparison-card dl {
	display: grid;
	gap: 14px;
	margin: 0;
}

.packages-comparison-card div {
	border-bottom: 1px solid rgba(196, 198, 207, 0.55);
	display: grid;
	gap: 4px;
	padding-bottom: 14px;
}

.packages-comparison-card div:last-child {
	border-bottom: 0;
	padding-bottom: 0;
}

.packages-comparison-card dt {
	color: var(--pg-color-navy);
	font-weight: 800;
}

.packages-comparison-card dd {
	color: #43474e;
	margin: 0;
}

.packages-costs {
	background: var(--pg-color-ivory);
}

.packages-costs__grid {
	align-items: start;
	display: grid;
	gap: 36px;
}

.packages-costs__panel {
	background: var(--pg-color-white);
	border-left: 3px solid var(--pg-color-gold);
	border-radius: var(--pg-radius);
	padding: 30px;
}

.packages-costs__panel ul {
	display: grid;
	gap: 12px;
	grid-template-columns: 1fr;
	list-style: none;
	margin: 0 0 24px;
	padding: 0;
}

.packages-costs__panel li {
	border: 1px solid rgba(185, 151, 85, 0.3);
	border-radius: var(--pg-radius);
	color: var(--pg-color-navy);
	font-size: 12px;
	font-weight: 800;
	letter-spacing: 0.05em;
	padding: 12px;
	text-transform: uppercase;
}

.packages-costs__panel p {
	border-top: 1px solid rgba(196, 198, 207, 0.65);
	font-size: 15px;
	padding-top: 22px;
}

.packages-faq {
	background: #f0eded;
}

.packages-faq__list {
	display: grid;
	gap: 10px;
	margin-inline: auto;
	max-width: 900px;
}

.packages-faq__item {
	background: var(--pg-color-white);
	border: 1px solid rgba(196, 198, 207, 0.72);
	border-radius: var(--pg-radius);
}

.packages-faq__item h3 {
	font-family: var(--pg-font-sans);
	font-size: 15px;
	margin: 0;
}

.packages-faq__button {
	align-items: center;
	background: transparent;
	border: 0;
	color: var(--pg-color-navy);
	cursor: pointer;
	display: flex;
	font: inherit;
	font-weight: 800;
	justify-content: space-between;
	padding: 18px 20px;
	text-align: left;
	width: 100%;
}

.packages-faq__icon {
	border: 1px solid var(--pg-color-gold);
	border-radius: 50%;
	flex: 0 0 auto;
	height: 22px;
	margin-left: 18px;
	position: relative;
	width: 22px;
}

.packages-faq__icon::before,
.packages-faq__icon::after {
	background: var(--pg-color-navy);
	content: "";
	left: 50%;
	position: absolute;
	top: 50%;
	transform: translate(-50%, -50%);
}

.packages-faq__icon::before {
	height: 1px;
	width: 10px;
}

.packages-faq__icon::after {
	height: 10px;
	width: 1px;
}

.packages-faq__button[aria-expanded="true"] .packages-faq__icon::after {
	display: none;
}

.packages-faq__panel {
	color: #43474e;
	padding: 0 20px 20px;
}

.packages-faq__panel p {
	margin: 0;
}

.packages-final-cta {
	background: var(--pg-color-white);
}

.packages-final-cta__box {
	background: var(--pg-color-navy);
	border-radius: var(--pg-radius);
	color: var(--pg-color-white);
	margin-inline: auto;
	max-width: 980px;
	padding: 56px 24px;
	text-align: center;
}

.packages-final-cta h2,
.packages-final-cta p {
	color: var(--pg-color-white);
	margin-inline: auto;
	max-width: 760px;
}

.packages-final-cta h2 {
	font-size: clamp(32px, 4vw, 52px);
	line-height: 1.12;
}

.packages-final-cta p {
	line-height: 1.7;
}

.packages-final-cta__actions {
	display: flex;
	flex-wrap: wrap;
	gap: 14px;
	justify-content: center;
	margin-top: 28px;
}

.packages-final-cta .button--secondary {
	background: transparent;
	color: var(--pg-color-white);
}

.packages-final-cta .button--secondary:hover,
.packages-final-cta .button--secondary:focus-visible {
	background: var(--pg-color-white);
	color: var(--pg-color-navy);
}

.contact-page {
	background: var(--pg-color-ivory);
}

.contact-hero {
	background: var(--pg-color-ivory);
	padding-block: 64px 72px;
}

.contact-eyebrow {
	color: var(--pg-color-gold-text);
	font-family: var(--pg-font-sans);
	font-size: 12px;
	font-weight: 800;
	letter-spacing: 0.08em;
	margin: 0 0 18px;
	text-transform: uppercase;
}

.contact-hero__grid {
	align-items: center;
	display: grid;
	gap: 56px;
}

.contact-hero__content,
.guides-hero__content {
	max-width: 820px;
}

.contact-hero h1 {
	font-size: clamp(34px, 5vw, 56px);
	line-height: 1.12;
	margin-bottom: 18px;
	max-width: 820px;
}

.contact-hero p {
	color: #43474e;
	font-size: 17px;
	line-height: 1.7;
	margin: 0;
	max-width: 720px;
}

.contact-hero__actions {
	display: flex;
	flex-wrap: wrap;
	gap: 14px;
	margin-top: 30px;
}

.contact-hero__actions .button {
	min-width: 180px;
}

.contact-hero__media {
	margin: 0;
	position: relative;
}

.contact-hero__media img {
	aspect-ratio: 19 / 15;
	border-radius: var(--pg-radius);
	box-shadow: 0 24px 48px rgba(16, 47, 85, 0.14);
	display: block;
	height: auto;
	object-fit: cover;
	width: 100%;
}

.contact-hero__media figcaption {
	background: var(--pg-color-white);
	border: 1px solid rgba(185, 151, 85, 0.28);
	border-radius: var(--pg-radius);
	box-shadow: 0 18px 34px rgba(16, 47, 85, 0.12);
	bottom: -26px;
	color: #43474e;
	left: 28px;
	padding: 18px 20px;
	position: absolute;
	width: min(260px, calc(100% - 56px));
}

.contact-hero__media strong {
	color: var(--pg-color-red);
	display: block;
	font-family: var(--pg-font-serif);
	font-size: 18px;
	line-height: 1.2;
	margin-bottom: 4px;
}

.contact-hero__media span {
	display: block;
	font-size: 13px;
	line-height: 1.45;
}

.contact-details,
.contact-consultation,
.contact-form-section,
.contact-final-note {
	padding-block: 88px;
}

.contact-details,
.contact-form-section {
	background: var(--pg-color-white);
}

.contact-section-header {
	margin-bottom: 40px;
	max-width: 740px;
}

.contact-section-header p:not(.contact-eyebrow) {
	color: #555962;
	line-height: 1.75;
	margin: 16px 0 0;
}

.contact-section-header h2,
.contact-consultation h2,
.contact-form-section h2,
.contact-final-note h2 {
	font-size: clamp(32px, 4vw, 52px);
	line-height: 1.12;
	margin: 0;
}

.contact-details__grid {
	display: grid;
	gap: 20px;
	margin: 0;
}

.contact-details__item {
	background: var(--pg-color-white);
	border: 1px solid rgba(185, 151, 85, 0.28);
	border-radius: var(--pg-radius);
	box-shadow: 0 16px 32px rgba(16, 47, 85, 0.04);
	min-height: 210px;
	padding: 28px;
}

.contact-details__item .pg-icon {
	display: block;
	height: 30px;
	margin-bottom: 24px;
	width: 30px;
}

.contact-details__item dt {
	color: var(--pg-color-gold-text);
	font-size: 12px;
	font-weight: 800;
	letter-spacing: 0.08em;
	margin-bottom: 8px;
	text-transform: uppercase;
}

.contact-details__item dd {
	color: #43474e;
	font-weight: 600;
	line-height: 1.5;
	margin: 0;
}

.contact-details__empty {
	background: var(--pg-color-ivory);
	border-left: 3px solid var(--pg-color-gold);
	border-radius: var(--pg-radius);
	color: #43474e;
	margin: 0;
	max-width: 760px;
	padding: 22px 24px;
}

.contact-consultation {
	background: var(--pg-color-ivory);
}

.contact-consultation__grid,
.contact-form-section__grid {
	align-items: start;
	display: grid;
	gap: 40px;
}

.contact-consultation__steps {
	display: grid;
	gap: 12px;
	list-style: none;
	margin: 0;
	padding: 0;
}

.contact-consultation__steps li {
	align-items: start;
	background: var(--pg-color-white);
	border: 1px solid rgba(185, 151, 85, 0.28);
	border-radius: var(--pg-radius);
	color: var(--pg-color-navy);
	display: grid;
	font-weight: 700;
	gap: 16px;
	grid-template-columns: auto 1fr;
	line-height: 1.45;
	padding: 18px;
}

.contact-consultation__steps span {
	align-items: center;
	background: var(--pg-color-navy);
	border-radius: var(--pg-radius);
	color: var(--pg-color-white);
	display: inline-flex;
	font-size: 12px;
	font-weight: 800;
	height: 34px;
	justify-content: center;
	width: 34px;
}

.contact-consultation__content p {
	color: #555962;
	line-height: 1.75;
	margin-top: 18px;
	max-width: 520px;
}

.contact-consultation__panel {
	display: grid;
	gap: 22px;
}

.contact-consultation__media {
	margin: 0;
}

.contact-consultation__media img {
	aspect-ratio: 19 / 13;
	border: 10px solid var(--pg-color-white);
	border-radius: var(--pg-radius);
	box-shadow: 0 20px 44px rgba(16, 47, 85, 0.12);
	display: block;
	height: auto;
	object-fit: cover;
	width: 100%;
}

.contact-form-section__intro {
	position: sticky;
	top: calc(var(--pg-header-height) + 32px);
}

.contact-form-section__intro p {
	color: #43474e;
	line-height: 1.75;
}

.contact-form-section__list {
	display: grid;
	gap: 14px;
	list-style: none;
	margin: 28px 0 0;
	padding: 0;
}

.contact-form-section__list li {
	align-items: start;
	color: var(--pg-color-navy);
	display: grid;
	font-weight: 700;
	gap: 12px;
	grid-template-columns: auto 1fr;
	line-height: 1.45;
}

.contact-form-section__list li::before {
	background: var(--pg-color-gold);
	border-radius: 50%;
	content: "";
	height: 7px;
	margin-top: 8px;
	width: 7px;
}

.contact-form {
	background: var(--pg-color-white);
	border: 1px solid rgba(185, 151, 85, 0.28);
	border-radius: var(--pg-radius);
	box-shadow: 0 18px 40px rgba(16, 47, 85, 0.06);
	padding: 24px;
}

.contact-form__grid {
	display: grid;
	gap: 18px;
}

.contact-field {
	display: grid;
	gap: 8px;
}

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

.contact-field label {
	color: var(--pg-color-navy);
	font-size: 13px;
	font-weight: 800;
	line-height: 1.35;
}

.contact-field input,
.contact-field select,
.contact-field textarea {
	background: #fbfaf8;
	border: 1px solid rgba(116, 119, 127, 0.42);
	border-radius: var(--pg-radius);
	color: var(--pg-color-anthracite);
	font: inherit;
	min-height: 46px;
	padding: 12px 14px;
	width: 100%;
}

.contact-field textarea {
	min-height: 120px;
	resize: vertical;
}

.contact-field input:focus-visible,
.contact-field select:focus-visible,
.contact-field textarea:focus-visible {
	border-color: var(--pg-color-gold);
	box-shadow: 0 0 0 3px rgba(185, 151, 85, 0.24);
	outline: 0;
}

.contact-field [aria-invalid="true"] {
	border-color: var(--pg-color-red);
}

.contact-field__error {
	color: var(--pg-color-red);
	font-size: 13px;
	font-weight: 800;
	margin: 0;
}

.contact-field--checkbox {
	align-items: start;
	grid-template-columns: auto 1fr;
}

.contact-field--checkbox input {
	height: 20px;
	margin-top: 2px;
	min-height: 20px;
	width: 20px;
}

.contact-field--checkbox .contact-field__error {
	grid-column: 2;
}

.contact-form__notice {
	border-radius: var(--pg-radius);
	font-weight: 800;
	line-height: 1.5;
	margin-bottom: 22px;
	padding: 16px 18px;
}

.contact-form__notice--success {
	background: rgba(185, 151, 85, 0.14);
	border: 1px solid rgba(185, 151, 85, 0.5);
	color: var(--pg-color-navy);
}

.contact-form__notice--error {
	background: rgba(200, 32, 40, 0.08);
	border: 1px solid rgba(200, 32, 40, 0.35);
	color: var(--pg-color-red);
}

/* Post-submit feedback: sits just above the form, clears the sticky header,
   and is never touched by the reveal animation. */
.form-feedback-anchor {
	scroll-margin-top: 120px;
}

.form-feedback-anchor:empty {
	display: none;
}

.form-feedback-anchor,
.form-feedback-anchor > * {
	opacity: 1;
	transform: none;
}

.booking-form__notice {
	border-radius: var(--pg-radius);
	font-weight: 800;
	line-height: 1.6;
	margin-bottom: 24px;
	padding: 18px 20px;
}

.booking-form__notice--success {
	background: rgba(185, 151, 85, 0.14);
	border: 1px solid rgba(185, 151, 85, 0.5);
	color: var(--pg-color-navy);
}

.booking-form__notice--error {
	background: rgba(200, 32, 40, 0.08);
	border: 1px solid rgba(200, 32, 40, 0.35);
	color: var(--pg-color-red);
}

/* Simple vertical field stack shared by the contact and booking forms. */
.booking-form__grid {
	display: grid;
	gap: 18px;
}

.contact-form .button {
	justify-content: center;
	margin-top: 24px;
	width: 100%;
}

.booking-form > .button {
	justify-content: center;
	width: 100%;
}

.contact-form__honeypot {
	height: 1px;
	left: -9999px;
	overflow: hidden;
	position: absolute;
	top: auto;
	width: 1px;
}

.contact-final-note {
	background: var(--pg-color-navy);
	overflow: hidden;
	position: relative;
}

.contact-final-note::after {
	border: 44px solid rgba(185, 151, 85, 0.1);
	content: "";
	height: 190px;
	position: absolute;
	right: max(24px, calc((100vw - var(--pg-container)) / 2));
	top: 50%;
	transform: translateY(-50%) rotate(45deg);
	width: 190px;
}

.contact-final-note__box {
	color: var(--pg-color-white);
	margin-inline: auto;
	max-width: 980px;
	position: relative;
	z-index: 1;
	padding: 18px 24px;
	text-align: center;
}

.contact-final-note h2,
.contact-final-note p {
	color: var(--pg-color-white);
	margin-inline: auto;
	max-width: 760px;
}

.contact-final-note p {
	line-height: 1.7;
	margin-bottom: 28px;
}

.contact-final-note .contact-eyebrow {
	color: var(--pg-color-gold-text);
}

.contact-final-note .button {
	min-width: 220px;
}

.guides-page {
	background: var(--pg-color-ivory);
}

.guides-hero {
	background: var(--pg-color-ivory);
	padding-block: 56px 48px;
}

.guides-eyebrow {
	color: var(--pg-color-gold-text);
	font-family: var(--pg-font-sans);
	font-size: 12px;
	font-weight: 800;
	letter-spacing: 0.08em;
	margin: 0 0 18px;
	text-transform: uppercase;
}

.guides-hero__grid {
	align-items: center;
	display: grid;
	gap: 40px;
}

.guides-hero h1 {
	font-size: clamp(34px, 5vw, 56px);
	line-height: 1.12;
	margin-bottom: 18px;
	max-width: 880px;
}

.guides-hero p {
	color: #43474e;
	font-size: 17px;
	line-height: 1.7;
	margin: 0;
	max-width: 720px;
}

.guides-hero__mark,
.guides-featured__cover {
	align-items: center;
	background: var(--pg-color-white);
	border: 1px solid rgba(185, 151, 85, 0.32);
	border-radius: var(--pg-radius);
	box-shadow: 0 20px 40px rgba(16, 47, 85, 0.12);
	display: flex;
	justify-content: center;
	min-height: 280px;
	overflow: hidden;
	text-align: center;
}

.guides-hero__mark {
	aspect-ratio: 4 / 3;
	margin: 0;
}

.guides-hero__mark img,
.guides-featured__cover img {
	display: block;
	height: 100%;
	object-fit: cover;
	width: 100%;
}

.guides-featured,
.guides-articles,
.guides-categories,
.guides-newsletter,
.guides-final-cta {
	padding-block: 72px;
}

.guides-featured,
.guides-categories,
.guides-final-cta {
	background: var(--pg-color-white);
}

.guides-featured__grid {
	align-items: center;
	display: grid;
	gap: 40px;
}

.guides-featured__cover {
	aspect-ratio: 4 / 5;
	margin: 0;
	min-height: 260px;
}

.guides-featured h2,
.guides-section-header h2,
.guides-newsletter h2,
.guides-final-cta h2 {
	font-size: clamp(32px, 4vw, 52px);
	line-height: 1.12;
	margin: 0;
}

.guides-featured p {
	color: #43474e;
	font-size: 17px;
	line-height: 1.75;
	margin-bottom: 28px;
}

.guides-section-header {
	margin: 0 auto 48px;
	max-width: var(--pg-readable-width);
	text-align: center;
}

.guides-articles {
	background: var(--pg-color-ivory);
}

.guides-articles__grid {
	display: grid;
	gap: var(--pg-card-gap);
}

.guide-card {
	background: var(--pg-color-white);
	border: 1px solid rgba(185, 151, 85, 0.28);
	border-radius: var(--pg-radius);
	display: flex;
	flex-direction: column;
	min-height: 100%;
	overflow: hidden;
	transition: border-color 180ms ease, box-shadow 180ms ease, transform 180ms ease;
}

.guide-card:hover,
.guide-card:focus-within {
	border-color: rgba(185, 151, 85, 0.7);
	box-shadow: 0 12px 32px rgba(16, 47, 85, 0.08);
	transform: translateY(-4px);
}

.guide-card__media {
	align-items: center;
	aspect-ratio: 16 / 10;
	background:
		linear-gradient(rgba(185, 151, 85, 0.12) 1px, transparent 1px),
		linear-gradient(90deg, rgba(185, 151, 85, 0.12) 1px, transparent 1px),
		var(--pg-color-navy);
	background-size: 24px 24px;
	color: var(--pg-color-white);
	display: flex;
	justify-content: center;
	overflow: hidden;
	text-decoration: none;
}

.guide-card__media img {
	height: 100%;
	object-fit: cover;
	width: 100%;
}

.guide-card__media span {
	border: 1px solid rgba(185, 151, 85, 0.65);
	font-family: var(--pg-font-serif);
	font-size: 20px;
	font-weight: 700;
	padding: 14px 18px;
}

.guide-card__body {
	display: flex;
	flex: 1;
	flex-direction: column;
	padding: clamp(22px, 2.2vw, 30px);
}

.guide-card__meta {
	align-items: center;
	display: flex;
	flex-wrap: wrap;
	gap: 10px 14px;
	margin-bottom: 16px;
}

.guide-card__meta a,
.guide-card__meta span,
.guide-card__meta time {
	color: var(--pg-color-gold-text);
	font-size: 12px;
	font-weight: 800;
	letter-spacing: 0.06em;
	text-decoration: none;
	text-transform: uppercase;
}

.guide-card h3 {
	font-size: 24px;
	line-height: 1.2;
	margin-bottom: 14px;
}

.guide-card h3 a {
	color: var(--pg-color-navy);
	text-decoration: none;
}

.guide-card p {
	color: #43474e;
	line-height: 1.65;
	margin-bottom: 22px;
}

.guide-card__link {
	color: var(--pg-color-navy);
	font-size: 12px;
	font-weight: 800;
	letter-spacing: 0.06em;
	margin-top: auto;
	text-decoration-color: var(--pg-color-gold);
	text-transform: uppercase;
}

.guides-articles__empty,
.guides-categories__empty {
	background: var(--pg-color-white);
	border-left: 3px solid var(--pg-color-gold);
	border-radius: var(--pg-radius);
	color: #43474e;
	margin: 0 auto;
	max-width: 760px;
	padding: 22px 24px;
}

.guides-pagination {
	margin-top: 40px;
}

.guides-pagination ul {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	justify-content: center;
	list-style: none;
	margin: 0;
	padding: 0;
}

.guides-pagination a,
.guides-pagination span {
	align-items: center;
	background: var(--pg-color-white);
	border: 1px solid rgba(185, 151, 85, 0.35);
	border-radius: var(--pg-radius);
	color: var(--pg-color-navy);
	display: inline-flex;
	font-weight: 800;
	min-height: 40px;
	padding: 10px 14px;
	text-decoration: none;
}

.guides-pagination .current {
	background: var(--pg-color-navy);
	color: var(--pg-color-white);
}

.blog-page {
	padding-block: 0 80px;
}

.blog-hero {
	background: var(--pg-color-surface-muted);
	border-bottom: 1px solid var(--pg-color-border-soft);
	padding-block: 88px 64px;
	text-align: center;
}

.blog-hero__inner {
	margin-inline: auto;
	max-width: 860px;
}

.blog-eyebrow {
	color: var(--pg-color-gold-text);
	font-size: 12px;
	font-weight: 800;
	letter-spacing: 0.08em;
	margin-bottom: 18px;
	text-transform: uppercase;
}

.blog-hero h1 {
	font-size: clamp(38px, 5vw, 60px);
	letter-spacing: -2px;
	margin-inline: auto;
}

.blog-hero__intro {
	color: #43474e;
	font-size: 18px;
	line-height: 1.7;
	margin: 22px auto 0;
	max-width: 720px;
}

.blog-hero__intro p:last-child {
	margin-bottom: 0;
}

.blog-articles {
	padding-block: 72px 0;
}

.blog-single {
	padding-block: 72px;
}

.blog-single__container {
	max-width: 960px;
}

.blog-single__back {
	color: var(--pg-color-navy);
	display: inline-flex;
	font-size: 12px;
	font-weight: 800;
	letter-spacing: 0.06em;
	margin-bottom: 32px;
	text-decoration-color: var(--pg-color-gold);
	text-transform: uppercase;
}

.blog-single__header {
	margin-inline: auto;
	max-width: 820px;
	text-align: center;
}

.blog-single__header h1 {
	font-size: clamp(38px, 5vw, 60px);
	letter-spacing: -2px;
}

.blog-single__meta {
	justify-content: center;
}

.blog-single__excerpt {
	color: #43474e;
	font-size: 20px;
	line-height: 1.65;
	margin: 22px auto 0;
	max-width: 720px;
}

.blog-single__media {
	border-radius: var(--pg-radius);
	margin: 36px 0;
	overflow: hidden;
}

.blog-single__media img {
	display: block;
	height: auto;
	width: 100%;
}

.blog-single__content {
	color: #343942;
	font-size: 18px;
	line-height: 1.75;
	margin-inline: auto;
	max-width: 760px;
}

.blog-single__content > * + * {
	margin-top: 1.25em;
}

.blog-single__content h2,
.blog-single__content h3 {
	margin-top: 1.7em;
}

.blog-single__content ul,
.blog-single__content ol {
	padding-left: 1.3em;
}

.blog-single__content li + li {
	margin-top: 0.5em;
}

.blog-single__cta {
	background: var(--pg-color-surface-muted);
	border: 1px solid rgba(185, 151, 85, 0.32);
	border-radius: var(--pg-radius);
	margin: 48px auto 0;
	max-width: 760px;
	padding: 32px;
	text-align: center;
}

.blog-single__cta h2 {
	font-size: clamp(28px, 4vw, 40px);
	margin-bottom: 14px;
}

.blog-single__cta p {
	color: #43474e;
	line-height: 1.65;
	margin: 0 auto 22px;
	max-width: 620px;
}

.blog-single__author {
	background: var(--pg-color-white);
	border: 1px solid rgba(185, 151, 85, 0.32);
	border-radius: var(--pg-radius);
	box-shadow: 0 10px 28px rgba(16, 47, 85, 0.045);
	margin: 32px auto 0;
	max-width: 760px;
	padding: 28px;
}

.blog-single__author-eyebrow {
	color: var(--pg-color-gold-text);
	font-size: 12px;
	font-weight: 800;
	letter-spacing: 0.06em;
	margin: 0 0 10px;
	text-transform: uppercase;
}

.blog-single__author h2 {
	font-size: clamp(26px, 3vw, 34px);
	margin-bottom: 10px;
}

.blog-single__author p {
	color: #43474e;
	line-height: 1.65;
	margin: 0 0 14px;
}

.blog-single__author .button {
	margin-top: 8px;
}

.blog-single__tags {
	align-items: center;
	border-top: 1px solid var(--pg-color-border-soft);
	display: flex;
	flex-wrap: wrap;
	gap: 10px;
	margin: 40px auto 0;
	max-width: 760px;
	padding-top: 20px;
}

.blog-single__tags span {
	color: var(--pg-color-gold-text);
	font-size: 12px;
	font-weight: 800;
	letter-spacing: 0.06em;
	text-transform: uppercase;
}

.blog-single__tags a {
	border: 1px solid rgba(185, 151, 85, 0.35);
	border-radius: var(--pg-radius);
	color: var(--pg-color-navy);
	font-size: 13px;
	font-weight: 700;
	padding: 8px 10px;
	text-decoration: none;
}

.blog-related {
	border-top: 1px solid var(--pg-color-border-soft);
	margin-top: 64px;
	padding-top: 56px;
}

.blog-related h2 {
	font-size: clamp(30px, 4vw, 44px);
	margin-bottom: 28px;
	text-align: center;
}

.guides-categories__nav {
	display: flex;
	flex-wrap: wrap;
	gap: 12px;
	justify-content: center;
}

.guides-categories__nav a {
	background: var(--pg-color-ivory);
	border: 1px solid rgba(185, 151, 85, 0.35);
	border-radius: var(--pg-radius);
	color: var(--pg-color-navy);
	font-size: 12px;
	font-weight: 800;
	letter-spacing: 0.06em;
	padding: 12px 14px;
	text-decoration: none;
	text-transform: uppercase;
}

.guides-categories__nav a:hover,
.guides-categories__nav a:focus-visible {
	background: var(--pg-color-navy);
	color: var(--pg-color-white);
}

.guides-newsletter {
	background: var(--pg-color-ivory);
}

.guides-newsletter__box {
	background: var(--pg-color-white);
	border: 1px solid rgba(185, 151, 85, 0.28);
	border-radius: var(--pg-radius);
	display: grid;
	gap: 32px;
	padding: 28px;
}

.guides-newsletter__form {
	display: grid;
	gap: 18px;
}

.guides-newsletter__fields {
	display: grid;
	gap: 16px;
}

.guides-field {
	display: grid;
	gap: 8px;
}

.guides-field label {
	color: var(--pg-color-navy);
	font-size: 13px;
	font-weight: 800;
	line-height: 1.35;
}

.guides-field input {
	background: var(--pg-color-white);
	border: 1px solid rgba(116, 119, 127, 0.42);
	border-radius: var(--pg-radius);
	color: var(--pg-color-anthracite);
	font: inherit;
	min-height: 46px;
	padding: 12px 14px;
	width: 100%;
}

.guides-field input:focus-visible {
	border-color: var(--pg-color-gold);
	box-shadow: 0 0 0 3px rgba(185, 151, 85, 0.24);
	outline: 0;
}

.guides-field [aria-invalid="true"] {
	border-color: var(--pg-color-red);
}

.guides-field__error {
	color: var(--pg-color-red);
	font-size: 13px;
	font-weight: 800;
	margin: 0;
}

.guides-field--checkbox {
	align-items: start;
	grid-template-columns: auto 1fr;
}

.guides-field--checkbox input {
	height: 20px;
	margin-top: 2px;
	min-height: 20px;
	width: 20px;
}

.guides-field--checkbox .guides-field__error {
	grid-column: 2;
}

.guides-newsletter__notice {
	border-radius: var(--pg-radius);
	font-weight: 800;
	line-height: 1.5;
	padding: 16px 18px;
}

.guides-newsletter__notice--success {
	background: rgba(185, 151, 85, 0.14);
	border: 1px solid rgba(185, 151, 85, 0.5);
	color: var(--pg-color-navy);
}

.guides-newsletter__notice--error {
	background: rgba(200, 32, 40, 0.08);
	border: 1px solid rgba(200, 32, 40, 0.35);
	color: var(--pg-color-red);
}

.guides-newsletter__honeypot {
	height: 1px;
	left: -9999px;
	overflow: hidden;
	position: absolute;
	top: auto;
	width: 1px;
}

.guides-newsletter .button {
	align-self: start;
	justify-content: center;
	min-height: 52px;
	padding: 14px 24px;
	width: 100%;
}

.guides-final-cta__box {
	background: var(--pg-color-navy);
	border-radius: var(--pg-radius);
	color: var(--pg-color-white);
	margin-inline: auto;
	max-width: 980px;
	padding: 56px 24px;
	text-align: center;
}

.guides-final-cta h2,
.guides-final-cta p {
	color: var(--pg-color-white);
	margin-inline: auto;
	max-width: 760px;
}

.guides-final-cta p {
	line-height: 1.7;
}

.guides-final-cta .button {
	margin-top: 20px;
}

.booking-page {
	background: var(--pg-color-ivory);
}

.booking-hero {
	background: var(--pg-color-ivory);
	padding-block: 56px 48px;
	text-align: center;
}

.booking-eyebrow {
	color: var(--pg-color-gold-text);
	font-family: var(--pg-font-sans);
	font-size: 12px;
	font-weight: 800;
	letter-spacing: 0.08em;
	margin: 0 0 18px;
	text-transform: uppercase;
}

.booking-hero__content {
	margin-inline: auto;
	max-width: 860px;
}

.booking-hero h1 {
	font-size: clamp(34px, 5vw, 56px);
	line-height: 1.12;
	margin: 0 auto 18px;
	max-width: 820px;
}

.booking-hero__media {
	margin: 48px auto 0;
	max-width: 1040px;
}

.booking-hero__media img {
	aspect-ratio: 4 / 5;
	border-radius: var(--pg-radius);
	box-shadow: 0 18px 44px rgba(16, 47, 85, 0.14);
	display: block;
	height: auto;
	object-fit: cover;
	width: 100%;
}

@media (min-width: 768px) {
	.booking-hero__media img {
		aspect-ratio: 16 / 7;
	}
}

.booking-hero p {
	color: #43474e;
	font-size: 17px;
	line-height: 1.65;
	margin: 0 auto;
	max-width: 720px;
}

.booking-confirmation,
.booking-form-section {
	padding-block: 88px;
}

.booking-confirmation {
	background: var(--pg-color-white);
}

.booking-confirmation__box {
	background: rgba(185, 151, 85, 0.14);
	border: 1px solid rgba(185, 151, 85, 0.5);
	border-radius: var(--pg-radius);
	color: var(--pg-color-navy);
	margin-inline: auto;
	max-width: 900px;
	padding: 28px;
}

.booking-confirmation h2 {
	font-size: clamp(30px, 4vw, 44px);
	line-height: 1.12;
	margin-bottom: 12px;
}

.booking-confirmation p {
	line-height: 1.7;
	margin: 0;
}

.booking-form-section {
	background: var(--pg-color-white);
}

.booking-form-shell {
	display: grid;
	gap: 40px;
}

.booking-form-intro h2 {
	font-size: clamp(32px, 4vw, 52px);
	line-height: 1.12;
	margin: 0;
}

.booking-form-intro p {
	color: #43474e;
	line-height: 1.75;
}

.booking-form {
	background: var(--pg-color-ivory);
	border: 1px solid rgba(185, 151, 85, 0.28);
	border-radius: var(--pg-radius);
	padding: 24px;
}

.booking-progress {
	display: grid;
	gap: 8px;
	margin-bottom: 28px;
}

.booking-progress button {
	align-items: center;
	background: var(--pg-color-white);
	border: 1px solid rgba(185, 151, 85, 0.28);
	border-radius: var(--pg-radius);
	color: var(--pg-color-navy);
	cursor: pointer;
	display: grid;
	font: inherit;
	font-size: 12px;
	font-weight: 800;
	gap: 10px;
	grid-template-columns: auto 1fr;
	letter-spacing: 0.04em;
	padding: 10px 12px;
	text-align: left;
	text-transform: uppercase;
}

.booking-progress button span {
	align-items: center;
	background: var(--pg-color-navy);
	border-radius: var(--pg-radius);
	color: var(--pg-color-white);
	display: inline-flex;
	font-size: 12px;
	height: 26px;
	justify-content: center;
	width: 26px;
}

.booking-progress button[aria-current="step"] {
	border-color: var(--pg-color-gold);
	box-shadow: inset 4px 0 0 var(--pg-color-gold);
}

.booking-step {
	border: 0;
	display: grid;
	gap: 22px;
	margin: 0 0 24px;
	min-inline-size: 0;
	padding: 0;
}

.booking-step[hidden] {
	display: none;
}

.booking-step legend {
	color: var(--pg-color-navy);
	font-family: var(--pg-font-serif);
	font-size: clamp(28px, 4vw, 42px);
	font-weight: 700;
	line-height: 1.15;
	margin-bottom: 22px;
	padding: 0;
}

.booking-grid {
	display: grid;
	gap: 18px;
}

.booking-field {
	display: grid;
	gap: 8px;
}

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

.booking-field label,
.booking-radio-group > p {
	color: var(--pg-color-navy);
	font-size: 13px;
	font-weight: 800;
	line-height: 1.35;
	margin: 0;
}

.booking-field input,
.booking-field select,
.booking-field textarea {
	background: var(--pg-color-white);
	border: 1px solid rgba(116, 119, 127, 0.42);
	border-radius: var(--pg-radius);
	color: var(--pg-color-anthracite);
	font: inherit;
	min-height: 46px;
	padding: 12px 14px;
	width: 100%;
}

.booking-field textarea {
	min-height: 130px;
	resize: vertical;
}

.booking-field input:focus-visible,
.booking-field select:focus-visible,
.booking-field textarea:focus-visible,
.booking-progress button:focus-visible {
	border-color: var(--pg-color-gold);
	box-shadow: 0 0 0 3px rgba(185, 151, 85, 0.24);
	outline: 0;
}

.booking-field [aria-invalid="true"],
.booking-radio-group [aria-invalid="true"] {
	border-color: var(--pg-color-red);
}

.booking-field__error {
	color: var(--pg-color-red);
	font-size: 13px;
	font-weight: 800;
	margin: 0;
}

.booking-radio-group > div {
	display: grid;
	gap: 10px;
}

.booking-radio-group label {
	align-items: center;
	background: var(--pg-color-white);
	border: 1px solid rgba(185, 151, 85, 0.28);
	border-radius: var(--pg-radius);
	display: flex;
	gap: 10px;
	padding: 12px;
}

.booking-radio-group input {
	min-height: auto;
	width: auto;
}

.booking-field--checkbox {
	align-items: start;
	grid-template-columns: auto 1fr;
	margin-bottom: 16px;
}

.booking-field--checkbox input {
	height: 20px;
	margin-top: 2px;
	min-height: 20px;
	width: 20px;
}

.booking-field--checkbox .booking-field__error {
	grid-column: 2;
}

.booking-error-summary {
	background: rgba(200, 32, 40, 0.08);
	border: 1px solid rgba(200, 32, 40, 0.35);
	border-radius: var(--pg-radius);
	color: var(--pg-color-red);
	font-weight: 800;
	margin-bottom: 24px;
	padding: 18px;
}

.booking-error-summary p {
	margin-top: 0;
}

.booking-error-summary a {
	color: var(--pg-color-red);
}

.booking-summary {
	display: grid;
	gap: 12px;
	margin: 0;
}

.booking-summary div {
	background: var(--pg-color-white);
	border: 1px solid rgba(185, 151, 85, 0.28);
	border-radius: var(--pg-radius);
	display: grid;
	gap: 6px;
	padding: 14px;
}

.booking-summary dt {
	color: var(--pg-color-gold-text);
	font-size: 12px;
	font-weight: 800;
	letter-spacing: 0.06em;
	text-transform: uppercase;
}

.booking-summary dd {
	color: var(--pg-color-navy);
	font-weight: 800;
	line-height: 1.45;
	margin: 0;
	overflow-wrap: anywhere;
}

.booking-notice {
	background: var(--pg-color-white);
	border-left: 3px solid var(--pg-color-gold);
	border-radius: var(--pg-radius);
	color: #43474e;
	line-height: 1.7;
	margin-bottom: 24px;
	padding: 20px;
}

.booking-notice p {
	margin: 0;
}

.booking-form__honeypot {
	height: 1px;
	left: -9999px;
	overflow: hidden;
	position: absolute;
	top: auto;
	width: 1px;
}

.booking-controls {
	display: flex;
	flex-wrap: wrap;
	gap: 12px;
	justify-content: space-between;
	margin-top: 24px;
}

.booking-controls [hidden] {
	display: none;
}

.booking-submit {
	justify-content: center;
	width: 100%;
}

.booking-form--enhanced .booking-step {
	margin-bottom: 0;
}

.screen-reader-text {
	clip: rect(1px, 1px, 1px, 1px);
	height: 1px;
	overflow: hidden;
	position: absolute;
	white-space: nowrap;
	width: 1px;
}

.screen-reader-text:focus {
	background: var(--pg-color-white);
	clip: auto;
	color: var(--pg-color-navy);
	height: auto;
	left: 20px;
	padding: 12px 16px;
	top: 20px;
	width: auto;
	z-index: 100000;
}

.home-professional__content,
.services-continuous__content,
.single-service-content,
.contact-details__content,
.booking-form-intro {
	max-width: var(--pg-readable-width);
}

.home-service-card,
.service-overview-card,
.package-card,
.guide-card,
.about-value-card,
.single-service-card-list li {
	box-shadow: 0 10px 28px rgba(16, 47, 85, 0.045);
}

.home-service-card h3,
.service-overview-card h4,
.package-card h3,
.guide-card h3 {
	text-wrap: balance;
}

.home-card,
.home-package,
.package-card,
.guide-card,
.service-overview-card {
	height: 100%;
}

.package-card__content {
	display: flex;
	flex: 1;
	flex-direction: column;
}

.package-card__content ul {
	flex: 1;
}

.contact-details__grid,
.contact-consultation__steps,
.booking-summary__list {
	gap: var(--pg-card-gap);
}

@media (min-width: 768px) {
	:root {
		--pg-container-gutter: 24px;
	}

	.site-main {
		padding-block: 80px;
	}

	.site-footer {
		padding-block-end: 48px;
	}

	.site-footer__inner {
		grid-template-columns: minmax(0, 1.5fr) repeat(3, minmax(0, 1fr));
	}

	.site-footer__bottom {
		flex-direction: row;
		justify-content: space-between;
	}

	.mobile-contact-bar {
		display: none;
	}

	.home-section,
	.home-professional,
	.home-benefits,
	.home-final-cta {
		padding-block: 96px;
	}

	.home-trust__list {
		grid-template-columns: repeat(5, minmax(0, 1fr));
	}

	.home-trust__list--count-3 {
		grid-template-columns: repeat(3, minmax(180px, 1fr));
		margin-inline: auto;
		max-width: 780px;
	}

	.home-trust__list--count-4 {
		grid-template-columns: repeat(4, minmax(0, 1fr));
	}

	.home-card-grid--four,
	.home-package-grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.home-service-grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.home-first-meeting__grid {
		grid-template-columns: minmax(0, 0.95fr) minmax(320px, 0.75fr);
	}

	.home-professional__grid,
	.home-benefits__grid,
	.home-resources__grid {
		grid-template-columns: minmax(0, 0.9fr) minmax(0, 1.1fr);
	}

	.home-final-cta__box {
		padding: 72px 56px;
	}

	.about-profile,
	.about-approach,
	.about-areas,
	.about-final-cta {
		padding-block: 112px;
	}

	.about-profile__grid {
		grid-template-columns: minmax(280px, 0.82fr) minmax(0, 1.18fr);
	}

	.about-profile__card {
		margin-inline: 48px -28px;
	}

	.about-values__grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.about-approach__grid {
		grid-template-columns: minmax(0, 0.95fr) minmax(0, 1.05fr);
	}

	.about-approach__content {
		display: contents;
	}

	.about-approach__content > .about-label,
	.about-approach__content > h2,
	.about-approach__content > p {
		grid-column: 1 / -1;
		justify-self: center;
		max-width: 860px;
	}

	.about-approach__content > p {
		max-width: 720px;
	}

	.about-approach__steps {
		grid-column: 1;
	}

	.about-approach__visuals {
		grid-column: 2;
	}

	.about-areas__list {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.services-objectives,
	.services-grid-section,
	.services-method,
	.services-final-cta {
		padding-block: 96px;
	}

	.services-objectives__grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.services-grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.services-grid--assets {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.services-grid--assets .service-overview-card--muted {
		grid-column: 1 / -1;
	}

	.services-continuous {
		padding-block: 112px;
	}

	.services-continuous__grid {
		grid-template-columns: minmax(280px, 0.82fr) minmax(0, 1.18fr);
	}

	.services-method__list {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.services-final-cta__box {
		padding: 72px 56px;
	}

	.single-service-hero__grid {
		grid-template-columns: minmax(0, 7fr) minmax(300px, 5fr);
	}

	.single-service-section,
	.single-service-final-cta {
		padding-block: 96px;
	}

	.single-service-two-col {
		grid-template-columns: minmax(0, 0.9fr) minmax(0, 1.1fr);
	}

	.single-service-overview__grid,
	.single-service-split {
		gap: 56px;
	}

	.single-service-overview__grid {
		grid-template-columns: minmax(0, 1.1fr) minmax(0, 0.9fr);
	}

	.single-service-overview__grid--solo {
		grid-template-columns: minmax(0, 1fr);
	}

	.single-service-split {
		grid-template-columns: minmax(0, 0.8fr) minmax(0, 1.2fr);
	}

	.single-service-assist,
	.single-service-card {
		padding: 32px;
	}

	.single-service-statement {
		padding-block: 72px;
	}

	.single-service-closing {
		padding-block: 88px;
	}

	.single-service-before,
	.single-service-callout {
		padding: 28px 32px;
	}

	.single-service-panel {
		grid-template-columns: minmax(0, 0.8fr) minmax(0, 1.2fr);
	}

	.single-service-card-list,
	.single-service-process__list,
	.single-service-related__grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.single-service-final-cta__box {
		padding: 72px 56px;
	}

	.packages-introduction,
	.packages-grid-section,
	.packages-comparison,
	.packages-costs,
	.packages-faq,
	.packages-final-cta {
		padding-block: 104px;
	}

	.packages-introduction__grid,
	.packages-costs__grid {
		grid-template-columns: minmax(0, 0.9fr) minmax(0, 1.1fr);
	}

	.packages-grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.packages-costs__panel ul {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.contact-details,
	.contact-consultation,
	.contact-form-section,
	.contact-final-note {
		padding-block: 104px;
	}

	.contact-details__grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.contact-consultation__grid,
	.contact-form-section__grid {
		grid-template-columns: minmax(0, 0.8fr) minmax(0, 1.2fr);
	}

	.contact-form {
		padding: 32px;
	}

	.guides-featured,
	.guides-articles,
	.guides-categories,
	.guides-newsletter,
	.guides-final-cta {
		padding-block: 104px;
	}

	.guides-featured__grid,
	.guides-newsletter__box {
		grid-template-columns: minmax(280px, 0.82fr) minmax(0, 1.18fr);
	}

	.guides-articles__grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.guides-newsletter__fields {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.guides-newsletter .button {
		align-self: start;
		justify-self: start;
		max-width: 260px;
		width: 220px;
	}

	.guides-field--checkbox {
		grid-column: 1 / -1;
	}

	.booking-confirmation,
	.booking-form-section {
		padding-block: 104px;
	}

	.booking-form-shell {
		grid-template-columns: minmax(260px, 0.72fr) minmax(0, 1.28fr);
	}

	.booking-form-intro {
		position: sticky;
		top: calc(var(--pg-header-height) + 32px);
	}

	.booking-form {
		padding: 32px;
	}

	.booking-progress {
		grid-template-columns: repeat(7, minmax(0, 1fr));
	}

	.booking-progress button {
		align-content: start;
		grid-template-columns: 1fr;
		min-height: 92px;
	}

	.booking-grid,
	.booking-summary {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

@media (min-width: 1024px) {
	:root {
		--pg-header-height: 72px;
	}

	.site-navigation--desktop,
	.site-header__actions {
		display: flex;
	}

	.menu-toggle,
	.mobile-navigation {
		display: none;
	}

	.page-scroll-progress {
		display: none;
	}

	.site-header__inner {
		gap: 24px;
	}

	.site-branding__logo {
		height: 48px;
		width: 48px;
	}

	.site-branding__name {
		font-size: 20px;
	}

	.home-section,
	.home-professional,
	.home-benefits,
	.home-final-cta {
		padding-block: 120px;
	}

	.home-hero__content {
		max-width: 620px;
	}

	.home-card-grid--four,
	.home-package-grid {
		grid-template-columns: repeat(4, minmax(0, 1fr));
	}

	.home-service-grid {
		grid-template-columns: repeat(4, minmax(0, 1fr));
	}

	.home-service-card:nth-child(1),
	.home-service-card:nth-child(2),
	.home-service-card:nth-child(3) {
		grid-column: span 1;
	}

	.home-service-card:nth-child(7) {
		grid-column: span 2;
	}

	.home-professional__grid {
		grid-template-columns: minmax(360px, 0.82fr) minmax(0, 1.18fr);
	}

	.home-benefits__grid {
		grid-template-columns: minmax(0, 0.9fr) minmax(0, 1fr);
	}

	.about-hero {
		padding-block: 120px 88px;
	}

	.about-profile__grid {
		gap: 72px;
		grid-template-columns: 5fr 7fr;
	}

	.about-values__grid {
		grid-template-columns: repeat(4, minmax(0, 1fr));
	}

	.about-approach__grid {
		gap: 72px;
		grid-template-columns: 1fr 1fr;
	}

	.about-areas__list {
		grid-template-columns: repeat(4, minmax(0, 1fr));
	}

	.services-hero {
		padding-block: 112px 80px;
	}

	.services-objectives__grid {
		grid-template-columns: repeat(4, minmax(0, 1fr));
	}

	.services-grid {
		grid-template-columns: repeat(3, minmax(0, 1fr));
	}

	.services-grid--business,
	.services-grid--assets {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.service-overview-card:nth-child(7) {
		grid-column: span 2;
	}

	.services-continuous__grid {
		gap: 72px;
		grid-template-columns: 5fr 7fr;
	}

	.services-method__list {
		grid-template-columns: repeat(4, minmax(0, 1fr));
	}

	.single-service-hero {
		padding-block: 64px 96px;
	}

	.contact-hero {
		padding-block: 72px 64px;
	}

	.contact-hero__grid {
		grid-template-columns: minmax(0, 1.08fr) minmax(320px, 0.72fr);
	}

	.guides-hero {
		padding-block: 72px 64px;
	}

	.guides-hero__grid {
		grid-template-columns: minmax(0, 1.08fr) minmax(320px, 0.72fr);
	}

	.guides-articles__grid {
		grid-template-columns: repeat(3, minmax(0, 1fr));
	}

	.booking-hero {
		padding-block: 72px 64px;
	}

	.packages-hero {
		padding-block: 72px 64px;
	}

	.packages-hero__grid {
		grid-template-columns: minmax(0, 1.08fr) minmax(320px, 0.72fr);
	}

	.packages-grid {
		grid-template-columns: repeat(4, minmax(0, 1fr));
	}

	.package-card.is-featured {
		transform: translateY(-18px);
	}

	.package-card.is-featured:hover,
	.package-card.is-featured:focus-within {
		transform: translateY(-22px);
	}

	.single-service-process__list {
		grid-template-columns: repeat(5, minmax(0, 1fr));
	}

	.single-service-process__list li {
		align-content: start;
		grid-template-columns: 1fr;
		min-height: 180px;
	}

	.single-service-process__list strong {
		font-size: 18px;
	}

	.single-service-related__grid {
		grid-template-columns: repeat(3, minmax(0, 1fr));
	}
}

@media (max-width: 1023px) {
	.packages-comparison__table-wrap::before {
		display: block;
	}
}

@media (max-width: 767px) {
	body {
		padding-block-end: 0;
	}

	.form-feedback-anchor {
		scroll-margin-top: 96px;
	}

	.site-footer__navigation,
	.mobile-contact-bar {
		display: none;
	}

	.site-branding__name {
		font-size: 16px;
	}

	.home-hero {
		min-height: 0;
	}

	.home-hero__inner {
		padding-block: 36px 40px;
	}

	.home-hero__content {
		max-width: none;
		width: 100%;
	}

	.home-hero__headline {
		margin-block-end: 8px;
		min-height: calc(2.15 * clamp(26px, 7.6vw, 34px));
	}

	.home-hero h1 {
		font-size: clamp(26px, 7.6vw, 34px);
	}

	/* Mobile: brand mark stays above the titles, larger. */
	.home-hero__brandmark {
		margin: 0 auto clamp(18px, 5vw, 26px);
		width: clamp(104px, 30vw, 128px);
	}

	.home-hero__slide-lead {
		font-size: clamp(17px, 4.6vw, 20px);
		max-width: none;
	}

	.home-hero__slider-controls {
		gap: 14px;
		margin-block-start: 20px;
	}

	.home-hero-intro {
		padding-block: 38px;
	}

	.home-hero-intro__inner {
		gap: 14px;
		margin-inline: auto;
		text-align: center;
	}

	.home-hero-intro__eyebrow,
	.home-hero-intro h2,
	.home-hero-intro p {
		margin-inline: auto;
	}

	.home-hero-intro__actions {
		justify-content: center;
		margin-block-start: 8px;
	}

	.home-hero-intro__actions .button {
		width: min(100%, 286px);
	}

	.home-section,
	.home-professional,
	.home-benefits,
	.home-final-cta {
		padding-block: 64px;
	}

	.home-eyebrow::before,
	.home-eyebrow::after {
		width: 22px;
	}

	.home-actions,
	.home-actions--center {
		display: grid;
	}

	.home-actions .button {
		width: 100%;
	}

	.home-first-meeting__content p:not(.home-eyebrow) {
		text-align: center;
	}

	.home-first-meeting {
		text-align: center;
	}

	.home-first-meeting__content,
	.home-first-meeting__steps {
		margin-inline: auto;
	}

	.home-first-meeting .home-eyebrow {
		justify-content: center;
		margin-inline: auto;
		text-align: center;
	}

	.home-first-meeting__content h2 {
		margin-inline: auto;
		text-align: center;
	}

	.home-first-meeting__actions {
		justify-content: center;
	}

	.home-first-meeting__step {
		grid-template-columns: 1fr;
		justify-items: center;
		text-align: center;
	}

	.home-first-meeting__step-icon {
		margin-inline: auto;
	}

	.home-hero__portrait,
	.home-professional__visual {
		min-height: 280px;
	}

	.home-package.is-featured {
		transform: none;
	}

	.about-hero {
		padding-block: 64px 44px;
	}

	.about-eyebrow::before,
	.about-eyebrow::after {
		width: 36px;
	}

	.about-profile,
	.about-approach,
	.about-areas,
	.about-final-cta,
	.about-values {
		padding-block: 64px;
	}

	.about-profile__meta,
	.about-approach__visuals {
		grid-template-columns: 1fr;
	}

	.about-visual-card--large {
		grid-row: auto;
		min-height: 220px;
	}

	.about-profile__portrait {
		min-height: 320px;
	}

	.services-hero {
		padding-block: 64px 44px;
	}

	.services-objectives,
	.services-grid-section,
	.services-method,
	.services-final-cta,
	.services-continuous {
		padding-block: 64px;
	}

	.services-divider::before,
	.services-divider::after {
		width: 72px;
	}

	.services-category-heading {
		align-items: flex-start;
		flex-direction: column;
		gap: 14px;
	}

	.services-category-heading i {
		width: 100%;
	}

	.service-overview-card {
		min-height: auto;
	}

	.services-continuous__visual {
		min-height: 280px;
	}

	.services-continuous__badge {
		right: 16px;
		width: min(210px, calc(100% - 32px));
	}

	.single-service-hero {
		padding-block: 36px 56px;
	}

	.single-service-section,
	.single-service-final-cta {
		padding-block: 64px;
	}

	.single-service-panel {
		padding: 24px;
	}

	.single-service-placeholder {
		min-height: 280px;
	}

	.packages-hero {
		background: var(--pg-color-ivory);
		padding-block: 40px 44px;
	}

	.packages-hero__seal {
		min-height: 260px;
	}

	.packages-introduction,
	.packages-grid-section,
	.packages-comparison,
	.packages-costs,
	.packages-faq,
	.packages-final-cta {
		padding-block: 64px;
	}

	.package-card {
		padding: 24px;
	}

	.package-card.is-featured {
		transform: none;
	}

	.packages-comparison__table-wrap {
		display: none;
	}

	.packages-comparison__cards {
		display: grid;
		gap: 18px;
	}

	.packages-final-cta__actions {
		display: grid;
	}

	.packages-final-cta__actions .button {
		width: 100%;
	}

	.contact-hero {
		padding-block: 40px 44px;
	}

	.contact-hero__actions {
		display: grid;
	}

	.contact-hero__actions .button {
		width: 100%;
	}

	.contact-hero__media {
		margin-top: 8px;
	}

	.contact-hero__media figcaption {
		bottom: auto;
		left: 16px;
		margin-top: -38px;
		position: relative;
		width: calc(100% - 32px);
	}

	.contact-details,
	.contact-consultation,
	.contact-form-section,
	.contact-final-note {
		padding-block: 64px;
	}

	.contact-form-section__intro {
		position: static;
	}

	.contact-form {
		padding: 20px;
	}

	.contact-field--checkbox {
		gap: 10px;
	}

	.guides-hero {
		padding-block: 40px 44px;
	}

	.guides-hero__mark {
		min-height: 240px;
	}

	.guides-featured,
	.guides-articles,
	.guides-categories,
	.guides-newsletter,
	.guides-final-cta {
		padding-block: 56px;
	}

	.guides-featured__cover {
		min-height: 180px;
	}

	.guides-newsletter__box {
		padding: 22px;
	}

	.guides-field--checkbox {
		gap: 10px;
	}

	.booking-hero {
		padding-block: 40px 44px;
	}

	.booking-confirmation,
	.booking-form-section {
		padding-block: 64px;
	}

	.booking-form-intro {
		position: static;
	}

	.booking-form {
		padding: 20px;
	}

	.booking-progress button {
		font-size: 12px;
	}

	.booking-controls {
		display: grid;
	}

	.booking-controls .button,
	.booking-submit {
		width: 100%;
	}

	.booking-field--checkbox {
		gap: 10px;
	}
}

/* ==========================================================================
   Icon System
   ========================================================================== */

.pg-icon {
	display: inline-block;
	width: 24px;
	height: 24px;
	flex-shrink: 0;
	vertical-align: middle;
	stroke: currentColor;
	fill: none;
	stroke-width: 1.5;
	stroke-linecap: round;
	stroke-linejoin: round;
}

/* Color variants */
.pg-icon--navy {
	color: #102F55;
}

.pg-icon--gold {
	color: #B99755;
}

.pg-icon--white {
	color: #ffffff;
}

.pg-icon--red {
	color: #C82028;
}

/* Size variants */
.pg-icon--sm {
	width: 20px;
	height: 20px;
}

.pg-icon--md {
	width: 28px;
	height: 28px;
}

.pg-icon--lg {
	width: 40px;
	height: 40px;
}

.pg-icon--feature {
	width: 48px;
	height: 48px;
}

/* Transitions - respect prefers-reduced-motion */
.pg-icon {
	transition: color 0.2s ease, opacity 0.2s ease;
}

@media (prefers-reduced-motion: reduce) {
	.pg-icon {
		transition: none;
	}
}

/* Icon within interactive elements */
button .pg-icon,
a .pg-icon {
	transition: inherit;
}

/* Hover states for interactive icons */
button:hover .pg-icon,
a:hover .pg-icon {
	opacity: 0.8;
}

/* Focus states */
button:focus .pg-icon,
a:focus .pg-icon {
	outline: 2px solid #102F55;
	outline-offset: 2px;
	border-radius: 2px;
}

/* Icon alignment in various contexts */
.pg-icon + span,
span + .pg-icon {
	margin-left: 8px;
}

.pg-icon {
	margin-right: 0;
}

/* Icons in cards */
.card .pg-icon,
.service-card .pg-icon {
	margin-bottom: 12px;
}

/* Icons in buttons */
.button .pg-icon {
	margin-right: 8px;
}

/* Icons in list items */
li .pg-icon {
	margin-right: 12px;
	flex-shrink: 0;
}

/* Responsive icon sizing */
@media screen and (max-width: 768px) {
	.pg-icon--lg {
		width: 32px;
		height: 32px;
	}

	.pg-icon--feature {
		width: 40px;
		height: 40px;
	}
}

/* Service Overview Card Image */
.service-overview-card__image {
	display: block;
	width: 100%;
	height: auto;
	object-fit: cover;
}

.service-overview-card__image img {
	display: block;
	width: 100%;
	height: auto;
}

@media (max-width: 767px) {
	h1,
	.home-hero h1,
	.about-hero h1,
	.services-hero h1,
	.single-service-hero h1 {
		letter-spacing: -1px;
	}
}

/* Booking call to action kept in reach on phones and tablets (template-parts/global/mobile-cta.php). */
.mobile-cta-spacer {
	block-size: calc(72px + env(safe-area-inset-bottom, 0px));
}

.mobile-cta {
	background: rgba(252, 249, 248, 0.98);
	border-block-start: 1px solid var(--pg-color-border-soft);
	box-shadow: 0 -10px 28px rgba(16, 47, 85, 0.1);
	inset-block-end: 0;
	inset-inline: 0;
	padding: 12px var(--pg-container-gutter) calc(12px + env(safe-area-inset-bottom, 0px));
	position: fixed;
	z-index: 80;
}

.mobile-cta .mobile-cta__button {
	min-height: 48px;
	width: 100%;
}

.has-cta-reveal .mobile-cta {
	transition: transform 220ms ease, visibility 0s linear 220ms;
}

.has-cta-reveal .mobile-cta:not(.is-visible) {
	transform: translateY(100%);
	visibility: hidden;
}

.has-cta-reveal .mobile-cta.is-visible {
	transition-delay: 0s;
}

@media (prefers-reduced-motion: reduce) {
	.has-cta-reveal .mobile-cta {
		transition: none;
	}
}

/* Keyboard focus is scrolled clear of the fixed bar. */
html {
	scroll-padding-bottom: calc(72px + env(safe-area-inset-bottom, 0px));
}

@media (min-width: 1024px) {
	.mobile-cta,
	.mobile-cta-spacer {
		display: none;
	}

	html {
		scroll-padding-bottom: 0;
	}
}

/* Comfortable tap targets on touch screens without changing the desktop buttons. */
@media (pointer: coarse) {
	.button {
		min-height: 44px;
	}

	.service-overview-card a,
	.guide-card__link {
		align-items: center;
		display: inline-flex;
		min-height: 44px;
	}

	.service-overview-card a {
		align-self: flex-start;
	}
}

/* List of invalid fields shown after a failed submit (contact and booking forms). */
.form-error-list {
	display: grid;
	font-weight: 600;
	gap: 6px;
	list-style: disc;
	margin: 10px 0 0;
	padding-inline-start: 20px;
}

.form-error-list a {
	color: inherit;
	text-decoration: underline;
	text-underline-offset: 3px;
}

[data-form-error-summary]:focus-visible {
	outline: 3px solid var(--pg-color-red);
	outline-offset: 3px;
}

/* Inner-page heroes (template-parts/global/page-hero.php): the home hero, with a title sized
   for the longer headlines of these pages so the whole opening fits the first screen. */
.page-hero .home-hero__content {
	width: min(100%, 820px);
}

.page-hero h1 {
	font-size: clamp(26px, 4.4vw, 54px);
	max-width: 24ch;
}

.page-hero .home-hero__headline {
	min-height: 0;
}

@media (min-width: 768px) {
	.page-hero .home-hero__inner {
		padding-block: clamp(56px, 8vw, 96px);
	}
}

/* A little more shade over the photo: these heroes carry more text than the home slides. */
.page-hero .home-hero__scrim {
	background:
		linear-gradient(rgba(11, 28, 48, 0.3), rgba(11, 28, 48, 0.3)),
		linear-gradient(94deg, rgba(11, 28, 48, 0.94) 0%, rgba(11, 28, 48, 0.78) 40%, rgba(11, 28, 48, 0.34) 72%, rgba(11, 28, 48, 0.12) 100%),
		linear-gradient(180deg, rgba(11, 28, 48, 0.12) 0%, rgba(11, 28, 48, 0) 34%, rgba(11, 28, 48, 0.55) 100%);
}

.page-hero .home-hero__slide-lead {
	font-size: clamp(18px, 1.6vw, 22px);
	max-width: 44ch;
}

.page-hero .home-hero__slide-text {
	font-size: clamp(16px, 1.2vw, 18px);
	line-height: 1.6;
}
