.elementor-kit-5{--e-global-color-primary:#B89649;--e-global-color-secondary:#08080C;--e-global-color-text:#4A5258;--e-global-color-accent:#CDB060;--e-global-color-cream:#F4ECD8;--e-global-color-muted:#6B7178;--e-global-color-white:#FFFFFF;--e-global-color-linegold:rgba(10,14,16,0.08);--e-global-typography-primary-font-family:"SF Pro Display";--e-global-typography-primary-font-weight:600;--e-global-typography-secondary-font-family:"SF Pro Display";--e-global-typography-secondary-font-weight:500;--e-global-typography-text-font-family:"SF Pro Display";--e-global-typography-text-font-weight:400;--e-global-typography-accent-font-family:"SF Pro Display";--e-global-typography-accent-font-weight:600;font-family:"SF Pro Display", sans-serif;font-weight:400;}.elementor-kit-5 e-page-transition{background-color:#FFBC7D;}.elementor-kit-5 p{margin-block-end:20px;}.elementor-kit-5 h1{font-family:"SF Pro Display", sans-serif;font-weight:600;}.elementor-kit-5 h2{font-family:"SF Pro Display", sans-serif;font-weight:600;}.elementor-kit-5 h3{font-family:"SF Pro Display", sans-serif;font-weight:600;}.elementor-kit-5 h4{font-family:"SF Pro Display", sans-serif;font-weight:600;}.elementor-kit-5 h5{font-family:"SF Pro Display", sans-serif;font-weight:600;}.elementor-kit-5 h6{font-family:"SF Pro Display", sans-serif;font-weight:600;}.elementor-kit-5 button,.elementor-kit-5 input[type="button"],.elementor-kit-5 input[type="submit"],.elementor-kit-5 .elementor-button{font-family:"SF Pro Display", sans-serif;font-weight:500;}.elementor-section.elementor-section-boxed > .elementor-container{max-width:1600px;}.e-con{--container-max-width:1600px;--container-default-padding-top:0px;--container-default-padding-right:0px;--container-default-padding-bottom:0px;--container-default-padding-left:0px;}.elementor-widget:not(:last-child){--kit-widget-spacing:0px;}.elementor-element{--widgets-spacing:0px 0px;--widgets-spacing-row:0px;--widgets-spacing-column:0px;}{}h1.entry-title{display:var(--page-title-display);}@media(max-width:1024px){.elementor-section.elementor-section-boxed > .elementor-container{max-width:1024px;}.e-con{--container-max-width:1024px;}}@media(max-width:767px){.elementor-section.elementor-section-boxed > .elementor-container{max-width:767px;}.e-con{--container-max-width:767px;}}/* Start custom CSS *//* ===== Rise & Shine — Sectors mega menu (scoped) ===== */
.rs-mm-row{align-items:flex-start;}
.rs-mm-row,.rs-mm-row *{max-width:100%;}
.rs-mm-right{min-width:0;}

/* Intro block */
.rs-mm-intro{width:100%;}
.rs-mm-statement .elementor-heading-title{display:block;text-wrap:balance;}
.rs-mm-rule{width:100%;}
.rs-mm-rule .elementor-divider{padding-block:0;}

/* Sector grid + items */
.rs-mm-grid{width:100%;}
.rs-mm-item{position:relative;transition:background-color .22s ease,transform .22s ease;}
.rs-mm-item:hover{background-color:#FAF6EC;}
.rs-mm-item .rs-mm-ico .elementor-icon{transition:background-color .22s ease,transform .22s ease;}
.rs-mm-item:hover .rs-mm-ico .elementor-icon{background-color:#F0E4C6;transform:translateY(-1px);}
.rs-mm-ico .elementor-icon svg,.rs-mm-ico .elementor-icon img{width:16px;height:16px;display:block;}
.rs-mm-label{min-width:0;}
.rs-mm-label .elementor-heading-title{margin:0;}
.rs-mm-label a{text-decoration:none;transition:color .2s ease;}
/* stretch each sector's real anchor across its row */
.rs-mm-label a::after{content:"";position:absolute;inset:0;z-index:2;border-radius:12px;}
.rs-mm-item:focus-within{background-color:#FAF6EC;}
.rs-mm-label a:focus-visible::after{outline:2px solid var(--e-global-color-primary,#B89649);outline-offset:2px;}

/* Featured card */
.rs-mm-feature{position:relative;transition:transform .28s ease;}
.rs-mm-feature > a.elementor-element-overlay,.rs-mm-feature > a{border-radius:18px;}
.rs-mm-feature-img img{transition:transform .5s ease;}
.rs-mm-feature:hover .rs-mm-feature-img img{transform:scale(1.035);}
.rs-mm-feature-body{position:relative;z-index:2;}
.rs-mm-feature-title .elementor-heading-title{margin:0;}
.rs-mm-feature-desc p:last-child{margin-bottom:0;}

/* Circular arrow */
.rs-mm-feature-body .rs-mm-arrow{position:absolute;top:16px;right:16px;margin:0;width:auto;}
.rs-mm-arrow .elementor-icon{transition:transform .28s ease,box-shadow .28s ease;}
.rs-mm-feature:hover .rs-mm-arrow .elementor-icon{transform:translate(3px,-3px);box-shadow:0 6px 18px rgba(184,150,73,.32);}
.rs-mm-feature:focus-within{outline:2px solid var(--e-global-color-primary,#B89649);outline-offset:3px;border-radius:18px;}

/* Laptop / small desktop */
@media (max-width:1366px){
  .rs-mm-feature-body .rs-mm-arrow{top:14px;right:14px;}
}
/* Tablet: stack columns, keep 2-up sector grid */
@media (max-width:1024px){
  .rs-mm-row{flex-wrap:wrap;}
  .rs-mm-left,.rs-mm-right{width:100%;flex:1 1 100%;}
}
/* Mobile: single column, native ElementsKit accordion untouched */
@media (max-width:767px){
  .rs-mm-row{padding-inline:16px;}
  .rs-mm-item{padding-inline:8px;}
  .rs-mm-feature-body .rs-mm-arrow{top:12px;right:12px;}
}
/* grid rows: content-sized, 11 items over 2 columns */
.rs-mm-grid{--e-con-grid-template-rows:auto;}

/* icon chip: round ring, no square wrapper border */
.rs-mm-ico{border:0;border-radius:50%;}
.rs-mm-ico .elementor-icon{border:1px solid rgba(184,150,73,.28);border-radius:50%;}
.rs-mm-item:hover .rs-mm-ico .elementor-icon{border-color:rgba(184,150,73,.55);}

/* featured body inset evenly over the image */
.rs-mm-feature-body{--width:auto;margin-left:16px;margin-right:16px;}

/* ===== theme style.css ===== */
/*
 * Rise & Shine site styles.
 * Layout, spacing and typography live in Elementor's native controls. This file holds only
 * what those controls cannot express, hooked on meaningful classes/IDs set in Elementor.
 */

/* ---------- Header navigation ---------- */
@media (min-width: 1025px) and (max-width: 1366px) {
	.elementor-location-header .elementor-nav-menu .elementor-item {
		padding-left: 11px !important;
		padding-right: 11px !important;
	}
}

/* The ElementsKit mega-menu panel is positioned from the menu item at load time; if the nav
   re-flows when web fonts arrive, the hidden full-width panel can end up a few pixels past
   the viewport. Clip it horizontally (clip creates no scroll container, so sticky/vertical
   overflow are unaffected). */
.elementor-location-header {
	overflow-x: clip;
}

.rs-banner__panel {
	background-color: #fff !important;
}

/* ---------- Fixed-size icon boxes ---------- */
.icon-size-44 {
	display: flex;
	align-items: center;
	height: 44px;
	width: 44px;
	min-height: 44px;
	min-width: 44px;
}

.icon-size-56 {
	display: flex;
	align-items: center;
	height: 56px;
	width: 56px;
	min-height: 56px;
	min-width: 56px;
}

.icon-size-26 {
	display: flex;
	align-items: center;
	width: 26px;
	height: 26px;
	min-width: 26px;
	min-height: 26px;
}

.icon-size-26 .elementor-icon-wrapper,
.icon-size-44 .elementor-icon-wrapper,
.icon-size-56 .elementor-icon-wrapper {
	box-sizing: unset !important;
	height: unset;
	display: contents;
}

.width-40px-cus {
	display: flex;
	align-items: center;
	justify-content: center;
	height: 40px;
	width: 40px;
	min-height: 40px;
	min-width: 40px;
}

.width-88px-cus {
	display: flex;
	align-items: center;
	justify-content: center;
	height: 88px;
	width: 88px;
	min-height: 88px;
	min-width: 88px;
}

/* ---------- Typography accents ---------- */
/* Gold gradient text for highlighted words inside headings */
.elementor-heading-title span {
	background: linear-gradient(117deg, #8A6F2F 0%, #CDB060 45%, #E8CC88 100%);
	background-clip: text;
	-webkit-background-clip: text;
	-webkit-text-fill-color: transparent;
}

.width-auto-cus,
.rs-inline {
	width: auto;
}

.backdrop-filter-case {
	backdrop-filter: blur(5px);
	border: 1px solid rgba(255, 255, 255, 0.22);
}

/* ---------- Link hover colours ---------- */
footer .elementor-heading-title a:hover {
	color: #B89649 !important;
}

.elementor-heading-title a:hover {
	color: #000 !important;
}

.elementskit-megamenu-panel .elementor-heading-title a:hover {
	color: #B89649 !important;
}

.top-bar-a a:hover {
	color: #cdb060 !important;
}

/* ---------- ElementsKit header search button (widget is currently hidden) ---------- */
.search-btn-cus a.ekit_navsearch-button.ekit-modal-popup {
	position: relative;
	color: rgba(255, 255, 255, 0.85);
	font-family: var(--e-global-typography-text-font-family, "SF Pro Display"), -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
	font-size: 16px;
	font-style: normal;
	font-weight: 500;
	line-height: 24.8px !important;
	letter-spacing: -0.08px;
	display: flex;
	padding: 10px 18px !important;
	justify-content: center;
	align-items: center;
	border-radius: 980px;
	border: 1px solid rgba(255, 255, 255, 0.20);
	margin: 0 !important;
	width: unset !important;
	height: unset !important;
}

.search-btn-cus a.ekit_navsearch-button.ekit-modal-popup:before {
	content: "Search";
	position: relative;
}

.search-btn-cus a.ekit_navsearch-button.ekit-modal-popup svg {
	display: none !important;
}

.search-btn-cus a.ekit_navsearch-button.ekit-modal-popup:hover {
	background: #CDB060;
	color: #000;
}

/* ---------- Header layout breakpoints ---------- */
@media (max-width: 1465px) {
	.header-menu-menu-d ul li a {
		padding: 0 5px !important;
	}

	.header-menu-menu-d ul li a svg {
		margin-left: 3px !important;
		margin-right: 3px !important;
	}
}

@media (max-width: 1215px) {
	.btn-box-header {
		flex-direction: column !important;
		align-items: end !important;
	}
}

@media (max-width: 1095px) {
	.header-main-section .e-con-inner {
		flex-wrap: wrap !important;
	}

	.btn-box-header {
		flex: 1 1 100% !important;
		flex-direction: unset !important;
		justify-content: end !important;
	}

	.btn-box-header .search-btn-cus {
		flex-grow: 0 !important;
	}

	.btn-box-header .elementor-element:last-child {
		width: auto;
		flex-grow: 0 !important;
	}
}

@media (max-width: 1024px) {
	.header-main-section .e-con-inner {
		flex-wrap: unset !important;
	}

	.btn-box-header {
		flex: unset !important;
		flex-direction: unset !important;
		justify-content: unset !important;
	}

	.btn-box-header .search-btn-cus {
		flex-grow: unset !important;
	}

	.btn-box-header .elementor-element:last-child {
		width: unset;
		flex-grow: unset !important;
	}
}

/* ---------- Contact Form 7 layouts ---------- */
/* Two-column enquiry form (.rs-form-grid) */
.rs-form-grid { display: flex; flex-wrap: wrap; gap: 18px; }
.rs-f { width: calc(50% - 9px); margin: 0; display: flex; flex-direction: column; gap: 6px; }
.rs-f.rs-full { width: 100%; }
.rs-f label { font-weight: 600; font-size: 13px; color: #08080C; }
.rs-form-grid input,
.rs-form-grid select,
.rs-form-grid textarea { width: 100%; padding: 12px 14px; border: 1px solid rgba(10, 14, 16, .12); border-radius: 10px; background: #FBF7EE; font-size: 15px; color: #08080C; font-family: var(--e-global-typography-text-font-family, "SF Pro Display"), -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif; }
.rs-form-grid textarea { min-height: 110px; }
.rs-submit { text-align: center; margin-top: 22px; }
.rs-submit input { background: #B89649; color: #fff; border: 0; border-radius: 980px; padding: 14px 32px; font-weight: 600; font-size: 15px; cursor: pointer; transition: background .3s; }
.rs-submit input:hover { background: #08080C; }
.rs-fine { text-align: center; color: #6B7178; font-size: 12px; margin-top: 10px; }
@media (max-width: 600px) { .rs-f { width: 100%; } }

/* Careers application form */
#rs-careers-apply input[type=text],
#rs-careers-apply input[type=email],
#rs-careers-apply input[type=tel],
#rs-careers-apply input[type=url],
#rs-careers-apply input[type=date],
#rs-careers-apply select,
#rs-careers-apply .wpcf7-form-control:not(.wpcf7-submit):not([type=checkbox]):not([type=radio]) {
	width: 100% !important;
	min-height: 54px !important;
	box-sizing: border-box !important;
	padding: 14px 16px !important;
	border-radius: 12px !important;
}

#rs-careers-apply textarea {
	width: 100% !important;
	min-height: 120px !important;
	box-sizing: border-box !important;
	padding: 14px 16px !important;
	border-radius: 12px !important;
}

/* Site-assessment form (.rsform-grid) */
.rsform-grid { display: flex; flex-wrap: wrap; gap: 18px; }
.rsform-grid p { margin: 0; }
.rsf-half { width: calc(50% - 9px); }
.rsf-full { width: 100%; }
@media (max-width: 600px) { .rsf-half { width: 100%; } }
.rsform-grid label { display: block; font-family: var(--e-global-typography-text-font-family, "SF Pro Display"), -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif; font-size: 14px; font-weight: 600; color: #08080C; }
.rsform-grid input[type=text],
.rsform-grid input[type=email],
.rsform-grid input[type=tel],
.rsform-grid select,
.rsform-grid textarea { width: 100%; margin-top: 8px; padding: 13px 15px; border: 1px solid rgba(10, 14, 16, .15); border-radius: 10px; background: #F7F7F5; font-family: var(--e-global-typography-text-font-family, "SF Pro Display"), -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif; font-size: 15px; color: #08080C; }
.rsform-grid textarea { min-height: 120px; resize: vertical; }
.rsform-grid input:focus,
.rsform-grid select:focus,
.rsform-grid textarea:focus { outline: none; border-color: #B89649; background: #fff; }
.rsf-check label { font-weight: 400; font-size: 15px; color: #3F474D; display: flex; align-items: center; gap: 8px; }
.rsf-check input { width: auto; margin: 0; }
.rsform-grid input[type=submit] { width: 100%; background: #B89649; color: #fff; border: none; border-radius: 980px; padding: 16px; font-family: var(--e-global-typography-text-font-family, "SF Pro Display"), -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif; font-weight: 600; font-size: 16px; cursor: pointer; transition: background .3s; }
.rsform-grid input[type=submit]:hover { background: #08080C; }
/* CF7 spinner sits inside the right end of the submit button instead of wrapping under (and touching) it */
.rsform-grid p:has(> .wpcf7-submit) { position: relative; }
.rsform-grid .wpcf7-spinner { position: absolute; top: 50%; right: 16px; margin: -12px 0 0; }
.rsf-note { text-align: center; font-family: var(--e-global-typography-text-font-family, "SF Pro Display"), -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif; font-size: 13px; color: #6B7178; }

/* ---------- Quote glyph ---------- */
/* Must beat the global heading font, which is set with !important */
.rs-quote-glyph .elementor-heading-title {
	font-family: Georgia, serif !important;
}

/* ---------- Home FAQ accordion (divider borders, circular toggle) ---------- */
.home-faq .elementor-accordion-item {
	border: 0 !important;
	border-top: 1px solid rgba(255, 255, 255, 0.12) !important;
	background: transparent !important;
	margin: 0 !important;
}

.home-faq .elementor-accordion-item:last-child {
	border-bottom: 1px solid rgba(255, 255, 255, 0.12) !important;
}

.home-faq .elementor-accordion-icon {
	width: 36px !important;
	height: 36px !important;
	min-width: 36px !important;
	border: 1px solid rgba(255, 255, 255, 0.25) !important;
	border-radius: 50% !important;
	display: flex !important;
	align-items: center !important;
	justify-content: center !important;
	margin: 0 !important;
	padding: 0 !important;
	transition: all .3s ease;
}

.home-faq .elementor-accordion-icon svg {
	width: 15px !important;
	height: 15px !important;
}

.home-faq .elementor-accordion-icon i {
	font-size: 15px !important;
}

.home-faq .elementor-tab-title {
	display: flex;
	align-items: center;
	flex-direction: row-reverse;
	justify-content: space-between;
}

.home-faq .elementor-accordion-icon span {
	width: 36px !important;
	max-width: 36px !important;
	height: 36px;
	text-align: center;
}

.home-faq .elementor-accordion-icon span.elementor-accordion-icon-opened svg {
	transform: rotate(45deg);
}

/* ---------- Double shadows (Elementor's box-shadow control allows only one) ---------- */
#rs-partner-logos,
#rs-case-card-1,
#rs-case-card-2,
#rs-case-card-3,
.rs-shadow-card {
	box-shadow: 0 1px 2px 0 rgba(0, 0, 0, 0.04), 0 6px 18px 0 rgba(0, 0, 0, 0.04) !important;
}

#rs-eco-badge,
#rs-b481-6d2aeda {
	box-shadow: 0 4px 24px 0 rgba(0, 0, 0, 0.06), 0 16px 56px 0 rgba(0, 0, 0, 0.07) !important;
}

#rs-b503-07b3130,
#rs-b503-2594a1e,
#rs-b503-c8ff942,
#rs-b514-f97080f,
#rs-b514-89b1b45,
#rs-b514-2e69da6,
#rs-b527-238dcc0 {
	box-shadow: 0 1px 2px 0 rgba(0, 0, 0, 0.04), 0 6px 18px 0 rgba(0, 0, 0, 0.04) !important;
}

@media (max-width: 1366px) {
	.elementor-heading-title {
		line-height: 1.2 !important;
	}
}

/* ---------- Footer ---------- */
/* Column heading dividers: short gold gradient bar */
.border-cus .elementor-divider-separator {
	border: 0 !important;
	width: 26px;
	height: 2px;
	border-radius: 2px;
	background: linear-gradient(90deg, #b89649 0%, rgba(184, 150, 73, 0) 100%);
}

/* Footer nav menus render as plain lists at every breakpoint */
.footer-nav .elementor-nav-menu,
.footer-nav .elementor-nav-menu li {
	list-style: none;
	margin: 0;
	padding: 0;
}

@media (max-width: 767px) {
	.footer-nav-bottom .elementor-nav-menu--layout-horizontal .elementor-nav-menu {
		flex-wrap: wrap;
		justify-content: flex-start;
	}
}

/* Footer newsletter form */
.rs-newsletter-form input[type="email"].elementor-field:focus {
	outline: none;
	box-shadow: none;
	background: transparent;
}

.rs-newsletter-form button.elementor-button:focus-visible {
	outline: 2px solid rgba(205, 176, 96, 0.6);
	outline-offset: 2px;
}

.rs-newsletter-form .elementor-message {
	color: rgba(255, 255, 255, 0.72);
	font-family: var(--e-global-typography-text-font-family, "SF Pro Display"), -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
	font-size: 13px;
	line-height: 1.5;
	margin-top: 10px;
}

.rs-newsletter-form .elementor-message.elementor-message-danger,
.rs-newsletter-form .elementor-field-group .elementor-error .elementor-help-inline {
	color: #e8a3a3;
}

/* ---------- Brand Partners timeline ("How the partnership formed") ---------- */
/* Containers do not render custom classes here, so layout hangs off the #rs-bp-timeline ID. */
.rs-bp-head {
	max-width: 720px;
	margin-left: auto;
	margin-right: auto;
}

#rs-bp-timeline {
	position: relative;
	max-width: 920px;
	margin-left: auto;
	margin-right: auto;
	width: 100%;
}

#rs-bp-timeline::before {
	content: "";
	position: absolute;
	top: 8px;
	bottom: 8px;
	left: 50%;
	transform: translateX(-1px);
	width: 2px;
	background: linear-gradient(180deg, rgba(184, 150, 73, 0) 0%, #b89649 6%, #b89649 94%, rgba(184, 150, 73, 0) 100%);
	z-index: 0;
}

#rs-bp-timeline > .e-con {
	display: grid !important;
	grid-template-columns: 1fr 46px 1fr;
	align-items: start;
	column-gap: 0;
}

#rs-bp-timeline > .e-con > .e-con {
	padding: 0 56px 72px;
}

#rs-bp-timeline > .e-con:last-child > .e-con {
	padding-bottom: 0;
}

#rs-bp-timeline > .e-con > .elementor-widget-icon {
	position: relative;
	z-index: 1;
	grid-column: 2;
	justify-self: center;
	align-self: start;
	margin-top: 2px;
}

@media (max-width: 1024px) {
	#rs-bp-timeline {
		max-width: 620px;
	}

	#rs-bp-timeline::before {
		left: 22px;
		transform: none;
	}

	#rs-bp-timeline > .e-con {
		display: flex !important;
		align-items: flex-start;
		gap: 18px;
	}

	#rs-bp-timeline > .e-con > .elementor-widget-icon {
		order: 1;
		grid-column: auto;
		margin-top: 0;
		flex: 0 0 auto;
	}

	#rs-bp-timeline > .e-con > .e-con {
		order: 2;
		flex: 1 1 auto;
		padding: 0 0 44px;
	}

	#rs-bp-timeline > .e-con:nth-child(odd) > .e-con:last-child {
		display: none;
	}

	#rs-bp-timeline > .e-con:nth-child(even) > .e-con:first-child {
		display: none;
	}

	#rs-bp-timeline .elementor-heading-title,
	#rs-bp-timeline .elementor-widget-text-editor {
		text-align: left !important;
	}
}

/* Checkbox groups: Certification request form (CF7 #2124) and Contact Enquiry multi-selects (CF7 #344, .rsf-multi) */
:is(.rsform-cert .rsf-group, .rsf-multi) { border: 0; margin: 0; padding: 0; min-width: 0; }
:is(.rsform-cert .rsf-group, .rsf-multi) legend { padding: 0; margin-bottom: 8px; font-family: var(--e-global-typography-text-font-family, "SF Pro Display"), -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif; font-size: 14px; font-weight: 600; color: #08080C; }
:is(.rsform-cert .rsf-group, .rsf-multi) .wpcf7-checkbox { display: flex; flex-direction: column; gap: 10px; }
:is(.rsform-cert .rsf-group, .rsf-multi) .wpcf7-list-item { display: block; margin: 0; }
:is(.rsform-cert .rsf-group, .rsf-multi) .wpcf7-list-item label { font-weight: 400; font-size: 15px; color: #3F474D; display: flex; align-items: center; gap: 8px; cursor: pointer; }
:is(.rsform-cert .rsf-group, .rsf-multi) input[type=checkbox] { width: auto; margin: 0; accent-color: #B89649; }

/* Client Support (CF7 #2125) / Partnerships & Vendors (CF7 #2126): reuse .rsform-grid; adds a 3-up row and the grouped address block */
.rsf-third { width: calc(33.333% - 12px); }
@media (max-width: 600px) { .rsf-third { width: 100%; } }
.rsform-support .rsf-address { border: 0; margin: 0; padding: 0; min-width: 0; display: flex; flex-wrap: wrap; gap: 12px 18px; }
.rsform-support .rsf-address legend { padding: 0; margin-bottom: 0; font-family: var(--e-global-typography-text-font-family, "SF Pro Display"), -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif; font-size: 14px; font-weight: 600; color: #08080C; }
.rsform-support .rsf-address input { margin-top: 0 !important; }
.rsform-support .rsf-address small { display: block; margin-top: 6px; font-family: var(--e-global-typography-text-font-family, "SF Pro Display"), -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif; font-size: 12px; font-weight: 400; color: #6B7178; }

/* ---------- Card image hover zoom ----------
   Cards are tagged in Elementor (container > Advanced > CSS Classes: rs-zoom-card).
   Same motion as the existing site card convention (Office Cleaning Service cards):
   scale(1.04) over .6s cubic-bezier(.2,.7,.2,1).
   The image's own widget box clips the zoom, so the card size and text never move.
   --r18 / --r24: cards whose image has its own rounded corners (Hygiene swatches, Careers). */
.rs-zoom-card .elementor-widget-image {
	overflow: hidden;
	border-radius: var(--rs-zoom-radius, 0);
	transform: translateZ(0); /* keeps the rounded clip crisp in Safari while scaling */
}
.rs-zoom-card--r18 { --rs-zoom-radius: 18px; }
.rs-zoom-card--r24 { --rs-zoom-radius: 24px; }
.rs-zoom-card .elementor-widget-image img {
	transition: transform .6s cubic-bezier(.2, .7, .2, 1);
}
.rs-zoom-card:focus-within .elementor-widget-image img { transform: scale(1.04); }
@media (hover: hover) {
	/* hover only on real pointer devices, so a tap on touch screens doesn't leave a stuck zoom */
	.rs-zoom-card:hover .elementor-widget-image img { transform: scale(1.04); }
}

/* Cards that are themselves links (homepage Sectors): a light lift so the whole card reads as clickable.
   Non-link cards get the image zoom only. */
a.rs-zoom-card {
	transition: transform .35s cubic-bezier(.2, .7, .2, 1), box-shadow .35s cubic-bezier(.2, .7, .2, 1);
}
@media (hover: hover) {
	a.rs-zoom-card:hover { transform: translateY(-4px); box-shadow: 0 18px 40px rgba(8, 8, 12, .12); }
}
a.rs-zoom-card:focus-visible { outline: 2px solid #B89649; outline-offset: 3px; }

@media (prefers-reduced-motion: reduce) {
	.rs-zoom-card .elementor-widget-image img,
	a.rs-zoom-card { transition: none; }
	.rs-zoom-card:hover .elementor-widget-image img,
	.rs-zoom-card:focus-within .elementor-widget-image img,
	a.rs-zoom-card:hover { transform: none; }
}

/* ===== cards (was mu-plugin rs-card-layout) ===== */
/* card root: fill the grid cell so every card in a row ends on the same line */
.e-loop-item > .e-con:has(.rs-card-cta){height:100%;}

/* content column: take up the slack, and push the CTA to the base of the card */
.e-loop-item .e-con:has(> .rs-card-cta){flex:1 1 auto;}
.rs-card-cta{margin-top:auto;}

/* title: two lines, ellipsis past that. The WordPress title is not altered. */
.rs-card-title .elementor-heading-title{
	display:-webkit-box;
	-webkit-box-orient:vertical;
	-webkit-line-clamp:2;
	line-clamp:2;
	overflow:hidden;
}

/* Excerpt: three lines. A manual post excerpt renders as a bare text node, an
   excerpt generated from the content renders inside <p> - clamp whichever one
   actually carries the text, so both come out the same height. */
.rs-card-excerpt p,
.rs-card-excerpt:not(:has(p)){
	display:-webkit-box;
	-webkit-box-orient:vertical;
	-webkit-line-clamp:3;
	line-clamp:3;
	overflow:hidden;
}

/* Reserve the full text box so the excerpt and the CTA line up across a row even
   when one card's title runs to a single line. 1lh is the element's own
   line-height, so this follows the design instead of pinning a pixel height
   that would drift if the typography ever changed. */
.rs-card-title .elementor-heading-title{min-height:2lh;}
.rs-card-excerpt p,
.rs-card-excerpt:not(:has(p)){min-height:3lh;}

/* Equal image height. Cards that set their own height keep it - that Elementor
   rule is more specific - so this only supplies a ratio where none was set. */
.rs-card-media img{
	width:100%;
	aspect-ratio:3 / 2;
	object-fit:cover;
}

/* ===== contact links (was mu-plugin rs-contact-wrap) ===== */
/* The email is a single unbreakable token. Its icon+text row is flex-wrap:wrap,
   so the browser pushes the address onto its own line instead of shrinking it,
   which leaves the envelope icon stranded above it. Hold the row on one line and
   let the text item shrink; the address then breaks inside its own box. */
.e-con:has(> .elementor-widget-heading a[href^="mailto:"]){flex-wrap:nowrap;}
.e-con > .elementor-widget-heading:has(a[href^="mailto:"]){min-width:0;}
.elementor-heading-title a[href^="mailto:"],
.elementor-widget-text-editor a[href^="mailto:"]{overflow-wrap:anywhere;}

/* the phone number already wraps at its spaces - just stop it breaking mid-number */
.elementor-heading-title a[href^="tel:"]{white-space:nowrap;}

/* ===== was head snippet "cus code" ===== */
/* RS custom CSS - edit here (post 548 'cus code') */
.rs-hero-banner{max-width:1600px;margin-left:auto;margin-right:auto;overflow:hidden;}

/* ===== was Customizer additional CSS ===== */
body {
    background-color: #F1EDE6 !important;
}
.rs-mm-item .rs-mm-ico .elementor-icon {
    width: 36px;
    height: 36px;
}
.rs-mm-item .rs-mm-ico .elementor-icon-wrapper {
    width: 36px;
    height: 36px;
}
.rs-banner__text {
    width: 100% !important;
}
.rs-banner__stat-value .elementor-heading-title {
    font-size: 30px !important;
    line-height: 1 !important;
}
.e-loop-item .elementor-widget-image a {
    width: 100%;
}
@media (max-width: 768px) {
	.rs-banner__stat-value .elementor-heading-title {
    font-size: 26px !important;
	}
}/* End custom CSS */
/* Start Custom Fonts CSS */@font-face {
	font-family: 'SF Pro Display';
	font-style: normal;
	font-weight: 400;
	font-display: swap;
	src: url('https://riseandshinepropertyservices.co.nz/wp-content/uploads/2026/07/SF-Pro-Display-Regular.woff2') format('woff2');
}
@font-face {
	font-family: 'SF Pro Display';
	font-style: italic;
	font-weight: 400;
	font-display: swap;
	src: url('https://riseandshinepropertyservices.co.nz/wp-content/uploads/2026/07/SF-Pro-Display-RegularItalic.woff2') format('woff2');
}
@font-face {
	font-family: 'SF Pro Display';
	font-style: normal;
	font-weight: 500;
	font-display: swap;
	src: url('https://riseandshinepropertyservices.co.nz/wp-content/uploads/2026/07/SF-Pro-Display-Medium.woff2') format('woff2');
}
@font-face {
	font-family: 'SF Pro Display';
	font-style: italic;
	font-weight: 500;
	font-display: swap;
	src: url('https://riseandshinepropertyservices.co.nz/wp-content/uploads/2026/07/SF-Pro-Display-MediumItalic.woff2') format('woff2');
}
@font-face {
	font-family: 'SF Pro Display';
	font-style: normal;
	font-weight: 600;
	font-display: swap;
	src: url('https://riseandshinepropertyservices.co.nz/wp-content/uploads/2026/07/SF-Pro-Display-Semibold.woff2') format('woff2');
}
@font-face {
	font-family: 'SF Pro Display';
	font-style: italic;
	font-weight: 600;
	font-display: swap;
	src: url('https://riseandshinepropertyservices.co.nz/wp-content/uploads/2026/07/SF-Pro-Display-SemiboldItalic.woff2') format('woff2');
}
@font-face {
	font-family: 'SF Pro Display';
	font-style: normal;
	font-weight: 700;
	font-display: swap;
	src: url('https://riseandshinepropertyservices.co.nz/wp-content/uploads/2026/07/SF-Pro-Display-Bold.woff2') format('woff2');
}
@font-face {
	font-family: 'SF Pro Display';
	font-style: italic;
	font-weight: 700;
	font-display: swap;
	src: url('https://riseandshinepropertyservices.co.nz/wp-content/uploads/2026/07/SF-Pro-Display-BoldItalic.woff2') format('woff2');
}
/* End Custom Fonts CSS */