/* PRAWLEPOINT_HOME_CANONICAL_STYLE_V1 */
/* Canonical page-20 layout. */

.pp-home-canonical {
	display: grid;
	grid-template-columns: repeat(12, minmax(0, 1fr));
	gap: clamp(1.25rem, 2.5vw, 2rem);
	width: 100%;
	min-width: 0;
	align-items: stretch;
}

/*
 * Keep the enquiry as a clear, compact task at the top rather than making it
 * dictate the height of an unrelated information column. The two copy-heavy
 * regions then sit as equal-width cards beneath it, preserving every paragraph.
 */
.pp-home-canonical > .pp-home-enquiry-panel {
	grid-column: 1 / -1;
	min-width: 0;
	border: 1px solid var(--pp-color-border);
	border-radius: 0.5rem;
	background: var(--pp-color-sand);
	box-shadow: none;
	padding: clamp(1.25rem, 2.2vw, 1.75rem);
	padding-bottom: clamp(1rem, 1.8vw, 1.4rem);
}

.pp-home-canonical > .pp-home-content-region {
	grid-column: span 6;
	min-width: 0;
	height: 100%;
	border: 1px solid var(--pp-color-border);
	border-radius: 0.5rem;
	background: #fff;
	box-shadow: none;
	padding: clamp(1.35rem, 2.5vw, 1.9rem);
	display: flex;
	flex-direction: column;
}

.pp-home-canonical > .pp-home-video-region {
	grid-column: 1 / -1;
	min-width: 0;
}

.pp-home-canonical .pp-video-facade {
	width: 100%;
	max-width: none;
}

.pp-home-canonical > :is(.pp-home-enquiry-panel, .pp-home-content-region) :where(h2, h3) {
	margin-top: 0;
	font-size: clamp(1.55rem, 2.2vw, 2rem);
	line-height: 1.15;
}

.pp-home-canonical > .pp-home-enquiry-panel > h2 {
	margin-bottom: clamp(1rem, 1.7vw, 1.3rem);
}

.pp-home-canonical > :is(.pp-home-enquiry-panel, .pp-home-content-region) p {
	margin-bottom: 0.9rem;
}

/*
 * Present both information cards consistently: photograph first, then heading,
 * all of the existing copy, then the CTA. The source order can differ between
 * the two regions, so ordering is presentation-only and does not alter content.
 */
.pp-home-canonical > .pp-home-content-region > :is(p, figure):has(img),
.pp-home-canonical > .pp-home-content-region > img {
	order: -3;
	margin: 0 0 0.9rem;
}

/*
 * The two information regions are peers, so give their stored H2/H3 headings
 * exactly the same visual treatment. The compact desktop size keeps the longer
 * Area heading on one line without making it look subordinate to the Cottage
 * heading.
 */
.pp-home-canonical > .pp-home-content-region > :is(h2, h3) {
	order: -2;
	margin-bottom: 0.55rem;
	font-size: clamp(1.45rem, 2vw, 1.72rem);
	letter-spacing: -0.02em;
	text-wrap: nowrap;
	white-space: nowrap;
}

.pp-home-canonical > .pp-home-content-region :where(p, li) {
	max-width: 64ch;
	line-height: 1.56;
}

.pp-home-canonical > .pp-home-content-region > p:has(.pp-home-content-button) {
	margin-top: auto;
	margin-bottom: 0;
	padding-top: 0.65rem;
}

.pp-home-canonical > .pp-home-content-region > .pp-home-content-button {
	align-self: flex-start;
	margin-top: auto;
}

.pp-home-canonical > .pp-home-content-region img {
	display: block;
	width: 100%;
	aspect-ratio: 16 / 9;
	object-fit: cover;
	border-radius: 0.4rem;
}

/*
 * The Home enquiry remains CF7-managed. Keep two roomy field columns and make
 * submission the only visible action inside the form: availability navigation
 * lives in the Home hero, so visitors cannot accidentally discard a partly
 * completed enquiry from this panel.
 */
.pp-home-canonical .pp-home-enquiry-panel .wpcf7 {
	width: 100%;
	margin-top: 0;
	border: 0;
	background: transparent;
	box-shadow: none;
	padding: 0;
}

.pp-home-canonical .pp-home-enquiry-panel .wpcf7-form {
	grid-template-columns: repeat(2, minmax(0, 1fr));
	column-gap: clamp(1rem, 2vw, 1.5rem);
	row-gap: 0.85rem;
}

.pp-home-canonical .pp-home-enquiry-panel .wpcf7-form > p {
	order: 1;
	grid-column: span 1;
	margin: 0;
	min-width: 0;
}

/*
 * CF7's stored availability paragraph can contain legacy wrapper markup that
 * makes PHP removal brittle. Hide the paragraph itself so it cannot consume a
 * grid cell or appear in the accessibility tree, regardless of those wrappers.
 */
.pp-home-canonical .pp-home-enquiry-panel .wpcf7-form > p:has(a[href*="availability"]) {
	display: none;
}

.pp-home-canonical .pp-home-enquiry-panel .wpcf7-form > p:has(input[type="date"]) {
	order: 2;
}

.pp-home-canonical .pp-home-enquiry-panel .wpcf7-form > p:has(input[type="submit"]) {
	order: 3;
	grid-column: 1 / -1;
	display: flex;
	align-items: center;
	justify-content: flex-end;
	margin-top: 0.1rem;
}

.pp-home-canonical .pp-home-enquiry-panel .wpcf7-response-output {
	order: 4;
	grid-column: 1 / -1;
}

.pp-home-canonical :where(p, li, label, .wpcf7-form-control-wrap) {
	max-width: none;
}

/*
 * Progressive enhancement keeps the complete form available when JavaScript is
 * unavailable, but reduces it to a compact disclosure once the Home enquiry
 * script has initialised. Collapsing never removes or recreates form controls,
 * so partially entered values remain intact.
 */
.pp-home-canonical > .pp-home-enquiry-panel.pp-home-enquiry-panel--collapsible {
	padding: 0;
	overflow: hidden;
	scroll-margin-top: 6rem;
}

.pp-home-enquiry__summary {
	display: grid;
	grid-template-columns: minmax(0, 1fr) auto;
	align-items: center;
	gap: 1rem;
	padding: clamp(1rem, 1.8vw, 1.35rem) clamp(1.25rem, 2.2vw, 1.75rem);
}

.pp-home-enquiry__summary-copy {
	min-width: 0;
}

.pp-home-canonical .pp-home-enquiry__summary h2 {
	margin: 0;
	font-size: clamp(1.45rem, 2vw, 1.8rem);
	line-height: 1.15;
}

.pp-home-canonical .pp-home-enquiry__hint {
	margin: 0.25rem 0 0;
	font-size: 0.95rem;
	line-height: 1.4;
	color: var(--pp-color-text-muted, #4b5b59);
}

.pp-home-enquiry__toggle {
	display: inline-flex;
	align-items: center;
	gap: 0.65rem;
	min-height: 2.75rem;
	padding: 0.35rem 0.15rem 0.35rem 0.75rem;
	border: 0;
	border-radius: 0.25rem;
	background: transparent;
	color: var(--pp-color-teal, #246f6d);
	font: inherit;
	font-weight: 700;
	cursor: pointer;
}

.pp-home-enquiry__toggle:hover,
.pp-home-enquiry__toggle:focus-visible {
	background: transparent;
	color: var(--pp-color-teal, #246f6d);
	transform: none;
	text-decoration: underline;
	text-underline-offset: 0.18em;
}

.pp-home-enquiry__toggle:focus-visible {
	outline: 2px solid currentColor;
	outline-offset: 0.25rem;
}

.pp-home-enquiry__chevron {
	width: 0.62rem;
	height: 0.62rem;
	border-right: 2px solid currentColor;
	border-bottom: 2px solid currentColor;
	transform: rotate(45deg) translateY(-0.1rem);
	transform-origin: center;
	transition: transform 160ms ease;
}

.pp-home-enquiry__toggle[aria-expanded="true"] .pp-home-enquiry__chevron {
	transform: rotate(225deg) translate(-0.05rem, -0.05rem);
}

.pp-home-enquiry__body {
	padding: 0 clamp(1.25rem, 2.2vw, 1.75rem) clamp(1rem, 1.8vw, 1.4rem);
}

.pp-home-enquiry-panel.is-expanded .pp-home-enquiry__body {
	padding-top: 0.35rem;
}

.pp-home-enquiry__body[hidden] {
	display: none !important;
}

@media (prefers-reduced-motion: reduce) {
	.pp-home-enquiry__chevron {
		transition: none;
	}
}

@media (max-width: 56rem) {
	.pp-home-canonical > .pp-home-content-region {
		grid-column: 1 / -1;
	}

	.pp-home-canonical > .pp-home-content-region > :is(h2, h3) {
		font-size: clamp(1.55rem, 2.2vw, 1.8rem);
		letter-spacing: normal;
		text-wrap: balance;
		white-space: normal;
	}
}

@media (max-width: 48rem) {
	.pp-home-canonical {
		grid-template-columns: minmax(0, 1fr);
	}

	.pp-home-canonical > .pp-home-enquiry-panel,
	.pp-home-canonical > .pp-home-content-region,
	.pp-home-canonical > .pp-home-video-region {
		grid-column: 1;
		width: 100%;
	}

	.pp-home-canonical > .pp-home-enquiry-panel,
	.pp-home-canonical > .pp-home-content-region {
		padding: 1.15rem;
	}

	.pp-home-canonical > .pp-home-enquiry-panel.pp-home-enquiry-panel--collapsible {
		padding: 0;
	}

	.pp-home-enquiry__summary {
		padding: 1rem 1.15rem;
	}

	.pp-home-enquiry__body {
		padding: 0 1.15rem 1.15rem;
	}

	.pp-home-canonical .pp-home-enquiry-panel .wpcf7-form {
		grid-template-columns: minmax(0, 1fr);
		column-gap: 0;
	}

	.pp-home-canonical .pp-home-enquiry-panel .wpcf7-form > p,
	.pp-home-canonical .pp-home-enquiry-panel .wpcf7-form > p:has(input[type="submit"]),
	.pp-home-canonical .pp-home-enquiry-panel .wpcf7-response-output {
		grid-column: 1;
	}

	.pp-home-canonical .pp-home-enquiry-panel .wpcf7-form > p:has(input[type="submit"]) {
		justify-content: stretch;
	}

	.pp-home-canonical .pp-home-enquiry-panel .wpcf7-form > p:has(input[type="submit"]) input[type="submit"] {
		width: 100%;
	}
}
