/* Wholtra theme — look & feel matching www.wholtra.com */

:root {
	--wholtra-red: #db4a2b;
	--wholtra-dark: #222222;
	--wholtra-slate: #5f6a6a;
	--wholtra-slate-deep: #4a5454;
	--wholtra-muted: #707b7b;
	--wholtra-cream: #e4e2dd;
	--wholtra-white: #ffffff;
	--wholtra-font: "Raleway", sans-serif;
	--wholtra-header-height: 72px;
	--wholtra-content: 1100px;
}

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

html {
	scroll-behavior: smooth;
}

body {
	margin: 0;
	font-family: var(--wholtra-font);
	font-size: 16px;
	line-height: 1.65;
	color: var(--wholtra-white);
	background: var(--wholtra-slate);
	-webkit-font-smoothing: antialiased;
}

img {
	max-width: 100%;
	height: auto;
}

a {
	color: var(--wholtra-red);
	text-decoration: none;
}

a:hover {
	text-decoration: underline;
}

a:focus-visible,
button:focus-visible,
.wp-block-button__link:focus-visible {
	outline: 2px solid var(--wholtra-red);
	outline-offset: 2px;
}

.skip-link.screen-reader-text {
	position: absolute;
	top: -3rem;
	left: 0;
	z-index: 100000;
	padding: 0.5rem 1rem;
	background: var(--wholtra-red);
	color: #fff;
}

.skip-link.screen-reader-text:focus {
	top: 0;
}

.screen-reader-text {
	position: absolute;
	width: 1px;
	height: 1px;
	padding: 0;
	margin: -1px;
	overflow: hidden;
	clip: rect(0, 0, 0, 0);
	border: 0;
}

/* ---------- Header: defer to source style.css + wholtra-skin.css ---------- */
/* Desktop (≥992px): horizontal nav, no hamburger (Bootstrap navbar-expand-lg). */
/* Mobile: Bootstrap collapse + source #icon-toggler animation. */

.site-branding .custom-logo {
	display: block;
	width: 100%;
	height: auto;
}

/* On the one-page home, WP marks Home + every /#… item as current-menu-item.
 * Hash items are stripped in PHP; do not paint li.current-menu-item red on home
 * (scrollspy uses a.link-menu.current). On other views (Blog, etc.) WP current is fine. */
body:not(.wholtra-home) .nav-menu ul.nav-menu-inner li.current-menu-item > a {
	color: var(--wholtra-red);
}

/* ---------- Main ---------- */

.site-main {
	min-height: 60vh;
}

/* Full-bleed source sections (Home + marketing pages use Bootstrap grids). */
.wholtra-home .wholtra-entry__content,
.wholtra-entry--page .wholtra-entry__content {
	max-width: none;
	margin: 0;
	padding: 0;
}

.wholtra-blog-list,
.wholtra-page-hero__inner,
.wholtra-entry--post .wholtra-entry__content {
	max-width: var(--wholtra-content);
	margin-left: auto;
	margin-right: auto;
	padding-left: 1.25rem;
	padding-right: 1.25rem;
}

/* Inner marketing pages: match source spacing for feature grids */
.wholtra-entry--page .about .about-content h3,
.wholtra-entry--page .projectmanager .about-content h3 {
	color: #fff;
	font-size: 1.15rem;
	font-weight: 700;
	margin: 0 0 0.5rem;
}

.wholtra-entry--page .about .about-content p,
.wholtra-entry--page .projectmanager .about-content p {
	color: rgba(255, 255, 255, 0.92);
}

.wholtra-entry--page .text-center.py-3 {
	padding: 2rem 1rem 3rem;
	background: #5f6a6a;
}

.wholtra-entry--page .text-center.py-3 .custom-button {
	margin: 0.35rem;
}

.entry-content > .wp-block-group {
	margin-block: 0;
}

.entry-content h1,
.entry-content h2,
.entry-content h3,
.entry-content h4,
.wholtra-page-hero__title,
.wholtra-section-title {
	font-weight: 800;
	letter-spacing: 0.02em;
	line-height: 1.2;
	color: #fff;
}

.wholtra-section-title,
.wholtra-page-hero__title {
	text-align: center;
	text-transform: uppercase;
	margin: 0 0 0.75rem;
}

.wholtra-section-subtitle,
.wholtra-page-hero__subtitle {
	text-align: center;
	text-transform: uppercase;
	letter-spacing: 0.08em;
	color: var(--wholtra-cream);
	font-weight: 600;
	margin: 0 0 1.5rem;
}

/* ---------- Revolution hero (source parity) ---------- */

.mainslider {
	position: relative;
	width: 100%;
	overflow: hidden;
	background: #222;
}

.mainslider .rev_slider_wrapper,
.mainslider .rev_slider {
	width: 100% !important;
}

.tp-caption.NotGeneric-Title,
.NotGeneric-Title {
	color: #fff !important;
	font-family: var(--wholtra-font) !important;
	font-weight: 800 !important;
}

.tp-caption.NotGeneric-SubTitle,
.NotGeneric-SubTitle,
.tp-caption.WebProduct-Content-Light,
.WebProduct-Content-Light {
	color: #fff !important;
	font-family: var(--wholtra-font) !important;
}

.tp-simpleresponsive .slider-button,
a.custom-button.slider-button {
	color: #fff !important;
	background: var(--wholtra-red) !important;
	border-radius: 40px;
	padding: 12px 26px;
	font-size: 14px;
	font-weight: 600;
	text-transform: uppercase;
	text-decoration: none !important;
	display: inline-block;
}

/* Block hero is superseded by Revolution on the front page */
.wholtra-home .wholtra-hero {
	display: none !important;
}

/* ---------- Block / source sections below About/Services ---------- */

.wholtra-page-body,
.wholtra-post-body {
	padding: 4rem 0;
}

.wholtra-page-hero,
.wholtra-blog-header,
.wholtra-post-header {
	background: #707b7b;
}

.wholtra-page-body,
.wholtra-blog-list {
	background: #5f6a6a;
}

.site-footer a {
	color: var(--wholtra-red);
}

/* FAQ: titles centered (source .top-text); answers left-aligned */
#faq .faq-list,
#faq .faq-list h3,
#faq .faq-list p {
	text-align: left;
}

#faq .faq-list h3 {
	color: #fff;
	font-size: 1.25rem;
	font-weight: 700;
	margin: 1.75rem 0 0.5rem;
}

#faq .faq-list h3:first-child {
	margin-top: 0;
}

#faq .faq-list p {
	color: rgba(255, 255, 255, 0.92);
	margin: 0 0 0.25rem;
}

#faq a,
#contact a {
	color: #fff;
	text-decoration: underline;
}

#contact a:hover,
#faq a:hover {
	color: var(--wholtra-cream);
}

/* Contact Form 7 — match source .contactform fields
 * CF7 wraps inputs in .wpcf7-form-control-wrap. Pin the field to fill the
 * pill, keep the icon chip non-blocking, and override source float/transform.
 */
.contactform .wpcf7 {
	margin: 0;
}

.contactform .wpcf7-form {
	margin: 0;
}

.contactform .custom-input {
	position: relative;
	display: block !important;
	float: none !important;
	width: 100% !important;
	height: 50px;
	overflow: hidden;
	border-radius: 30px;
	background: #fff;
}

/* Icon chip: visual only — never steal clicks from the input */
.contactform .custom-input > .custom-input-label {
	position: absolute;
	top: 0;
	left: 0;
	z-index: 2;
	display: flex;
	align-items: center;
	justify-content: center;
	float: none !important;
	width: 50px;
	height: 50px;
	padding: 0;
	margin: 0;
	pointer-events: none;
}

.contactform .custom-input > .custom-input-label::before {
	content: "";
	position: absolute;
	top: 0;
	left: 0;
	width: 50px;
	height: 50px;
	background-color: var(--wholtra-red);
	/* Keep above the white pill; do NOT use z-index:-1 (hides input behind bg). */
	z-index: 0;
	pointer-events: none;
}

.contactform .custom-input > .custom-input-label .icon-field {
	position: relative;
	z-index: 1;
	display: block;
	margin: 0;
	line-height: 1;
	color: #fff;
	pointer-events: none;
}

/* CF7 wrap + input: fill the pill so typing/placeholder work */
.contactform .custom-input > .wpcf7-form-control-wrap {
	position: absolute !important;
	top: 0;
	right: 0;
	bottom: 0;
	left: 0;
	z-index: 1;
	display: block !important;
	float: none !important;
	width: 100% !important;
	height: 50px !important;
	margin: 0 !important;
}

.contactform .custom-input input.wpcf7-form-control,
.contactform .custom-input input.custom-input-field,
.contactform .custom-input input.input-field,
.contactform .custom-input input.wpcf7-text,
.contactform .custom-input input.wpcf7-email {
	position: absolute !important;
	top: 0;
	left: 0;
	z-index: 1;
	display: block !important;
	float: none !important;
	width: 100% !important;
	max-width: none !important;
	height: 50px !important;
	margin: 0 !important;
	padding: 0 1.25rem 0 3.6rem !important;
	border: 0 !important;
	border-radius: 0 !important;
	background: transparent !important;
	box-shadow: none !important;
	color: #555 !important;
	-webkit-text-fill-color: #555;
	opacity: 1 !important;
	font-family: var(--wholtra-font);
	font-size: 14px;
	line-height: 50px;
	transform: none !important;
	-webkit-transform: none !important;
	caret-color: #555;
}

.contactform .custom-input input::placeholder {
	color: #9a9a9a !important;
	opacity: 1 !important;
	-webkit-text-fill-color: #9a9a9a;
}

.contactform .custom-input input::-webkit-input-placeholder {
	color: #9a9a9a !important;
	opacity: 1 !important;
}

.contactform .custom-input input::-moz-placeholder {
	color: #9a9a9a !important;
	opacity: 1 !important;
}

.contactform .custom-input:focus-within > .custom-input-label::before {
	-webkit-transform: scale3d(0.8, 1, 1);
	transform: scale3d(0.8, 1, 1);
}

.contactform .custom-input:focus-within > .custom-input-label .icon-field {
	-webkit-transform: scale3d(0.6, 0.6, 1);
	transform: scale3d(0.6, 0.6, 1);
}

.contactform .wpcf7-form textarea.wpcf7-form-control {
	width: 100%;
	max-width: 100%;
	border: none;
	box-shadow: none;
	font-family: var(--wholtra-font);
}

.contactform .wpcf7-form textarea.wpcf7-wholtra-message,
.contactform .wpcf7-form textarea.wpcf7-textarea {
	color: #555;
	background: #fff;
	border-radius: 30px;
	min-height: 160px;
	padding: 20px 25px;
	resize: vertical;
}

.contactform .wpcf7-form .submit-form {
	display: flex;
	align-items: stretch;
}

.contactform .wpcf7-form .submit-form input.wpcf7-submit,
.contactform .wpcf7-form .submit-form button.wpcf7-submit {
	width: 100%;
	height: 50px;
	padding: 0 26px;
	border: 0;
	border-radius: 40px;
	background: var(--wholtra-red);
	color: #fff;
	font-weight: 600;
	text-transform: uppercase;
	cursor: pointer;
	font-family: var(--wholtra-font);
}

.contactform .wpcf7-form .submit-form input.wpcf7-submit:hover,
.contactform .wpcf7-form .submit-form button.wpcf7-submit:hover {
	opacity: 0.92;
}

.contactform .wpcf7-not-valid-tip {
	color: #ffc9c0;
	font-size: 12px;
	margin-top: 6px;
}

.contactform .wpcf7-response-output {
	margin: 1rem 0 0;
	padding: 12px 18px;
	border-radius: 40px;
	border: 0 !important;
	text-align: center;
	font-weight: 600;
	text-transform: uppercase;
	font-size: 14px;
}

.contactform .wpcf7 form.sent .wpcf7-response-output {
	background: #28a745;
	color: #fff;
}

.contactform .wpcf7 form.failed .wpcf7-response-output,
.contactform .wpcf7 form.invalid .wpcf7-response-output,
.contactform .wpcf7 form.unaccepted .wpcf7-response-output {
	background: #dc3545;
	color: #fff;
}

.contactform .wpcf7-spinner {
	margin: 0 0 0 0.75rem;
}

.mainslider .rev_slider_wrapper {
	min-height: 720px;
}

@media (max-width: 778px) {
	.mainslider .rev_slider_wrapper {
		min-height: 960px;
	}
}

/* Let source .about / .services / .projectmanager win — do not override their desktop grid. */
.wholtra-home .about,
.wholtra-home .projectmanager.services {
	width: 100%;
}

/* Source homepage accent spans (About / Our Services titles) */
.top-text h2 > span,
.projectmanager .top-text h2 > span {
	color: var(--wholtra-red);
}

#what-is-wholtra a {
	color: #fff;
	text-decoration: underline;
}

/* Source dark wrapper canvas */
body.dark .wrapper {
	background-color: #707b7b;
}

body.dark {
	background-color: #707b7b;
}

/* ---------- Buttons / CTAs ---------- */

.wp-block-button.is-style-wholtra-cta .wp-block-button__link,
.wp-block-button__link,
.wholtra-cta-link {
	display: inline-block;
	padding: 0.75rem 1.5rem;
	background: var(--wholtra-red) !important;
	color: #fff !important;
	border-radius: 4px;
	font-weight: 700;
	letter-spacing: 0.04em;
	text-transform: uppercase;
	text-decoration: none !important;
	border: 0;
}

.wp-block-button.is-style-wholtra-cta--small .wp-block-button__link {
	padding: 0.55rem 1.1rem;
	font-size: 0.8rem;
}

.wp-block-button__link:hover,
.wholtra-cta-link:hover {
	filter: brightness(1.08);
	text-decoration: none !important;
}

/* ---------- Page / blog ---------- */

.wholtra-page-hero,
.wholtra-blog-header,
.wholtra-post-header {
	padding: 3.5rem 0 2rem;
}

.wholtra-page-body,
.wholtra-post-body,
.wholtra-entry--post .entry-content {
	padding-top: 2rem;
	padding-bottom: 3rem;
}

.wholtra-blog-list {
	padding: 2rem 1.25rem 4rem;
	max-width: var(--wholtra-content);
	margin: 0 auto;
}

.wholtra-blog-card {
	padding: 1.75rem 0;
	border-bottom: 1px solid rgba(255, 255, 255, 0.12);
}

.wholtra-blog-card__title {
	margin: 0 0 0.5rem;
	font-size: 1.35rem;
}

.wholtra-blog-card__title a {
	color: #fff;
	text-decoration: none;
}

.wholtra-blog-card__title a:hover {
	color: var(--wholtra-red);
}

.wholtra-post-meta {
	text-align: center;
	color: var(--wholtra-cream);
	font-size: 0.9rem;
	display: flex;
	flex-wrap: wrap;
	gap: 0.5rem 1.25rem;
	justify-content: center;
}

.wholtra-post-meta a {
	color: var(--wholtra-red);
}

.wholtra-blog-card .wholtra-post-meta {
	justify-content: flex-start;
	text-align: left;
	margin: 0.35rem 0 0.75rem;
}

.wholtra-post-footer {
	max-width: var(--wholtra-content);
	margin: 0 auto;
	padding: 0 1.25rem 3rem;
}

.wholtra-pagination {
	margin-top: 2rem;
}

.wholtra-pagination .nav-links {
	display: flex;
	gap: 1rem;
	justify-content: center;
}

.wholtra-pagination a {
	color: #fff;
}

/* ---------- Footer ---------- */

.site-footer {
	background: var(--wholtra-dark);
	padding: 2.75rem 1.25rem 2rem;
	text-align: center;
}

.site-footer__inner {
	max-width: var(--wholtra-content);
	margin: 0 auto;
}

.site-footer__branding {
	margin: 0 0 1.25rem;
}

.site-footer__brand-link {
	display: inline-block;
	text-decoration: none;
}

.site-footer__logo {
	display: block;
	height: 48px;
	width: auto;
	margin: 0 auto 0.5rem;
}

.site-footer__tagline {
	margin: 0;
	font-size: 0.95rem;
	color: rgba(255, 255, 255, 0.75);
}

.site-footer__nav-list {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: 0.75rem 1.25rem;
	list-style: none;
	margin: 0 0 1.25rem;
	padding: 0;
}

.site-footer__nav-list a {
	color: var(--wholtra-red);
	font-size: 0.9rem;
}

.site-footer__contact {
	margin: 0 0 1.25rem;
	font-size: 0.95rem;
}

.site-footer__contact a {
	color: var(--wholtra-red);
}

.site-footer__contact-sep {
	margin: 0 0.5rem;
	color: rgba(255, 255, 255, 0.45);
}

.site-footer__credit {
	margin: 0;
	font-size: 0.85rem;
	color: rgba(255, 255, 255, 0.7);
}

.site-footer__credit a {
	color: var(--wholtra-red);
}

/* ---------- Editor alignment ---------- */

.editor-styles-wrapper {
	font-family: var(--wholtra-font);
	background: var(--wholtra-slate);
	color: #fff;
}

