/*
Theme Name: Tidemark Marketing (2026)
Version: 2026.1
Author: Tidemark
Template: bb-theme
*/

/* ==========================================================================
   1. GLOBAL & CONTENT
   ========================================================================== */

html { font-size: 62.5%; }
html body { font-size: 1.8rem; }
strong { font-weight: 700; }

body > div.fl-page > header p,
body > div.fl-page > footer p { margin-bottom: 0; }

.fl-page-content p { margin-bottom: 2rem; }
.fl-page-content a { text-decoration: underline; }
.single-post .fl-builder-content-primary p + h2 { margin-top: 40px; }
footer .fl-icon-wrap a:hover { text-decoration: none; }

/* ==========================================================================
   2. BUTTONS & DECORATIVE ELEMENTS
   ========================================================================== */

.button-arrow .fl-button-icon::before {
	position: relative;
	top: -0.25em;
	font-size: 0.6em;
	line-height: 1;
}

.tm-testimonial-quote-mark { height: 10rem; }
.tm-testimonial-quote-mark .fl-heading {
	margin: 0;
	padding: 0;
	font-size: 15rem;
	line-height: 1;
	transform: translateY(-0.12em);
}

.cta-ribbon { position: relative; }
.cta-ribbon::before {
	content: "";
	position: absolute;
	top: 0;
	left: 50%;
	z-index: 1;
	width: 54px;
	height: 62px;
	background: #13373b;
	clip-path: polygon(0 0, 100% 0, 100% 100%, 50% 65%, 0 100%);
	transform: translateX(-50%);
}

.stat-divider {
	background-image: linear-gradient(#f4efe6, #f4efe6);
	background-size: 1px 76%;
	background-position: left center;
	background-repeat: no-repeat;
}

/* ==========================================================================
   3. NINJA FORMS: GLOBAL
   ========================================================================== */

/* Visually hide form titles without removing them from accessibility APIs. */
[id^="nf-form-title-"] {
	position: absolute;
	width: 1px;
	height: 1px;
	margin: -1px;
	padding: 0;
	overflow: hidden;
	clip-path: inset(50%);
	border: 0;
}

.nf-form-content .list-select-wrap .nf-field-element > div,
.nf-form-content input:not([type="button"]):not([type="submit"]),
.nf-form-content textarea {
	background: #fff !important;
	border: 1px solid #bab3b0 !important;
	color: #000 !important;
}

.nf-form-content button,
.nf-form-content input[type="button"],
.nf-form-content input[type="submit"] {
	background: #0e4153 !important;
	color: #fff !important;
	border: none !important;
	letter-spacing: 0.3rem;
	padding: 12px 20px;
}

.nf-form-content button:hover,
.nf-form-content input[type="button"]:hover,
.nf-form-content input[type="submit"]:hover {
	background: #b4844c !important;
	color: #fff !important;
}

/* ==========================================================================
   4. FOOTER: NEWSLETTER FORM (NINJA FORM 2)
   ========================================================================== */

footer #nf-form-2-cont .nf-form-fields-required { display: none; }
footer #nf-form-2-cont .nf-form-content { padding: 0; }

footer #nf-form-2-cont .nf-form-content > nf-rows-wrap {
	display: flex !important;
	flex-direction: row !important;
	align-items: center;
	gap: 8px;
}

footer #nf-form-2-cont .nf-form-content > nf-rows-wrap > .nf-row:first-child {
	flex: 1 1 0;
	min-width: 0;
}

footer #nf-form-2-cont .nf-form-content > nf-rows-wrap > .nf-row:last-child {
	flex: 0 0 36px;
	min-width: 36px;
}

footer #nf-form-2-cont .nf-row,
footer #nf-form-2-cont .nf-cell,
footer #nf-form-2-cont .nf-field-container {
	margin: 0 !important;
	min-width: 0;
}

footer #nf-form-2-cont .email-container input {
	display: block;
	width: 100% !important;
	max-width: none !important;
	height: 40px !important;
	min-height: 40px !important;
	margin: 0 !important;
	padding: 0 12px !important;
	box-sizing: border-box;
	font-size: 1.4rem !important;
	line-height: normal;
}

footer #nf-form-2-cont .submit-container .nf-field-element {
	position: relative;
	width: 36px;
	height: 36px;
}

footer #nf-form-2-cont .submit-container input[type="submit"] {
	display: block;
	width: 36px !important;
	min-width: 36px !important;
	max-width: 36px !important;
	height: 36px !important;
	min-height: 36px !important;
	max-height: 36px !important;
	margin: 0 !important;
	padding: 0 !important;
	box-sizing: border-box;
	border: none !important;
	border-radius: 50% !important;
	background: #b66635 !important;
	color: transparent !important;
	font-size: 0 !important;
	line-height: 1 !important;
	letter-spacing: 0;
	cursor: pointer;
	-webkit-appearance: none;
	appearance: none;
	transition: none;
}

/* Decorative arrow does not intercept pointer/touch input. */
footer #nf-form-2-cont .submit-container .nf-field-element::after {
	content: "\f30b";
	position: absolute;
	top: 50%;
	left: 50%;
	transform: translate(-50%, -50%);
	color: #fff;
	font-family: "Font Awesome 5 Free";
	font-size: 14px;
	font-weight: 900;
	line-height: 1;
	pointer-events: none;
}

footer #nf-form-2-cont .submit-container input[type="submit"]:hover {
	background: #a4572e !important;
}

footer #nf-form-2-cont .submit-container input[type="submit"]:focus-visible {
	outline: 2px solid #fff !important;
	outline-offset: 3px;
}

footer #nf-form-2-cont .nf-error-msg { font-size: 1.4rem; }

/* ==========================================================================
   5. MOBILE MENU EXTRAS
   ========================================================================== */

.tm-mobile-menu-extras { display: none !important; }
.tm-mobile-menu-extras .fl-icon a {
	padding: 0;
}
.fl-menu-mobile-flyout .tm-mobile-menu-extras {
	display: block !important;
	width: 100%;
	box-sizing: border-box;
}
.fl-builder-edit .tm-mobile-menu-extras { display: block !important; }

/* ==========================================================================
   6. RESPONSIVE: 992px AND BELOW
   ========================================================================== */

@media (max-width: 992px) {
	/* Homepage hero */
	.home-hero > .fl-row-content-wrap { background-image: none; }

	/* Full-screen flyout */
	.fl-menu-mobile-flyout {
		width: 100vw !important;
		max-width: 100vw !important;
		background-color: #f4efe6 !important;
		box-sizing: border-box;
		overflow-y: auto;
	}
	.fl-menu-mobile-flyout[aria-hidden="true"] {
		right: calc(-100vw - 20px) !important;
	}
	.fl-menu-mobile-flyout[aria-hidden="false"] { right: 0 !important; }

	/* Keep float:none: important for single-tap closing on iPhone Safari. */
	.fl-menu-mobile-flyout .fl-menu-mobile-close {
		position: absolute !important;
		top: 24px !important;
		right: 24px !important;
		left: auto !important;
		float: none !important;
		z-index: 10;
	}

	.fl-menu-mobile-flyout #menu-primary {
		margin: 0;
		padding: 80px 0 0;
	}
	.fl-menu-mobile-flyout #menu-primary > li { margin: 0; padding: 0; }
	.fl-menu-mobile-flyout #menu-primary > li > a {
		display: block;
		padding: 18px 24px;
		font-size: 26px;
		font-weight: 400;
		line-height: 1.2;
		letter-spacing: 2px;
		text-transform: uppercase;
		color: #184f52;
		text-decoration: none;
		transition: color 0.2s ease;
	}
	.fl-menu-mobile-flyout #menu-primary > li > a:hover,
	.fl-menu-mobile-flyout #menu-primary > li > a:focus-visible,
	.fl-menu-mobile-flyout #menu-primary > li.current-menu-item > a,
	.fl-menu-mobile-flyout #menu-primary > li.current-menu-ancestor > a {
		color: #b66635;
	}

	/* Footer: centered two-column grid */
	.tm-footer-main {
		display: grid !important;
		grid-template-columns: repeat(2, minmax(0, 1fr));
		column-gap: 32px;
		row-gap: 40px;
		width: 100%;
		max-width: 500px;
		margin-inline: auto !important;
		align-items: start;
	}
	.tm-footer-main > :first-child {
		grid-column: 1 / -1;
		grid-row: 1;
		justify-self: center;
		width: 100%;
		text-align: center;
	}
	.tm-footer-nav { display: contents !important; }
	.tm-footer-solutions { grid-column: 1; grid-row: 2; }
	.tm-footer-explore { grid-column: 2; grid-row: 2; }
	.tm-footer-connect { grid-column: 1; grid-row: 3; }
	.tm-footer-insights { grid-column: 2; grid-row: 3; }

	.tm-footer-solutions,
	.tm-footer-explore,
	.tm-footer-connect,
	.tm-footer-insights {
		align-self: start !important;
		justify-self: stretch !important;
		margin: 0 !important;
		padding: 0 !important;
		min-width: 0;
	}
	.tm-footer-solutions h2,
	.tm-footer-explore h2,
	.tm-footer-connect h2,
	.tm-footer-insights h2 { margin-top: 0 !important; }
}

/* ==========================================================================
   7. RESPONSIVE: 480px AND BELOW
   ========================================================================== */

@media (max-width: 480px) {
	.tm-footer-main {
		grid-template-columns: minmax(0, 1fr) !important;
		max-width: 100%;
		row-gap: 36px;
	}
	.tm-footer-main > :first-child { grid-column: 1 / -1; grid-row: 1; }
	.tm-footer-solutions { grid-column: 1 / -1; grid-row: 2; }
	.tm-footer-explore { grid-column: 1 / -1; grid-row: 3; }
	.tm-footer-connect { grid-column: 1 / -1; grid-row: 4; }
	.tm-footer-insights { grid-column: 1 / -1; grid-row: 5; }

	.tm-footer-solutions,
	.tm-footer-explore,
	.tm-footer-connect,
	.tm-footer-insights {
		width: 100%;
		min-width: 0;
		text-align: center !important;
	}

	/* Reset desktop newsletter max-width; center children independently. */
	.tm-footer-insights {
		display: flex !important;
		flex-direction: column !important;
		align-items: center !important;
		max-width: 100% !important;
	}
	.tm-footer-insights .fl-module-heading,
	.tm-footer-insights .fl-module-rich-text {
		width: 100%;
		text-align: center !important;
	}
	.tm-footer-insights .fl-module-rich-text {
		max-width: 340px;
		margin-inline: auto;
	}
	.tm-footer-insights .fl-heading,
	.tm-footer-insights .fl-rich-text,
	.tm-footer-insights .fl-rich-text p { text-align: center !important; }
	.tm-footer-insights .nf-form-cont {
		width: 100%;
		max-width: 320px;
		margin-inline: auto !important;
	}
}
