/*
 Theme Name:     Divi Child
 Theme URI:      
 Description:    Divi Child Theme
 Author:         
 Author URI:     
 Template:       Divi
 Version:        1.0.0
*/
 
 
/* =Theme customization starts here - Philiart
------------------------------------------------------- */

/* =========================
   Desktop menu adjustments
========================= */

/* White active link */
#top-menu > li.current-menu-item > a,
#top-menu > li.current_page_item > a,
#top-menu > li.current-menu-ancestor > a,
#top-menu li li.current-menu-item > a,
#top-menu li li.current_page_item > a,
#top-menu li li.current-menu-ancestor > a {
	color: #FFFFFF !important;
	opacity: 1 !important;
}

/* Menu underline */
#top-menu li a {
	font-weight: 300 !important;
}

#top-menu > li.current-menu-item > a::before,
#top-menu > li.current_page_item > a::before,
#top-menu > li.current-menu-ancestor > a::before,
#top-menu li li.current-menu-item > a::before,
#top-menu li li.current_page_item > a::before,
#top-menu li li.current-menu-ancestor > a::before {
	content: "";
	position: absolute;
	z-index: 2;
	left: 0;
	right: 0;
}

#top-menu li a:before {
	content: "";
	position: absolute;
	z-index: -2;
	left: 0;
	right: 100%;
	bottom: 50%;
	background: #00aeff;
	height: 3px;
	border-radius: 999px;
	pointer-events: none;
	-webkit-transition-property: right;
	transition-property: right;
	-webkit-transition-duration: 0.8s;
	transition-duration: 0.8s;
	-webkit-transition-timing-function: cubic-bezier(.4,0,.2,1);
	transition-timing-function: cubic-bezier(.4,0,.2,1);
}

#top-menu li a:hover {
	opacity: 1 !important;
}

#top-menu li a:hover:before {
	right: 0;
}

#top-menu li li a:before {
	bottom: 10%;
}

/* Remove the down arrow from menu */
#top-menu .menu-item-has-children > a:first-child:after {
	content: "";
}

#top-menu .menu-item-has-children {
	padding-right: 0;
}

#top-menu a::after {
	display: none;
}

/* Fix underline only for Services after removing arrow */
#top-menu > li.menu-item-193 > a:hover:before,
#top-menu > li.menu-item-193.current-menu-item > a:before,
#top-menu > li.menu-item-193.current-menu-ancestor > a:before {
	right: 20px;
}

/* Dropdown menu adjustments */
#top-menu li ul.sub-menu {
	width: 480px !important;
	left: -180px !important;
	right: auto !important;
	padding: 20px !important;
	border-radius: 0 0 20px 20px;
	opacity: 0;
	visibility: hidden;
	transform: translateY(-18px);
	-webkit-transform: translateY(-18px);
	-webkit-transition:
		opacity 0.8s cubic-bezier(.4,0,.2,1),
		-webkit-transform 0.8s cubic-bezier(.4,0,.2,1),
		visibility 0s linear 0.8s;
	transition:
		opacity 0.8s cubic-bezier(.4,0,.2,1),
		transform 0.8s cubic-bezier(.4,0,.2,1),
		visibility 0s linear 0.8s;
}

/* Show dropdown */
#top-menu li:hover > ul.sub-menu {
	opacity: 1;
	visibility: visible;
	transform: translateY(0);
	-webkit-transform: translateY(0);
	-webkit-transition:
		opacity 0.8s cubic-bezier(.4,0,.2,1),
		-webkit-transform 0.8s cubic-bezier(.4,0,.2,1);
	transition:
		opacity 0.8s cubic-bezier(.4,0,.2,1),
		transform 0.8s cubic-bezier(.4,0,.2,1);
}

/* Spread items full width */
#top-menu li ul.sub-menu li {
	width: 470px !important;
	padding: 7px 20px !important;
}

#top-menu li ul.sub-menu li a {
	display: block;
	width: 400px;
	padding: 0 0 10px 20px !important;
}

#top-menu .sub-menu {
	border-top: 0;
}


/* =========================
   Header width
========================= */

#main-header > .container {
	width: 90% !important;
}


/* =========================
   Mobile content width
========================= */
@media only screen and (max-width: 980px) {
	#top-header > .container,
	#main-header > .container,
	#et_search_outer > .container,
	#main-content > .container,
	div.et_pb_row:not(.et_pb_row_17),
	div.et_pb_row.et_pb_row_fullwidth:not(.et_pb_row_17) {
		width: 90% !important;
	}

	div.et_pb_row.et_pb_row_fullwidth:not(.et_pb_row_17) {
		width: 90% !important;
	}

	div.et_pb_row.et_pb_row_17.et_flex_row.dark-blurb {
		width: 100vw !important;
		max-width: 100vw !important;
		margin-left: calc(50% - 50vw) !important;
		margin-right: calc(50% - 50vw) !important;
	}
}

/* =========================
   Mobile menu adjustments
========================= */
@media (max-width: 1015px) {

	/* Show mobile trigger, hide desktop menu */
	#et_mobile_nav_menu {
		display: block;
	}

	#top-menu {
		display: none;
	}

	/* Fix header */
	.et_non_fixed_nav.et_transparent_nav #main-header,
	.et_non_fixed_nav.et_transparent_nav #top-header,
	.et_fixed_nav #main-header,
	.et_fixed_nav #top-header {
		position: fixed;
	}

	/* Header sizing */
	#main-header {
		height: 80px;
	}

	.logo_container {
		height: 80px !important;
	}

	#et-top-navigation {
		padding-top: 25px !important;
	}

	/* Mobile-only logo */
	.et_header_style_left #logo,
	.et_header_style_split #logo {
		max-width: 130px !important;
	}

	/* Full-width / full-height mobile menu */
	#mobile_menu {
		position: fixed;
		top: 80px;
		left: 0;
		right: 0;
		width: 100vw;
		height: calc(100dvh - 80px);
		overflow-y: auto;
		-webkit-overflow-scrolling: touch;
		padding: 20px 5% calc(30px + env(safe-area-inset-bottom));
		box-sizing: border-box;
		background: #000635 !important;
		border-top: 0;
		border-bottom: 1px solid rgba(255,255,255,0.2);
	}

	/* Clean base */
	.et_mobile_menu {
		border-top: 0;
		background: transparent !important;
	}

	.et_mobile_menu li,
	.et_mobile_menu li a {
		position: relative;
		z-index: 1;
	}

	/* Mobile links */
	.et_mobile_menu li a {
		position: relative;
		display: block;
		padding: 16px 0 !important;
		text-align: left;
		font-size: 19px !important;
		font-weight: 300 !important;
		letter-spacing: 1px !important;
		color: #FFFFFF !important;
		opacity: 1 !important;
		border-bottom: 0 !important;
		background: none !important;
	}

	.et_mobile_menu li a:hover {
		background: none !important;
		color: #FFFFFF !important;
		opacity: 1 !important;
	}

	/* Underline animation matching desktop */
	.et_mobile_menu li a::before {
		content: "";
		position: absolute;
		left: 0;
		right: 100%;
		bottom: 10px;
		height: 3px;
		background: #00aeff;
		border-radius: 999px;
		pointer-events: none;
		-webkit-transition-property: right;
		transition-property: right;
		-webkit-transition-duration: 0.8s;
		transition-duration: 0.8s;
		-webkit-transition-timing-function: cubic-bezier(.4,0,.2,1);
		transition-timing-function: cubic-bezier(.4,0,.2,1);
	}

	/* Active mobile items */
	.et_mobile_menu li.current-menu-item > a,
	.et_mobile_menu li.current_page_item > a,
	.et_mobile_menu li.current-menu-ancestor > a {
		color: #FFFFFF !important;
		opacity: 1 !important;
	}

	.et_mobile_menu li.current-menu-item > a::before,
	.et_mobile_menu li.current_page_item > a::before,
	.et_mobile_menu li.current-menu-ancestor > a::before {
		right: 0;
	}

	/* Remove left indent from mobile submenu */
	.et_mobile_menu ul.sub-menu {
		padding-left: 0 !important;
		margin-left: 0 !important;
		background: transparent !important;
	}

	/* Submenu items */
	.et_mobile_menu li li a {
		font-size: 17px !important;
		font-weight: 300 !important;
		padding: 14px 0 !important;
	}

	.et_mobile_menu li li a::before {
		bottom: 8px;
	}

	/* Remove default borders/shadows */
	.et_mobile_menu li a,
	.et_mobile_menu li ul.sub-menu a {
		border-bottom: 0 !important;
		box-shadow: none !important;
	}

	/* =========================
	   Clickable mobile menu
	========================= */

	.et_mobile_menu .parent-menu-item > a {
		background-color: transparent;
		position: relative;
	}

	/* Toggle icon */
	.et_mobile_menu .parent-menu-item > a:after {
		font-family: 'ETmodules';
		content: '\43';
		font-weight: normal;
		position: absolute;
		top: 13px;
		right: 10px;
		transition: transform 0.45s cubic-bezier(.4,0,.2,1);
		transform-origin: center;
	}

	/* Rotated icon when open */
	.et_mobile_menu .parent-menu-item > a.switched-icon:after {
		transform: rotate(180deg);
	}

	/* Closed submenu state */
	.child-menu-item {
		display: block !important;
		max-height: 0;
		opacity: 0;
		overflow: hidden;
		transform: translateY(-8px);
		transition:
			max-height 0.5s cubic-bezier(.4,0,.2,1),
			opacity 0.35s cubic-bezier(.4,0,.2,1),
			transform 0.5s cubic-bezier(.4,0,.2,1);
		pointer-events: none;
	}

	/* Open submenu state */
	.show-menu-items {
		max-height: 1000px;
		opacity: 1;
		transform: translateY(0);
		pointer-events: auto;
	}
}

/* Keep pseudo-elements visible on mobile toggle only */
@media (max-width: 980px) {
	.et_mobile_menu .parent-menu-item > a:after {
		visibility: visible;
	}
}

/* =========================
   Buttons
========================= */


.et_pb_button {
	font-weight: 300;
	border-width: 1.5px !important;
}

.et_pb_button.button-light {
	background: transparent !important;
	border-color: #ffffff !important;
	border-width: 1.5px !important;
	font-weight: 300;
}


/* =========================
   Scroll to top button
========================= */

.et_pb_scroll_top.et-pb-icon.et-visible,
.et_pb_scroll_top.et-hidden {
	margin-right: 5px;
	background: #000635;
	color: #ffffff;
	border-radius: 100px;
}

.et_pb_scroll_top::before {
	content: '\42';
}

/********** Scroll arrows *********/
.scroll-parent {
	height: 0px;
	position: relative;
	z-index: 80;
}


.scroll-button {
	height: 30px;
	width: 30px;
	margin: auto;
	background: url("/wp-content/uploads/2026/04/scroll-down.webp");
	background-repeat: none;
	background-size: cover;
}


/*** Scroll arrows animation ***/
.scroll-button {
	-moz-animation: bounce 3s infinite;
	-webkit-animation: bounce 3s infinite;
	animation: bounce 3s infinite;
}
@-moz-keyframes bounce {
  0%, 20%, 50%, 80%, 100% {
    -moz-transform: translateY(0);
    transform: translateY(0);
  }
  40% {
    -moz-transform: translateY(-30px);
    transform: translateY(-30px);
  }
  60% {
    -moz-transform: translateY(-15px);
    transform: translateY(-15px);
  }
}
@-webkit-keyframes bounce {
  0%, 20%, 50%, 80%, 100% {
    -webkit-transform: translateY(0);
    transform: translateY(0);
  }
  40% {
    -webkit-transform: translateY(-30px);
    transform: translateY(-30px);
  }
  60% {
    -webkit-transform: translateY(-15px);
    transform: translateY(-15px);
  }
}
@keyframes bounce {
  0%, 20%, 50%, 80%, 100% {
    -moz-transform: translateY(0);
    -ms-transform: translateY(0);
    -webkit-transform: translateY(0);
    transform: translateY(0);
  }
  40% {
    -moz-transform: translateY(-30px);
    -ms-transform: translateY(-30px);
    -webkit-transform: translateY(-30px);
    transform: translateY(-30px);
  }
  60% {
    -moz-transform: translateY(-15px);
    -ms-transform: translateY(-15px);
    -webkit-transform: translateY(-15px);
    transform: translateY(-15px);
  }
}

/* H4 on dark background */
.light-blurb h4
{
	color: #ffffff;
	text-align: center;
	font-weight: 300;
	line-height: 1.4em;
	font-size: 23px;
}

.light-blurb-wide h4
{
    color: #ffffff;
	text-align: left;
	font-weight: 300;
	line-height: 1.4em;
	font-size: 23px;
}

/* H4 on light background */
.dark-blurb h4
{
	text-align: center;
	font-weight: 300;
	line-height: 1.4em;
	font-size: 23px;
}

/* =========================
   LOGO CAROUSEL
========================= */

.philiart-logo-carousel {
	width: 100%;
	overflow: hidden;
	position: relative;
	padding: 20px 0;
}

/* Track */
.philiart-logo-track {
	display: flex;
	align-items: center;
	gap: 120px;
	width: max-content;
	animation: philiartLogoScroll 36s linear infinite;
	will-change: transform;
}

/* Logos */
.philiart-logo-track img {
	width: 180px;
	height: auto;
	flex: 0 0 auto;
	transform: scale(0.96);
	transform-origin: center center;
	transition: none;
	pointer-events: none;
	cursor: default;
	will-change: transform;
}

/* Scroll animation */
@keyframes philiartLogoScroll {
	0% {
		transform: translateX(0);
	}
	100% {
		transform: translateX(-50%);
	}
}


/* =========================
   RESPONSIVE
========================= */

@media (max-width: 980px) {
	.philiart-logo-track {
		gap: 100px;
		animation-duration: 28s;
	}

	.philiart-logo-track img {
		width: 110px;
	}
}

@media only screen and (max-width: 980px) {
	div.et_pb_row.et_pb_row_8.et_flex_row.dark-blurb {
		width: 100% !important;
		max-width: 100% !important;
		margin-left: 0;
		margin-right: 0;
	}
}

/* =========================
   Load galleries
========================= */
.webgallery img {
	content-visibility: visible;
}

/* =========================
   CONTACT EMAIL ICON
========================= */

.email-hero {
	display: flex;
	align-items: center;
	gap: 20px;
}

.email-hero::before {
	content: "";
	width: 32px;
	height: 32px;
	background: url('/wp-content/uploads/2026/04/email-icon.webp') no-repeat center;
	background-size: contain;
	position: relative;
	top: -1px;
}


/* =========================
   CONTACT FORM
========================= */

.wpcf7 p {
	color: white !important;
	font-size: 20px !important;
}

.wpcf7 p a {
	font-size: 20px !important;
	color: white !important;
	font-weight: 300;
	transition: all .4s ease-in-out;
}

.wpcf7 p a:hover {
	color: #00aeff !important;
}

.wpcf7 input[type="text"],
.wpcf7 input[type="email"] {
	background-color: rgba(249,249,249,0.21);
	width: 100%;
	color: white;
	border: none;
	font-size: 17px;
	opacity: 1 !important;
	padding: 16px;
	border-radius: 99px;
}

.wpcf7 textarea {
	background-color: rgba(249,249,249,0.21);
	width: 100%;
	color: white;
	border: none;
	font-size: 14px;
	opacity: 1 !important;
	padding: 16px;
	border-radius: 20px;
}

.wpcf7 input[type="submit"] {
	display: inline-block;
	font-size: 20px;
	font-weight: 300;
	letter-spacing: 1px;
	line-height: 1.7em;
	color: #ffffff;
	text-decoration: none;
	background-color: transparent;
	border: 1.5px solid #ffffff;
	border-radius: 99px;
	padding: 0.3em 80px;
	cursor: pointer;
	transition: all 0.2s ease;
}

.wpcf7 input[type="submit"]:hover {
	border-color: #00aeff !important;
	background-color: #00aeff !important;
}

@media only screen and (max-width: 767px) {
	.wpcf7 input[type="submit"] {
		width: 100%;
	}
}

.wpcf7 form .wpcf7-response-output {
	font-size: 17px;
	color: #ffe800;
	border: 0px;
}

.wpcf7-not-valid-tip {
	font-size: 14px;
	color: #ffe800;
}


/* =========================
   PLACEHOLDERS
========================= */

::-webkit-input-placeholder { /* WebKit browsers */
	color: #fff !important;
	opacity: 1;
}

:-moz-placeholder { /* Mozilla Firefox 4 to 18 */
	color: #fff !important;
	opacity: 1;
}

::-moz-placeholder { /* Mozilla Firefox 19+ */
	color: #fff !important;
	opacity: 1;
}

:-ms-input-placeholder { /* Internet Explorer 10+ */
	color: #fff !important;
	opacity: 1;
}

/* --------------- */
/* Mobile 2x2 logo grid */
/* --------------- */
@media only screen and (max-width: 767px) {
  .two-on-mobile .et_pb_column {
    width: 50% !important;
    float: left !important;
    margin-right: 0 !important;
  }
}

/* --------------- */
/* iframe video */
/* --------------- */
.video-container {
  position: relative;
  width: 100%;
  padding-bottom: 56.25%;
  height: 0;
  overflow: hidden;
}

.video-container iframe {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  border: none;
}

/* =========================
   Misc
========================= */

.mfp-title {
	display: none;
}

.grecaptcha-badge {
	visibility: hidden !important;
}

/* --- GDPR banner --- */

/* --- Title and Text --- */
.cmplz-buttons .cmplz-btn {
    border: 1.5px solid #ffffff !important;
    letter-spacing: 1px !important;
    transition: all 200ms ease 0ms !important;
    text-transform: none !important;
    background-color: transparent !important;
    color: #ffffff !important;
}

.cmplz-btn.cmplz-accept:hover, 
.cmplz-btn.cmplz-deny:hover,
.cmplz-btn.cmplz-view-preferences:hover,
.cmplz-btn.cmplz-save-preferences:hover
{
    background-color: #00aeff !important;
    border-color: #00aeff !important;
}


/* --- Document Links --- */
.cmplz-link.privacy-statement {
    color: #00aeff !important;
    text-decoration: none !important;
}

/* --- Categories/Toggles --- */
.cmplz-cookiebanner .cmplz-category-title {
    color: #ffffff !important;
}

.cmplz-category {
	background: transparent !important;
	border: 1px solid #9c9c9c;
	margin-top: 15px;
}

.cmplz-icon {
	fill: #ffffff;
}

.cmplz-description {
	line-height: 1.5em;	
}

.cmplz-always-active {
	color: white !important;
}

/* Scrollbar inside the banner */
.cmplz-cookiebanner *::-webkit-scrollbar-thumb {
    background-color: #00aeff; 
}

.cmplz-cookiebanner * {
    scrollbar-color: #00aeff transparent;
}


/* =========================
   Footer
========================= */

/* Copyright info */
#main-footer p {
	line-height: 1.4em;
}

#main-footer a:hover {
	color: #00aeff !important;
}

/*** Sticky footer ***/
#main-footer{
position: relative;
bottom: 0;
width: 100%;
}

/* Left align footer text on tablet + mobile */
@media (max-width: 980px) {
	#main-footer p {
		text-align: left !important;
	}
}