/* ==========================================================================
   Page sections (core blocks with ps-* classes) — loaded on the site and in the editor.
   ========================================================================== */

/* Full-width template: no theme spacing around the content. */
.ps-page {
	overflow-x: clip;
}

.ps-page > * + * {
	margin-top: 0;
}

/* WordPress and Blocksy add 1.5em gaps between blocks in groups, columns and Details
   (incl. under <summary>). Sections set their own spacing, so clear them. Same strength
   as Blocksy's rule, so any spacing set further down still wins. */
:where(.ps-page, .ps-footer) :is(.is-layout-flow, .is-layout-constrained) > * {
	margin-block: 0;
}

.ps-section {
	padding-block: 104px;
}

.ps-section :where(h2, h3, p) {
	margin-top: 0;
}

.ps-section h2 {
	margin-bottom: 0;
	color: #000;
	font-size: clamp(24px, 16.667px + 2.037vw, 46px);
	font-weight: 700;
	line-height: 1.15;
	letter-spacing: -.01em;
}

.ps-section p {
	font-size: 15px;
	line-height: 1.5;
}

.ps-section .wp-block-columns {
	margin-bottom: 0;
}

/* --- Buttons ----------------------------------------------------------- */

.ps-btn--white {
	background: #fff;
	color: #000;
}

.ps-btn--white:hover,
.ps-btn--white:focus-visible {
	background: var(--ps-yellow);
	color: #000;
}

.ps-btn--outline-white {
	border-color: #fff;
	color: #fff;
}

.ps-btn--outline-white:hover,
.ps-btn--outline-white:focus-visible {
	background: #fff;
	color: #000;
}

.ps-btn--dark {
	background: var(--ps-green-900);
	color: #fff;
}

.ps-btn--dark:hover,
.ps-btn--dark:focus-visible {
	background: var(--ps-green);
	color: #fff;
}

/* Core Button block styles (picked in the block sidebar). */
.wp-block-button[class*="is-style-ps-"] .wp-block-button__link {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 180px;
	min-height: 52px;
	padding: 0 28px;
	border: 2px solid transparent;
	border-radius: 999px;
	font-size: 14px;
	font-weight: 500;
	line-height: 1;
	transition: background-color .2s, color .2s, border-color .2s;
}

.wp-block-button.is-style-ps-green .wp-block-button__link { background: var(--ps-green); color: var(--ps-yellow); }
.wp-block-button.is-style-ps-green .wp-block-button__link:hover { background: var(--ps-green-900); }

.wp-block-button.is-style-ps-yellow .wp-block-button__link { background: var(--ps-yellow); color: #000; }
.wp-block-button.is-style-ps-yellow .wp-block-button__link:hover { background: #fff; }

.wp-block-button.is-style-ps-white .wp-block-button__link { background: #fff; color: #000; }
.wp-block-button.is-style-ps-white .wp-block-button__link:hover { background: var(--ps-yellow); }

.wp-block-button.is-style-ps-outline-white .wp-block-button__link { border-color: #fff; background: transparent; color: #fff; }
.wp-block-button.is-style-ps-outline-white .wp-block-button__link:hover { background: #fff; color: #000; }

.wp-block-button.is-style-ps-outline-yellow .wp-block-button__link { border-color: var(--ps-yellow); background: transparent; color: var(--ps-yellow); }
.wp-block-button.is-style-ps-outline-yellow .wp-block-button__link:hover { background: var(--ps-yellow); color: #000; }

/* --- Pop-ups ------------------------------------------------------------ */

.ps-dialog {
	width: min(560px, calc(100vw - 32px));
	max-height: calc(100vh - 32px);
	padding: 0;
	border: 0;
	border-radius: 18px;
	background: #fff;
	color: #000;
}

.ps-dialog::backdrop {
	background: rgba(0, 0, 0, .55);
}

.ps-dialog__body {
	display: flex;
	flex-direction: column;
	align-items: center;
	padding: clamp(32px, 26.667px + 1.4815vw, 48px) clamp(22px, 16px + 1.6667vw, 40px) clamp(28px, 22.667px + 1.4815vw, 44px);
	text-align: center;
}

.ps-dialog__close {
	min-width: 180px;
	cursor: pointer;
}

/* --- Accordion (Details block, "Accordion" style) ------------------------ */

.wp-block-details.is-style-ps-accordion {
	margin: 0;
	border-bottom: 1px solid #e4e4e4;
}

.wp-block-details.is-style-ps-accordion summary {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 16px;
	padding: 20px 0;
	color: #000;
	font-size: 16px;
	font-weight: 600;
	list-style: none;
	cursor: pointer;
}

.wp-block-details.is-style-ps-accordion summary::-webkit-details-marker {
	display: none;
}

.wp-block-details.is-style-ps-accordion summary::after {
	content: "";
	flex-shrink: 0;
	width: 16px;
	height: 16px;
	background: url("../img/icons/plus.svg") center / contain no-repeat;
}

.wp-block-details.is-style-ps-accordion[open] summary::after {
	background-image: url("../img/icons/minus.svg");
	background-size: 14px auto;
}

.wp-block-details.is-style-ps-accordion > :not(summary) {
	margin: 0;
	padding: 0 48px 24px 0;
	font-size: 14px;
	line-height: 1.6;
}

/* --- Check-mark list (List block, "Check marks" style) ------------------- */

.wp-block-list.is-style-ps-checklist {
	margin: 0;
	padding: 0;
	list-style: none;
}

.wp-block-list.is-style-ps-checklist li {
	display: flex;
	align-items: center;
	gap: 14px;
	margin: 0;
	padding: 5px 0;
	font-size: 14px;
}

.wp-block-list.is-style-ps-checklist li::before {
	content: "";
	flex-shrink: 0;
	width: 16px;
	height: 16px;
	background: url("../img/icons/check-circle.svg") center / contain no-repeat;
}

/* --- Arrow link ---------------------------------------------------------- */

.ps-arrow-link a {
	display: inline-flex;
	align-items: center;
	gap: 14px;
	color: inherit;
	font-size: 14px;
	text-decoration: none;
}

.ps-arrow-link a::after {
	content: "";
	width: 30px;
	height: 30px;
	background: url("../img/icons/arrow-circle.svg") center / contain no-repeat;
	transition: transform .2s;
}

.ps-arrow-link a:hover::after {
	transform: translateX(4px);
}

/* --- Why Trusted Drive --------------------------------------------------- */

.ps-why {
	padding-top: 172px;
}

.ps-why__cols.wp-block-columns {
	gap: 88px;
}

.ps-why__text {
	flex: 1 1 0 !important;
}

.ps-why__driver {
	flex: 0 0 576px !important;
	padding-top: 38px;
}

.ps-why__text h2 {
	margin-bottom: 70px;
}

.ps-accordion > .wp-block-details:first-child {
	border-top: 0;
}

/* --- Who We Serve -------------------------------------------------------- */

.ps-serve__head,
.ps-serve__cards {
	max-width: calc(1080px + 2 * var(--ps-gutter));
}

.ps-serve__head {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 40px;
	margin-bottom: 78px;
}

.ps-serve__head h2 {
	padding-left: 22px;
}

.ps-serve__intro h3 {
	margin: 0 0 18px;
	color: #000;
	font-size: clamp(24px, 2.2vw, 31px);
	font-weight: 600;
	line-height: 1.15;
}

.ps-serve__intro p {
	max-width: 440px;
	margin: 0;
	font-size: 14px;
	line-height: 1.3;
}

.ps-serve__cards.wp-block-columns {
	gap: 19px;
}

.ps-card {
	display: flex;
	flex-direction: column;
	min-height: 343px;
	padding: 38px 38px 40px;
	border-radius: 6px;
	background: var(--ps-green);
	color: #fff;
}

.ps-card h3 {
	margin: 0 0 18px;
	color: var(--ps-yellow);
	font-size: 20px;
	font-weight: 600;
}

.ps-card p {
	margin: 0;
	font-size: 14px;
	line-height: 1.5;
}

.ps-card .ps-card__icon {
	order: 3;
	margin: auto 0 0;
	padding-top: 24px;
}

.ps-card .ps-card__icon img {
	width: 80px;
	height: 80px;
}

/* --- Vehicle -------------------------------------------------------------- */

.ps-vehicle {
	padding-block: 130px 50px;
	background: var(--ps-surface);
}

.ps-vehicle__head {
	max-width: 480px;
	margin-bottom: 70px;
	text-align: center;
}

.ps-vehicle__head h2 {
	margin-bottom: 44px;
	white-space: nowrap;
}

.ps-vehicle__head h3 {
	margin: 0 0 26px;
	color: #000;
	font-size: 24px;
	font-weight: 600;
}

.ps-vehicle__head p {
	margin: 0;
	font-size: 14px;
	line-height: 1.3;
}

/* --- Pricing -------------------------------------------------------------- */

.ps-pricing-band {
	padding: 94px 40px 130px;
}

.ps-pricing-box {
	display: grid;
	grid-template-columns: minmax(0, 1fr) 422px;
	grid-template-areas:
		"intro card"
		"lists card"
		"discuss card";
	grid-template-rows: auto auto 1fr;
	column-gap: 150px;
	max-width: 1400px;
	margin: 0 auto;
	padding: 76px 108px 72px 127px;
	border-radius: 12px;
	background: var(--ps-green-900);
	color: #fff;
}

.ps-pricing-box__intro { grid-area: intro; padding-top: 52px; }
.ps-pricing-box__card { grid-area: card; }
.ps-pricing-box__lists { grid-area: lists; }
.ps-pricing-box__discuss { grid-area: discuss; }

.ps-pricing-box h2 {
	max-width: 600px;
	margin-bottom: 36px;
	color: var(--ps-yellow);
	font-size: clamp(30px, 3vw, 44px);
	line-height: 1.12;
}

.ps-pricing-box__intro p {
	max-width: 600px;
	margin: 0 0 48px;
	font-size: 14px;
	line-height: 1.4;
}

.ps-pricing-box__lists {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 32px;
	max-width: 520px;
}

.ps-pricing-box__list h3 {
	margin: 0 0 10px;
	color: var(--ps-yellow);
	font-size: 20px;
	font-weight: 600;
}

.ps-pricing-box .ps-pricing-box__discuss {
	align-self: start;
	margin: 56px 0 0;
}

/* --- Gallery -------------------------------------------------------------- */

.ps-gallery {
	padding-block: 120px 0;
}

.ps-gallery__head {
	margin-bottom: 70px;
	padding-left: calc(var(--ps-gutter) + 13px);
}

.ps-gallery__head h2 {
	margin-bottom: 52px;
}

.ps-gallery__head p {
	max-width: 560px;
	margin: 0;
	font-size: 14px;
	line-height: 1.3;
}

/* --- Call to action ------------------------------------------------------- */

.ps-cta {
	padding-block: clamp(80px, 36.667px + 12.037vw, 210px) 0;
}

.ps-cta__box {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 40px;
	max-width: 1196px;
	margin: 0 auto;
	padding: clamp(40px, 33.333px + 1.8519vw, 59px) clamp(32px, 2.667px + 8.1481vw, 154px) clamp(40px, 33.333px + 1.8519vw, 59px) clamp(32px, 5px + 7.5vw, 113px);
	border-radius: 14px;
	background: #000;
	color: #fff;
}

.ps-cta__box h2 {
	max-width: 660px;
	margin-bottom: 26px;
	color: #fff;
}

.ps-cta__box p {
	max-width: 480px;
	margin: 0;
	font-size: 15px;
	line-height: 1.45;
}

.ps-cta__buttons.wp-block-buttons {
	flex-direction: column;
	flex-wrap: nowrap;
	gap: 29px;
	margin: 0;
}

/* ==========================================================================
   Tablet
   ========================================================================== */

@media (max-width: 1199px) {
	.ps-why__cols.wp-block-columns {
		gap: 48px;
	}

	.ps-why__driver {
		flex-basis: 460px !important;
	}

	.ps-pricing-box {
		grid-template-columns: minmax(0, 1fr) 380px;
		column-gap: 56px;
		padding: 64px 56px 96px;
	}

}

@media (max-width: 1023px) {
	.ps-section {
		padding-block: 80px;
	}

	.ps-why {
		padding-top: 96px;
	}

	.ps-why__cols.wp-block-columns {
		flex-wrap: wrap !important;
	}

	.ps-why__text,
	.ps-why__driver {
		flex-basis: 100% !important;
	}

	.ps-why__text h2 {
		margin-bottom: 32px;
	}

	.ps-serve__cards.wp-block-columns {
		flex-wrap: wrap !important;
	}

	.ps-serve__cards .ps-card {
		flex-basis: calc(50% - 10px) !important;
		flex-grow: 1;
	}

	.ps-pricing-box {
		grid-template-columns: 1fr;
		grid-template-areas:
			"intro"
			"card"
			"lists"
			"discuss";
		padding: 48px 40px 64px;
	}

	.ps-pricing-box__intro {
		padding-top: 0;
	}

	.ps-pricing-box__card {
		margin-bottom: 40px;
	}

	.ps-pricing-box .ps-pricing-box__discuss {
		margin-top: 40px;
	}

	.ps-pricing-band {
		padding-inline: 20px;
	}

}

/* ==========================================================================
   Phone
   ========================================================================== */

@media (max-width: 599px) {
	.ps-section {
		padding-block: 56px;
	}

	.ps-section h2 {
		font-size: 22px;
	}

	.ps-why {
		padding-top: 48px;
	}

	.ps-why h2,
	.ps-serve h2 {
		color: var(--ps-green);
	}

	.ps-why__text h2 {
		margin-bottom: 22px;
	}

	.wp-block-details.is-style-ps-accordion {
		border-top: 1px solid #e4e4e4;
		border-bottom: 0;
	}

	.ps-accordion > .wp-block-details:last-child {
		border-bottom: 1px solid #e4e4e4;
	}

	.wp-block-details.is-style-ps-accordion summary {
		padding: 22px 0;
		font-size: 14px;
	}

	.wp-block-details.is-style-ps-accordion summary::after {
		width: 10px;
		height: 10px;
	}

	.wp-block-details.is-style-ps-accordion > :not(summary) {
		padding-right: 0;
		font-size: 13px;
		line-height: 1.7;
	}

	.ps-why__driver {
		padding-top: 0;
	}

	.ps-serve__head {
		display: block;
		margin-bottom: 28px;
	}

	.ps-serve__head h2 {
		margin-bottom: 26px;
		padding-left: 0;
	}

	.ps-serve__intro h3 {
		display: none;
	}

	.ps-serve__intro p {
		font-size: 13px;
	}

	.ps-serve__cards .ps-card {
		flex-basis: 100% !important;
	}

	.ps-card {
		display: grid;
		grid-template-columns: auto 1fr;
		align-content: end;
		column-gap: 10px;
		min-height: 225px;
		padding: 24px 20px 22px;
		border-radius: 10px;
	}

	.ps-card .ps-card__icon {
		order: 0;
		align-self: center;
		margin: 0 0 12px;
		padding: 0;
	}

	.ps-card .ps-card__icon img {
		width: 22px;
		height: 22px;
	}

	.ps-card h3 {
		align-self: center;
		margin-bottom: 12px;
		font-size: 15px;
	}

	.ps-card p {
		grid-column: 1 / -1;
		font-size: 12px;
		line-height: 1.6;
	}

	.ps-vehicle {
		padding-block: 48px 40px;
	}

	.ps-vehicle__head {
		margin-bottom: 24px;
		text-align: left;
	}

	.ps-vehicle__head h2 {
		margin-bottom: 18px;
		white-space: normal;
	}

	.ps-vehicle__head h3 {
		margin-bottom: 10px;
		font-size: 14px;
	}

	.ps-vehicle__head p {
		font-size: 12px;
		line-height: 1.5;
	}

	.ps-pricing-band {
		padding: 0;
	}

	.ps-pricing-box {
		padding: 44px var(--ps-gutter) 40px;
		border-radius: 0;
	}

	.ps-pricing-box h2 {
		margin-bottom: 16px;
		font-size: 22px;
	}

	.ps-pricing-box__intro p {
		margin-bottom: 24px;
		font-size: 12px;
	}

	.ps-pricing-box__card {
		margin-bottom: 32px;
	}

	.ps-pricing-box__lists {
		grid-template-columns: 1fr;
		gap: 24px;
	}

	.ps-pricing-box__list h3 {
		font-size: 15px;
	}

	.ps-pricing-box .wp-block-list.is-style-ps-checklist li {
		font-size: 12px;
	}

	.ps-pricing-box .wp-block-list.is-style-ps-checklist li::before {
		background-image: url("../img/icons/check-yellow.svg");
	}

	.ps-pricing-box .ps-pricing-box__discuss {
		margin-top: 32px;
		padding: 18px 14px;
		border-radius: 10px;
		background: rgba(255, 255, 255, .06);
	}

	.ps-gallery {
		padding-block: 56px 40px;
	}

	.ps-gallery__head {
		margin-bottom: 22px;
		padding-left: var(--ps-gutter);
	}

	.ps-gallery__head h2 {
		margin-bottom: 22px;
	}

	.ps-gallery__head p {
		font-size: 12px;
		line-height: 1.6;
	}

	.ps-cta {
		padding: 0;
	}

	.ps-cta > .ps-container {
		padding: 0;
	}

	.ps-cta__box {
		flex-direction: column;
		align-items: stretch;
		gap: 28px;
		padding: 40px var(--ps-gutter) 36px;
		border-radius: 0;
	}

	.ps-cta__box h2 {
		margin-bottom: 18px;
	}

	.ps-cta__box p {
		font-size: 13px;
		line-height: 1.6;
	}

	.ps-cta__buttons.wp-block-buttons {
		gap: 12px;
	}

	.ps-cta__buttons .wp-block-button,
	.ps-cta__buttons .wp-block-button__link {
		width: 100%;
	}

	.ps-cta__buttons .wp-block-button__link {
		min-height: 46px;
	}

	/* The black call-to-action meets the footer directly on phones. */
	body:has(.ps-page > .ps-cta:last-child) .ps-footer {
		margin-top: 0;
	}
}

/* ==========================================================================
   Our Story
   Sizes scale fluidly from small phones (360px) to desktop (1440px).
   ========================================================================== */

.ps-eyebrow {
	margin-bottom: 0;
	color: #000;
	font-size: 13px !important;
	font-weight: 700;
	letter-spacing: .02em;
	text-transform: uppercase;
}

.ps-story-intro {
	padding-block: clamp(40px, 20px + 5.5556vw, 100px) 0;
}

.ps-story-intro__head {
	max-width: calc(900px + 2 * var(--ps-gutter));
	margin-bottom: clamp(20px, 17.333px + 0.7407vw, 28px);
	text-align: center;
}

.ps-story-intro h1 {
	margin: 0 0 clamp(14px, 8.667px + 1.4815vw, 30px);
	color: #000;
	font-size: clamp(28px, 22px + 1.6667vw, 46px);
	font-weight: 700;
	line-height: 1.12;
	letter-spacing: -.01em;
}

.ps-story-intro__head p {
	max-width: 560px;
	margin: 0 auto;
	font-size: clamp(14px, 13px + 0.2778vw, 17px);
	line-height: 1.45;
}

.ps-story-intro__image.wp-block-image {
	max-width: 1000px;
	margin: 0 auto;
	padding-inline: var(--ps-gutter);
	box-sizing: content-box;
}

.ps-story-intro__image img {
	display: block;
	width: 100%;
	height: auto;
	aspect-ratio: 1000 / 524;
	border-radius: clamp(10px, 8.667px + 0.3704vw, 14px);
	object-fit: cover;
}

.ps-story-text {
	padding-block: clamp(40px, 33.333px + 1.8519vw, 60px) clamp(56px, 40px + 4.4444vw, 104px);
}

.ps-story-text__block {
	max-width: calc(720px + 2 * var(--ps-gutter));
	margin-inline: auto;
	padding-inline: var(--ps-gutter);
	box-sizing: border-box;
}

.ps-story-text__block + .ps-story-text__block {
	margin-top: clamp(56px, 26.667px + 8.1481vw, 144px);
}

.ps-story-text h2 {
	max-width: 690px;
	margin-bottom: clamp(18px, 6.667px + 3.1481vw, 52px);
	font-size: clamp(24px, 17.667px + 1.7593vw, 43px);
	line-height: 1.15;
}

.ps-story-text .ps-eyebrow + h2 {
	margin-top: clamp(14px, 2.667px + 3.1481vw, 48px);
	margin-bottom: clamp(16px, 9.333px + 1.8519vw, 36px);
}

.ps-story-text p {
	margin: 0;
	font-size: clamp(14px, 13.667px + 0.0926vw, 15px);
	line-height: 1.65;
}

.ps-story-text p + p {
	margin-top: clamp(14px, 11px + 0.8333vw, 23px);
}

.ps-story-text + .ps-cta {
	padding-top: clamp(0px, -13.333px + 3.7037vw, 40px);
}

@media (max-width: 599px) {
	.ps-story-intro__head {
		text-align: left;
	}

	.ps-story-intro__head p {
		margin: 0;
	}

	.ps-story-intro__image img {
		aspect-ratio: 3 / 2;
	}
}

/* ==========================================================================
   FAQs
   ========================================================================== */

.ps-faq {
	padding-block: clamp(40px, 20px + 5.5556vw, 100px) clamp(64px, 32px + 8.8889vw, 160px);
}

.ps-faq__head,
.ps-page-head {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 16px clamp(32px, 16px + 4.4444vw, 80px);
	align-items: start;
}

.ps-faq__head {
	max-width: calc(892px + 2 * var(--ps-gutter));
	margin-bottom: clamp(32px, -16px + 13.3333vw, 176px);
}

.ps-faq__head h1,
.ps-page-head h1 {
	margin: 0;
	color: #000;
	font-size: clamp(28px, 22px + 1.6667vw, 46px);
	font-weight: 700;
	line-height: 1.05;
	letter-spacing: -.01em;
}

.ps-faq__head h1 {
	max-width: 420px;
}

.ps-faq__head p,
.ps-page-head p {
	max-width: 420px;
	margin: 0;
	font-size: clamp(14px, 13px + 0.2778vw, 17px);
	line-height: 1.45;
}

.ps-faq__head p {
	margin-top: 6px;
}

.ps-faq__list {
	max-width: calc(640px + 2 * var(--ps-gutter));
	margin-inline: auto;
	padding-inline: var(--ps-gutter);
	box-sizing: border-box;
}

.ps-faq__list .wp-block-details.is-style-ps-accordion {
	border-top: 1px solid #e4e4e4;
	border-bottom: 0;
}

.ps-faq__list .wp-block-details.is-style-ps-accordion:last-child {
	border-bottom: 1px solid #e4e4e4;
}

.ps-faq__list .wp-block-details.is-style-ps-accordion summary {
	padding: clamp(15px, 14px + 0.2778vw, 18px) 0;
	font-size: clamp(15px, 14px + 0.2778vw, 18px);
	line-height: 1.35;
}

.ps-faq__list .wp-block-details.is-style-ps-accordion summary::after,
.ps-faq__list .wp-block-details.is-style-ps-accordion[open] summary::after {
	width: clamp(11px, 10.333px + 0.1852vw, 13px);
	height: clamp(11px, 10.333px + 0.1852vw, 13px);
	background-image: url("../img/icons/chevron-down.svg");
	background-size: contain;
	transition: transform .2s;
}

.ps-faq__list .wp-block-details.is-style-ps-accordion[open] summary::after {
	transform: rotate(180deg);
}

.ps-faq__list .wp-block-details.is-style-ps-accordion > :not(summary) {
	margin-top: -4px;
	padding: 0 0 clamp(18px, 16.667px + 0.3704vw, 22px);
	font-size: 14px;
	line-height: 1.6;
}

/* Heading and intro stack once two columns get cramped. */
@media (max-width: 899px) {
	.ps-faq__head,
	.ps-page-head {
		grid-template-columns: 1fr;
	}

	.ps-faq__head p {
		margin-top: 0;
	}

	.ps-faq__head h1 {
		max-width: none;
	}
}

/* ==========================================================================
   Book Your Drive
   ========================================================================== */

.ps-book-page {
	padding-block: clamp(16px, 12px + 1.1111vw, 28px) clamp(64px, 38.667px + 7.037vw, 140px);
}

.ps-breadcrumb {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 10px;
	margin: 0 0 clamp(20px, 13.333px + 1.8519vw, 40px);
	font-size: 13px !important;
}

.ps-breadcrumb a {
	display: inline-flex;
	align-items: center;
	gap: 10px;
	padding: 6px 12px 6px 0;
	border-right: 1px solid #555;
	color: var(--ps-green);
	text-decoration: none;
	line-height: 1;
}

.ps-breadcrumb a::before {
	content: "";
	width: 6px;
	height: 10px;
	background: url("../img/icons/chevron-left.svg") center / contain no-repeat;
}

.ps-page-head {
	max-width: calc(910px + 2 * var(--ps-gutter));
	margin-bottom: clamp(28px, 20px + 2.2222vw, 52px);
}


/* ==========================================================================
   Home typography — exact Figma sizes from 1200px up, scaling down to tablet
   at 768px, with phone sizes below 600px. Kept last so it wins over the
   section defaults above.
   ========================================================================== */

/* Section headings: Why trusted drive / Who We Serve / A vehicle you can rely on */
.ps-why .ps-why__text h2,
.ps-serve .ps-serve__head h2,
.ps-vehicle .ps-vehicle__head h2 {
	font-size: clamp(40px, 13.333px + 3.4722vw, 55px);
	font-weight: 700;
	line-height: 1;
	letter-spacing: 0;
}

/* Driver card */
.ps-why .ps-driver .ps-driver__name {
	font-size: clamp(24px, 13.333px + 1.3889vw, 30px);
	font-weight: 700;
	line-height: 1;
}

.ps-why .ps-driver .ps-driver__role {
	margin-top: 6px;
	font-size: 14px;
	font-weight: 400;
	line-height: 1;
}

/* Accordion: question 20px bold, answer 16/23, tighter gap between them. */
.ps-why .wp-block-details.is-style-ps-accordion summary {
	font-size: clamp(17px, 11.667px + 0.6944vw, 20px);
	font-weight: 700;
	line-height: 1;
}

.ps-why .wp-block-details.is-style-ps-accordion[open] summary {
	padding-bottom: 10px;
}

.ps-why .wp-block-details.is-style-ps-accordion > :not(summary) {
	padding-bottom: 22px;
	color: #000;
	font-size: 16px;
	line-height: 23px;
}

/* Who We Serve */
.ps-serve .ps-serve__intro h3 {
	margin-bottom: 20px;
	font-size: clamp(30px, 12.222px + 2.3148vw, 40px);
	font-weight: 700;
	line-height: 1;
}

.ps-serve .ps-serve__intro p {
	color: #000;
	font-size: 16px;
	line-height: 1;
}

.ps-serve .ps-card h3 {
	color: var(--ps-yellow);
	font-size: clamp(21px, 13.889px + 0.9259vw, 25px);
	font-weight: 700;
	line-height: 1;
}

.ps-serve .ps-card p {
	color: #fff;
	font-size: 16px;
	line-height: 25px;
}

/* Vehicle */
.ps-vehicle .ps-vehicle__head {
	max-width: 560px;
}

.ps-vehicle .ps-vehicle__head h3 {
	font-size: clamp(24px, 13.333px + 1.3889vw, 30px);
	font-weight: 700;
	line-height: 1;
}

.ps-vehicle .ps-vehicle__head p {
	color: #000;
	font-size: 16px;
	line-height: 20px;
}

/* Pricing band */
.ps-pricing-box .ps-pricing-box__intro h2 {
	font-size: clamp(40px, 16.889px + 3.0093vw, 53px);
	font-weight: 700;
	line-height: clamp(46px, 22.889px + 3.0093vw, 59px);
	letter-spacing: 0;
}

.ps-pricing-box .ps-pricing-box__intro p,
.ps-pricing-box .wp-block-list.is-style-ps-checklist li,
.ps-pricing-box .ps-pricing-box__discuss,
.ps-pricing-box .ps-pricing-box__discuss a {
	color: #fff;
	font-size: 16px;
	line-height: 20px;
}

.ps-pricing-box .ps-pricing-box__list h3 {
	margin-bottom: 14px;
	font-size: clamp(21px, 13.889px + 0.9259vw, 25px);
	font-weight: 700;
	line-height: 1.1;
}

/* Pricing card (wider column so the 36px title fits on one line) */
@media (min-width: 1200px) {
	.ps-pricing-box {
		grid-template-columns: minmax(0, 1fr) 460px;
		column-gap: 110px;
	}
}

.ps-pricing-box .ps-pricing__card {
	padding: 40px 30px 36px;
}

.ps-pricing-box .ps-pricing .ps-pricing__title {
	margin: 0;
	font-size: clamp(30px, 19.333px + 1.3889vw, 36px);
	font-weight: 700;
	line-height: 1.1;
}

.ps-pricing-box .ps-pricing .ps-pricing__subtitle {
	margin: 8px 0 26px;
	font-size: 16px;
	line-height: 20px;
}

.ps-pricing-box .ps-pricing .ps-pricing__seats {
	font-size: 18px;
	font-weight: 400;
	line-height: 20px;
}

.ps-pricing-box .ps-pricing .ps-pricing__seats strong {
	font-size: 20px;
	font-weight: 700;
}

.ps-pricing-box .ps-pricing .ps-pricing__amount {
	color: #02462e;
	font-size: clamp(46px, 30px + 2.0833vw, 55px);
	font-weight: 700;
	line-height: 1;
}

.ps-pricing-box .ps-pricing .ps-pricing__period {
	font-size: 15px;
	line-height: 20px;
}

.ps-pricing-box .ps-pricing .ps-pricing__note {
	font-size: 16px;
	line-height: 20px;
}

.ps-pricing-box .ps-pricing .ps-pricing__button {
	color: #fdf3da;
	font-size: 16px;
	font-weight: 500;
	line-height: 1;
}

.ps-pricing-box .ps-pricing .ps-pricing__footnote {
	margin: 22px 0 0;
	font-size: 16px;
	line-height: 20px;
}

.ps-pricing-box .ps-pricing__contact {
	margin-top: 8px;
}

.ps-pricing-box .ps-pricing__contact a {
	font-weight: 700;
}

/* --- Phones --------------------------------------------------------------- */

@media (max-width: 599px) {
	.ps-why .ps-why__text h2,
	.ps-serve .ps-serve__head h2,
	.ps-vehicle .ps-vehicle__head h2 {
		font-size: clamp(24px, 7vw, 28px);
		line-height: 1.1;
	}

	.ps-why .ps-driver .ps-driver__name {
		font-size: 18px;
	}

	.ps-why .ps-driver .ps-driver__role {
		margin-top: 4px;
		font-size: 12px;
	}

	.ps-why .wp-block-details.is-style-ps-accordion summary {
		font-size: 15px;
		line-height: 1.3;
	}

	.ps-why .wp-block-details.is-style-ps-accordion[open] summary {
		padding-bottom: 8px;
	}

	.ps-why .wp-block-details.is-style-ps-accordion > :not(summary) {
		padding-bottom: 18px;
		font-size: 14px;
		line-height: 21px;
	}

	.ps-serve .ps-serve__intro p {
		font-size: 14px;
		line-height: 1.45;
	}

	.ps-serve .ps-card h3 {
		font-size: 17px;
		line-height: 1.15;
	}

	.ps-serve .ps-card p {
		font-size: 14px;
		line-height: 21px;
	}

	.ps-vehicle .ps-vehicle__head h3 {
		font-size: 18px;
	}

	.ps-vehicle .ps-vehicle__head p {
		font-size: 14px;
		line-height: 20px;
	}

	.ps-pricing-box .ps-pricing-box__intro h2 {
		font-size: 26px;
		line-height: 31px;
	}

	.ps-pricing-box .ps-pricing-box__intro p,
	.ps-pricing-box .wp-block-list.is-style-ps-checklist li,
	.ps-pricing-box .ps-pricing-box__discuss,
	.ps-pricing-box .ps-pricing-box__discuss a {
		font-size: 14px;
		line-height: 20px;
	}

	.ps-pricing-box .ps-pricing-box__list h3 {
		margin-bottom: 10px;
		font-size: 18px;
	}

	.ps-pricing-box .ps-pricing__card {
		padding: 24px 18px;
	}

	.ps-pricing-box .ps-pricing .ps-pricing__title {
		font-size: 22px;
	}

	.ps-pricing-box .ps-pricing .ps-pricing__subtitle {
		margin: 4px 0 16px;
		font-size: 13px;
		line-height: 18px;
	}

	.ps-pricing-box .ps-pricing .ps-pricing__seats {
		font-size: 14px;
	}

	.ps-pricing-box .ps-pricing .ps-pricing__seats strong {
		font-size: 15px;
	}

	.ps-pricing-box .ps-pricing .ps-pricing__amount {
		font-size: 38px;
	}

	.ps-pricing-box .ps-pricing .ps-pricing__period,
	.ps-pricing-box .ps-pricing .ps-pricing__note {
		font-size: 13px;
		line-height: 18px;
	}

	.ps-pricing-box .ps-pricing .ps-pricing__button {
		font-size: 15px;
	}

	.ps-pricing-box .ps-pricing .ps-pricing__footnote {
		margin-top: 16px;
		font-size: 13px;
		line-height: 18px;
	}
}

/* Gallery + call to action */
.ps-gallery .ps-gallery__head h2 {
	font-size: clamp(40px, 13.333px + 3.4722vw, 55px);
	font-weight: 700;
	line-height: 1;
	letter-spacing: 0;
}

.ps-gallery .ps-gallery__head p {
	color: #000;
	font-size: 16px;
	line-height: 20px;
}

.ps-cta .ps-cta__box h2 {
	font-size: clamp(40px, 13.333px + 3.4722vw, 55px);
	font-weight: 700;
	line-height: clamp(46px, 17.556px + 3.7037vw, 62px);
	letter-spacing: 0;
}

.ps-cta .ps-cta__box p {
	font-size: 16px;
	line-height: 24px;
}

.ps-cta .ps-cta__buttons .wp-block-button__link {
	font-size: 16px;
	font-weight: 500;
}

@media (max-width: 599px) {
	.ps-gallery .ps-gallery__head h2,
	.ps-cta .ps-cta__box h2 {
		font-size: clamp(24px, 7vw, 28px);
		line-height: 1.15;
	}

	.ps-gallery .ps-gallery__head p,
	.ps-cta .ps-cta__box p {
		font-size: 14px;
		line-height: 21px;
	}

	.ps-cta .ps-cta__buttons .wp-block-button__link {
		font-size: 15px;
	}
}

/* ==========================================================================
   Accordion motion (height is animated in site.js)
   ========================================================================== */

.wp-block-details.is-style-ps-accordion summary {
	transition: padding .4s cubic-bezier(.4, 0, .2, 1), color .2s ease;
}

.wp-block-details.is-style-ps-accordion summary:hover {
	color: var(--ps-green);
}

.wp-block-details.is-style-ps-accordion summary::after {
	transition: transform .4s cubic-bezier(.4, 0, .2, 1);
}

.wp-block-details.is-style-ps-accordion[open] summary::after {
	transform: rotate(180deg);
}

/* While closing, the icon already shows the closed state. */
.wp-block-details.is-style-ps-accordion.is-closing summary::after {
	background-image: url("../img/icons/plus.svg");
	transform: none;
}

.ps-faq__list .wp-block-details.is-style-ps-accordion.is-closing summary::after {
	background-image: url("../img/icons/chevron-down.svg");
	transform: none;
}

.wp-block-details.is-style-ps-accordion > :not(summary) {
	transition: opacity .3s ease, transform .3s ease;
}

.wp-block-details.is-style-ps-accordion.is-opening > :not(summary) {
	animation: ps-accordion-in .45s cubic-bezier(.4, 0, .2, 1) .05s both;
}

.wp-block-details.is-style-ps-accordion.is-closing > :not(summary) {
	opacity: 0;
	transform: translateY(-6px);
}

@keyframes ps-accordion-in {
	from {
		opacity: 0;
		transform: translateY(-8px);
	}
}

@media (prefers-reduced-motion: reduce) {
	.wp-block-details.is-style-ps-accordion summary,
	.wp-block-details.is-style-ps-accordion summary::after,
	.wp-block-details.is-style-ps-accordion > :not(summary) {
		transition: none;
		animation: none;
	}
}

@media (max-width: 599px) {
	/* Mobile design: gallery heading in green, like the other section headings. */
	.ps-gallery .ps-gallery__head h2 {
		color: var(--ps-green);
	}
}

/* "Let's discuss your journey" box: the contact line only appears on phones (Figma mobile). */
.ps-pricing-box .ps-pricing-box__contact {
	display: none;
}

@media (max-width: 599px) {
	.ps-pricing-box .ps-pricing-box__discuss {
		padding: 16px 16px 18px;
	}

	.ps-pricing-box .ps-pricing-box__discuss .ps-arrow-link a::after {
		display: none;
	}

	.ps-pricing-box .ps-pricing-box__discuss p,
	.ps-pricing-box .ps-pricing-box__discuss a {
		color: #fff;
		font-size: 13px;
		line-height: 20px;
	}

	.ps-pricing-box .ps-pricing-box__contact {
		display: block;
		margin-top: 6px;
	}

	.ps-pricing-box .ps-pricing-box__contact a {
		text-decoration: none;
	}
}

@media (max-width: 599px) {
	/* Icon box must shrink with the icon (the Image block sets an inline 80px width),
	   so icon, title and text line up on the card's left edge. */
	.ps-serve .ps-card .ps-card__icon,
	.ps-serve .ps-card .ps-card__icon img {
		width: 22px !important;
		height: 22px;
	}

	.ps-serve .ps-card .ps-card__icon img {
		object-fit: contain;
		object-position: left center;
	}
}

@media (max-width: 599px) {
	/* Icon and title share one centred row; the text sits under both. */
	.ps-serve .ps-card {
		align-items: center;
		column-gap: 10px;
		row-gap: 12px;
	}

	.ps-serve .ps-card .ps-card__icon,
	.ps-serve .ps-card h3 {
		align-self: center;
		margin: 0 !important;
	}

	.ps-serve .ps-card h3 {
		line-height: 22px;
	}
}

@media (max-width: 599px) {
	/* Metropolis sits slightly high in its line box; optical centring with the icon. */
	.ps-serve .ps-card h3 {
		position: relative;
		top: 2px;
	}
}

/* ==========================================================================
   Legal pages (Terms & Conditions, Privacy Policy)
   ========================================================================== */

.ps-legal {
	padding-block: clamp(40px, 26.667px + 3.7037vw, 80px) clamp(64px, 42.667px + 5.9259vw, 128px);
}

.ps-legal__inner {
	max-width: calc(820px + 2 * var(--ps-gutter));
	margin-inline: auto;
	padding-inline: var(--ps-gutter);
	box-sizing: border-box;
}

.ps-legal h1 {
	margin: 0 0 12px;
	color: #000;
	font-size: clamp(30px, 22.5px + 2.0833vw, 55px);
	font-weight: 700;
	line-height: 1.05;
}

.ps-legal .ps-legal__meta {
	margin: 0 0 clamp(28px, 22px + 1.6667vw, 48px);
	color: #6b6b6b;
	font-size: 14px;
}

.ps-legal .ps-legal__meta:last-child {
	margin: clamp(32px, 26px + 1.6667vw, 52px) 0 0;
}

.ps-legal h2 {
	margin: clamp(28px, 24px + 1.1111vw, 40px) 0 10px;
	color: var(--ps-green);
	font-size: clamp(19px, 17.5px + 0.4167vw, 24px);
	font-weight: 700;
	line-height: 1.25;
}

.ps-legal p {
	margin: 0;
	color: #1a1a1a;
	font-size: 16px;
	line-height: 1.7;
}

.ps-legal p + p {
	margin-top: 14px;
}

.ps-legal a {
	color: var(--ps-green);
}

@media (max-width: 599px) {
	.ps-legal p {
		font-size: 15px;
	}
}
