.ace-card-grid {
	display: grid;
	gap: 24px;
	grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
	margin: 24px 0;
}

.ace-card {
	background: #fff;
	border: 1px solid rgba(0, 0, 0, 0.08);
	border-radius: 8px;
	overflow: hidden;
}

.ace-card__link {
	color: #103b35;
	display: block;
	height: 100%;
	text-decoration: none;
}

/* The theme colours visited links orange. Card navigation should remain
 * visually consistent regardless of browsing history. */
body .ace-card .ace-card__link:link,
body .ace-card .ace-card__link:visited {
	color: #103b35;
}

body .ace-card .ace-card__link:hover,
body .ace-card .ace-card__link:focus-visible {
	color: #0d718f;
}

body .ace-card .ace-card__link:focus-visible {
	outline: 3px solid #ff8110;
	outline-offset: 3px;
}

.ace-card__image {
	aspect-ratio: 4 / 3;
	display: block;
	height: auto;
	object-fit: cover;
	width: 100%;
}

.ace-card__title,
.ace-card__summary {
	padding: 0 18px;
}

.ace-card__title {
	margin: 18px 0 8px;
}

.ace-card__summary {
	margin: 0 0 18px;
}

/* Location hub cards: compact regional signposts rather than excerpts. */
.ace-location-grid {
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 22px;
}

.ace-location-grid .ace-card {
	min-height: 176px;
}

.ace-location-grid .ace-card__link {
	display: flex;
	flex-direction: column;
	justify-content: space-between;
	padding: 27px 28px 24px;
}

.ace-location-grid .ace-card__title {
	font-size: clamp(1.55rem, 2.2vw, 2rem);
	line-height: 1.08;
	margin: 0;
	padding: 0;
}

.ace-location-grid .ace-card__heading-row {
	align-items: flex-start;
	display: flex;
	gap: 20px;
	justify-content: space-between;
}

.ace-region-map {
	color: #35aacd;
	filter: drop-shadow(0 3px 4px rgba(16, 59, 53, 0.12));
	flex: 0 0 52px;
	height: 88px;
	margin-top: -5px;
	overflow: visible;
	width: 52px;
}

.ace-region-map__land { fill: #e5eeeb; }
.ace-region-map__highlight { fill: currentColor; }
.ace-region-map__coast {
	fill: none;
	stroke: #103b35;
	stroke-linejoin: round;
	stroke-width: 2;
}

.ace-location-grid .ace-card:nth-child(4n + 2) .ace-region-map { color: #ff8110; }
.ace-location-grid .ace-card:nth-child(4n + 3) .ace-region-map { color: #b985d9; }
.ace-location-grid .ace-card:nth-child(4n + 4) .ace-region-map { color: #7ec016; }

.ace-location-grid .ace-card__summary {
	line-height: 1.55;
	margin: 14px 0 0;
	padding: 0;
}

.ace-location-grid .ace-card__cta {
	display: block;
	font-size: 0.95rem;
	font-weight: 700;
	margin-top: 30px;
}

.ace-location-grid--colour .ace-card {
	border: 0;
	border-radius: 18px;
	box-shadow: 0 10px 25px rgba(16, 59, 53, 0.1);
	position: relative;
	transition: box-shadow 180ms ease, transform 180ms ease;
}

.ace-location-grid--colour .ace-card::before {
	background: #35aacd;
	content: "";
	height: 9px;
	left: 0;
	position: absolute;
	right: 0;
	top: 0;
}

.ace-location-grid--colour .ace-card:nth-child(4n + 2)::before { background: #ff8110; }
.ace-location-grid--colour .ace-card:nth-child(4n + 3)::before { background: #b985d9; }
.ace-location-grid--colour .ace-card:nth-child(4n + 4)::before { background: #7ec016; }

.ace-location-grid--colour .ace-card:hover {
	box-shadow: 0 17px 36px rgba(16, 59, 53, 0.18);
	transform: translateY(-5px);
}

.ace-location-grid--colour .ace-card__title,
.ace-location-grid--colour .ace-card__cta {
	color: #103b35;
}

.ace-location-grid--outline .ace-card {
	border: 3px solid #35aacd;
	border-radius: 18px;
	box-shadow: none;
}

.ace-location-grid--outline .ace-card:nth-child(4n + 2) { border-color: #ff8110; }
.ace-location-grid--outline .ace-card:nth-child(4n + 3) { border-color: #b985d9; }
.ace-location-grid--outline .ace-card:nth-child(4n + 4) { border-color: #7ec016; }

.ace-location-hub .ace-location-grid--outline .ace-card {
	border-style: solid;
	border-width: 3px;
	box-shadow: none;
}

.ace-location-grid--clean .ace-card {
	background: #f3f8f6;
	border: 0;
	border-radius: 4px;
	box-shadow: none;
}

.ace-location-grid--clean .ace-card__cta {
	color: #0d718f;
}

.ace-location-hub .ace-location-grid--clean .ace-card {
	background: #f3f8f6;
	border: 0;
	border-radius: 4px;
	box-shadow: none;
}

@media (max-width: 900px) {
	.ace-location-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 560px) {
	.ace-location-grid { grid-template-columns: 1fr; }
	.ace-location-grid .ace-card { min-height: 145px; }
}

.ace-gallery {
	display: grid;
	gap: 16px;
	grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
	margin: 24px 0;
}

.ace-gallery__item {
	margin: 0;
}

.ace-gallery img {
	aspect-ratio: 4 / 3;
	display: block;
	height: auto;
	object-fit: cover;
	width: 100%;
}

.ace-single {
	margin: 0 auto;
	max-width: 1080px;
	padding: 40px 20px;
}

.ace-single__header {
	text-align: center;
}

.ace-single__eyebrow {
	font-weight: 700;
	letter-spacing: 0;
	text-transform: uppercase;
}

.ace-single__title {
	margin-top: 0;
}

.ace-single__summary {
	font-size: 1.2rem;
	margin: 0 auto 28px;
	max-width: 760px;
}

.ace-single__image img,
.ace-featured-image {
	border-radius: 8px;
	display: block;
	height: auto;
	margin: 0 auto 32px;
	max-width: 100%;
}

.ace-ranger-template {
	background: #ffffff;
	color: #16332f;
}

.ace-ranger-hero {
	overflow: hidden;
	position: relative;
}

.ace-ranger-hero::after {
	background: #ff8110;
	border-radius: 999px;
	content: "";
	height: 160px;
	position: absolute;
	right: -58px;
	top: -54px;
	width: 160px;
}

.ace-ranger-hero__inner {
	align-items: center;
	margin: 0 auto;
	max-width: 1120px;
	position: relative;
	z-index: 1;
}

.ace-ranger-hero__copy {
	color: #ffffff;
}

.ace-ranger-eyebrow .elementor-heading-title,
.ace-ranger-eyebrow {
	font-size: 0.95rem;
	font-weight: 800;
	letter-spacing: 0;
	text-transform: uppercase;
}

.ace-ranger-title-widget h1 {
	color: #ffffff;
	font-size: clamp(2.4rem, 5vw, 4.8rem);
	line-height: 1;
	margin: 0 0 20px;
}

.ace-ranger-summary {
	color: #ffffff;
	font-size: 1.2rem;
	line-height: 1.6;
	max-width: 660px;
}

.ace-ranger-chip {
	border-radius: 999px;
	font-weight: 800;
	padding: 10px 16px;
}

.ace-ranger-chip--orange {
	background: #ff8110;
	color: #111111;
}

.ace-ranger-chip--yellow {
	background: #fbd641;
	color: #111111;
}

.ace-ranger-hero__photo img,
.ace-ranger-hero__photo .ace-featured-image {
	aspect-ratio: 1 / 1;
	border-radius: 32% 68% 44% 56% / 48% 36% 64% 52%;
	box-shadow: none;
	clip-path: polygon(49% 0%, 77% 8%, 98% 34%, 92% 70%, 68% 96%, 31% 100%, 5% 75%, 0% 37%, 19% 10%);
	object-fit: cover;
	position: relative;
	width: min(420px, 100%);
	z-index: 1;
}

.ace-ranger-hero__photo {
	display: inline-block;
	position: relative;
}

.ace-ranger-hero__photo::before,
.ace-ranger-hero__photo::after {
	content: "";
	position: absolute;
}

.ace-ranger-hero__photo::before {
	background: #fbd641;
	border-radius: 40% 60% 58% 42% / 56% 44% 56% 44%;
	height: 100%;
	inset: 18px -18px -18px 18px;
	transform: rotate(4deg);
	width: 100%;
	z-index: 0;
}

.ace-ranger-hero__photo::after {
	background: #36afd3;
	border-radius: 999px;
	bottom: 8px;
	height: 86px;
	left: -22px;
	width: 86px;
	z-index: 0;
}

.ace-ranger-story-grid {
	align-items: stretch;
	margin: 0 auto;
	max-width: 1120px;
}

.ace-ranger-panel {
	border-radius: 18px;
	box-shadow: 0 16px 40px rgba(16, 59, 53, 0.12);
	padding: 30px;
}

.ace-ranger-panel--bio {
	border-top: 8px solid #36afd3;
}

.ace-ranger-panel--trust {
	border-top: 8px solid #ff8110;
}

.ace-ranger-panel h2,
.ace-ranger-interview h2,
.ace-ranger-animals-band h2,
.ace-ranger-locations-band h2,
.ace-ranger-gallery-band h2 {
	font-size: clamp(1.8rem, 3vw, 2.7rem);
	line-height: 1.1;
	margin-bottom: 18px;
}

.ace-ranger-interview {
	margin: 0 auto;
	max-width: 900px;
}

.ace-ranger-interview__copy {
	background: #ffffff;
	border-radius: 18px;
	box-shadow: 0 14px 32px rgba(16, 59, 53, 0.12);
	font-size: 1.12rem;
	line-height: 1.7;
	padding: 30px;
}

.ace-ranger-animals-band,
.ace-ranger-gallery-band {
	margin: 0 auto;
	max-width: 1120px;
}

.ace-ranger-template .ace-card {
	border: 0;
	border-radius: 18px;
	box-shadow: 0 14px 34px rgba(16, 59, 53, 0.12);
}

.ace-ranger-template .ace-card__image {
	aspect-ratio: 5 / 4;
}

.ace-ranger-template .ace-gallery img {
	border-radius: 18px;
	box-shadow: 0 12px 30px rgba(16, 59, 53, 0.14);
}

@media (max-width: 767px) {
	.ace-ranger-hero__inner,
	.ace-ranger-story-grid {
		display: block;
	}

	.ace-ranger-hero__photo-wrap {
		margin-top: 28px;
	}

	.ace-ranger-panel + .ace-ranger-panel {
		margin-top: 22px;
	}

	.ace-ranger-hero__photo img,
	.ace-ranger-hero__photo .ace-featured-image {
		width: 100%;
	}
}

/* Locations hub */
.ace-location-hub {
	background: #ffffff;
	color: #16332f;
}

.ace-location-hub-hero {
	overflow: hidden;
	position: relative;
}

.ace-location-hub-hero::before,
.ace-location-hub-hero::after {
	content: "";
	position: absolute;
}

.ace-location-hub-hero::before {
	background: #36afd3;
	border-radius: 42% 58% 63% 37% / 53% 42% 58% 47%;
	height: 260px;
	left: -100px;
	top: -145px;
	transform: rotate(18deg);
	width: 260px;
}

.ace-location-hub-hero::after {
	background: #f58220;
	border-radius: 999px;
	bottom: -100px;
	height: 220px;
	right: -70px;
	width: 220px;
}

.ace-location-hub-hero__inner {
	margin: 0 auto;
	max-width: 980px;
	position: relative;
	text-align: center;
	z-index: 1;
}

.ace-location-hub-eyebrow,
.ace-location-hub-section-eyebrow {
	font-size: 0.92rem;
	font-weight: 800;
	letter-spacing: 0.045em;
	text-transform: uppercase;
}

.ace-location-hub-title h1 {
	font-size: clamp(2.7rem, 5.7vw, 5.25rem);
	line-height: 0.98;
	margin: 8px 0 24px;
}

.ace-location-hub-intro {
	font-size: 1.2rem;
	line-height: 1.65;
	margin: 0 auto;
	max-width: 830px;
}

.ace-location-hub-hero-actions {
	justify-content: center;
	margin-top: 28px;
}

.ace-location-hub .elementor-button {
	background: #f58220;
	border-radius: 999px;
	color: #ffffff;
	font-weight: 800;
	padding: 14px 24px;
}

.ace-location-hub .elementor-button:hover {
	background: #36afd3;
	color: #103b35;
}

.ace-location-hub-button--secondary .elementor-button {
	background: transparent;
	border: 2px solid #ffffff;
}

.ace-location-hub-trust-wrap {
	margin: -36px auto 0;
	max-width: 1080px;
	position: relative;
	z-index: 2;
}

.ace-location-hub-trust {
	border-radius: 22px;
	box-shadow: 0 16px 38px rgba(16, 59, 53, 0.18);
	overflow: hidden;
}

.ace-location-hub-trust-item {
	padding: 26px 28px;
	text-align: center;
}

.ace-location-hub-trust-item + .ace-location-hub-trust-item {
	border-left: 1px solid rgba(16, 59, 53, 0.2);
}

.ace-location-hub-trust-item h3 {
	color: #103b35;
	font-size: 1.25rem;
	margin-bottom: 7px;
}

.ace-location-hub-grid-band h2,
.ace-location-hub-process-band > h2,
.ace-location-hub-services-band h2,
.ace-location-hub-welfare-card h2,
.ace-location-hub-cta-band h2 {
	font-size: clamp(2rem, 3.6vw, 3.25rem);
	line-height: 1.08;
}

.ace-location-hub-section-intro {
	font-size: 1.08rem;
	line-height: 1.65;
	margin: 0 auto;
	max-width: 790px;
}

.ace-location-hub-grid .ace-card-grid {
	grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
	margin-top: 38px;
}

.ace-location-hub .ace-card {
	border: 0;
	border-radius: 18px;
	box-shadow: 0 13px 32px rgba(16, 59, 53, 0.13);
	transition: transform 180ms ease, box-shadow 180ms ease;
}

.ace-location-hub .ace-card:hover {
	box-shadow: 0 19px 44px rgba(16, 59, 53, 0.2);
	transform: translateY(-6px);
}

.ace-location-hub .ace-card__image {
	aspect-ratio: 5 / 3;
}

.ace-location-hub .ace-card__title {
	color: #103b35;
	font-size: 1.4rem;
}

.ace-location-hub-unlisted-band {
	margin: -30px auto 0;
	max-width: 1050px;
	position: relative;
	z-index: 2;
}

.ace-location-hub-unlisted-card {
	align-items: center;
	border-radius: 22px;
	box-shadow: 0 15px 34px rgba(16, 59, 53, 0.15);
	gap: 30px;
	padding: 32px 38px;
}

.ace-location-hub-unlisted-card h2 {
	font-size: clamp(1.8rem, 3vw, 2.65rem);
	margin-bottom: 10px;
}

.ace-location-hub-unlisted-card .elementor-button {
	background: #103b35;
	white-space: nowrap;
}

.ace-location-hub-process-band {
	margin: 0 auto;
	max-width: 1120px;
}

.ace-location-hub-process-grid {
	align-items: stretch;
	margin-top: 32px;
}

.ace-location-hub-step {
	border-radius: 19px;
	box-shadow: 0 12px 30px rgba(16, 59, 53, 0.1);
	padding: 30px;
}

.ace-location-hub-step--orange {
	background: #fff3d7;
	border-top: 7px solid #f58220;
}

.ace-location-hub-step--yellow {
	background: #fff9d9;
	border-top: 7px solid #fbd641;
}

.ace-location-hub-step--blue {
	background: #e6f7f4;
	border-top: 7px solid #36afd3;
}

.ace-location-hub-step-number {
	align-items: center;
	background: #103b35;
	border-radius: 999px;
	color: #ffffff;
	display: flex;
	font-size: 1.2rem;
	font-weight: 800;
	height: 42px;
	justify-content: center;
	margin-bottom: 18px;
	width: 42px;
}

.ace-location-hub-step h3 {
	color: #103b35;
	font-size: 1.45rem;
	margin-bottom: 10px;
}

.ace-location-hub-services-inner {
	align-items: center;
	margin: 0 auto;
	max-width: 1120px;
}

.ace-location-hub-services-links {
	display: grid;
	gap: 12px;
	grid-template-columns: 1fr 1fr;
}

.ace-location-hub-services-links .elementor-button {
	background: #ffffff;
	border-radius: 14px;
	box-shadow: 0 8px 20px rgba(16, 59, 53, 0.1);
	color: #103b35;
	display: block;
	text-align: left;
}

.ace-location-hub-welfare-band {
	margin: 0 auto;
	max-width: 1080px;
}

.ace-location-hub-welfare-card {
	align-items: center;
	border-radius: 24px;
	box-shadow: 15px 15px 0 #fbd641;
	gap: 36px;
	padding: 42px;
}

.ace-location-hub-welfare-card .elementor-button {
	white-space: nowrap;
}

.ace-location-hub-cta-band .elementor-button {
	background: #103b35;
}

@media (max-width: 767px) {
	.ace-location-hub-hero-actions,
	.ace-location-hub-trust,
	.ace-location-hub-unlisted-card,
	.ace-location-hub-process-grid,
	.ace-location-hub-services-inner,
	.ace-location-hub-welfare-card {
		display: block;
	}

	.ace-location-hub-hero-actions .elementor-widget-button + .elementor-widget-button,
	.ace-location-hub-step + .ace-location-hub-step,
	.ace-location-hub-welfare-card > .elementor-widget-button {
		margin-top: 18px;
	}

	.ace-location-hub-trust-item + .ace-location-hub-trust-item {
		border-left: 0;
		border-top: 1px solid rgba(16, 59, 53, 0.2);
	}

	.ace-location-hub-unlisted-card .elementor-widget-button {
		margin-top: 20px;
	}

	.ace-location-hub-services-links {
		grid-template-columns: 1fr;
		margin-top: 24px;
	}

	.ace-location-hub-welfare-card {
		padding: 30px;
	}
}

/* Location single */
.ace-location-template {
	background: #ffffff;
	color: #16332f;
}

.ace-location-hero {
	overflow: hidden;
	position: relative;
}

.ace-location-hero::before,
.ace-location-hero::after {
	content: "";
	position: absolute;
}

.ace-location-hero::before {
	background: #36afd3;
	border-radius: 42% 58% 63% 37% / 53% 42% 58% 47%;
	height: 230px;
	left: -85px;
	top: -120px;
	transform: rotate(18deg);
	width: 230px;
}

.ace-location-hero::after {
	background: #f58220;
	border-radius: 999px;
	bottom: -88px;
	height: 190px;
	right: -54px;
	width: 190px;
}

.ace-location-hero__inner {
	margin: 0 auto;
	max-width: 940px;
	position: relative;
	text-align: center;
	z-index: 1;
}

.ace-location-eyebrow,
.ace-location-section-eyebrow {
	font-size: 0.92rem;
	font-weight: 800;
	letter-spacing: 0.045em;
	text-transform: uppercase;
}

.ace-location-title-widget h1 {
	color: #ffffff;
	font-size: clamp(2.8rem, 6vw, 5.5rem);
	line-height: 0.98;
	margin: 8px 0 24px;
}

.ace-location-summary {
	color: #ffffff;
	font-size: 1.2rem;
	line-height: 1.65;
	margin: 0 auto;
	max-width: 800px;
}

.ace-location-hero-actions {
	justify-content: center;
	margin-top: 26px;
}

.ace-location-template .elementor-button {
	background: #f58220;
	border-radius: 999px;
	color: #ffffff;
	font-weight: 800;
	padding: 14px 24px;
}

.ace-location-template .elementor-button:hover {
	background: #36afd3;
	color: #103b35;
}

.ace-location-button--secondary .elementor-button {
	background: transparent;
	border: 2px solid #ffffff;
}

.ace-location-areas-wrap {
	margin: -30px auto 0;
	max-width: 1040px;
	position: relative;
	z-index: 2;
}

.ace-location-areas-card {
	align-items: center;
	border-radius: 22px;
	box-shadow: 0 16px 38px rgba(16, 59, 53, 0.18);
	display: flex;
	gap: 24px;
	padding: 30px 36px;
}

.ace-location-pin {
	font-size: 2.4rem;
	line-height: 1;
}

.ace-location-areas-card h2 {
	font-size: 1.55rem;
	margin: 0 0 8px;
}

.ace-location-nearby {
	font-size: 1.12rem;
	font-weight: 750;
	line-height: 1.55;
}

.ace-location-areas-note {
	font-size: 0.95rem;
	margin-top: 6px;
}

.ace-location-services-band,
.ace-location-animals-band,
.ace-location-faq-band {
	margin: 0 auto;
	max-width: 1120px;
}

.ace-location-services-band > h2,
.ace-location-rangers-band h2,
.ace-location-animals-band > h2,
.ace-location-gallery-band h2,
.ace-location-cta-band h2 {
	font-size: clamp(2rem, 3.5vw, 3.25rem);
	line-height: 1.08;
}

.ace-location-services-grid {
	align-items: stretch;
	margin-top: 32px;
}

.ace-location-service-card {
	border-radius: 18px;
	box-shadow: 0 12px 30px rgba(16, 59, 53, 0.1);
	padding: 26px;
}

.ace-location-service-card--orange {
	background: #fff3d7;
	border-top: 7px solid #f58220;
}

.ace-location-service-card--yellow {
	background: #fff9d9;
	border-top: 7px solid #fbd641;
}

.ace-location-service-card--blue {
	background: #e6f7f4;
	border-top: 7px solid #36afd3;
}

.ace-location-service-card--green {
	background: #103b35;
	border-top: 7px solid #fbd641;
	color: #ffffff;
}

.ace-location-service-card h3 {
	color: #103b35;
	font-size: 1.35rem;
	margin-bottom: 12px;
}

.ace-location-service-card--green h3 {
	color: #fbd641;
}

.ace-location-service-card .elementor-button {
	background: transparent;
	color: #103b35;
	padding: 0;
	text-decoration: underline;
	text-underline-offset: 4px;
}

.ace-location-service-card--green .elementor-button {
	color: #ffffff;
}

.ace-location-service-notes {
	background: #f4f8f7;
	border-left: 6px solid #36afd3;
	border-radius: 12px;
	line-height: 1.65;
	margin-top: 28px;
	padding: 22px 26px;
}

.ace-location-section-intro {
	font-size: 1.08rem;
	line-height: 1.65;
	margin: 0 auto;
	max-width: 760px;
}

.ace-location-rangers-band .ace-card,
.ace-location-animals-band .ace-card {
	border: 0;
	border-radius: 18px;
	box-shadow: 0 13px 32px rgba(16, 59, 53, 0.13);
	transition: transform 180ms ease, box-shadow 180ms ease;
}

.ace-location-rangers-band .ace-card:hover,
.ace-location-animals-band .ace-card:hover {
	box-shadow: 0 18px 42px rgba(16, 59, 53, 0.19);
	transform: translateY(-5px);
}

.ace-location-rangers-band .ace-card__image,
.ace-location-animals-band .ace-card__image {
	aspect-ratio: 5 / 4;
}

.ace-location-details-grid {
	align-items: stretch;
	margin: 0 auto;
	max-width: 1120px;
}

.ace-location-detail-card {
	border-radius: 20px;
	box-shadow: 0 14px 34px rgba(16, 59, 53, 0.12);
	padding: 32px;
}

.ace-location-detail-card--coverage {
	border-top: 8px solid #f58220;
}

.ace-location-detail-card--proof {
	border-top: 8px solid #36afd3;
}

.ace-location-detail-card h2 {
	font-size: clamp(1.65rem, 2.5vw, 2.35rem);
	line-height: 1.12;
}

.ace-location-coverage-copy,
.ace-location-proof-copy {
	font-size: 1.04rem;
	line-height: 1.7;
}

.ace-location-proof-copy {
	color: #ffffff;
}

.ace-location-faq-copy {
	background: #ffffff;
	border-radius: 18px;
	box-shadow: 0 14px 34px rgba(16, 59, 53, 0.11);
	line-height: 1.7;
	margin: 26px auto 0;
	max-width: 880px;
	padding: 32px;
}

.ace-location-faq-copy h3 {
	color: #f58220;
	font-size: 1.25rem;
	margin-top: 24px;
}

.ace-location-faq-copy h3:first-child {
	margin-top: 0;
}

.ace-location-gallery-band .ace-gallery {
	margin: 28px auto 0;
	max-width: 1120px;
}

.ace-location-gallery-band .ace-gallery img {
	border-radius: 18px;
	box-shadow: 0 12px 28px rgba(16, 59, 53, 0.13);
}

.ace-location-cta-band .elementor-button {
	background: #103b35;
}

@media (max-width: 767px) {
	.ace-location-hero-actions,
	.ace-location-services-grid,
	.ace-location-details-grid {
		display: block;
	}

	.ace-location-hero-actions .elementor-widget-button + .elementor-widget-button,
	.ace-location-service-card + .ace-location-service-card,
	.ace-location-detail-card + .ace-location-detail-card {
		margin-top: 18px;
	}

	.ace-location-areas-card {
		display: block;
		padding: 26px;
	}

	.ace-location-pin {
		margin-bottom: 12px;
	}
}

/* Animal single and Animals hub */
.ace-animal-template,
.ace-animals-hub {
	background: #ffffff;
	color: #16332f;
}

.ace-animal-hero,
.ace-animals-hub-hero {
	overflow: hidden;
	position: relative;
}

.ace-animal-hero::before,
.ace-animals-hub-hero::before {
	background: #36afd3;
	border-radius: 999px;
	content: "";
	height: 190px;
	left: -72px;
	op: -94px;
	position: absolute;
	width: 190px;
}

.ace-animal-hero::after,
.ace-animals-hub-hero::after {
	background: #f58220;
	border-radius: 48% 52% 63% 37% / 45% 38% 62% 55%;
	bottom: -105px;
	content: "";
	height: 220px;
	position: absolute;
	right: -80px;
	transform: rotate(18deg);
	width: 220px;
}

.ace-animal-hero__inner,
.ace-animals-hub-hero__inner {
	align-items: center;
	margin: 0 auto;
	max-width: 1120px;
	position: relative;
	z-index: 1;
}

.ace-animal-hero__copy,
.ace-animal-summary,
.ace-animals-hub-intro {
	color: #ffffff;
}

.ace-animal-eyebrow,
.ace-animals-hub-eyebrow,
.ace-animals-promise-eyebrow,
.ace-animal-welfare-eyebrow {
	font-size: 0.95rem;
	font-weight: 800;
	letter-spacing: 0.04em;
	text-transform: uppercase;
}

.ace-animal-title-widget h1,
.ace-animals-hub-hero h1 {
	color: #ffffff;
	font-size: clamp(2.6rem, 5vw, 5rem);
	line-height: 0.98;
	margin: 0 0 22px;
}

.ace-animal-summary,
.ace-animals-hub-intro {
	font-size: 1.18rem;
	line-height: 1.65;
	max-width: 720px;
}

.ace-animals-hub-intro {
	margin: 0 auto;
}

.ace-animal-hero__image img,
.ace-animal-hero__image .ace-featured-image {
	aspect-ratio: 1 / 1;
	border: 10px solid #ffffff;
	border-radius: 38% 62% 49% 51% / 55% 39% 61% 45%;
	box-shadow: 18px 18px 0 #fbd641;
	margin: 0;
	object-fit: cover;
	width: min(460px, 100%);
}

.ace-animal-quick-facts {
	margin: -22px auto 0;
	max-width: 1120px;
	position: relative;
	z-index: 2;
}

.ace-animal-facts-grid {
	align-items: stretch;
}

.ace-animal-fact-card {
	background: #ffffff;
	border-radius: 16px;
	box-shadow: 0 14px 34px rgba(16, 59, 53, 0.13);
	min-width: 0;
	padding: 22px;
}

.ace-animal-fact-card--accent {
	background: #fbd641;
}

.ace-animal-fact-card h3 {
	color: #f58220;
	font-size: 0.8rem;
	font-weight: 800;
	letter-spacing: 0.04em;
	margin: 0 0 8px;
	text-transform: uppercase;
}

.ace-animal-fact-card--accent h3 {
	color: #103b35;
}

.ace-animal-fact-card .elementor-widget-shortcode {
	font-size: 1.05rem;
	font-weight: 700;
	line-height: 1.35;
}

.ace-animal-learn-band,
.ace-animal-related-band,
.ace-animal-gallery-band,
.ace-animals-expect-band,
.ace-animals-promise-band {
	margin: 0 auto;
	max-width: 1120px;
}

.ace-animal-learn-band > h2,
.ace-animal-related-band > h2,
.ace-animal-gallery-band > h2,
.ace-animals-expect-band > h2,
.ace-animals-grid-band h2 {
	font-size: clamp(2rem, 3.5vw, 3.2rem);
	line-height: 1.08;
}

.ace-animal-info-card,
.ace-animal-facts-copy,
.ace-animal-welfare-copy {
	border-radius: 18px;
	padding: 30px;
}

.ace-animal-info-card {
	box-shadow: 0 14px 34px rgba(16, 59, 53, 0.11);
}

.ace-animal-info-card--diet {
	background: #fff3d7;
	border-top: 7px solid #f58220;
}

.ace-animal-info-card--size {
	background: #e6f7f4;
	border-top: 7px solid #36afd3;
}

.ace-animal-info-card h3,
.ace-animals-expect-card h3 {
	color: #103b35;
	font-size: 1.45rem;
	margin-bottom: 12px;
}

.ace-animal-subheading {
	margin-top: 34px;
}

.ace-animal-facts-copy {
	background: #103b35;
	color: #ffffff;
	font-size: 1.08rem;
	line-height: 1.7;
}

.ace-animal-welfare-inner {
	margin: 0 auto;
	max-width: 860px;
}

.ace-animal-welfare-copy {
	background: #ffffff;
	box-shadow: 0 14px 34px rgba(16, 59, 53, 0.1);
	line-height: 1.7;
	margin: 22px 0;
}

.ace-animal-section-intro,
.ace-animals-hub-section-intro {
	font-size: 1.08rem;
	line-height: 1.65;
	margin: 0 auto;
	max-width: 760px;
}

.ace-animal-template .ace-card,
.ace-animals-hub .ace-card {
	border: 0;
	border-radius: 18px;
	box-shadow: 0 13px 32px rgba(16, 59, 53, 0.12);
	transition: transform 180ms ease, box-shadow 180ms ease;
}

.ace-animal-template .ace-card:hover,
.ace-animals-hub .ace-card:hover {
	box-shadow: 0 18px 42px rgba(16, 59, 53, 0.18);
	transform: translateY(-5px);
}

.ace-animal-template .ace-card__image,
.ace-animals-hub .ace-card__image {
	aspect-ratio: 5 / 4;
}

/* Related Ranger cards should never grow larger than a card in a two-column
 * row. Centre a lone Ranger instead of stretching it across the section. */
.ace-animal-rangers-band .ace-card-grid--related {
	grid-template-columns: repeat(2, minmax(0, 1fr));
	margin-left: auto;
	margin-right: auto;
	max-width: 1000px;
}

.ace-animal-rangers-band .ace-card-grid--related.ace-card-grid--count-1 {
	grid-template-columns: minmax(0, 488px);
	justify-content: center;
}

@media (max-width: 720px) {
	.ace-animal-rangers-band .ace-card-grid--related,
	.ace-animal-rangers-band .ace-card-grid--related.ace-card-grid--count-1 {
		grid-template-columns: minmax(0, 1fr);
	}
}

/* Ranger overview hub. */
.ace-rangers-hub {
	color: #103b35;
	overflow: hidden;
}

.ace-rangers-hub-hero {
	isolation: isolate;
	position: relative;
}

.ace-rangers-hub-hero::before,
.ace-rangers-hub-hero::after {
	border-radius: 50%;
	content: "";
	pointer-events: none;
	position: absolute;
	z-index: -1;
}

.ace-rangers-hub-hero::before {
	background: #35aacd;
	height: 250px;
	left: -90px;
	op: -105px;
	width: 250px;
}

.ace-rangers-hub-hero::after {
	background: #b985d9;
	bottom: -115px;
	height: 225px;
	right: -70px;
	width: 225px;
}

.ace-rangers-hub-hero__inner {
	position: relative;
	z-index: 1;
}

.ace-rangers-hub-eyebrow,
.ace-rangers-hub-section-eyebrow {
	font-weight: 700;
	letter-spacing: 0.04em;
	text-transform: uppercase;
}

.ace-rangers-hub-title h1 {
	font-size: clamp(2.7rem, 5.7vw, 5.2rem);
	line-height: 1.02;
	margin: 8px auto 20px;
	max-width: 960px;
}

.ace-rangers-hub-intro {
	font-size: clamp(1.08rem, 1.8vw, 1.3rem);
	line-height: 1.65;
	margin: 0 auto;
	max-width: 840px;
}

.ace-rangers-hub-actions {
	align-items: center;
	justify-content: center;
	margin-top: 30px;
}

.ace-rangers-hub-actions .elementor-button,
.ace-rangers-hub-cta-band .elementor-button {
	border-radius: 999px;
	font-weight: 700;
	padding: 15px 25px;
}

.ace-rangers-hub-button--primary .elementor-button {
	background: #ff8110;
	color: #fff;
}

.ace-rangers-hub-button--secondary .elementor-button {
	background: #fbd641;
	color: #103b35;
}

.ace-rangers-hub-trust-wrap {
	margin-top: -35px;
	position: relative;
	z-index: 3;
}

.ace-rangers-hub-trust {
	border-radius: 20px;
	box-shadow: 0 14px 35px rgba(16, 59, 53, 0.16);
	overflow: hidden;
}

.ace-rangers-hub-trust-item {
	padding: 25px 28px 21px;
	text-align: center;
}

.ace-rangers-hub-trust-item + .ace-rangers-hub-trust-item {
	border-left: 1px solid rgba(16, 59, 53, 0.2);
}

.ace-rangers-hub-trust-item h3 {
	color: #103b35;
	font-size: 1.25rem;
	margin-bottom: 7px;
}

.ace-rangers-hub-grid-band h2,
.ace-rangers-hub-role-band > h2,
.ace-rangers-hub-connection-card h2,
.ace-rangers-hub-welfare-card h2,
.ace-rangers-hub-cta-band h2 {
	font-size: clamp(2rem, 3.5vw, 3.15rem);
	line-height: 1.08;
}

.ace-rangers-hub-section-intro {
	font-size: 1.08rem;
	line-height: 1.65;
	margin: 0 auto;
	max-width: 790px;
}

.ace-rangers-hub-grid .ace-card-grid {
	grid-template-columns: repeat(3, minmax(0, 1fr));
	margin-top: 38px;
}

.ace-rangers-hub-grid .ace-card {
	border: 0;
	border-radius: 19px;
	box-shadow: 0 13px 32px rgba(16, 59, 53, 0.13);
	transition: box-shadow 180ms ease, transform 180ms ease;
}

.ace-rangers-hub-grid .ace-card:hover {
	box-shadow: 0 19px 43px rgba(16, 59, 53, 0.2);
	transform: translateY(-6px);
}

.ace-rangers-hub-grid .ace-card__image {
	aspect-ratio: 5 / 4;
}

.ace-rangers-hub-grid .ace-card__title {
	color: #103b35;
	font-size: 1.45rem;
}

.ace-rangers-hub-grid .ace-card:nth-child(4n + 1) { border-top: 8px solid #35aacd; }
.ace-rangers-hub-grid .ace-card:nth-child(4n + 2) { border-top: 8px solid #ff8110; }
.ace-rangers-hub-grid .ace-card:nth-child(4n + 3) { border-top: 8px solid #b985d9; }
.ace-rangers-hub-grid .ace-card:nth-child(4n + 4) { border-top: 8px solid #7ec016; }

.ace-rangers-hub-role-grid {
	align-items: stretch;
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	margin-top: 34px;
}

.ace-rangers-hub-role-card {
	border-radius: 18px;
	padding: 27px 25px;
}

.ace-rangers-hub-role-card h3 {
	color: #103b35;
	font-size: 1.35rem;
	margin-bottom: 10px;
}

.ace-rangers-hub-role-card--blue { background: #dff4fa; border-top: 7px solid #35aacd; }
.ace-rangers-hub-role-card--orange { background: #fff0df; border-top: 7px solid #ff8110; }
.ace-rangers-hub-role-card--purple { background: #f3eafb; border-top: 7px solid #b985d9; }
.ace-rangers-hub-role-card--green { background: #edf7df; border-top: 7px solid #7ec016; }

.ace-rangers-hub-connections {
	align-items: stretch;
}

.ace-rangers-hub-connection-card {
	border-radius: 22px;
	box-shadow: 0 13px 30px rgba(16, 59, 53, 0.11);
	padding: 34px;
}

.ace-rangers-hub-connection-card .elementor-button {
	background: #103b35;
	border-radius: 999px;
	color: #fff;
	font-weight: 700;
}

.ace-rangers-hub-welfare-card {
	align-items: center;
	border-radius: 24px;
	box-shadow: 14px 14px 0 #7ec016;
	gap: 36px;
	padding: 42px;
}

.ace-rangers-hub-welfare-copy {
	flex: 1 1 auto;
}

.ace-rangers-hub-welfare-card .elementor-button {
	background: #fbd641;
	border-radius: 999px;
	color: #103b35;
	font-weight: 700;
	white-space: nowrap;
}

.ace-rangers-hub-cta-band .elementor-button {
	background: #103b35;
	color: #fff;
}

@media (max-width: 900px) {
	.ace-rangers-hub-grid .ace-card-grid,
	.ace-rangers-hub-role-grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.ace-rangers-hub-connections,
	.ace-rangers-hub-welfare-card {
		flex-direction: column;
	}
}

@media (max-width: 680px) {
	.ace-rangers-hub-actions,
	.ace-rangers-hub-trust {
		flex-direction: column;
	}

	.ace-rangers-hub-trust-item + .ace-rangers-hub-trust-item {
		border-left: 0;
		border-top: 1px solid rgba(16, 59, 53, 0.2);
	}

	.ace-rangers-hub-grid .ace-card-grid,
	.ace-rangers-hub-role-grid {
		grid-template-columns: 1fr;
	}

	.ace-rangers-hub-welfare-card,
	.ace-rangers-hub-connection-card {
		padding: 28px 24px;
	}

	.ace-rangers-hub-welfare-card .elementor-button {
		white-space: normal;
	}
}

.ace-animal-template .ace-card__title,
.ace-animals-hub .ace-card__title {
	color: #103b35;
	font-size: 1.35rem;
}

.ace-animal-template .ace-gallery img {
	border-radius: 16px;
	box-shadow: 0 12px 28px rgba(16, 59, 53, 0.12);
}

.ace-animals-expect-grid {
	align-items: stretch;
	margin-top: 30px;
}

.ace-animals-expect-card {
	border-radius: 18px;
	padding: 28px;
}

.ace-animals-expect-card--orange {
	background: #fff3d7;
	border-top: 7px solid #f58220;
}

.ace-animals-expect-card--blue {
	background: #e6f7f4;
	border-top: 7px solid #36afd3;
}

.ace-animals-expect-card--yellow {
	background: #fff9d9;
	border-top: 7px solid #fbd641;
}

.ace-animals-grid-band .ace-card-grid {
	grid-template-columns: repeat(auto-fit, minmax(245px, 1fr));
	margin-top: 36px;
}

.ace-animals-promise-grid {
	align-items: center;
}

.ace-animals-rangers-card {
	border-radius: 22px;
	box-shadow: 14px 14px 0 #36afd3;
	padding: 34px;
}

.ace-animal-template .elementor-button,
.ace-animals-hub .elementor-button {
	background: #f58220;
	border-radius: 999px;
	color: #ffffff;
	font-weight: 800;
	padding: 14px 24px;
}

.ace-animal-template .elementor-button:hover,
.ace-animals-hub .elementor-button:hover {
	background: #36afd3;
	color: #103b35;
}

.ace-animals-book-band .elementor-button {
	background: #103b35;
}

@media (max-width: 767px) {
	.ace-animal-hero__inner,
	.ace-animal-facts-grid,
	.ace-animal-learn-grid,
	.ace-animals-expect-grid,
	.ace-animals-promise-grid {
		display: block;
	}

	.ace-animal-hero__image-wrap {
		margin-top: 34px;
	}

	.ace-animal-fact-card + .ace-animal-fact-card,
	.ace-animal-info-card + .ace-animal-info-card,
	.ace-animals-expect-card + .ace-animals-expect-card,
	.ace-animals-rangers-card {
		margin-top: 18px;
	}

	.ace-animal-quick-facts {
		margin-top: 0;
	}

	.ace-animal-hero__image img,
	.ace-animal-hero__image .ace-featured-image {
		width: 100%;
	}
}
