/* Maintained content and Contact Form 7 layout foundations. */

:root {
	--pp-layout-content: 68rem;
	--pp-layout-column-gap: clamp(1rem, 2.4vw, 2rem);
	--pp-layout-row-gap: clamp(1rem, 2.5vw, 1.75rem);
}

/* Shared Home/Availability content shell and Contact Form 7 grid. */
.pp-content-page .entry-content,
.wpcf7-form {
	display: grid;
	grid-template-columns: repeat(12, minmax(0, 1fr));
	align-items: start;
	column-gap: var(--pp-layout-column-gap);
	row-gap: var(--pp-layout-row-gap);
}

.pp-content-page .entry-content {
	width: min(calc(100% - (2 * var(--pp-gutter))), var(--pp-layout-content));
	max-width: var(--pp-layout-content);
	margin-inline: auto;
}

.pp-content-page .entry-content > :where(:not(.alignwide):not(.alignfull)),
.wpcf7-form > * {
	grid-column: 1 / -1;
	width: 100%;
	max-width: none;
	margin: 0;
}

.pp-content-page .entry-content > p:empty,
.wpcf7-form > p:empty {
	display: none;
}

/* Content resilience for maintained page and form output. */
.entry-content,
.entry-content p,
.entry-content li,
.entry-content td,
.entry-content th,
.wpcf7-form,
.wpcf7-form p,
.wpcf7-form label {
	overflow-wrap: break-word;
	word-break: normal;
}

.entry-content a,
.wpcf7-form a {
	overflow-wrap: anywhere;
}

.entry-content img,
.entry-content iframe,
.entry-content table,
.wpcf7-form input,
.wpcf7-form select,
.wpcf7-form textarea {
	max-width: 100%;
}

.entry-content table {
	width: 100%;
}

/* Shared form sizing used by Home, Contact, Availability and Booking Form. */
.entry-content .wpcf7,
.pp-final-booking-form__inner > .wpcf7 {
	width: 100%;
	max-width: none;
	margin-inline: auto;
}

.wpcf7-form {
	width: 100%;
	max-width: none;
	margin-inline: auto;
}

.wpcf7-form input:not([type="checkbox"]):not([type="radio"]):not([type="submit"]),
.wpcf7-form select,
.wpcf7-form textarea {
	width: 100%;
}

.wpcf7-form .wpcf7-list-item {
	margin-left: 0;
	margin-right: 1rem;
}

.pp-booking-form-missing {
	border: 1px solid var(--pp-color-border);
	border-radius: var(--pp-radius-md);
	background: var(--pp-color-sand);
	padding: 1rem 1.25rem;
}

@media (max-width: 48rem) {
	.pp-content-page .entry-content,
	.wpcf7-form {
		grid-template-columns: minmax(0, 1fr);
	}

	.pp-content-page .entry-content {
		width: min(calc(100% - (2 * var(--pp-gutter))), var(--pp-layout-content));
	}
}
