:root{
  --yellow-color: #BD9246;
  --white-color: #fff;
  --para-color: #2F2F2F;
  --blue-color: #072841;
  --main-font: 'Antic Didone', serif;
  --sub-font : 'Poppins', sans-serif;
  --font-12: 0.625vw;
  --font-14: 0.729vw;
  --font-16: 0.833vw;
  --font-18: 0.938vw;
  --font-20: 1.042vw;
  --font-24: 1.250vw;
  --font-25: 1.302vw;
  --font-28: 1.458vw;
  --font-30: 1.563vw;
  --font-32: 1.667vw;
  --font-36: 1.875vw;
  --font-40: 2.083vw;
  --font-64: 3.333vw;

}

@media (min-width: 1920px){
  body, header{
      max-width: 1920px;
      margin: 0 auto;
  }
}

.main--font{
font-family: 'Antic Didone', serif;
}

.sub--font{
font-family: 'Poppins', sans-serif;
}

::selection {
  color: var(--blue-color);
  background: var(--yellow-color);
}

/* For Mozilla Firefox */
::-moz-selection {
  color: var(--blue-color);
  background: var(--yellow-color);
}
:focus-visible{
  outline: 0;
  box-shadow: none;
}
.wpcf7 p{
margin:0;
}
.wpcf7 p br{
display:none;
}
.slick-slider:not(.slick-initialized) {
display: none !important;
}

p, h1, h2, h3, h4, h5, h6{
margin-bottom: 0;
}

/* width */
::-webkit-scrollbar {
width: 10px;
}

/* Track */
::-webkit-scrollbar-track {
background: var(--white-color); 
}

/* Handle */
::-webkit-scrollbar-thumb {
background: var(--yellow-color); 
}

/* Handle on hover */
::-webkit-scrollbar-thumb:hover {
background: var(--dark-gray); 
}
a{
  text-decoration: none;
}
/* =========================== Button =========================== */

.border-btn {
border-radius: 65.5px;
border: 1px solid rgba(255, 255, 255, 0.25);
padding: 28px 70px;
transition: all 2s;
}
.border-btn svg{
margin-right: 20px;
}
.border-btn:hover{
color: var(--white-color);
transition: all 2s;
border-radius: 65.5px;
border: 1px solid rgba(255, 255, 255, 0.25);
background:  #2F2F2F;
}

.slick-arrow {
font-size: 0;
background-color: transparent;
border: 0;
height: 69px;
width: 69px;
background-repeat: no-repeat;
background-size: contain;
position: absolute;
}
.partner-logo-slider .slick-arrow{
bottom: 18%;
}
.achivement-slider .slick-arrow{
bottom: 50%;
z-index: 1;
}
.partner-logo-slider button.slick-prev.slick-arrow, .achivement-slider button.slick-prev.slick-arrow {
  left: 3%;
}
.partner-logo-slider button.slick-next.slick-arrow, .achivement-slider button.slick-next.slick-arrow {
  right: 3%;
}
.yellow-btn{
border-radius: 33.3px;
background: var(--yellow-color);
padding: 20px 25px ;
}
.yellow-btn svg {
margin-right: 10px;
}
.yellow-btn:hover{
color: var(--white-color);
}

/* =========================== WRAPPERS =========================== */
.yellow-bg{
background-color: var(--yellow-color);
}
.wrap-523{
padding: 0 27.240vw;
}
.wrap-325{
padding: 0 16.927vw;
}
.wrap-330{
padding: 0 17.188vw;
}
.wrap-485{
padding: 0 25.260vw;
}
.wrap-240{
padding: 0 12.500vw;
}
.wrap-220{
  padding: 0 11.458vw;
  }
.wrap-162 {
padding: 0 8.438vw;
}
.wrap-679{
padding: 0 35.365vw;
}
.ash-bg{
background-color: #F9F9F9;
}
.w-30{
width: 30%;
}
.w-70{
width: 70%;
}
.w-65{
width: 65%;
}
.w-40{
width: 40%;
}
.w-60{
  width: 60%;
  }
/* =========================== PADDING =========================== */
.p-b-20{
padding-bottom: 20px;
}
.p-t-20{
padding-top: 20px;
}
.p-b-25{
padding-bottom: 25px;
}
.p-b-85{
padding-bottom: 85px;
}
.p-t-100{
padding-top: 100px;
}
.p-b-100 {
padding-bottom: 100px;
}
.p-b-15{
padding-bottom: 15px;
}
.p-t-90{
padding-top: 90px;
}
.p-t-30{
padding-top: 30px;
}
.p-b-45{
padding-bottom: 45px;
}
.p-b-35{
padding-bottom: 35px;
}
.p-b-30{
padding-bottom: 30px;
}
.p-b-90{
padding-bottom: 90px;
}
.p-r-350{
padding-right: 350px;
}
.p-r-88{
padding-right: 88px;
}
.p-r-126{
padding-right: 126px;
}
.p-r-483 {
padding-right: 25.156vw;
}
.p-l-80{
padding-left: 80px;
}
.p-t-55{
padding-top: 55px;
}
.p-t-255{
  padding-top: 255px;
}
.p-t-25{
  padding-top: 25px;
}
.p-b-25{
  padding-bottom: 25px;
}
.p-b-40{
padding-bottom: 40px;
}
.p-t-40{
padding-top: 40px;
}
.p-b-60{
padding-bottom: 60px;
}
.p-b-65{
padding-bottom: 65px !important;
}
.p-t-2{
padding-top: 2px;
}
.p-t-20{
padding-top: 20px;
}
.p-l-127{
padding-left: 127px;
}
.benifit-card:nth-last-child(){
padding-bottom: 0;
}
.b-0{
bottom: 0;
}
.t-0{
top: 0;
}
.p-b-70{
padding-bottom: 70px;
}
.p-t-70{
  padding-top: 70px;
  }

/* =========================== Font =========================== */
.para{
font-family: var(--sub-font);
font-size: var(--font-20);
}
.normal{
font-weight: 300;
}
.regular{
font-weight: 400;
}
.medium{
font-weight: 500;
}
.semiBold{
font-weight: 600;
}
.bold{
font-weight: 700;
}

.yellow-font {
color: var(--yellow-color);
}

.white-font {
color: var(--white-color);
}

.font-64{
font-size: var(--font-64);
line-height: normal;
}
.font-14 {
font-size: var(--font-14);
line-height: normal;
}
.font-25{
font-size: var(--font-25);
 line-height: 40px;
}
.font-20{
font-size: var(--font-20);
line-height: 30px;
}
.font-30{
  font-size: var(--font-30);
  line-height: 40px;
}
.font-36{
  font-size: var(--font-36);
  line-height: 48px;
}
.dark-color {
color: #2F2F2F;
}
/* ======================= SITE ===============================  */

.inner-banner::after, .achivements::after{
content: '';
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  top: 0;
  background: rgba(4, 31, 51, 0.90);
}
section.inner-banner {
background-repeat: no-repeat;
background-size: cover;
width: 100%;
height: 100%;
padding: 278px 0 100px;
object-fit: contain;
/* -webkit-animation: 10s linear 0s normal none infinite animate;
-moz-animation: 10s linear 0s normal none infinite animate;
-ms-animation: 10s linear 0s normal none infinite animate;
-o-animation: 10s linear 0s normal none infinite animate;
animation: 10s linear 0s normal none infinite animate; */
}
.about-inner-banner.inner-banner{
padding: 278px 0 166px;
}
.z-1{
z-index: 1;
}
.breadcrumbs , .breadcrumbs a{
color: var(--white-color);
/* text-align: center; */
font-family: var(--sub-font);
font-size: var(--font-16);
font-weight: 400;
line-height: normal;
}
.about-inner-img {
padding-right: 77px;
margin-top: -7%;
z-index: 1;
}
.yers {
width: 309px;
height: 309px;
text-align: center;
background: var(--blue-color);
border-radius: 50%;
right: 8.2%;
}
section.vandm-sec::after {
content: "";
position: absolute;
top: 0;
bottom: 0;
left: 0;
right: 16.510vw;
z-index: -1;
background: var(--yellow-color);
border-radius: 0px 30px 30px 0px;
}
.vision {
border-bottom: 1px solid  #D9D9D9;;
}
.wrapp-white-bg {
border-radius: 10px;
background: var(--White, #FFF);
box-shadow: 0px 4px 7px 0px rgba(0, 0, 0, 0.07);
padding: 20px 0 25px;
}
.mem-pic {
height: 430px;
}
.mem-pic img, .blogs-img img, .squ-img img{
object-fit: cover;
}
.mem-wrap{
width: 33%;
padding: 46px;
}
.directors-wrap {
margin: 0 -46px;
}
.team-wrap{
width: 20%;
padding: 0 10px;
}
.staff-wrap{
margin: 0 -10px;
}
.l-img {
  border: 1px solid #F5F5F5;
  margin: 0 20px;
}
.l-img  img{
object-fit: cover;
}
.achivement-group-pic {
padding: 0 10px;
height: 470px;
}
.achivement-group-pic img{
object-fit: cover;
}
.achi-item.slick-slide.slick-current.slick-active.slick-center .d-none.awards {
display: block !important;
transition: all 2s;
position: absolute;
bottom: -10%;
right: 0;
}
.achi-item.slick-slide.slick-current.slick-active.slick-center .d-none {
display: block !important;
transition: all 2s;
}
.achivement-group-pic::after{
  content: '';
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  top: 0;
  opacity: 0.4;
  background: #000;
  transition: all 2s;
}
.achi-item.slick-slide.slick-current.slick-active.slick-center .achivement-group-pic::after{
content: none;
transition: all 2s;
}
.des-term{
text-align: justify;
}
.blogs-date, .blog--inner-date {
border-radius: 18.5px;
background: #eaeaea;
color: var(--para-color);
width: max-content;
padding: 6px 30px;
}
.blog--inner-date{
margin-bottom: 26px;
}
a.box.hidden-box{
display: none !important;
}
a.box {
width: 33%;
padding: 0 24px;
padding-bottom: 65px;
}
.other-blogs-wrapper {
margin: 0 -24px;
}
a.box:hover .blog-title{
text-decoration: underline;
}
.blogs-img {
overflow: hidden;
height: 279px;
border-radius: 20px;
}
.news-img::after{
content: '';
position: absolute;
left: 0;
right: 0;
bottom: 0;
top: 0;
background: linear-gradient(180deg, rgba(0, 0, 0, 0.00) 0%, rgba(0, 0, 0, 0.65) 100%);
transition: all 2s;
border-radius: 20px;
}
.blogs-date-main{
margin: 40px 0 0 45px;
left: 0;
}
.first-project .content-box {
bottom: 20%;
left: 4%;
}
section.blogs-inner .para p {
text-align: justify;
line-height: 35px;
}
.blog-full-img {
height: 525px;
overflow: hidden;
}
.blog-full-img img {
object-fit: cover;
}
.activity-sec .nav-tabs .nav-item.show .nav-link, .activity-sec .nav-tabs .nav-link.active, .activity-sec .nav-tabs .nav-link, .activity-sec .nav-tabs,
.facility-sec .nav-tabs .nav-item.show .nav-link, .facility-sec .nav-tabs .nav-link.active, .facility-sec .nav-tabs .nav-link, .facility-sec .nav-tabs{
border: 0;
border-radius: 26.063px;
padding: 8px 25px;
color: var(--para-color);
}
.activity-sec .nav-tabs .nav-link.active, .facility-sec .nav-tabs .nav-link.active{
border-radius: 26.063px;
background: #e4e4e4;
}
.activity-sec li.nav-item, .facility-sec li.nav-item {
padding: 0 30px;
}
.activity-item {
width: 33%;
padding: 0 48px 70px;
}
.activ-wrap{
max-width: 0 -48px;
}
.squ-img {
height: 490px;
border-radius: 10px;
}
.squ-img img{
border-radius: 10px;
}
.facility-wrap-content {
padding: 0 6.667vw;
}
.inner-f-wrap:hover .facility-wrap-content {
opacity: 1;
transition: all 2s;
}
.facility-wrap-content{
opacity: 0;
transition: all 2s;
}
.inner-f-wrap {
overflow: hidden;
padding: 0 24px 43px;
}
.faci--sm-img::after {
border-radius: 10px;
opacity: 0.6;
background: #000;
content: '';
position: absolute;
left: 0;
right: 0;
bottom: 0;
top: 0;
}
.main-topic-dis {
margin: 0 50px 40px;
}
.inner-f-wrap:hover .main-topic-dis{
opacity: 0;
transition: all 1s;
}
.hover-title {
position: relative;
display: flex;
flex-direction: column;
width: max-content;
margin: 0 auto;
}
.hover-title::after{
content: '';
width: 100%;
height: 1px;
background-color: var(--white-color);
transition: all .5s;
margin-top: 14px;
}
.quizBox {
border-radius: 10px;
background: #F9F9F9;
padding: 55px 50px;
margin: 0 20px 20px;
page-break-inside: avoid;
break-inside: avoid-column;
display: table;
width: 100%;
transition: all 2s;
}
.accordion-faq {
column-count: 2;
margin: 0 -20px 20px;
}
.quizBox:hover{
background-color: var(--blue-color);
color: var(--white-color);
transition: all 2s;
}
.svg-quection {
right: -7%;
top: -54%;
}
.phone-c {
border-top: 1px solid #D9D9D9;
border-bottom: 1px solid #D9D9D9;
}
.contact-icon svg {
margin-right: 25px;
}
.location-details{
padding: 0 10.656vw 0 3.802vw;
}
.s-icon {
padding-right: 7px;
}
.social-icon-c {
margin-left: 45px;
}
.contact-img-h{
height: 575px;
margin-top: -15%;
}
.contact-img-h img{
object-fit: cover;
}
.mem-details.d-flex {
border-radius: 53px 53px;
background: var(--Dark-Blue, #072841);
width: max-content;
padding: 0 53px 0 0;
}
.pic img {
border-radius: 50%;
}
/* .pic-details {
padding-left: 25px;
} */
.dark-color:hover{
color: var(--para-color);
}
.contact-form{
  padding-left: 100px;
}
.sm-icon svg{
  margin-right: 15px;
}

form label {
  color: var(--Dark-Grey, #2F2F2F);
  /* text-align: justify; */
  font-family: "Work Sans", sans-serif;
  font-size: var(--font-20);
  font-style: normal;
  font-weight: 400;
  line-height: 153.3%;
  text-transform: capitalize;
  width: 100%;
}
form  input {
  border-radius: 10px;
  background: #F3F3F3;
  border: 0;
  height: 55px;
  padding-left: 30px;
  margin-bottom: 30px;
  margin-top: 6px;
  width: 100%;
}
textarea {
  border-radius: 10px;
  background: #F3F3F3;
  height: 140px;
  width: 100%;
  border: 0;
  padding: 30px;
}
.m-r-5{
  margin-right: 5px;
}
.m-l-5{
  margin-left: 5px;
}
input.wpcf7-form-control.wpcf7-submit.has-spinner.yellow-btn {
  width: max-content;

  padding: 20px 70px;
  color: var(--white-color);
  text-align: center;
  font-family: var(--sub-font);
  font-size: var(--font-18);
  font-weight: 400;
  line-height: normal;
  height: auto;
  margin-top: 45px;
}
.phone-c span {
  padding: 0 6px;
}
.page-template-paymentplans .about-inner-banner {
  padding-bottom: 415px;
}
.plan-box {
  padding: 55px 50px;
  width: max-content;
  margin: 0 auto;
  border-radius: 35px;
  right: 0;
  left: 0;
  bottom: -15%;
}
section.paln {
  margin-top: -26%;
}
.blue-plan {
  height: 403px;
  padding: 50px 80px;
  margin: 0 36px;
  width: 45%;
}


/* SAERCH ================================  */

.navbar-search {
  /* position: absolute; */
  top: 0;
  right: 0;
  /* margin: 2rem; */
  width: 50px;
  height: 50px;
  display: flex;
  justify-content: center;
  align-items: center;
  z-index: 1;
}
.navbar-search .search {
  width: 100%;
  height: 100%;
  position: absolute;
  opacity: 0;
}
.navbar-search .search-label {
  position: relative;
  display: flex;
  justify-content: center;
  align-items: center;
  width: 100%;
  height: 100%;
  /* background: #212121; */
  transition: 0.5s all ease;
  z-index: 2;
  cursor: pointer;
}

.search-icon,
.exit-icon {
  color: #ffffff;
}

.exit-icon {
  display: none;
}

.search:checked + .search-label .search-icon {
  display: none;
}
.search:checked + .search-label .exit-icon {
  display: block;
}

.search-section {
  position: absolute;
  opacity: 0;
  z-index: -1;
  transition: 0.5s all ease-in-out;
  width: 100%;
}

.search-box {
  background: #072841f5;
  width: 100vw;
  /* height: 100vh; */
  display: flex;
  justify-content: center;
  align-items: center;
}

/* .search-input {
  width: 70%;
  border: 2px solid #ffffff;
  position: relative;
  display: flex;
  flex-direction: row;
  justify-content: center;
  align-items: center;
} */
.search-input .input-textarea {
  position: relative;
  background: transparent;
  width: 100%;
  height: 40px;
  padding: 10px;
  color: white;
  z-index: 2;
  border: none;
  cursor: pointer;
  font-family: "Montserrat", sans-serif;
}
.search-input span {
  margin-right: 10px;
}
.open {
  opacity: 1;
  z-index: 9;
  transition: 0.5s all ease-in-out;
  width: 100%;
  top: 0;
  bottom: 0;
  right: 0;
  left: 0;
}
.about-points > div:nth-child(5){
  border-bottom: 0;
}
section.gallery-sec::after {
  content: "";
  position: absolute;
  top: 50%;
  bottom: 0;
  left: 0;
  right: 0;
  z-index: -1;
  background: var(--blue-color);
}
.line-btn{
    color: #004376;
  position: relative;
  display: flex;
  flex-direction: column;
  width: max-content;
  margin: 0 auto;
  align-items: center;
}
.line-btn::after{
  content: '';
  width: 0;
  height: 1.5px;
  background-color: #004376;
  transition: all .5s;
  margin-top: 14px;
}
.line-btn:hover::after{
  transition: all .5s;
  width: 100%;
}
.white-click .line-btn::after{
  background-color: var(--white-color);
}
.hover-image img, .single-card, h5.card-title, .single-card:hover .hover-image, .position-absolute.hover-image, .single-card:hover, .hover-image img:hover  {
  transition: all 1s;
  height: 138px;
}
.explore-img.is-inview,.expand-img.is-inview,.explore-img.scrolled,.expand-img.scrolled {
  transition: clip-path 800ms cubic-bezier(0.215, 0.61, 0.355, 1) 0ms;
  clip-path: inset(0px 0px 0px 0px);
}
.explore-img ,.expand-img{
  transition: clip-path 800ms cubic-bezier(0.215, 0.61, 0.355, 1) 500ms;
  clip-path: inset(0 100% 0 0);
}
.img-2 {
  margin-top: 50px;
}
.single-villa-img {
  height: 470px;
  overflow: hidden;
}
.single-villa-img img{
  object-fit: cover;
  height: 100%;
}
.quick-social {
  position: fixed;
  bottom: 5%;
  right: 20px;
  z-index: 9999;
}
.quick-social ul li {
  padding: 10px 0;
}
.quick-social ul {
  list-style: none;
  padding: 0;
}
.top-b-1px{
  width: max-content;
  border-top: 1px solid #2F2F2F;
}
.f-img{
  border-radius: 10px;
}
.about-image, .slick-slide-wrap, .img-1, .img-2, .f-img, .mem-pic, .squ-img, .contact-img-h, .blog-full-img, .villa-thum-img, .aminiti-img, .single-villa-img{
  overflow: hidden;
  transition: 1s ease-in-out;
}
.f-img:hover img, .single-villa-img:hover img, .aminiti-img:hover img, .about-image:hover img, .slick-slide-wrap:hover img, .img-1:hover img, .img-2:hover img, .mem-pic:hover img, .squ-img:hover img, .contact-img-h:hover img, .blog-full-img:hover img, .villa-thum-img:hover img{
  transition: 1s ease-in-out;
  transform: scale(1.3);
}
.f-img img, .single-villa-img img, .aminiti-img img, .about-image img, .slick-slide-wrap img, .img-1 img, .img-2 img, .mem-pic img, .squ-img img, .contact-img-h img, .blog-full-img img, .villa-thum-img img{
  transform: scale(1);
  -webkit-transition: .3s ease-in-out;
  transition: 1s ease-in-out !important;
}
.gallery-sec  {
  backface-visibility: hidden;
  margin-bottom: -1px;
}

@keyframes animateup {
  0% {
      transform: translate3d(5px, 40px, 0);
      opacity: 0;
      transition: transform 0ms, opacity 0ms, -webkit-transform 0ms;
  }
  100% {
      transition: transform 1500ms cubic-bezier(0.19, 1, 0.22, 1), opacity 1500ms cubic-bezier(0.19, 1, 0.22, 1), -webkit-transform 1500ms cubic-bezier(0.19, 1, 0.22, 1);
      transform: translate3d(0, 0, 0);
      opacity: 1;
  }
}
/* 
@-webkit-keyframes animate {
from {
  background-position: 0 0;
}
to {
  background-position: 500px 0;
}
}

@-moz-keyframes animate {
from {
  background-position: 0 0;
}
to {
  background-position: 500px 0;
}
}

@-ms-keyframes animate {
from {
  background-position: 0 0;
}
to {
  background-position: 500px 0;
}
}

@-o-keyframes animate {
from {
  background-position: 0 0;
}
to {
  background-position: 500px 0;
}
}

@keyframes animate {
from {
  background-position: 0 0;
}
to {
  background-position: 500px 0;
}
} */
@media (max-width: 1025px){
  :root{
      --font-12: 12px !important;
      --font-14: 12px !important;
      --font-18: 14px !important;
      --font-16: 15px !important;
      --font-25: 18px !important;
      --font-20: 16px !important;
      --font-24: 20px !important;
      --font-28: 25px !important;
      --font-32: 26px !important;
      --font-36: 28px !important;
      --font-40: 30px !important;
      --font-64: 40px !important;
      --font-50: 35px !important;
  }
}

@media (max-width: 991px){
  .wrap-523, .wrap-325, .wrap-330, .wrap-485, .wrap-240, .wrap-220, .wrap-162, .wrap-679{
      padding: 0 !important;
      width: 90%;
      margin: 0 auto;
    }
    .contact-form {
      padding-left: 30px;
    }
    .p-t-100 {
      padding-top: 50px;
    }
    .p-b-100 {
      padding-bottom: 50px;
  }
    .contact-img-h img{
      object-fit: cover;
    }
    .contact-img-h {
      height: 340px !important;
    }
    .about-inner-banner.inner-banner {
      padding: 200px 0 100px;
  }
  .about-inner-img img {
    height: 400px !important;
    object-fit: cover;
  }
  .p-l-80 {
    padding-left: 40px;
}
.achivement-group-pic {
  padding: 0 10px;
  height: 400px;
}
}
@media (max-width: 600px){
  .about-inner-banner.inner-banner {
    padding: 150px 0;
  }
  .w-30, .w-70, .w-65, .w-40, .w-60, .w-50{
      width: 100% !important;
  }
  .p-r-350 {
    padding-right: 0;
}

  .mob-direction{
    flex-direction: column;
  }
  .contact-form {
    padding-left: 0;
}
.p-b-100 {
  padding-bottom: 50px;
}
.p-t-100 {
  padding-top: 50px;
}
.p-l-80 {
  padding-left: 0;
}
.mem-wrap {
  width: 50%;
  padding: 46px;
}
}
/* ==========================================================================
   Active page highlighting
   WordPress puts the state classes (current-menu-item, current-menu-ancestor,
   current_page_item ...) on the <li>, but every menu in this theme declares
   its colour on the <a>, so the highlight has to be declared on the link.
   ========================================================================== */

/* Header - left menu */
ul#left > li.current-menu-item > a,
ul#left > li.current-menu-parent > a,
ul#left > li.current-menu-ancestor > a,
ul#left > li.current_page_item > a,
ul#left > li.current_page_parent > a,
ul#left > li.current_page_ancestor > a,
ul#left .dropdown-menu > li.current-menu-item > a,
ul#left .dropdown-menu > li.current_page_item > a {
  color: var(--yellow-color);
}

/* Mega menu overlay - megamenu1, megamenu2 and the mobile menu */
.overlay ul li.current-menu-item > a,
.overlay ul li.current-menu-parent > a,
.overlay ul li.current-menu-ancestor > a,
.overlay ul li.current_page_item > a,
.overlay ul li.current_page_parent > a,
.overlay ul li.current_page_ancestor > a {
  color: var(--yellow-color) !important;
}

/* The overlay links slide an underline in on hover - keep it drawn for the
   page that is currently open. */
.overlay ul li.current-menu-item > a:after,
.overlay ul li.current_page_item > a:after {
  width: 100%;
  background: var(--yellow-color) !important;
}

/* Footer - quick links and the terms / privacy list in the bottom bar */
ul#footer-menu > li.current-menu-item > a,
ul#footer-menu > li.current-menu-parent > a,
ul#footer-menu > li.current-menu-ancestor > a,
ul#footer-menu > li.current_page_item > a,
ul#footer-menu > li.current_page_parent > a,
ul#footer-menu > li.current_page_ancestor > a,
.privacy-menu ul li.current-menu-item > a {
  color: var(--yellow-color) !important;
}

/* ==========================================================================
   404 / error page - full viewport ocean scene
   Navy ground, gold accent, Antic Didone over Poppins. All motion is CSS
   and is switched off under prefers-reduced-motion at the end of this block.
   ========================================================================== */

/* Used by the header and search markup too, but never defined until now. */
.screen-reader-text {
  position: absolute !important;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}

.error-hero {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 100vh;
  overflow: hidden;
  /* #header is fixed and 170px tall, so the content has to clear it. */
  padding: 200px 1.5rem 220px;
}

.error-inner {
  position: relative;
  z-index: 3;
  width: 100%;
  max-width: 720px;
  margin: 0 auto;
  text-align: center;
}

/* Drifting light ------------------------------------------------------- */
.error-glow {
  position: absolute;
  top: 50%;
  left: 50%;
  z-index: 1;
  width: 120vmax;
  height: 120vmax;
  margin: -60vmax 0 0 -60vmax;
  pointer-events: none;
  background: radial-gradient(circle at center,
      rgba(189, 146, 70, 0.18) 0%,
      rgba(189, 146, 70, 0.07) 28%,
      rgba(189, 146, 70, 0) 62%);
  animation: errGlow 14s ease-in-out infinite;
}

@keyframes errGlow {
  0%, 100% { transform: translate3d(-3%, -2%, 0) scale(1); opacity: 0.85; }
  50%      { transform: translate3d(3%, 2%, 0) scale(1.12); opacity: 1; }
}

/* Rising bubbles ------------------------------------------------------- */
.error-bubbles {
  position: absolute;
  inset: 0;
  z-index: 2;
  pointer-events: none;
}

.error-bubbles span {
  position: absolute;
  bottom: -60px;
  display: block;
  border-radius: 50%;
  background: radial-gradient(circle at 32% 30%, rgba(255, 255, 255, 0.55), rgba(189, 146, 70, 0.3) 55%, rgba(189, 146, 70, 0.04) 76%);
  border: 1px solid rgba(189, 146, 70, 0.38);
  opacity: 0;
  animation: errRise linear infinite;
}

.error-bubbles span:nth-child(1) { left:  8%; width: 14px; height: 14px; animation-duration: 17s; animation-delay:  0s; }
.error-bubbles span:nth-child(2) { left: 19%; width:  8px; height:  8px; animation-duration: 13s; animation-delay:  3s; }
.error-bubbles span:nth-child(3) { left: 31%; width: 20px; height: 20px; animation-duration: 21s; animation-delay:  6s; }
.error-bubbles span:nth-child(4) { left: 46%; width: 10px; height: 10px; animation-duration: 15s; animation-delay:  1s; }
.error-bubbles span:nth-child(5) { left: 62%; width: 16px; height: 16px; animation-duration: 19s; animation-delay:  8s; }
.error-bubbles span:nth-child(6) { left: 74%; width:  7px; height:  7px; animation-duration: 12s; animation-delay:  4s; }
.error-bubbles span:nth-child(7) { left: 86%; width: 18px; height: 18px; animation-duration: 23s; animation-delay: 10s; }
.error-bubbles span:nth-child(8) { left: 94%; width: 11px; height: 11px; animation-duration: 16s; animation-delay:  2s; }

@keyframes errRise {
  0%   { transform: translateY(0) translateX(0) scale(0.6); opacity: 0; }
  10%  { opacity: 0.9; }
  50%  { transform: translateY(-52vh) translateX(26px) scale(1); }
  90%  { opacity: 0.55; }
  100% { transform: translateY(-108vh) translateX(-18px) scale(1.1); opacity: 0; }
}

/* Layered waves -------------------------------------------------------- */
.error-waves {
  position: absolute;
  right: 0;
  bottom: -1px;
  left: 0;
  z-index: 2;
  height: 22vh;
  min-height: 150px;
  pointer-events: none;
}

.error-waves svg {
  width: 100%;
  height: 100%;
}

.error-waves use {
  animation: errSwell 18s cubic-bezier(0.55, 0.5, 0.45, 0.5) infinite;
}

/* The nearest layer is a LIGHTER navy than the ground, so the four
   overlapping fills read as lit water rather than stacking to black. */
/* nth-of-type, not nth-child: <defs> is the svg's first child and would
   shift every index by one, leaving the last <use> with a default black fill. */
.error-waves use:nth-of-type(1) { fill: rgba(189, 146, 70, 0.13); animation-duration:  9s; animation-delay: -2s; }
.error-waves use:nth-of-type(2) { fill: rgba(189, 146, 70, 0.08); animation-duration: 13s; animation-delay: -3s; }
.error-waves use:nth-of-type(3) { fill: rgba(255, 255, 255, 0.05); animation-duration: 17s; animation-delay: -4s; }
.error-waves use:nth-of-type(4) { fill: rgba(11, 58, 92, 0.85);    animation-duration: 23s; animation-delay: -5s; }

@keyframes errSwell {
  0%   { transform: translate3d(-90px, 0, 0); }
  100% { transform: translate3d(85px, 0, 0); }
}

/* The numeral ---------------------------------------------------------- */
.error-code {
  font-size: clamp(110px, 17vw, 260px);
  line-height: 0.95;
  letter-spacing: 0.04em;
  /* Gold shimmer sweeping across the glyphs. */
  background: linear-gradient(100deg,
      #7d5f2a 0%, #bd9246 30%, #f3dfb4 48%, #bd9246 66%, #7d5f2a 100%);
  background-size: 250% 100%;
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
  -webkit-text-fill-color: transparent;
}

@keyframes errShimmer {
  from { background-position: 125% 0; }
  to   { background-position: -125% 0; }
}

@keyframes errFloat {
  0%, 100% { transform: translateY(0); }
  50%      { transform: translateY(-14px); }
}

/* Ornament ------------------------------------------------------------- */
.error-ornament {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 1rem;
  padding: 0.75rem 0 1.5rem;
}

.error-ornament .error-rule {
  display: block;
  width: 80px;
  height: 1px;
  background: linear-gradient(to right, rgba(189, 146, 70, 0), var(--yellow-color));
}

.error-ornament .error-rule:last-child {
  background: linear-gradient(to left, rgba(189, 146, 70, 0), var(--yellow-color));
}

.error-ornament .error-diamond {
  display: block;
  width: 8px;
  height: 8px;
  background: var(--yellow-color);
  transform: rotate(45deg);
  animation: errPulse 3.2s ease-in-out infinite;
}

@keyframes errPulse {
  0%, 100% { transform: rotate(45deg) scale(1);    opacity: 1; }
  50%      { transform: rotate(45deg) scale(1.45); opacity: 0.6; }
}

/* Copy ----------------------------------------------------------------- */
.error-title {
  font-size: clamp(30px, 3.6vw, 64px);
  line-height: 1.15;
  letter-spacing: 0.01em;
  padding-bottom: 0.75rem;
}

.error-hero .error-copy {
  font-size: var(--font-20);
  line-height: 1.6;
  opacity: 0.8;
  padding-bottom: 2.5rem;
  margin: 0;
}

/* Buttons -------------------------------------------------------------- */
.error-actions {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: center;
  gap: 1rem;
}

.error-actions .error-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 1rem 2.5rem;
  border-radius: 33.3px;
  font-size: var(--font-18);
  font-weight: 400;
  line-height: normal;
  text-transform: capitalize;
  text-decoration: none;
  transition: all 0.35s ease;
}

.error-actions .error-btn--solid {
  background: var(--yellow-color);
  color: var(--white-color);
  box-shadow: 0px 4px 4px 0px rgba(0, 0, 0, 0.17);
}

.error-actions .error-btn--solid:hover {
  background: var(--white-color);
  color: var(--blue-color);
  transform: translateY(-3px);
}

.error-actions .error-btn--ghost {
  background: transparent;
  color: var(--white-color);
  border: 1px solid rgba(255, 255, 255, 0.3);
}

.error-actions .error-btn--ghost:hover {
  border-color: var(--yellow-color);
  color: var(--yellow-color);
  transform: translateY(-3px);
}

/* Search --------------------------------------------------------------- */
/* Deliberately not .search-form, which is the header dropdown and is
   display:none plus absolutely positioned. */
.error-search {
  display: flex;
  align-items: center;
  width: 100%;
  max-width: 400px;
  margin: 2.5rem auto 0;
  padding: 0.3rem 0.3rem 0.3rem 1.5rem;
  background: rgba(255, 255, 255, 0.05);
  border: 1px solid rgba(255, 255, 255, 0.16);
  border-radius: 40px;
  transition: all 0.35s ease;
}

.error-search:focus-within {
  background: rgba(255, 255, 255, 0.09);
  border-color: var(--yellow-color);
}

.error-search .error-search-field {
  flex: 1 1 auto;
  min-width: 0;
  padding: 0.7rem 0;
  background: transparent;
  border: 0;
  outline: none;
  color: var(--white-color);
  font-size: var(--font-18);
  font-weight: 400;
}

.error-search .error-search-field::placeholder {
  color: rgba(255, 255, 255, 0.45);
}

.error-search .error-search-field::-webkit-search-cancel-button {
  -webkit-appearance: none;
}

.error-search .error-search-submit {
  flex: 0 0 auto;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 42px;
  height: 42px;
  padding: 0;
  border: 0;
  border-radius: 50%;
  background: var(--yellow-color);
  color: var(--white-color);
  cursor: pointer;
  transition: all 0.3s ease;
}

.error-search .error-search-submit:hover {
  background: var(--white-color);
  color: var(--blue-color);
}

/* Staggered entrance --------------------------------------------------- */
.error-reveal {
  opacity: 0;
  transform: translateY(26px);
  animation: errReveal 0.9s cubic-bezier(0.22, 0.61, 0.36, 1) forwards;
  animation-delay: var(--d, 0s);
}

@keyframes errReveal {
  to { opacity: 1; transform: translateY(0); }
}

/* The numeral keeps floating after it lands, so it fades and scales in
   rather than sliding, and picks up shimmer plus float once settled. */
.error-code.error-reveal {
  transform: none;
  animation: errFadeIn 0.9s ease both,
             errShimmer 7s linear 0.9s infinite,
             errFloat 7s ease-in-out 0.9s infinite;
}

@keyframes errFadeIn {
  from { opacity: 0; transform: scale(0.94); }
  to   { opacity: 1; transform: scale(1); }
}

@media (max-width: 1025px) {
  .error-hero {
    padding: 170px 1.25rem 190px;
  }
}

@media (max-width: 991px) {
  .error-hero {
    min-height: 92vh;
    padding: 150px 1.25rem 170px;
  }
  .error-waves {
    height: 16vh;
    min-height: 110px;
  }
}

@media (max-width: 600px) {
  .error-hero {
    padding: 130px 1.25rem 150px;
  }
  .error-ornament .error-rule {
    width: 48px;
  }
  .error-actions {
    gap: 0.75rem;
  }
  .error-actions .error-btn {
    width: 100%;
    padding: 0.9rem 1.5rem;
  }
  .error-search {
    margin-top: 2rem;
    padding-left: 1.2rem;
  }
  .error-bubbles span:nth-child(3),
  .error-bubbles span:nth-child(7) {
    display: none;
  }
}

@media (prefers-reduced-motion: reduce) {
  .error-glow,
  .error-bubbles span,
  .error-waves use,
  .error-ornament .error-diamond,
  .error-code,
  .error-code.error-reveal,
  .error-reveal {
    animation: none !important;
  }
  .error-reveal {
    opacity: 1;
    transform: none;
  }
  .error-code {
    -webkit-text-fill-color: var(--yellow-color);
    color: var(--yellow-color);
  }
}

/* ==========================================================================
   Social icon hover states
   Two different treatments because the two sets of SVGs are built
   differently: the footer / menu icons are a white <circle> plus a navy
   <path>, so they can invert to gold. The floating quick-social buttons
   bake their brand colour into the first <path>, so recolouring them would
   mean turning the WhatsApp green gold - they get motion and depth instead.
   ========================================================================== */

/* Floating phone + WhatsApp ---------------------------------------------- */
.quick-social ul li a {
  position: relative;
  display: block;
  line-height: 0;
  border-radius: 50%;
  transition: transform 0.35s cubic-bezier(0.34, 1.56, 0.64, 1);
}

.quick-social ul li a svg {
  display: block;
  position: relative;
  z-index: 1;
  border-radius: 50%;
  transition: filter 0.35s ease;
}

.quick-social ul li a:hover {
  transform: translateY(-4px) scale(1.08);
}

.quick-social ul li a:hover svg {
  filter: drop-shadow(0 10px 20px rgba(0, 0, 0, 0.35));
}

/* Ring that keeps pulsing out of the button while hovered. */
.quick-social ul li a::before {
  content: "";
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  z-index: 0;
  border-radius: 50%;
  border: 1px solid transparent;
  opacity: 0;
  pointer-events: none;
}

.quick-social ul li:nth-child(1) a::before { border-color: var(--yellow-color); }
.quick-social ul li:nth-child(2) a::before { border-color: #2AA81A; }

.quick-social ul li a:hover::before {
  animation: qsRing 1.1s ease-out infinite;
}

@keyframes qsRing {
  0%   { opacity: 0.6; transform: scale(1); }
  100% { opacity: 0;   transform: scale(1.5); }
}

/* Footer and mega menu social icons -------------------------------------- */
.social-wrap ul li a,
ul.footer-menu-bar-social li a {
  display: inline-block;
  line-height: 0;
  border-radius: 50%;
  transition: transform 0.35s cubic-bezier(0.34, 1.56, 0.64, 1);
}

/* Colours stay as they are - the icon just grows a little. */
.social-wrap ul li a:hover,
ul.footer-menu-bar-social li a:hover {
  transform: scale(1.15);
}

@media (prefers-reduced-motion: reduce) {
  .quick-social ul li a,
  .quick-social ul li a svg,
  .social-wrap ul li a,
  ul.footer-menu-bar-social li a {
    transition: none;
  }
  .quick-social ul li a:hover,
  .social-wrap ul li a:hover,
  ul.footer-menu-bar-social li a:hover {
    transform: none;
  }
  .quick-social ul li a:hover::before {
    animation: none;
  }
}

/* ==========================================================================
   Footer contact links, contact page map + hovers
   ========================================================================== */

/* Footer phone + email - colour change only. */
#footer .contact-ul li a,
#footer a.email {
  transition: color 0.3s ease;
}

#footer .contact-ul li a:hover,
#footer a.email:hover {
  color: var(--yellow-color) !important;
}

/* Contact page - map embed ------------------------------------------------
   The embed comes from the ACF "location" option as raw markup, which
   carries its own width attribute. Force it to fill the column. */
.map-sec .location iframe {
  display: block;
  width: 100%;
  max-width: 100%;
  border: 0;
}

/* Contact page - sales team card contact rows - colour change only. */
.contact-info a {
  transition: color 0.3s ease;
}

.contact-info a:hover {
  color: var(--yellow-color) !important;
}

/* Contact page - head office phone + email --------------------------------- */
.location-details .phone-c a,
.location-details .email-c a {
  transition: color 0.3s ease;
}

.location-details .phone-c a:hover,
.location-details .email-c a:hover {
  color: var(--yellow-color) !important;
}

/* Contact page - social icons --------------------------------------------
   Brand colours are baked into these SVGs (Facebook blue, Instagram
   gradient), so they just grow, like the footer set. */
.social-icon-c .s-icon {
  display: inline-block;
  line-height: 0;
  transition: transform 0.35s cubic-bezier(0.34, 1.56, 0.64, 1);
}

.social-icon-c .s-icon:hover {
  transform: scale(1.15);
}

@media (prefers-reduced-motion: reduce) {
  .social-icon-c .s-icon {
    transition: none;
  }
  .social-icon-c .s-icon:hover {
    transform: none;
  }
}

/* ==========================================================================
   Contact Form 7 controls - hover / focus
   The fields are borderless with a flat #F3F3F3 fill, so the hover uses an
   inset ring rather than a real border: a border would change the box size
   and nudge the layout on hover.
   ========================================================================== */

.wpcf7 .wpcf7-form-control:not(.wpcf7-submit) {
  transition: background-color 0.3s ease, box-shadow 0.3s ease;
}

.wpcf7 .wpcf7-form-control:not(.wpcf7-submit):hover {
  background-color: #ECECEC;
  box-shadow: inset 0 0 0 1px rgba(189, 146, 70, 0.45);
}

/* The theme kills every focus ring globally via :focus-visible, which leaves
   keyboard users with no indication of where they are. Give these fields one. */
.wpcf7 .wpcf7-form-control:not(.wpcf7-submit):focus {
  background-color: var(--white-color);
  box-shadow: inset 0 0 0 1px var(--yellow-color);
  outline: none;
}

/* Submit button ----------------------------------------------------------
   .yellow-btn:hover only sets the text white, which it already is, so the
   button had no visible hover at all. */
.wpcf7 .wpcf7-submit {
  cursor: pointer;
  transition: background-color 0.3s ease, transform 0.3s ease, box-shadow 0.3s ease;
}

.wpcf7 .wpcf7-submit:hover {
  background-color: #A67B33;
  transform: translateY(-3px);
  box-shadow: 0 10px 20px rgba(0, 0, 0, 0.18);
}

.wpcf7 .wpcf7-submit:active {
  transform: translateY(-1px);
}

@media (prefers-reduced-motion: reduce) {
  .wpcf7 .wpcf7-form-control:not(.wpcf7-submit),
  .wpcf7 .wpcf7-submit {
    transition: none;
  }
  .wpcf7 .wpcf7-submit:hover {
    transform: none;
  }
}

/* ==========================================================================
   Header "Contact Us" dropdown
   The trigger is now an <a> pointing at the contact page, so it still
   navigates on click while the panel opens on hover.
   ========================================================================== */

/* Keep the label white in every state. As an <a> this element now inherits
   Bootstrap's a:hover colour (#0a58ca), which a <button> never did. */
a.dropbtn,
a.dropbtn:link,
a.dropbtn:visited,
a.dropbtn:hover,
a.dropbtn:focus,
a.dropbtn:active {
  color: var(--white-color);
}

a.dropbtn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  text-decoration: none;
  cursor: pointer;
  transition: background-color 0.3s ease, border-color 0.3s ease, color 0.3s ease;
}

.contact-dropdown:hover .dropbtn,
.contact-dropdown:focus-within .dropbtn {
  background-color: var(--yellow-color);
  border-color: var(--yellow-color);
}

/* Animated open ----------------------------------------------------------
   The panel was display:none -> display:block, which cannot be transitioned.
   Swapped for opacity/visibility/transform so it can fade and slide. */
.contact-dropdown-content {
  display: block;
  opacity: 0;
  visibility: hidden;
  transform: translateY(-10px);
  pointer-events: none;
  transition: opacity 0.3s ease, transform 0.3s ease, visibility 0.3s;
}

.contact-dropdown:hover .contact-dropdown-content,
.contact-dropdown:focus-within .contact-dropdown-content {
  opacity: 1;
  visibility: visible;
  transform: translateY(0);
  pointer-events: auto;
}

/* Stagger the two links in as the panel opens. */
.contact-dropdown-content a {
  opacity: 0;
  transform: translateY(-6px);
  transition: opacity 0.3s ease, transform 0.3s ease, background-color 0.25s ease, color 0.25s ease;
}

.contact-dropdown:hover .contact-dropdown-content a,
.contact-dropdown:focus-within .contact-dropdown-content a {
  opacity: 1;
  transform: translateY(0);
}

.contact-dropdown:hover .contact-dropdown-content a:nth-child(1) { transition-delay: 0.08s; }
.contact-dropdown:hover .contact-dropdown-content a:nth-child(2) { transition-delay: 0.16s; }

.contact-dropdown-content a:hover {
  background-color: var(--yellow-color);
  color: var(--white-color);
}

@media (prefers-reduced-motion: reduce) {
  .contact-dropdown-content,
  .contact-dropdown-content a,
  a.dropbtn {
    transition: none;
  }
  .contact-dropdown-content,
  .contact-dropdown-content a {
    transform: none;
  }
}

/* Sales team slider: with a single team member slick still renders one dot,
   which reads as a broken control. Hide the pagination in that case.
   The :only-child rule covers every browser; the :has() rule additionally
   collapses the list's padding where it is supported. */
.slick-slider-contact .slick-dots li:only-child {
  display: none;
}

.slick-slider-contact ul.slick-dots:has(li:only-child) {
  display: none;
}
