/* Site-wide inline styles carried over from the WordPress head/body, in original cascade order. */

/* -- WordPress core -- */
img:is([sizes=auto i],[sizes^="auto," i]){contain-intrinsic-size:3000px 1500px}
/*! This file is auto-generated */
.wp-block-button__link{color:#fff;background-color:#32373c;border-radius:9999px;box-shadow:none;text-decoration:none;padding:calc(.667em + 2px) calc(1.333em + 2px);font-size:1.125em}.wp-block-file__button{background:#32373c;color:#fff;text-decoration:none}

/* -- Elementor widget custom CSS (footer "Contact Us" button) -- */
/* Start custom CSS for button, class: .elementor-element-e487005 */@media(max-width:414px){
    .elementor-147 .elementor-element.elementor-element-e487005  .elementor-button .elementor-align-icon-right {
    margin-left: 0;
    display: none;
}
}
.elementor-147 .elementor-element.elementor-element-e487005 .elementor-button:hover{
    box-shadow: -15px 20px 40px 0px #1d24334d;
}
@media only screen  and  (max-width:400px) and  (min-width:768px) {
.elementor-147 .elementor-element.elementor-element-e487005 .elementor-button-content-wrapper {
    gap: 36px!important;
}
}
@media only screen  and  (max-width:500px)  {
.elementor-147 .elementor-element.elementor-element-e487005 {
    width: 100%!important;
        text-align: center;
}
}/* End custom CSS */

/* -- Phlox "Custom CSS" option -- */
/* Add your CSS code here.

For example:
.example {
    color: red;
}

For brushing up on your CSS knowledge, check out http://www.w3schools.com/css/css_syntax.asp

End of comment */ 

.aux-widget-recent-portfolios .entry-media {
	width:220px;
	height:220px;
	margin:0px auto;
}


.elementor-element-bd46819{
	padding-bottom: 100px;
}

.aux-price-amount::before{
	display:none;
}

.fully .aux-price-amount::after{
	display:none;
}

.aux-widget-contact-box {
	font-size:1.9rem;
}

span.count-box.wp_ulike_counter_up{
	display:none;
}

.entry-header{
	max-width:100% !important;
}

.entry-main{
	display: grid;
	justify-content: center;
}

.elementor-element-79aa3cb {
	display: none;
}

#menu-item-907 a span, #menu-item-907 a span:visited, .menu-item-907 a span, .menu-item-907 a span:visited {
	color: red;
	font-weight: bold;
}


@media only screen and (min-width: 1400px) {
	.aux-offcanvas-menu{
		display:none;
		visibility:hidden;
	}
	
	.aux-offcanvas-menu aux-pin-right{
		display:none;
	}
	
		
	.elementor-149 .elementor-element.elementor-element-c6b0686{
		margin-top:6px;
	}
	
	.elementor-147 .elementor-element.elementor-element-c4cb033{
		margin-bottom:10px;
	}
}

@media only screen and (max-width: 768px) {
	.elementor-element-bd46819{
		padding-bottom: 20px;
	}
	
	.elementor-149 .elementor-element.elementor-element-59aeaa8{
		display:flex;
		margin-left:auto;
		
		width:16% !important;
	}
	.aux-widget-contact-box {
		font-size:1.15rem;
	}
}

@media only screen and (max-width: 1400px) {
	.aboutusdescription h3{
		font-size:14px !important;
	}
	.aboutusdescription p{
		font-size:13px;
	}

}

/* -- Widgets -- */
.recentcomments a{display:inline !important;padding:0 !important;margin:0 !important;}

/* -- Elementor background lazy-load guard (backgrounds paint once .e-lazyloaded is added by site.js) -- */
.e-con.e-parent:nth-of-type(n+4):not(.e-lazyloaded):not(.e-no-lazyload),
				.e-con.e-parent:nth-of-type(n+4):not(.e-lazyloaded):not(.e-no-lazyload) * {
					background-image: none !important;
				}
				@media screen and (max-height: 1024px) {
					.e-con.e-parent:nth-of-type(n+3):not(.e-lazyloaded):not(.e-no-lazyload),
					.e-con.e-parent:nth-of-type(n+3):not(.e-lazyloaded):not(.e-no-lazyload) * {
						background-image: none !important;
					}
				}
				@media screen and (max-height: 640px) {
					.e-con.e-parent:nth-of-type(n+2):not(.e-lazyloaded):not(.e-no-lazyload),
					.e-con.e-parent:nth-of-type(n+2):not(.e-lazyloaded):not(.e-no-lazyload) * {
						background-image: none !important;
					}
				}

/* -- WordPress Customizer "Additional CSS" -- */
/*Single Blog */
.single-post .aux-primary{
	padding-top:30px;
}
.aux-elementor-header-menu .aux-master-menu.aux-horizontal.aux-with-splitter > .aux-menu-item > .aux-item-content::after {
	display:none;
}

.single-post .aux-media-frame.aux-media-image{
	overflow:visible;
}
.single-post .meta-comment{
	display:none;
}
.single-post .aux-media-frame.aux-media-image img{
	box-shadow:0px 20px 50px #A0ABC94D;
	border-radius:20px;
	margin-bottom:50px
}
.single-post .hentry .entry-main{
	max-width:1100px;
	align-items:center;
	margin:auto
}
.single-post .aux-primary .hentry .entry-title{
	max-width:705px;
	margin:auto;
	text-align: center!important;	
}
.single-post .hentry .entry-info{
	margin:auto!important;
text-align: center;	
	padding-bottom:40px;
}
.single-post .entry-tax{
	order:1;
}
.single-post .entry-date{
	order:2;
}
.single-post .entry-author{
	order:3;
}
.single-post .entry-edit{
	display:none !important;
}

.single-post .entry-info .wpulike.aux-wpulike-single::before{
	display:none !important;
}
.wpulike.aux-wpulike .wp_ulike_general_class .wp_ulike_btn::before {
	font-weight: bold !important;
	margin-right:30px;
}
.single-post .hentry .entry-info [class^="entry-"] ~ [class^="entry-"]::before{
	width:1px;
	height:10px;
	margin:0 30px;
	background-color:#ABAFC7!important;
}


.single-post .meta-sep{
	display:none;
}
.single-post .hentry .entry-info a{
	color:#1A1F2F;
	
}
.single-post .hentry .entry-info a:hover{
	color:var(--e-global-color-secondary);
	
}
.single-post .hentry .entry-meta{
	border-bottom: solid 1px rgba(171, 175, 199, 0.3)!important;
	border-top: solid 1px rgba(171, 175, 199, 0.3)!important;
	padding:10px 0!important;
	margin-bottom:50px;
}

.single-post .hentry footer.entry-meta .entry-tax{
	text-align: left;
font: normal normal bold 20px/76px Quicksand;
letter-spacing: -0.6px;
color: #111F3D;
}

.single-post .hentry footer.entry-meta .entry-tax a{
	text-align: left;
font: normal normal bold 20px/76px Quicksand;
letter-spacing: -0.6px;
color: #111F3D;
	text-decoration:unset;
}
.single-post #comments {
    max-width: 1100px;
    margin: auto;
}

.single-post #respond{
	max-width:1100px;
	margin:auto;

}
.single-post #commentform .aux-inline-inputs {
	flex-basis: calc(50% - 10px);
}
.single-post #commentform .aux-input-group:nth-child(4) {
    flex-basis: 100%;
}
.single-post input{
	height:60px!important;
	margin-bottom:20px!important;
}
.single-post input::placeholder{
	font-style:normal!important;
}
.single-post input, textarea {
	border:0;
	background-color:var(--e-global-color-accent);
	 border-radius:50px;
	padding-left:40px!important;

}
#commentform input[type="text"]{
		height:60px!important;

}
#commentform input[type="url"]{
			height:60px!important;

}
#commentform .aux-form-cookies-consent
{
	display:none;
}
.single-post textarea{
	border-radius:30px!important;
	text-decoration:normal;
}
.single-post input[type="submit"]{
	width: 160px;
height: 45px!important;
	padding:0!important;
	background:var(--e-global-color-primary);
box-shadow: 0px 30px 50px #0E47C04D;
border-radius:25px;
	font-size:16px;
	font-family:"Questrial";
	font-weight:400!important;
	letter-spacing:0px!important;
	margin-bottom:70px!important;

}


.single-post input[type="submit"]:hover{
	background:var(--e-global-color-secondary)!important;
	box-shadow: -15px 20px 40px #FFDA2B4D;
	color: var(--e-global-color-text)!important;

}

.logged-in-as{
	padding-bottom:10px;
	text-align: left;
font: normal normal medium 16px/26px Quicksand;
letter-spacing: 0px;
color:var(--e-global-color-72f454e);
}
.logged-in-as a{
	text-align: left;
font: normal normal medium 16px/26px Quicksand;
letter-spacing: 0px;
color:var(--e-global-color-72f454e);
}

.single-post .form-submit {
    margin-right: 0;
    margin-left: auto;
}
.single-post .entry-meta{
	align-items:center!important;
}
.single-post .wpulike.aux-wpulike .wp_ulike_general_class .wp_ulike_btn::before,.single-post .aux-single-post-share span:before{
	transition:all 300ms ease-out;
}

.single-post .hentry footer.entry-meta .entry-tax a:hover{
	color:var(--e-global-color-secondary);
}
@media(max-width:1024px){
	
	.aux-text-align-center{
		text-align:left;
	}
	.single-post .hentry .entry-main{
		width:100%;
}
}


@media(max-width:414px){
	
	.single-post .hentry .entry-info [class^="entry-"] ~ [class^="entry-"]::before{
	width:0px;
	height:0px;
	margin:0px;
}
.single-post .aux-primary .hentry .entry-title{
	width:250px;
	line-height:50px!important;
	}
	.single-post #commentform .aux-inline-inputs {
	flex-basis:100%;
}
	.single-post .form-submit{
		width:100%;
	}
	.single-post input[type="submit"]{
		width:100%;
	}
	.single-post .comment-body{
		margin-left:0!important
	}
	.single-post .comment-reply-nav{
		margin-left:0!important;
	}
}

/* End Single Blog */

/* Portfolio Single */



.single-portfolio  .entry-media img{
	margin:auto;
	justify-content:center;
box-shadow: -15px 30px 60px #514C5E1A;
border-radius: 20px;
}



.single-portfolio main ,.single-portfolio .aux-container{
	max-width:1200px;
	padding-bottom:10px;
}


.type-portfolio.aux-side-bottom .entry-side{
	display:none;
}
.aux-next-prev-posts .np-arrow img {
    width: 180px;
    height: 120px;
	border-radius: 10px;

}
.aux-next-prev-posts.nav-skin-thumb-arrow.no-arrow .np-nav-text {
	    color: #1A56FF!important;
    letter-spacing: -0.32px;
    font-size: 16px;
}
.aux-next-prev-posts .np-title {
	
	font-size: 20px;
	font-weight: 400!important;
	color: #030314;
	letter-spacing: -0.4px;
    padding-top: 20px;
}
}
.aux-next-prev-posts.nav-skin-thumb-arrow.no-arrow .np-prev-section .np-nav-text:before {
    content: '\2190';
    margin-right: 10px!important;
    background: #1A56FF!important;
    padding: 5px 12px 10px!important;
    border-radius: 50%!important;
    font-size: 24px!important
    color: var( --e-global-color-ef7a26d )!important;
}
@media screen and (max-width:1024px){
	.single-portfolio .aux-territory{
	   width: 100%;
}
}

.aux-next-prev-posts.nav-skin-thumb-arrow.no-arrow .np-prev-section .np-nav-text::before {
    content: '\e1ee'!important;
	font-family: "auxin-front" !important;
font-weight: bold !important;
    margin-right: 10px!important;
    padding: 13px 13px 13px 13px!important;
    border-radius: 50%!important;
    background: transparent;
    font-size: 17px!important;
	color: #1A56FF;
	transition:all 300ms ease-out;
}
.aux-next-prev-posts.nav-skin-thumb-arrow.no-arrow .np-prev-section:hover .np-nav-text::before,
.aux-next-prev-posts.nav-skin-thumb-arrow.no-arrow .np-next-section:hover .np-nav-text::after{
	background-color: #1A56FF;
	color: var( --e-global-color-ef7a26d );
}
.aux-next-prev-posts.nav-skin-thumb-arrow.no-arrow .np-next-section .np-nav-text::after {
	 content: '\e1ef'!important;
	font-family: "auxin-front" !important;
font-weight: bold !important;
    margin-right: 10px!important;
    padding: 13px 13px 13px 13px!important;
    border-radius: 50%!important;
    background: transparent;
    font-size: 17px!important;
	color: #1A56FF;
}


.aux-next-prev-posts .np-prev-section a:hover .np-nav-text{
	text-decoration:none!important;
}
.aux-next-prev-posts .np-next-section a:hover .np-nav-text{
	text-decoration:none!important;
}

.aux-next-prev-posts .np-prev-section a:hover .np-title, .aux-next-prev-posts .np-next-section  a:hover .np-title, .aux-next-prev-posts{
	text-decoration:none!important;
}
.single-portfolio	.aux-primary{
		padding:0 35px;
	}

@media(max-width:1024px){
	.single-post .aux-primary {
    padding: 0 0px;
}
	.single-post .aux-primary .hentry .entry-title {
		width: 100%;}
}

@media(max-width:414px){
	
	.single-portfolio .entry-media img {
  
	}
	.aux-next-prev-posts.nav-skin-thumb-arrow.no-arrow .np-next-section .np-nav-text::after{
		font-size:16px!important;
	}
}
@media(max-width:320px){
	.aux-next-prev-posts.nav-skin-thumb-arrow.no-arrow .np-prev-section .np-nav-text::before,.aux-next-prev-posts.nav-skin-thumb-arrow.no-arrow .np-next-section .np-nav-text::after {
		display:none;
	}}
/* categories */

.category .aux-col{
    background: var(--e-global-color-accent) 0% 0% no-repeat padding-box;
border-radius: 20px;
padding-left: 60px;
padding-right: 100px;
margin:15px;
width:31%;
padding-top: 65px;
padding-bottom: 65px!important;
border: 0 !important;
height: 490px!important;
}
.category .aux-row{
	margin-right: -35px;
}
.category p:empty::before {
    display: none;
}
.category p:empty::after {
    display: none;
}


.category .aux-col:hover {
    background: var(--e-global-color-ef7a26d) !important;
box-shadow: -15px 30px 80px #ABAFC74C !important;
border-radius: 20px;

}
.category .aux-col:hover .column-entry a{
    color: var(--e-global-color-3d33dc2) !important;
}

.category .aux-read-more::after{
    display: none;
}

.category .readmore{
    background: var(--e-global-color-primary) 0% 0% no-repeat padding-box;
box-shadow: -15px 20px 40px #0E47C04D;
border-radius: 30px;
padding: 12px 45px!important;
}
.category .column-entry a:hover {
    text-decoration: unset !important;
}

.category .aux-col:hover .readmore{
    background: var(--e-global-color-secondary) 0% 0% no-repeat padding-box;
box-shadow: -15px 20px 40px #FFDA2B4D;
border-radius: 30px;

}
.category .aux-col:hover .column-entry span{
    color: var(--e-global-color-text) !important;
}
.category .aux-widget-recent-posts .post .entry-title{
	font-size:25px;
	letter-spacing: -0.75px;
}

.category .aux-archive .type-post .entry-info {
    color: #65697A;
    font-size: 16px;
    font-weight: 500;
    padding-bottom: 30px;
}

.category .count-box{
	display:none;
}

.category .aux-widget-recent-posts .post .entry-meta .aux-read-more{
	color: var( --e-global-color-ef7a26d );
font-weight: 500;
font-size: 16px;
}

.category .entry-meta-sep{
	display:none;
}

.category .author {
	display:none;
}

.category .pagination{
	justify-content: center;
display: flex;
}

.category .aux-pagination li.page a, .category .aux-pagination li.page span {
    width: 30px;
    color: var( --e-global-color-3d33dc2 );
    padding: 0;
    border-radius: 10px;
}

.category .aux-pagination li a, .aux-pagination li span {
	line-height: 30px;
	border:0;
	font-size: 16px;
}
.category .aux-pagination li.page a:hover {
    background-color: var(--e-global-color-primary);
    color: var( --e-global-color-ef7a26d );
}
.category .aux-pagination li.page.active a, .category .aux-pagination li.page.active span {
    background-color: var(--e-global-color-primary);
    color: var( --e-global-color-ef7a26d );
    border-color: var(--e-global-color-primary);
}

.category .aux-primary .content .aux-pagination {
    margin-bottom: 100px;
    margin-top: 80px;
}

.category .page-title-section .page-header{
	display:none!important;
}

@media(max-width:2560px){
.category .right-sidebar .aux-primary {
    float: left;
    padding-right: 15px!important;
}
	.category .aux-col{
			width:31%;
}
	@media(max-width:1440px){
.category .right-sidebar .aux-primary {
    float: left;
    padding-right: 25px!important;
}
		.category .aux-row{
	margin-right: -25px;
}
}
	
	@media(max-width:1024px){
		.category .aux-col{
			width:46%;
		}
		.category	.aux-row{
			margin-left: -35px;
		}
		.category .aux-primary {
			padding: 0 0px 0 35px;}
	}
	
		@media(max-width:768px){
		.category .aux-col{
			width:45%;
			padding-top: 35px;
			padding-left: 30px;
padding-right: 30px;
		}
		.author	.aux-row{
			margin-left: -35px;
		}
		
	}
	@media(max-width:414px){
		.category .aux-col{
			width:100%;
		}
	.category .aux-row {
    margin-left: -45px;
    padding-right: 45px;
		}}
@media(max-width:320px){
	.category .post .aux-after-content{
		bottom:-45px!important;
	}
	}
	
/*author*/
	
	
 .author .aux-sidebar-style-border.right-sidebar .aux-sidebar-primary, .author .entry-tax, .author .meta-comment{
    
    display: none;
}
.author .right-sidebar .aux-wrapper .aux-container {
    padding-right: 0;
}
.author .right-sidebar .aux-primary {
    float: left;
    padding-right: 0;
}
.author .aux-col{
    background: var(--e-global-color-accent) 0% 0% no-repeat padding-box;
border-radius: 20px;
padding-left: 60px;
padding-right: 100px;
margin:15px;
width:31%;
padding-top: 65px;
padding-bottom: 65px!important;
border: 0 !important;
height: 490px!important;
}

.author p:empty::before {
    display: none;
}
.author  p:empty::after {
    display: none;
}

.author .aux-col:hover {
    background: var(--e-global-color-ef7a26d) !important;
box-shadow: -15px 30px 80px #ABAFC74C !important;
border-radius: 20px;

}
.author .aux-col:hover .column-entry a{
    color: var(--e-global-color-3d33dc2) !important;
}

.author .aux-read-more::after{
    display: none;
}

.author .readmore{
    background: var(--e-global-color-primary) 0% 0% no-repeat padding-box;
box-shadow: -15px 20px 40px #0E47C04D;
border-radius: 30px;
padding: 12px 45px!important;
}
.author .column-entry a:hover {
    text-decoration: unset !important;
}

.author .aux-col:hover .readmore{
    background: var(--e-global-color-secondary) 0% 0% no-repeat padding-box;
box-shadow: -15px 20px 40px #FFDA2B4D;
border-radius: 30px;

}
.author .aux-col:hover .column-entry span{
    color: var(--e-global-color-text) !important;
}
.author .aux-widget-recent-posts .post .entry-title{
	font-size:25px;
	letter-spacing: -0.75px;
}

.author .aux-archive .type-post .entry-info {
    color: #65697A;
    font-size: 16px;
    font-weight: 500;
    padding-bottom: 30px;
}

.author .count-box{
	display:none;
}

.author .aux-widget-recent-posts .post .entry-meta .aux-read-more{
	color: var( --e-global-color-ef7a26d );
font-weight: 500;
font-size: 16px;
}

.author .entry-meta-sep{
	display:none;
}

.author .author {
	display:none;
}

.author .pagination{
	justify-content: center;
display: flex;
}
.author .aux-pagination li.page a, .author .aux-pagination li.page span {
    width: 30px;
    color: var( --e-global-color-3d33dc2 );
    padding: 0;
    border-radius: 10px;
}

.author .aux-pagination li a, .aux-pagination li span {
	line-height: 30px;
	border:0; 
	font-size: 16px;
}
.category .aux-pagination li.page a:hover {
    background-color: var(--e-global-color-primary);
    color:var( --e-global-color-ef7a26d );
}
.author .aux-pagination li.page.active a, .author .aux-pagination li.page.active span {
    background-color: var(--e-global-color-primary);
    color: var( --e-global-color-ef7a26d );
    border-color: var(--e-global-color-primary);
}

.author .aux-primary .content .aux-pagination {
    margin-bottom: 100px;
    margin-top: 80px;
}

.author .page-title-section .page-header{
	display:none!important;
}
.author .entry-content{
		display:block;
    overflow: hidden;
  text-overflow: ellipsis;
  display: -webkit-box;
  -webkit-line-clamp: 4;
  -webkit-box-orient: vertical;
	}

@media(max-width:2560px){
.author .right-sidebar .aux-primary {
    float: left;
    padding-right: 15px!important;
}
	}
	@media(max-width:1440px){
.author .right-sidebar .aux-primary {
    float: left;
    padding-right: 25px!important;
	padding-left: 20px!important;
}
}
	
	@media(max-width:1024px){
		.author .aux-col{
			width:46%;
		}
		.author	.aux-row{
			margin-left: 0px;
		}
		
		.aux-next-prev-posts.nav-skin-thumb-arrow.no-arrow .np-prev-section .np-nav-text::before,
.aux-next-prev-posts.nav-skin-thumb-arrow.no-arrow .np-next-section .np-nav-text::after{
	background-color: #1A56FF;
	color: var( --e-global-color-ef7a26d );
}
		
		.aux-next-prev-posts.nav-skin-thumb-arrow.no-arrow .np-next-section .np-nav-text::after {
			margin-right: 0 !important;
		}
		
	}
	
		@media(max-width:768px){
		.author .aux-col{
			width:45%;
			padding-top: 35px;
			padding-left: 30px;
padding-right: 30px;
		}
			.author .entry-content{
				-webkit-line-clamp: 6;
			}
		
		
	}
	@media(max-width:414px){
		.author .aux-col{
			width:100%;
		}
		.author .aux-col{
			margin:0;
		}
		.author .aux-row{
			margin:0;
		}
	}
	@media(max-width:320px){
	.author .post .aux-after-content{
		bottom:-45px!important;
	}
	} 
@media only screen  and  (max-width:500px)  {
.single-post .aux-single-post-share .aux-tooltip-socials-wrapper{
transform: translate3d(-77%, -100%, 0);
}
.single-post .aux-tooltip-socials-container .aux-tooltip-socials-wrapper:after{
    left:84%;
}
}	
@media only screen  and  (max-width:1024px) and  (min-width:768px)  {
.single-post .aux-single-post-share .aux-tooltip-socials-wrapper{
    transform: translate3d(-88%,-100%,0)
}
.single-post .aux-tooltip-socials-container .aux-tooltip-socials-wrapper:after{
    left: 91%;
}
}	
	@media only screen  and  (max-width:1600px) and  (min-width:1024px)  {
.single-post .aux-tooltip-socials-container .aux-tooltip-socials-wrapper{
       transform: translate3d(-66%, -100%, 0);
}
.single-post .aux-tooltip-socials-container .aux-tooltip-socials-wrapper:after{
 left: 70%;
}
}
.single-post .entry-meta .wpulike.aux-wpulike-single .wp_ulike_btn{
padding: 0;
}

/* -- Static replacement for the theme's AJAX "load more" list spacing (all items are rendered in the markup) -- */
.widget-container.aux-loadmore-static .aux-ajax-view { margin-bottom: 70px; }

/* -- Menu widgets: hide the burger on desktop (was inline in the header/footer markup) -- */
@media only screen and (min-width: 1025px) { .elementor-element-db62658 .aux-burger-box { display: none } }
@media only screen and (min-width: 1025px) { .elementor-element-c4cb033 .aux-burger-box { display: none } }

/* ==================================================================================================
   Site polish (2026-09): header dropdowns, mobile off-canvas menu, footer navigation, floating
   language switcher, service icons, About page text + team sections. Direction-neutral (logical
   properties), so the same block is appended to css/site.css and css/rtl/site.css.
   ================================================================================================== */
:root { --tfc-blue:#0E47C0; --tfc-navy:#1D2433; --tfc-grey:#566074; --tfc-yellow:#FFDA2B; --tfc-tint:#F1F6F9; --tfc-line:rgba(29,36,51,.09); }

/* -- Header dropdowns: white card centred under the parent item -- */
.aux-elementor-header-menu .aux-master-menu.aux-horizontal .aux-menu-depth-0 > .aux-submenu {
  left:50% !important; right:auto !important; transform:translateX(-50%); top:100%;
  margin:0; padding:16px 0 0; background:transparent; border:0; min-width:250px;
}
.aux-elementor-header-menu .aux-master-menu.aux-horizontal .aux-menu-depth-0 > .aux-submenu::before {
  content:""; position:absolute; inset:16px 0 0 0; z-index:-1; background:#fff; border-radius:14px;
  border:1px solid var(--tfc-line); box-shadow:0 24px 48px -16px rgba(8,20,32,.22), 0 2px 8px rgba(8,20,32,.06);
}
.aux-elementor-header-menu .aux-master-menu.aux-horizontal .aux-menu-depth-0 > .aux-submenu::after {
  content:""; position:absolute; top:10px; left:50%; width:12px; height:12px; z-index:-1; background:#fff;
  border-left:1px solid var(--tfc-line); border-top:1px solid var(--tfc-line); transform:translateX(-50%) rotate(45deg);
}
.aux-elementor-header-menu .aux-master-menu.aux-horizontal .aux-menu-depth-0 > .aux-submenu > .aux-menu-item:first-child { margin-top:8px; }
.aux-elementor-header-menu .aux-master-menu.aux-horizontal .aux-menu-depth-0 > .aux-submenu > .aux-menu-item:last-child { margin-bottom:8px; }
.aux-elementor-header-menu .aux-master-menu.aux-horizontal.aux-skin-classic .aux-menu-depth-0 > .aux-submenu > .aux-menu-item > .aux-item-content {
  padding:11px 16px; margin:2px 8px; min-width:0; border-radius:9px; font-size:15px; line-height:1.4;
  color:var(--tfc-navy) !important; transition:background-color .2s, color .2s;
}
.aux-elementor-header-menu .aux-master-menu.aux-horizontal.aux-skin-classic .aux-menu-depth-0 > .aux-submenu > .aux-menu-item.aux-hover > .aux-item-content,
.aux-elementor-header-menu .aux-master-menu.aux-horizontal.aux-skin-classic .aux-menu-depth-0 > .aux-submenu > .aux-menu-item > .aux-item-content:hover {
  background-color:var(--tfc-tint); color:var(--tfc-blue) !important;
}
.aux-elementor-header-menu .aux-submenu .trp-menu-ls-label { display:inline-flex; align-items:center; gap:10px; }
.aux-elementor-header-menu .aux-submenu .trp-flag-image { border-radius:3px; }

/* -- Mobile off-canvas menu -- */
.aux-offcanvas-menu {
  width:min(340px, 86vw); background:#fff; visibility:hidden;
  transition:transform .45s cubic-bezier(.22,.61,.36,1), box-shadow .45s ease, visibility 0s linear .45s;
}
.aux-offcanvas-menu.aux-open {
  visibility:visible; transition:transform .45s cubic-bezier(.22,.61,.36,1), box-shadow .45s ease, visibility 0s linear 0s;
  box-shadow:0 0 0 100vmax rgba(8,20,32,.5) !important;
}
body.tfc-oc-open, body.tfc-modal-open { overflow:hidden; }
.aux-offcanvas-menu .aux-panel-close { position:absolute; top:16px; inset-inline-end:16px; z-index:2; width:40px; height:40px; border-radius:50%; background:var(--tfc-tint); display:flex; align-items:center; justify-content:center; cursor:pointer; }
.aux-offcanvas-menu .aux-close { float:none !important; margin:0 !important; width:16px !important; height:16px !important; padding:8px 0 0 !important; box-sizing:border-box; position:relative; }
.aux-offcanvas-menu .offcanvas-header { padding:22px 24px 6px; min-height:0; }
.aux-offcanvas-menu .tfc-oc-logo { display:inline-block; }
.aux-offcanvas-menu .tfc-oc-logo img { width:auto; height:40px; display:block; }
.aux-offcanvas-menu .offcanvas-content { height:auto !important; max-height:calc(100vh - 110px); overflow-y:auto; padding:10px 14px 30px; }
.aux-offcanvas-menu .aux-master-menu.aux-narrow > .aux-menu-item { border-bottom:1px solid var(--tfc-line); }
.aux-offcanvas-menu .aux-master-menu.aux-narrow > .aux-menu-item:last-child { border-bottom:0; }
.aux-offcanvas-menu .aux-master-menu.aux-narrow .aux-menu-item > .aux-item-content {
  padding:15px 12px !important; font-size:17px !important; font-weight:500; line-height:1.3 !important;
  color:var(--tfc-navy) !important; border-radius:10px;
}
.aux-offcanvas-menu .aux-master-menu.aux-narrow > .aux-menu-item.current-menu-item > .aux-item-content { color:var(--tfc-blue) !important; font-weight:700; }
.aux-offcanvas-menu .aux-master-menu.aux-narrow .aux-submenu { background:transparent !important; padding:0 !important; }
.aux-offcanvas-menu .aux-master-menu.aux-narrow .aux-submenu > .aux-menu-item > .aux-item-content {
  font-size:15px !important; font-weight:500; padding:11px 14px !important; margin:0 0 4px 14px; border-inline-start:2px solid var(--tfc-tint); border-radius:0 10px 10px 0; color:var(--tfc-grey) !important;
}
html[dir="rtl"] .aux-offcanvas-menu .aux-master-menu.aux-narrow .aux-submenu > .aux-menu-item > .aux-item-content { margin:0 14px 4px 0; border-radius:10px 0 0 10px; }
.aux-offcanvas-menu .aux-master-menu.aux-narrow .aux-submenu > .aux-menu-item:last-child > .aux-item-content { margin-bottom:10px; }
.aux-offcanvas-menu .aux-master-menu.aux-narrow .aux-submenu .trp-menu-ls-label { display:inline-flex; align-items:center; gap:10px; }
.aux-offcanvas-menu .aux-master-menu.aux-narrow .aux-submenu-indicator { inset-inline-end:8px !important; left:auto; }
html[dir="rtl"] .aux-offcanvas-menu .aux-master-menu.aux-narrow .aux-submenu-indicator { right:auto; left:8px !important; }
.aux-offcanvas-menu .aux-master-menu.aux-narrow .aux-submenu-indicator::before,
.aux-offcanvas-menu .aux-master-menu.aux-narrow .aux-submenu-indicator::after { background-color:var(--tfc-blue); height:2px; border-radius:2px; }

/* -- The floating switcher and chat button sit in the bottom corners: keep the footer copyright line clear of them
      (it is left-aligned under the switcher in LTR and right-aligned under the chat button in RTL) -- */
footer.aux-elementor-footer { padding-bottom:72px; }

/* -- Service icons in the portfolio grids -- */
.aux-widget-recent-portfolios .aux-media-frame { text-align:center; }
.aux-widget-recent-portfolios .aux-media-frame img.tfc-service-icon { width:100%; max-width:220px; height:auto; margin:0 auto; display:block; transition:transform .3s ease; }
/* the icon files are bare glyphs; the tinted rounded tile is drawn here so it follows the shape everywhere */
img.tfc-service-icon { background:#EEF3FC; border-radius:24%; }
/* on hover (or keyboard focus) the icon grows 5% in place. It used to rise 6px, and on the home page its frame clipped it, so
   the top edge was cut flat and the bottom looked 6px short; the frame no longer clips (the icon draws its own rounded
   corners), so the zoom shows whole */
.aux-widget-recent-portfolios .aux-media-frame.aux-media-image { overflow:visible; }
/* the home grid (animated layout) also clipped the icons along its edges below 1025px; its tiles never leave it, during
   the load and resize animations included */
.aux-widget-recent-portfolios .aux-portfolio-columns.aux-isotope-animated { overflow:visible; }
.aux-widget-recent-portfolios .aux-iso-item:hover img.tfc-service-icon, .aux-widget-recent-portfolios .aux-iso-item:focus-within img.tfc-service-icon { transform:scale(1.05); }
@media (prefers-reduced-motion:reduce) { .aux-widget-recent-portfolios .aux-media-frame img.tfc-service-icon { transition:none; } }

/* -- About page: text section -- */
.tfc-about { max-width:1100px; margin:0 auto; font-size:17px; line-height:1.7; color:var(--tfc-grey); text-align:start; }
.tfc-about h2, .tfc-about h3 { color:var(--tfc-navy); margin:0 0 12px; line-height:1.2; }
.tfc-about p { margin:0 0 12px; }
.tfc-about p:last-child { margin-bottom:0; }
.tfc-about strong { color:var(--tfc-navy); }
.tfc-about .tfc-icon { width:56px; height:56px; border-radius:16px; background:var(--tfc-tint); color:var(--tfc-blue); display:flex; align-items:center; justify-content:center; margin-bottom:18px; flex:none; }
.tfc-about .tfc-icon svg { width:28px; height:28px; fill:none; stroke:currentColor; stroke-width:2; stroke-linecap:round; stroke-linejoin:round; }
.tfc-about-intro { text-align:center; max-width:780px; margin:0 auto 56px; }
.tfc-eyebrow { display:inline-block; font-size:13px; font-weight:700; letter-spacing:.12em; text-transform:uppercase; color:var(--tfc-blue); background:var(--tfc-tint); padding:8px 16px; border-radius:999px; margin-bottom:20px; }
html[dir="rtl"] .tfc-eyebrow { letter-spacing:0; }
.tfc-about-intro h2 { font-size:clamp(30px, 4vw, 44px); margin-bottom:16px; }
.tfc-lead { font-size:19px; }
.tfc-about-mission { display:grid; grid-template-columns:auto 1fr; gap:24px 32px; align-items:start; background:var(--tfc-blue); color:rgba(255,255,255,.86); border-radius:24px; padding:44px 48px; margin-bottom:24px; }
.tfc-about-mission .tfc-icon { background:rgba(255,255,255,.14); color:#fff; margin:0; }
.tfc-about-mission h3 { color:#fff; font-size:20px; opacity:.9; }
.tfc-about-mission .tfc-statement { font-size:clamp(22px, 2.6vw, 30px); font-weight:600; line-height:1.3; color:#fff; margin-bottom:16px; }
.tfc-about-mission strong { color:#fff; }
.tfc-about-grid { display:grid; grid-template-columns:repeat(2, 1fr); gap:24px; margin-bottom:24px; }
.tfc-card { background:#fff; border:1px solid var(--tfc-line); border-radius:20px; padding:34px; box-shadow:0 1px 2px rgba(8,20,32,.04); }
.tfc-card h3 { font-size:22px; }
.tfc-card .tfc-sub { color:var(--tfc-navy); font-weight:600; }
.tfc-list { list-style:none; margin:0; padding:0; display:grid; gap:14px; }
.tfc-list li { display:grid; grid-template-columns:22px 1fr; gap:12px; align-items:start; }
.tfc-list li::before { content:""; width:22px; height:22px; margin-top:3px; border-radius:50%; background:var(--tfc-yellow) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%231D2433' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12l5 5L20 7'/%3E%3C/svg%3E") center/12px no-repeat; }
.tfc-list li > strong, .tfc-list li > span { grid-column:2; }
.tfc-list li::before { grid-column:1; grid-row:1; }
.tfc-list strong { display:block; }
.tfc-about-why { background:var(--tfc-tint); border-radius:24px; padding:44px 48px; margin-bottom:24px; text-align:center; }
.tfc-about-why .tfc-icon { margin:0 auto 18px; background:#fff; }
.tfc-about-why > h2 { font-size:clamp(26px, 3vw, 34px); margin-bottom:28px; }
.tfc-why-grid { list-style:none; margin:0; padding:0; display:grid; grid-template-columns:repeat(3, 1fr); gap:16px; text-align:start; }
.tfc-why-grid li { background:#fff; border-radius:16px; padding:22px 24px; font-size:15px; line-height:1.6; }
.tfc-why-grid strong { display:block; font-size:17px; margin-bottom:6px; }
.tfc-about-final { text-align:center; max-width:760px; margin:0 auto; padding-top:32px; }
.tfc-about-final .tfc-icon { margin:0 auto 18px; background:var(--tfc-yellow); color:var(--tfc-navy); }
.tfc-tagline { font-size:22px; font-weight:600; color:var(--tfc-blue); font-style:normal; margin-top:18px; }
.tfc-tagline em, .tfc-tagline strong { font-style:normal; color:inherit; }
@media (max-width:900px) {
  .tfc-about { font-size:16px; }
  .tfc-about-grid, .tfc-why-grid { grid-template-columns:1fr; }
  .tfc-about-mission { grid-template-columns:1fr; padding:32px 26px; }
  .tfc-card, .tfc-about-why { padding:26px 22px; }
  .tfc-about-intro { margin-bottom:36px; }
}

/* -- About page: team grid on phones (photos are container backgrounds; names were hover-only) -- */
@media (max-width:767px) {
  .elementor-174 .elementor-element.elementor-element-741eadf > .e-con-inner { display:grid !important; grid-template-columns:1fr 1fr; gap:14px; }
  .elementor-174 .elementor-element-741eadf .staff-box {
    width:100% !important; max-width:none !important; margin:0 !important; min-height:0 !important; height:auto !important;
    aspect-ratio:4 / 5; border-radius:16px; overflow:hidden; position:relative; justify-content:flex-end !important;
    background-size:cover !important; background-position:top center !important;
  }
  .elementor-174 .elementor-element-741eadf .staff-box .elementor-motion-effects-layer { background-size:cover !important; background-position:top center !important; }
  .elementor-174 .elementor-element-741eadf .staff-box .elementor-widget-spacer { display:none; }
  .elementor-174 .elementor-element-741eadf .staff-box .elementor-widget-aux_staff { position:static !important; left:auto !important; right:auto !important; bottom:auto !important; width:100% !important; margin:0 !important; z-index:1; }
  .elementor-174 .elementor-element-741eadf .staff-box .aux-widget-staff { opacity:1 !important; padding:48px 12px 12px; background:linear-gradient(180deg, rgba(8,20,32,0) 0%, rgba(8,20,32,.88) 100%); }
  .elementor-174 .elementor-element-741eadf .staff-box .aux-widget-staff .col-title { color:#fff; font-size:15px; margin:0 0 2px; }
  .elementor-174 .elementor-element-741eadf .staff-box .aux-widget-staff .col-subtitle { color:rgba(255,255,255,.82); font-size:12px !important; }
  .elementor-174 .elementor-element-741eadf .staff-box .aux-widget-staff .aux-staff-footer { padding:0 !important; }
  .elementor-174 .elementor-element-741eadf .staff-box .aux-widget-staff .aux-social-list a { color:#fff; }
}
/* -- Service detail pages: the featured image is now an icon tile, keep it a modest centred block in the hero -- */
.single-portfolio .entry-media img.tfc-service-icon { width:100%; max-width:300px; height:auto; display:block; margin:0 auto; border-radius:24%; box-shadow:0 30px 60px -24px rgba(14,71,192,.35); }
.aux-next-prev-posts .np-arrow img.tfc-service-icon { border-radius:22%; }
.single-portfolio .entry-media .aux-media-frame, .single-portfolio .entry-media .aux-media-image { text-align:center; }
@media (max-width:767px) { .single-portfolio .entry-media img.tfc-service-icon { max-width:200px; } }
/* -- Property Selling page: the live site gives this text widget a fixed 1050px width with no phone override -- */
@media (max-width:1024px) { .elementor-159 .elementor-element.elementor-element-e5fa205 { width:100% !important; max-width:100% !important; --container-widget-width:100%; } }

/* ==================================================================================================
   Brand + navigation (2026-09): SVG wordmarks sized by height, one link style for the header and
   footer menus, header column widths, mobile panel. Direction-neutral, mirrored to css/rtl/site.css.
   ================================================================================================== */
/* -- Header logo: the wordmark is an SVG now, size it by height and centre it on the menu row -- */
.aux-logo-header .aux-logo-anchor { max-width:none; }
.aux-logo-header .aux-logo-anchor > img { max-height:none; }
.elementor-149 .elementor-element.elementor-element-c5cbf15 { --padding-top:26px; --padding-bottom:26px; }
.elementor-149 .elementor-element.elementor-element-da7e8c6 > .elementor-widget-container { margin:0; }
.elementor-149 .elementor-element.elementor-element-da7e8c6 .aux-has-logo img { width:auto; height:72px; }
.elementor-149 .elementor-element.elementor-element-c6b0686 { max-height:none; --spacer-size:34px; --container-widget-align-self:center; align-self:center; }
.elementor-149 .elementor-element.elementor-element-c6b0686 > .elementor-widget-container { margin:0; margin-inline:22px 8px; border-color:var(--tfc-line); border-width:0; border-inline-start-width:2px; }
/* the second header column only holds an empty icon list: give the logo + menu the whole row (audit item 1) */
@media (min-width:768px) {
  .elementor-149 .elementor-element.elementor-element-2892399 { --width:100%; }
  .elementor-149 .elementor-element.elementor-element-59aeaa8 { display:none; }
}
/* -- Header links (desktop menu only; the phone panel has its own styles above) -- */
.aux-elementor-header-menu .aux-master-menu.aux-horizontal > .aux-menu-depth-0 { margin:0; margin-inline-end:32px; }
.aux-elementor-header-menu .aux-master-menu.aux-horizontal > .aux-menu-depth-0:last-child { margin-inline-end:0; }
.aux-elementor-header-menu .aux-master-menu.aux-horizontal > .aux-menu-depth-0 > .aux-item-content {
  position:relative; display:inline-flex; align-items:center; padding:8px 0 !important;
  font-size:15px; font-weight:500; letter-spacing:.01em; line-height:1.3; color:var(--tfc-grey);
  transition:color .2s ease;
}
.aux-elementor-header-menu .aux-master-menu.aux-horizontal > .aux-menu-depth-0 > .aux-item-content::after {
  content:""; position:absolute; inset-inline:0; bottom:0; height:2px; border-radius:2px; background:var(--tfc-blue);
  transform:scaleX(0); transition:transform .25s ease;
}
.aux-elementor-header-menu .aux-master-menu.aux-horizontal > .aux-menu-depth-0.aux-hover > .aux-item-content,
.aux-elementor-header-menu .aux-master-menu.aux-horizontal > .aux-menu-depth-0 > .aux-item-content:hover { color:var(--tfc-blue); }
.aux-elementor-header-menu .aux-master-menu.aux-horizontal > .aux-menu-depth-0.aux-hover > .aux-item-content::after,
.aux-elementor-header-menu .aux-master-menu.aux-horizontal > .aux-menu-depth-0 > .aux-item-content:hover::after { transform:scaleX(1); }
.aux-elementor-header-menu .aux-master-menu.aux-horizontal > .aux-menu-depth-0.current-menu-item > .aux-item-content,
.aux-elementor-header-menu .aux-master-menu.aux-horizontal > .aux-menu-depth-0.current-menu-ancestor > .aux-item-content { color:var(--tfc-navy); font-weight:700; }
.aux-elementor-header-menu .aux-master-menu.aux-horizontal > .aux-menu-depth-0.current-menu-item > .aux-item-content::after,
.aux-elementor-header-menu .aux-master-menu.aux-horizontal > .aux-menu-depth-0.current-menu-ancestor > .aux-item-content::after { transform:scaleX(1); }
.aux-master-menu .aux-item-content:focus-visible { outline:2px solid var(--tfc-blue); outline-offset:4px; border-radius:4px; }
.aux-elementor-header-menu .aux-master-menu.aux-horizontal.aux-with-indicator > .aux-menu-item > .aux-item-content > .aux-submenu-indicator {
  margin:0; margin-inline-start:7px; top:0; opacity:.75; transition:transform .25s ease, opacity .2s ease;
}
.aux-elementor-header-menu .aux-master-menu.aux-horizontal.aux-with-indicator > .aux-menu-item.aux-hover > .aux-item-content > .aux-submenu-indicator,
.aux-elementor-header-menu .aux-master-menu.aux-horizontal.aux-with-indicator > .aux-menu-item > .aux-item-content:hover > .aux-submenu-indicator { transform:rotate(180deg); opacity:1; }
/* -- Footer logo + divider: same treatment as the header -- */
.aux-logo-footer .aux-logo-anchor img { max-height:none; }
/* -- Tablet + phone header: logo left, burger at the far edge -- */
@media (max-width:1024px) {
  .elementor-149 .elementor-element.elementor-element-c5cbf15 { --padding-top:18px; --padding-bottom:18px; }
  .elementor-149 .elementor-element.elementor-element-2892399 { --justify-content:space-between; }
  .elementor-149 .elementor-element.elementor-element-da7e8c6 .aux-has-logo img { height:52px; } /* 58px until round 26 */
  .elementor-149 .elementor-element.elementor-element-db62658 > .elementor-widget-container { margin:0; padding:0; }
}
@media (max-width:767px) {
  /* the live footer left 80px under the menu for the tall logo image; the SVG logo needs far less */
}
@media (max-width:480px) {
  .elementor-149 .elementor-element.elementor-element-da7e8c6 .aux-has-logo img { height:46px; }
}

/* ==================================================================================================
   Homepage (2026-09): video modal, phone process lines, testimonial avatars. Mirrored to css/rtl/site.css.
   ================================================================================================== */
/* -- Video modal -- */
/* up to 1200px wide (960px until round 26), 32px from the window sides on desktop, and never taller than the window
   less 140px, which leaves room for the close button above the video */
.tfc-video { width:min(1200px, calc(100vw - 32px), calc((100vh - 140px) * 16 / 9)); width:min(1200px, calc(100vw - 32px), calc((100dvh - 140px) * 16 / 9)); max-width:none; max-height:none; padding:0; border:0; background:transparent; overflow:visible; color:inherit; }
@media (min-width:1025px) { .tfc-video { width:min(1200px, calc(100vw - 64px), calc((100vh - 140px) * 16 / 9)); width:min(1200px, calc(100vw - 64px), calc((100dvh - 140px) * 16 / 9)); } }
.tfc-video::backdrop { background:rgba(8,20,32,.84); }
.tfc-video-frame { aspect-ratio:16 / 9; width:100%; background:#000; border-radius:18px; overflow:hidden; box-shadow:0 40px 80px -30px rgba(0,0,0,.7); }
.tfc-video-frame iframe { display:block; width:100%; height:100%; border:0; }
.tfc-video-close { position:absolute; top:-54px; inset-inline-end:0; width:44px; height:44px; padding:0; border-radius:50%; border:0; background:#fff; color:var(--tfc-navy); cursor:pointer; transition:background-color .2s, transform .2s; }
.tfc-video-close::before, .tfc-video-close::after { content:""; position:absolute; top:50%; left:50%; width:18px; height:2px; margin:-1px 0 0 -9px; border-radius:2px; background:currentColor; transform:rotate(45deg); }
.tfc-video-close::after { transform:rotate(-45deg); }
.tfc-video-close:hover { background:var(--tfc-yellow); transform:scale(1.06); }
.tfc-video-close:focus-visible { outline:2px solid var(--tfc-yellow); outline-offset:3px; }
@media (max-width:767px) { .tfc-video-frame { border-radius:12px; } .tfc-video-close { width:40px; height:40px; top:-50px; } }
/* -- Phone process steps: no wave line (it only ever reached step 1); number badges skip the entrance animation so they never stall pale -- */
@media (max-width:767px) {
  .elementor-175 .elementor-element.elementor-element-2e1e9bd:not(.elementor-motion-effects-element-type-background) { background-image:none; }
  .elementor-175 .elementor-element-2e1e9bd .list-box .elementor-widget-aux_icon_list.aux-appear-watch-animation { animation:none !important; opacity:1 !important; transform:none !important; }
}
/* -- Testimonial avatars (SVG initials) -- */
.elementor-testimonial-image img { border-radius:50% !important; }

/* ==================================================================================================
   About + Contact pages (2026-09). Mirrored to css/rtl/site.css.
   ================================================================================================== */
/* -- About: full container width, the site's own visual language (blue label, big headings, tinted cards, yellow markers) -- */
.tfc-about { max-width:none; }
.tfc-about .tfc-icon { display:none; }
.tfc-eyebrow, .tfc-label { display:block; background:none; padding:0; border-radius:0; font-size:14px; font-weight:700; letter-spacing:.14em; text-transform:uppercase; color:var(--tfc-blue); margin-bottom:14px; }
html[dir="rtl"] .tfc-eyebrow, html[dir="rtl"] .tfc-label { letter-spacing:0; }
.tfc-about-intro { max-width:820px; margin-bottom:64px; }
.tfc-about-intro h2 { font-size:clamp(34px, 4.2vw, 52px); letter-spacing:-.02em; line-height:1.12; }
.tfc-lead { font-size:19px; line-height:1.65; }
.tfc-about-mission { grid-template-columns:minmax(0,5fr) minmax(0,7fr); grid-template-rows:auto auto; gap:12px 72px; align-items:center; padding:56px 64px; margin-bottom:32px; position:relative; overflow:hidden; }
.tfc-about-mission::after { content:""; position:absolute; inset-inline-end:-140px; top:-160px; width:420px; height:420px; border-radius:50%; background:rgba(255,255,255,.07); pointer-events:none; }
.tfc-about-mission > div { display:contents; }
.tfc-about-mission h3 { grid-column:1; grid-row:1; align-self:end; font-size:14px; font-weight:700; letter-spacing:.14em; text-transform:uppercase; color:rgba(255,255,255,.72); opacity:1; margin:0; }
html[dir="rtl"] .tfc-about-mission h3 { letter-spacing:0; }
.tfc-about-mission .tfc-statement { grid-column:1; grid-row:2; align-self:start; font-size:clamp(26px, 2.8vw, 36px); font-weight:700; letter-spacing:-.02em; line-height:1.2; margin:0; }
.tfc-about-mission > div > p:not(.tfc-statement) { grid-column:2; grid-row:1 / 3; align-self:center; font-size:17px; line-height:1.75; margin:0; position:relative; }
.tfc-about-grid { gap:28px; margin-bottom:32px; }
.tfc-card { background:var(--tfc-tint); border:0; box-shadow:none; border-radius:24px; padding:44px 46px; }
.tfc-card h3 { font-size:24px; letter-spacing:-.01em; margin-bottom:16px; padding-top:18px; position:relative; }
.tfc-card h3::before, .tfc-why-grid strong::before { content:""; position:absolute; top:0; inset-inline-start:0; width:40px; height:4px; border-radius:2px; background:var(--tfc-yellow); }
.tfc-card .tfc-sub { font-size:17px; }
.tfc-list { gap:16px; }
.tfc-about-why { background:none; border-radius:0; padding:28px 0 0; margin-bottom:64px; }
.tfc-about-why > h2 { font-size:clamp(30px, 3.4vw, 42px); letter-spacing:-.02em; margin-bottom:36px; }
.tfc-why-grid { gap:24px; }
.tfc-why-grid li { background:var(--tfc-tint); border-radius:20px; padding:30px 30px 32px; font-size:15.5px; }
.tfc-about .tfc-why-grid > li, .tfc-about .tfc-list > li { list-style:none !important; }
.tfc-why-grid strong { position:relative; font-size:18px; margin-bottom:8px; padding-top:16px; }
.tfc-why-grid strong::before { width:32px; }
.tfc-about-final { max-width:820px; padding-top:0; }
.tfc-about-final::before { content:""; display:block; width:66px; height:3px; margin:0 auto 26px; border-radius:2px; background:var(--tfc-blue); }
.tfc-about-final > h2 { font-size:clamp(28px, 3vw, 36px); letter-spacing:-.02em; margin-bottom:18px; }
.tfc-about-final p { font-size:18px; }
.tfc-tagline { font-size:26px; font-weight:700; letter-spacing:-.01em; margin-top:20px; }
@media (max-width:900px) {
  .tfc-about-intro { margin-bottom:40px; }
  .tfc-about-mission { grid-template-columns:1fr; grid-template-rows:auto; gap:10px; padding:36px 28px; }
  .tfc-about-mission h3, .tfc-about-mission .tfc-statement, .tfc-about-mission > div > p:not(.tfc-statement) { grid-column:1; grid-row:auto; }
  .tfc-about-mission > div > p:not(.tfc-statement) { margin-top:8px; }
  .tfc-card { padding:30px 26px; border-radius:20px; }
  .tfc-why-grid li { padding:24px 22px; }
  .tfc-about-why { margin-bottom:44px; }
}
/* -- Contact page -- */
.tfc-contact-con { --display:flex; --flex-direction:column; --padding-top:10px; --padding-bottom:100px; --padding-left:35px; --padding-right:35px; }
.tfc-contact-con > .e-con-inner { display:block; width:100%; }
.tfc-contact-head { max-width:760px; margin:0 auto 48px; text-align:center; }
.tfc-contact-head h1 { font-size:clamp(34px, 4.2vw, 52px); letter-spacing:-.02em; line-height:1.12; color:var(--tfc-navy); margin:0 0 16px; }
.tfc-contact-head p { font-size:18px; line-height:1.65; color:var(--tfc-grey); margin:0; }
.tfc-contact-grid { display:grid; grid-template-columns:minmax(0,5fr) minmax(0,7fr); grid-template-rows:auto minmax(320px,1fr); grid-template-areas:"cards form" "map form"; gap:24px 32px; align-items:stretch; }
.tfc-contact-cards { grid-area:cards; }
.tfc-contact-form { grid-area:form; }
.tfc-contact-map { grid-area:map; }
.tfc-contact-cards { display:grid; gap:16px; align-content:start; }
.tfc-contact-card { display:grid; grid-template-columns:56px minmax(0,1fr); gap:4px 20px; align-items:center; padding:26px 28px; border-radius:20px; background:var(--tfc-tint); color:var(--tfc-navy); text-decoration:none; transition:transform .25s ease, box-shadow .25s ease; }
.tfc-contact-card:hover, .tfc-contact-card:focus-visible { transform:translateY(-3px); box-shadow:0 24px 40px -24px rgba(14,71,192,.4); color:var(--tfc-navy); }
.tfc-contact-card:focus-visible { outline:2px solid var(--tfc-blue); outline-offset:3px; }
.tfc-contact-icon { grid-row:1 / 3; width:56px; height:56px; border-radius:16px; background:#fff; color:var(--tfc-blue); display:flex; align-items:center; justify-content:center; }
.tfc-contact-icon svg { width:26px; height:26px; fill:none; stroke:currentColor; stroke-width:2; stroke-linecap:round; stroke-linejoin:round; }
.tfc-contact-label { font-size:12.5px; font-weight:700; letter-spacing:.1em; text-transform:uppercase; color:var(--tfc-grey); }
html[dir="rtl"] .tfc-contact-label { letter-spacing:0; }
.tfc-contact-value { font-size:18px; font-weight:600; line-height:1.4; overflow-wrap:anywhere; }
.tfc-contact-phone .tfc-contact-value, .tfc-contact-email .tfc-contact-value { direction:ltr; unicode-bidi:isolate; text-align:start; }
.tfc-contact-form { background:#fff; border:1px solid var(--tfc-line); border-radius:24px; padding:40px 44px 44px; box-shadow:0 30px 60px -44px rgba(8,20,32,.3); }
.tfc-contact-form h2 { font-size:26px; letter-spacing:-.01em; color:var(--tfc-navy); margin:0 0 22px; }
.tfc-contact-form .wpcf7 p { margin:0 0 18px; }
.tfc-contact-form .wpcf7 br { display:none; }
.tfc-contact-form label { display:block; font-size:14px; font-weight:600; color:var(--tfc-navy); margin:0 !important; max-width:none !important; }
.tfc-contact-form .wpcf7-form-control-wrap { display:block; margin-top:8px; }
.tfc-contact-form input[type="text"], .tfc-contact-form input[type="email"], .tfc-contact-form textarea {
  display:block; width:100%; box-sizing:border-box; height:52px; padding:0 16px; margin:0; border:1px solid var(--tfc-line); border-radius:12px;
  background:var(--tfc-tint); color:var(--tfc-navy); font:inherit; font-size:15px; line-height:1.4; box-shadow:none;
  transition:border-color .2s, box-shadow .2s, background-color .2s;
}
.tfc-contact-form textarea { height:auto; min-height:150px; padding:14px 16px; resize:vertical; }
.tfc-contact-form input:focus, .tfc-contact-form textarea:focus { outline:0; border-color:var(--tfc-blue); background:#fff; box-shadow:0 0 0 4px rgba(14,71,192,.12); }
.tfc-contact-form input:user-invalid, .tfc-contact-form textarea:user-invalid { border-color:#D64545; }
.tfc-contact-form .wpcf7-submit {
  display:inline-flex; align-items:center; justify-content:center; width:auto; float:none !important; margin:6px 0 0 !important; height:54px; padding:0 40px;
  border:0; border-radius:30px; background:var(--tfc-blue); color:#fff; font:inherit; font-size:16px; font-weight:700; cursor:pointer;
  box-shadow:0 18px 30px -14px rgba(14,71,192,.6); transition:background-color .2s, transform .2s, box-shadow .2s;
}
.tfc-contact-form .wpcf7-submit:hover { background:var(--tfc-navy); transform:translateY(-2px); }
.tfc-contact-form .wpcf7-submit:focus-visible { outline:2px solid var(--tfc-blue); outline-offset:3px; }
.tfc-contact-form .wpcf7-spinner, .tfc-contact-form .wpcf7-response-output, .tfc-contact-form .screen-reader-response { display:none; }
.tfc-contact-map { position:relative; border-radius:24px; overflow:hidden; background:var(--tfc-tint); min-height:320px; }
.tfc-contact-map iframe { position:absolute; inset:0; display:block; width:100%; height:100%; border:0; }
.tfc-map-card { position:absolute; inset-inline-start:20px; bottom:20px; max-width:300px; display:grid; gap:4px; padding:18px 20px; border-radius:16px; background:#fff; color:var(--tfc-navy); text-decoration:none; box-shadow:0 20px 40px -20px rgba(8,20,32,.4); }
.tfc-map-card:hover { color:var(--tfc-navy); }
.tfc-map-card strong { font-size:16px; }
.tfc-map-card span { font-size:14px; line-height:1.5; color:var(--tfc-grey); }
.tfc-map-card .tfc-map-link { color:var(--tfc-blue); font-weight:700; margin-top:4px; }
.tfc-map-card:hover .tfc-map-link { text-decoration:underline; }
@media (max-width:1024px) {
  .tfc-contact-grid { grid-template-columns:1fr; grid-template-rows:auto auto auto; grid-template-areas:"cards" "form" "map"; }
  .tfc-contact-map { min-height:400px; }
  .tfc-contact-cards { grid-template-columns:repeat(3, minmax(0,1fr)); }
  .tfc-contact-card { grid-template-columns:1fr; gap:12px 0; padding:22px; align-content:start; }
  .tfc-contact-icon { grid-row:auto; margin-bottom:4px; }
  .tfc-contact-value { font-size:16px; }
}
@media (max-width:767px) {
  .tfc-contact-con { --padding-bottom:70px; }
  .tfc-contact-head { margin-bottom:32px; text-align:start; }
  .tfc-contact-cards { grid-template-columns:1fr; gap:12px; }
  .tfc-contact-card { grid-template-columns:52px minmax(0,1fr); gap:2px 16px; padding:18px 20px; }
  .tfc-contact-icon { grid-row:1 / 3; width:52px; height:52px; margin:0; }
  .tfc-contact-form { padding:26px 20px 28px; border-radius:20px; }
  .tfc-contact-form .wpcf7-submit { width:100%; }
  .tfc-contact-map { border-radius:20px; }
  .tfc-contact-map { min-height:0; }
  .tfc-contact-map iframe { position:static; height:320px; }
  .tfc-map-card { position:static; max-width:none; border-radius:0; box-shadow:none; padding:16px 20px 18px; }
}

/* ==================================================================================================
   Audit fixes (2026-09): floating widgets, services tablet overlap, archive excerpts, home post image.
   ================================================================================================== */
/* go-to-top arrow shared the bottom corner with the chat button */
.aux-goto-top-btn { bottom:110px !important; }
/* Arabic phones/tablets: the floating language switcher sat on the chat button (stylesheet beats its inline custom properties) */
@media (max-width:1024px) { html[dir="rtl"] .trp-floating-switcher { --right:25px !important; --bottom:105px !important; } }
/* Services page 768–1024: Elementor's tablet margin tucked the removed filter bar beside the heading and pulled the grid over it */
@media (min-width:768px) and (max-width:1024px) { .elementor-153 .elementor-element.elementor-element-f7cc036 > .elementor-widget-container { margin-top:0; } }
/* Category archive: cards are a fixed height with an absolutely positioned footer; clamp the excerpt like the author archive */
.category .entry-content { display:-webkit-box; -webkit-box-orient:vertical; -webkit-line-clamp:4; overflow:hidden; }
.author .entry-content { -webkit-box-orient:vertical; }
/* Home "Latest Posts": the first card forces a fixed image height; keep the photo's proportions */
.elementor-175 .elementor-element.elementor-element-a9cf1c6 .aux-media-frame img { object-fit:cover; }

/* -- Static.app hosting badge (free plan) is injected at the bottom-left corner on the live site; lift the
      floating language switcher above it so the two never overlap (LTR pages, where the switcher is bottom-left) -- */
html:not([dir="rtl"]) body:has(> a[href^="https://static.app/"]) .trp-floating-switcher { --bottom:74px !important; }

/* ===== Polish batch 1 (2026-09-11): labels, heading scale, colours, buttons, focus, team captions ===== */
/* 1. Custom eyebrow labels follow the theme's label (20px bold, 1px tracking, sentence case) */
.tfc-eyebrow, .tfc-label { font-size:clamp(17px, 1.5vw, 20px); font-weight:700; letter-spacing:1px; text-transform:none; line-height:1.3; margin-bottom:14px; }
.tfc-about-mission h3 { font-size:clamp(17px, 1.5vw, 20px); font-weight:700; letter-spacing:1px; text-transform:none; color:rgba(255,255,255,.8); }
html[dir="rtl"] .tfc-eyebrow, html[dir="rtl"] .tfc-label, html[dir="rtl"] .tfc-about-mission h3 { letter-spacing:0; }
/* 4. Custom section titles on the theme scale (50/700, tight tracking); one shared sub-size on About */
.tfc-about-intro h2, .tfc-contact-head h1, .elementor-153 .elementor-element.elementor-element-bd46819 h1.elementor-heading-title { font-size:clamp(34px, 3.7vw, 50px); font-weight:700; letter-spacing:-.03em; line-height:1.1; }
.tfc-about-why > h2, .tfc-about-final > h2 { font-size:clamp(28px, 3vw, 40px); font-weight:700; letter-spacing:-.03em; line-height:1.15; }
.tfc-about-why::before { content:""; display:block; width:66px; height:3px; margin:0 auto 26px; border-radius:2px; background:var(--tfc-blue); }
/* 5. One navy for titles that were still the theme's neutral grey */
.aux-widget-recent-portfolios .entry-title, .aux-widget-recent-portfolios .entry-title a,
.aux-widget-recent-posts article.no-media .entry-title a, .category .entry-title a, .author .entry-title a,
.aux-next-prev-posts .np-title { color:var(--tfc-navy); }
/* 3. Brand blue instead of the theme's default cyan on hover / prev-next links */
.aux-widget-recent-portfolios .entry-title a:hover, .aux-widget-recent-portfolios .aux-iso-item:hover .entry-title a,
.elementor-153 .elementor-element.elementor-element-f7cc036 .aux-iso-item:hover .entry-title a, .aux-widget-recent-posts article.no-media .entry-title a:hover,
.category .entry-title a:hover, .author .entry-title a:hover, .aux-next-prev-posts .np-title:hover,
.aux-next-prev-posts a, .aux-next-prev-posts a:hover, .aux-next-prev-posts a .np-arrow { color:var(--tfc-blue) !important; }
/* 6. Submit buttons and the second Read More use the site's primary pill (Quicksand 16/700, title case) */
.aux-widget-recent-posts .aux-read-more { font-weight:700; }
.single-post #commentform input[type="submit"] {
  width:auto !important; height:auto !important; padding:14px 45px !important; border-radius:30px;
  font-family:"Quicksand", sans-serif; font-size:16px; line-height:24px; font-weight:700 !important; text-transform:none;
  background:var(--tfc-blue); color:#fff; box-shadow:-15px 20px 40px rgba(14,71,192,.3); transition:background-color .2s, color .2s;
}
.single-post #commentform input[type="submit"]:hover { background:var(--tfc-yellow); color:var(--tfc-navy); }
.tfc-contact-form .wpcf7 .wpcf7-submit { height:52px; padding:0 45px; line-height:24px; text-transform:none; box-shadow:-15px 20px 40px rgba(14,71,192,.3); }
.tfc-contact-form .wpcf7-submit:hover { background:var(--tfc-yellow); color:var(--tfc-navy); transform:none; }
/* 7. Keyboard focus ring on every pill button (nav links already have one); pills get a white-gap ring so it reads on the blue band too */
.aux-read-more:focus-visible, .readmore:has(> a:focus-visible), .tfc-map-card a:focus-visible, .aux-goto-top-btn:focus-visible { outline:2px solid var(--tfc-blue); outline-offset:3px; }
.elementor-button:focus-visible, input[type="submit"]:focus-visible { outline:none !important; box-shadow:0 0 0 3px #fff, 0 0 0 5px var(--tfc-blue) !important; }
.tfc-contact-form .wpcf7 .wpcf7-submit:focus, .single-post #commentform input[type="submit"]:focus { background:var(--tfc-blue); color:#fff; }
.tfc-contact-form .wpcf7 .wpcf7-submit:hover, .single-post #commentform input[type="submit"]:hover { background:var(--tfc-yellow); color:var(--tfc-navy); }
/* 2. Team grid on desktop: captions always readable (white on a gradient over the photo), hover lift kept */
@media (min-width:768px) {
  .elementor-174 .elementor-element-741eadf .staff-box::after {
    content:""; position:absolute; left:0; width:100%; top:50%; transform:translateY(-50%); aspect-ratio:1838 / 2560; pointer-events:none; z-index:0;
    background:linear-gradient(180deg, rgba(8,20,32,0) 45%, rgba(8,20,32,.86) 100%);
  }
  /* caption anchored to the photo's bottom edge: the photo is centred in the box and its height is 2560/1838 of the box width, so 50% + 69.64% (margin-top % = box width) lands on that edge at any width */
  .elementor-174 .elementor-element-741eadf .staff-box .elementor-widget-aux_staff { left:26px !important; right:auto !important; top:50% !important; bottom:auto !important; margin:calc(69.64% - 14px) 0 0 !important; transform:translateY(-100%) !important; width:calc(100% - 52px) !important; z-index:1; }
  .elementor-174 .elementor-element-741eadf .staff-box .aux-widget-staff { opacity:1 !important; }
  .elementor-174 .elementor-element-741eadf .staff-box .aux-widget-staff .col-title { color:#fff; font-size:18px; line-height:1.25; margin:0 0 4px; }
  .elementor-174 .elementor-element-741eadf .staff-box .aux-widget-staff .col-subtitle { color:rgba(255,255,255,.82); font-size:14px !important; line-height:1.35; }
  .elementor-174 .elementor-element-741eadf .staff-box .aux-widget-staff .aux-social-list a { color:#fff; }
}
@media (min-width:768px) and (max-width:1024px) {
  .elementor-174 .elementor-element-741eadf .staff-box::after { background:linear-gradient(180deg, rgba(8,20,32,0) 25%, rgba(8,20,32,.86) 100%); }
  .elementor-174 .elementor-element-741eadf .staff-box .elementor-widget-aux_staff { left:14px !important; right:auto !important; width:calc(100% - 28px) !important; }
  .elementor-174 .elementor-element-741eadf .staff-box .aux-widget-staff .col-title { font-size:14px; line-height:1.2; margin:0 0 2px; }
  .elementor-174 .elementor-element-741eadf .staff-box .aux-widget-staff .col-subtitle { font-size:11px !important; line-height:1.3; }
  .elementor-174 .elementor-element-741eadf .staff-box .aux-widget-staff .aux-staff-footer { padding:0 !important; margin-top:6px; }
}

/* ===== Polish batch 2 (2026-09-11): archive cards + page titles, footer spacing, phone tweaks, dead post UI ===== */
/* 9. Category / author archives reuse the blog page card */
.category .aux-row, .author .aux-row { display:flex; flex-wrap:wrap; align-items:stretch; margin:0 -20px !important; padding:0 !important; }
.category .aux-primary, .author .aux-primary { padding-left:0 !important; padding-right:0 !important; }
.category .aux-col, .author .aux-col { display:flex; float:none; background:none !important; box-shadow:none !important; border-radius:0; padding:0 20px !important; margin:0 0 10px !important; width:33.333% !important; height:auto !important; }
.category .post.column-entry, .author .post.column-entry { background:var(--tfc-tint); border-radius:20px; padding:0 !important; width:100%; height:auto; transition:background-color .3s ease-out, box-shadow .3s ease-out; }
.category .post.column-entry:hover, .author .post.column-entry:hover { background:#fff; box-shadow:-15px 30px 80px rgba(171,175,199,.3); }
.category .post .entry-main, .author .post .entry-main { padding:48px 48px 122px; }
.category .post .entry-info, .author .post .entry-info { padding:0 !important; margin:0 0 41px !important; color:var(--tfc-grey); }
.category .post .entry-title, .author .post .entry-title { margin:0 0 35px; line-height:1.32; }
.category .post .entry-title a, .author .post .entry-title a { font-size:25px; font-weight:700; line-height:1.32; letter-spacing:-.03em; color:var(--tfc-navy); }
.category .post .entry-content, .author .post .entry-content { color:var(--tfc-grey); font-weight:500; line-height:25px; }
.category .post .aux-after-content, .author .post .aux-after-content { bottom:50px !important; left:12% !important; right:auto !important; padding:0 !important; }
html[dir="rtl"] .category .post .aux-after-content, html[dir="rtl"] .author .post .aux-after-content { left:auto !important; right:12% !important; }
.category .post .comments-iconic, .author .post .comments-iconic { display:none; }
@media (max-width:1024px) { .category .aux-col, .author .aux-col { width:50% !important; } }
@media (max-width:767px) { .category .aux-col, .author .aux-col { width:100% !important; } .category .post .entry-main, .author .post .entry-main { padding:40px 32px 110px; } .category .post .aux-after-content, .author .post .aux-after-content { left:32px !important; bottom:40px !important; } html[dir="rtl"] .category .post .aux-after-content, html[dir="rtl"] .author .post .aux-after-content { left:auto !important; right:32px !important; } }
/* 10. Page titles on the archive templates (theme title unhidden and styled like the Services heading) and on the blog page */
.category .page-title-section .page-header, .author .page-title-section .page-header { display:block !important; background:none !important; border:0 !important; padding:60px 0 0 !important; }
.category .page-title-section .aux-breadcrumbs, .author .page-title-section .aux-breadcrumbs { display:none !important; }
.category .page-title-section .aux-container, .author .page-title-section .aux-container { max-width:none !important; width:auto !important; margin:0 35px !important; padding:0 !important; }
.category .page-title-section .aux-page-title-entry, .author .page-title-section .aux-page-title-entry, .category .page-title-section .aux-page-title-box, .author .page-title-section .aux-page-title-box { display:block !important; width:auto !important; text-align:start !important; padding:0 !important; margin:0 !important; }
.category h1.page-title, .author h1.page-title, .tfc-page-title { display:block; font-family:"DM Sans", sans-serif; font-size:clamp(34px, 3.7vw, 50px); font-weight:700; letter-spacing:-.03em; line-height:1.1; color:var(--tfc-navy); margin:0 0 30px; }
.category .aux-content-top-margin .aux-primary, .author .aux-content-top-margin .aux-primary { padding-top:0; padding-bottom:170px !important; }
.tfc-page-head { --display:flex; --padding-top:40px; --padding-bottom:0; --padding-left:0; --padding-right:0; }
@media (max-width:767px) { .category .page-title-section .aux-container, .author .page-title-section .aux-container { margin:0 35px !important; } .tfc-page-head { --padding-top:40px; } .category .page-title-section .page-header, .author .page-title-section .page-header { padding-top:40px !important; } }
/* 13. Phone homepage: the image post card gets the same tinted card as its neighbour */
@media (max-width:767px) {
  .elementor-175 .elementor-element-a9cf1c6 .aux-row { margin:0 !important; }
  .elementor-175 .elementor-element-098e9ce .aux-row { margin:0 !important; }
  .elementor-175 .elementor-element-a9cf1c6 .aux-col { background:var(--tfc-tint); border-radius:20px; padding:0 0 30px !important; margin:0 0 30px !important; overflow:hidden; }
  .elementor-175 .elementor-element-a9cf1c6 .aux-col .entry-media { margin:0 0 24px; }
  .elementor-175 .elementor-element-a9cf1c6 .aux-col .aux-media-frame img { border-radius:0; display:block; width:100%; }
  .elementor-175 .elementor-element-a9cf1c6 .aux-col .entry-main { padding:0 30px !important; }
  .elementor-175 .elementor-element-a9cf1c6 .aux-col .aux-after-content { position:static; padding:0; margin-top:8px; }
  .elementor-175 .elementor-element-a9cf1c6 .aux-col a.aux-read-more { position:static; display:inline-block; margin:0; }
}
/* 14. Single post: the like counter needs the WordPress backend, so it is hidden (share stays) */
.single-post .aux-wpulike, .single-post .wpulike { display:none !important; }

/* ===== Polish batch 3 (2026-09-12): small refinements ===== */
/* Homepage "Find the plan" title stays on one line on desktop like every other section title */
@media (min-width:1025px) { .elementor-175 .elementor-element.elementor-element-138f714 { max-width:none; --container-widget-width:100%; width:100%; } }
/* Floating language switcher sits on the page gutter instead of 10vw */
html:not([dir="rtl"]) .trp-floating-switcher { --left:35px !important; }
html[dir="rtl"] .trp-floating-switcher { --right:35px !important; }
@media (max-width:767px) { html:not([dir="rtl"]) .trp-floating-switcher { --left:20px !important; } html[dir="rtl"] .trp-floating-switcher { --right:20px !important; } }
/* Service pages: the Phlox portfolio demo box (Client / Release Date / Role / Launch Project) is hidden until real data exists */
.elementor-156 .elementor-element-e74d721, .elementor-158 .elementor-element-e91ac4e,
.elementor-161 .elementor-element-0207fdc, .elementor-157 .elementor-element-dbefe3e, .elementor-160 .elementor-element-a654308 { display:none !important; }
/* Service pages on phones: previous / next labels stay on one line beside their arrow */
@media (max-width:600px) { .aux-next-prev-posts .np-nav-text { white-space:nowrap; font-size:15px; } }

/* ============================================================================
   Round 3, batch A (2026-09-12): services icon frames, About phone width, phone type scale,
   footer copyright band, section rhythm on Home / About / Contact, contact form (markup).
   ============================================================================ */
/* A1 Services page: the icon frame was a 20px-radius square carrying a drop shadow around a 24%-radius
   tile, so the corners between them read as a white card. The frame is now shadowless and clipped to the
   tile shape; the tile itself gets a soft lift. */
.elementor-153 .elementor-element.elementor-element-f7cc036 .aux-media-image { box-shadow:none; border-radius:24% !important; background:none; overflow:visible; }
.elementor-153 .elementor-element.elementor-element-f7cc036 img.tfc-service-icon { box-shadow:0 22px 40px -22px rgba(14,71,192,.30); }

/* A2 About page: the text widget stacked three side paddings (10 + 20 + 30) so its cards were 60px from the
   screen edge while every other section sits at 35px. Below 1025px it now uses the shared 35px gutter. */
@media (max-width:1024px) {
  .elementor-174 .elementor-element.elementor-element-fc405f2 { --padding-left:35px; --padding-right:35px; }
  .elementor-174 .elementor-element.elementor-element-2e6eeac > .elementor-widget-container { padding-left:0; padding-right:0; }
  .elementor-174 .elementor-element-2e6eeac .aux-text-inner { padding-left:0 !important; padding-right:0 !important; }
}

/* A3 Phone type scale on the homepage: body copy 16px, secondary 15px, feature titles 17px, meta 14px */
@media (max-width:767px) {
  .elementor-175 .elementor-element-2e1e9bd .aux-modern-heading-description { font-size:16px !important; line-height:1.6 !important; }
  .elementor-175 .elementor-element-60bf972 .aux-modern-heading-primary, .aboutusdescription h3 { font-size:19px !important; line-height:1.3 !important; }
  .elementor-175 .elementor-element-60bf972 .aux-modern-heading-description, .aboutusdescription p { font-size:16px !important; line-height:1.65 !important; }
  .elementor-175 .elementor-element-cb0617e .elementor-testimonial-content { font-size:16px !important; line-height:1.6 !important; }
  .elementor-175 .elementor-element-cb0617e .elementor-testimonial-name { font-size:16px !important; }
  .elementor-175 .elementor-element-cb0617e .elementor-testimonial-job { font-size:14px !important; }
  .elementor-175 .elementor-element-2e6f07e .entry-content, .elementor-175 .elementor-element-2e6f07e .entry-content p { font-size:15px !important; line-height:1.6 !important; }
  .elementor-175 .elementor-element-2e6f07e .entry-meta .aux-read-more { font-size:15px !important; }
}

/* A4 Footer copyright band. The TranslatePress floating switcher is retired (its replacement is the site's own
   .tfc-lang-float further down), so the 72px clearance it needed under the footer goes with it. Line → 24px → text → 32px (desktop);
   phones/tablets keep enough room under the text for the go-to-top button, and the menu sits 32px above the line. */
.trp-floating-switcher { display:none !important; }
footer.aux-elementor-footer { padding-bottom:0; }
/* the line is centred at every width: at the start edge it ran under the chat bubble in RTL (right corner) */
@media (max-width:767px) {
  /* the fixed chat bubble (bottom-right, ~90px tall with its label) would sit on the centred copyright line */
}

/* A5 Section rhythm. One scale for Home / About / Contact: desktop 140px between sections and 70px from a
   section heading to its content; phones 90px and 40px. Values are per section because each one carries a
   different inner offset (heading padding, card shadow room, quote icon overhang). */
@media (min-width:768px) {
  .elementor-175 .elementor-element.elementor-element-e2fdfbd { --padding-bottom:117px; }
  .elementor-175 .elementor-element.elementor-element-e514488 { --padding-bottom:54px; }
  .elementor-175 .elementor-element.elementor-element-2e1e9bd { --padding-bottom:112px; }
  .elementor-175 .elementor-element.elementor-element-09ac3fa { --padding-bottom:50px; }
  .elementor-175 .elementor-element.elementor-element-3d2e8c8 { --padding-bottom:60px; } /* the grid keeps 50px of its own under the last row */
  .elementor-175 .elementor-element.elementor-element-80e9e7a { --padding-bottom:95px; }
  .elementor-175 .elementor-element.elementor-element-cb0617e { --padding-bottom:130px; }
  .elementor-175 .elementor-element.elementor-element-6e97bc8 { --padding-bottom:60px; }
  .elementor-174 .elementor-element.elementor-element-de8dc90 { --padding-bottom:117px; }
  .elementor-174 .elementor-element.elementor-element-5d72836 { --padding-bottom:60px; }
  .elementor-174 .elementor-element.elementor-element-741eadf { --padding-bottom:88px; }
  .elementor-174 .elementor-element.elementor-element-fc405f2 { --padding-bottom:80px; }
  .tfc-contact-con { --padding-bottom:140px; }
}
@media (max-width:767px) {
  .elementor-175 .elementor-element.elementor-element-e2fdfbd { --padding-bottom:90px; }
  .elementor-175 .elementor-element.elementor-element-e514488 { --padding-bottom:24px; }
  .elementor-175 .elementor-element.elementor-element-2e1e9bd { --margin-bottom:0px; margin-bottom:0; --padding-bottom:66px; }
  .elementor-175 .elementor-element.elementor-element-09ac3fa { --padding-bottom:20px; }
  .elementor-175 .elementor-element.elementor-element-3d2e8c8 { --padding-bottom:0px; }
  .elementor-175 .elementor-element.elementor-element-e17972c { --padding-bottom:45px; }
  .elementor-175 .elementor-element.elementor-element-80e9e7a { --padding-bottom:60px; }
  .elementor-175 .elementor-element.elementor-element-cb0617e { --padding-bottom:80px; }
  .elementor-175 .elementor-element.elementor-element-6e97bc8 { --margin-top:0px; margin-top:0; --padding-bottom:30px; }
  .elementor-175 .elementor-element.elementor-element-2e6f07e { --margin-bottom:30px; margin-bottom:30px; }
  .elementor-174 .elementor-element.elementor-element-5d72836 { --padding-bottom:30px; }
  .elementor-174 .elementor-element.elementor-element-741eadf { --padding-bottom:38px; }
  .elementor-174 .elementor-element.elementor-element-fc405f2 { --padding-bottom:30px; }
  .tfc-contact-con { --padding-bottom:90px; }
}
/* A5b About team grid (tablet/desktop): the box was a fixed 640px spacer with the photo centred inside it, so
   each column carried ~130px of empty band above and below the picture. The box now takes the photo's own
   aspect ratio; the caption/gradient maths (anchored to the photo edge) is unchanged. */
@media (min-width:768px) {
  .elementor-174 .elementor-element-741eadf .staff-box { height:auto !important; min-height:0 !important; aspect-ratio:1838 / 2560; padding:0 !important; }
  .elementor-174 .elementor-element-741eadf .staff-box .elementor-widget-spacer { display:none !important; }
}

/* ============================================================================
   Round 3, batch B (2026-09-12): header language selector + footer services/language rows.
   ============================================================================ */
/* -- B2 Header language selector: a flag + code pill; the list opens under it (hover on desktop, click/keyboard
      everywhere). In the off-canvas panel the same list is shown inline as pills under a "Language" title. -- */
.tfc-lang { position:relative; }
.tfc-lang-title { display:none; }
.tfc-lang-btn { appearance:none; -webkit-appearance:none; background:none; border:0; margin:0; cursor:pointer; font:inherit; display:inline-flex; align-items:center; gap:8px; }
.aux-elementor-header-menu .aux-master-menu .tfc-lang > .tfc-lang-btn {
  padding:7px 12px 7px 9px; border:1px solid var(--tfc-line); border-radius:999px; background:#fff;
  font-size:13px; font-weight:700; letter-spacing:.06em; line-height:1; color:var(--tfc-navy);
  transition:border-color .2s, background-color .2s, color .2s;
}
html[dir="rtl"] .aux-elementor-header-menu .aux-master-menu .tfc-lang > .tfc-lang-btn { padding:7px 9px 7px 12px; }
.tfc-lang-flag { width:20px; height:15px; border-radius:3px; object-fit:cover; display:block; }
.tfc-lang-caret { width:7px; height:7px; margin-top:-3px; border-right:1.5px solid currentColor; border-bottom:1.5px solid currentColor; transform:rotate(45deg); transition:transform .2s; }
.tfc-lang > .tfc-lang-btn:hover, .tfc-lang.is-open > .tfc-lang-btn { border-color:var(--tfc-blue) !important; color:var(--tfc-blue) !important; background:var(--tfc-tint) !important; }
.tfc-lang.is-open > .tfc-lang-btn .tfc-lang-caret { transform:rotate(225deg); margin-top:3px; }
.tfc-lang-btn:focus-visible, .tfc-lang-opt:focus-visible { outline:2px solid var(--tfc-blue); outline-offset:3px; }
.tfc-lang-list {
  position:absolute; top:100%; inset-inline-end:0; z-index:60; margin:12px 0 0 !important; padding:8px !important; list-style:none; min-width:186px;
  background:#fff; border:1px solid var(--tfc-line); border-radius:14px; box-shadow:0 24px 48px -16px rgba(8,20,32,.22), 0 2px 8px rgba(8,20,32,.06);
  opacity:0; visibility:hidden; transform:translateY(6px); transition:opacity .2s, transform .2s, visibility 0s linear .2s;
}
.tfc-lang-list::before { content:""; position:absolute; left:0; right:0; top:-12px; height:12px; } /* hover bridge */
.tfc-lang-list > li { margin:0 !important; padding:0 !important; list-style:none; float:none !important; width:auto !important; }
.tfc-lang.is-open > .tfc-lang-list { opacity:1; visibility:visible; transform:none; transition-delay:0s; }
@media (min-width:1025px) { .tfc-lang:hover > .tfc-lang-list { opacity:1; visibility:visible; transform:none; transition-delay:0s; } }
.tfc-lang-opt {
  display:flex !important; align-items:center; gap:10px; padding:10px 12px !important; margin:0 !important; border-radius:9px; white-space:nowrap;
  font-size:15px !important; font-weight:500; line-height:1.3 !important; color:var(--tfc-navy) !important; text-decoration:none; transition:background-color .2s, color .2s;
}
.tfc-lang-opt img { width:20px; height:15px; border-radius:3px; object-fit:cover; flex:none; }
.tfc-lang-opt:hover { background:var(--tfc-tint); color:var(--tfc-blue) !important; }
.tfc-lang-opt.is-current { color:var(--tfc-blue) !important; font-weight:700; }
.tfc-lang-opt.is-current::after { content:""; margin-inline-start:auto; width:6px; height:11px; margin-bottom:3px; border-right:2px solid currentColor; border-bottom:2px solid currentColor; transform:rotate(45deg); }
/* the off-canvas panel: title + inline pills, no dropdown */
.aux-offcanvas-menu .tfc-lang { padding:18px 6px 10px !important; }
.aux-offcanvas-menu .tfc-lang > .tfc-lang-btn { display:none !important; }
.aux-offcanvas-menu .tfc-lang .tfc-lang-title { display:block; margin:0 6px 12px; font-size:12px; font-weight:700; letter-spacing:.1em; text-transform:uppercase; color:var(--tfc-grey); }
html[dir="rtl"] .aux-offcanvas-menu .tfc-lang .tfc-lang-title { letter-spacing:0; font-size:13px; }
.aux-offcanvas-menu .tfc-lang > .tfc-lang-list {
  position:static; display:flex; flex-wrap:wrap; gap:8px; margin:0 !important; padding:0 !important; min-width:0;
  background:none; border:0; box-shadow:none; opacity:1; visibility:visible; transform:none; transition:none;
}
.aux-offcanvas-menu .tfc-lang .tfc-lang-list::before { display:none; }
.aux-offcanvas-menu .tfc-lang .tfc-lang-opt { padding:8px 12px 8px 9px !important; gap:8px; border:1px solid var(--tfc-line); border-radius:999px; font-size:14px !important; }
html[dir="rtl"] .aux-offcanvas-menu .tfc-lang .tfc-lang-opt { padding:8px 9px 8px 12px !important; }
.aux-offcanvas-menu .tfc-lang .tfc-lang-opt.is-current { border-color:var(--tfc-blue); background:var(--tfc-tint); }
.aux-offcanvas-menu .tfc-lang .tfc-lang-opt.is-current::after { display:none; }

/* -- B1 Footer: a services row and a language row under the main links, so the footer mirrors the header. -- */
/* Just above the off-canvas switch (1025–1150px) the seven header items plus the language pill need tighter gaps,
   otherwise the Turkish menu wraps to a second line. */
@media (min-width:1025px) and (max-width:1150px) {
  .aux-elementor-header-menu .aux-master-menu.aux-horizontal > .aux-menu-depth-0 { margin-inline-end:22px; }
}
.aux-elementor-header-menu .aux-master-menu.aux-horizontal .tfc-lang > .tfc-lang-btn { position:relative; top:2px; } /* optical centre on the link row */

/* ===================================================================================================
   Round 4 (2026-09-13)
   =================================================================================================== */
/* -- 4.1 Header language list: centred under the pill with the same notch as the Services submenu -- */
.aux-elementor-header-menu .aux-master-menu.aux-horizontal .tfc-lang > .tfc-lang-list { inset-inline-end:auto; left:50%; margin-top:14px !important; transform:translate(-50%, 6px); }
.aux-elementor-header-menu .aux-master-menu.aux-horizontal .tfc-lang.is-open > .tfc-lang-list { transform:translate(-50%, 0); }
@media (min-width:1025px) { .aux-elementor-header-menu .aux-master-menu.aux-horizontal .tfc-lang:hover > .tfc-lang-list { transform:translate(-50%, 0); } }
.aux-elementor-header-menu .aux-master-menu.aux-horizontal .tfc-lang > .tfc-lang-list::before { top:-14px; height:14px; }
.tfc-lang-list::after { content:""; position:absolute; top:-7px; left:50%; width:12px; height:12px; margin-left:-6px; background:#fff; border-left:1px solid var(--tfc-line); border-top:1px solid var(--tfc-line); transform:rotate(45deg); border-radius:2px 0 0 0; }
.aux-offcanvas-menu .tfc-lang .tfc-lang-list::after { display:none; }
.tfc-lang-opt { text-align:start; }

/* -- 4.2 Floating language switcher (bottom-left on every page; the list opens upwards) -- */
.tfc-lang-float { position:fixed; left:24px; bottom:24px; z-index:900; margin:0; padding:0; list-style:none; }
.tfc-lang-float > .tfc-lang-btn {
  display:inline-flex; align-items:center; gap:7px; padding:8px 13px 8px 10px; border:1px solid var(--tfc-line); border-radius:999px; background:#fff; color:var(--tfc-navy);
  font-size:13px; font-weight:700; letter-spacing:.06em; line-height:1; cursor:pointer; box-shadow:0 12px 28px -12px rgba(8,20,32,.35), 0 1px 3px rgba(8,20,32,.08);
  transition:border-color .2s, box-shadow .2s, color .2s;
}
[dir="rtl"] .tfc-lang-float > .tfc-lang-btn { padding:8px 10px 8px 13px; }
.tfc-lang-float > .tfc-lang-btn:hover, .tfc-lang-float.is-open > .tfc-lang-btn { border-color:var(--tfc-blue); color:var(--tfc-blue); box-shadow:0 14px 30px -12px rgba(14,71,192,.35); }
.tfc-lang-float > .tfc-lang-btn:focus-visible { outline:2px solid var(--tfc-blue); outline-offset:3px; }
.tfc-lang-float > .tfc-lang-btn .tfc-lang-caret { transform:rotate(225deg); margin-top:3px; }
.tfc-lang-float.is-open > .tfc-lang-btn .tfc-lang-caret { transform:rotate(45deg); margin-top:-3px; }
.tfc-lang-float > .tfc-lang-list { top:auto; bottom:100%; left:0; inset-inline-end:auto; margin:0 0 12px !important; transform:translateY(-6px); }
.tfc-lang-float.is-open > .tfc-lang-list { transform:none; }
@media (min-width:1025px) { .tfc-lang-float:hover > .tfc-lang-list { transform:none; } }
.tfc-lang-float > .tfc-lang-list::before { top:auto; bottom:-12px; }
.tfc-lang-float > .tfc-lang-list::after { top:auto; bottom:-7px; left:26px; transform:rotate(225deg); }
@media (max-width:767px) {
  .tfc-lang-float { left:16px; bottom:18px; }
  .tfc-lang-float > .tfc-lang-btn { padding:7px 11px 7px 9px; font-size:12px; }
}
@media print { .tfc-lang-float { display:none; } }
body.tfc-oc-open .tfc-lang-float { display:none; } /* the off-canvas panel has its own language pills */

/* -- 4.3 About page, phone: team captions on a light bottom gradient only (the caption block no longer darkens the photo) -- */
@media (max-width:767px) {
  .elementor-174 .elementor-element-741eadf .staff-box::after { content:""; position:absolute; left:0; right:0; bottom:0; height:56%; background:linear-gradient(180deg, rgba(8,20,32,0) 0%, rgba(8,20,32,.55) 45%, rgba(8,20,32,.82) 100%); pointer-events:none; z-index:0; }
  .elementor-174 .elementor-element-741eadf .staff-box .elementor-widget-aux_staff { position:relative !important; z-index:1; }
  .elementor-174 .elementor-element-741eadf .staff-box .aux-widget-staff { padding:10px 12px 10px; background:none; }
  .elementor-174 .elementor-element-741eadf .staff-box .aux-widget-staff .col-title { font-size:14px; line-height:1.2; }
  .elementor-174 .elementor-element-741eadf .staff-box .aux-widget-staff .col-subtitle { font-size:11px !important; line-height:1.3; }
  .elementor-174 .elementor-element-741eadf .staff-box .aux-widget-staff .aux-staff-footer { margin-top:4px; }
}


/* -- 4.5 Section rhythm, site-wide. Visible-box distances (text glyphs, images, tinted cards, the blue footer band): 120px between sections, 56px between
      a section label and its content, 120px from the last content to the footer band, 60px header→first content on sub-pages
      (desktop/tablet); 72 / 32 / 72 / 32 on phones.
      Values below were tuned by measuring rendered pages, so they include each block's own internal whitespace. -- */
@media (min-width:768px) {
  .elementor-175 .elementor-element.elementor-element-e2fdfbd { --padding-bottom:123px; }
  .elementor-175 .elementor-element.elementor-element-e514488 { --padding-bottom:64px; }
  .elementor-175 .elementor-element.elementor-element-2e1e9bd { --padding-bottom:94px; }
  .elementor-175 .elementor-element.elementor-element-09ac3fa { --padding-bottom:35px; }
  .elementor-175 .elementor-element.elementor-element-3d2e8c8 { --padding-bottom:10px; }
  .elementor-175 .elementor-element.elementor-element-e17972c { --padding-bottom:113px; }
  .elementor-175 .elementor-element.elementor-element-80e9e7a { --padding-bottom:89px; }
  .elementor-175 .elementor-element.elementor-element-cb0617e { --padding-bottom:113px; }
  .elementor-175 .elementor-element.elementor-element-6e97bc8 { --padding-bottom:46px; }
  .elementor-175 .elementor-element.elementor-element-2e6f07e { --padding-bottom:120px; --margin-bottom:0px; margin-bottom:0; }
  .elementor-174 .elementor-element.elementor-element-de8dc90 { --padding-bottom:113px; }
  .elementor-174 .elementor-element.elementor-element-5d72836 { --padding-bottom:46px; }
  .elementor-174 .elementor-element.elementor-element-741eadf { --padding-bottom:110px; }
  .elementor-174 .elementor-element.elementor-element-fc405f2 { --padding-bottom:50px; --margin-bottom:0px; margin-bottom:0; }
  .tfc-contact-con { --padding-top:60px; --padding-bottom:120px; }
  .elementor-153 .elementor-element.elementor-element-8f7794f { --padding-top:66px; --padding-bottom:0px; --margin-bottom:73px; margin-bottom:73px; }
  .elementor-162 .elementor-element.elementor-element-9cd9deb { --padding-top:26px; --padding-bottom:0px; --margin-bottom:110px; margin-bottom:110px; }
  .single-post .aux-primary { padding-top:60px; padding-bottom:101px; }
  .category main.aux-archive .aux-primary, .author main.aux-archive .aux-primary { padding-top:0 !important; padding-bottom:110px !important; }
}
@media (max-width:767px) {
  .elementor-175 .elementor-element.elementor-element-e2fdfbd { --padding-bottom:75px; }
  .elementor-175 .elementor-element.elementor-element-e514488 { --padding-bottom:36px; }
  .elementor-175 .elementor-element.elementor-element-2e1e9bd { --padding-bottom:45px; }
  .elementor-175 .elementor-element.elementor-element-09ac3fa { --padding-bottom:13px; }
  .elementor-175 .elementor-element.elementor-element-3d2e8c8 { --padding-bottom:0px; --margin-bottom:-34px; margin-bottom:-34px; }
  .elementor-175 .elementor-element.elementor-element-e17972c { --padding-bottom:25px; }
  .elementor-175 .elementor-element.elementor-element-80e9e7a { --padding-bottom:52px; }
  .elementor-175 .elementor-element.elementor-element-cb0617e { --padding-bottom:65px; }
  .elementor-175 .elementor-element.elementor-element-6e97bc8 { --padding-bottom:23px; }
  .elementor-175 .elementor-element.elementor-element-2e6f07e { --padding-bottom:72px; --margin-bottom:0px; margin-bottom:0; }
  .elementor-175 .elementor-element-2e6f07e .aux-col:last-child { margin-bottom:0 !important; } /* margin only: each post widget holds a single card, so this matched both cards and removed their bottom padding */
  .elementor-174 .elementor-element.elementor-element-de8dc90 { --padding-bottom:65px; }
  .elementor-174 .elementor-element.elementor-element-5d72836 { --padding-bottom:24px; }
  .elementor-174 .elementor-element.elementor-element-741eadf { --padding-bottom:62px; }
  .elementor-174 .elementor-element.elementor-element-fc405f2 { --padding-bottom:2px; --margin-bottom:0px; margin-bottom:0; }
  .tfc-contact-con { --padding-top:32px; --padding-bottom:72px; }
  .tfc-contact-map { min-height:0 !important; }
  .elementor-153 .elementor-element.elementor-element-8f7794f { --padding-top:36px; --padding-bottom:0px; --margin-bottom:25px; margin-bottom:25px; }
  .elementor-162 .elementor-element.elementor-element-9cd9deb { --padding-top:0px; --padding-bottom:0px; --margin-bottom:62px; margin-bottom:62px; }
  .single-post .aux-primary { padding-top:32px; padding-bottom:53px; }
  .category main.aux-archive .aux-primary, .author main.aux-archive .aux-primary { padding-top:0 !important; padding-bottom:62px !important; }
}
/* tablets (768-1024): the home About columns stack and the testimonial slider grows, so three paddings differ from desktop */
@media (min-width:768px) and (max-width:1024px) {
  .elementor-175 .elementor-element.elementor-element-e17972c { --padding-bottom:73px; }
  .elementor-175 .elementor-element.elementor-element-80e9e7a { --padding-bottom:75px; }
  .elementor-175 .elementor-element.elementor-element-cb0617e { --padding-bottom:63px; }
}
/* internal whitespace the blocks above cannot reach */
.elementor-174 .elementor-element-fc405f2 .aux-text-inner { padding-top:0 !important; }
.elementor-174 .elementor-element-fc405f2 .widget-content { margin-top:0 !important; }
.elementor-174 .elementor-element-fc405f2 .aux-portfolio-columns, .elementor-153 .elementor-element-8f7794f .aux-portfolio-columns { margin-bottom:0 !important; }
.elementor-174 .elementor-element-fc405f2 .aux-widget-recent-posts, .elementor-174 .elementor-element-fc405f2 .elementor-widget-aux_recent_portfolios_grid > .elementor-widget-container { padding-bottom:0 !important; }
.elementor-162 .elementor-element.elementor-element-4c73d16 { --padding-bottom:0px; }
.single-post .entry-content { margin-bottom:0 !important; }
.elementor-element-9cd9deb .aux-row, .aux-archive .aux-primary .aux-row { margin-bottom:0 !important; }

/* -- 4.6 Service page template v2 (six services x three languages, generated by svc-content.py): tinted hero with breadcrumb,
      "what's included" cards, numbered steps on a tinted band, long text beside a sticky aside (contact card + other services).
      The page uses the same 1600px width and 35px gutters as the header and the footer band. -- */
.single-portfolio main.aux-main { max-width:none; }
.single-portfolio main.aux-full-container > .aux-wrapper > .aux-container { max-width:1670px; padding-inline:35px; box-sizing:border-box; }
.single-portfolio .aux-primary { padding:0 !important; }
.single-portfolio main, .single-portfolio .aux-container { padding-bottom:0 !important; }
.single-portfolio .entry-side { display:none !important; }
.tfc-svc { --svc-text:#566074; display:block; padding-bottom:96px; }
.tfc-svc h1, .tfc-svc h2, .tfc-svc h3 { color:var(--tfc-navy); letter-spacing:-.02em; }
/* hero */
.tfc-svc-hero { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,360px); gap:48px 96px; align-items:center; margin-top:20px; padding:72px 96px; border-radius:32px; background:var(--tfc-tint); }
.tfc-crumbs { display:flex; flex-wrap:wrap; align-items:center; gap:6px 10px; margin:0 0 22px; font-size:14px; font-weight:600; line-height:1.4; color:var(--tfc-grey); }
.tfc-crumbs a { color:var(--tfc-blue); text-decoration:none; }
.tfc-crumbs a:hover, .tfc-crumbs a:focus-visible { text-decoration:underline; }
.tfc-crumbs [aria-current] { color:var(--tfc-navy); }
.tfc-crumbs span[aria-hidden] { opacity:.45; }
.tfc-svc-hero h1 { margin:0 0 20px; font-size:clamp(36px, 3.9vw, 60px); font-weight:700; line-height:1.1; }
.tfc-svc-lead { margin:0 0 34px; max-width:600px; font-size:19px; line-height:1.7; color:var(--svc-text); }
.tfc-svc-actions { display:flex; flex-wrap:wrap; gap:14px; }
.tfc-svc-hero-art { position:relative; justify-self:center; width:100%; max-width:340px; aspect-ratio:1; }
.tfc-svc-hero-art::before, .tfc-svc-hero-art::after { content:""; position:absolute; border-radius:14%; }
.tfc-svc-hero-art::before { width:50%; height:50%; top:-7%; inset-inline-end:-7%; background:var(--tfc-blue); border-start-end-radius:100%; }
.tfc-svc-hero-art::after { width:40%; height:40%; bottom:-7%; inset-inline-start:-7%; background:var(--tfc-yellow); border-end-start-radius:100%; }
.tfc-svc-hero-art img.tfc-service-icon { position:relative; z-index:1; display:block; width:100%; height:100%; max-width:none; background:#fff; border-radius:24%; box-shadow:0 40px 70px -34px rgba(14,71,192,.45); }
/* buttons */
.tfc-btn { display:inline-flex; align-items:center; justify-content:center; gap:10px; min-height:54px; padding:14px 30px; border-radius:999px; font-size:16px; font-weight:600; line-height:1.2; text-decoration:none !important; transition:background-color .2s, color .2s, border-color .2s, box-shadow .2s, transform .2s; }
.tfc-btn:focus-visible { outline:2px solid var(--tfc-blue); outline-offset:3px; }
.tfc-btn svg { width:18px; height:18px; flex:none; }
.tfc-btn-primary { background:var(--tfc-blue); color:#fff !important; box-shadow:0 18px 30px -18px rgba(14,71,192,.6); }
.tfc-btn-primary:hover, .tfc-btn-primary:focus-visible { background:var(--tfc-navy); color:#fff !important; transform:translateY(-1px); }
.tfc-btn-ghost { background:#fff; color:var(--tfc-navy) !important; border:1px solid var(--tfc-line); }
.tfc-btn-ghost:hover, .tfc-btn-ghost:focus-visible { border-color:var(--tfc-blue); color:var(--tfc-blue) !important; }
.tfc-btn-yellow { background:var(--tfc-yellow); color:var(--tfc-navy) !important; }
.tfc-btn-yellow:hover, .tfc-btn-yellow:focus-visible { background:#fff; }
.tfc-btn-outline { background:transparent; color:#fff !important; border:1px solid rgba(255,255,255,.45); }
.tfc-btn-outline:hover, .tfc-btn-outline:focus-visible { background:rgba(255,255,255,.12); border-color:#fff; }
.tfc-svc-cta .tfc-btn:focus-visible { outline-color:#fff; }
/* sections */
/* section rhythm: the tinted hero and steps band read as open space next to white, so the gaps between blocks stay
   tighter than 120px (text-to-text about 150px on desktop, 90px on phones, close to the home page) */
.tfc-svc-section { padding-top:80px; }
.tfc-svc-section > h2 { margin:0 0 48px; font-size:clamp(30px, 2.8vw, 42px); font-weight:700; line-height:1.2; text-align:center; }
/* what's included */
.tfc-svc-grid { display:grid; grid-template-columns:repeat(4, minmax(0,1fr)); gap:24px; margin:0 !important; padding:0 !important; list-style:none; }
.tfc-svc-grid > li { margin:0 !important; padding:36px 30px 38px !important; list-style:none; background:#fff; border:1px solid var(--tfc-line); border-radius:24px; box-shadow:0 1px 2px rgba(8,20,32,.04); transition:transform .25s, box-shadow .25s, border-color .25s; }
.tfc-svc-grid > li:hover { transform:translateY(-4px); border-color:rgba(14,71,192,.22); box-shadow:0 30px 50px -32px rgba(14,71,192,.4); }
.tfc-svc-check { display:flex; align-items:center; justify-content:center; width:50px; height:50px; margin-bottom:24px; border-radius:15px; background:var(--tfc-tint); color:var(--tfc-blue); }
.tfc-svc-check svg { width:24px; height:24px; }
.tfc-svc-grid h3 { margin:0 0 12px; font-size:20px; font-weight:700; line-height:1.3; }
.tfc-svc-grid p { margin:0; font-size:16px; line-height:1.7; color:var(--svc-text); }
/* how it works: white step cards on the tinted band; the yellow numbers sit on a dashed rail above the cards, each card
   points up at its number (a vertical timeline on tablets, stacked cards with the number on the top edge on phones).
   The number, rail and pointer are positioned with physical left/50% so the same rules serve the RTL copy. */
.tfc-svc-how { --step-gap:32px; margin-top:80px; padding:64px 96px 72px; border-radius:32px; background:var(--tfc-tint); }
.tfc-svc-how > h2 { margin-bottom:56px; }
.tfc-svc-steps { position:relative; display:grid; grid-template-columns:repeat(3, minmax(0,1fr)); gap:var(--step-gap); margin:0 !important; padding:0 !important; list-style:none; }
.tfc-svc-steps::before { content:""; position:absolute; top:31px; left:calc((100% - 2 * var(--step-gap)) / 6); right:calc((100% - 2 * var(--step-gap)) / 6); height:2px; background:linear-gradient(90deg, rgba(14,71,192,.4) 50%, transparent 0) 0 0 / 12px 2px repeat-x; }
.tfc-svc-steps > li { position:relative; margin:92px 0 0 !important; padding:40px 34px 42px !important; list-style:none; text-align:center; background:#fff; border-radius:24px; box-shadow:0 1px 2px rgba(8,20,32,.04), 0 30px 60px -42px rgba(14,71,192,.4); }
.tfc-svc-steps > li::after { content:""; position:absolute; top:-7px; left:50%; width:16px; height:16px; margin-left:-8px; border-radius:3px; background:#fff; transform:rotate(45deg); }
.tfc-svc-step-num { position:absolute; top:-92px; left:50%; z-index:1; display:flex; align-items:center; justify-content:center; width:64px; height:64px; margin-left:-32px; border-radius:50%; background:var(--tfc-yellow); color:var(--tfc-navy); font-size:22px; font-weight:700; line-height:1; box-shadow:0 10px 20px -10px rgba(180,140,0,.5); }
.tfc-svc-steps h3 { margin:0 0 12px; font-size:21px; font-weight:700; line-height:1.3; }
.tfc-svc-steps p { margin:0; font-size:16px; line-height:1.7; color:var(--svc-text); }
/* long text + aside */
.tfc-svc-more { display:grid; grid-template-columns:minmax(0,1fr) 380px; gap:56px 96px; align-items:start; }
.tfc-svc-text > h2 { margin:0 0 28px; font-size:clamp(28px, 2.5vw, 38px); font-weight:700; line-height:1.2; }
.tfc-svc-text-body h3 { margin:40px 0 12px; font-size:23px; font-weight:700; line-height:1.3; }
.tfc-svc-text-body p { margin:0 0 18px; font-size:17px; line-height:1.8; color:var(--svc-text); }
.tfc-svc-text-body ul { margin:0 0 20px !important; padding:0 !important; list-style:none; }
.tfc-svc-text-body li { position:relative; margin:0 0 10px !important; padding:0 !important; padding-inline-start:34px !important; font-size:17px; line-height:1.7; color:var(--svc-text); list-style:none; }
.tfc-svc-text-body li::before { content:""; position:absolute; top:4px; inset-inline-start:0; width:22px; height:22px; border-radius:50%; background:var(--tfc-yellow) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%231D2433' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12l5 5L20 7'/%3E%3C/svg%3E") center/12px no-repeat; }
.tfc-svc-text-body > :last-child { margin-bottom:0 !important; }
.tfc-svc-aside { position:sticky; top:32px; display:grid; gap:24px; }
/* the theme sets overflow-x:hidden on #inner-body, which makes it a scroll container and disables sticky; clip hides the
   same overflow without creating one */
@supports (overflow:clip) { .single-portfolio #inner-body { overflow:visible; overflow-x:clip; } }
@media (min-width:1025px) and (max-height:820px) { .tfc-svc-aside { position:static; } } /* taller than a short screen: let it scroll */
.tfc-svc-cta { position:relative; overflow:hidden; padding:40px 36px; border-radius:24px; background:var(--tfc-blue); color:rgba(255,255,255,.86); }
.tfc-svc-cta::after { content:""; position:absolute; top:-64px; inset-inline-end:-64px; width:150px; height:150px; border-radius:50%; background:var(--tfc-yellow); opacity:.95; }
.tfc-svc .tfc-svc-cta h3 { position:relative; z-index:1; max-width:78%; margin:0 0 12px; font-size:25px; font-weight:700; line-height:1.25; color:#fff; }
.tfc-svc-cta p { margin:0 0 26px; font-size:16px; line-height:1.65; }
.tfc-svc-cta .tfc-btn { width:100%; }
.tfc-svc-cta .tfc-btn + .tfc-btn { margin-top:12px; }
.tfc-svc-others { padding:30px 24px 22px; border-radius:24px; background:var(--tfc-tint); }
.tfc-svc-others h3 { margin:0 0 12px; padding-inline:10px; font-size:19px; font-weight:700; }
.tfc-svc-others ul { margin:0 !important; padding:0 !important; list-style:none; }
.tfc-svc-others li { margin:0 !important; padding:0 !important; list-style:none; }
.tfc-svc-others a { display:flex; align-items:center; gap:14px; padding:9px 10px; border-radius:14px; color:var(--tfc-navy) !important; font-size:16px; font-weight:600; line-height:1.3; text-decoration:none !important; transition:background-color .2s, color .2s; }
.tfc-svc-others a:hover, .tfc-svc-others a:focus-visible { background:#fff; color:var(--tfc-blue) !important; }
.tfc-svc-others img { width:44px; height:44px; flex:none; border-radius:12px; background:#fff; }
.tfc-svc-arrow { width:18px; height:18px; flex:none; margin-inline-start:auto; color:var(--tfc-blue); opacity:0; transition:opacity .2s, transform .2s; }
[dir="rtl"] .tfc-svc-arrow { transform:scaleX(-1); }
.tfc-svc-others a:hover .tfc-svc-arrow, .tfc-svc-others a:focus-visible .tfc-svc-arrow { opacity:1; }
@media (max-width:1366px) {
  .tfc-svc { padding-bottom:88px; }
  .tfc-svc-section { padding-top:72px; }
  .tfc-svc-hero { padding:56px 64px; gap:40px 64px; grid-template-columns:minmax(0,1fr) minmax(0,300px); }
  .tfc-svc-how { --step-gap:24px; margin-top:72px; padding:56px 48px 64px; }
  .tfc-svc-steps > li { padding:36px 26px 38px !important; }
  .tfc-svc-grid { grid-template-columns:repeat(2, minmax(0,1fr)); }
  .tfc-svc-more { grid-template-columns:minmax(0,1fr) 340px; gap:56px 64px; }
}
@media (max-width:1024px) {
  .tfc-svc { padding-bottom:80px; }
  .tfc-svc-section { padding-top:64px; }
  .tfc-svc-hero { padding:48px 48px; grid-template-columns:minmax(0,1fr) 220px; }
  .tfc-svc-how { margin-top:64px; padding:48px 40px 56px; }
  .tfc-svc-how > h2 { margin-bottom:44px; }
  .tfc-svc-steps { grid-template-columns:1fr; gap:20px; }
  .tfc-svc-steps::before { display:none; }
  .tfc-svc-steps > li { margin:0 !important; margin-inline-start:92px !important; padding:30px 34px 32px !important; text-align:start; }
  .tfc-svc-steps > li::after { top:38px; left:auto; inset-inline-start:-7px; margin:0; }
  .tfc-svc-step-num { top:14px; left:auto; inset-inline-start:-92px; margin:0; }
  .tfc-svc-steps > li:not(:last-child)::before { content:""; position:absolute; top:46px; bottom:-66px; inset-inline-start:-61px; width:2px; background:linear-gradient(180deg, rgba(14,71,192,.4) 50%, transparent 0) 0 0 / 2px 12px repeat-y; }
  .tfc-svc-more { grid-template-columns:1fr; }
  .tfc-svc-aside { position:static; grid-template-columns:repeat(2, minmax(0,1fr)); align-items:start; }
}
@media (max-width:767px) {
  .tfc-svc { padding-bottom:56px; }
  .tfc-svc-hero { grid-template-columns:1fr; gap:36px; margin-top:4px; padding:44px 22px 40px; border-radius:24px; text-align:center; }
  .tfc-svc-hero-art { order:-1; max-width:150px; }
  .tfc-crumbs { justify-content:center; margin-bottom:16px; font-size:13px; }
  .tfc-svc-hero h1 { margin-bottom:14px; font-size:32px; }
  .tfc-svc-lead { margin:0 auto 26px; font-size:16px; }
  .tfc-svc-actions { justify-content:center; gap:10px; }
  .tfc-btn { min-height:48px; padding:12px 24px; font-size:15px; }
  .tfc-svc-section { padding-top:48px; }
  .tfc-svc-section > h2 { margin-bottom:28px; font-size:28px; }
  .tfc-svc-grid { grid-template-columns:1fr; gap:14px; }
  .tfc-svc-grid > li { padding:26px 22px 28px !important; }
  .tfc-svc-grid > li:hover { transform:none; }
  .tfc-svc-check { width:44px; height:44px; margin-bottom:18px; border-radius:13px; }
  .tfc-svc-grid h3 { font-size:18px; }
  .tfc-svc-grid p, .tfc-svc-steps p { font-size:15.5px; }
  .tfc-svc-how { margin-top:48px; padding:40px 16px 44px; border-radius:24px; }
  .tfc-svc-how > h2 { margin-bottom:52px; }
  .tfc-svc-steps { gap:56px; }
  .tfc-svc-steps > li { margin:0 !important; padding:42px 22px 28px !important; text-align:center; }
  .tfc-svc-steps > li::after { display:none; }
  .tfc-svc-step-num { top:-24px; inset-inline-start:auto; left:50%; width:48px; height:48px; margin-left:-24px; font-size:18px; }
  .tfc-svc-steps > li:not(:last-child)::before { top:100%; bottom:auto; inset-inline-start:auto; left:50%; height:32px; margin-left:-1px; }
  .tfc-svc-steps h3 { margin:0 0 8px; font-size:19px; }
  .tfc-svc-more { gap:48px; }
  .tfc-svc-text > h2 { font-size:26px; margin-bottom:20px; }
  .tfc-svc-text-body h3 { margin-top:30px; font-size:20px; }
  .tfc-svc-text-body p, .tfc-svc-text-body li { font-size:16px; }
  .tfc-svc-aside { grid-template-columns:1fr; gap:16px; }
  .tfc-svc-cta { padding:34px 24px; }
  .tfc-svc-others { padding:26px 14px 16px; }
}
/* phones: the go-to-top button sits above the chat bubble in the bottom-right corner (the floating switcher has the left one) */
@media (max-width:767px) { .aux-goto-top-btn { left:auto !important; right:42px !important; bottom:108px !important; } }

/* -- 4.7 Round 5 (2026-09-13) -- */
/* home About: the four feature blurbs beside the photo were 15-16px (13-14px below 1400px) and hard to read */
.aboutusdescription h3 { font-size:20px !important; line-height:1.3 !important; }
.aboutusdescription p { font-size:17px !important; line-height:1.65 !important; color:#626B7D; }
@media (max-width:1400px) {
  .aboutusdescription h3 { font-size:18px !important; }
  .aboutusdescription p { font-size:16px !important; }
}
/* About hero: the play button on the photo carries its label ("Watch The Video"); the widget spans the photo width and
   centres the pill (Elementor positioned it at 50% - 30px for a 60px circle) */
.elementor-174 .elementor-element.elementor-element-e12b0a5 { left:0; right:0; top:calc(50% - 34px); width:auto; max-width:none; pointer-events:none; }
.elementor-174 .elementor-element.elementor-element-e12b0a5 > .elementor-widget-container, .elementor-174 .elementor-element.elementor-element-e12b0a5:hover .elementor-widget-container { padding:0; background:none; border-radius:0; }
.elementor-174 .elementor-element.elementor-element-e12b0a5 .elementor-icon-wrapper { display:flex; justify-content:center; }
.tfc-hero-play { pointer-events:auto; display:inline-flex; align-items:center; gap:14px; white-space:nowrap; padding-block:8px; padding-inline:8px 26px; border-radius:999px; background:rgba(255,255,255,.95); box-shadow:0 20px 40px -18px rgba(8,20,32,.5); color:var(--tfc-navy) !important; font-size:16px; font-weight:700; line-height:1.2; text-decoration:none !important; transition:background-color .2s, transform .2s; }
.tfc-hero-play-icon { position:relative; display:flex; align-items:center; justify-content:center; width:52px; height:52px; flex:none; border-radius:50%; background:var(--tfc-blue); color:#fff; transition:background-color .2s, color .2s; }
.tfc-hero-play-icon svg { width:20px; height:20px; margin-left:3px; }
.tfc-hero-play-icon::after { content:""; position:absolute; inset:0; border-radius:50%; border:2px solid var(--tfc-blue); animation:tfc-play-pulse 2.4s ease-out infinite; pointer-events:none; }
@keyframes tfc-play-pulse { 0% { transform:scale(1); opacity:.9; } 70%, 100% { transform:scale(1.6); opacity:0; } }
@media (prefers-reduced-motion:reduce) { .tfc-hero-play-icon::after { animation:none; opacity:0; } }
.tfc-hero-play:hover, .tfc-hero-play:focus-visible { background:#fff; transform:translateY(-2px); }
.tfc-hero-play:hover .tfc-hero-play-icon, .tfc-hero-play:focus-visible .tfc-hero-play-icon { background:var(--tfc-yellow); color:var(--tfc-navy); }
.tfc-hero-play:focus-visible { outline:2px solid var(--tfc-blue); outline-offset:3px; }
@media (max-width:767px) {
  .elementor-174 .elementor-element.elementor-element-e12b0a5 { top:calc(50% - 26px); }
  .tfc-hero-play { gap:10px; padding-block:6px; padding-inline:6px 18px; font-size:14px; }
  .tfc-hero-play-icon { width:40px; height:40px; }
  .tfc-hero-play-icon svg { width:16px; height:16px; margin-left:2px; }
}
/* footer band: equal space above and below, both columns centred on each other */
.elementor-147 .elementor-element.elementor-element-3e58ed2 { --align-items:center; align-items:center; }
.elementor-147 .elementor-element.elementor-element-f8b7e27 { --padding-top:110px; --padding-bottom:110px; }
@media (max-width:1024px) { .elementor-147 .elementor-element.elementor-element-f8b7e27 { --padding-top:56px; --padding-bottom:56px; } }
@media (max-width:767px) { .elementor-147 .elementor-element.elementor-element-f8b7e27 { --padding-top:44px; --padding-bottom:44px; } }

/* -- 4.8 Footer (round 6). The blue band keeps its Elementor markup; below it, div.tfc-footer (generated by r6-footer.py)
      replaces the old logo/menu/service/language rows and the copyright line: brand, company links, services, contact,
      then a bottom bar with copyright and language pills. -- */
/* band: one inner width, calmer paragraph, two brand shapes */
.elementor-147 .elementor-element.elementor-element-f8b7e27 { position:relative; overflow:hidden; border-radius:32px; }
.elementor-147 .elementor-element.elementor-element-f8b7e27::before { content:""; position:absolute; z-index:0; inset:-110px -70px auto auto; width:200px; height:200px; opacity:1; mix-blend-mode:normal; border-radius:50%; background:var(--tfc-yellow); pointer-events:none; }
.elementor-147 .elementor-element.elementor-element-f8b7e27::after { content:""; position:absolute; z-index:0; inset:auto auto -250px -150px; width:420px; height:420px; opacity:1; border-radius:50%; border:64px solid rgba(255,255,255,.07); pointer-events:none; }
[dir="rtl"] .elementor-147 .elementor-element.elementor-element-f8b7e27::before { inset:-110px auto auto -70px; }
[dir="rtl"] .elementor-147 .elementor-element.elementor-element-f8b7e27::after { inset:auto -150px -250px auto; }
.elementor-147 .elementor-element.elementor-element-3e58ed2 { position:relative; z-index:1; --padding-left:112px; --padding-right:112px; --gap:48px 96px; gap:48px 96px; }
.elementor-147 .elementor-element.elementor-element-e367744 { --width:auto; width:auto; flex:1 1 0; min-width:0; }
.elementor-147 .elementor-element.elementor-element-1832a48 { --width:440px; width:440px; flex:0 0 440px; }
.elementor-147 .elementor-element.elementor-element-b872dcc .aux-modern-heading-primary { max-width:640px; }
.elementor-147 .elementor-element.elementor-element-d771ace p, .elementor-147 .elementor-element.elementor-element-d771ace strong { font-size:18px; font-weight:400; line-height:1.7; color:rgba(255,255,255,.86); }
.elementor-147 .elementor-element.elementor-element-d771ace p { margin:0 0 32px; }
.elementor-147 .elementor-element.elementor-element-d771ace > .elementor-widget-container { margin:0; padding:0; }
@media (max-width:1366px) {
  .elementor-147 .elementor-element.elementor-element-3e58ed2 { --padding-left:80px; --padding-right:80px; --gap:40px 64px; gap:40px 64px; }
  .elementor-147 .elementor-element.elementor-element-1832a48 { --width:400px; width:400px; flex-basis:400px; }
  .elementor-147 .elementor-element.elementor-element-b872dcc .aux-modern-heading-primary { font-size:54px; line-height:1.18; }
}
@media (max-width:1024px) {
  .elementor-147 .elementor-element.elementor-element-3e58ed2 { --padding-left:18px; --padding-right:18px; --gap:32px 48px; gap:32px 48px; }
  .elementor-147 .elementor-element.elementor-element-1832a48 { --width:340px; width:340px; flex-basis:340px; }
  .elementor-147 .elementor-element.elementor-element-b872dcc .aux-modern-heading-primary { font-size:40px; }
  .elementor-147 .elementor-element.elementor-element-d771ace p, .elementor-147 .elementor-element.elementor-element-d771ace strong { font-size:16px; }
  .elementor-147 .elementor-element.elementor-element-f8b7e27::before { inset:-90px -60px auto auto; width:140px; height:140px; }
  [dir="rtl"] .elementor-147 .elementor-element.elementor-element-f8b7e27::before { inset:-90px auto auto -60px; }
}
@media (max-width:767px) {
  .elementor-147 .elementor-element.elementor-element-f8b7e27 { border-radius:24px; --padding-left:24px; --padding-right:24px; }
  .elementor-147 .elementor-element.elementor-element-f8b7e27::before { inset:-66px -50px auto auto; width:110px; height:110px; }
  [dir="rtl"] .elementor-147 .elementor-element.elementor-element-f8b7e27::before { inset:-66px auto auto -50px; }
  .elementor-147 .elementor-element.elementor-element-3e58ed2 { --padding-left:0px; --padding-right:0px; --gap:20px; gap:20px; }
  .elementor-147 .elementor-element.elementor-element-e367744, .elementor-147 .elementor-element.elementor-element-1832a48 { --width:100%; width:100%; flex:0 0 auto; }
  .elementor-147 .elementor-element.elementor-element-b872dcc .aux-modern-heading-primary { max-width:none; font-size:30px; line-height:1.2; }
  .elementor-147 .elementor-element.elementor-element-d771ace p { margin-bottom:26px; }
}
/* lower footer */
.tfc-footer { box-sizing:border-box; max-width:1670px; margin:0 auto; padding:88px 35px 0; color:var(--tfc-grey); }
.tfc-footer-cols { display:grid; grid-template-columns:minmax(0,1.45fr) minmax(0,.8fr) minmax(0,1fr) minmax(0,1.2fr); gap:48px 64px; padding-bottom:64px; }
.tfc-footer-logo { display:inline-block; }
.tfc-footer-logo img { display:block; width:auto; height:58px; }
.tfc-footer-brand p { max-width:360px; margin:24px 0 26px; font-size:15px; line-height:1.7; color:var(--tfc-grey); }
.tfc-footer-wa { display:inline-flex; align-items:center; gap:10px; padding-block:10px; padding-inline:14px 20px; border-radius:999px; background:var(--tfc-tint); color:var(--tfc-navy) !important; font-size:15px; font-weight:600; line-height:1.2; text-decoration:none !important; transition:background-color .2s, color .2s; }
.tfc-footer-wa svg { width:20px; height:20px; flex:none; color:#25D366; transition:color .2s; }
.tfc-footer-wa:hover, .tfc-footer-wa:focus-visible { background:var(--tfc-blue); color:#fff !important; }
.tfc-footer-wa:hover svg, .tfc-footer-wa:focus-visible svg { color:#fff; }
.tfc-footer .tfc-footer-h { margin:0 0 22px; font-size:13px; font-weight:700; line-height:1.3; letter-spacing:.12em; text-transform:uppercase; color:var(--tfc-navy); }
[dir="rtl"] .tfc-footer .tfc-footer-h { font-size:15px; letter-spacing:0; }
.tfc-footer .tfc-footer-h a { font:inherit; letter-spacing:inherit; color:inherit !important; text-decoration:none !important; }
.tfc-footer .tfc-footer-h a:hover, .tfc-footer .tfc-footer-h a:focus-visible { color:var(--tfc-blue) !important; }
.tfc-footer-col ul { display:grid; gap:13px; margin:0 !important; padding:0 !important; list-style:none; }
.tfc-footer-col li { margin:0 !important; padding:0 !important; list-style:none; }
.tfc-footer-col a { color:var(--tfc-grey) !important; font-size:15px; font-weight:500; line-height:1.5; text-decoration:none !important; transition:color .2s; }
.tfc-footer-col a:hover, .tfc-footer-col a:focus-visible { color:var(--tfc-blue) !important; }
.tfc-footer-col a[aria-current="page"] { color:var(--tfc-navy) !important; font-weight:700; }
.tfc-footer [data-col="company"] li:last-child a { color:#D10000 !important; font-weight:700; }
.tfc-footer-contact a { display:inline-flex; align-items:flex-start; gap:12px; }
.tfc-footer-contact svg { width:20px; height:20px; flex:none; margin-top:1px; color:var(--tfc-blue); }
.tfc-footer-bottom { display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:16px 32px; padding:26px 0 34px; border-top:1px solid var(--tfc-line); }
.tfc-footer-bottom small { font-size:14px; line-height:1.5; color:var(--tfc-grey); }
.tfc-footer-langs { display:flex; flex-wrap:wrap; gap:8px; }
.tfc-footer-langs a { display:inline-flex; align-items:center; gap:8px; padding:7px 14px; border:1px solid var(--tfc-line); border-radius:999px; color:var(--tfc-grey) !important; font-size:14px; font-weight:500; line-height:1.2; text-decoration:none !important; transition:border-color .2s, color .2s; }
.tfc-footer-langs a:hover, .tfc-footer-langs a:focus-visible { border-color:var(--tfc-blue); color:var(--tfc-blue) !important; }
.tfc-footer-langs a.is-current { border-color:transparent; background:var(--tfc-tint); color:var(--tfc-navy) !important; font-weight:700; }
.tfc-footer-langs img { width:18px; height:13px; border-radius:2px; object-fit:cover; }
.tfc-footer a:focus-visible { outline:2px solid var(--tfc-blue); outline-offset:3px; border-radius:4px; }
@media (min-width:1025px) and (max-width:1280px) {
  .tfc-footer-cols { grid-template-columns:minmax(0,1.15fr) minmax(0,.7fr) minmax(0,1fr) minmax(0,1.35fr); gap:48px 40px; }
  .elementor-147 .elementor-element.elementor-element-b872dcc .aux-modern-heading-primary { font-size:46px; }
}
@media (max-width:1024px) {
  .tfc-footer { padding-top:64px; }
  .tfc-footer-cols { grid-template-columns:repeat(3, minmax(0,1fr)); gap:40px 40px; padding-bottom:48px; }
  .tfc-footer-brand { grid-column:1 / -1; display:flex; flex-wrap:wrap; align-items:center; gap:16px 40px; }
  .tfc-footer-brand p { flex:1 1 320px; margin:0; }
  .tfc-footer-bottom { padding-bottom:88px; } /* the floating switcher and chat bubble sit over this strip */
}
@media (max-width:767px) {
  .tfc-footer { padding-top:56px; }
  .tfc-footer-cols { grid-template-columns:repeat(2, minmax(0,1fr)); gap:36px 24px; padding-bottom:40px; }
  .tfc-footer-brand { display:block; }
  .tfc-footer-logo img { height:50px; }
  .tfc-footer-brand p { margin:18px 0 20px; }
  .tfc-footer-contact { grid-column:1 / -1; }
  .tfc-footer .tfc-footer-h { margin:0 0 18px; }
  .tfc-footer-col ul { gap:12px; }
  .tfc-footer-bottom { flex-direction:column-reverse; justify-content:center; gap:18px; padding:24px 0 104px; text-align:center; }
  .tfc-footer-langs { justify-content:center; }
}

/* ==================================================================================================
   Round 8 audit fixes (2026-09-14)
   ================================================================================================== */
/* -- Home "Latest Posts": the small card's title box was a fixed 72px with overflow hidden (cut to two lines with no
      ellipsis) and the featured excerpt a fixed 71px (the third 25px line was sliced). Both now size to their text;
      the excerpt is clamped to three whole lines. Titles and buttons share one style across the two cards. -- */
.elementor-175 .elementor-element.elementor-element-098e9ce .entry-header { height:auto; overflow:visible; }
.elementor-175 .elementor-element.elementor-element-a9cf1c6 .entry-content { height:auto; display:-webkit-box; -webkit-box-orient:vertical; -webkit-line-clamp:3; overflow:hidden; }
.elementor-175 .elementor-element.elementor-element-a9cf1c6 .entry-title, .elementor-175 .elementor-element.elementor-element-098e9ce .entry-title { line-height:1.25; }
.elementor-175 .elementor-element.elementor-element-098e9ce .entry-meta .aux-read-more { font-weight:700; }
@media (max-width:767px) {
  .elementor-175 .elementor-element.elementor-element-098e9ce .aux-col { padding-bottom:30px !important; }
  .elementor-175 .elementor-element.elementor-element-a9cf1c6 > .elementor-widget-container { padding-bottom:0 !important; margin-bottom:30px !important; }
}

/* -- About hero: the text column had no row gap; its spacing only came from stretching when the photo column was
      taller, so at 1025–1280px the label touched the heading and the paragraph touched the buttons -- */
.elementor-174 .elementor-element.elementor-element-575ec41 { row-gap:24px; }

/* -- Hero headings: the theme adds a 5px start margin to the second span; the first span already ends in a space,
      so the margin only widened the gap ("Our  Priority") and indented the span when it starts a new line -- */
.aux-modern-heading-secondary .aux-head-highlight + .aux-head-after { margin-left:0; margin-right:0; }

/* -- Service tiles: wrapped titles ("Short-Term / Renting") were left-aligned under the centred icon -- */
.aux-widget-recent-portfolios .entry-title { text-align:center; }

/* -- Home "Our Process": the columns were vertically centred, so the shorter first step sat ~12px lower -- */
@media (min-width:768px) {
  .elementor-175 .elementor-element.elementor-element-6da0b9a.e-con,
  .elementor-175 .elementor-element.elementor-element-2ea078b.e-con,
  .elementor-175 .elementor-element.elementor-element-09fe506.e-con { --align-self:flex-start; }
}

/* -- Home hero: the blue shape is anchored 210px from the bottom of the hero, which gets shorter as the window
      narrows; at 1025–1439px it climbed into the header behind the language pill. Pin it to the photo's top edge. -- */
@media (min-width:1025px) and (max-width:1439px) {
  .elementor-175 .elementor-element.elementor-element-840598f { top:0; bottom:auto; }
}

/* -- Blog posts: the theme's 1.8 heading line-height split two-line headings apart on phones -- */
.single-post .entry-content h2, .single-post .entry-content h3, .single-post .entry-content h4 { line-height:1.3; }

/* -- Home on tablets: Elementor's tablet sizes left body copy at 14px (12px job titles), smaller than on phones -- */
@media (min-width:768px) and (max-width:1024px) {
  .elementor-175 .elementor-element-2e1e9bd .aux-modern-heading-description { font-size:15px !important; line-height:1.6 !important; }
  .elementor-175 .elementor-element-60bf972 .aux-modern-heading-description, .elementor-175 .elementor-element-60bf972 .aux-modern-heading-description p { font-size:16px !important; line-height:1.65 !important; }
  .elementor-175 .elementor-element-cb0617e .elementor-testimonial-content { font-size:15px !important; line-height:1.6 !important; }
  .elementor-175 .elementor-element-cb0617e .elementor-testimonial-name { font-size:16px !important; }
  .elementor-175 .elementor-element-cb0617e .elementor-testimonial-job { font-size:14px !important; }
}

/* -- Archives: the blog page's post cards now use the category/author card type (25px titles, 16px excerpts), and
      stacked category/author cards get the blog's 40px gap on phones instead of 10px -- */
.elementor-162 .elementor-element.elementor-element-240fcbe .entry-title a { font-size:25px; line-height:1.32; letter-spacing:-.03em; }
.elementor-162 .elementor-element.elementor-element-240fcbe .entry-content { font-size:16px; }
@media (max-width:767px) {
  .category .aux-col:not(:last-child), .author .aux-col:not(:last-child) { margin-bottom:40px !important; }
}

/* -- Header logo: keyboard focus was invisible -- */
.aux-logo-anchor:focus-visible { outline:2px solid var(--tfc-blue); outline-offset:4px; border-radius:4px; }

/* -- Round 9 (2026-09-14): contact form paused until it has a backend. The form stays visible behind a blur and a notice
      card with a caution stripe floats over it, pointing to WhatsApp and the phone; the form is inert and its controls are
      disabled. To bring it back remove .tfc-form-notice, the inert attribute / .tfc-form-paused class and the disabled
      attributes on the five controls (contact page, EN/TR/AR). -- */
.tfc-contact-form { position:relative; }
.tfc-form-paused { opacity:.5; filter:blur(3px) grayscale(1); user-select:none; pointer-events:none; }
.tfc-form-paused input, .tfc-form-paused textarea, .tfc-contact-form .tfc-form-paused .wpcf7-submit { resize:none; box-shadow:none !important; }
.tfc-form-notice { position:absolute; z-index:2; top:50%; left:50%; width:min(460px, calc(100% - 40px)); transform:translate(-50%, -50%); display:flex; flex-direction:column; align-items:center; gap:18px; padding:46px 36px 36px; overflow:hidden; text-align:center; background:#fff; border-radius:24px; box-shadow:0 40px 80px -30px rgba(14,71,192,.45), 0 0 0 1px rgba(29,36,51,.06); }
.tfc-form-notice::before { content:""; position:absolute; top:0; left:0; right:0; height:10px; background:repeating-linear-gradient(-45deg, var(--tfc-yellow) 0 14px, var(--tfc-navy) 14px 28px); }
.tfc-form-notice-icon { display:flex; align-items:center; justify-content:center; flex:none; width:68px; height:68px; border-radius:50%; background:var(--tfc-yellow); color:var(--tfc-navy); }
.tfc-form-notice-icon svg { width:32px; height:32px; }
.tfc-form-notice-body { min-width:0; }
.tfc-contact-form .tfc-form-notice p { margin:0 auto; max-width:340px; font-size:16px; line-height:1.6; color:#566074; }
.tfc-contact-form .tfc-form-notice .tfc-form-notice-title { margin:0 auto 8px; font-size:22px; font-weight:700; line-height:1.3; letter-spacing:-.01em; color:var(--tfc-navy); }
.tfc-form-notice-actions { display:flex; flex-wrap:wrap; justify-content:center; gap:10px; margin-top:24px; }
.tfc-form-notice-actions .tfc-btn { flex:1 1 150px; }
@media (max-width:767px) {
  .tfc-form-notice { width:calc(100% - 24px); gap:14px; padding:38px 20px 24px; }
  .tfc-form-notice-icon { width:58px; height:58px; }
  .tfc-form-notice-icon svg { width:28px; height:28px; }
  .tfc-contact-form .tfc-form-notice .tfc-form-notice-title { font-size:19px; }
  .tfc-contact-form .tfc-form-notice p { font-size:15px; }
}

/* -- Round 14 review (2026-09-14): home "Latest Posts" on narrow desktops (1025-1365px). The featured card's excerpt keeps
      45% of its width free for the Read More button pinned bottom-right, which is too little below ~1366px, so the button
      sat on the second and third excerpt lines; the button moves under the excerpt there. The one-post column is only
      150-200px wide there, so its button (45px side padding) wrapped "Read More" onto two lines and touched the excerpt. -- */
/* (round 14 excerpt clamp and 1025-1365px card fixes retired in round 24: the shared post card of round 22 replaces them) */

/* -- Round 18 SEO (2026-09-14): the theme printed an empty <h1 class="aux-modern-heading-primary"> above the real hero
      heading on the home and About pages (two h1s per page). It is now a <div>; these are the empty h1's computed margins
      (0.2em / 0.4em of its 53px size) so the hero keeps its exact position. -- */
div.aux-modern-heading-primary:empty { display:block; margin:10.6px 0 21.2px; }
/* the About closing line is a call to action, so it links to the contact page */
.tfc-tagline a { color:inherit !important; text-decoration:none; }
.tfc-tagline a:hover strong, .tfc-tagline a:focus-visible strong { text-decoration:underline; text-underline-offset:4px; }
.tfc-tagline a:focus-visible { outline:2px solid var(--tfc-blue); outline-offset:4px; border-radius:4px; }

/* ==================================================================================================
   Round 20: design audit, phase 1 (contrast, sentence-case headings, keyboard focus, reading measure,
   menu button hit area, Turrist red).
   ================================================================================================== */
/* F1 One secondary grey. The Elementor pages used #70798B (4.38:1 on white, 4.02:1 on the tint cards, below AA);
   the service pages' #566074 now drives the Elementor global colour and --tfc-grey (set at the top of this block). */
.elementor-kit-176 { --e-global-color-72f454e:#566074; }
@media (max-width:414px) { .elementor-175 .elementor-element.elementor-element-a9cf1c6 .entry-content { color:var(--tfc-grey) !important; } }
.elementor-173 .elementor-element.elementor-element-902f9ab label { color:var(--tfc-grey); }
/* F6 Headings keep the case they are written in (sentence case). The theme capitalised every word ("Become A Citizen",
   Turkish "Yatırımı Ve Yönetimi"). Nothing on the site is meant to be uppercased by these classes. */
.elementor-heading-title, .aux-modern-heading-primary, .aux-modern-heading-secondary, .aux-staff-content .col-subtitle { text-transform:none !important; }
/* F5 Every link shows the site's focus ring; the theme removed the outline on content links (service tiles, post cards,
   the hero video link). Components with their own ring (buttons, footer, menu) keep theirs. */
a:focus-visible { outline:2px solid var(--tfc-blue); outline-offset:3px; border-radius:4px; }
.aux-staff-content a:focus-visible { outline-color:#fff; }
/* (F12's 68-character cap on the service page text was removed in round 25: the text fills its column) */
/* F15 The menu button was a 20x20px target, the only way into the navigation below 1025px: 44x44 hit area, same icon */
.aux-burger-box { box-sizing:content-box !important; padding:12px !important; margin:-12px !important; }
/* F19 Turrist keeps its red highlight at a shade that passes AA on white (#D10000, 5.7:1; pure red was 4.0:1) */
#menu-item-907 a span, #menu-item-907 a span:visited, .menu-item-907 a span, .menu-item-907 a span:visited { color:#D10000; }

/* ==================================================================================================
   Round 21: design audit, phase 2 (service tiles, one button, two heading sizes, floating controls,
   service sidebar on tablets/phones, linked feature headings, phone text alignment).
   ================================================================================================== */
/* F3 + F9 Service tiles: one style on Home, About and Services (flat tile, DM Sans 600 label; the Services page had a
   shadow and a 20px/700 label) and two per row on phones instead of one 220px icon per screen. The isotope grid positions
   tiles absolutely; below 768px a CSS grid takes over. */
.elementor-153 .elementor-element.elementor-element-f7cc036 img.tfc-service-icon { box-shadow:none; }
.elementor-153 .elementor-element.elementor-element-f7cc036 .entry-title a { transition:color .3s ease-out; } /* was `all`, which also animated the focus ring in */
.aux-widget-recent-portfolios .entry-title a { font-size:25px !important; font-weight:600 !important; line-height:1.25 !important; }
@media (max-width:1024px) { .aux-widget-recent-portfolios .entry-title a { font-size:21px !important; } }
@media (max-width:767px) {
  .aux-widget-recent-portfolios .aux-portfolio-columns { display:grid !important; grid-template-columns:repeat(2, minmax(0,1fr)); gap:28px 14px; height:auto !important; margin:0 !important; }
  .aux-widget-recent-portfolios .entry-media { width:auto; height:auto; margin:0 0 14px; }
  .aux-widget-recent-portfolios .aux-portfolio-columns > .aux-iso-item, .elementor-153 .elementor-element.elementor-element-f7cc036 .aux-portfolio-columns > .aux-iso-item { position:static !important; left:auto !important; top:auto !important; transform:none !important; width:auto !important; height:auto !important; margin:0 !important; padding:0 !important; }
  .aux-widget-recent-portfolios .aux-media-frame img.tfc-service-icon { max-width:140px; }
  .aux-widget-recent-portfolios .entry-title a { font-size:17px !important; line-height:1.3 !important; }
}

/* F7 One button. Every filled pill (Elementor buttons, Read more, .tfc-btn, the form submit) is 52px tall (48px on
   phones), Quicksand 600 16px, 28px sides, with one centred glow in its own colour. Hover keeps the brand swap:
   blue turns yellow, yellow turns navy. Read more links fill their pill, so the whole pill is clickable. */
a.elementor-button, .tfc-btn, a.aux-read-more, .wpcf7-submit {
  display:inline-flex !important; align-items:center; justify-content:center; gap:12px; min-height:52px; padding:0 28px !important;
  border-radius:999px !important; font-family:"Quicksand", sans-serif; font-size:16px !important; font-weight:600 !important; line-height:1.2 !important;
  letter-spacing:normal; text-transform:none !important; transition:background-color .2s, color .2s, border-color .2s, box-shadow .2s, transform .2s;
}
/* Read more comes in two builds: a pill wrapper around a bare link (home second card, blog, author, category) and a pill
   link (home featured card); both get the page CSS's !important padding and offset glow, hence the longer selectors */
.elementor-175 .elementor-element.elementor-element-098e9ce .aux-col .readmore, .elementor-162 .elementor-element.elementor-element-240fcbe .aux-col .readmore,
.category .aux-col .readmore, .author .aux-col .readmore {
  display:inline-flex !important; padding:0 !important; border-radius:999px !important; box-shadow:0 16px 32px -12px rgba(14,71,192,.45) !important; transition:background-color .2s, box-shadow .2s, transform .2s;
}
.elementor-175 .elementor-element.elementor-element-098e9ce .aux-col .readmore > a.aux-read-more, .elementor-162 .elementor-element.elementor-element-240fcbe .aux-col .readmore > a.aux-read-more,
.category .aux-col .readmore > a.aux-read-more, .author .aux-col .readmore > a.aux-read-more { background:none; box-shadow:none !important; font-size:16px !important; }
.elementor-175 .elementor-element.elementor-element-a9cf1c6 .aux-col a.aux-read-more { padding:0 28px !important; font-size:16px !important; box-shadow:0 16px 32px -12px rgba(14,71,192,.45) !important; }
.elementor-175 .elementor-element.elementor-element-098e9ce .aux-col:hover .readmore, .elementor-162 .elementor-element.elementor-element-240fcbe .aux-col:hover .readmore,
.category .aux-col:hover .readmore, .author .aux-col:hover .readmore, .elementor-175 .elementor-element.elementor-element-a9cf1c6 .aux-col a.aux-read-more:hover {
  background:var(--tfc-yellow) !important; box-shadow:0 16px 32px -12px rgba(214,168,0,.45) !important; transform:translateY(-1px);
}
.aux-col:hover .readmore > a.aux-read-more, .elementor-175 .elementor-element.elementor-element-a9cf1c6 .aux-col a.aux-read-more:hover { color:var(--tfc-navy) !important; }
a.elementor-button .elementor-button-content-wrapper { gap:12px !important; }
a.elementor-button .elementor-button-icon { margin:0 !important; }
a.elementor-button .elementor-button-icon svg, a.elementor-button .elementor-button-icon i { width:16px; height:16px; font-size:16px; }
/* colours: blue pills (Learn more, About "Contact us", Read more, submit, .tfc-btn-primary) and yellow pills (About "Our services", the banner button, .tfc-btn-yellow) */
.elementor-175 .elementor-element-35947dd a.elementor-button, .elementor-175 .elementor-element-f2c8c17 a.elementor-button, .elementor-174 .elementor-element-834b5d3 a.elementor-button,
.wpcf7-submit, .tfc-btn-primary { box-shadow:0 16px 32px -12px rgba(14,71,192,.45) !important; }
.elementor-174 .elementor-element-43d9508 a.elementor-button, .elementor-147 .elementor-element-e487005 a.elementor-button, .tfc-btn-yellow { box-shadow:0 16px 32px -12px rgba(214,168,0,.45) !important; }
.elementor-175 .elementor-element-35947dd a.elementor-button:hover, .elementor-175 .elementor-element-f2c8c17 a.elementor-button:hover, .elementor-174 .elementor-element-834b5d3 a.elementor-button:hover,
.tfc-btn-primary:hover {
  background:var(--tfc-yellow) !important; color:var(--tfc-navy) !important; fill:var(--tfc-navy) !important; box-shadow:0 16px 32px -12px rgba(214,168,0,.45) !important; transform:translateY(-1px);
}
.elementor-174 .elementor-element-43d9508 a.elementor-button:hover, .elementor-147 .elementor-element-e487005 a.elementor-button:hover, .tfc-btn-yellow:hover {
  background:var(--tfc-navy) !important; color:#fff !important; fill:#fff !important; box-shadow:0 16px 32px -12px rgba(29,36,51,.45) !important; transform:translateY(-1px);
}
a.elementor-button:hover svg, a.elementor-button:hover .elementor-button-icon i { fill:currentColor !important; color:currentColor !important; }
.tfc-btn-primary:focus-visible { background:var(--tfc-yellow); color:var(--tfc-navy) !important; }
.tfc-btn-yellow:focus-visible { background:var(--tfc-navy); color:#fff !important; }
@media (max-width:767px) { a.elementor-button, .tfc-btn, a.aux-read-more, .wpcf7-submit { min-height:48px; } }
@media (prefers-reduced-motion:reduce) { a.elementor-button:hover, .tfc-btn:hover, .aux-col:hover .readmore, a.aux-read-more:hover { transform:none !important; } }

/* F8 Two section-heading sizes, DM Sans only. Display: the centred section titles of Home and About and the page titles
   of the index pages (50 / ~42 / 32px). Section: the side and sub-section titles of Home, About and the service pages
   (40 / ~33 / 27px). "Find the service you need" and the mission statement were set in Quicksand. */
.elementor-175 .elementor-element-96d3344 .elementor-heading-title, .elementor-175 .elementor-element-138f714 .elementor-heading-title,
.elementor-175 .elementor-element-b718d0e .elementor-heading-title, .elementor-175 .elementor-element-e81bdae .elementor-heading-title,
.elementor-174 .elementor-element-796440a .elementor-heading-title, .tfc-about-intro h2,
.elementor-153 .elementor-element-bd46819 h1.elementor-heading-title, .tfc-contact-head h1, h1.tfc-page-title, .archive h1.page-title {
  font-family:"DM Sans", sans-serif !important; font-weight:700 !important; font-size:clamp(32px, 2.2vw + 20px, 50px) !important; line-height:1.12 !important; letter-spacing:-.03em !important;
}
.elementor-175 .elementor-element-bfe82b8 .aux-modern-heading-primary, .tfc-about-why > h2, .tfc-about-final > h2,
.tfc-svc-section > h2, .tfc-svc-how > h2, .tfc-svc-text > h2 {
  font-family:"DM Sans", sans-serif !important; font-weight:700 !important; font-size:clamp(27px, 1.6vw + 17px, 40px) !important; line-height:1.18 !important; letter-spacing:-.025em !important;
}
.tfc-about-mission .tfc-statement { font-family:"DM Sans", sans-serif; letter-spacing:-.02em; }

/* F4 Two floating controls at any width: desktop keeps chat + back-to-top (the header has the language picker), tablets
   and phones keep chat + the language pill (the header picker sits inside the menu there). */
@media (min-width:1025px) { .tfc-lang-float { display:none !important; } }
@media (max-width:1024px) { .aux-goto-top-btn { display:none !important; } }

/* F12 Service pages below 1025px: the blue "Talk to an adviser" panel sat right above the site-wide blue banner, two calls
   to action in a row; the hero buttons and the banner cover it, so it is hidden there and "Other services" takes the row. */
@media (max-width:1024px) {
  .tfc-svc-aside .tfc-svc-cta { display:none; }
  .tfc-svc-aside { grid-template-columns:1fr !important; }
}
@media (min-width:768px) and (max-width:1024px) {
  .tfc-svc-others ul { display:grid; grid-template-columns:repeat(2, minmax(0,1fr)); column-gap:12px; }
}

/* F13 The four blue feature titles on the home page link to their service pages */
a.tfc-heading-link { color:inherit !important; text-decoration:none !important; }
a.tfc-heading-link:hover { text-decoration:underline !important; text-underline-offset:4px; text-decoration-thickness:2px; }

/* F16 Phones: running text blocks longer than three lines read from the start edge instead of centred (home About section,
   About intro and closing, the footer banner). Short step captions and hero intros stay centred. */
@media (max-width:767px) {
  .elementor-175 .elementor-element-e17972c, .elementor-175 .elementor-element-e17972c .elementor-heading-title,
  .elementor-175 .elementor-element-e17972c .aux-modern-heading, .elementor-175 .elementor-element-e17972c .aux-widget-inner, .elementor-175 .elementor-element-e17972c .aux-widget-inner > *,
  .elementor-175 .elementor-element-e17972c .aux-modern-heading-description, .elementor-175 .elementor-element-e17972c .elementor-widget-container,
  .tfc-about-intro, .tfc-about-intro *, .tfc-about-final, .tfc-about-final > *,
  .elementor-147 .elementor-element-579476a, .elementor-147 .elementor-element-579476a .elementor-heading-title,
  .elementor-147 .elementor-element-579476a .aux-modern-heading, .elementor-147 .elementor-element-579476a .aux-widget-inner, .elementor-147 .elementor-element-579476a .aux-widget-inner > *,
  .elementor-147 .elementor-element-579476a .aux-modern-heading-description, .elementor-147 .elementor-element-579476a .elementor-widget-container { text-align:start !important; }
  .elementor-175 .elementor-element-e17972c .elementor-widget-button, .elementor-147 .elementor-element-579476a .elementor-widget-button { align-self:flex-start; }
  .elementor-175 .elementor-element-e17972c .elementor-button-wrapper, .elementor-147 .elementor-element-579476a .elementor-button-wrapper { text-align:start !important; }
  .tfc-about-final::before, .tfc-about-intro::before { margin-inline:0 auto !important; }
}

/* ==================================================================================================
   Round 22: design audit, phase 3 (blog post layout, one post card, intro panels on Services and Blog).
   ================================================================================================== */
/* F2 Blog posts: breadcrumb and title first, then a 16:9 image and the text, in one centred 900px column (~85 characters a
   line; 760px until round 25, which ran it across the page width, round 26 brought the column back a little wider). Section
   headings are h2s under the title; lists take brand markers; the separator is a hairline; a related-service block and a
   link back to the blog close the article. */
.single-post .aux-primary .hentry { max-width:900px; margin-inline:auto; }
.single-post .hentry .entry-main { display:block; max-width:none; margin:0; }
.single-post .tfc-post-head { margin:0 0 32px; text-align:start; }
.single-post .tfc-post-head .tfc-crumbs { justify-content:flex-start; margin:0 0 16px; }
.single-post .aux-primary .hentry .tfc-post-head .entry-title { max-width:none; margin:0; padding:0; text-align:start !important; font-family:"DM Sans", sans-serif; font-size:clamp(30px, 1.8vw + 18px, 44px); font-weight:700; line-height:1.15 !important; letter-spacing:-.025em; color:var(--tfc-navy); } /* an older phone rule sets 50px !important */
.single-post .hentry > .entry-media { margin:0 0 40px; }
.single-post .hentry > .entry-media .aux-media-frame.aux-media-image { display:block; aspect-ratio:16 / 9; overflow:hidden; border-radius:20px; box-shadow:0 20px 50px rgba(160,171,201,.3); }
.single-post .hentry > .entry-media .aux-media-frame a { display:block; height:100%; }
.single-post .hentry > .entry-media .aux-media-frame.aux-media-image img { display:block; width:100%; height:100%; object-fit:cover; margin:0 !important; border-radius:0; box-shadow:none; }
.single-post .hentry .entry-content { font-size:18px; line-height:1.75; color:var(--tfc-grey); }
.single-post .hentry .entry-content p { margin:0 0 20px; font-size:inherit; line-height:inherit; color:inherit; }
.single-post .hentry .entry-content strong { color:var(--tfc-navy); }
.single-post .hentry .entry-content h2 { margin:44px 0 14px; font-family:"DM Sans", sans-serif; font-size:clamp(22px, .8vw + 16px, 27px); font-weight:700; line-height:1.3; letter-spacing:-.015em; color:var(--tfc-navy); }
.single-post .hentry .entry-content ul, .single-post .hentry .entry-content ol { margin:0 0 24px; padding-inline-start:24px; }
.single-post .hentry .entry-content li { margin:0 0 8px; padding-inline-start:4px; }
.single-post .hentry .entry-content li > ul, .single-post .hentry .entry-content li > ol { margin:8px 0 12px; }
.single-post .hentry .entry-content li::marker { color:var(--tfc-blue); font-weight:700; }
.single-post .hentry .entry-content hr, .single-post .hentry .entry-content .wp-block-separator { height:0; margin:44px 0; border:0 !important; border-top:1px solid var(--tfc-line) !important; background:none; opacity:1; }
.tfc-post-related { display:grid; grid-template-columns:96px minmax(0,1fr); gap:28px; align-items:start; margin:56px 0 0; padding:36px; border-radius:24px; background:var(--tfc-tint); }
.tfc-post-related img.tfc-service-icon { display:block; width:96px; height:96px; border-radius:24%; background:#fff; box-shadow:0 18px 30px -18px rgba(14,71,192,.35); }
.tfc-post-related-eyebrow { margin:0 0 8px; font-size:12.5px; font-weight:700; letter-spacing:.1em; text-transform:uppercase; color:var(--tfc-blue); }
[dir="rtl"] .tfc-post-related-eyebrow { letter-spacing:0; font-size:14px; }
.tfc-post-related-title { margin:0 0 10px; font-family:"DM Sans", sans-serif; font-size:26px; font-weight:700; line-height:1.2; letter-spacing:-.015em; color:var(--tfc-navy); }
.tfc-post-related-text { margin:0 0 22px; font-size:16px; line-height:1.7; color:var(--tfc-grey); }
.tfc-post-related-actions { display:flex; flex-wrap:wrap; gap:12px; }
.tfc-post-back { margin:28px 0 0; font-size:16px; font-weight:600; }
.tfc-post-back a { display:inline-flex; align-items:center; gap:8px; color:var(--tfc-blue) !important; text-decoration:none; }
.tfc-post-back a::before { content:"←"; }
[dir="rtl"] .tfc-post-back a::before { content:"→"; }
.tfc-post-back a:hover { text-decoration:underline; text-underline-offset:4px; }
@media (max-width:767px) {
  .single-post .hentry > .entry-media { margin-bottom:28px; }
  .single-post .hentry .entry-content { font-size:17px; }
  .single-post .hentry .entry-content h2 { margin-top:36px; }
  .tfc-post-related { grid-template-columns:1fr; gap:18px; margin-top:44px; padding:28px 22px; }
  .tfc-post-related img.tfc-service-icon { width:72px; height:72px; }
  .tfc-post-related-actions .tfc-btn { flex:1 1 auto; }
}

/* F11 One post card for every listing (home, blog, author, category): 16:9 image on top, title, three-line excerpt and
   Read more at the foot of the card. Two posts sit in two equal columns above 767px. The home page used an image card with
   the text over the photo next to a text-only card; the archives showed no images. */
.elementor-175 .elementor-element-2e6f07e > .e-con-inner { flex-direction:row !important; flex-wrap:nowrap !important; align-items:stretch !important; gap:30px !important; }
.elementor-175 .elementor-element-b63b5ce, .elementor-175 .elementor-element-d50e919 { flex:1 1 0 !important; width:auto !important; max-width:none !important; min-width:0; }
.elementor-175 .elementor-element-a9cf1c6, .elementor-175 .elementor-element-098e9ce { flex:1 1 auto; width:100% !important; }
.elementor-175 .elementor-element-a9cf1c6 > .elementor-widget-container, .elementor-175 .elementor-element-098e9ce > .elementor-widget-container { height:100%; margin:0 !important; padding:0 !important; }
.elementor-175 .elementor-element-a9cf1c6 .aux-widget-recent-posts, .elementor-175 .elementor-element-098e9ce .aux-widget-recent-posts,
.elementor-175 .elementor-element-a9cf1c6 .aux-row, .elementor-175 .elementor-element-098e9ce .aux-row { height:100%; display:flex !important; margin:0 !important; }
.elementor-175 .elementor-element-a9cf1c6 .aux-row > .aux-col, .elementor-175 .elementor-element-098e9ce .aux-row > .aux-col { display:flex !important; width:100% !important; float:none !important; height:auto !important; margin:0 !important; padding:0 !important; }
.elementor-175 .elementor-element-b63b5ce, .elementor-175 .elementor-element-d50e919 { --margin-block-start:0px; --margin-top:0px; margin-top:0 !important; }
@media (max-width:767px) {
  .elementor-175 .elementor-element-2e6f07e > .e-con-inner { flex-direction:column !important; }
  .elementor-175 .elementor-element-a9cf1c6 > .elementor-widget-container, .elementor-175 .elementor-element-098e9ce > .elementor-widget-container,
  .elementor-175 .elementor-element-a9cf1c6 .aux-widget-recent-posts, .elementor-175 .elementor-element-098e9ce .aux-widget-recent-posts,
  .elementor-175 .elementor-element-a9cf1c6 .aux-row, .elementor-175 .elementor-element-098e9ce .aux-row { height:auto !important; }
}
.elementor-162 .elementor-element-240fcbe .aux-row, .author .aux-widget-recent-posts .aux-row, .category .aux-widget-recent-posts .aux-row { display:flex !important; flex-wrap:wrap; }
.elementor-162 .elementor-element-240fcbe .aux-row > .aux-col, .author .aux-widget-recent-posts .aux-row > .aux-col, .category .aux-widget-recent-posts .aux-row > .aux-col { display:flex !important; float:none !important; height:auto !important; }
@media (min-width:768px) {
  .elementor-162 .elementor-element-240fcbe .aux-row.aux-total-2, .author .aux-widget-recent-posts .aux-row.aux-total-2, .category .aux-widget-recent-posts .aux-row.aux-total-2 { display:grid !important; grid-template-columns:repeat(2, minmax(0,1fr)); }
  .elementor-162 .elementor-element-240fcbe .aux-total-2 > .aux-col, .author .aux-widget-recent-posts .aux-total-2 > .aux-col, .category .aux-widget-recent-posts .aux-total-2 > .aux-col { width:auto !important; }
}
:is(.elementor-175 .elementor-element-a9cf1c6, .elementor-175 .elementor-element-098e9ce, .elementor-162 .elementor-element-240fcbe, .author .aux-widget-recent-posts, .category .aux-widget-recent-posts) article.column-entry {
  display:flex !important; flex-direction:column; width:100%; height:auto !important; margin:0 !important; padding:0 !important; position:relative;
  background:var(--tfc-tint) !important; border-radius:20px !important; overflow:hidden; box-shadow:none !important; transform:none !important;
}
:is(.elementor-175 .elementor-element-a9cf1c6, .elementor-175 .elementor-element-098e9ce, .elementor-162 .elementor-element-240fcbe, .author .aux-widget-recent-posts, .category .aux-widget-recent-posts) .column-entry .entry-media {
  display:block !important; position:relative; width:auto !important; height:auto !important; margin:0 !important; aspect-ratio:16 / 9; overflow:hidden; border-radius:0 !important;
}
:is(.elementor-175 .elementor-element-a9cf1c6, .elementor-175 .elementor-element-098e9ce, .elementor-162 .elementor-element-240fcbe, .author .aux-widget-recent-posts, .category .aux-widget-recent-posts) .column-entry .entry-media :is(.aux-media-frame, a) {
  display:block !important; width:100% !important; height:100% !important; margin:0 !important; border-radius:0 !important; box-shadow:none !important;
}
:is(.elementor-175 .elementor-element-a9cf1c6, .elementor-175 .elementor-element-098e9ce, .elementor-162 .elementor-element-240fcbe, .author .aux-widget-recent-posts, .category .aux-widget-recent-posts) .column-entry .entry-media img {
  display:block; width:100% !important; height:100% !important; max-width:none !important; object-fit:cover; margin:0 !important; border-radius:0 !important; box-shadow:none !important; transition:transform .5s ease;
}
:is(.elementor-175 .elementor-element-a9cf1c6, .elementor-175 .elementor-element-098e9ce, .elementor-162 .elementor-element-240fcbe, .author .aux-widget-recent-posts, .category .aux-widget-recent-posts) .column-entry:hover .entry-media img { transform:scale(1.03); }
:is(.elementor-175 .elementor-element-a9cf1c6, .elementor-175 .elementor-element-098e9ce, .elementor-162 .elementor-element-240fcbe, .author .aux-widget-recent-posts, .category .aux-widget-recent-posts) .column-entry .entry-main {
  position:static !important; inset:auto !important; display:flex !important; flex-direction:column; flex:1 1 auto; width:auto !important; height:auto !important; max-width:none !important;
  margin:0 !important; padding:26px 30px 30px !important; background:none !important; transform:none !important;
}
:is(.elementor-175 .elementor-element-a9cf1c6, .elementor-175 .elementor-element-098e9ce, .elementor-162 .elementor-element-240fcbe, .author .aux-widget-recent-posts, .category .aux-widget-recent-posts) .column-entry .entry-header { margin:0 0 10px !important; padding:0 !important; }
:is(.elementor-175 .elementor-element-a9cf1c6, .elementor-175 .elementor-element-098e9ce, .elementor-162 .elementor-element-240fcbe, .author .aux-widget-recent-posts, .category .aux-widget-recent-posts) .column-entry .entry-format { display:none !important; }
:is(.elementor-175 .elementor-element-a9cf1c6, .elementor-175 .elementor-element-098e9ce, .elementor-162 .elementor-element-240fcbe, .author .aux-widget-recent-posts, .category .aux-widget-recent-posts) .column-entry :is(.entry-title, .entry-title a) {
  margin:0 !important; padding:0 !important; font-family:"DM Sans", sans-serif !important; font-size:22px !important; font-weight:700 !important; line-height:1.3 !important; letter-spacing:-.01em !important;
  color:var(--tfc-navy) !important; text-shadow:none !important; text-align:start !important;
}
:is(.elementor-175 .elementor-element-a9cf1c6, .elementor-175 .elementor-element-098e9ce, .elementor-162 .elementor-element-240fcbe, .author .aux-widget-recent-posts, .category .aux-widget-recent-posts) .column-entry .entry-title a:hover { color:var(--tfc-blue) !important; }
:is(.elementor-175 .elementor-element-a9cf1c6, .elementor-175 .elementor-element-098e9ce, .elementor-162 .elementor-element-240fcbe, .author .aux-widget-recent-posts, .category .aux-widget-recent-posts) .column-entry .entry-content {
  display:block !important; position:static !important; width:auto !important; height:auto !important; max-height:none !important; margin:0 0 24px !important; padding:0 !important;
  font-size:16px !important; line-height:1.65 !important; color:var(--tfc-grey) !important; text-align:start !important; -webkit-line-clamp:none;
}
:is(.elementor-175 .elementor-element-a9cf1c6, .elementor-175 .elementor-element-098e9ce, .elementor-162 .elementor-element-240fcbe, .author .aux-widget-recent-posts, .category .aux-widget-recent-posts) .column-entry .entry-content p {
  display:-webkit-box; -webkit-box-orient:vertical; -webkit-line-clamp:3; overflow:hidden; margin:0 !important; font-size:inherit !important; line-height:inherit !important; color:inherit !important;
}
:is(.elementor-175 .elementor-element-a9cf1c6, .elementor-175 .elementor-element-098e9ce, .elementor-162 .elementor-element-240fcbe, .author .aux-widget-recent-posts, .category .aux-widget-recent-posts) .column-entry :is(.entry-meta, .aux-after-content) {
  position:static !important; inset:auto !important; display:block !important; width:auto !important; height:auto !important; margin:auto 0 0 !important; padding:0 !important; text-align:start !important;
}
:is(.elementor-175 .elementor-element-a9cf1c6, .elementor-175 .elementor-element-098e9ce, .elementor-162 .elementor-element-240fcbe, .author .aux-widget-recent-posts, .category .aux-widget-recent-posts) .column-entry :is(.readmore, a.aux-read-more) { position:static !important; inset:auto !important; margin:0 !important; float:none !important; }
@media (max-width:767px) {
  :is(.elementor-175 .elementor-element-a9cf1c6, .elementor-175 .elementor-element-098e9ce, .elementor-162 .elementor-element-240fcbe, .author .aux-widget-recent-posts, .category .aux-widget-recent-posts) .column-entry .entry-main { padding:22px 22px 26px !important; }
  :is(.elementor-175 .elementor-element-a9cf1c6, .elementor-175 .elementor-element-098e9ce, .elementor-162 .elementor-element-240fcbe, .author .aux-widget-recent-posts, .category .aux-widget-recent-posts) .column-entry :is(.entry-title, .entry-title a) { font-size:20px !important; }
}
@media (prefers-reduced-motion:reduce) { .column-entry .entry-media img { transition:none !important; transform:none !important; } }

/* F10 Services and Blog open with the service pages' tinted intro panel (breadcrumb, title, one sentence); each service
   tile on the Services page carries one line on what the service covers. */
.tfc-page-intro { padding:56px 64px; border-radius:32px; background:var(--tfc-tint); text-align:start; }
.tfc-page-intro .tfc-crumbs { justify-content:flex-start; margin:0 0 16px; }
.tfc-page-intro h1 { margin:0 !important; padding:0 !important; }
.tfc-page-head .tfc-page-intro { width:100%; margin-bottom:48px; }
.elementor-153 .elementor-element-bd46819 .tfc-page-intro { margin-bottom:12px; } /* the tile grid adds its own 36px */
.tfc-page-intro-text { max-width:640px; margin:16px 0 0; font-size:19px; line-height:1.7; color:var(--tfc-grey); }
.tfc-tile-desc { max-width:280px; margin:8px auto 0; font-size:15px; line-height:1.55; color:var(--tfc-grey); text-align:center; }
@media (max-width:1024px) { .tfc-page-intro { padding:44px 40px; border-radius:28px; } }
@media (max-width:767px) {
  .tfc-page-intro { padding:36px 22px 34px; border-radius:24px; text-align:center; }
  .tfc-page-intro .tfc-crumbs { justify-content:center; }
  .tfc-page-intro-text { margin-inline:auto; font-size:16px; }
  .tfc-tile-desc { font-size:13.5px; line-height:1.5; }
}

/* ==================================================================================================
   Round 23: design audit, phase 4 (About edges, Contact on phones, testimonial authors, footer banner on
   tablets, team roles, chat button colour (assets/js/config.js), 404 page).
   ================================================================================================== */
/* F14 About: the text section and the team row share the 35px page edge at every width (they sat at 60px and 65px
   on desktop; the text widget's stacked side paddings were only removed below 1025px). */
@media (min-width:1025px) {
  .elementor-174 .elementor-element.elementor-element-2e6eeac > .elementor-widget-container { padding-left:clamp(0px, calc(835px - 50vw), 25px) !important; padding-right:clamp(0px, calc(835px - 50vw), 25px) !important; } /* up to 1620px the section starts 10px from the screen edge (25px more = the 35px page edge); from 1670px it is boxed at the footer edge */
  .elementor-174 .elementor-element-2e6eeac .aux-text-inner { padding-left:0 !important; padding-right:0 !important; }
}
@media (min-width:768px) {
  .elementor-174 .elementor-element-741eadf { padding-left:35px !important; padding-right:35px !important; }
  .elementor-174 .elementor-element-741eadf > .e-con-inner { gap:30px !important; }
  .elementor-174 .elementor-element-741eadf > .e-con-inner > .staff-box { flex:1 1 0 !important; width:auto !important; max-width:none !important; margin:0 !important; }
}
@media (min-width:768px) and (max-width:1024px) { .elementor-174 .elementor-element-741eadf > .e-con-inner { gap:20px !important; } }
/* team roles on the photo cards were 11px on phones and tablets */
@media (max-width:1024px) { .elementor-174 .elementor-element-741eadf .staff-box .aux-widget-staff .col-subtitle { font-size:12.5px !important; line-height:1.35 !important; } }

/* F17 Contact on phones: the notice and the blurred form share one grid cell, so the card is as tall as the notice
   (in any language) instead of the whole 640px ghost form; the form behind is clipped and fades out. */
@media (max-width:767px) {
  .tfc-contact-form { display:grid; grid-template-columns:minmax(0,1fr); align-items:start; }
  .tfc-contact-form > .tfc-form-notice { grid-area:2 / 1; position:relative; top:auto; left:auto; transform:none; width:auto; margin:0 4px; align-self:center; }
  .tfc-contact-form > .tfc-form-paused { grid-area:2 / 1; max-height:300px; overflow:hidden; -webkit-mask-image:linear-gradient(#000 50%, transparent); mask-image:linear-gradient(#000 50%, transparent); }
}

/* F18 Testimonials: the author row sits at the foot of every card, so the three line up whatever the quote length */
.elementor-175 .testimonial-box .elementor-widget-testimonial { display:flex; flex:1 1 auto; }
.elementor-175 .testimonial-box .elementor-widget-testimonial > .elementor-widget-container { display:flex; flex-direction:column; flex:1 1 auto; }
.elementor-175 .testimonial-box .elementor-testimonial-wrapper { display:flex; flex-direction:column; flex:1 1 auto; }
.elementor-175 .testimonial-box .elementor-testimonial-meta { margin-top:auto; }

/* Footer banner on small tablets: the heading had a 214px column at 768px and broke into six lines; below 881px the
   banner stacks (heading, then text and button) as it already does on phones. */
@media (min-width:768px) and (max-width:880px) {
  .elementor-147 .elementor-element-3e58ed2 { flex-direction:column !important; align-items:flex-start !important; }
  .elementor-147 .elementor-element-e367744, .elementor-147 .elementor-element-1832a48 { flex:0 0 auto !important; width:100% !important; max-width:600px; --width:100%; }
}

/* F21 404 page (/404.html) */
.tfc-404 { box-sizing:border-box; max-width:1670px; margin-inline:auto; padding-inline:35px; padding-block:24px 96px; } /* the page edge the footer uses: 35px, boxed at 1600px */
.tfc-404-code { margin:0 0 6px; font-family:"DM Sans", sans-serif; font-size:clamp(64px, 5vw + 32px, 112px); font-weight:700; line-height:1; letter-spacing:-.04em; color:var(--tfc-blue); }
.tfc-404-actions { display:flex; flex-wrap:wrap; gap:12px; margin-top:30px; }
.tfc-404-langs { display:flex; flex-wrap:wrap; align-items:center; gap:6px 14px; margin:28px 0 0; font-size:15px; font-weight:600; color:var(--tfc-grey); }
.tfc-404-langs a { color:var(--tfc-blue) !important; text-decoration:none; }
.tfc-404-langs a:hover { text-decoration:underline; text-underline-offset:4px; }
@media (max-width:767px) {
  .tfc-404 { padding-bottom:64px; }
  .tfc-404-actions { justify-content:center; }
  .tfc-404-actions .tfc-btn { flex:1 1 100%; }
  .tfc-404-langs { justify-content:center; flex-direction:column; }
  .tfc-404-langs span[aria-hidden] { display:none; }
}

/* ==================================================================================================
   Round 25: review follow-ups (home About spacing, hero buttons and service tiles on phones, About buttons on phones and
   tablets, full-width service text and blog posts, list numbering).
   ================================================================================================== */
/* Home: the About section sat ~102px under the service tiles from 768px up; the other sections are ~126px apart */
@media (min-width:768px) { .elementor-175 .elementor-element.elementor-element-3d2e8c8 { --padding-bottom:34px; } }
/* Home service tiles: the grid kept the section's 10px edge, so long names ran to the screen edge (11px on phones, 10px for
   "Türkiye Oturum Danışmanlığı" at 1025-1100px); it takes the 35px page edge (as on Services) and long names wrap. From
   1670px the section is boxed at 1600px and nothing changes. */
.elementor-175 .elementor-element.elementor-element-3d2e8c8 { --padding-left:35px; --padding-right:35px; }
/* Home hero on phones: "Watch the video" kept the 20px top margin meant for its stacked layout when it fitted beside
   the button, so it sat lower, and it touched the button. Both centre on one line when they fit, else stack 16px apart. */
@media (max-width:767px) {
  .elementor-175 .elementor-element.elementor-element-bd16315 { --align-items:center; --column-gap:12px; --row-gap:16px; --gap:16px 12px; }
  .elementor-175 .elementor-element.elementor-element-01bde3a > .elementor-widget-container { margin:0 !important; }
  /* the play icon sits beside its text, centred with it, 15px apart: the builder's phone setting put it above the text
     from 415px, and the page's own rule for 414px and below left it 6px above the text's centre (icon bottom margin) */
  .elementor-175 .elementor-element.elementor-element-01bde3a .elementor-icon-box-wrapper { display:flex; align-items:center; text-align:start; }
  .elementor-175 .elementor-element.elementor-element-01bde3a .elementor-icon-box-icon { display:inline-flex; flex:0 0 auto; width:auto; margin:0; margin-inline-end:15px; }
  .elementor-175 .elementor-element.elementor-element-01bde3a .elementor-icon-box-content { padding:0 !important; }
}
/* About intro: the buttons sit 32px under the text at every width. They sat 74px under it below 1025px (a 50px builder
   margin), and 22-57px on desktop, where the column stretches to the photo's height and spread the spare room between its
   rows; the rows now stay together, centred on the photo. */
.elementor-174 .elementor-element.elementor-element-575ec41 { align-content:center; }
.elementor-174 .elementor-element.elementor-element-5e7145b > .elementor-widget-container { margin-bottom:8px; } /* + the row's 24px gap = 32px */
.elementor-174 .elementor-element-5e7145b .aux-modern-heading-description p:last-child { margin-bottom:0; } /* its 15-16px collapsed into the margin above */
@media (max-width:767px) { .elementor-174 .elementor-element.elementor-element-575ec41 { --justify-content:flex-start; --column-gap:16px; --gap:24px 16px; } } /* "Contact us" loses its 20px side padding on phones */
/* Numbered lists restart at 1. Under the theme's `ol { counter-reset:item }`, which replaces the browser's own list-item
   reset, Firefox continued the citizenship post's second list from the first (8, 9, ...); Chrome was not affected.
   `start` and `reversed` keep working in Chrome; Firefox ignores them under the theme rule with or without this one (no
   list on the site uses them). */
ol { counter-reset:item list-item; }

/* ==================================================================================================
   Round 26: header logo, contact map, blog post column (the 900px column itself is in the round 22 F2 rule).
   ================================================================================================== */
/* Header: the logo was 72px tall, 26px under the top of the page and 52px over the content, 3px above the links' centre
   line, and 72px from the first link (an empty divider spacer with 22 + 8px margins, plus the menu's 40px padding). It is
   60px tall now (52px on tablets, set in the tablet block above), 26px under the top and 34px over the content, on the
   links' centre line, and 48px before the first link (the links are 32px apart). */
.elementor-149 .elementor-element.elementor-element-c6b0686 { display:none; }
.elementor-149 .elementor-element.elementor-element-da7e8c6 .aux-widget-logo, .elementor-149 .elementor-element.elementor-element-da7e8c6 .aux-has-logo img { display:block; }
/* (inline, the two left a 6px text gap under the logo, which lowered the links and the burger by 3px) */
@media (min-width:1025px) {
  .elementor-149 .elementor-element.elementor-element-c5cbf15 { --padding-top:26px; --padding-bottom:14px; }
  .elementor-149 .elementor-element.elementor-element-da7e8c6 .aux-has-logo img { height:60px; }
  .elementor-149 .elementor-element.elementor-element-db62658 > .elementor-widget-container { margin:0; padding:0; padding-inline-start:48px; }
}
/* Contact map: Google matched the address to another business at the same number ("7th House Ceramics" on the pin, with
   its place card in the top corner), so the map now points at the address's coordinates and shows a plain pin. The TFC
   card moves to the top corner, clear of Google's map-type and full-screen buttons along the bottom. Until the map has
   drawn, a pin on the tinted box marks the spot where Google's pin appears. */
@media (min-width:768px) {
  /* compact, so it stays clear of the pin in the 385px-wide map at 1025px (the card was 300 x 135px) */
  .tfc-map-card { top:16px; bottom:auto; inset-inline-start:16px; max-width:250px; gap:2px; padding:14px 16px 15px; border-radius:14px; }
  .tfc-map-card strong { font-size:15px; }
  .tfc-map-card span { font-size:13px; line-height:1.45; }
  .tfc-map-card .tfc-map-link { font-size:13.5px; }
}
.tfc-contact-map::before {
  content:""; position:absolute; left:50%; top:50%; width:28px; height:40px; margin:-40px 0 0 -14px;
  background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 28 40'%3E%3Cpath fill='%230E47C0' d='M14 0C6.3 0 0 6.2 0 13.9 0 24.3 14 40 14 40s14-15.7 14-26.1C28 6.2 21.7 0 14 0z'/%3E%3Ccircle cx='14' cy='14' r='5' fill='%23fff'/%3E%3C/svg%3E") no-repeat center / contain;
}
@media (max-width:767px) {
  .tfc-contact-map iframe { position:relative; } /* stays above the pin (the map is 320px tall here, the card under it) */
  .tfc-contact-map::before { top:160px; }
}

/* ==================================================================================================
   Round 27: small-screen fixes from the mobile audit (Arabic language list, Turkish hero headline,
   tap targets, contact fields, long names, squeezed heading).
   ================================================================================================== */
/* F1 The floating language list opened off the left edge in Arabic (x -87 to 99 at every phone width): the rule
   below set `left:0` and then `inset-inline-end:auto`, which in RTL maps to `left` and, coming later, won — so the
   list anchored by its other edge and ran off the screen. The button is on the left in both directions, so the list
   is now pinned to the left in both directions. */
.tfc-lang-float > .tfc-lang-list { left:0; right:auto; }

/* F2 Turkish hero: "Gayrimenkulünüz" did not fit at 325-350px (40px type) or 415-450px (55px type) and the page's
   hidden overflow cut it mid-letter. The type now shrinks only when the longest word would not fit, so English and
   Arabic, whose words fit, keep the sizes they had. The step sizes (30/40/55px) are unchanged as the upper bound. */
@media (max-width:1366px) {
  html[lang|="tr"] .elementor-175 .elementor-element.elementor-element-e3d356c .aux-modern-heading-secondary,
  html[lang|="tr"] .elementor-175 .elementor-element.elementor-element-e3d356c .aux-modern-heading-secondary .aux-head-highlight {
    font-size:min(55px, calc((100vw - 70px) / 8.2)) !important; line-height:1.18 !important;
  }
}
@media (max-width:414px) {
  html[lang|="tr"] .elementor-175 .elementor-element.elementor-element-e3d356c .aux-modern-heading-secondary,
  html[lang|="tr"] .elementor-175 .elementor-element.elementor-element-e3d356c .aux-modern-heading-secondary .aux-head-highlight {
    font-size:min(40px, calc((100vw - 70px) / 8.2)) !important; line-height:1.15 !important;
  }
}
@media (max-width:320px) {
  html[lang|="tr"] .elementor-175 .elementor-element.elementor-element-e3d356c .aux-modern-heading-secondary,
  html[lang|="tr"] .elementor-175 .elementor-element.elementor-element-e3d356c .aux-modern-heading-secondary .aux-head-highlight {
    font-size:min(30px, calc((100vw - 70px) / 8.2)) !important; line-height:1.3 !important;
  }
}
@media (max-width:767px) {
  /* F3 Tap targets: the breadcrumb links' tappable box was 18px tall with nothing else near them, so they take their
     spacing as padding (cancelled by an equal negative margin, so the row keeps its place) and are 28px now.
     Three other cases the audit raised are left alone deliberately:
       - footer links and column headings: the box is 19px/17px, but they sit on a 36.5px pitch, which satisfies the
         minimum-target rule through spacing (a 24px circle on one never reaches its neighbour). Every layout-neutral
         way of padding them shifted the footer by 4-26px, which is not worth it for a case that already passes.
       - card titles and the hero "Watch the video" text: each sits with a large image or play-icon link to the same
         page (48-59px tappable) — the equivalent-target case.
       - the chat widget's label measures 5px short, but that is its arrow outside the box, not clipped text. */
  .tfc-crumbs a { display:inline-block; padding-block:5px; margin-block:-5px; }
  /* F4 iOS zooms the page when a focused field is under 16px */
  .tfc-contact-form input[type="text"], .tfc-contact-form input[type="email"], .tfc-contact-form textarea { font-size:16px; }
  /* F6 the heading widget is a flex item that Elementor lets shrink past its content, so at 320px the Turkish
     "İhtiyacınıza uygun hizmeti bulun" sat in a 143px box and spilled out of it */
  .elementor-175 .elementor-element.elementor-element-138f714 { min-width:min-content; }
}
/* F5 long team names ("Abdulsamet Türkoğlu") overflowed their card by 4-12px in the two-column layout at 320px */
.aux-widget-staff .col-title, .aux-widget-staff .col-subtitle { overflow-wrap:anywhere; }

/* ==================================================================================================
   Round 28 (design audit, round A): the exact fixes that needed no judgement — one testimonial's
   padding, the About service tiles' missing description line, the yellow glow on coloured grounds,
   blog list markers, tablet text alignment, and the footer banner heading's size jumps.
   ================================================================================================== */
/* A1 The third testimonial column carries --padding-bottom:25px on desktop where the other two carry
      48px (a builder slip), so its author row sat 23px lower than theirs from 1026px up. Tablet and
      phone already give all three 40px, which is why they lined up there. */
@media (min-width:1025px) {
  .elementor-175 .elementor-element.elementor-element-020104e { --padding-bottom:48px; }
}

/* A3 Yellow pills on the blue band and inside the blue adviser card carried a blurred yellow glow
      (0 16px 32px -12px rgba(214,168,0,.45)); on blue there is no surface for it to fall on, so it read
      as a halo around the pill. They take a neutral shadow there; yellow pills on white keep the glow. */
.elementor-147 .elementor-element-e487005 a.elementor-button,
.tfc-svc-cta .tfc-btn-yellow { box-shadow:0 16px 32px -12px rgba(8,20,32,.45) !important; }   /* = --tfc-sh-raised-onblue, named in round 29 */
.elementor-147 .elementor-element-e487005 a.elementor-button:hover,
.tfc-svc-cta .tfc-btn-yellow:hover { box-shadow:0 16px 32px -12px rgba(8,20,32,.6) !important; }

/* A4 Blog posts: the theme sets list-style-position:inside, so the marker sits inside the first line box
      and a wrapped line started 19px to the left of the line above it. The service pages avoid this with
      absolutely positioned markers; posts now use outside markers, which align the wrap with the text. */
.single-post .hentry .entry-content ul, .single-post .hentry .entry-content ol,
.single-post .hentry .entry-content li { list-style-position:outside; }

/* A5 Home "About us" feature blurbs read from the start edge on desktop and on phones, but the builder
      centred them between 768 and 1024px, where they stack full width (830px of centred running text at
      900px). Round 21's F16 rule, extended to the tablet band. */
@media (min-width:768px) and (max-width:1024px) {
  /* the builder rule is `.elementor-175 .elementor-element.elementor-element-<id> .aux-widget-inner > *`,
     so the override has to match its shape to outrank it (same specificity, later in the cascade) */
  .elementor-175 .elementor-element.aboutusdescription .aux-widget-inner > * { text-align:start; }
  .elementor-175 .elementor-element.aboutusdescription .aux-modern-heading-description p { text-align:start; }
}

/* A6 Footer banner heading: the builder's steps jumped 46 -> 54px at 1280 and 54 -> 65px at 1366, and at
      1367 the larger type landed in a *narrower* column (537px) than the smaller type had at 1366
      (640px). One ramp from 46px at 1025 to 65px at 1600 removes both jumps and keeps the end values.
      The tablet and phone sizes (40 / 30px, set above) are unchanged. */
@media (min-width:1025px) {
  .elementor-147 .elementor-element.elementor-element-b872dcc .aux-modern-heading-primary {
    font-size:clamp(46px, 3.3vw + 12px, 65px); line-height:1.2;
  }
}

/* ==================================================================================================
   Round 29 (design audit, round B part 1): the token pass for the properties that cannot move the
   layout — corner radius, colour and shadow. Type comes in part 2.

   Radius: three steps. Band 32 (24 on phones) for full-width surfaces, card 20, control 12, plus the
   pill (999), the circle (50%) and the icon tile (24%). It was 32/28/24/20/16/15/14/13/12 before.
   Shadow: three steps, with the hue chosen per surface.
     rest    0 1px 2px      rgba(8,20,32,.04)
     raised  0 16px 32px -12px  (blue .45 | yellow .45 | neutral .3)
     float   0 30px 60px -42px  (blue .4  | neutral .3)
   The popover shadow (header dropdown, language list) stays its own thing: it sits over content rather
   than on the page, and needs the tighter second layer. The off-canvas panel's own 9-10px menu rows are
   left alone too; they are an internally consistent set that never appears beside a card.
   ================================================================================================== */
:root {
  --tfc-r-band:32px; --tfc-r-card:20px; --tfc-r-control:12px;
  --tfc-sh-rest:0 1px 2px rgba(8,20,32,.04);
  --tfc-sh-raised:0 16px 32px -12px rgba(14,71,192,.45);
  --tfc-sh-raised-yellow:0 16px 32px -12px rgba(214,168,0,.45);
  --tfc-sh-raised-neutral:0 16px 32px -12px rgba(8,20,32,.3);
  --tfc-sh-raised-onblue:0 16px 32px -12px rgba(8,20,32,.45);   /* round 28's yellow pills on the blue band */
  --tfc-sh-raised-onblue-hover:0 16px 32px -12px rgba(8,20,32,.6);
  --tfc-sh-float:0 30px 60px -42px rgba(14,71,192,.4);
  --tfc-sh-float-neutral:0 30px 60px -42px rgba(8,20,32,.3);
}

/* -- B1a Bands -- */
.tfc-about-mission { border-radius:var(--tfc-r-band); }          /* was 24px, but it is a full-width band */
.tfc-page-intro { border-radius:var(--tfc-r-band); }
@media (max-width:1024px) { .tfc-page-intro { border-radius:var(--tfc-r-band); } }  /* was a 28px half-step */
@media (max-width:900px)  { .tfc-about-mission { border-radius:24px; } }
@media (max-width:767px)  { .tfc-page-intro { border-radius:24px; } }

/* -- B1b Cards -- */
.tfc-card, .tfc-contact-form, .tfc-contact-map, .tfc-post-related, .tfc-form-notice,
.tfc-svc-grid > li, .tfc-svc-steps > li, .tfc-svc-cta, .tfc-svc-others,
.tfc-video-frame { border-radius:var(--tfc-r-card); }
@media (max-width:767px) {
  .elementor-174 .elementor-element-741eadf .staff-box { border-radius:var(--tfc-r-card); }  /* was 16px */
  .tfc-video-frame { border-radius:var(--tfc-r-control); }
}

/* -- B1c Controls -- */
.tfc-contact-icon, .tfc-about .tfc-icon, .tfc-svc-check { border-radius:var(--tfc-r-control); }
@media (max-width:767px) { .tfc-svc-check { border-radius:var(--tfc-r-control); } }  /* was a 13px half-step */
@media (min-width:768px) { .tfc-map-card { border-radius:var(--tfc-r-control); } }   /* was 14px */
.tfc-map-card { border-radius:var(--tfc-r-control); }
@media (max-width:767px) { .tfc-map-card { border-radius:0; } }                       /* it spans the column there */
.tfc-svc-others a { border-radius:var(--tfc-r-control); }                            /* was 14px */
/* was 30px; it reads as a pill either way at the button's 52px height, but the sweep counted it as its own
   step. The home featured card's own rule is `.elementor-175 .elementor-element.elementor-element-a9cf1c6
   .aux-read-more` (0,4,0 !important), so it needs matching specificity, not just !important. */
.readmore > a.aux-read-more,
.elementor-175 .elementor-element.elementor-element-a9cf1c6 .aux-read-more { border-radius:999px !important; }
.aux-next-prev-posts .np-arrow img.tfc-service-icon { border-radius:24%; }            /* was 22%, the icon-tile step */
/* the home "Our process" badges are a 50px-radius 84x86 box; they belong to the process module, which the
   roadmap rebuilds on the service pages' step pattern, so they are left for that work */
.single-post #commentform input[type="submit"] { border-radius:999px; }               /* was 30px; every other button is a pill */

/* -- B2 Colour: one grey, one tint, one heading dark -- */
/* the four home "About us" blurbs were the only text at #626B7D; every other secondary line is --tfc-grey */
.aboutusdescription p { color:var(--tfc-grey) !important; }
/* the icon tile was #EEF3FC, 1.02:1 away from --tfc-tint — two tints doing one job */
img.tfc-service-icon { background:var(--tfc-tint); }
/* Elementor's second heading dark (#081420) folds into the site navy, as #70798B folded into --tfc-grey in round 20.
   The builder writes it both as a global colour and as a literal on seven heading rules; the literals need the same
   selector shape to be outranked (`.elementor-element.elementor-element-<id>` is 0,4,0). */
.elementor-kit-176 { --e-global-color-3d33dc2:#1D2433; }
.elementor-175 .elementor-element.elementor-element-138f714 .elementor-heading-title,
.elementor-175 .elementor-element.elementor-element-30078b1 .aux-modern-heading-primary,
.elementor-175 .elementor-element.elementor-element-6093b70 .aux-modern-heading-primary,
.elementor-175 .elementor-element.elementor-element-bfe82b8 .aux-modern-heading-primary,
.elementor-175 .elementor-element.elementor-element-ca08ced .aux-modern-heading-primary,
.elementor-174 .elementor-element.elementor-element-5e7145b .aux-modern-heading-secondary { color:var(--tfc-navy); }
/* the three testimonial quotes were #081420D4 and their three author names #1D2433, #081420E3 and #081420 */
.elementor-175 .testimonial-box .elementor-widget-testimonial .elementor-testimonial-content,
.elementor-175 .testimonial-box .elementor-widget-testimonial .elementor-testimonial-name { color:var(--tfc-navy); }

/* -- B3 Shadow: the three steps, and the theme-era offset shadows that lit the page from a second direction -- */
.tfc-card { box-shadow:none; }
.tfc-svc-grid > li { box-shadow:var(--tfc-sh-rest); }
.tfc-svc-grid > li:hover { box-shadow:var(--tfc-sh-float); }
.tfc-svc-steps > li { box-shadow:var(--tfc-sh-rest), var(--tfc-sh-float); }
.tfc-contact-card:hover, .tfc-contact-card:focus-visible { box-shadow:var(--tfc-sh-raised); }
.tfc-contact-form { box-shadow:var(--tfc-sh-float-neutral); }
.tfc-form-notice { box-shadow:var(--tfc-sh-float), 0 0 0 1px rgba(29,36,51,.06); }
.tfc-post-related img.tfc-service-icon { box-shadow:var(--tfc-sh-raised); }
.tfc-svc-hero-art img.tfc-service-icon { box-shadow:var(--tfc-sh-float); }
.single-portfolio .entry-media img.tfc-service-icon { box-shadow:var(--tfc-sh-float); }
/* the post's lead image lit from straight down in lavender (0 20px 50px rgba(160,171,201,.3)) */
.single-post .hentry > .entry-media .aux-media-frame.aux-media-image { box-shadow:var(--tfc-sh-float); }
/* the home hero's play icon threw a yellow shadow 15px to the left and 20px down, which read as a smear
   (the builder writes these two as `#FFDA2B4D` / `#00000033`, hence the 0,4,0 selectors to outrank them) */
.elementor-175 .elementor-element.elementor-element-01bde3a .elementor-icon-box-icon { box-shadow:var(--tfc-sh-raised-yellow); }
/* the three testimonial quote marks carried the only pure-black shadow on the site */
.elementor-175 .testimonial-box .elementor-element .elementor-icon { box-shadow:var(--tfc-sh-raised); }
/* the comment form's submit kept round 1's offset glow after round 21 unified every other button */
.single-post #commentform input[type="submit"] { box-shadow:var(--tfc-sh-raised); }

/* ==================================================================================================
   Round 29, part 2: the sub-heading scale. Below the display sizes (80/65/56/50/40, which are already a
   disciplined set) the site used ten sizes inside a ten-pixel range — 18, 19, 20, 21, 22, 23, 24, 25, 26,
   27 — five of them (19, 20, 21, 23, 25) on one service page. Three steps now:

     lg  25px   (21 on phones)   card and section sub-heads: About cards, service CTA, tile titles,
                                 post and archive card titles at their largest, related-service block
     md  21px   (18 on phones)   "what's included", steps, long-text h3s, post card titles, notice title
     sm  18px   (18 on phones)   the smallest heading role: "why choose us" items, "other services"

   Half-pixel sizes are rounded at the same time (15.5 -> 15, 13.5 -> 13, 12.5 -> 13).
   Body sizes and line-heights are deliberately NOT changed here: unlike the headings they carry the
   reading experience, the right values depend on the measure fix that is still queued, and they deserve
   their own reviewed pass rather than being folded into this one.
   ================================================================================================== */
:root { --tfc-h-lg:25px; --tfc-h-md:21px; --tfc-h-sm:18px; }
@media (max-width:767px) { :root { --tfc-h-lg:21px; --tfc-h-md:18px; } }

/* lg */
.tfc-card h3 { font-size:var(--tfc-h-lg); }                                    /* was 24 */
.tfc-post-related-title { font-size:var(--tfc-h-lg); }                         /* was 26 */
.tfc-contact-form h2 { font-size:var(--tfc-h-lg); }                            /* was 26 */
.tfc-svc .tfc-svc-cta h3 { font-size:var(--tfc-h-lg); }                        /* was 25 */
.single-post .hentry .entry-content h2 { font-size:var(--tfc-h-lg); }          /* was clamp(22, .8vw+16, 27) */
.aux-widget-recent-portfolios .entry-title a { font-size:var(--tfc-h-lg) !important; }
@media (max-width:1024px) { .aux-widget-recent-portfolios .entry-title a { font-size:var(--tfc-h-md) !important; } }
@media (max-width:767px)  { .aux-widget-recent-portfolios .entry-title a { font-size:var(--tfc-h-md) !important; } }  /* was 17 */

/* md */
.tfc-svc-grid h3 { font-size:var(--tfc-h-md); }                                /* was 20 */
.tfc-svc-steps h3 { font-size:var(--tfc-h-md); }                               /* was 21 */
.tfc-svc-text-body h3 { font-size:var(--tfc-h-md); }                           /* was 23 */
.aboutusdescription h3 { font-size:var(--tfc-h-md) !important; }               /* was 20 */
.tfc-contact-form .tfc-form-notice .tfc-form-notice-title { font-size:var(--tfc-h-md); }  /* was 22 */
:is(.elementor-175 .elementor-element-a9cf1c6, .elementor-175 .elementor-element-098e9ce, .elementor-162 .elementor-element-240fcbe, .author .aux-widget-recent-posts, .category .aux-widget-recent-posts) .column-entry :is(.entry-title, .entry-title a) { font-size:var(--tfc-h-md) !important; }  /* was 22 / 20 */
@media (max-width:767px) {
  .tfc-svc-grid h3, .tfc-svc-steps h3, .tfc-svc-text-body h3 { font-size:var(--tfc-h-md); }  /* were 18 / 19 / 20 */
  /* round 3's A3 rule sets 19px !important through `.elementor-175 .elementor-element-60bf972
     .aux-modern-heading-primary`, which is the same h3 at 0,3,0 — the override has to match that shape */
  .elementor-175 .elementor-element-60bf972 .aux-modern-heading-primary,
  .aboutusdescription h3 { font-size:var(--tfc-h-md) !important; }             /* was 19 */
  .tfc-contact-form .tfc-form-notice .tfc-form-notice-title { font-size:var(--tfc-h-md); }   /* was 19 */
}

/* sm */
.tfc-why-grid strong { font-size:var(--tfc-h-sm); }                            /* was 18 */
.tfc-svc-others h3 { font-size:var(--tfc-h-sm); }                              /* was 19 */

/* half-pixel sizes rounded */
.tfc-why-grid li { font-size:15px; }                                           /* was 15.5 */
@media (max-width:767px) { .tfc-svc-grid p, .tfc-svc-steps p { font-size:15px; } }  /* was 15.5 */
.tfc-map-card .tfc-map-link { font-size:13px; }                                /* was 13.5 */
@media (min-width:768px) { .tfc-map-card .tfc-map-link { font-size:13px; } }    /* was 13.5 */
.tfc-contact-label, .tfc-post-related-eyebrow { font-size:13px; }               /* were 12.5 */

/* ==================================================================================================
   Round 30 (design audit, round C): component unification — one card fill, one hover language per card
   role, one page-header pattern, one micro-label, and the chat widget in the site's own clothes.
   (C5, a reading measure on the service pages, was withdrawn on the day — see the note where it was.)
   ================================================================================================== */
/* -- C1 One card fill. Every content card on the site is tinted and borderless; only the service pages'
      "what's included" cards were white with a hairline that measures 1.20:1 against the page, so they
      read as an outline rather than a card. They invert with their icon tile (tinted tile on a white
      card becomes a white tile on a tinted card), the same way the "how it works" step cards already do.
      They also lifted 4px on hover although nothing in them is a link; content cards do not move now.
      The hover language by role: link tiles lift 3px onto --tfc-sh-raised (contact cards), media cards
      zoom their image (post cards, round 22), rows fill white (other services), content cards do not
      respond. -- */
.tfc-svc-grid > li { background:var(--tfc-tint); border-color:transparent; box-shadow:none; }
.tfc-svc-grid > li:hover { transform:none; border-color:transparent; box-shadow:none; }
.tfc-svc-check { background:#fff; }

/* -- C2 One page header. The tinted panel with a breadcrumb, an h1 and an optional lead sentence is the
      pattern the Services page, the Blog page and the six service pages already use; Contact and the two
      archive templates each had their own. The markup change is in the nine pages; these are the rules
      the panel needs in its two new homes. -- */
.tfc-page-intro h1, .tfc-page-intro h1.page-title { font-family:"DM Sans", sans-serif !important; font-weight:700 !important; font-size:clamp(32px, 2.2vw + 20px, 50px) !important; line-height:1.12 !important; letter-spacing:-.03em !important; color:var(--tfc-navy); }
.tfc-contact .tfc-page-intro { max-width:none; margin:0 0 48px; }
.tfc-contact .tfc-page-intro p { max-width:640px; margin:16px 0 0; font-size:19px; line-height:1.7; color:var(--tfc-grey); }
.category .tfc-page-intro, .author .tfc-page-intro { margin-bottom:36px; }
/* the theme paints every link in the page-title header #111 (`.page-title-section .aux-dark a`, 0,2,1),
   which outranks `.tfc-crumbs a`, so the archive breadcrumbs came out near-black instead of brand blue */
.page-title-section .tfc-crumbs a { color:var(--tfc-blue); }
.page-title-section .tfc-crumbs [aria-current] { color:var(--tfc-navy); }
.category h1.page-title, .author h1.page-title, .tfc-page-intro h1.page-title { margin:0; }
@media (max-width:767px) {
  .tfc-contact .tfc-page-intro { margin-bottom:32px; }
  .tfc-contact .tfc-page-intro p { margin-inline:auto; font-size:16px; }
}

/* -- C3 The chat widget. Its greeting was shown at all times (chaty_settings `show_cta:"all_time"`), in
      the one system font on the site, with a 10px radius and the only tooltip-grey shadow — and it sat
      over page content on every page at every width (over a post card's image at 1440, over the card's
      body at 390). It keeps its place and its text; it appears on hover or keyboard focus now, and wears
      the site's type, radius and shadow. Its colour and font come from assets/js/config.js.
      To bring the always-on greeting back, drop the `display:none` rule below. -- */
.chaty-tooltip .on-hover-text {
  font-family:"Quicksand", sans-serif; font-size:14px; line-height:20px; font-weight:600;
  padding:7px 14px; border-radius:var(--tfc-r-control);
  box-shadow:0 12px 28px -12px rgba(8,20,32,.35), 0 1px 3px rgba(8,20,32,.08);
}
.chaty-tooltip.active:not(:hover):not(:focus):not(:focus-within) .on-hover-text { display:none; }
.chaty-channel-list .chaty-channel, .chaty-channel.single .chaty-svg,
.chaty-cta-button { box-shadow:var(--tfc-sh-raised-neutral); }

/* -- C4 One micro-label: 13px / 700 / .1em / uppercase, colour by context (navy in the footer, grey on
      the contact cards and in the panel, blue on the related-service block). They were 13/.12em, 12.5/.1em
      and 12/.1em. In Arabic the tracking comes off and the size goes up one step, as elsewhere. -- */
.tfc-footer .tfc-footer-h { letter-spacing:.1em; }
.aux-offcanvas-menu .tfc-lang .tfc-lang-title { font-size:13px; }
[dir="rtl"] .tfc-footer .tfc-footer-h,
html[dir="rtl"] .tfc-contact-label,
[dir="rtl"] .tfc-post-related-eyebrow,
html[dir="rtl"] .aux-offcanvas-menu .tfc-lang .tfc-lang-title { font-size:14px; letter-spacing:0; }

/* -- C5 (withdrawn, 2026-09-20) Round 30 capped the service pages' long text at 640px to bring the line
      length down from 102 characters at 1440px. The cap left the rest of the column empty beside the text,
      which is not what the page should look like, so the text fills its column again as it did before
      round 30. The column and the sticky aside are unchanged. If the long lines on a wide monitor ever want
      reining in, the single rule below is the place to do it, with a wider value than 640px:
      .tfc-svc-text > h2, .tfc-svc-text-body { max-width:<value>; } -- */

/* ==================================================================================================
   Round 31 (design audit, round D): the header stays with the reader. (D1, the process-module rebuild,
   was withdrawn — see the note below.)
   ================================================================================================== */
/* -- D1 (withdrawn, 2026-09-21) Round 31 rebuilt the home "Our process" module on the service pages' step
      pattern (64px yellow badges, a straight dashed rail, the wave and its masks removed). The previous
      design — blue badges on the dotted wave — was preferred, so the module is back to it exactly; the
      rules were removed rather than overridden. -- */

/* -- D2 The header stays with the reader. Pages run 1,650-9,600px and the navigation scrolled away at the
      top of every one of them; below 1025px the go-to-top button is hidden too, so a phone had no way back
      to the menu but to scroll to the top. The header is sticky now and compacts once the page has moved
      (site.js adds .tfc-stuck), which also gives it the edge it never had against the white pages.
      The theme sets overflow-x:hidden on #inner-body, which makes it a scroll container and disables
      sticky; `clip` hides the same overflow without creating one, exactly as round 4.6 did for the
      service pages' sticky aside. -- */
@supports (overflow:clip) {
  /* the theme's rule is `.aux-full-width #inner-body`, so the override has to carry the class too */
  #inner-body, .aux-full-width #inner-body { overflow:visible; overflow-x:clip; }
  .aux-elementor-header { position:sticky; top:0; z-index:400; background:#fff; }
  /* No transition on the row: the padding comes from Elementor's --padding-top/--padding-bottom, which are
     unregistered custom properties, so the padding change lands in one frame however it is declared
     (measured: a transition on `padding`, on the custom properties, or none at all all behave identically).
     The bar still resizes smoothly, because its height follows the logo and the logo's height does
     transition — that one line below is what does the work. */
  body.tfc-stuck .aux-elementor-header { box-shadow:0 1px 0 var(--tfc-line), 0 12px 28px -20px rgba(8,20,32,.5); }
  /* The logo steps down a little when the bar compacts, and the padding is symmetric so the bar has a real
     centre line to sit on (the resting padding is deliberately 26/14, from round 26).
     What made the compact bar feel off-centre was not the logo: measured as rendered ink, the nav text, the
     logo and the language pill all centre within a pixel of the bar's middle, but the current item's
     underline is pinned to the bottom of a 36px link box, 13px below its own text, which pulled "Home" to
     an ink centre 6px lower than everything beside it. In a 100px bar that reads as a generous underline;
     in a compact one it reads as a link that has slipped down. The links keep their 36px box in both states;
     only the rule moves (see below), which tucks it under the text without shifting the text itself. */
  @media (min-width:1025px) {
    body.tfc-stuck .elementor-149 .elementor-element.elementor-element-c5cbf15 { --padding-top:12px; --padding-bottom:12px; }
    body.tfc-stuck .elementor-149 .elementor-element.elementor-element-da7e8c6 .aux-has-logo img { height:48px; }
  }
  @media (max-width:1024px) {
    body.tfc-stuck .elementor-149 .elementor-element.elementor-element-c5cbf15 { --padding-top:11px; --padding-bottom:11px; }
    body.tfc-stuck .elementor-149 .elementor-element.elementor-element-da7e8c6 .aux-has-logo img { height:44px; }
  }
  .elementor-149 .elementor-element.elementor-element-da7e8c6 .aux-has-logo img { transition:height .25s ease; }
  @media (max-width:480px) {
    body.tfc-stuck .elementor-149 .elementor-element.elementor-element-da7e8c6 .aux-has-logo img { height:40px; }
  }
  /* only the rule moves: shrinking the link box instead took it 2px off the logo's centre line, because the
     row's height is driven by the logo and the menu does not centre against it once the two differ */
  body.tfc-stuck .aux-elementor-header-menu .aux-master-menu.aux-horizontal > .aux-menu-depth-0 > .aux-item-content::after { bottom:4px; }
  /* the off-canvas panel and the video modal sit above the header */
  .aux-offcanvas-menu { z-index:1000; }
  body.tfc-oc-open .aux-elementor-header, body.tfc-modal-open .aux-elementor-header { position:relative; }
}
@media (prefers-reduced-motion:reduce) {
  .elementor-149 .elementor-element.elementor-element-da7e8c6 .aux-has-logo img { transition:none; }
}
/* the theme hides its own two headers when printing but not the Elementor one; a sticky box in print can
   land in the wrong place or repeat, so it prints as an ordinary block at the top of the first page */
@media print {
  .aux-elementor-header { position:static !important; box-shadow:none !important; }
}

/* ==================================================================================================
   Round 32: the half of the type pass that round 29 deferred — body sizes and line-heights. It waited
   because the right values depended on the service-page reading measure, which round 30 settled at 640px.

   Three body steps and two line-heights, as the audit set out:
     prose  18px / 1.75  (17px on phones)  long-form reading: blog posts, the service pages' long text,
                                           the About mission and closing, and the lead sentences that
                                           open a section (they were 19px, a fourth step doing no work)
     body   16px / 1.6                     card and component copy
     small  15px / 1.6   (14px on phones)  tile descriptions, the footer brand line, "why choose us"
   Micro labels (13px) and the 14px meta lines keep their sizes and take the 1.6 ratio. Sizes that are
   not running text — the 18px contact values, the 15px form fields, the display statement — are left
   as they are. Line-heights ranged over 1.39-1.90 before; running text now uses 1.75 or 1.6.
   ================================================================================================== */
:root { --tfc-t-prose:18px; --tfc-t-body:16px; --tfc-t-small:15px; --tfc-lh-prose:1.75; --tfc-lh-ui:1.6; }
@media (max-width:767px) { :root { --tfc-t-prose:17px; --tfc-t-small:14px; } }

/* -- prose -- */
.tfc-svc-text-body p, .tfc-svc-text-body li,
.tfc-about-mission > div > p:not(.tfc-statement),
.tfc-about-final p,
.tfc-lead, .tfc-page-intro-text, .tfc-svc-lead, .tfc-contact .tfc-page-intro p,
.elementor-147 .elementor-element.elementor-element-d771ace p,
.elementor-147 .elementor-element.elementor-element-d771ace strong {
  font-size:var(--tfc-t-prose); line-height:var(--tfc-lh-prose);
}
.single-post .hentry .entry-content { font-size:var(--tfc-t-prose); line-height:var(--tfc-lh-prose); }
@media (max-width:767px) {
  /* the phone rules these override set 16px on the leads and 17px on the post body */
  .tfc-page-intro-text, .tfc-svc-lead, .tfc-contact .tfc-page-intro p,
  .elementor-147 .elementor-element.elementor-element-d771ace p,
  .tfc-svc-text-body p, .tfc-svc-text-body li { font-size:var(--tfc-t-prose); line-height:var(--tfc-lh-prose); }
}

/* -- body -- */
.tfc-about { font-size:var(--tfc-t-body); line-height:var(--tfc-lh-ui); }
.tfc-card .tfc-sub,
.tfc-svc-grid p, .tfc-svc-steps p, .tfc-svc-cta p,
.tfc-post-related-text,
.tfc-contact-form .tfc-form-notice p { font-size:var(--tfc-t-body); line-height:var(--tfc-lh-ui); }
.aboutusdescription p { font-size:var(--tfc-t-body) !important; line-height:var(--tfc-lh-ui) !important; }
.elementor-175 .elementor-element-cb0617e .elementor-testimonial-content { font-size:var(--tfc-t-body) !important; line-height:var(--tfc-lh-ui) !important; }
:is(.elementor-175 .elementor-element-a9cf1c6, .elementor-175 .elementor-element-098e9ce, .elementor-162 .elementor-element-240fcbe, .author .aux-widget-recent-posts, .category .aux-widget-recent-posts) .column-entry .entry-content {
  font-size:var(--tfc-t-body) !important; line-height:var(--tfc-lh-ui) !important;
}
.category .post .entry-content, .author .post .entry-content { line-height:var(--tfc-lh-ui); }

/* -- small -- */
.tfc-tile-desc { font-size:var(--tfc-t-small); line-height:var(--tfc-lh-ui); }
@media (max-width:767px) { .tfc-tile-desc { font-size:var(--tfc-t-small); line-height:var(--tfc-lh-ui); } }  /* was 13.5px, the last half-pixel */
.tfc-footer-brand p, .tfc-why-grid li { font-size:var(--tfc-t-small); line-height:var(--tfc-lh-ui); }
@media (max-width:767px) { .tfc-svc-grid p, .tfc-svc-steps p { font-size:var(--tfc-t-small); line-height:var(--tfc-lh-ui); } }

/* -- meta lines keep their size and take the shared ratio -- */
.tfc-footer-bottom small, .tfc-map-card span { line-height:var(--tfc-lh-ui); }

/* -- Round 32b: the running text the builder kept outside the scale, found by sweeping every text block
      rather than only the site's own classes. --
   Home hero lead      17px/1.47 on desktop but 18px/1.39 on phones — larger on the smaller screen.
   About hero lead     16px/1.56, 15px/1.67 on phones, against the home hero's 17px.
   Home "About us" text 18px/1.39 on desktop and 14px/1.79 on tablets and phones, where the four blurbs
                       beside it are 16px: the smallest body copy on the site, in its main paragraph.
   (The process step captions were on this list too; they went back to their previous sizes with the
   previous process design.)
   Post list items     1.9 against their own paragraphs' 1.75. */
.elementor-175 .elementor-element.elementor-element-e3d356c .aux-modern-heading-description p,
.elementor-174 .elementor-element.elementor-element-5e7145b .aux-modern-heading-description p,
.elementor-175 .elementor-element.elementor-element-e17972c .aux-modern-heading-description p {
  font-size:var(--tfc-t-prose); line-height:var(--tfc-lh-prose);
}
.single-post .hentry .entry-content li { line-height:var(--tfc-lh-prose); }
.tfc-about .tfc-list li, .tfc-about .tfc-list li > span, .tfc-about .tfc-list li > strong { line-height:var(--tfc-lh-ui); }
.tfc-footer-contact a span { line-height:var(--tfc-lh-ui); }

/* -- Go-to-top button (desktop; it is hidden below 1025px): centred on the chat button above it. The chat
      button is 70px wide with its centre 64px in from the right edge of the window in every language, so the
      35px arrow sits 64 - 17.5 = 46.5px in from the right. It was 50px (3.5px left of the chat button's
      centre), and in Arabic the theme's RTL stylesheet moved it to the bottom-left corner while the chat
      button stays bottom-right, so the two sat on opposite sides of the screen. -- */
@media (min-width:1025px) {
  .aux-goto-top-btn, html[dir="rtl"] .aux-goto-top-btn { left:auto !important; right:46.5px !important; }
}
