/**
 * Loaded after thrivedesk.css. ThriveDesk ships Tailwind utilities with !important, e.g.:
 * - .hidden { display:none !important } → breaks "hidden md:block" primary nav
 * - .grid-cols-1 { grid-template-columns:… !important } → breaks lg:grid-cols-* everywhere
 */

/* --- Site chrome (outside #thrivedesk) --- */

@media (min-width: 768px) {
	#site-header nav.header-nav {
		display: block !important;
	}
}

@media (max-width: 767px) {
	#site-header nav.header-nav {
		display: none !important;
	}
}

/* Footer: 4-column grid on large screens */
.site-footer .site-container > .grid {
	display: grid !important;
}

@media (min-width: 640px) {
	.site-footer .site-container > .grid {
		grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
	}
}

@media (min-width: 1024px) {
	.site-footer .site-container > .grid {
		grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
	}
}

/*
 * Support page: exactly three quick-link cards in one row, full container width.
 * (ThriveDesk’s CSS loads global .grid utilities; this keeps 3 columns — not 2/4.)
 */
.support-page-card-grid {
	display: grid !important;
	width: 100% !important;
	max-width: 100% !important;
	grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
}

/* Contact Us: top row (contact + image); FAQ two-column */
/* Support page FAQ uses #support-faq — include it so ThriveDesk grid resets don’t break layout */
#contact-support .contact-support-top,
#contact-faq .site-container > .grid,
#support-faq .site-container > .grid {
	display: grid !important;
}

@media (min-width: 1024px) {
	#contact-support .contact-support-top,
	#contact-faq .site-container > .grid,
	#support-faq .site-container > .grid {
		grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
	}
	/* FAQ: top-align columns so long accordion + sticky image don’t vertically stretch oddly */
	#contact-faq .site-container > .grid,
	#support-faq .site-container > .grid {
		align-items: start !important;
	}
}

/* Contact page: portal full width, free flow */
.contact-portal-flow #thrivedesk {
	width: 100% !important;
	max-width: 100% !important;
}
.contact-portal-flow #thrivedesk .td-portal-tickets {
	width: 100% !important;
	max-width: 100% !important;
	flex: 1 1 100% !important;
}

/* Contact portal: login-required message callout */
body.page-template-page-contact-us .contact-portal-flow p:has(a[href*="wp-login"]),
body.page-template-page-contact-us .contact-portal-flow p:has(a.text-blue-600),
body.page-template-page-contact-us .contact-portal-flow p:has(a[href*="login"]),
body.page-template-page-support .contact-portal-flow p:has(a[href*="wp-login"]),
body.page-template-page-support .contact-portal-flow p:has(a.text-blue-600),
body.page-template-page-support .contact-portal-flow p:has(a[href*="login"]) {
	margin: 1rem 0 0 !important;
	padding: 1rem 1rem 1rem 1.125rem !important;
	border: 1px solid rgb(191 219 254) !important;
	border-left: 4px solid rgb(37 99 235) !important;
	background: linear-gradient(135deg, rgb(239 246 255) 0%, rgb(248 250 252) 100%) !important;
	border-radius: 0.875rem !important;
	color: rgb(30 41 59) !important;
	font-size: 0.95rem !important;
	line-height: 1.65 !important;
	font-weight: 500 !important;
	box-shadow: 0 4px 16px rgba(15, 23, 42, 0.06) !important;
}

body.page-template-page-contact-us .contact-portal-flow p:has(a[href*="wp-login"]) a,
body.page-template-page-contact-us .contact-portal-flow p:has(a.text-blue-600) a,
body.page-template-page-contact-us .contact-portal-flow p:has(a[href*="login"]) a,
body.page-template-page-support .contact-portal-flow p:has(a[href*="wp-login"]) a,
body.page-template-page-support .contact-portal-flow p:has(a.text-blue-600) a,
body.page-template-page-support .contact-portal-flow p:has(a[href*="login"]) a {
	color: rgb(29 78 216) !important;
	font-weight: 700 !important;
	text-decoration: underline !important;
	text-decoration-thickness: 2px !important;
	text-underline-offset: 2px !important;
}

body.page-template-page-contact-us .contact-portal-flow p:has(a[href*="wp-login"]) a:hover,
body.page-template-page-contact-us .contact-portal-flow p:has(a.text-blue-600) a:hover,
body.page-template-page-contact-us .contact-portal-flow p:has(a[href*="login"]) a:hover,
body.page-template-page-support .contact-portal-flow p:has(a[href*="wp-login"]) a:hover,
body.page-template-page-support .contact-portal-flow p:has(a.text-blue-600) a:hover,
body.page-template-page-support .contact-portal-flow p:has(a[href*="login"]) a:hover {
	color: rgb(30 64 175) !important;
}

/**
 * Contact page: ThriveDesk resets h1–h6 to font-size/font-weight inherit — restore theme typography
 * everywhere except inside #thrivedesk (.contact-portal-flow #thrivedesk is excluded via not()).
 */

/* Support hero h1 — match other page headers */
.lifegivingstore-support-page > header h1 {
	color: rgb(23 23 23) !important;
	font-size: clamp(2.5rem, 6vw, 3.75rem) !important;
	font-weight: 800 !important;
	line-height: 1.5 !important;
	letter-spacing: -0.02em !important;
}

/* Support hero: tight vertical rhythm (plugins may add large padding to page headers) */
.lifegivingstore-support-page > header.lifegivingstore-support-hero {
	padding-top: 0.75rem !important;
	padding-bottom: 0.75rem !important;
}
@media (min-width: 768px) {
	.lifegivingstore-support-page > header.lifegivingstore-support-hero {
		padding-top: 1rem !important;
		padding-bottom: 1rem !important;
	}
}
@media (min-width: 1024px) {
	.lifegivingstore-support-page > header.lifegivingstore-support-hero {
		padding-top: 1rem !important;
		padding-bottom: 1rem !important;
	}
}

.lifegivingstore-support-page > header.lifegivingstore-support-hero .lifegivingstore-rank-math-breadcrumbs--center {
	margin-bottom: 0.375rem !important;
}

/* Support: ThriveDesk loads before Family Owned + footer — restore section headings */
.lifegivingstore-support-page #family-owned-block h2 {
	color: rgb(23 23 23) !important;
	font-size: clamp(2rem, 5vw, 2.75rem) !important;
	font-weight: 800 !important;
	line-height: 1.5 !important;
	letter-spacing: -0.02em !important;
	margin-bottom: 1rem !important;
}

.lifegivingstore-support-page #family-owned-block h3 {
	color: rgb(23 23 23) !important;
	font-size: clamp(1.375rem, 3vw, 1.75rem) !important;
	font-weight: 800 !important;
	line-height: 1.5 !important;
	letter-spacing: -0.02em !important;
	margin-bottom: 1rem !important;
}

body:has(.lifegivingstore-support-page) .site-footer h4 {
	color: rgb(255 255 255) !important;
	font-size: 1.2rem !important;
	font-weight: 800 !important;
	line-height: 1.5 !important;
	letter-spacing: -0.02em !important;
	margin-bottom: 1rem !important;
}

.lifegivingstore-contact-page > header h1 {
	color: rgb(23 23 23) !important;
	font-size: clamp(2.5rem, 6vw, 3.75rem) !important;
	font-weight: 800 !important;
	line-height: 1.5 !important;
	letter-spacing: -0.02em !important;
}

.lifegivingstore-contact-page #contact-support .contact-support-top h3 {
	color: rgb(23 23 23) !important;
	font-size: clamp(1.375rem, 3vw, 1.75rem) !important;
	font-weight: 800 !important;
	line-height: 1.5 !important;
	letter-spacing: -0.02em !important;
}

.lifegivingstore-contact-page #contact-faq h2 {
	color: rgb(23 23 23) !important;
	font-size: clamp(2rem, 5vw, 2.75rem) !important;
	font-weight: 800 !important;
	line-height: 1.5 !important;
	letter-spacing: -0.02em !important;
	margin-bottom: 1rem !important;
}

.lifegivingstore-support-page #support-faq h2 {
	color: rgb(23 23 23) !important;
	font-size: clamp(2rem, 5vw, 2.75rem) !important;
	font-weight: 800 !important;
	line-height: 1.5 !important;
	letter-spacing: -0.02em !important;
	margin-bottom: 1rem !important;
}

.lifegivingstore-support-page #support-ticket-form h2 {
	color: rgb(23 23 23) !important;
	font-size: clamp(2rem, 5vw, 2.75rem) !important;
	font-weight: 800 !important;
	line-height: 1.35 !important;
	letter-spacing: -0.02em !important;
	margin-bottom: 1rem !important;
}

.lifegivingstore-contact-page #contact-callout h2 {
	color: rgb(255 255 255) !important;
	font-size: clamp(2rem, 5vw, 2.75rem) !important;
	font-weight: 800 !important;
	line-height: 1.5 !important;
	letter-spacing: -0.02em !important;
	margin-bottom: 1rem !important;
}

.lifegivingstore-contact-page #family-owned-block h2 {
	color: rgb(23 23 23) !important;
	font-size: clamp(2rem, 5vw, 2.75rem) !important;
	font-weight: 800 !important;
	line-height: 1.5 !important;
	letter-spacing: -0.02em !important;
	margin-bottom: 1rem !important;
}

.lifegivingstore-contact-page #family-owned-block h3 {
	color: rgb(23 23 23) !important;
	font-size: clamp(1.375rem, 3vw, 1.75rem) !important;
	font-weight: 800 !important;
	line-height: 1.5 !important;
	letter-spacing: -0.02em !important;
	margin-bottom: 1rem !important;
}

/* Footer column titles on same visit (ThriveDesk loaded) */
body:has(.lifegivingstore-contact-page) .site-footer h4 {
	color: rgb(255 255 255) !important;
	font-size: 1.2rem !important;
	font-weight: 800 !important;
	line-height: 1.5 !important;
	letter-spacing: -0.02em !important;
	margin-bottom: 1rem !important;
}

/**
 * Contact Us template — ThriveDesk preflight breaks FAQ & sections below the shortcode.
 * Scoped to body.page-template-page-contact-us
 */
body.page-template-page-contact-us #contact-faq ul.list-disc,
body.page-template-page-support #support-faq ul.list-disc {
	list-style-type: disc !important;
	list-style-position: outside !important;
	padding-left: 1.25rem !important;
	margin-top: 0 !important;
	margin-bottom: 0 !important;
}

body.page-template-page-contact-us #contact-faq ul.list-disc li,
body.page-template-page-support #support-faq ul.list-disc li {
	display: list-item !important;
	margin-top: 0.25rem !important;
	margin-bottom: 0.25rem !important;
}

body.page-template-page-contact-us #contact-faq details summary,
body.page-template-page-support #support-faq details summary {
	display: flex !important;
	align-items: center !important;
	justify-content: space-between !important;
	list-style: none !important;
}

body.page-template-page-contact-us #contact-faq details summary::-webkit-details-marker,
body.page-template-page-support #support-faq details summary::-webkit-details-marker {
	display: none !important;
}

body.page-template-page-contact-us #contact-faq .space-y-4 > :not([hidden]) ~ :not([hidden]),
body.page-template-page-support #support-faq .space-y-4 > :not([hidden]) ~ :not([hidden]) {
	margin-top: 1rem !important;
}

body.page-template-page-contact-us #contact-faq .space-y-3 > :not([hidden]) ~ :not([hidden]),
body.page-template-page-support #support-faq .space-y-3 > :not([hidden]) ~ :not([hidden]) {
	margin-top: 0.75rem !important;
}

body.page-template-page-contact-us #contact-faq .space-y-1 > :not([hidden]) ~ :not([hidden]),
body.page-template-page-support #support-faq .space-y-1 > :not([hidden]) ~ :not([hidden]) {
	margin-top: 0.25rem !important;
}

@media (min-width: 1024px) {
	body.page-template-page-contact-us #contact-faq .order-2 > div.rounded-2xl,
	body.page-template-page-support #support-faq .order-2 > div.rounded-2xl {
		position: sticky !important;
		top: 6rem !important;
	}
}

body.page-template-page-contact-us #contact-callout .relative.z-10 {
	display: block !important;
}

body.page-template-page-contact-us #contact-callout .btn-primary,
body.page-template-page-contact-us #contact-callout a.btn-primary {
	display: inline-flex !important;
	align-items: center !important;
	justify-content: center !important;
	gap: 0.5rem !important;
}

/* Family owned block (below portal on Support) */
#family-owned-block .site-container > .grid {
	display: grid !important;
}

@media (min-width: 1024px) {
	#family-owned-block .site-container > .grid {
		grid-template-columns: 60% 1fr !important;
	}
}

/* --- Page hero (ThriveDesk hides .page-header on .page) --- */
body.page .page-header-gray,
body.page header.page-header-gray {
	display: block !important;
}

/* --- Inside #thrivedesk only --- */
#thrivedesk {
	box-sizing: border-box;
	font-family: ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;
	font-size: 1rem;
	line-height: 1.5;
	color: rgb(51, 65, 85);
	-webkit-font-smoothing: antialiased;
}

#thrivedesk *,
#thrivedesk *::before,
#thrivedesk *::after {
	box-sizing: border-box;
}

#thrivedesk h1,
#thrivedesk h2,
#thrivedesk h3,
#thrivedesk h4,
#thrivedesk h5,
#thrivedesk h6 {
	font-size: inherit;
	font-weight: inherit;
	line-height: inherit;
	letter-spacing: normal;
	margin: 0;
	color: inherit;
}

#thrivedesk a {
	color: inherit;
	text-decoration: none;
}

#thrivedesk table {
	border-collapse: collapse;
}

/* --- Support page: Fluent Forms — Inter, readable size, theme borders + primary CTA --- */
.lifegivingstore-support-page .lifegivingstore-support-fluent-form .fluentform,
.lifegivingstore-support-page .lifegivingstore-support-fluent-form .frm-fluent-form {
	font-family: Inter, ui-sans-serif, system-ui, sans-serif !important;
	font-size: 1rem !important;
	line-height: 1.5 !important;
	letter-spacing: -0.01em !important;
	color: #525252 !important;
	-webkit-font-smoothing: antialiased;
}

.lifegivingstore-support-page .lifegivingstore-support-fluent-form .ff-el-input--label label {
	font-family: Inter, ui-sans-serif, system-ui, sans-serif !important;
	font-weight: 700 !important;
	color: #171717 !important;
	font-size: 0.875rem !important;
	letter-spacing: -0.01em !important;
}

.lifegivingstore-support-page .lifegivingstore-support-fluent-form textarea.ff-el-form-control,
.lifegivingstore-support-page .lifegivingstore-support-fluent-form input.ff-el-form-control:not([type="checkbox"]):not([type="radio"]):not([type="file"]),
.lifegivingstore-support-page .lifegivingstore-support-fluent-form select.ff-el-form-control {
	width: 100% !important;
	max-width: 100% !important;
	padding: 0.75rem 1rem !important;
	border: 1px solid #e5e5e5 !important;
	border-radius: 0.75rem !important;
	font-family: Inter, ui-sans-serif, system-ui, sans-serif !important;
	font-size: 1rem !important;
	line-height: 1.5 !important;
	color: #262626 !important;
	background-color: #fff !important;
	box-shadow: none !important;
}

.lifegivingstore-support-page .lifegivingstore-support-fluent-form textarea.ff-el-form-control {
	min-height: 7rem !important;
}

.lifegivingstore-support-page .lifegivingstore-support-fluent-form textarea.ff-el-form-control:focus,
.lifegivingstore-support-page .lifegivingstore-support-fluent-form input.ff-el-form-control:focus,
.lifegivingstore-support-page .lifegivingstore-support-fluent-form select.ff-el-form-control:focus {
	border-color: #0170b9 !important;
	outline: none !important;
	box-shadow: 0 0 0 3px rgba(1, 112, 185, 0.18) !important;
}

.lifegivingstore-support-page .lifegivingstore-support-fluent-form .ff-el-form-control::placeholder {
	color: #a3a3a3 !important;
	opacity: 1 !important;
}

.lifegivingstore-support-page .lifegivingstore-support-fluent-form .ff-btn-submit,
.lifegivingstore-support-page .lifegivingstore-support-fluent-form button[type="submit"].ff-btn,
.lifegivingstore-support-page .lifegivingstore-support-fluent-form button.ff-btn.ff-btn-submit:not(.ff_upload_btn):not(.ff-btn-chat) {
	display: inline-flex !important;
	align-items: center !important;
	justify-content: center !important;
	gap: 0.5rem !important;
	padding: 0.75rem 1.5rem !important;
	font-family: Inter, ui-sans-serif, system-ui, sans-serif !important;
	font-size: 0.875rem !important;
	font-weight: 700 !important;
	text-transform: uppercase !important;
	letter-spacing: 0.06em !important;
	color: #fff !important;
	background-color: #0170b9 !important;
	border: none !important;
	border-radius: 0.5rem !important;
	cursor: pointer !important;
	transition: background-color 0.2s ease !important;
}

.lifegivingstore-support-page .lifegivingstore-support-fluent-form .ff-btn-submit:hover,
.lifegivingstore-support-page .lifegivingstore-support-fluent-form button[type="submit"].ff-btn:hover {
	background-color: #015a94 !important;
}

.lifegivingstore-support-page .lifegivingstore-support-fluent-form .ff-el-help-message {
	color: #737373 !important;
	font-size: 0.8125rem !important;
	font-style: normal !important;
}

.lifegivingstore-support-page .lifegivingstore-support-fluent-form .ff-el-group {
	margin-bottom: 1.125rem !important;
}

/* Narrow column: avoid left-floated labels overlapping */
.lifegivingstore-support-page .lifegivingstore-support-ticket-inner .fluentform .ff-el-form-left .ff-el-input--label,
.lifegivingstore-support-page .lifegivingstore-support-ticket-inner .fluentform .ff-el-form-right .ff-el-input--label {
	float: none !important;
	width: 100% !important;
	padding: 0 0 0.35rem 0 !important;
	margin-bottom: 0 !important;
	text-align: left !important;
}

.lifegivingstore-support-page .lifegivingstore-support-ticket-inner .fluentform .ff-el-form-left .ff-el-input--content,
.lifegivingstore-support-page .lifegivingstore-support-ticket-inner .fluentform .ff-el-form-right .ff-el-input--content {
	margin-left: 0 !important;
}

.lifegivingstore-support-page .lifegivingstore-support-fluent-form .select2-container .select2-selection--single {
	min-height: 2.75rem !important;
	padding: 0.25rem 0.5rem !important;
	border: 1px solid #e5e5e5 !important;
	border-radius: 0.75rem !important;
	font-family: Inter, ui-sans-serif, system-ui, sans-serif !important;
	font-size: 1rem !important;
}

.lifegivingstore-support-page .lifegivingstore-support-fluent-form .select2-container--default .select2-selection--single .select2-selection__rendered {
	line-height: 2.25rem !important;
	color: #262626 !important;
}

.lifegivingstore-support-page .lifegivingstore-support-fluent-form .ff-message-success {
	border-color: #e5e5e5 !important;
	border-radius: 0.75rem !important;
	font-family: Inter, ui-sans-serif, system-ui, sans-serif !important;
	font-size: 0.9375rem !important;
	color: #262626 !important;
}

/* Support page: Fluent Forms theme polish (errors, checks, spacing, actions) */
.lifegivingstore-support-page .lifegivingstore-support-fluent-form .ff-el-is-error .ff-el-form-control {
	border-color: #dc2626 !important;
	box-shadow: 0 0 0 3px rgba(220, 38, 38, 0.12) !important;
}

.lifegivingstore-support-page .lifegivingstore-support-fluent-form .text-danger,
.lifegivingstore-support-page .lifegivingstore-support-fluent-form .error.text-danger {
	color: #b91c1c !important;
	font-size: 0.8125rem !important;
	line-height: 1.4 !important;
	margin-top: 0.35rem !important;
}

.lifegivingstore-support-page .lifegivingstore-support-fluent-form .ff-el-input--label .ff_required {
	color: #dc2626 !important;
	font-weight: 700 !important;
}

.lifegivingstore-support-page .lifegivingstore-support-fluent-form .ff-checkbox label,
.lifegivingstore-support-page .lifegivingstore-support-fluent-form .ff-radio label {
	color: #404040 !important;
	font-size: 0.9375rem !important;
	line-height: 1.45 !important;
}

.lifegivingstore-support-page .lifegivingstore-support-fluent-form input[type="checkbox"],
.lifegivingstore-support-page .lifegivingstore-support-fluent-form input[type="radio"] {
	accent-color: #0170b9 !important;
}

.lifegivingstore-support-page .lifegivingstore-support-fluent-form .ff-btn-submit:focus-visible,
.lifegivingstore-support-page .lifegivingstore-support-fluent-form button[type="submit"].ff-btn:focus-visible {
	outline: 2px solid #0170b9 !important;
	outline-offset: 2px !important;
}

.lifegivingstore-support-page .lifegivingstore-support-fluent-form .ff_submit_btn_wrapper {
	margin-top: 1.25rem !important;
}

@media (max-width: 767px) {
	.lifegivingstore-support-page .lifegivingstore-support-fluent-form .ff-btn-submit,
	.lifegivingstore-support-page .lifegivingstore-support-fluent-form button[type="submit"].ff-btn {
		width: 100% !important;
	}
}
