/**
 * Fix white gaps between images and card borders on Elementor post cards.
 * Elementor's item-ratio CSS centers thumbnails with translate(-50%, -50%),
 * which leaves visible space when aspect ratios do not match exactly.
 */
.elementor-posts-container.elementor-has-item-ratio .elementor-post__thumbnail img {
	top: 0 !important;
	left: 0 !important;
	transform: none !important;
	width: 100% !important;
	height: 100% !important;
	object-fit: cover !important;
}

.elementor-posts--skin-cards .elementor-post__thumbnail {
	overflow: hidden;
}

.elementor-posts--skin-cards .elementor-post__card {
	overflow: hidden;
}

/*
 * Events cards — fixed thumbnail height so uneven source images
 * (e.g. 300x176 vs 300x213) still align across the grid.
 */
.elementor-posts--skin-posts_events .elementor-post__thumbnail,
.elementor-69 .elementor-element-07074f5 .elementor-post__thumbnail {
	overflow: hidden;
}

.elementor-posts--skin-posts_events .elementor-post__thumbnail img,
.elementor-69 .elementor-element-07074f5 .elementor-post__thumbnail img {
	width: 100% !important;
	height: auto !important;
	aspect-ratio: 3 / 2;
	object-fit: cover !important;
	display: block;
}

.elementor-widget-theme-post-featured-image img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
}

/* Ancestor page breadcrumbs (list-ancestor-pages shortcode) — override Hello Elementor #c36 links */
ol.breadcrumb .breadcrumb-item a {
	color: #000 !important;
	text-decoration: none;
	font-weight: 500;
}

ol.breadcrumb .breadcrumb-item a:hover,
ol.breadcrumb .breadcrumb-item a:focus {
	color: #000 !important;
	text-decoration: underline;
}

/*
 * Navigation selected / current states — berry (#7a1e39).
 * Defaults stay charcoal (#1f1f1f). Does not target .elementor-button CTAs.
 */

/* Header Elementor nav — active was charcoal; berry site-wide. */
.elementor-67 .elementor-element.elementor-element-d792d66 .elementor-nav-menu--main .elementor-item.elementor-item-active,
.elementor-67 .elementor-element.elementor-element-d792d66 .elementor-nav-menu--dropdown .elementor-item.elementor-item-active {
	color: #7a1e39 !important;
}

/* Elementor Nav Menu widget — current / active text (+ icons). */
.elementor-nav-menu .elementor-item.elementor-item-active,
.elementor-nav-menu .current-menu-item > .elementor-item,
.elementor-nav-menu .current_page_item > .elementor-item,
.elementor-nav-menu .elementor-item.elementor-item-active i,
.elementor-nav-menu .elementor-item.elementor-item-active svg {
	color: #7a1e39 !important;
	fill: #7a1e39 !important;
}

/* EAEL simple menu (e.g. Buying sidebar on Shared Ownership) — charcoal default. */
.eael-simple-menu-container .eael-simple-menu li > a,
.eael-simple-menu-container .eael-simple-menu li:hover > a,
.eael-simple-menu-container.preset-1 .eael-simple-menu li > a,
.eael-simple-menu-container.preset-1 .eael-simple-menu li:hover > a {
	color: #1f1f1f !important;
}

/* EAEL — selected / current → berry (beats TPJ styles.css #136385). */
.eael-simple-menu-container .eael-simple-menu li.current-menu-item > a,
.eael-simple-menu-container .eael-simple-menu li.current_page_item > a,
.eael-simple-menu-container .eael-simple-menu li.current-menu-item:hover > a,
.eael-simple-menu-container .eael-simple-menu li.current_page_item:hover > a,
.eael-simple-menu-container.preset-1 .eael-simple-menu li.current-menu-item > a,
.eael-simple-menu-container.preset-1 .eael-simple-menu li.current_page_item > a,
.eael-simple-menu-container.preset-1 .eael-simple-menu li.current-menu-item:hover > a,
.eael-simple-menu-container.preset-1 .eael-simple-menu li.current_page_item:hover > a {
	color: #7a1e39 !important;
}

/* UAEL nav — active item → berry. */
.uael-nav-menu .uael-menu-item.uael-menu-item-active,
.uael-nav-menu .uael-sub-menu-item.uael-sub-menu-item-active,
.uael-nav-menu .current-menu-item > .uael-menu-item,
.uael-nav-menu .current-menu-item > a,
.uael-nav-menu .current_page_item > a {
	color: #7a1e39 !important;
}

/* UAEL post slider background — all pages using the home-page-slider post class. */
.home-page-slider .uael-post__bg-wrap {
	background-color: #efeae0 !important;
}

/*
 * #hero-slider banners (Services, What we offer, Living types, etc.) are single-image.
 * UAEL carousel still has dots:true, so Slick injects a lone .slick-dots bullet on the image.
 * Not mandatory — hide pagination (and unused arrows) for these one-slide heroes.
 */
#hero-slider .slick-dots,
#hero-slider ul.slick-dots {
	display: none !important;
}

#hero-slider .slick-prev,
#hero-slider .slick-next,
#hero-slider .uael-post__arrows {
	display: none !important;
}

.uael-post-wrapper .uael-post__bg-wrap {
	border-radius: 0 !important;
}

/* Header phone button icon — overrides Elementor custom CSS on header phone widget. */
.elementor-67 .menu-header .elementor-widget-button .fa,
.elementor-67 .menu-header .elementor-widget-button .fa-phone-alt,
.elementor-67 .elementor-element-148b47b .fa,
.elementor-67 .elementor-element-148b47b .fa-phone-alt,
.elementor-67 .elementor-element-8b1c58a .fa,
.elementor-67 .elementor-element-8b1c58a .fa-phone-alt {
	font-size: 1em;
	color: #fff;
	margin-right: 3px;
	line-height: 1;
	vertical-align: middle;
}

/* Desktop header logo — balance readable size with 1.2em section padding. */
.elementor-67 .menu-header.elementor-element-37b49a2 .elementor-element-789fa10 img {
	max-height: 72px;
	width: auto !important;
	height: auto !important;
}

.elementor-67 .menu-header.elementor-element-37b49a2 .elementor-element-789fa10 > .elementor-widget-container {
	margin: 0 !important;
}

/*
 * Mobile header (Elementor section 6370408) — white bar uses dark lockup (PHP swap)
 * and tighter vertical alignment for logo + burger icon.
 */
.elementor-67 .menu-header.elementor-element-6370408 {
	padding: 0.65em 1em !important;
}

.elementor-67 .menu-header.elementor-element-6370408 > .elementor-container {
	align-items: center !important;
}

.elementor-67 .menu-header.elementor-element-6370408 .elementor-element-fe3ee37 > .elementor-widget-container {
	margin: 0 !important;
}

.elementor-67 .menu-header.elementor-element-6370408 .elementor-element-fe3ee37 img {
	width: auto !important;
	max-width: min(220px, 72vw);
	height: auto !important;
	max-height: 52px;
	object-fit: contain;
}

.elementor-67 .menu-header.elementor-element-6370408 .elementor-element-b44852e .elementor-icon-wrapper {
	text-align: right;
	line-height: 1;
}

.elementor-67 .menu-header.elementor-element-6370408 .elementor-element-b44852e .elementor-icon {
	color: #657360 !important;
}

.elementor-67 .menu-header.elementor-element-6370408 .elementor-element-b44852e .elementor-icon i {
	font-size: 28px;
	line-height: 1;
}

.elementor-bc-flex-widget .elementor-67 .menu-header.elementor-element-6370408 .elementor-element-23da851.elementor-column .elementor-widget-wrap,
.elementor-bc-flex-widget .elementor-67 .menu-header.elementor-element-6370408 .elementor-element-3d329bc.elementor-column .elementor-widget-wrap {
	align-items: center !important;
}

.elementor-67 .menu-header.elementor-element-6370408 .elementor-element-3d329bc .elementor-widget-wrap {
	justify-content: flex-end !important;
}

/* Mobile burger menu popup — logo spacing + full-width nav alignment. */
.elementor-15964 .elementor-element-468b38a > .elementor-widget-container {
	margin: 1.25rem 0 0.75rem !important;
	text-align: center;
}

.elementor-15964 .elementor-element-468b38a img {
	width: auto !important;
	max-width: min(280px, 85vw);
	height: auto !important;
	max-height: 64px;
	object-fit: contain;
}

.elementor-15964 .elementor-element-ce7b718 {
	width: 100% !important;
	max-width: 100% !important;
}

.elementor-15964 .elementor-element-ce7b718 > .elementor-widget-container {
	padding: 0 1.25rem 1.25rem !important;
}

.elementor-15964 .elementor-element-ce7b718 .uael-nav-menu {
	width: 100%;
}

.elementor-15964 .elementor-element-ce7b718 .uael-nav-menu .uael-menu-item,
.elementor-15964 .elementor-element-ce7b718 .uael-nav-menu .uael-sub-menu-item {
	text-align: left;
}

/*
 * Charcoal text / headings rebrand.
 * --e-global-color-text is already #1F1F1F in the kit; remap moss body
 * copy global (914c6c4 was #657360) + slate headings (d1705ff).
 * Leave --e-global-color-primary (#657360) for accents / CTAs.
 */
.elementor-kit-37 {
	--e-global-color-text: #1f1f1f;
	--e-global-color-914c6c4: #1f1f1f;
	--e-global-color-d1705ff: #1f1f1f;
}

.elementor-kit-37 h1,
.elementor-kit-37 h2,
.elementor-kit-37 h3,
.elementor-kit-37 h4,
.elementor-kit-37 h5,
.elementor-kit-37 h6 {
	color: #1f1f1f !important;
}

/* Body copy / paragraphs — charcoal, not moss. */
.elementor-kit-37 p,
body p,
li,
strong {
	color: #1f1f1f;
}

/* Preserve intentional white headings on dark / badge surfaces. */
.font-white h1,
.font-white h2,
.font-white h3,
.font-white h4,
.font-white h5,
.font-white h6,
.font-white .elementor-heading-title,
.department-box h3,
.department-grid-box h3,
#tpj_property_single .part-exchange-wrapper h2,
/*
 * Testimonials loop (tpl 21506) — names/titles sit on olive #657360
 * (.elementor-element-357c43b). .font-white is only on the quote sibling
 * (ff3544e), not the h6 title widget (3c8301e).
 */
.elementor-21506 .elementor-element-357c43b h6,
.elementor-21506 .elementor-element-3c8301e .elementor-heading-title {
	color: #ffffff !important;
}

/* Preserve intentional white / light body copy on dark banners. */
.font-white,
.font-white p,
.font-white li,
.font-white strong,
.part-exchange-wrapper,
.part-exchange-wrapper p,
.part-exchange-wrapper li,
.part-exchange-wrapper strong,
#tpj_property_single .part-exchange-wrapper,
#tpj_property_single .part-exchange-wrapper p,
#tpj_property_single .part-exchange-wrapper li,
#tpj_property_single .part-exchange-wrapper strong {
	color: #ffffff !important;
}

/*
 * Remove Elementor corner radius site-wide (rebrand).
 * Specificity must beat Elementor page CSS like
 * `.elementor-24846 .elementor-element.elementor-element-XXXX > .elementor-widget-container`.
 */
body .elementor .elementor-element.elementor-widget > .elementor-widget-container,
body .elementor .elementor-element > .elementor-widget-container {
	border-radius: 0 !important;
}

body .elementor .elementor-element {
	--border-radius: 0 !important;
}

body .elementor .elementor-post__card {
	border-radius: 0 !important;
}

/* Post content images — remove radius. */
.post-text .elementor-widget-container img {
	border-radius: 0 !important;
}

.development-card {
	border-radius: 0 !important;
}

.development-card a img,
.development-card a .development-card__image {
	border-top-left-radius: 0 !important;
	border-top-right-radius: 0 !important;
}

.development-box-wrapper {
	background-color: #efeae0 !important;
}

/* Developments listing page section background. */
.elementor-15929 .elementor-element.elementor-element-453ac28:not(.elementor-motion-effects-element-type-background),
.elementor-15929 .elementor-element.elementor-element-453ac28 > .elementor-motion-effects-container > .elementor-motion-effects-layer {
	background-color: #d5ccc0 !important;
}

/*
 * Posts “Read more” (news archive + homepage cards) — berry text link, no fill.
 * Same treatment as event contact-icon / View On Map in button-colors.css.
 */
.elementor-109 .elementor-element.elementor-element-20cc464 .elementor-post__read-more,
.elementor-post__read-more {
	padding: 0 !important;
	background-color: transparent !important;
	background-image: none !important;
	border: 0 !important;
	border-color: transparent !important;
	border-radius: 0 !important;
	box-shadow: none !important;
	color: #7a1e39 !important;
	text-decoration: none;
}

.elementor-109 .elementor-element.elementor-element-20cc464 .elementor-post__read-more:hover,
.elementor-109 .elementor-element.elementor-element-20cc464 .elementor-post__read-more:focus,
.elementor-post__read-more:hover,
.elementor-post__read-more:focus {
	background-color: transparent !important;
	border-color: transparent !important;
	color: #7a1e39 !important;
}

/* Kit body links — berry, same on hover (overrides primary #657360). */
.elementor-kit-37 a {
	background-color: transparent;
	color: #7a1e39;
	text-decoration: none;
}

.elementor-kit-37 a:hover,
.elementor-kit-37 a:focus {
	color: #7a1e39;
}

/*
 * Nested strong/span in links must inherit link colour.
 * Global `strong { color: #1f1f1f }` otherwise paints <a><strong> charcoal.
 * inherit keeps filled buttons (white text on the <a>) and list-group charcoal intact.
 */
.elementor-kit-37 a strong,
.elementor-kit-37 a span,
.elementor-kit-37 .elementor-widget-text-editor a strong,
.elementor-kit-37 .elementor-widget-text-editor a span,
.elementor-kit-37 .post-text a strong,
.elementor-kit-37 .post-text a span {
	color: inherit;
}

/*
 * Child/sibling page menus ([tpj_list_child_pages] / [tpj_list_sibling_pages])
 * — charcoal by default; berry when clicked, focused, or current (.active).
 * More specific than the kit-wide `a` berry rule above.
 */
.elementor-kit-37 .list-group-item a,
.elementor-kit-37 .list-group-item a:hover,
.elementor-kit-37 .list-group-item a span {
	color: #1f1f1f;
}

.elementor-kit-37 .list-group-item a:active,
.elementor-kit-37 .list-group-item a:focus,
.elementor-kit-37 .list-group-item.active a,
.elementor-kit-37 .list-group-item.active a span,
.elementor-kit-37 .list-group-item.current_page_item a,
.elementor-kit-37 .list-group-item.current-menu-item a {
	color: #7a1e39;
}

/* Elementor footer template 98 is suppressed by theme-mccarthystone/footer.php. */

/*
 * Elementor Google Maps → JS Maps container (berry pin).
 * Matches Elementor's default iframe height (widget-google_maps.css).
 */
.elementor-widget-google_maps .mcc-elementor-map {
	width: 100%;
	height: 300px;
	line-height: 0;
}

.elementor-widget-google_maps .mcc-elementor-map__fallback {
	padding: 1rem;
	line-height: 1.4;
	color: #6c757d;
}

/*
 * Odd table row stripes — Hello Elementor reset uses grey hsla(0,0%,50%,.071).
 * Soft stone tint of brand #BCAF9E (solid is too heavy for zebra striping).
 */
table tbody > tr:nth-child(odd) > td,
table tbody > tr:nth-child(odd) > th {
	background-color: rgba(188, 175, 158, 0.35);
}

/*
 * Header / hero banner formats — drop Better Times, use AzoSans.
 * Elementor kit typography c2c23f8 + homepage slides (ba67ab2) / heading (4c25352)
 * hardcode Better Times in generated CSS; override here so CMS font stays Azo.
 */
.elementor-kit-37 {
	--e-global-typography-c2c23f8-font-family: "AzoSans";
}

.elementor-widget-slides .elementor-slide-heading,
.elementor-109 .elementor-element-ba67ab2 .elementor-slide-heading,
.elementor-109 .elementor-element-4c25352 .elementor-heading-title {
	font-family: "AzoSans", AzoSans, sans-serif !important;
}

/*
 * Hero slides — main McCarthy & Stone managed-content card.
 * Title → dark header bar; Description → white-box headline; Button → charcoal CTA.
 * Fonts stay AzoSans throughout.
 */
.elementor-widget-slides .swiper-slide-inner {
	/* Align with main-site content column (~1504px) so the card sits
	   inset toward centre on wide screens, not flush to the viewport edge.
	   Extra left offset keeps the prev-arrow clear of the white card. */
	--mcc-hero-content-max: 94rem;
	--mcc-hero-arrow-clearance: 3.5rem;

	justify-content: flex-start !important;
	align-items: center !important;
	padding-top: 3rem !important;
	padding-bottom: 7.5rem !important;
	padding-left: max(
		calc(1.5rem + var(--mcc-hero-arrow-clearance)),
		calc((100% - var(--mcc-hero-content-max)) / 2 + var(--mcc-hero-arrow-clearance))
	) !important;
	padding-right: max(1.5rem, calc((100% - var(--mcc-hero-content-max)) / 2)) !important;
	box-sizing: border-box;
}

/* Keep slide arrows above the managed-content card. */
.elementor-widget-slides .elementor-swiper-button,
.elementor-widget-slides .elementor-swiper-button-prev,
.elementor-widget-slides .elementor-swiper-button-next {
	z-index: 5 !important;
}

.elementor-widget-slides .swiper-slide-contents {
	--mcc-hero-card-header: #554f49;
	--mcc-hero-card-ink: #333333;
	--mcc-hero-card-pad: 20px;

	width: min(100%, 30.5rem);
	max-width: 30.5rem !important;
	height: auto !important;
	min-height: 0 !important;
	margin: 0 !important;
	padding: var(--mcc-hero-card-pad) !important;
	background: #ffffff !important;
	color: var(--mcc-hero-card-ink) !important;
	border-radius: 0 !important;
	box-shadow: 0 8px 28px rgba(0, 0, 0, 0.18);
	box-sizing: border-box;
	text-align: left !important;
}

.elementor-widget-slides .elementor-slide-heading {
	display: flex !important;
	align-items: center;
	width: calc(100% + (var(--mcc-hero-card-pad) * 2));
	max-width: none !important;
	margin: calc(var(--mcc-hero-card-pad) * -1) calc(var(--mcc-hero-card-pad) * -1) 0 !important;
	padding: 5px var(--mcc-hero-card-pad) !important;
	min-height: 50px;
	box-sizing: border-box;
	background-color: var(--mcc-hero-card-header) !important;
	color: #ffffff !important;
	font-family: "AzoSans", AzoSans, sans-serif !important;
	font-size: 16px !important;
	font-weight: 500 !important;
	line-height: 1.5 !important;
	letter-spacing: normal !important;
	text-transform: none !important;
	text-shadow: none !important;
}

.elementor-widget-slides .elementor-slide-heading::before,
.elementor-widget-slides .elementor-slide-heading::after {
	content: none !important;
	display: none !important;
}

/* Title copy — white-box headline (Elementor Description). */
.elementor-widget-slides .elementor-slide-description {
	margin: 20px 0 10px !important;
	padding: 0 !important;
	color: var(--mcc-hero-card-ink) !important;
	font-family: "AzoSans", AzoSans, sans-serif !important;
	font-size: clamp(1.35rem, 2vw, 2rem) !important;
	font-weight: 500 !important;
	font-style: normal !important;
	line-height: 1.25 !important;
	letter-spacing: normal !important;
	text-shadow: none !important;
}

.elementor-widget-slides .elementor-slide-description::first-letter {
	text-transform: uppercase;
}

.elementor-widget-slides .swiper-slide-contents .elementor-slide-button,
.elementor-widget-slides .swiper-slide-contents a.elementor-slide-button,
.elementor-widget-slides .swiper-slide-contents .elementor-button.elementor-slide-button {
	display: inline-flex !important;
	align-items: center;
	justify-content: center;
	margin: 20px 0 0 !important;
	padding: 5px 40px !important;
	background-color: var(--mcc-hero-card-ink) !important;
	border: 0 !important;
	border-radius: 0 !important;
	color: #ffffff !important;
	font-family: "AzoSans", AzoSans, sans-serif !important;
	font-size: 14px !important;
	font-weight: 500 !important;
	line-height: 1.5 !important;
	text-transform: none !important;
	text-decoration: none !important;
	box-shadow: none !important;
}

.elementor-widget-slides .swiper-slide-contents .elementor-slide-button:hover,
.elementor-widget-slides .swiper-slide-contents .elementor-slide-button:focus,
.elementor-widget-slides .swiper-slide-contents a.elementor-slide-button:hover,
.elementor-widget-slides .swiper-slide-contents a.elementor-slide-button:focus,
.elementor-widget-slides .swiper-slide-contents .elementor-button.elementor-slide-button:hover,
.elementor-widget-slides .swiper-slide-contents .elementor-button.elementor-slide-button:focus {
	background-color: #1f1f1f !important;
	border-color: transparent !important;
	color: #ffffff !important;
}

@media (max-width: 767px) {
	.elementor-widget-slides .swiper-slide-inner {
		padding-top: 1.5rem !important;
		padding-bottom: 5.5rem !important;
		padding-left: 1rem !important;
		padding-right: 1rem !important;
		align-items: flex-end !important;
	}

	.elementor-widget-slides .swiper-slide-contents {
		width: 100%;
		max-width: 100% !important;
	}

	.elementor-widget-slides .elementor-slide-heading {
		min-height: 42px;
		font-size: 14px !important;
	}

	.elementor-widget-slides .elementor-slide-description {
		font-size: 1.3rem !important;
		margin: 16px 0 8px !important;
	}

	.elementor-widget-slides .swiper-slide-contents .elementor-slide-button,
	.elementor-widget-slides .swiper-slide-contents a.elementor-slide-button,
	.elementor-widget-slides .swiper-slide-contents .elementor-button.elementor-slide-button {
		padding: 8px 24px !important;
		font-size: 13px !important;
	}
}
