/* 
Theme Name: Hello Elementor Child
Theme URI: https://github.com/elementor/hello-theme-child/
Description: Hello Elementor Child is a child theme of Hello Elementor, created by Elementor team
Author: Elementor Team
Author URI: https://elementor.com/
Template: hello-elementor
Version: 2.0.0
Text Domain: hello-elementor-child
License: GNU General Public License v3 or later.
License URI: https://www.gnu.org/licenses/gpl-3.0.html
Tags: flexible-header, custom-colors, custom-menu, custom-logo, editor-style, featured-images, rtl-language-support, threaded-comments, translation-ready
*/

/* Add your custom styles here */

:root {
	--tmj-green: #16A34A;
	--tmj-green-dark: #15803D;
	--tmj-navy: #0F172A;
	--tmj-border: #DDE2EA;
	--tmj-soft: #F0FDF4;
}

html { scroll-behavior: smooth; }

/* ---------- Header ---------- */
.tmj-header { transition: box-shadow .3s ease; }
.tmj-header.elementor-sticky--effects { box-shadow: 0 8px 30px rgba(15, 23, 42, .08); }
.tmj-brand a { color: inherit; line-height: 1.05; display: inline-flex; flex-direction: column; }
.tmj-brand a span { font-size: .72em; font-weight: 500; color: var(--tmj-green); letter-spacing: .02em; }
.tmj-brand .elementor-heading-title { white-space: nowrap; }
.tmj-header .elementor-button, .tmj-header .elementor-icon-box-title { white-space: nowrap; }

/* Floating contact icons: WhatsApp in brand green */
.stickyicon.tmj-cta-wa .elementor-social-icon { background-color: #25D366 !important; }
.stickyicon.tmj-cta-wa .elementor-social-icon svg { fill: #fff !important; }

/* ---------- Eyebrows / pills ---------- */
.tmj-eyebrow .elementor-heading-title { display: inline-flex; align-items: center; gap: 8px; letter-spacing: .08em; }
.tmj-eyebrow .elementor-heading-title::before { content: ""; width: 22px; height: 2px; background: currentColor; border-radius: 2px; }
.tmj-pill .elementor-heading-title {
	display: inline-flex; align-items: center; gap: 8px; padding: 8px 16px; border-radius: 100px;
	background: rgba(22, 163, 74, .18); border: 1px solid rgba(173, 210, 187, .35); letter-spacing: .06em;
}
.tmj-pill .elementor-heading-title::before {
	content: ""; width: 8px; height: 8px; border-radius: 50%; background: #4ADE80;
	box-shadow: 0 0 0 4px rgba(74, 222, 128, .25); animation: tmj-pulse 2s infinite;
}
@keyframes tmj-pulse { 50% { box-shadow: 0 0 0 8px rgba(74, 222, 128, 0); } }

/* ---------- Hero ---------- */
.tmj-hl { color: #4ADE80; }
.tmj-hero-checks .elementor-icon-list-items { row-gap: 10px; column-gap: 22px; }

/* ---------- Quote form ---------- */
.tmj-quote { display: grid; gap: 12px; margin-top: 8px; }
.tmj-quote__row { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.tmj-quote label { display: grid; gap: 6px; margin: 0; }
.tmj-quote label span { font-size: 13px; font-weight: 600; color: var(--tmj-navy); }
.tmj-quote input, .tmj-quote select, .tmj-quote textarea {
	width: 100%; border: 1px solid var(--tmj-border); border-radius: 12px; padding: 12px 14px;
	font: inherit; font-size: 15px; color: var(--tmj-navy); background: #F8FAFC; transition: border-color .2s, box-shadow .2s;
}
.tmj-quote input:focus, .tmj-quote select:focus, .tmj-quote textarea:focus {
	outline: none; border-color: var(--tmj-green); background: #fff; box-shadow: 0 0 0 4px rgba(22, 163, 74, .12);
}
.tmj-quote .is-invalid { border-color: #DC2626; box-shadow: 0 0 0 3px rgba(220, 38, 38, .1); }
.tmj-quote__btn {
	display: inline-flex; align-items: center; justify-content: center; gap: 10px; width: 100%;
	border: 0; border-radius: 100px; padding: 16px 24px; background: var(--tmj-green); color: #fff;
	font: inherit; font-weight: 700; font-size: 15px; cursor: pointer; transition: background .2s, transform .2s;
}
.tmj-quote__btn:hover, .tmj-quote__btn:focus { background: var(--tmj-green-dark); color: #fff; transform: translateY(-1px); }
.tmj-quote__btn svg { width: 20px; height: 20px; }
.tmj-quote__note { margin: 0; font-size: 12px; color: #64748B; text-align: center; }

/* ---------- Trust strip ---------- */
.tmj-trust {
	background: #fff; border: 1px solid var(--tmj-border); border-radius: 20px;
	box-shadow: 0 20px 50px rgba(15, 23, 42, .10); overflow: hidden;
}
.tmj-trust > .elementor-element { padding: 26px 24px; }
.tmj-trust > .elementor-element:not(:last-child) { border-right: 1px solid var(--tmj-border); }

/* ---------- Cards ---------- */
.tmj-card { transition: transform .3s ease, box-shadow .3s ease, border-color .3s ease; }
.tmj-svc:hover, .tmj-step:hover, .elementor-element.tmj-card:has(.elementor-widget-icon-box):hover {
	transform: translateY(-6px); box-shadow: 0 24px 50px rgba(15, 23, 42, .10); border-color: #8CC09F;
}
.tmj-svc .tmj-svc__img img { aspect-ratio: 3 / 2; object-fit: cover; transition: transform .5s ease; }
.tmj-svc .tmj-svc__img { overflow: hidden; border-radius: 16px; }
.tmj-svc:hover .tmj-svc__img img { transform: scale(1.05); }
.tmj-svc h3 a { color: inherit; }
.tmj-svc h3 a:hover, .tmj-more a:hover { color: var(--tmj-green); }
.tmj-more a { color: inherit; display: inline-flex; gap: 6px; }
.tmj-more a span { transition: transform .2s; }
.tmj-svc:hover .tmj-more a span { transform: translateX(4px); }
.tmj-step .tmj-step__num .elementor-heading-title { opacity: .9; }
.tmj-img-cover img { width: 100%; aspect-ratio: 5 / 4; object-fit: cover; }

/* ---------- Chips ---------- */
.tmj-chip { border: 1px solid transparent; transition: border-color .2s, transform .2s; --flex-wrap: nowrap !important; flex-wrap: nowrap !important; }
.tmj-chip > .elementor-widget-icon { flex: none; }
.tmj-badge { max-width: calc(100% - 48px); }
.tmj-chip:hover { border-color: #8CC09F; transform: translateY(-2px); }
.tmj-area .elementor-heading-title {
	display: flex; align-items: center; gap: 8px; padding: 12px 16px; background: #fff;
	border: 1px solid var(--tmj-border); border-radius: 12px; transition: border-color .2s;
}
.tmj-area .elementor-heading-title::before {
	content: ""; width: 10px; height: 10px; flex: none; border-radius: 50% 50% 50% 0; transform: rotate(-45deg);
	background: var(--tmj-green);
}
.tmj-area:hover .elementor-heading-title { border-color: var(--tmj-green); }

/* ---------- Lists ---------- */
.tmj-2col .elementor-icon-list-items { display: grid; grid-template-columns: 1fr 1fr; gap: 12px 20px; }
.tmj-2col .elementor-icon-list-item { margin: 0 !important; padding: 0 !important; }

/* ---------- FAQ ---------- */
.tmj-faq .elementor-accordion-item {
	border: 1px solid var(--tmj-border) !important; border-radius: 16px; margin-bottom: 12px; overflow: hidden; background: #fff;
}
.tmj-faq .elementor-tab-title { padding: 20px 24px; }
.tmj-faq .elementor-tab-content { padding: 0 24px 22px; border: 0 !important; }
.tmj-faq .elementor-tab-title.elementor-active { background: var(--tmj-soft) !important; }
@media (min-width: 1025px) { .tmj-sticky-col { position: sticky; top: 110px; } }

/* ---------- Responsive ---------- */
@media (max-width: 1024px) {
	.tmj-trust > .elementor-element:nth-child(2) { border-right: 0; }
	.tmj-trust > .elementor-element:nth-child(-n+2) { border-bottom: 1px solid var(--tmj-border); }
}
@media (max-width: 767px) {
	.tmj-quote__row, .tmj-2col .elementor-icon-list-items { grid-template-columns: 1fr; }
	.tmj-trust > .elementor-element { border-right: 0 !important; border-bottom: 1px solid var(--tmj-border); padding: 18px 20px; }
	.tmj-trust > .elementor-element:last-child { border-bottom: 0; }
	.tmj-hero .elementor-widget-button, .tmj-hero .elementor-widget-button .elementor-button { width: 100%; }
	.tmj-chip { padding: 6px 10px 6px 6px !important; gap: 8px !important; border-radius: 14px !important; }
	.tmj-chip .elementor-icon { padding: 9px !important; }
	.tmj-chip .elementor-heading-title { font-size: 13px; }
}

/* ---------- Dark header ---------- */
.tmj-header .tmj-brand a span { color: #4ADE80; }
.tmj-header .elementor-icon-box-icon .elementor-icon { background: rgba(22, 163, 74, .18) !important; border-radius: 50%; }
.tmj-header .elementor-icon-box-icon svg { fill: #4ADE80 !important; }
.tmj-header .e-n-menu-content .elementor-icon-list-text { color: var(--tmj-navy); }
.tmj-header .e-n-menu-title:hover .e-n-menu-title-text, .tmj-header .e-n-menu-title.e-current .e-n-menu-title-text { color: #4ADE80; }
.tmj-header .elementor-nav-menu--dropdown { background: #0F172A; }
.tmj-header .elementor-nav-menu--dropdown a { color: #fff !important; }
.tmj-header .elementor-nav-menu--dropdown a:hover { background: #16A34A !important; }
.tmj-header .elementor-menu-toggle svg { fill: #fff; }
.tmj-header .elementor-button { box-shadow: 0 8px 24px rgba(22, 163, 74, .35); }
.tmj-header .elementor-widget-image img { border-radius: 0; box-shadow: none; height: auto; filter: drop-shadow(0 4px 14px rgba(22, 163, 74, .25)); }
.tmj-header .elementor-widget-button { margin-left: 8px; }

/* ---------- Mobile (phones) ---------- */
@media (max-width: 767px) {
	/* room for the fixed bottom Call / WhatsApp bar */
	body { padding-bottom: calc(76px + env(safe-area-inset-bottom)); }
	/* iOS Safari zooms into any field under 16px — keep every form control at 16px */
	input:not([type="checkbox"]):not([type="radio"]), select, textarea, .ff-el-form-control { font-size: 16px !important; }
	/* never allow sideways scrolling */
	html, body { overflow-x: clip; }
}
