/*
 Theme Name:   TenantCloud
 Theme URI:    https://tenantcloud.com
 Description:  TenantCloud child theme of Hello Elementor
 Author:       TenantCloud
 Author URI:   https://tenantcloud.com
 Template:     hello-elementor
 Version:      1.0.0
 License:      GNU General Public License v2 or later
 License URI:  http://www.gnu.org/licenses/gpl-2.0.html
 Text Domain:  tenantcloud
*/

:root {
	--tt-green: #41A541
}

@keyframes fadeInUp {
	from {
		opacity: 0;
		transform: translateY(10px);
	}

	to {
		opacity: 1;
		transform: translateY(0);
	}
}

@keyframes fadeInLeft {
	from {
		opacity: 0;
		transform: translateX(-5px);
	}

	to {
		opacity: 1;
		transform: translateX(0);
	}
}

body {
	background-color: #FFFFFF;
}

a {
	color: var(--tt-green);
}

p {
	margin-block-end: 0;
	margin-block-start: 0;
}

dd,
dl,
dt,
li,
ol,
ul {
	background: transparent;
	border: 0;
	font-size: 100%;
	margin-block-end: 0;
	margin-block-start: 0;
	outline: 0;
	vertical-align: baseline;
	list-style-position: inside;
	padding: 0;
}

ol li {
	margin-bottom: 14px;

	&::marker {
		font-weight: bold;
		margin-right: 30px;
		margin-bottom: 14px;
	}
}

.m-0 {
	margin: 0;
}

/* HEADER */
.elementor-location-header .e-n-menu-heading .e-con.e-child .e-con-inner {
	box-shadow: 0 -10px 40px #0000000d, 0 50px 150px #0000000d, 0 100px 300px #0000000a;
	animation: fadeInUp 0.5s ease-in-out;
	border-radius: 15px;
}

a.header-menu-item {
	padding: 10px;
	border-radius: 10px;
	position: relative;
	padding-right: 34px;
	transform: all 0.5s ease-in-out;
	color: #102a43;

	p {
		font-weight: 700;
	}

	.elementor-widget-remixicon {
		background-color: #dbf1db;
		color: #102a43;
		border-radius: 5px;
	}

	&:after {
		position: absolute;
		right: 10px;
		top: 12px;
		content: "\ea6e";
		font-family: 'remixicon' !important;
		font-size: 21px;
		width: 21px;
		height: 21px;
		opacity: 0;
	}

	&:hover {
		background-color: #dbf1db;

		&:after {
			animation: fadeInLeft 0.5s forwards ease-in-out;
		}

		.elementor-widget-remixicon {
			background-color: #102a43;
			color: #dbf1db;
		}
	}
}

.elementor-location-header .e-n-menu-item:has(.e-n-menu-content.e-active) .e-n-menu-title.e-click::after {
	background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEcAAAAPCAYAAAC2u9IeAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAADlSURBVHgB5ZjRDYIwFEVfN2AERmAEN9ANZAPdwDiBI7CCToAjsEHZQDe43mf50mhKQqEtJznpRxvSvnCBh5GFALDhsKU6FrQcpp60oz29GWOushZYlJpa+KNra8kZvVNGFiX/IvFAFW0xHVavKSnDAxT0gnA0tJTUgHuuPBAeS4+SApg+QmOKFGfUED5CvjSIKWrczAHzRMgX3ctJlgTu1dwiXizdyZwgngj50mCOqCG+CPkSLmqIP0K+WIz4yjZ/CqLNoGZ2L645zImenumdjW3/a9FXceDyWQ2ugfcfABap+5x4AcdcQNr8lJPwAAAAAElFTkSuQmCC);
	content: "";
	height: 15px;
	position: absolute;
	bottom: -20px;
	left: 50%;
	width: 70px;
	border: none;
	z-index: 999999999999;
}

.bg-line-gray-divider {
	background: linear-gradient(180deg, #0000 40%, #f0f4f8 0);
}

/* Buttons */
.btn-outline a.elementor-button {
	background: transparent;
	border-color: #3a933a;
	color: #3a933a;
}

/* SOLUTION CARD */

.solution-card {
	.elementor-flip-box__front {
		background-color: #f8f9fa;

		.elementor-flip-box__image {
			margin: 0;
		}

		.elementor-flip-box__layer__title {
			margin: 32px 40px 12px;
		}

		.elementor-flip-box__layer__description {
			margin: 0 40px 82px;
			margin-bottom: 0;
		}

		.tc-flip-box-choose {
			display: block;
			margin: auto 40px 40px 40px;
			font-size: 16px;
			font-weight: 700;
			color: var(--tt-green);
		}

		.tc-flip-box-choose::after {
			content: "\ea6e";
			font-family: remixicon;
			display: inline-block;
			font-size: 16px;
			font-weight: 700;
			color: var(--tt-green);
		}
	}

	.elementor-flip-box__layer__inner {
		display: flex;
		flex-direction: column;
		height: 100%;
	}

	.elementor-flip-box__button {
		margin-top: auto;
		margin-bottom: 7px;
	}
	

	.elementor-flip-box__back {
		background: linear-gradient(301.43deg, #dbf2ed 17.17%, #eff5f6 45.78%, #faede1 98.89%);
	}

	.elementor-flip-box__button {
		padding: 0;
	}

	.elementor-flip-box__button::after {
		content: "";
		font-family: remixicon;
		position: relative;
		top: 2px;
		padding: 0;
		font-weight: 700;
	}

	/* Flip Box .solution-card: all box clickeable (front y back) */
	.elementor-flip-box:has(a.elementor-flip-box__back[href]) {
		cursor: pointer;
	}
}

body.home {
	.swiper-slide {
		transition: opacity 200ms ease-in-out;
	}

	.swiper-slide-prev {
		opacity: 0.5;
	}
}

.circle-navigation .elementor-swiper-button-prev,
.circle-navigation .elementor-swiper-button-next {
	width: 52px;
	height: 52px;
	border-radius: 100%;
	align-items: center;
	justify-content: center;
}

/* BACKGROUNDS */
.bg-header-gradient {
	background: linear-gradient(301.43deg, rgba(219, 242, 237, 0.7) 17.17%, rgba(239, 245, 246, 0.7) 45.78%, rgba(250, 237, 225, 0.7) 98.89%);
}

.bg-quote-gradient {
	background: linear-gradient(to right, #f4f1f9, #ffffff, #e8f6e8);
}

/* GRAVITY FORMS — Stacked label inside border */
/* Scope: add CSS class "tc-styled-form" in Gravity Forms > Settings > CSS Class Name */

.tc-styled-form {
	--gf-ctrl-btn-padding-x: 30px;
	--gf-ctrl-btn-padding-y: 17px;
	--gf-ctrl-btn-bg-color-primary: var(--tt-green);
	--gf-ctrl-btn-radius: 50px;
	--gf-ctrl-btn-font-size: 16px;
	--gf-ctrl-btn-font-weight: 700;
	--gf-form-footer-margin-y-start: 30px;
}

.gform_wrapper.tc-styled-form_wrapper .gform-footer {
	justify-content: center;
}

.gform_wrapper.tc-styled-form_wrapper .gform-footer .gform_button {
	padding: 17px 30px;
	outline: none!important;
    border: none;
	&:focus,
	&:active,
	&:hover {
		background-color: #2b712b !important;
	}
}

/* Submit UX for .tc-styled-form:
   1. The gform_submit_button PHP filter (inc/gravity-forms.php) renders the
      submit as <button><span>Label</span></button> and appends onclick JS
      that flips .tc-btn-loading + aria-busy on the button. While loading we
      hide the inner <span> and spin a ring via ::after (works only because
      the element is a <button>, not an <input>); we also hide Gravity Forms'
      default spinner element that would otherwise appear next to the button
      (see the multi-selector rule below — GF renamed the class over time).
   2. On successful AJAX submission Gravity Forms replaces the wrapper with
      .gform_confirmation_wrapper.tc-styled-form — render as a text card
      (border: 4px solid green, radius: 12px, padding: 20px) that carries
      the message defined in the form's Confirmations settings, stacked
      above a green success pill drawn via .gform_confirmation_wrapper::after
      that mirrors the submit button's geometry with a centered white check. */
/* Two class names because Gravity Forms renamed the element: legacy .gform_ajax_spinner
   (an <img> next to the button) → newer .gform-loader (a <span>, GF 2.7+). The
   id prefix is a defensive fallback in case the class name changes again. */
.gform_wrapper.tc-styled-form_wrapper .gform_ajax_spinner,
.gform_wrapper.tc-styled-form_wrapper .gform-loader,
.gform_wrapper.tc-styled-form_wrapper [id^="gform_ajax_spinner_"] {
	display: none !important;
}

.gform_wrapper.tc-styled-form_wrapper .gform_button.tc-btn-loading {
	position: relative;
	pointer-events: none;
}

.gform_wrapper.tc-styled-form_wrapper .gform_button.tc-btn-loading > span {
	visibility: hidden;
}

.gform_wrapper.tc-styled-form_wrapper .gform_button.tc-btn-loading::after {
	/* !important because a global button::after reset (from Elementor / GF)
	   sets content: none and would suppress this pseudo-element. */
	content: "" !important;
	position: absolute;
	top: 50%;
	left: 50%;
	width: 22px;
	height: 22px;
	margin: -11px 0 0 -11px;
	border: 2.5px solid rgba(255, 255, 255, 0.35);
	border-top-color: #fff;
	border-radius: 50%;
	animation: tc-btn-spin 0.75s linear infinite;
}

@keyframes tc-btn-spin {
	to { transform: rotate(360deg); }
}

.gform_confirmation_wrapper.tc-styled-form {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 16px;
}

/* Text card (top) — carries the confirmation message defined in the form's
   Confirmations settings. Border-radius matches the theme's standard field
   radius (see .gform_wrapper.tc-styled-form_wrapper .gfield). */
.gform_confirmation_wrapper.tc-styled-form .gform_confirmation_message {
	display: block;
	background: #fff;
	color: #102A43;
	border: 4px solid var(--tt-green);
	border-radius: 12px;
	padding: 20px;
	max-width: 560px;
	font-size: 15px;
	line-height: 1.5;
	text-align: center;
}

/* Success pill (bottom) — mirrors the submit button's geometry
   (padding: 17px 30px above at .gform-footer .gform_button) with a centered
   white check drawn as a background image on the wrapper's ::after so the
   pill exists without touching the message HTML. Purely decorative — the
   confirmation text above is what the user reads. */
.gform_confirmation_wrapper.tc-styled-form::after {
	content: "";
	display: block;
	box-sizing: border-box;
	background-color: var(--tt-green);
	border-radius: 50px;
	padding: 17px 30px;
	min-width: 113px;
	min-height: 52px;
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23fff' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='20 6 9 17 4 12'/%3E%3C/svg%3E");
	background-repeat: no-repeat;
	background-position: center center;
	background-size: 24px 24px;
}

/* Border box on every field */
.gform_wrapper.tc-styled-form_wrapper .gfield {
	border: 1.5px solid #C8D8E8 !important;
	border-radius: 12px;
	padding: 9px 17px;
	background: #fff;
	transition: border-color 0.2s ease;
	box-shadow: none !important;
}

.gform_wrapper.tc-styled-form_wrapper .gfield:focus-within {
	border-color: #829AB1 !important;
}

/* Hide "(Required)" text */
.gform_wrapper.tc-styled-form_wrapper .gfield_required_text {
	display: none !important;
}

.gform_wrapper.tc-styled-form_wrapper .gfield_required::before {
	content: "*";
	color: #4E647A;
	margin-left: 2px;
}

/* Labels */
.gform_wrapper.tc-styled-form_wrapper .gfield_label,
.gform_wrapper.tc-styled-form_wrapper .gform-field-label--type-sub {
	display: block !important;
	font-size: 12px !important;
	font-weight: 600 !important;
	color: #4E647A !important;
	margin-bottom: 6px !important;
	line-height: 1 !important;
	letter-spacing: 0.01em;
}

/* All inputs/textarea/select — no type dependency */
.gform_wrapper.tc-styled-form_wrapper .ginput_container input[type="text"],
.gform_wrapper.tc-styled-form_wrapper .ginput_container input[type="email"],
.gform_wrapper.tc-styled-form_wrapper .ginput_container input[type="tel"],
.gform_wrapper.tc-styled-form_wrapper .ginput_container input[type="number"],
.gform_wrapper.tc-styled-form_wrapper .ginput_container textarea,
.gform_wrapper.tc-styled-form_wrapper .ginput_container select {
	border: none !important;
	padding: 0 !important;
	margin: 0 !important;
	font-size: 18px !important;
	font-weight: 600 !important;
	color: #102A43 !important;
	width: 100% !important;
	box-shadow: none !important;
	outline: none !important;
	line-height: 1.2 !important;
	height: auto !important;
	border-radius: 0 !important;
	&::placeholder {
		opacity: 0.3;
	}
}

.gform_wrapper.tc-styled-form_wrapper .gfield.gfield--type-captcha.gfield--captcha-invisible {
	background: transparent !important;
	border: none !important;
}

.gform_wrapper.tc-styled-form_wrapper .ginput_container {
	margin-top: 0 !important;
}

/* Validation message */
.gform_wrapper.tc-styled-form_wrapper .gfield_validation_message {
	font-size: 12px;
	padding: 4px 0 0;
	border: none !important;
	background: transparent !important;
}

/* Demo form — full-width optional checkboxes (team features, etc.) */
.gform_wrapper.tc-styled-form_wrapper .gfield.tc-demo-team-features,
.gform_wrapper.tc-styled-form_wrapper .gfield.tc-demo-existing-user {
	grid-column: 1 / -1;
}

.gform_wrapper.tc-styled-form_wrapper .gfield.tc-demo-team-features .gfield_label,
.gform_wrapper.tc-styled-form_wrapper .gfield.tc-demo-existing-user .gfield_label {
	font-size: 14px !important;
	font-weight: 500 !important;
	line-height: 1.4 !important;
}

/* Demo form — confirmation overlay (Trello #360) */
body.tc-demo-confirm-modal-active {
	overflow: hidden;
}

.tc-demo-confirm-modal {
	position: fixed;
	inset: 0;
	z-index: 100000;
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 24px;
}

.tc-demo-confirm-modal[hidden] {
	display: none !important;
}

.tc-demo-confirm-modal__backdrop {
	position: absolute;
	inset: 0;
	background: rgba(16, 42, 67, 0.55);
}

.tc-demo-confirm-modal__panel {
	position: relative;
	z-index: 1;
	width: min(100%, 520px);
	background: #fff;
	border: 4px solid var(--tc-green, #41A541);
	border-radius: 12px;
	padding: 28px 24px 24px;
	text-align: center;
	box-shadow: 0 20px 60px rgba(16, 42, 67, 0.2);
}

.tc-demo-confirm-modal__title {
	margin: 0 0 12px;
	font-size: 22px;
	font-weight: 700;
	color: #102A43;
}

.tc-demo-confirm-modal__message {
	font-size: 15px;
	line-height: 1.5;
	color: #102A43;
	margin-bottom: 20px;
}

.tc-demo-confirm-modal__close {
	display: inline-block;
	background: var(--tc-green, #41A541);
	color: #fff;
	border: none;
	border-radius: 50px;
	padding: 14px 32px;
	font-size: 16px;
	font-weight: 600;
	cursor: pointer;
}

.tc-demo-confirm-modal__close:hover,
.tc-demo-confirm-modal__close:focus {
	background: #338033;
}

/* FORMSTACK — CCPA page embed (match .tc-styled-form / contact page)
   Scope: body.page-ccpa-consumer-request; Formstack v4 renders inline (not iframe). */
.page-ccpa-consumer-request .fsform-container {
	width: 100%;
	max-width: 736px;
	margin-left: auto;
	margin-right: auto;
	box-sizing: border-box;
	overflow-x: clip;
}

.page-ccpa-consumer-request .fsBody,
.page-ccpa-consumer-request .fsForm {
	background: transparent !important;
	border: none !important;
	box-shadow: none !important;
}

/* Strip Formstack wrapper spacing (InnerFormBody + form margin/padding) */
.page-ccpa-consumer-request .fsform-container,
.page-ccpa-consumer-request .fsBody,
.page-ccpa-consumer-request .fsForm,
.page-ccpa-consumer-request form[id^="fsForm"],
.page-ccpa-consumer-request [class*="InnerFormBody"],
.page-ccpa-consumer-request [class*="StyledFormBody"],
.page-ccpa-consumer-request .fsPage,
.page-ccpa-consumer-request .fsSection {
	margin: 0 !important;
	padding: 0 !important;
	max-width: 100% !important;
	box-sizing: border-box !important;
}

.page-ccpa-consumer-request .fsSection {
	gap: 0 !important;
}

.page-ccpa-consumer-request .elementor-widget-html:has(.fsform-container) .elementor-widget-container {
	padding: 0 !important;
	margin: 0 !important;
}

/* Outer field wrapper — no border; each input/subfield gets its own box */
.page-ccpa-consumer-request .fsFieldCell {
	display: flex !important;
	flex-direction: column !important;
	width: 100% !important;
	max-width: 100% !important;
	border: none !important;
	padding: 0 !important;
	margin: 0 0 16px !important;
	background: transparent !important;
	box-shadow: none !important;
	gap: 0;
}

.page-ccpa-consumer-request span.fsFieldCell,
.page-ccpa-consumer-request label.fsFieldCell {
	display: flex !important;
}

.page-ccpa-consumer-request .fsSection,
.page-ccpa-consumer-request .fsPage,
.page-ccpa-consumer-request [class*="InnerFormBody"] {
	width: 100% !important;
	max-width: 100% !important;
}

/* Single-input fields: one bordered box (label + input inside, like GF .gfield).
   Email uses div.fsSubFieldGroup; only the name field uses fieldset.fsSubFieldGroup. */
.page-ccpa-consumer-request .fsFieldCell:not(:has(fieldset.fsSubFieldGroup)) {
	border: 1.5px solid #C8D8E8 !important;
	border-radius: 12px !important;
	padding: 9px 17px !important;
	background: #fff !important;
	transition: border-color 0.2s ease;
}

.page-ccpa-consumer-request .fsFieldCell:not(:has(fieldset.fsSubFieldGroup)):focus-within {
	border-color: #829AB1 !important;
}

.page-ccpa-consumer-request .fsFieldCell:has(.fsValidationError):not(:has(fieldset.fsSubFieldGroup)) {
	border-color: #d63638 !important;
}

/* Email (and similar): flatten inner div.fsSubFieldGroup so input sits in the bordered cell */
.page-ccpa-consumer-request label.fsFieldCell:not(:has(fieldset.fsSubFieldGroup)) .fsSubFieldGroup,
.page-ccpa-consumer-request label.fsFieldCell:not(:has(fieldset.fsSubFieldGroup)) .fsSubFieldGroup > div {
	display: contents;
}

/* Name field: hide grouped label; First / Last each get their own box */
.page-ccpa-consumer-request .fsFieldCell:has(fieldset.fsSubFieldGroup) > .fsLabel {
	position: absolute !important;
	width: 1px !important;
	height: 1px !important;
	padding: 0 !important;
	margin: -1px !important;
	overflow: hidden !important;
	clip: rect(0, 0, 0, 0) !important;
	white-space: nowrap !important;
	border: 0 !important;
}

.page-ccpa-consumer-request fieldset.fsSubFieldGroup,
.page-ccpa-consumer-request .fsNameField,
.page-ccpa-consumer-request .fsFieldHorizontal {
	display: grid !important;
	grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
	gap: 16px !important;
	width: 100% !important;
	max-width: 100% !important;
	min-width: 0 !important;
	box-sizing: border-box !important;
	border: 0 !important;
	margin: 0 !important;
	padding: 0 !important;
}

/* Formstack wraps name parts in extra nodes — flatten wrappers only (not .fsSubField) */
.page-ccpa-consumer-request fieldset.fsSubFieldGroup > div:not(.fsSubField):not(.fsValidationError):not([id^="inline-error-"]) {
	display: contents;
}

.page-ccpa-consumer-request fieldset.fsSubFieldGroup [class*="NameFieldSubfieldsRow"] {
	display: contents;
}

.page-ccpa-consumer-request fieldset.fsSubFieldGroup .fsSubField,
.page-ccpa-consumer-request .fsNameField .fsSubField,
.page-ccpa-consumer-request fieldset.fsSubFieldGroup > label.fsFieldCell,
.page-ccpa-consumer-request fieldset.fsSubFieldGroup > label.fsSubField,
.page-ccpa-consumer-request fieldset.fsSubFieldGroup > span.fsFieldCell {
	min-width: 0 !important;
	width: 100% !important;
	max-width: 100% !important;
	box-sizing: border-box !important;
	display: flex !important;
	flex-direction: column !important;
	align-items: stretch !important;
	border: 1.5px solid #C8D8E8 !important;
	border-radius: 12px !important;
	padding: 9px 17px !important;
	background: #fff !important;
	transition: border-color 0.2s ease;
}

.page-ccpa-consumer-request fieldset.fsSubFieldGroup .fsSubField:focus-within,
.page-ccpa-consumer-request fieldset.fsSubFieldGroup > label.fsFieldCell:focus-within,
.page-ccpa-consumer-request fieldset.fsSubFieldGroup > label.fsSubField:focus-within {
	border-color: #829AB1 !important;
}

.page-ccpa-consumer-request .fsFieldCell:has(.fsValidationError) fieldset.fsSubFieldGroup .fsSubField,
.page-ccpa-consumer-request .fsFieldCell:has(.fsValidationError) fieldset.fsSubFieldGroup > label.fsFieldCell,
.page-ccpa-consumer-request .fsFieldCell:has(.fsValidationError) fieldset.fsSubFieldGroup > label.fsSubField {
	border-color: #d63638 !important;
}

/* One compact error below the name row (not one banner per subfield) */
.page-ccpa-consumer-request fieldset.fsSubFieldGroup .fsSubField [id^="inline-error-"],
.page-ccpa-consumer-request fieldset.fsSubFieldGroup .fsSubField .fsValidationError,
.page-ccpa-consumer-request fieldset.fsSubFieldGroup > label [id^="inline-error-"] {
	display: none !important;
}

.page-ccpa-consumer-request .fsFieldCell:has(fieldset.fsSubFieldGroup) > [id^="inline-error-"]:not(:first-of-type),
.page-ccpa-consumer-request .fsFieldCell:has(fieldset.fsSubFieldGroup) > .fsValidationError:not(:first-of-type) {
	display: none !important;
}

@media (max-width: 767px) {
	.page-ccpa-consumer-request fieldset.fsSubFieldGroup,
	.page-ccpa-consumer-request .fsNameField,
	.page-ccpa-consumer-request .fsFieldHorizontal {
		grid-template-columns: 1fr !important;
	}
}

.page-ccpa-consumer-request .fsSubField label,
.page-ccpa-consumer-request .fsSubField label[for],
.page-ccpa-consumer-request .fsSubField.fsNameFirst label,
.page-ccpa-consumer-request .fsSubField.fsNameLast label,
.page-ccpa-consumer-request .fsSubField [class*="StyledLabel"] {
	display: block !important;
	order: 1 !important;
	position: static !important;
	font-size: 12px !important;
	font-style: normal !important;
	font-weight: 600 !important;
	color: #4E647A !important;
	margin: 0 0 6px !important;
	line-height: 1 !important;
	letter-spacing: 0.01em;
	text-align: left !important;
}

.page-ccpa-consumer-request .fsSubField input,
.page-ccpa-consumer-request .fsSubFieldGroup label.fsFieldCell input {
	order: 2 !important;
}

.page-ccpa-consumer-request .fsSubField .fsSupporting,
.page-ccpa-consumer-request .fsSubField [class*="Supporting"] {
	display: none !important;
}

.page-ccpa-consumer-request .fsLabel,
.page-ccpa-consumer-request .fsLabelVertical .fsLabel,
.page-ccpa-consumer-request .fsSubFieldGroup label.fsFieldCell .fsLabel,
.page-ccpa-consumer-request .fsSubField [class*="LabelText"] {
	display: block !important;
	font-size: 12px !important;
	font-weight: 600 !important;
	color: #4E647A !important;
	margin: 0 0 6px !important;
	line-height: 1 !important;
	letter-spacing: 0.01em;
}

.page-ccpa-consumer-request .fsRequiredMarker,
.page-ccpa-consumer-request .fsRequiredLabel span[class*="Required"],
.page-ccpa-consumer-request .fsLabel .fsRequiredLabelText {
	font-size: 12px !important;
	color: #4E647A !important;
}

.page-ccpa-consumer-request .fsFieldCell input,
.page-ccpa-consumer-request .fsFieldCell textarea,
.page-ccpa-consumer-request .fsFieldCell [class*="StyledInput"] {
	border: none !important;
	background: transparent !important;
	padding: 0 !important;
	margin: 0 !important;
	font-size: 18px !important;
	font-weight: 600 !important;
	font-style: normal !important;
	color: #102A43 !important;
	width: 100% !important;
	max-width: 100% !important;
	box-shadow: none !important;
	outline: none !important;
	line-height: 1.2 !important;
	border-radius: 0 !important;
	min-height: 0 !important;
}

/* Select — keep dropdown affordance (chevron + pointer); general input rule strips Formstack arrow */
.page-ccpa-consumer-request .fsFieldCell select,
.page-ccpa-consumer-request .fsFieldCell [class*="StyledSelect"] {
	border: none !important;
	background-color: transparent !important;
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%234E647A' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E") !important;
	background-repeat: no-repeat !important;
	background-position: right center !important;
	background-size: 16px 16px !important;
	padding: 0 28px 0 0 !important;
	margin: 0 !important;
	font-size: 18px !important;
	font-weight: 600 !important;
	font-style: normal !important;
	color: #102A43 !important;
	width: 100% !important;
	max-width: 100% !important;
	box-shadow: none !important;
	outline: none !important;
	line-height: 1.2 !important;
	border-radius: 0 !important;
	min-height: 0 !important;
	cursor: pointer !important;
	appearance: none !important;
	-webkit-appearance: none !important;
}

.page-ccpa-consumer-request .fsFieldCell select:required:invalid {
	color: #829AB1 !important;
}

.page-ccpa-consumer-request .fsFieldCell:has(select) {
	cursor: pointer !important;
}

.page-ccpa-consumer-request .fsFieldCell textarea {
	min-height: 96px !important;
	resize: vertical;
}

.page-ccpa-consumer-request .fsFieldCell input::placeholder,
.page-ccpa-consumer-request .fsFieldCell textarea::placeholder {
	opacity: 0.3;
	color: #102A43;
}

/* Validation — compact text below the field (not a full-width red banner) */
.page-ccpa-consumer-request .fsValidationError,
.page-ccpa-consumer-request [id^="inline-error-"] {
	order: 10;
	background: transparent !important;
	border: none !important;
	box-shadow: none !important;
	padding: 4px 0 0 !important;
	margin: 0 !important;
	min-height: 0 !important;
	display: block !important;
}

.page-ccpa-consumer-request .fsValidationError [class*="ErrorBannerText"],
.page-ccpa-consumer-request .fsValidationError,
.page-ccpa-consumer-request [id^="inline-error-"] [class*="ErrorBannerText"] {
	font-size: 12px !important;
	font-weight: 400 !important;
	color: #d63638 !important;
	line-height: 1.3 !important;
}

.page-ccpa-consumer-request .fsValidationError [class*="ErrorBannerIcon"],
.page-ccpa-consumer-request .fsValidationError svg,
.page-ccpa-consumer-request [id^="inline-error-"] [class*="ErrorBannerIcon"] {
	display: none !important;
}

/* Form-level summary (top of form on submit) */
.page-ccpa-consumer-request .fsform-container [class*="StyledErrorBanner"]:not([id^="inline-error-"]) {
	background: #fef7f7 !important;
	border: 1px solid #f5c6c7 !important;
	border-radius: 8px !important;
	padding: 12px 16px !important;
	margin: 0 0 20px !important;
	font-size: 14px !important;
	color: #102A43 !important;
	line-height: 1.4 !important;
}

.page-ccpa-consumer-request .fsform-container [class*="StyledErrorBanner"]:not([id^="inline-error-"]) [class*="ErrorBannerText"] {
	font-size: 14px !important;
	color: #102A43 !important;
}

.page-ccpa-consumer-request .fsform-container [class*="StyledErrorBanner"]:not([id^="inline-error-"]) ul {
	margin: 8px 0 0 18px !important;
	padding: 0 !important;
	font-size: 13px !important;
	color: #4E647A !important;
}

.page-ccpa-consumer-request .fsSubmitRow,
.page-ccpa-consumer-request .fsFormSubmit,
.page-ccpa-consumer-request [class*="SubmitButtonContainer"] {
	display: flex !important;
	justify-content: center !important;
	margin-top: 30px !important;
	text-align: center !important;
}

.page-ccpa-consumer-request .fsSubmitButton {
	background-color: var(--tt-green) !important;
	border: none !important;
	border-radius: 50px !important;
	padding: 17px 30px !important;
	font-size: 16px !important;
	font-weight: 700 !important;
	color: #fff !important;
	cursor: pointer;
	transition: background-color 0.2s ease;
}

.page-ccpa-consumer-request .fsSubmitButton:hover,
.page-ccpa-consumer-request .fsSubmitButton:focus {
	background-color: #2b712b !important;
}

.page-ccpa-consumer-request a[title="Powered by Formstack"],
.page-ccpa-consumer-request .elementor-widget-html div[style*="font-size:x-small"],
.page-ccpa-consumer-request [class*="ReferralBadge"],
.page-ccpa-consumer-request .fsReferralBadge {
	display: none !important;
}

/* SUBSCRIBE FORM — Gravity Forms with CSS Class "suscribe-form"
   Layout: white pill (input area) on the left + green pill (submit) on the
   right, sharing a flat seam in the middle. Matches Figma node 171:3867. */
.gform_wrapper.suscribe-form_wrapper {
	max-width: 520px;
}

.gform_wrapper.suscribe-form_wrapper form.suscribe-form {
	display: flex;
	align-items: stretch;
}

.gform_wrapper.suscribe-form_wrapper .gform_body,
.gform_wrapper.suscribe-form_wrapper .gform_fields {
	flex: 1;
	margin: 0;
	padding: 0;
	background: transparent;
	border: 0;
	box-shadow: none;
	display: flex;
}

.gform_wrapper.suscribe-form_wrapper .gfield {
	flex: 1;
	margin: 0;
	border: 0;
	box-shadow: none;
	background-color: #fff;
	border-radius: 30px 0 0 30px;
	padding: 16px 24px;
	display: flex;
	align-items: center;
}

.gform_wrapper.suscribe-form_wrapper .gfield_label {
	position: absolute;
	width: 1px;
	height: 1px;
	overflow: hidden;
	clip: rect(0 0 0 0);
	white-space: nowrap;
}

.gform_wrapper.suscribe-form_wrapper .gfield_required {
	display: none;
}

.gform_wrapper.suscribe-form_wrapper .ginput_container {
	flex: 1;
	display: flex;
}

.gform_wrapper.suscribe-form_wrapper .ginput_container input {
	width: 100%;
	border: 0;
	background: transparent;
	box-shadow: none;
	outline: none;
	padding: 0;
	font-family: "Proxima Nova", sans-serif;
	font-size: 16px;
	font-weight: 400;
	line-height: 1.5;
	color: #102a43;

	&.large {
		padding: 0;
	}
}

.gform_confirmation_wrapper.suscribe-form .gform_confirmation_message {
	color: var(--tt-green);
	font-weight: 700;
	font-size: 18px;
	border-radius: 25px;
	padding: 20px;
	border: 1px solid var(--tt-green);
}

.gform_wrapper.suscribe-form_wrapper .ginput_container input::placeholder {
	color: #9d9d9d;
	opacity: 1;
}

.gform_wrapper.gravity-theme.suscribe-form_wrapper .gform_footer {
	margin: 0;
	padding: 0;
	display: flex;
	align-items: stretch;

	input {
		margin-bottom: 0;
	}
}

.gform_wrapper.suscribe-form_wrapper .gform_button {
	background-color: var(--tt-green);
	color: #fff;
	border: 0;
	border-radius: 0 30px 30px 0;
	padding: 17px 24px;
	font-family: "Proxima Nova", sans-serif;
	font-weight: 700;
	font-size: 16px;
	line-height: 21px;
	cursor: pointer;
	transition: background-color 0.15s ease;
}

.gform_wrapper.suscribe-form_wrapper .gform_button:hover {
	background-color: #338033;
}

.suscribe-form_wrapper.gform_wrapper.gravity-theme .gfield_error [aria-invalid=true] {
	border: none;
}

/* Error state — keep the pill intact, surface the message below it. */

/* Hide the redundant top summary; the inline message below is enough. */

.gform_wrapper.suscribe-form_wrapper.gravity-theme .gfield_validation_message,
.gform_wrapper.gravity-theme .validation_message {
	background: none;
	border: none;
	font-size: 14px;
	margin-block-start: 0;
	margin: 0;
	padding: 0;
	width: 320px;
	font-weight: 700;
	transform: translateX(-20px);
	text-align: center;
	margin-top: 16px;
}

.gform_wrapper.suscribe-form_wrapper .gform_validation_errors {
	display: none;
}

/* Neutralize Gravity Forms' default red border around .gfield_error so
   the white pill keeps its shape. */
.gform_wrapper.suscribe-form_wrapper .gfield.gfield_error {
	border: 0;
	background-color: #fff;
	box-shadow: 0 0 0 2px #c63d2f inset;
}

.gform_wrapper.suscribe-form_wrapper input[aria-invalid="true"] {
	border: 0;
	box-shadow: none;
}

/* Pull the inline message out of the flex row and float it under the pill. */
.gform_wrapper.suscribe-form_wrapper .gfield {
	position: relative;
}

.gform_wrapper.suscribe-form_wrapper .gfield_validation_message {
	position: absolute;
	left: 24px;
	top: calc(100% + 6px);
	margin: 0;
	padding: 0;
	border: 0;
	background: transparent;
	color: #c63d2f;
	font-size: 13px;
	line-height: 1.4;
}

.gform-theme--framework .gform_validation_errors[data-js="gform-focus-validation-error"],
.gform-theme--framework .hide-instruction .gfield_description:not(.gfield_validation_message)
{
	display: none;
}
.gform-theme--foundation .gfield {
  input[type="number"] {
    -moz-appearance: textfield;
    &::-webkit-inner-spin-button,
    &::-webkit-outer-spin-button {
      display: none;
      margin: 0;
    }
  }
}

/* SINGLE POST */
.sidebar-contents {
	top: 80px !important;

	.elementor-toc__toggle-button {
		display: none;
	}

	ul li.elementor-toc__list-item {
		--item-text-active-color: #1e2933;

		a {
			display: block;
			padding: 7px 20px 12px;
			font-size: 16px;
			line-height: 21px;
			color: #1e2933;
			text-decoration: none;

			&.elementor-item-active {
				background: #dbf1db;
				border-radius: 10px;
				font-weight: 600;
			}
		}
	}
}

body.admin-bar {
	.sidebar-contents {
		top: 110px !important;
	}
}

.elementor-nav-menu {
	--activeMenuBg: #dbf1db;

	.menu-item {
		font-size: 16px;
		border-radius: 25px;
		transition: background-color 0.3s ease;

		a {
			color: #1e2933;
			font-weight: 700;

			&::after {
				display: none;
			}
		}

		&:hover,
		&.current-menu-item {
			background-color: var(--activeMenuBg);
		}

		body.post-type-archive-case-study & {
			&.menu-case-study {
				background-color: var(--activeMenuBg);
			}
		}
	}
}

/* SEARCH — Elementor search widget styled as a pill */
.search-header {
	.e-search-form {
		display: flex;
		align-items: center;
		background-color: #f4f6f8;
		border-radius: 9999px;
		padding: 0 20px 0 20px;
		min-height: 54px;
		border: 1px solid transparent;
		transition: border-color 0.2s ease;
	}

	.e-search-form:focus-within {
		border-color: #c8d8e8;
	}

	.e-search-input-wrapper {
		flex: 1;
	}

	.e-search-input {
		width: 100%;
		border: 0;
		background: transparent;
		box-shadow: none;
		outline: none;
		padding: 0;
		font-size: 16px;
		color: #102a43;
		height: auto;
		min-height: auto;
		--e-search-icons-min-height: 0;
	}

	.e-search-input::placeholder {
		color: #829ab1;
		opacity: 1;
	}

	.e-search-input.no-icon-label {
		padding-inline-start: 0;
		padding-inline-end: 0;
	}

	.e-search-submit {
		--e-search-submit-padding: 0;
		--e-search-submit-background-color: transparent;
		border: 0;
		padding: 0 0 0 12px;
		color: #102a43;
		cursor: pointer;
		display: flex;
		align-items: center;
	}

	.e-search-submit i {
		font-size: 22px;
	}
}

/* BLOG CONTEXT — show only on /blog/, category archives, and single posts.
   Add the class "tc-show-on-blog" to the Elementor section/container. */
.tc-show-on-resources {
	display: none;
}

body.elementor-editor-active,
body.blog,
body.archive,
body.search-results,
body.page-blog.wp-singular {
	.tc-show-on-resources {
		display: revert;
	}
}

#pricing-table {
	ul {
		li {
			list-style: none;
		}
	}
}

#pricing-table .e-fas-check {
	width: 14px;
	height: 14px;
}

@media(max-width: 767px) {
	#pricing-table .elementor-button-link {
		background-color: var(--tt-green);
		color: white;
		font-size: 14px;
		font-style: normal;
		font-weight: 600;
		line-height: 14px;
		width: auto;
	}
}
.category-carousel {
	.swiper-wrapper>.swiper-slide {
		width: auto !important;
	}
}

/* SCROLL-TO-TOP — fixed "go up" button, fades in after scrolling (ports the legacy #go-up) */
.tc-scroll-top {
	position: fixed;
	right: 24px;
	bottom: 24px;
	z-index: 1000;
	display: flex;
	align-items: center;
	justify-content: center;
	width: 40px;
	height: 40px;
	padding: 0;
	color: #41A541;
	background: #fff;
	border: 1px solid #41A541;
	border-radius: 4px;
	cursor: pointer;
	opacity: 0;
	visibility: hidden;
	transition: opacity 0.3s ease, visibility 0.3s ease, background-color 0.2s ease, color 0.2s ease;
}

.tc-scroll-top.is-visible {
	opacity: 1;
	visibility: visible;
}

/* When the Intercom launcher is present (body.has-intercom, set by
   scroll-to-top.js), lift the button so it sits just above the launcher
   instead of overlapping it — centered over Intercom's default position
   (bottom:20px / right:20px). */
body.has-intercom .tc-scroll-top {
	bottom: 96px;
}

/* Hide it while the mobile drill-down drawer is open (mirrors the legacy
   `.active` rule that hid #go-up on mobile when the menu was open). The drawer
   sets `tc-mdrawer-open` on <html>. */
html.tc-mdrawer-open .tc-scroll-top {
	display: none;
}

.tc-scroll-top:hover,
.tc-scroll-top:focus-visible {
	color: #fff;
	background: #338033;
}

@media (prefers-reduced-motion: reduce) {
	.tc-scroll-top {
		transition: none;
	}
}

/* FOOTER active link — the footer item matching the current page (set by
   js/footer-active-link.js). */
.elementor-location-footer a.is-active {
	color: #41A541;
	font-weight: 600;
}

/* ===== Comparison table (TablePress) =====
   Matches the reference look on /rent-collection/avail-online-rent-collection:
   light-gray header, thin gray borders, bold first column, numbered lists —
   no zebra, no brand color.
   TablePress options: "Table Head Row" ON, "Alternating row colors" OFF,
   "Row hover" OFF, DataTables OFF, Extra CSS Classes: tc-compare.
   Enter per-cell lists as HTML <ol><li>...</li></ol> (numbered) or <ul> (bullets).
   Scoped to .tc-compare so other TablePress tables are untouched. */
.tablepress.tc-compare {
	width: 100%;
	border-collapse: collapse;
	border: 1px solid #d9dce0;
	font-size: 15px;
	line-height: 1.5;
	color: #333333;
}

.tablepress.tc-compare th,
.tablepress.tc-compare td {
	border: 1px solid #d9dce0;
	padding: 12px 16px;
	vertical-align: top;
	text-align: left;
	background: #ffffff; /* override TablePress default row striping */
}

/* Header row (Avail / TenantCloud) */
.tablepress.tc-compare thead th {
	background: #f6f6f6;
	color: #102a43;
	font-weight: 700;
}

/* First column (feature names): bold, no fill */
.tablepress.tc-compare tbody .column-1 {
	font-weight: 700;
	color: #102a43;
}

/* Lists inside cells */
.tablepress.tc-compare td ol,
.tablepress.tc-compare td ul {
	margin: 0;
	padding-left: 20px;
}
.tablepress.tc-compare td ol {
	list-style: decimal;
}
.tablepress.tc-compare td ul {
	list-style: disc;
}
.tablepress.tc-compare td li {
	margin: 0 0 8px;
}
.tablepress.tc-compare td li:last-child {
	margin-bottom: 0;
}

/* Optional wrap: horizontal scroll on tablet/desktop-narrow only.
   Below 768px the table stacks (see media query) so min-width is cleared. */
.tc-compare-wrap {
	overflow-x: auto;
	-webkit-overflow-scrolling: touch;
}
.tc-compare-wrap .tablepress.tc-compare {
	min-width: 560px;
}

/* Mobile: stack each feature row into a card.
   Requires data-label on body cells (inc/tablepress-compare.php). */
@media (max-width: 767px) {
	.tc-compare-wrap {
		overflow-x: visible;
	}
	.tc-compare-wrap .tablepress.tc-compare {
		min-width: 0;
	}

	.tablepress.tc-compare {
		border: 0;
		font-size: 14px;
	}

	.tablepress.tc-compare thead {
		/* Visually hide; keep in DOM for a11y / screen readers. */
		position: absolute;
		width: 1px;
		height: 1px;
		padding: 0;
		margin: -1px;
		overflow: hidden;
		clip: rect(0, 0, 0, 0);
		white-space: nowrap;
		border: 0;
	}

	.tablepress.tc-compare,
	.tablepress.tc-compare tbody,
	.tablepress.tc-compare tr,
	.tablepress.tc-compare th,
	.tablepress.tc-compare td {
		display: block;
		width: 100%;
		box-sizing: border-box;
	}

	.tablepress.tc-compare tbody tr {
		margin: 0 0 16px;
		border: 1px solid #d9dce0;
		background: #ffffff;
	}

	.tablepress.tc-compare tbody tr:last-child {
		margin-bottom: 0;
	}

	.tablepress.tc-compare tbody th,
	.tablepress.tc-compare tbody td {
		border: 0;
		border-bottom: 1px solid #d9dce0;
		padding: 12px 16px;
	}

	.tablepress.tc-compare tbody tr > *:last-child {
		border-bottom: 0;
	}

	/* Feature name = card header */
	.tablepress.tc-compare tbody .column-1 {
		background: #f6f6f6;
		font-weight: 700;
		color: #102a43;
	}

	/* Product columns: show header label above the value */
	.tablepress.tc-compare tbody td[data-label]::before {
		content: attr(data-label);
		display: block;
		font-weight: 700;
		color: #102a43;
		margin-bottom: 6px;
	}
}
