.pmp-landing,
.pmp-carousel,
.pmp-logos,
.pmp-companies-grid {
	--pmp-dark: #0f172a;
	--pmp-muted: #5d6878;
	--pmp-line: #e6eaf0;
	--pmp-soft: #f6f8fb;
	box-sizing: border-box;
	color: var(--pmp-dark);
	font-family: inherit;
}

.pmp-landing *,
.pmp-carousel *,
.pmp-logos *,
.pmp-companies-grid * {
	box-sizing: border-box;
}

.pmp-container {
	width: min(1180px, calc(100% - 32px));
	margin: 0 auto;
}

.pmp-section {
	padding: 72px 0;
	background: #fff;
}

.pmp-section:nth-of-type(odd) {
	background: var(--pmp-soft);
}

.pmp-section--intro {
	padding-bottom: 34px;
}

.pmp-kicker {
	display: inline-flex;
	align-items: center;
	margin: 0 0 8px;
	color: var(--pmp-secondary);
	font-size: 13px;
	font-weight: 700;
	letter-spacing: 0;
	text-transform: uppercase;
}

.pmp-lead {
	color: #364152;
	font-size: 19px;
	line-height: 1.7;
}

.pmp-richtext {
	color: #344054;
	line-height: 1.75;
}

.pmp-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 44px;
	padding: 12px 18px;
	border: 1px solid transparent;
	border-radius: 6px;
	font-size: 15px;
	font-weight: 700;
	line-height: 1.2;
	text-decoration: none;
	transition: transform .18s ease, box-shadow .18s ease, background .18s ease;
}

.pmp-btn:hover,
.pmp-btn:focus {
	transform: translateY(-1px);
	text-decoration: none;
}

.pmp-btn--primary {
	background: var(--pmp-primary);
	color: #fff;
	box-shadow: 0 10px 20px rgba(11, 94, 215, .18);
}

.pmp-btn--secondary {
	background: #fff;
	color: var(--pmp-primary);
	border-color: rgba(11, 94, 215, .22);
}

.pmp-btn--whatsapp {
	background: var(--pmp-secondary);
	color: #fff;
	box-shadow: 0 10px 20px rgba(22, 134, 74, .18);
}

.pmp-btn__icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 20px;
	height: 20px;
	margin-right: 8px;
	flex: 0 0 auto;
}

.pmp-btn__icon svg {
	display: block;
	width: 100%;
	height: 100%;
}

.pmp-hero {
	position: relative;
	overflow: hidden;
	padding: 60px 0;
	background: linear-gradient(120deg, #dff5ff, #9fdfff);
	background-size: cover;
	background-position: center;
	color: #102a43;
}

.pmp-hero.has-background {
	color: #fff;
}

.pmp-hero__grid {
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(330px, .92fr);
	gap: 34px;
	align-items: stretch;
}

.pmp-hero__heading {
	display: flex;
	align-items: flex-start;
	gap: 24px;
	max-width: 940px;
	margin: 0 0 16px;
}

.pmp-hero__heading h1 {
	flex: 1 1 auto;
	min-width: 0;
}

.pmp-hero__label {
	display: inline-flex;
	margin-bottom: 12px;
	padding: 6px 10px;
	background: rgba(255, 255, 255, .55);
	border: 1px solid rgba(15, 23, 42, .12);
	border-radius: 999px;
	color: #102a43;
	font-size: 13px;
	font-weight: 700;
}

.pmp-hero.has-background .pmp-hero__label {
	background: rgba(255, 255, 255, .12);
	border-color: rgba(255, 255, 255, .22);
	color: #fff;
}

.pmp-hero h1 {
	max-width: 820px;
	margin: 0;
	color: #0f172a;
	font-size: clamp(34px, 4.6vw, 58px);
	line-height: 1.04;
	letter-spacing: 0;
}

.pmp-hero.has-background h1 {
	color: #fff;
}

.pmp-hero__slogan {
	max-width: 640px;
	margin: 0 0 18px;
	color: #1f3b57;
	font-size: 20px;
	line-height: 1.55;
}

.pmp-hero.has-background .pmp-hero__slogan {
	color: rgba(255, 255, 255, .9);
}

.pmp-hero__facts {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(190px, 1fr));
	gap: 10px;
	max-width: 820px;
	margin: 0;
}

.pmp-hero__fact {
	min-width: 0;
	padding: 12px 14px;
	background: rgba(255, 255, 255, .56);
	border: 1px solid rgba(15, 23, 42, .12);
	border-radius: 8px;
	backdrop-filter: blur(8px);
}

.pmp-hero.has-background .pmp-hero__fact {
	background: rgba(255, 255, 255, .12);
	border-color: rgba(255, 255, 255, .2);
}

.pmp-hero__fact strong,
.pmp-hero__fact span,
.pmp-hero__fact a {
	display: block;
	overflow-wrap: anywhere;
}

.pmp-hero__fact strong {
	margin-bottom: 4px;
	color: #516173;
	font-size: 12px;
	text-transform: uppercase;
}

.pmp-hero.has-background .pmp-hero__fact strong {
	color: rgba(255, 255, 255, .72);
}

.pmp-hero__fact span,
.pmp-hero__fact a {
	color: #0f172a;
	font-size: 14px;
	font-weight: 700;
	line-height: 1.35;
	text-decoration: none;
}

.pmp-hero.has-background .pmp-hero__fact span,
.pmp-hero.has-background .pmp-hero__fact a {
	color: #fff;
}

.pmp-hero__actions,
.pmp-contact-actions {
	display: flex;
	flex-wrap: wrap;
	gap: 12px;
}

.pmp-hero__actions {
	margin: 0 0 22px;
}

.pmp-hero__visual {
	aspect-ratio: 16 / 10;
	overflow: hidden;
	background: rgba(255, 255, 255, .12);
	border: 1px solid rgba(255, 255, 255, .22);
	border-radius: 8px;
	box-shadow: 0 22px 60px rgba(0, 0, 0, .22);
}

.pmp-hero__side-card {
	display: flex;
	flex-direction: column;
	justify-content: center;
	padding: 24px;
	background: rgba(255, 255, 255, .94);
	border: 1px solid rgba(255, 255, 255, .45);
	border-radius: 8px;
	box-shadow: 0 22px 60px rgba(0, 0, 0, .22);
	color: var(--pmp-dark);
}

.pmp-hero__side-card.no-media {
	min-height: 360px;
}

.pmp-hero__side-media {
	display: flex;
	align-items: center;
	justify-content: center;
	aspect-ratio: 16 / 9;
	overflow: hidden;
	margin: 0 0 18px;
	padding: 22px;
	border-radius: 8px;
	background: #fff;
	border: 1px solid var(--pmp-line);
}

.pmp-hero__side-brand {
	display: flex;
	align-items: center;
	justify-content: center;
	min-height: 190px;
	margin: 0 0 18px;
	padding: 24px;
	background: #fff;
	border: 1px solid var(--pmp-line);
	border-radius: 8px;
}

.pmp-hero__side-brand img {
	width: min(460px, 100%);
	max-height: 180px;
	object-fit: contain;
}

.pmp-hero__side-label {
	display: inline-flex;
	margin-bottom: 8px;
	color: var(--pmp-secondary);
	font-size: 13px;
	font-weight: 800;
	text-transform: uppercase;
}

.pmp-hero__side-card h2 {
	margin: 0 0 16px;
	color: var(--pmp-dark);
	font-size: 28px;
	line-height: 1.08;
	letter-spacing: 0;
}

.pmp-hero__side-actions,
.pmp-quick-contact__actions {
	display: grid;
	gap: 10px;
	margin-bottom: 16px;
}

.pmp-hero__side-actions .pmp-btn,
.pmp-quick-contact__actions .pmp-btn {
	width: 100%;
}

.pmp-work-schedule {
	display: grid;
	gap: 8px;
	padding: 16px;
	background: #f8fafc;
	border: 1px solid var(--pmp-line);
	border-radius: 8px;
}

.pmp-work-schedule--light {
	background: #fff;
}

.pmp-work-schedule--panel {
	min-height: 150px;
	align-content: start;
}

.pmp-work-schedule__label {
	color: var(--pmp-secondary);
	font-size: 12px;
	font-weight: 800;
	text-transform: uppercase;
}

.pmp-work-schedule strong,
.pmp-work-schedule__hours,
.pmp-work-schedule__note,
.pmp-work-schedule__empty {
	display: block;
}

.pmp-work-schedule strong {
	color: var(--pmp-dark);
	font-size: 20px;
	line-height: 1.25;
}

.pmp-work-schedule__hours {
	color: var(--pmp-dark);
	font-size: 26px;
	font-weight: 800;
	line-height: 1.1;
}

.pmp-work-schedule__note,
.pmp-work-schedule__empty {
	color: var(--pmp-muted);
	line-height: 1.45;
}

.pmp-hero__side-media img {
	width: 100%;
	height: 100%;
	object-fit: contain;
}

.pmp-hero__visual img,
.pmp-carousel__image img,
.pmp-company-card__media img,
.pmp-service-card__image img,
.pmp-gallery-grid img,
.pmp-dynamic-section__image img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.pmp-intro-grid,
.pmp-contact-grid,
.pmp-dynamic-section {
	display: grid;
	grid-template-columns: minmax(0, 1.2fr) minmax(280px, .8fr);
	gap: 34px;
	align-items: start;
}

.pmp-intro-grid h2,
.pmp-section-heading h2,
.pmp-contact-grid h2,
.pmp-dynamic-section h2 {
	margin: 0 0 14px;
	font-size: clamp(28px, 4vw, 44px);
	line-height: 1.08;
	letter-spacing: 0;
}

.pmp-info-panel,
.pmp-contact-card {
	display: grid;
	gap: 14px;
	padding: 22px;
	background: #fff;
	border: 1px solid var(--pmp-line);
	border-top: 4px solid var(--pmp-accent);
	border-radius: 8px;
	box-shadow: 0 14px 36px rgba(15, 23, 42, .06);
}

.pmp-info-panel--action {
	gap: 16px;
}

.pmp-section--full-content {
	background: #fff;
	padding-top: 0;
}

.pmp-content-shell {
	padding: 28px;
	background: #fff;
	border: 1px solid var(--pmp-line);
	border-radius: 8px;
	box-shadow: 0 14px 36px rgba(15, 23, 42, .05);
}

.pmp-richtext--full {
	max-width: none;
}

.pmp-richtext--full img {
	max-width: 100%;
	height: auto;
}

.pmp-richtext--full figure {
	margin: 20px 0;
}

.pmp-richtext--full table {
	width: 100%;
	margin: 22px 0;
	border-collapse: collapse;
	background: #fff;
}

.pmp-richtext--full th,
.pmp-richtext--full td {
	padding: 14px 16px;
	border: 1px solid #cfd7e3;
	text-align: left;
	vertical-align: top;
}

.pmp-richtext--full th {
	background: #f3f6fa;
	color: var(--pmp-dark);
	font-weight: 800;
}

.pmp-richtext--full h2,
.pmp-richtext--full h3,
.pmp-richtext--full h4 {
	margin-top: 26px;
	color: var(--pmp-dark);
	letter-spacing: 0;
}

.pmp-info-panel div,
.pmp-contact-card p {
	margin: 0;
}

.pmp-quick-contact {
	padding-bottom: 16px;
	border-bottom: 1px solid var(--pmp-line);
}

.pmp-quick-contact h3 {
	margin: 0 0 14px;
	font-size: 26px;
	line-height: 1.12;
	letter-spacing: 0;
}

.pmp-info-panel strong,
.pmp-contact-card strong {
	display: block;
	margin-bottom: 4px;
	color: var(--pmp-dark);
}

.pmp-info-panel span,
.pmp-contact-card span {
	color: var(--pmp-muted);
	line-height: 1.55;
}

.pmp-info-panel .pmp-work-schedule__label {
	color: var(--pmp-secondary);
}

.pmp-info-panel .pmp-work-schedule__hours {
	color: var(--pmp-dark);
	line-height: 1.1;
}

.pmp-section-heading {
	max-width: 720px;
	margin-bottom: 28px;
}

.pmp-services-grid,
.pmp-companies-grid {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 20px;
}

.pmp-service-card,
.pmp-company-card {
	overflow: hidden;
	background: #fff;
	border: 1px solid var(--pmp-line);
	border-radius: 8px;
	box-shadow: 0 12px 30px rgba(15, 23, 42, .05);
}

.pmp-service-card__image,
.pmp-company-card__media {
	display: block;
	aspect-ratio: 16 / 10;
	background: #eef2f7;
}

.pmp-service-card__body,
.pmp-company-card__body {
	padding: 20px;
}

.pmp-service-card h3,
.pmp-company-card h3 {
	margin: 0 0 10px;
	font-size: 21px;
	line-height: 1.2;
	letter-spacing: 0;
}

.pmp-company-card h3 a {
	color: var(--pmp-dark);
	text-decoration: none;
}

.pmp-company-card__location {
	margin: 0 0 8px;
	color: var(--pmp-secondary);
	font-weight: 700;
}

.pmp-price {
	margin: 16px 0 0;
	color: var(--pmp-accent);
	font-size: 18px;
}

.pmp-price span {
	color: var(--pmp-muted);
	font-size: 14px;
}

.pmp-gallery-grid {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 14px;
}

.pmp-gallery-grid figure {
	aspect-ratio: 4 / 3;
	overflow: hidden;
	margin: 0;
	border-radius: 8px;
	background: #eef2f7;
}

.pmp-dynamic-section {
	margin-bottom: 26px;
	padding: 28px;
	background: #fff;
	border: 1px solid var(--pmp-line);
	border-radius: 8px;
}

.pmp-dynamic-section__image {
	aspect-ratio: 4 / 3;
	overflow: hidden;
	border-radius: 8px;
	background: #eef2f7;
}

.pmp-section.pmp-section--contact {
	background: #0f172a;
	color: #fff;
}

.pmp-section--contact h2,
.pmp-section--contact .pmp-lead {
	color: #fff;
}

.pmp-contact-card {
	color: var(--pmp-dark);
}

.pmp-carousel {
	position: relative;
	width: min(1180px, calc(100% - 32px));
	margin: 32px auto 18px;
	overflow: hidden;
	background: #0f172a;
	border-radius: 8px;
	box-shadow: 0 18px 40px rgba(15, 23, 42, .16);
}

.pmp-carousel__viewport,
.pmp-carousel__track,
.pmp-carousel__slide {
	min-height: 430px;
}

.pmp-carousel__slide {
	position: absolute;
	inset: 0;
	display: grid;
	grid-template-columns: minmax(0, 1.45fr) minmax(280px, .75fr);
	opacity: 0;
	pointer-events: none;
	transition: opacity .35s ease;
}

.pmp-carousel__slide.is-active {
	position: relative;
	opacity: 1;
	pointer-events: auto;
}

.pmp-carousel__image {
	display: flex;
	align-items: center;
	justify-content: center;
	height: 100%;
	min-height: 430px;
	background-color: #1f2937;
	overflow: hidden;
}

.pmp-carousel__image img {
	display: block;
	object-fit: contain;
	object-position: center;
}

.pmp-carousel__image-placeholder {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 100%;
	height: 100%;
	min-height: 430px;
	padding: 28px;
	color: rgba(255, 255, 255, .78);
	font-size: 22px;
	font-weight: 800;
	line-height: 1.2;
	text-align: center;
}

.pmp-carousel__content {
	display: flex;
	flex-direction: column;
	justify-content: center;
	padding: 36px;
	background: linear-gradient(180deg, #111827, #0f172a);
	color: #fff;
}

.pmp-carousel__content span {
	color: #8be1aa;
	font-size: 13px;
	font-weight: 800;
	text-transform: uppercase;
}

.pmp-carousel__content h2 {
	margin: 8px 0 12px;
	color: #fff;
	font-size: clamp(28px, 4vw, 46px);
	line-height: 1;
	letter-spacing: 0;
}

.pmp-carousel__content p {
	margin: 0 0 20px;
	color: rgba(255, 255, 255, .82);
	line-height: 1.6;
}

.pmp-carousel__control {
	position: absolute;
	top: 50%;
	z-index: 3;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 42px;
	height: 42px;
	padding: 0;
	border: 0;
	border-radius: 999px;
	background: rgba(255, 255, 255, .92);
	color: #0f172a;
	font-size: 32px;
	line-height: 1;
	cursor: pointer;
	transform: translateY(-50%);
}

.pmp-carousel__control--prev {
	left: 14px;
}

.pmp-carousel__control--next {
	right: 14px;
}

.pmp-carousel__dots {
	position: absolute;
	left: 50%;
	bottom: 14px;
	z-index: 4;
	display: flex;
	gap: 8px;
	transform: translateX(-50%);
}

.pmp-carousel__dots button {
	width: 10px;
	height: 10px;
	padding: 0;
	border: 0;
	border-radius: 999px;
	background: rgba(255, 255, 255, .55);
	cursor: pointer;
}

.pmp-carousel__dots button.is-active {
	width: 26px;
	background: #fff;
}

.pmp-logos {
	padding: 30px 0 42px;
	background: #f8fafc;
}

.pmp-logos__title {
	margin: 0 0 20px;
	text-align: center;
	font-size: 28px;
	letter-spacing: 0;
}

.pmp-logos__grid {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
	gap: 14px;
}

.pmp-logo-card {
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	min-height: 124px;
	padding: 16px;
	background: #fff;
	border: 1px solid var(--pmp-line);
	border-radius: 8px;
	color: var(--pmp-dark);
	text-align: center;
	text-decoration: none;
	transition: transform .18s ease, box-shadow .18s ease, border-color .18s ease;
}

.pmp-logo-card:hover,
.pmp-logo-card:focus {
	border-color: rgba(11, 94, 215, .38);
	box-shadow: 0 14px 28px rgba(15, 23, 42, .08);
	transform: translateY(-2px);
	text-decoration: none;
}

.pmp-logo-card img {
	width: 100%;
	max-width: 124px;
	height: 64px;
	object-fit: contain;
	margin-bottom: 8px;
}

.pmp-logo-card span {
	color: var(--pmp-muted);
	font-size: 13px;
	font-weight: 700;
}

@media (max-width: 900px) {
	.pmp-hero__grid,
	.pmp-intro-grid,
	.pmp-contact-grid,
	.pmp-dynamic-section,
	.pmp-carousel__slide {
		grid-template-columns: 1fr;
	}

	.pmp-hero__facts {
		grid-template-columns: 1fr;
	}

	.pmp-hero__heading {
		flex-direction: column;
		gap: 16px;
	}

	.pmp-hero__side-card.no-media {
		min-height: 0;
	}

	.pmp-services-grid,
	.pmp-companies-grid,
	.pmp-gallery-grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.pmp-carousel__image {
		min-height: 280px;
	}

	.pmp-carousel__image-placeholder {
		min-height: 280px;
	}

	.pmp-carousel__viewport,
	.pmp-carousel__track,
	.pmp-carousel__slide {
		min-height: 0;
	}
}

@media (max-width: 620px) {
	.pmp-container,
	.pmp-carousel {
		width: min(100% - 20px, 1180px);
	}

	.pmp-section,
	.pmp-hero {
		padding: 48px 0;
	}

	.pmp-hero h1 {
		font-size: 38px;
	}

	.pmp-hero__actions,
	.pmp-contact-actions {
		flex-direction: column;
	}

	.pmp-btn {
		width: 100%;
	}

	.pmp-services-grid,
	.pmp-companies-grid,
	.pmp-gallery-grid {
		grid-template-columns: 1fr;
	}

	.pmp-carousel__content {
		padding: 26px 20px 54px;
	}

	.pmp-carousel__control {
		width: 36px;
		height: 36px;
		font-size: 26px;
	}
}
