/* 
Theme Name: Hello Elementor Child
Theme URI: https://github.com/elementor/hello-theme-child/
Description: Hello Elementor Child is a child theme of Hello Elementor, created by Elementor team
Author: Elementor Team
Author URI: https://elementor.com/
Template: hello-elementor
Version: 2.0.0
Text Domain: hello-elementor-child
License: GNU General Public License v3 or later.
License URI: https://www.gnu.org/licenses/gpl-3.0.html
Tags: flexible-header, custom-colors, custom-menu, custom-logo, editor-style, featured-images, rtl-language-support, threaded-comments, translation-ready
*/

/* Add your custom styles here */

.project-table .elementor-element {
    border-bottom: 1px solid #cccccc;
}

.project-table p { margin-block-end:0; }

.remove-block p { margin-block-end:0; }

/* homepage video ratio */
/* .feat-video.elementor-widget-video.elementor-element .elementor-widget-container .e-hosted-video.elementor-wrapper {
	--video-aspect-ratio: 2.21;
}*/

a.hover-underline-animation:hover::after{
	transform: scaleX(1);
    transform-origin: bottom left;
}

a.hover-underline-animation::after{
	content: '';
    position: absolute;
    width: 100%;
    transform: scaleX(0);
    height: 2px;
    bottom: -5px;
    left: 0;
    background-color: var( --e-global-color-secondary );
    transform-origin: bottom right;
    transition: transform 0.25s ease-out;
}

/**/
.comments-area a, .page-content a{
	text-decoration:none!important;
	
}

/*Animated underline hover for inline CTAs: ADD CLASS cta-un to any a href links to activate */
a.cta-un{
  position: relative;
}

a.cta-un::after{
  position: absolute;
  content: "";
  background: var( --e-global-color-primary );
  bottom: -0.4em;
  right: 0;
  height: 2px;
  width: 0%;
  transition: 300ms ease-in-out;
}

a.cta-un:hover::after{
  width: 100%;
  left: 0;
}


/* ONLY apply these fixes when reduced motion is detected */
@media (prefers-reduced-motion: reduce) {
	html {
        scroll-behavior: smooth !important;
    }
	.elementor-motion-effects-element,
	.elementor-motion-effects-layer, 
	.brokenslider-fix .elementor-motion-effects-element, /*Added brokenslider-fix class to carousels*/
	.brokenslider-fix .elementor-motion-effects-layer 	
	{
        transition-duration: 1s !important;
    	transition-property: transform,opacity !important;
    	transition-timing-function: cubic-bezier(0,.33,.07,1.03) !important;
    }
    .animated,
	.brokenslider-fix .animated{
        animation: inherit !important;
		animation-duration: inherit !important;
		animation-play-state: running !important;
		transition-duration: inherit !important;
    }

    /* Restore animations for the nested and loop carousel container */
    .elementor-widget-loop-carousel.animated,
	.scroll-arrow .animated, /*homepage anchor link arrow over video*/
	.elementor-widget-n-carousel.animated	{
        animation: inherit !important;
        animation-duration: 1.25s !important;
    }
    .elementor-widget-loop-carousel.animated.animated-slow,
	.elementor-widget-n-carousel.animated.animated-slow	{
        animation-duration: 2s !important;
    }
	
    .elementor-widget-loop-carousel.animated.animated-fast,
	.elementor-widget-n-carousel.animated.animated-fast	{
        animation-duration: .75s !important;
    }
    .elementor-widget-loop-carousel.animated.infinite,
	.elementor-widget-n-carousel.animated.infinite{
        animation-iteration-count: infinite !important;
    }
    /* Restore transitions for the carousel */
    .elementor-widget-loop-carousel, .elementor-widget-n-carousel,
    .elementor-widget-loop-carousel *, .elementor-widget-n-carousel * {
        transition-delay: inherit !important;
        transition-duration: inherit !important;
    }

    /* Restore carousel widget container transitions */
    .elementor-widget-loop-carousel .elementor-widget-container,
	.elementor-widget-n-carousel .elementor-widget-container{
        transition: background .3s, border .3s, border-radius .3s, box-shadow .3s, transform var(--e-transform-transition-duration, .4s) !important;
    }

    /* Restore carousel transform transitions */
    .elementor-widget-loop-carousel.e-transform .elementor-widget-container,
    .elementor-widget-loop-carousel.e-transform:not(:has(.elementor-widget-container)),
	.elementor-widget-n-carousel.e-transform .elementor-widget-container,
    .elementor-widget-n-carousel.e-transform:not(:has(.elementor-widget-container))
	{
        transition: background .3s, border .3s, border-radius .3s, box-shadow .3s, transform var(--e-transform-transition-duration, .4s) !important;
    }

    /* Restore carousel swiper transitions (common for carousels) */
    .elementor-widget-loop-carousel .swiper-slide, .elementor-widget-n-carousel .swiper-slide,
    .elementor-widget-loop-carousel .swiper-container, .elementor-widget-n-carousel .swiper-container,
    .elementor-widget-loop-carousel .swiper-wrapper, .elementor-widget-n-carousel .swiper-wrapper {
        transition-delay: inherit !important;
        transition-duration: inherit !important;
    }

    /* Restore carousel navigation arrows transitions */
    .elementor-widget-loop-carousel .elementor-swiper-button, .elementor-widget-n-carousel .elementor-swiper-button,
    .elementor-widget-loop-carousel .swiper-button-next, .elementor-widget-n-carousel .swiper-button-next,
    .elementor-widget-loop-carousel .swiper-button-prev, .elementor-widget-n-carousel .swiper-button-prev   {
        transition: all .3s !important;
    }

    /* Restore any images in the carousel */
    .elementor-widget-loop-carousel img,
	.elementor-widget-n-carousel img {
        transition: all .3s !important;
    }

    /* Restore any buttons in the carousel */
    .elementor-widget-loop-carousel .elementor-button,
	.elementor-widget-n-carousel .elementor-button {
        transition: all .3s !important;
    }

    /* Restore any icons in the carousel */
    .elementor-widget-loop-carousel .elementor-icon,
	.elementor-widget-n-carousel .elementor-icon{
        transition: all .3s !important;
    }

    /* Restore carousel overlay transitions if it's an e-con */
    .elementor-widget-loop-carousel.e-con:before,
	.elementor-widget-n-carousel .e-con:before {
        transition: background var(--overlay-transition, .3s), border-radius var(--border-transition, .3s), opacity var(--overlay-transition, .3s) !important;
    }

    /* Restore autoplay animations for carousel slides */
    .elementor-widget-loop-carousel .animated,
	.elementor-widget-n-carousel .animated{
        animation: inherit !important;
        animation-duration: 1.25s !important;
    }
	
	/* Restore animations for process slider */
	.elementor-swiper-button{
		transition-delay: inherit !important;
        transition-duration: inherit !important;
	}
		
	/* Restore spinny arrows */
	.elementor-button-link .elementor-button-icon {
	 transition: transform 0.5s ease !important;
	}
	
		
}
/*--------------------------Footer template--------------------------*/

.elementor-template .cta-section a {
	color: var( --e-global-color-secondary );
	text-decoration:none;
}


/*--------------------------HOMEPAGE Slider (homepage and individual projects) --------------------------*/

.elementor-swiper-button{
   width:0.6em;
}

/*Project Carousel: Offset to the right*/ 

.project-swiper .swiper {
    overflow:visible!important; 
clip-path: inset(0 -200% 0 0); 
}

/*Project Carousel: Clipping to the edges of the page*/ 

.elementor-element-b9ac82f, .elementor-element-b9ac82f .e-con /*Homepage section*/,
.elementor-element-d408597, .elementor-element-d408597 .e-con/*Project Template section*/{
    overflow:hidden!important;
}


/*--------------------------//HOMEPAGE Slider (homepage and individual projects)--------------------------*/

/*--------------------------OUR PROCESS Page --------------------------*/

.process-toggle .e-n-accordion .e-n-accordion-item-title {
    display: flex;
    justify-content: space-between;
    align-items: center;
}
	
/* END animated arrows for Awards */

/*--------------------------//OUR PROCESS Page --------------------------*/

/*--------------------------ARCHIVE Page + Animated Arrow class--------------------------*/

/*Add arrow to end of 'Read More' text*/
.animated-arrow::after,
.elementor-post__read-more::after,
.internal-link a::after /*Awards list – see project*/{
    content: "";
    background-image: url(https://chateau.php8.ocsdev.com.au/wp-content/uploads/2025/10/arrow-black-topright.svg);
    opacity:0.5;
    display: inline-block;
    width: 13px; /* Adjust size as   needed */
    height: 13px; /* Adjust size as needed */
    vertical-align: middle;
    margin-bottom:3px;
    margin-left: 10px; /* Space between SVG and text */
    background-size: cover;
}

.internal-link a /*ABOUT//AWARDS match the line height of 'See Awards' with 'See Project' */{
	line-height:19px!important;
}

.animated-arrow:hover:after,
.elementor-post__read-more:hover:after,
.internal-link a:hover:after{
    opacity:1.0;
    transform: rotate(45deg) /* translateX(5px) translateY(-2px) */;
    transition: transform 0.5s ease;
}

.archive-container .elementor-posts .elementor-post__excerpt p{
    font-size:16px!important;
}

/*Add Ellipses to end of excerpt*/
.archive-container .elementor-post__excerpt p::after{
    content:"...";
    display:inline!important;
}


/*--------------------------// ARCHIVE Page --------------------------*/

/*--------------------------HOMEPAGE Page --------------------------*/

/*Project sliders. In Progress/Delivered label styling */
.hm-projects-card .progress {
   position:absolute;
   top:0px;
   right:0px;
   width:100px;
}

.hm-projects-card .progress p{
    margin-block-end:0!important;
}


/*--------------------------// HOMEPAGE Page --------------------------*/


/* START spacing for individual awards section */
.individual-award p {
margin-block-end:0!important;
}

/* Green "Delivered" projects container */
.elementor .swiper-slide .progress:has(a[href*="delivered"]) {
    background-color: var( --e-global-color-primary );
}
.elementor .swiper-slide .progress:has(a[href*="delivered"]) a {
    color: #ffffff;
}

/*Video:*/
.elementor.elementor-77 .elementor-element .elementor-widget-video .elementor-wrapper {
	--video-aspect-ratio: 2.21 !important;
}

.elementor-widget-video .elementor-wrapper iframe, .elementor-widget-video .elementor-wrapper video{
   background-color:transparent!important;
   position: relative; top: 0; left:0; clip-path: inset(0 0 1px 0);/*Video: remove bottom black line*/
}

/*Set height of video to height of browser */
.elementor-widget-video .elementor-wrapper iframe,  
.elementor-widget-video .elementor-wrapper video{
	object-position: center bottom;
	/* Fallback for browsers that do not support dvh */    
    height: 100vh;
    min-height: 100vh;
    /* Modern and reliable method for full screen height */
    height: 100dvh;
    min-height:100dvh;
}
	/* Safari fix */
	@supports (hanging-punctuation: first) and (font: -apple-system-body) and (-webkit-appearance: none) {
	  .elementor-widget-video .elementor-wrapper video {
				clip-path: inset(0 0 0.5px 0);
		}
	}

/*--------------------------HOVER EFFECT ON IMAGES on NEWS CARD + ARCHIVE/CATEGORY + PROJECTS LISTING Loop Item --------------------------*/

/*Zoom on hover effect for news images*/

.img-news /*news*/,
.archive-container .elementor-post /*archive/category*/,
.hm-projects-card .swiper-slide /*homepage*/{
    position:relative;
}

/*Archive/ Category New Card positioning of thumbnail image*/
.archive-container .elementor-posts-container.elementor-has-item-ratio .elementor-post__thumbnail img:hover{
    left: calc(50% + 20px);
    position: absolute;
    top: calc(50% + 20px);
    transform: scale(1.1) translate(-50%,-50%);
	transition-duration: 600ms!important;
}

.img-news .zoom-clip img:hover /*news*/,
.hm-projects-card .zoom-clip img:hover /*homepage*/
{
    transform: scale(1.1)!important;
    overflow:hidden!important;
    transition-duration: 600ms!important;	
}

.img-news .zoom-clip,
.hm-projects-card .zoom-clip,
.archive-container .elementor-post .elementor-post__thumbnail/*archive/category*/{
    overflow:hidden!important;
}

/*--------------------------// HOVER EFFECT ON IMAGES on NEWS CARD + ARCHIVE/CATEGORY  Loop Item  --------------------------*/


/*-------Responsive----------*/

@media screen and (max-width: 1024px) {
/*Set height of video for mobile */
	.elementor-widget-video .elementor-wrapper iframe,  
	.elementor-widget-video .elementor-wrapper video{
		height: 100%;
		min-height:100%;
	}
}

@media screen and (max-width: 767px) {
/*Set height of video for mobile */
	.elementor-widget-video .elementor-wrapper iframe,  
	.elementor-widget-video .elementor-wrapper video{
		height: 150%;
		min-height:150%;
	}
}