/* Portrait-photo treatment: desktop keeps the established art direction; mobile uses the supplied vertical photographs. */
.wlp-slides picture,
.wlp-photo picture,
.wlp-orbit__card picture {
	display: block;
	width: 100%;
	height: 100%;
}

.wlp-contact__photo {
	position: absolute;
	right: 28px;
	bottom: 22px;
	width: 118px;
	margin: 0;
	overflow: hidden;
	border: 3px solid rgba(255, 255, 255, .88);
	border-radius: 13px;
	box-shadow: 7px 8px rgba(68, 82, 132, .15);
	transform: rotate(3deg);
}

.wlp-contact__photo img {
	display: block;
	width: 100%;
	aspect-ratio: 2 / 3;
	object-fit: cover;
}

.wlp-contact aside {
	position: relative;
	padding-right: 160px;
}

.wlp-page-button {
	display: flex;
	align-items: center;
	justify-content: space-between;
	width: min(100%, 320px);
	min-height: 58px;
	margin-top: 28px;
	padding: 0 22px;
	color: #343631;
	border: 2px solid #4d7fbd;
	border-radius: 8px;
	background: #fffefa;
	box-shadow: 5px 6px 0 #b8d8f1;
	font: 700 .78rem var(--title);
	text-decoration: none;
	transition: transform .18s var(--ease), box-shadow .18s var(--ease);
}

.wlp-page-button:hover {
	transform: translateY(-2px);
	box-shadow: 7px 9px 0 #b8d8f1;
}

.wlp-page-button b {
	font: 400 1rem var(--mono);
}

.wlp-faq .wlp-page-button {
	margin: 34px auto 0;
}

.wlp-footer__social {
	display: flex;
	align-items: center;
	gap: 18px;
}

.wlp-footer__social > a:first-child {
	color: #565a72;
	font: 400 .65rem var(--mono);
	text-decoration: none;
}

@media (min-width: 781px) {
	.wlp-hero h1 {
		font-size: clamp(3rem, 4vw, 4rem);
		white-space: nowrap;
	}

	.wlp-concept h2 {
		font-size: clamp(2.5rem, 3vw, 3.25rem);
		white-space: nowrap;
	}

	.wlp-hero {
		min-height: 920px;
		padding-top: 72px;
		padding-bottom: 120px;
	}

	.wlp-hero__visual {
		min-height: 760px;
	}

	.wlp-slides {
		right: 5%;
		width: min(82%, 480px);
		height: auto;
		aspect-ratio: 2 / 3;
	}

	.wlp-slides picture,
	.wlp-slides img {
		height: 100%;
	}

	.wlp-hero__panel {
		bottom: -6px;
	}

	.wlp-slides figure,
	.wlp-photo--concept {
		background-color: #f8f4ed;
		background-position: center;
		background-repeat: no-repeat;
		background-size: contain;
	}

	.wlp-photo--concept { background-image: url('../images/concept-sp.webp'); }

	.wlp-photo--concept > picture {
		opacity: 0;
	}

	.wlp-slides img {
		object-fit: contain;
		object-position: center;
	}

	.wlp-slides figure:nth-child(3) img {
		object-fit: cover;
		object-position: center center;
	}

	.wlp-locations .wlp-photo img,
	.wlp-orbit__card img {
		object-fit: contain;
		background: #f8f4ed;
	}

	.wlp-locations .wlp-photo {
		aspect-ratio: 3 / 2;
	}

	.wlp-locations .wlp-photo img {
		min-height: 0;
		object-fit: cover;
	}

	.wlp-locations article:first-child .wlp-photo img {
		object-fit: cover;
		object-position: center 62% !important;
	}
}

@media (min-width: 781px) and (max-width: 1100px) {
	.wlp-hero {
		grid-template-columns: 1fr 1fr;
		gap: 32px;
	}

	.wlp-hero h1 {
		font-size: clamp(2.65rem, 5vw, 3.35rem);
	}

	.wlp-concept h2 {
		font-size: clamp(2.2rem, 4vw, 2.7rem);
	}
}

@media (max-width: 780px) {
	.wlp-footer__social {
		width: 100%;
		justify-content: space-between;
	}
	.wlp-hero__visual {
		min-height: min(151vw, 660px);
	}

	.wlp-slides {
		right: 8%;
		width: 84%;
		height: auto;
		aspect-ratio: 2 / 3;
		background: #f7f3eb;
		box-shadow: 11px 12px 0 #f6dedb, 20px 21px rgba(194, 225, 239, .63);
	}

	.wlp-slides picture,
	.wlp-slides img {
		height: 100%;
	}

	.wlp-slides img {
		object-fit: contain;
		object-position: center;
	}

	.wlp-slides figure:nth-child(3) img {
		object-fit: cover;
		object-position: center center;
	}

	.wlp-hero__panel {
		bottom: -4px;
	}

	.wlp-photo--concept {
		width: 92%;
		aspect-ratio: 2 / 3;
		background: #f8f4ed;
	}

	.wlp-photo--concept img,
	.wlp-locations .wlp-photo img {
		min-height: 0;
		object-fit: contain;
		object-position: center !important;
	}

	.wlp-locations .wlp-photo {
		width: 94%;
		margin-inline: auto;
		aspect-ratio: 3 / 2;
		background: #f8f4ed;
		border-radius: 8px;
	}

	.wlp-locations .wlp-photo img {
		object-fit: cover;
	}

	.wlp-locations article:first-child .wlp-photo img {
		object-fit: cover;
		object-position: center 62% !important;
	}

	.wlp-orbit__card picture,
	.wlp-orbit__card img {
		aspect-ratio: 2 / 3;
	}

	.wlp-orbit__card img {
		height: 100%;
		object-fit: contain;
		background: #fff;
	}

	.wlp-contact > .wlp-shell {
		padding-top: 50px;
	}

	.wlp-contact aside {
		display: grid;
		grid-template-columns: 42% 1fr;
		column-gap: 18px;
		align-items: start;
		padding: 18px;
	}

	.wlp-contact__photo {
		position: relative;
		inset: auto;
		grid-row: 1 / 4;
		width: 100%;
		border-radius: 12px;
		transform: rotate(-2deg);
	}

	.wlp-contact aside small,
	.wlp-contact aside h3,
	.wlp-contact aside p {
		grid-column: 2;
	}

	.wlp-contact aside h3 {
		margin: 12px 0 4px;
		font-size: 1.08rem;
	}

	.wlp-contact aside p {
		margin: 8px 0 0;
		font-size: .67rem;
	}
}
