/* Styling for pages built with WordPress blocks (replaces the Elementor layout rules). */

/* Sections: full-width band, content held to the site width */
.we-section {
	box-sizing: border-box;
}
.wp-block-group.we-section > *,
.wp-block-cover.we-section > .wp-block-cover__inner-container {
	max-width: 1120px;
	margin-left: auto;
	margin-right: auto;
}
.wp-block-group.we-section.we-section--wide > * {
	max-width: none;
}
.wp-block-group.we-section[style*="min-height"] {
	display: flex;
	flex-direction: column;
	justify-content: center;
}
.wp-block-cover.we-section {
	padding: 0;
}
/* The photo and its tint fill the whole banner (the spacing rule below must not shrink them) */
.wp-block-cover.we-section > .wp-block-cover__background,
.wp-block-cover.we-section > .wp-block-cover__image-background,
.wp-block-cover.we-section > .wp-block-cover__video-background {
	margin: 0;
}
.wp-block-cover.we-section > .wp-block-cover__inner-container {
	width: 100%;
	box-sizing: border-box;
	padding-left: 10px;
	padding-right: 10px;
}

/* A lone column (its partner was removed) sits centred at a readable width */
.wp-block-group.we-section > .we-narrow {
	max-width: 720px;
}

/* Price boxes: the old theme floats these at one-third width, which only suited its former page builder */
.we-section .price-box {
	display: block;
	float: none;
	width: auto;
}
.we-section .wp-block-column.price-box {
	padding: 0 20px;
}

/* Vertical rhythm between blocks inside a section */
.we-section > *,
.we-section .wp-block-column > *,
.we-section .wp-block-group > *,
.we-section .wp-block-group__inner-container > *,
.we-section .wp-block-cover__inner-container > * {
	margin-top: 0;
	margin-bottom: 20px;
}
.we-section > :last-child,
.we-section .wp-block-column > :last-child,
.we-section .wp-block-group > :last-child,
.we-section .wp-block-group__inner-container > :last-child,
.we-section .wp-block-cover__inner-container > :last-child {
	margin-bottom: 0;
}
.we-section .we-text > .wp-block-group__inner-container > * {
	margin-bottom: 16px;
}
.we-section .we-text > .wp-block-group__inner-container > :last-child {
	margin-bottom: 0;
}
/* Stand-alone headings are set tight; headings inside running text keep normal line spacing */
.we-section .we-heading {
	line-height: 1;
	padding: 0;
}
.we-section .has-text-align-center {
	text-align: center;
}
.we-section .has-text-align-right {
	text-align: right;
}

/* Columns */
.we-section .wp-block-columns {
	margin-left: 0;
	margin-right: 0;
}
.we-section .wp-block-column {
	box-sizing: border-box;
	min-width: 0;
}

/* The theme's quote box keeps its own top and bottom spacing */
.we-section .wp-block-column > .opening-hours,
.we-section .wp-block-group__inner-container > .opening-hours {
	margin-top: 40px;
	margin-bottom: 40px;
}

/* Images */
.we-section .wp-block-image img {
	max-width: 100%;
	height: auto;
}
.we-section .wp-block-image.aligncenter {
	margin-left: auto;
	margin-right: auto;
}

/* Buttons */
.we-section .wp-block-button__link {
	background-color: #61ce70;
	color: #fff;
	border-radius: 3px;
	padding: 12px 24px;
	font-size: 15px;
	line-height: 1;
	text-decoration: none;
	transition: all 0.3s;
}
.we-section .wp-block-button__link:hover,
.we-section .wp-block-button__link:focus {
	opacity: 0.85;
	color: #fff;
}

/* Tick list */
.we-section ul.we-check-list {
	list-style: none;
	padding-left: 0;
	margin-left: 0;
}
.we-check-list li {
	position: relative;
	padding-left: 1.6em;
	padding-bottom: 2px;
}
.we-check-list li::before {
	font-family: "Font Awesome 5 Free";
	font-weight: 900;
	content: "\f00c";
	position: absolute;
	left: 0;
}

/* Icon with text beside it (contact details) */
p.we-icon-box {
	display: flex;
	align-items: center;
	gap: 15px;
	min-height: 50px;
}
p.we-icon-box::before {
	font-family: "Font Awesome 5 Free";
	font-weight: 900;
	font-size: 50px;
	line-height: 1;
	width: 60px;
	flex: none;
	text-align: center;
	color: #000;
}
p.we-icon-box a {
	color: inherit;
}
.we-fa-map-marker-alt::before { content: "\f3c5"; }
.we-fa-phone::before { content: "\f095"; }
.we-fa-phone-volume::before { content: "\f2a0"; }
.we-fa-mail-bulk::before { content: "\f674"; }

/* Accordion (FAQ) */
.we-section .we-accordion details {
	border: 1px solid #d5d8dc;
	border-top: 0;
	margin: 0;
}
.we-section .we-accordion details:first-child {
	border-top: 1px solid #d5d8dc;
}
.we-accordion summary {
	position: relative;
	padding: 15px 20px 15px 52px;
	font-weight: 700;
	line-height: 1.3;
	cursor: pointer;
	list-style: none;
}
.we-accordion summary::-webkit-details-marker {
	display: none;
}
.we-accordion summary::before {
	font-family: "Font Awesome 5 Free";
	font-weight: 900;
	content: "\f067";
	position: absolute;
	left: 22px;
}
.we-accordion details[open] > summary {
	color: #54bec4;
	border-bottom: 1px solid #d5d8dc;
}
.we-accordion details[open] > summary::before {
	content: "\f068";
}
.we-section .we-accordion details > :not(summary) {
	padding: 0 20px;
	margin-top: 15px;
	margin-bottom: 15px;
}

/* Latest posts grid */
.we-section ul.we-post-grid {
	list-style: none;
	padding-left: 0;
	margin-left: 0;
}
.we-section ul.we-post-grid {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 30px;
}
.we-post-grid li {
	position: relative;
	height: 180px;
	margin: 0;
	overflow: hidden;
	background: #333;
}
.we-post-grid .wp-block-latest-posts__featured-image,
.we-post-grid .wp-block-latest-posts__featured-image a {
	position: absolute;
	inset: 0;
	margin: 0;
}
.we-post-grid .wp-block-latest-posts__featured-image img {
	width: 100%;
	height: 100%;
	max-width: none;
	object-fit: cover;
}
.we-post-grid .wp-block-latest-posts__post-title {
	position: absolute;
	inset: 0;
	display: flex;
	align-items: flex-end;
	padding: 15px;
	background: linear-gradient(to top, rgba(0, 0, 0, 0.75), rgba(0, 0, 0, 0.1) 70%);
	padding-bottom: 40px;
	color: #fff;
	font-weight: 400;
	font-size: 18px;
	line-height: 1.3;
	text-transform: uppercase;
	letter-spacing: 0.02em;
	text-decoration: none;
}
.we-post-grid .wp-block-latest-posts__post-date {
	position: absolute;
	left: 15px;
	bottom: 12px;
	margin: 0;
	color: #fff;
	font-size: 14px;
	pointer-events: none;
}
.we-post-grid .wp-block-latest-posts__post-title:hover {
	color: #fff;
}
@media (max-width: 991px) {
	.we-section ul.we-post-grid {
		grid-template-columns: repeat(2, 1fr);
	}
}
@media (max-width: 575px) {
	.we-section ul.we-post-grid {
		grid-template-columns: 1fr;
	}
}

/* Opening hours: day and time on one row, no grid lines */
.wp-block-table.we-hours table {
	width: auto;
	table-layout: auto;
	border: 0;
}
.wp-block-table.we-hours td {
	border: 0;
	padding: 3px 40px 3px 0;
}

/* Map */
.we-map {
	display: block;
}

@media (max-width: 1024px) {
	.wp-block-group.we-section {
		padding-left: 20px !important;
		padding-right: 20px !important;
	}
	.wp-block-cover.we-section > .wp-block-cover__inner-container {
		padding-left: 20px;
		padding-right: 20px;
	}
}
@media (max-width: 767px) {
	.we-section .wp-block-column[style*="padding"],
	.we-section .wp-block-group[style*="padding-right"] {
		padding-left: 10px !important;
		padding-right: 10px !important;
	}
	.we-section .wp-block-buttons {
		justify-content: flex-start;
	}
}
