@import url("https://fonts.googleapis.com/css?family=Montserrat:400,400i,500,500i,600,600i,700,700i&display=swap");
@import url('https://fonts.googleapis.com/css2?family=Nova+Square&display=swap');
@import url('https://fonts.googleapis.com/css2?family=Numans&display=swap');

@keyframes slideInMenu {
  0% {
    transform: translateX(-30px);
    opacity: 0;
  }
  100% {
    transform: translateX(0);
    opacity: 1;
  }
}

html,
body {
  height: 100%;
  font-family: "Numans", sans-serif;
  -webkit-font-smoothing: antialiased;
  padding-left: 0; /* Remove left padding */
}

@media (max-width: 420px) {
  body {
    padding-left: 0; /* Remove left padding on small screens too */
  }
}

h1,
h2,
h3,
h4,
h5,
h6 {
	margin: 0;
	color: #252525;
	font-weight: 600;
}

h1 {
	font-size: 70px;
}

h2 {
	font-size: 36px;
}

h3 {
	font-size: 30px;
}

h4 {
	font-size: 24px;
}

h5 {
	font-size: 18px;
}

h6 {
	font-size: 16px;
}

p {
	font-size: 15px;
	color: #636363;
	line-height: 1.8;
}

img {
	max-width: 100%;
}

input:focus,
select:focus,
button:focus,
textarea:focus {
	outline: none;
}

a:hover,
a:focus {
	text-decoration: none;
	outline: none;
}

ul,
ol {
	padding: 0;
	margin: 0;
}

@media (min-width: 1200px) {
	.container {
		max-width: 1200px;
	}
}

/*---------------------
   Helper CSS
 -----------------------*/

.section-title {
	text-align: center;
	margin-bottom: 55px;
}

.section-title img {
	margin-bottom: 15px;
}

.section-title h2 {
	font-weight: 400;
	font-size: 38px;
	text-transform: uppercase;
}

.section-title p {
	padding-top: 15px;
	margin-bottom: 0;
}

.set-bg {
	background-repeat: no-repeat;
	background-size: cover;
	background-position: top center;
}

.spad {
	padding-top: 110px;
	padding-bottom: 105px;
}

.text-white h1,
.text-white h2,
.text-white h3,
.text-white h4,
.text-white h5,
.text-white h6,
.text-white p,
.text-white span,
.text-white li,
.text-white a {
	color: #fff;
}

/*---------------------
  Commom elements
-----------------------*/

.site-btn {
	display: inline-block;
	font-size: 16px;
	padding: 17px 25px;
	min-width: 170px;
	color: #fff;
	background: #FF6F31;
	line-height: 1;
	letter-spacing: 1px;
	text-transform: uppercase;
	text-align: center;
	font-weight: 500;
	border: none;
	border-radius: 2px;
}

.site-btn i {
	font-size: 24px;
	position: relative;
	top: 5px;
	margin-left: 4px;
}

.site-btn:hover {
	color: #fff;
}

/* ================================
   Preloader
================================= */
#preloader {
  position: fixed;
  left: 0;
  top: 0;
  width: 100%;
  height: 100vh;
  background-color: #fff;
  z-index: 9999;
  display: flex;
  align-items: center;
  justify-content: center;
}

.preloader-logo img {
  width: 200px;
  height: auto;
  animation: bounce 1.2s infinite;
}

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

.hide-preloader {
  opacity: 0;
  visibility: hidden;
  transition: opacity 0.6s ease, visibility 0.6s;
}

@media (max-width: 768px) {
  .preloader-logo img {
    width: 120px;
  }
}

@media (max-width: 480px) {
  .preloader-logo img {
    width: 100px;
  }
}

/* ================================
   Menu Wrapper + Hamburger + Sidebar
================================= */
.menu-wrapper {
  position: fixed;
  top: 20px;
  left: 20px;
  height: 100vh;
  width: 60px;
  z-index: 10000;
  user-select: none;
  background: transparent;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
}

/* Hide hamburger initially until preloader finishes */
.menu-switch.hidden {
  opacity: 0;
  pointer-events: none;
  transition: opacity 0.5s ease;
}

/* Hamburger button */
.menu-switch {
  cursor: pointer;
  background: transparent;
  padding: 10px 15px;
  border-radius: 0 6px 6px 0;
  transition: opacity 0.5s ease, background-color 0.3s ease;
  align-self: center;
  margin: 0 0 30px 0;
  z-index: 10001;
  user-select: none;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  width: 30px;
  height: 24px;
  box-sizing: content-box;
}

.menu-switch span {
  display: block;
  height: 3px;
  background-color: #FF6F31;
  border-radius: 2px;
  margin: 0;
}

.menu-switch span:not(:last-child) {
  margin-bottom: 6px;
}

.menu-switch:hover {
  background-color: rgba(255, 111, 49, 0.1);
}

/* Sidebar menu dropdown */
.menu-dropdown {
  position: fixed;
  top: 0;
  left: 0;
  height: 100vh;
  width: 220px;
  background: rgba(255, 255, 255, 0.8);
  border-radius: 0 6px 6px 0;
  box-shadow: 2px 0 12px rgba(0,0,0,0.1);
  padding: 60px 20px 20px 20px;
  transform: translateX(-100%);
  opacity: 1;
  pointer-events: auto;
  transition: transform 0.3s ease;
  font-family: 'Numans', sans-serif;
  z-index: 10000;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  align-items: left;
}

/* Slide in sidebar when hovering on hamburger */
.menu-switch:hover + .menu-dropdown {
  transform: translateX(0);
}

/* Center nav links vertically */
.menu-center {
  flex-grow: 1;
  display: flex;
  flex-direction: column;
  justify-content: center;
  width: 100%;
}

/* Menu links */
.main-menu ul {
  list-style: none;
  margin: 0;
  padding: 0;
  width: 100%;
  text-align: left;
}

.main-menu ul li {
  margin-bottom: 18px;
  opacity: 1;
  transform: none;
}

.main-menu ul li a {
  text-decoration: none;
  font-size: 18px;
  color: #252525;
  transition: color 0.3s ease;
  display: block;
  text-align: left;
}

.main-menu ul li a:hover,
.main-menu ul li a.active {
  color: #FF6F31;
}

/* Social icons container */
.menu-social {
  display: flex;
  justify-content: space-between;
  width: 100%;
  padding: 0 20px;
}

.menu-social a {
  color: #757575;
  font-size: 20px;
  transition: color 0.3s ease;
}

.menu-social a:hover {
  color: #FF6F31;
}

/* Responsive adjustments */
@media (max-width: 420px) {
  .menu-wrapper {
    top: 15px;
    left: 15px;
    width: 50px;
  }

  .menu-dropdown {
    width: 200px;
    padding: 60px 15px 15px 15px;
  }

  .menu-switch {
    font-size: 26px;
    padding: 8px 12px;
    margin-bottom: 20px;
    width: 26px;
    height: 20px;
  }

  .menu-switch span {
    height: 2.5px;
  }

  .main-menu ul li a {
    font-size: 16px;
  }

  .menu-social a {
    font-size: 18px;
  }
}


/*---------------------
   Hero section
 -----------------------*/

.hero-section {
	height: 100%;
}

@media only screen and (min-width: 576px) and (max-width: 767px),
(max-width: 576px) {
	.pana-accordion {
		display: none;
	}
}

.pana-accordion-item,
.hero-item {
	display: -webkit-box;
	display: -ms-flexbox;
	display: flex;
	-webkit-box-align: end;
	-ms-flex-align: end;
	align-items: flex-end;
	position: relative;
}

.pana-accordion-item .pa-text,
.hero-item .pa-text {
	padding-left: 40px;
	padding-bottom: 50px;
	position: relative;
	z-index: 5;
	opacity: 0;
	top: -50px;
}

.hero-item .pa-text .pa-tag {
	display: absolute;
	padding: 4px 20px;
	margin-bottom: 50px;
	font-size: 12px;
	color: #FF6F31;
	text-transform: uppercase;
	font-weight: 600;
	border-radius: 2px;
	background: #fff;
}

/* .pana-accordion-item .pa-text h2,
.hero-item .pa-text h2 {
	font-size: 60px;
	font-weight: 700;
	color: #fff;
	margin-bottom: 20px;
} */

@media only screen and (min-width: 576px) and (max-width: 767px),
only screen and (min-width: 768px) and (max-width: 991px) {
	.pana-accordion-item .pa-text h2,
	.hero-item .pa-text h2 {
		font-size: 48px;
	}
}

@media (max-width: 576px) {
	.pana-accordion-item .pa-text h2,
	.hero-item .pa-text h2 {
		font-size: 36px;
	}
}

@media (max-width: 420px) {
	.pana-accordion-item .pa-text h2,
	.hero-item .pa-text h2 {
		font-size: 24px;
	}
}

.pana-accordion-item .pa-text h4,
.hero-item .pa-text h4 {
	font-weight: 600;
	color: #fff;
	padding-top: 15px;
}

@media (max-width: 420px) {
	.pana-accordion-item .pa-text h4,
	.hero-item .pa-text h4 {
		font-size: 16px;
	}
}

.pana-accordion-item .pa-text .pa-author,
.hero-item .pa-text .pa-author {
	overflow: hidden;
}

.pana-accordion-item .pa-text .pa-author img,
.hero-item .pa-text .pa-author img {
	width: 60px;
	height: 60px;
	float: left;
	border-radius: 50%;
	margin-right: 10px;
}

.pana-accordion-item.active .pa-text,
.hero-item.active .pa-text {
	opacity: 1;
	top: 0;
	-webkit-transition: all 0.4s ease 0.4s;
	-o-transition: all 0.4s ease 0.4s;
	transition: all 0.4s ease 0.4s;
}

.pana-accordion-item.active:after,
.hero-item.active:after {
	content: "";
	position: absolute;
	width: 100%;
	height: 50%;
	left: 0;
	bottom: 0;
	background: black;
	background: -webkit-gradient(linear, left bottom, left top, from(rgba(0, 0, 0, 0.8211659664)), color-stop(94%, rgba(0, 0, 0, 0)));
	background: -o-linear-gradient(bottom, rgba(0, 0, 0, 0.8211659664) 0%, rgba(0, 0, 0, 0) 94%);
	background: linear-gradient(0deg, rgba(0, 0, 0, 0.8211659664) 0%, rgba(0, 0, 0, 0) 94%);
	filter: progid:DXImageTransform.Microsoft.gradient(startColorstr="#000000", endColorstr="#000000", GradientType=1);
}

.hero-slider-warp {
	height: 100%;
	display: none;
}

@media only screen and (min-width: 576px) and (max-width: 767px),
(max-width: 576px) {
	.hero-slider-warp {
		display: block;
	}
}

.hero-slider {
	height: 100%;
}

.hero-slider .owl-stage-outer,
.hero-slider .owl-stage,
.hero-slider .owl-item,
.hero-slider .pana-accordion-item,
.hero-slider .hero-item {
	height: 100%;
}

.hero-item {
	position: relative;
	display: -webkit-box;
	display: -ms-flexbox;
	display: flex;
	-webkit-box-align: center;
	-ms-flex-align: center;
	align-items: center;
	-webkit-box-pack: center;
	-ms-flex-pack: center;
	justify-content: center;
	text-align: center;
	padding: 0 15px;
}

.hero-item .pa-text {
	padding-left: 0;
	padding-bottom: 0;
}

.hero-item .pa-text h4 {
	display: inline-block;
}

.hero-item .pa-text .pa-author img {
	float: none;
	display: inline-block;
}

.owl-item.active .hero-item .pa-text {
	opacity: 1;
	top: 0;
	-webkit-transition: all 0.4s ease 0.4s;
	-o-transition: all 0.4s ease 0.4s;
	transition: all 0.4s ease 0.4s;
}


/* .owl-item.active .hero-item:after {
	content: "";
	position: absolute;
	width: 100%;
	height: 100%;
	left: 0;
	bottom: 0;
	background: #000000;
	opacity: 0.2;
} */

/*------------------
   About page
 ------------------*/

/* About page parallax styles */
.about-parallax-container {
  position: relative;
  height: 400px; /* adjust height as you like */
  overflow: hidden;
}

.about-parallax-image {
  position: absolute;
  top: 0; left: 0; right: 0; bottom: 0;
  width: 100%;
  height: 120%; /* tall enough for smooth parallax */
  background-image: url("../img/KijaniRidge/Renders/5.png");
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
  will-change: transform;
  z-index: -1;
  transform: translateY(0);
}

.about-parallax-text-wrapper {
  position: absolute;
  top: 50%;
  left: 5%;
  transform: translateY(-50%);
  color: white;
  max-width: 40%;
  text-align: left;
  z-index: 10;
}

.about-slider-heading {
  font-size: 3.5rem;       /* Bigger size */
  margin-bottom: 0.5rem;
  font-weight: 900;        /* Extra bold for luxury */
  color: #ffffff;          /* Pure white */
  font-family: 'Numans', serif; /* Classic, elegant serif font */
  letter-spacing: 0.05em;  /* Slight spacing for sophistication */
  text-transform: uppercase; /* Optional for a more prestigious feel */
  text-shadow: 0 2px 5px rgba(0,0,0,0.4); /* subtle depth */
}

.about-content-section {
  padding-bottom: -1rem 0; /* reduce from py-5 (3rem) to 1rem */
  /* margin-bottom: 0;     ensure no margin */
  
}

.about-content-section h3 {
  font-weight: 700;
}

.about-content-section p {
  font-size: 1rem;
  line-height: 1.6;
}
.about-scroll-indicator {
  display: flex;
  justify-content: center;
  margin-top: -50px;
  z-index: 5;
  position: relative;
}

.about-scroll-indicator span {
  display: inline-block;
  width: 24px;
  height: 40px;
  border: 2px solid #fff;
  border-radius: 15px;
  position: relative;
  box-shadow: 0 2px 5px rgba(0, 0, 0, 0.15);
}

.about-scroll-indicator span::before {
  content: "";
  position: absolute;
  top: 8px;
  left: 50%;
  width: 6px;
  height: 6px;
  background-color: #fff;
  border-radius: 50%;
  transform: translateX(-50%);
  animation: scrollDownAnim 1.5s infinite;
}

@keyframes scrollDownAnim {
  0% { transform: translate(-50%, 0); opacity: 1; }
  50% { transform: translate(-50%, 10px); opacity: 0.5; }
  100% { transform: translate(-50%, 0); opacity: 1; }
}
.about-filmstrip-section {
  background-color: #111; /* Dark background for contrast */
  padding-top: 0.5rem;  /* reduce from py-4 (2rem) to 0.5rem */
  margin-top: 0;        /* remove margin */
  position: relative;   /* needed for absolute positioning holes */
  overflow: visible;    /* so holes can show outside container */
}

/* Wrapper around carousel, for holes and padding */
.filmstrip-wrapper {
  position: relative;
  margin: 0 auto;
  max-width: 1200px; /* adjust width as needed */
  padding: 1rem 3rem;
  background: #111;
  border-radius: 8px;
  box-shadow: 0 0 15px rgba(0,0,0,0.7);
}

/* Holes container on left and right */
.filmstrip-wrapper .holes-left,
.filmstrip-wrapper .holes-right {
  position: absolute;
  top: 10px;
  bottom: 10px;
  width: 20px;
  display: flex;
  flex-direction: column;
  justify-content: space-around;
  z-index: 10;
  pointer-events: none;
}

.filmstrip-wrapper .holes-left {
  left: 0;
}

.filmstrip-wrapper .holes-right {
  right: 0;
}

/* Circular holes */
.filmstrip-wrapper .holes-left span,
.filmstrip-wrapper .holes-right span {
  display: block;
  width: 12px;
  height: 12px;
  background: #111;
  border-radius: 50%;
  box-shadow: 0 0 8px 2px #222 inset;
  margin: 4px auto;
}

/* Your existing carousel item styles */
.about-filmstrip-carousel .filmstrip-item {
  padding: 0 8px;
  cursor: pointer;
}

.about-filmstrip-carousel .filmstrip-item img {
  display: block;
  width: 170px; /* increased width */
  height: 150px; /* increased height */
  object-fit: cover;
  border-radius: 2px;
  box-shadow: 0 4px 10px rgba(0,0,0,0.6);
  transition: transform 0.3s ease, box-shadow 0.3s ease;
}

.about-filmstrip-carousel .filmstrip-item img:hover {
  transform: scale(1.1);
  box-shadow: 0 8px 20px rgba(255, 255, 255, 0.8);
}

.about-services-section {
  background: #f9f9f9;
  padding: 1rem 0;
  margin: 1rem 0;
}

.section-title {
  font-size: 2.5rem;
  font-weight: 700;
  color: #222;
  margin-bottom: 3rem;
  font-family: 'Numans', sans-serif;
  text-align: center;
}

.services-cards-wrapper {
  display: flex;
  flex-wrap: wrap;
  gap: 2rem;
  justify-content: center;
}

/* Flip Card Base */
.flip-card {
  background-color: transparent;
  width: 280px;
  height: 220px;
  perspective: 1200px;
  cursor: pointer;
}

/* Inner Card Flipping */
.flip-card-inner {
  position: relative;
  width: 100%;
  height: 100%;
  transition: transform 0.8s cubic-bezier(0.4, 0, 0.2, 1);
  transform-style: preserve-3d;
  box-shadow: 0 6px 18px rgba(0, 0, 0, 0.15);
  border-radius: 12px;
}

/* Flip on Hover */
.flip-card:hover .flip-card-inner {
  transform: rotateY(180deg);
}

/* Front & Back Faces */
.flip-card-front,
.flip-card-back {
  position: absolute;
  width: 100%;
  height: 100%;
  border-radius: 12px;
  backface-visibility: hidden;
  display: flex;
  justify-content: center;
  align-items: center;
  padding: 2rem;
  box-sizing: border-box;
  text-align: center;
}

/* Front Face Styling */
.flip-card-front {
  background-color: #fff; /* Dark background for contrast */
  color: #ED7F10;
  flex-direction: column;
  gap: 1rem;
  font-family: 'Numans', sans-serif;
}

.flip-card-front i {
  color: #ED7F10; /* Gold tone for luxury look */
  font-size: 2.5rem;
}

.card-title {
  display: block;
  font-size: 1.2rem;
  font-weight: 700;
  line-height: 1.3;
  color:#333;
  margin-top: 0.5rem;
}

/* Back Face Styling */
.flip-card-back {
  background-color: #fff;
  color: #333;
  transform: rotateY(180deg);
  font-size: 1rem;
  line-height: 1.5;
  font-family: 'Numans', Tahoma, Geneva, Verdana, sans-serif;
  padding: 1.5rem;
}

/* Mobile Responsive Stacking */
@media (max-width: 768px) {
  .flip-card {
    width: 90%;
    height: auto;
  }

  .flip-card-inner {
    min-height: 240px;
  }

  .flip-card-front,
  .flip-card-back {
    padding: 1.5rem;
  }

  .flip-card-front i {
    font-size: 2rem;
  }

  .card-title {
    font-size: 1.1rem;
  }

  .section-title {
    font-size: 2rem;
  }
}


/*------------------ 
   Signature Page: Horizontal Scroll
------------------*/
.signature-gallery {
  height: 100vh;
  overflow-x: auto;
  overflow-y: hidden;
  scroll-snap-type: x mandatory;
  -webkit-overflow-scrolling: touch;
  background: #fff;
  padding: 20px 40px;
  box-sizing: border-box;
}

.bold-text {
    font-weight: bold;
  }
.signature-gallery .scroll-container {
  display: inline-flex;
  height: 100%;
  width: max-content;
}

/*------------------
   Project Panel
------------------*/
.project-panel {
  scroll-snap-align: start;
  position: relative;
  height: 100vh;
  min-width: calc(100vw - 80px);
  background: #fff;
  display: flex;
  align-items: center;
  padding: 60px 40px;
  color: #111;
  box-sizing: border-box;
  border-radius: 12px;
  box-shadow: 0 8px 24px rgba(0, 0, 0, 0.1);
  margin-right: 40px;
  transition: transform 0.3s ease;
  overflow: hidden;
}

.project-panel:hover {
  transform: scale(1.03);
}

/*------------------
   project-number
------------------*/
.project-number {
  display: block;
  font-size: 24px;
  font-weight: 700;
  color: #ED7F10;
  opacity: 0.400; /* very faint */
  margin-bottom: 10px;
  letter-spacing: 3px;
  font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;
  text-transform: uppercase;
  user-select: none;
}


/*------------------
   Image Slider (Autoplay only)
------------------*/
.image-slider {
  position: relative;
  flex: 1;
  height: 100%;
  overflow: hidden;
  border-radius: 12px;
  margin-right: 40px;
  box-shadow: 0 0 15px rgba(0, 0, 0, 0.1);
}

.image-slider .slide {
  position: absolute;
  width: 100%;
  height: 100%;
  background-size: cover;
  background-position: center;
  opacity: 0;
  transition: opacity 0.5s ease;
  cursor: pointer;
  z-index: 0;
}

.image-slider .slide.active {
  opacity: 1;
  z-index: 10;
}

/* Removed Navigation */

/*------------------
   Text Content
------------------*/
.project-content {
  flex: 1;
  max-width: 600px;
  opacity: 0;
  transform: translateY(20px);
  transition: opacity 0.8s ease, transform 0.8s ease;
}

.project-content.visible {
  opacity: 1;
  transform: translateY(0);
}

.project-content h2 {
  font-size: 40px;
  margin-bottom: 10px;
  text-transform: uppercase;
  letter-spacing: 2px;
  color: #111;
}

.project-content h5 {
  font-weight: 400;
  font-size: 18px;
  margin-bottom: 15px;
  opacity: 0.6;
  color: #444;
}

.project-content p {
  font-size: 16px;
  line-height: 1.6;
  opacity: 0.8;
  color: #333;
}

/*------------------
   Fullscreen Modal
------------------*/
.image-modal {
  display: none;
  position: fixed;
  top: 0; left: 0;
  width: 100%;
  height: 100%;
  background-color: rgba(0, 0, 0, 0.9);
  justify-content: center;
  align-items: center;
  z-index: 9999;
}

.image-modal .modal-content {
  max-width: 90%;
  max-height: 90%;
  border-radius: 8px;
}

.image-modal .modal-close {
  position: absolute;
  top: 20px;
  right: 35px;
  color: #fff;
  font-size: 40px;
  font-weight: bold;
  cursor: pointer;
}

/*------------------
   Responsive Design for Mobile
------------------*/
@media screen and (max-width: 768px) {

  /* Signature Gallery vertical scroll */
  .signature-gallery {
    height: auto !important;
    overflow-y: auto !important;
    overflow-x: hidden !important;
    scroll-snap-type: y mandatory !important;
    padding: 20px !important;
  }

  /* Scroll container stacks vertically */
  .signature-gallery .scroll-container {
    display: block !important;
    width: 100% !important;
    height: auto !important;
  }

  /* Project panel full width, vertical stacking */
  .project-panel {
    flex-direction: column !important;
    padding: 40px 20px !important;
    min-width: 100% !important;
    height: auto !important;
    margin-right: 0 !important;
    scroll-snap-align: start !important;
  }

  /* Image slider styles for mobile - visible slides */
  .image-slider {
    position: relative !important;
    width: 100% !important;
    height: 300px !important;
    margin-right: 0 !important;
    margin-bottom: 20px !important;
    overflow: hidden !important;
    flex: none !important;
  }

  .image-slider .slide {
    position: absolute !important;
    width: 100% !important;
    height: 100% !important;
    opacity: 0 !important;
    transition: opacity 0.5s ease !important;
    cursor: pointer !important;
    z-index: 0 !important;
  }

  .image-slider .slide.active {
    opacity: 1 !important;
    z-index: 10 !important;
  }

  /* Text content adjustments */
  .project-content {
    max-width: 100% !important;
  }

  .project-content h2 {
    font-size: 28px !important;
  }

  /* Adjust side title on mobile to avoid overlap */
  .side-title {
    position: relative !important;
    top: 10px !important;
    right: auto !important;
    text-align: center !important;
    margin-bottom: 20px !important;
    pointer-events: none;
  }

  .side-title h1 {
    font-size: 40px !important;
    border-right: none !important;
    animation: none !important;
    color: #777;
    white-space: normal !important;
  }

  .side-title h2 {
    font-size: 32px !important;
    -webkit-text-stroke: 0.5px #cccccc !important;
    text-stroke: 0.5px #cccccc !important;
    margin: 0 !important;
    color: transparent !important;
  }
}

/*------------------
   Side Title and Animations
------------------*/
.side-title {
  position: absolute;    
  top: 20px;             
  right: 30px;           
  text-align: right;
  z-index: 10;           
  pointer-events: none;  
}

.side-title h1 {
  font-size: 60px;
  font-weight: 900;
  color: #777;   /* back to grey */
  margin: 0;
  overflow: hidden;         
  border-right: 3px solid #777; /* grey cursor */
  white-space: nowrap;      
  animation: typing 2s steps(9, end), blink 0.7s step-end infinite;
}

.side-title h2 {
  font-size: 50px;
  font-weight: 300;
  color: transparent;               
  -webkit-text-stroke: 1px #cccccc; 
  text-stroke: 1px #cccccc;         
  margin: -10px 0 0 0;
}

/* Typewriter animation */
@keyframes typing {
  from { width: 0 }
  to { width: 100% }
}

@keyframes blink {
  50% { border-color: transparent }
}
@media screen and (max-width: 768px) {
  body.gallery-page {
    overflow: auto !important;
    -webkit-overflow-scrolling: touch;
  }
}
@media screen and (max-width: 768px) {
  .side-title {
    top: 10px; /* Optional: move it slightly higher */
    right: 20px;
    text-align: right;
  }

  .side-title h1,
  .side-title h2 {
    text-align: right;
    font-size: 32px; /* Optional: reduce size for mobile */
  }

  .side-title h2 {
    font-size: 24px; /* Smaller subtitle on mobile */
  }
}

.view-project-btn {
  display: inline-block;
  margin-top: 10px;
  padding: 10px 20px;
  background-color: transparent;
  color: #000;
  border: 1px solid #000;
  font-size: 14px;
  text-transform: uppercase;
  text-decoration: none;
  letter-spacing: 1px;
  transition: all 0.3s ease;
}

.view-project-btn:hover {
  background-color: #ED7F10;
  color: #fff;
}
.story-gallery {
  padding: 0;
  margin: 0;
  background: #fff;
  width: 100%;
}

.story-container {
  width: 100%;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
}

.story-container img {
  width: 100%;
  height: auto;
  display: block;
  object-fit: cover;
  margin: 0;   /* remove auto margins */
  padding: 0;  /* remove spacing */
  border: none;
  opacity: 0;
  transform: translateY(20px);
  transition: opacity 0.8s ease, transform 0.8s ease;
}

.story-container img.loaded {
  opacity: 1;
  transform: translateY(0);
}

/* Desktop back-widget on right */
.back-widget {
  position: fixed;
  top: 50%;
  right: 40px;
  transform: translateY(-50%);
  width: 60px;
  height: 60px;
  background: #fff;
  border-radius: 50%;
  box-shadow: 0 8px 20px rgba(0,0,0,0.15);
  display: flex;
  justify-content: center;
  align-items: center;
  cursor: pointer;
  z-index: 9999;
  opacity: 0;
  transition: opacity 0.5s ease, transform 0.5s ease;
}

/* Arrow icon for desktop */
.back-widget::before {
  content: "\2190"; /* Unicode left arrow */
  font-size: 1.5rem;
  color: #333;
  display: inline-block;
  animation: slide-left-right 1.2s ease-in-out infinite alternate; /* continuous slide */
}

/* Show the widget */
.back-widget.show {
  opacity: 1;
  transform: translateY(-50%);
}

/* Optional subtle hover for the whole widget */
.back-widget:hover {
  transform: translateY(-50%) translateX(5px); /* slightly move circle right */
  transition: transform 0.3s ease;
}

/* Slide left-right animation for desktop arrow */
@keyframes slide-left-right {
  0%   { transform: translateX(0); }
  100% { transform: translateX(-5px); } /* slide slightly left */
}

/* Mobile tweaks */
@media (max-width: 768px) {
  .back-widget {
    bottom: 20px;
    right: -60px; /* start off-screen */
    width: 50px;
    height: 50px;
    transform: translateY(0);
    transition: all 0.4s ease;
  }

  .back-widget.show {
    right: 20px; /* slide into view */
  }

  /* Subtle bounce animation for mobile arrow */
  .back-widget.show::before {
    animation: subtle-bounce 1.2s ease-in-out infinite alternate;
  }

  @keyframes subtle-bounce {
    0%   { transform: translateY(0); }
    100% { transform: translateY(-5px); }
  }
}


/* ===== Force full-bleed on small screens ===== */
@media (max-width: 768px) {
  .story-gallery,
  .story-container,
  .story-container img,
  .back-to-gallery {
    max-width: 100%;
    margin: 0;
    padding: 0;
  }
}



/*------------------
   Gallery page
 ------------------*/

/* .gallery-section {
	height: 100%;
	overflow: hidden;
	position: relative;
	padding-top: 90px;
}

.gallery-section .gallery-warp {
	margin-left: -5px;
	margin-right: -5px;
}

@media only screen and (min-width: 576px) and (max-width: 767px),
(max-width: 576px) {
	.gallery-section {
		padding-top: 0;
		height: auto;
	}
}

.nice-scroll {
	height: 100%;
	overflow: hidden;
}

@media only screen and (min-width: 576px) and (max-width: 767px),
(max-width: 576px) {
	.nice-scroll {
		overflow: inherit;
	}
}

.gallery-header {
  position: relative;   /* instead of absolute */
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 0 30px;
  margin-bottom: 40px;  /* space below header */
  z-index: 1;           /* stays above gallery if needed */
}


@media only screen and (min-width: 992px) and (max-width: 1200px),
only screen and (min-width: 768px) and (max-width: 991px),
only screen and (min-width: 576px) and (max-width: 767px),
(max-width: 576px) {
	.gallery-header {
		padding-left: 15px;
		padding-right: 15px;
	}
}

@media only screen and (min-width: 576px) and (max-width: 767px),
(max-width: 576px) {
	.gallery-header {
		position: relative;
		padding-bottom: 20px;
	}
}

.gallery-header h4 {
  margin: 0;
  font-size: 22px;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 2px;
}
@media only screen and (min-width: 576px) and (max-width: 767px),
(max-width: 576px) {
	.gallery-header h4 {
		margin-bottom: 20px;
		float: none;
	}
}

.gallery-filter {
  list-style: none;
  display: flex;
  gap: 25px; /* spacing between filters */
  margin: 0;
  padding: 0;
}

@media only screen and (min-width: 576px) and (max-width: 767px),
(max-width: 576px) {
	.gallery-filter {
		float: none;
	}
}

.gallery-filter li {
  font-size: 16px;
  font-weight: 500;
  color: #252525;
  cursor: pointer;
  transition: color 0.3s ease;
}

@media only screen and (min-width: 768px) and (max-width: 991px) {
	.gallery-filter li {
		margin-left: 20px;
	}
}

@media only screen and (min-width: 576px) and (max-width: 767px),
(max-width: 576px) {
	.gallery-filter li {
		margin-left: 0;
		margin-right: 15px;
		font-size: 16px;
	}
}
.gallery-filter li:hover,
.gallery-filter li.active {
  color: #FF6F31;
}

.grid-sizer,
.gallery-item {
	width: 20%;
}

@media only screen and (min-width: 992px) and (max-width: 1200px) {
	.grid-sizer,
	.gallery-item {
		width: 25%;
	}
}

@media only screen and (min-width: 768px) and (max-width: 991px),
only screen and (min-width: 576px) and (max-width: 767px) {
	.grid-sizer,
	.gallery-item {
		width: 50%;
	}
}

@media (max-width: 576px) {
	.grid-sizer,
	.gallery-item {
		width: 100%;
	}
}

.gallery-item {
	padding: 0 5px;
	margin-bottom: 10px;
	position: relative;
}

.gallery-item .gi-hover {
	position: absolute;
	left: 30px;
	bottom: 30px;
	opacity: 0;
	filter: alpha(opacity=0);
	-webkit-transition: all 0.4s ease 0s;
	-o-transition: all 0.4s ease 0s;
	transition: all 0.4s ease 0s;
}

.gallery-item .gi-hover img {
	display: inline-block;
	border-radius: 50%;
	width: 60px;
	height: 60px;
	margin-right: 6px;
}

.gallery-item .gi-hover h6 {
	padding-top: 5px;
	display: inline-block;
	color: #fff;
	position: relative;
	top: 2px;
}

.gallery-item a {
	display: block;
	position: relative;
}

.gallery-item a:after {
	content: "";
	position: absolute;
	width: 100%;
	height: 50%;
	left: 0;
	bottom: 0;
	background: black;
	background: -webkit-gradient(linear, left bottom, left top, from(rgba(0, 0, 0, 0.8211659664)), color-stop(94%, rgba(0, 0, 0, 0)));
	background: -o-linear-gradient(bottom, rgba(0, 0, 0, 0.8211659664) 0%, rgba(0, 0, 0, 0) 94%);
	background: linear-gradient(0deg, rgba(0, 0, 0, 0.8211659664) 0%, rgba(0, 0, 0, 0) 94%);
	filter: progid:DXImageTransform.Microsoft.gradient(startColorstr="#000000", endColorstr="#000000", GradientType=1);
	opacity: 0;
	filter: alpha(opacity=0);
	-webkit-transition: all 0.4s ease 0s;
	-o-transition: all 0.4s ease 0s;
	transition: all 0.4s ease 0s;
}

.gallery-item a img {
	min-width: 100%;
}

.gallery-item:hover .gi-hover {
	opacity: 1;
	filter: alpha(opacity=100);
}

.gallery-item:hover a:after {
	opacity: 0.8;
	filter: alpha(opacity=80);
}

.gallery-item.gi-big {
	width: 40%;
}

@media only screen and (min-width: 992px) and (max-width: 1200px),
only screen and (min-width: 768px) and (max-width: 991px),
only screen and (min-width: 576px) and (max-width: 767px) {
	.gallery-item.gi-big {
		width: 50%;
	}
}

@media (max-width: 576px) {
	.gallery-item.gi-big {
		width: 100%;
	}
}

@media only screen and (min-width: 992px) and (max-width: 1200px),
only screen and (min-width: 768px) and (max-width: 991px),
only screen and (min-width: 576px) and (max-width: 767px) {
	.gallery-item.gi-long {
		width: 50%;
	}
}

@media (max-width: 576px) {
	.gallery-item.gi-long {
		width: 100%;
	}
}

.fr-position-outside {
	left: 0;
	top: 0;
	right: auto;
	bottom: auto;
}

.fr-position-text {
	color: #fff;
}

.fr-window-skin-fresco.fr-window-ui-outside .fr-close-background,
.fr-window-skin-fresco.fr-window-ui-outside .fr-close:hover .fr-close-background {
	background-color: transparent;
}

.fr-thumbnail-active {
	border: 2px solid #FF6F31; */
}

/*----------------
   Art Gallery Page
 ----------------*/


/*----------------
   Blog Page
 ----------------*/

.blog-section {
	height: 100%;
	overflow: hidden;
	position: relative;
}

.blog-grid-warp {
	margin-left: -5px;
	margin-right: -5px;
}

.blog-grid-sizer,
.blog-grid {
	width: 20%;
}

@media only screen and (min-width: 1200px) and (max-width: 1440px) {
	.blog-grid-sizer,
	.blog-grid {
		width: 25%;
	}
}

@media only screen and (min-width: 992px) and (max-width: 1200px) {
	.blog-grid-sizer,
	.blog-grid {
		width: 33.333333%;
	}
}

@media only screen and (min-width: 768px) and (max-width: 991px),
only screen and (min-width: 576px) and (max-width: 767px) {
	.blog-grid-sizer,
	.blog-grid {
		width: 50%;
	}
}

@media (max-width: 576px) {
	.blog-grid-sizer,
	.blog-grid {
		width: 100%;
	}
	.blog-grid-sizer img,
	.blog-grid img {
		min-height: 250px;
	}
}

.blog-grid {
	padding: 0 5px;
	margin-bottom: 10px;
}

.blog-item {
	position: relative;
}

.blog-item:after {
	content: "";
	position: absolute;
	width: 100%;
	height: 50%;
	left: 0;
	bottom: 0;
	background: black;
	background: -webkit-gradient(linear, left bottom, left top, from(rgba(0, 0, 0, 0.7)), color-stop(94%, rgba(0, 0, 0, 0)));
	background: -o-linear-gradient(bottom, rgba(0, 0, 0, 0.7) 0%, rgba(0, 0, 0, 0) 94%);
	background: linear-gradient(0deg, rgba(0, 0, 0, 0.7) 0%, rgba(0, 0, 0, 0) 94%);
	filter: progid:DXImageTransform.Microsoft.gradient(startColorstr="#000000", endColorstr="#000000", GradientType=1);
}

.blog-item img {
	min-width: 100%;
}

.blog-item .bi-tag {
	position: absolute;
	top: 30px;
	left: 30px;
	display: inline-block;
	padding: 4px 20px;
	margin-bottom: 10px;
	font-size: 12px;
	letter-spacing: 2px;
	color: #FF6F31;
	text-transform: uppercase;
	font-weight: 600;
	border-radius: 2px;
	background: #fff;
}

.blog-item .bi-text {
	position: absolute;
	left: 0;
	bottom: 0;
	padding-left: 30px;
	padding-right: 20px;
	z-index: 99;
}

.blog-item .bi-text .bi-date {
	font-size: 13px;
	color: #fff;
	margin-bottom: 10px;
}

.blog-item .bi-text h3 {
	font-size: 20px;
	padding-bottom: 25px;
	color: #fff;
	line-height: 1.6;
}

.blog-item .bi-text h3 a {
	color: #fff;
}

/*-------------------
   Blog Single Page
 --------------------*/

.blog-details {
	height: 100%;
}

.single-blog-page {
	padding: 45px 38px 50px;
}

@media (max-width: 576px) {
	.single-blog-page {
		padding: 45px 0 50px;
	}
}

.single-blog-page h2 {
	font-size: 36px;
	margin-bottom: 50px;
}

.single-blog-page p {
	margin-bottom: 10px;
}

.blog-metas {
	margin-bottom: 10px;
}

.blog-metas .blog-meta {
	display: inline-block;
	font-size: 13px;
	color: #252525;
	padding-right: 14px;
	margin-right: 12px;
	margin-bottom: 10px;
	position: relative;
}

.blog-metas .blog-meta:after {
	position: absolute;
	content: "|";
	right: 0;
	top: 0;
	font-size: 12px;
	color: #252525;
}

.blog-metas .blog-meta:last-child {
	padding-right: 0;
	margin-right: 0;
}

.blog-metas .blog-meta:last-child:after {
	display: none;
}

.blog-thumb {
	position: relative;
	margin-bottom: 45px;
}

.blog-thumb .thumb-cata {
	position: absolute;
	top: 35px;
	left: 55px;
	display: inline-block;
	padding: 4px 20px;
	margin-bottom: 10px;
	font-size: 12px;
	letter-spacing: 2px;
	color: #FF6F31;
	text-transform: uppercase;
	font-weight: 600;
	border-radius: 2px;
	background: #fff;
}

.blog-gallery {
	padding-top: 40px;
	margin: 0 -5px;
}

.blog-gallery .bg-item {
	padding: 0 5px;
	margin-bottom: 10px;
}

.blog-gallery .bg-item img {
	min-width: 100%;
}

.post-cata {
	display: inline-block;
	font-size: 12px;
	font-weight: 600;
	padding: 4px 13px;
	margin-bottom: 10px;
	margin-right: 6px;
	text-transform: uppercase;
	text-align: center;
	letter-spacing: 2px;
	border-radius: 2px;
	color: #FF6F31;
	background: #ebebeb;
	-webkit-transition: 0.3s;
	-o-transition: 0.3s;
	transition: 0.3s;
}

.post-cata:hover {
	color: #fff;
	background: #FF6F31;
}

.post-share span {
	display: inline-block;
	font-size: 16px;
	margin-right: 20px;
	color: #252525;
}

.post-share a {
	display: inline-block;
	font-size: 14px;
	width: 36px;
	height: 36px;
	text-align: center;
	padding-top: 8px;
	color: #FF6F31;
	border-radius: 52px;
	margin-left: 4px;
	background: #ebebeb;
}

.post-share a:hover {
	background: #FF6F31;
	color: #fff;
}

.blog-navigation {
	margin-bottom: 50px;
}

.blog-navigation .bn-item {
	height: 236px;
	display: -webkit-box;
	display: -ms-flexbox;
	display: flex;
	-webkit-box-align: center;
	-ms-flex-align: center;
	align-items: center;
	-webkit-box-pack: center;
	-ms-flex-pack: center;
	justify-content: center;
}

.blog-navigation .bn-item h4 {
	color: #fff;
	max-width: 350px;
	position: relative;
	text-align: center;
}

.blog-navigation .bn-item i {
	position: absolute;
	left: 0;
	top: calc(50% - 12px);
	opacity: 0;
	-webkit-transition: 0.3s;
	-o-transition: 0.3s;
	transition: 0.3s;
}

@media (max-width: 576px) {
	.blog-navigation .bn-item i {
		left: calc(50% - 0px);
		top: 100%;
		margin-top: 15px;
	}
}

.blog-navigation .bn-item:hover i {
	opacity: 1;
	left: -50px;
}

@media (max-width: 576px) {
	.blog-navigation .bn-item:hover i {
		left: calc(50% - 12px);
		top: 100%;
	}
}

.blog-navigation .bn-item.bn-next i {
	left: auto;
	right: 0;
}

@media (max-width: 576px) {
	.blog-navigation .bn-item.bn-next i {
		right: calc(50% - 0px);
	}
}

.blog-navigation .bn-item.bn-next:hover i {
	opacity: 1;
	right: -50px;
}

@media (max-width: 576px) {
	.blog-navigation .bn-item.bn-next:hover i {
		right: calc(50% - 12px);
		top: 100%;
	}
}

.recent-blog {
	margin-bottom: 40px;
}

.recent-blog .row {
	margin: 0 -6px;
}

.recent-blog .col-lg-4 {
	padding: 0 6px;
}

.recent-blog .rp-item {
	height: 250px;
	margin-bottom: 20px;
}

.recent-blog .rp-item:after {
	content: "";
	height: 80%;
}

.comment-option h3 {
	margin-bottom: 40px;
}

.comment-option .single-comment-item {
	margin-bottom: 30px;
}

.comment-option .single-comment-item.reply-comment {
	padding-left: 131px;
}

@media (max-width: 576px) {
	.comment-option .single-comment-item.reply-comment {
		padding-left: 5%;
	}
}

.comment-option .single-comment-item.reply-comment .sc-text {
	padding-left: 5px;
}

.comment-option .single-comment-item.reply-comment .sc-author {
	margin-right: 30px;
}

.comment-option .single-comment-item.first-comment .sc-text {
	position: relative;
}

.comment-option .single-comment-item.first-comment .sc-text:before {
	position: absolute;
	left: 0;
	top: 8px;
	height: 260px;
	width: 1px;
	background: #e9e9e9;
	content: "";
}

@media (max-width: 576px) {
	.comment-option .single-comment-item.first-comment .sc-text:before {
		display: none;
	}
}

.comment-option .single-comment-item.second-comment .sc-text {
	position: relative;
}

.comment-option .single-comment-item.second-comment .sc-text:before {
	position: absolute;
	left: 0;
	top: 8px;
	height: 100px;
	width: 1px;
	background: #e9e9e9;
	content: "";
}

@media (max-width: 576px) {
	.comment-option .single-comment-item.second-comment .sc-text:before {
		display: none;
	}
}

.comment-option .single-comment-item .sc-author {
	float: left;
	margin-right: 30px;
}

@media (max-width: 576px) {
	.comment-option .single-comment-item .sc-author {
		float: none;
		margin-bottom: 20px;
	}
}

.comment-option .single-comment-item .sc-author img {
	height: 70px;
	width: 70px;
	border-radius: 50%;
}

.comment-option .single-comment-item .sc-text {
	display: table;
	padding-left: 30px;
}

@media (max-width: 576px) {
	.comment-option .single-comment-item .sc-text {
		padding-left: 0;
	}
}

.comment-option .single-comment-item .sc-text span {
	font-size: 12px;
	letter-spacing: 2px;
	text-transform: uppercase;
	color: #b2b2b2;
}

.comment-option .single-comment-item .sc-text h5 {
	color: #252525;
	margin-top: 8px;
	margin-bottom: 14px;
}

.comment-option .single-comment-item .sc-text p {
	font-size: 14px;
	line-height: 22px;
}

.comment-option .single-comment-item .sc-text .comment-btn {
	display: inline-block;
	font-size: 11px;
	text-transform: uppercase;
	color: #242d2e;
	border: 1px solid #e5e5e5;
	border-radius: 2px;
	padding: 5px 22px;
	margin-bottom: 10px;
	font-weight: 600;
	border-radius: 40px;
	-webkit-transition: all 0.3s;
	-o-transition: all 0.3s;
	transition: all 0.3s;
}

.comment-option .single-comment-item .sc-text .comment-btn.like-btn {
	margin-right: 10px;

.comment-option .single-comment-item .sc-text .comment-btn:hover {
	background: #FF6F31;
	border-color: #FF6F31;
	color: #fff;
}

.comment-form .row {
	margin: 0 -6px;
}

.comment-form .col-md-4,
.comment-form .col-md-12 {
	padding: 0 6px;
}

.comment-form h3 {
	margin-bottom: 45px;
}

.comment-form form input,
.comment-form form textarea {
	height: 50px;
	border: 1px solid #e5e5e5;
	border-radius: 4px;
	width: 100%;
	padding: 0 20px;
	font-size: 16px;
	margin-bottom: 20px;
	padding-right: 5px;
}

.comment-form form input:focus,
.comment-form form textarea:focus {
	border: 1px solid #FF6F31;
}

.comment-form form input::-webkit-input-placeholder,
.comment-form form textarea::-webkit-input-placeholder {
	color: #636363;
}

.comment-form form input::-moz-placeholder,
.comment-form form textarea::-moz-placeholder {
	color: #636363;
}

.comment-form form input:-ms-input-placeholder,
.comment-form form textarea:-ms-input-placeholder {
	color: #636363;
}

.comment-form form input::-ms-input-placeholder,
.comment-form form textarea::-ms-input-placeholder {
	color: #636363;
}

.comment-form form input::-webkit-input-placeholder,
.comment-form form textarea::-webkit-input-placeholder {
	color: #636363;
}

.comment-form form input::-moz-placeholder,
.comment-form form textarea::-moz-placeholder {
	color: #636363;
}

.comment-form form input:-ms-input-placeholder,
.comment-form form textarea:-ms-input-placeholder {
	color: #636363;
}

.comment-form form input::-ms-input-placeholder,
.comment-form form textarea::-ms-input-placeholder {
	color: #636363;
}

.comment-form form input::placeholder,
.comment-form form textarea::placeholder {
	color: #636363;
}

.comment-form form textarea {
	height: 116px;
	width: 100%;
	padding-top: 18px;
	margin-bottom: 30px;
	resize: none;
}

.comment-form form button {
	font-size: 14px;
	color: #fff;
	text-transform: uppercase;
	font-weight: 500;
	background: #FF6F31;
	border: none;
	padding: 13px 37px 12px;
	border-radius: 50px;
}


/*Tweak Override Hero Section*/

/* Hero Section Fullscreen Fix */
.hero-section {
    width: 100%;
    height: 100vh; /* full screen height */
    position: relative;
    overflow: hidden;
}

.hero-item {
    width: 100%;
    height: 100vh; /* fill viewport */
    background-size: cover;       /* scale to cover */
    background-position: center;  /* keep image centered */
    background-repeat: no-repeat; /* no tiling */
    position: relative;
}

/* Text overlay inside hero */
.hero-item .pa-text {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%); /* keep centered */
    text-align: center;
    color: #fff;
    z-index: 2;
}

/* Mobile adjustments */
@media (max-width: 768px) {
    .hero-item {
        height: 100vh; /* still fill screen */
    }

    .hero-item .pa-text h2 {
        font-size: 20px; /* smaller heading for phones */
    }
}
/* === Hero Slider Cinematic Fade + Zoom === */
.owl-item.active .hero-item {
    animation: fadeZoomIn 2s ease forwards;
}

@keyframes fadeZoomIn {
    from {
        opacity: 0;
        transform: scale(1.05); /* slightly zoomed in */
    }
    to {
        opacity: 1;
        transform: scale(1); /* reset to normal */
    }
}
/* Custom Cursor */
.custom-cursor {
  position: fixed;
  top: 0;
  left: 0;
  width: 25px;
  height: 25px;
  border: 2px solid #fff;
  border-radius: 50%;
  pointer-events: none;
  transform: translate(-50%, -50%);
  transition: transform 0.15s ease, width 0.3s ease, height 0.3s ease;
  z-index: 9999;
}
/* Cursor grows when hovering clickable elements
a:hover ~ .custom-cursor,
button:hover ~ .custom-cursor {
  width: 45px;
  height: 45px;
  border-color: #ffcc00; /* highlight color */
} 


/*----------------
   Contact Page
----------------*/

/* Parallax Hero */
#contact-section {
  padding: 0;
  position: relative;
  overflow: hidden;
}

.parallax-container {
  position: relative;
  height: 350px; /* desktop height */
  overflow: hidden;
}

.parallax-image {
  position: absolute;
  top: 0; left: 0; right: 0; bottom: 0;
  width: 100%;
  height: 130%; /* taller for smooth desktop parallax */
  background-image: url("../img/Zanzi/Zanzi_3.jpg");
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
  will-change: transform;
  z-index: -1;
  transform: translateY(0);
}

.parallax-container::after {
  content: "";
  position: absolute;
  top: 0; left: 0; right: 0; bottom: 0;
  background: linear-gradient(rgba(0,0,0,0.4), rgba(0,0,0,0.4));
  z-index: 0;
}

.slider-heading {
  position: absolute;
  top: 50%; left: 50%;
  transform: translate(-50%, -50%);
  color: #fff;
  font-size: 3rem;
  font-weight: 700;
  letter-spacing: 2px;
  text-transform: uppercase;
  text-shadow: 2px 2px 5px rgba(0,0,0,0.6);
  z-index: 1;
  margin: 0;
  white-space: nowrap;
  font-family: 'Numans', sans-serif;
  text-align: center;
}

/* Contact Details Section */
.contact-details {
  background: #f8f8f8;
  padding: 3rem 1rem;
}

.contact-details h3 {
  font-family: "Numans", serif;
  font-size: 2rem;
  font-weight: 600;
  margin-bottom: 1rem;
  color: #222;
  text-align: center;
}

.contact-details p {
  font-size: 1rem;
  line-height: 1.6;
  color: #666;
  text-align: center;
}

/* Contact Box Cards */
.contact-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 2rem;
  margin-top: 2rem;
}

.contact-box {
  background: #fff;
  border-radius: 15px;
  padding: 2rem;
  transition: all 0.3s ease;
  text-align: center;
  box-shadow: 0 4px 12px rgba(0,0,0,0.05);
}

.contact-box i {
  color: #444;
  margin-bottom: 1rem;
  transition: color 0.3s ease;
  font-size: 2rem;
}

.contact-box h5 {
  font-weight: 600;
  margin-bottom: 0.5rem;
  font-size: 1.2rem;
  color: #222;
}

.contact-box p {
  font-size: 0.95rem;
  color: #666;
  margin: 0;
}

.contact-box:hover {
  transform: translateY(-10px);
  box-shadow: 0 12px 24px rgba(0,0,0,0.15);
}

.contact-box:hover i {
  color: #b48b4a;
}

/* Responsive Adjustments */
@media (max-width: 1024px) {
  .slider-heading {
    font-size: 2.5rem;
  }
  .contact-grid {
    grid-template-columns: repeat(2, 1fr);
  }
}

@media (max-width: 768px) {
  .parallax-container {
    height: 220px;
  }
  .parallax-image {
    height: 140%; /* adjust for mobile */
    background-position: center top;
  }
  .slider-heading {
    font-size: 1rem;
    letter-spacing: 1px;
    white-space: normal;
    line-height: 1.3;
    padding: 0 1rem;
  }
  .contact-grid {
    grid-template-columns: 1fr; /* stack into 1 column */
    gap: 1.5rem;
  }
  .contact-box {
    padding: 1.5rem;
  }
}

@media (max-width: 480px) {
  .parallax-container {
    height: 180px;
  }
  .parallax-image {
    height: 160%; /* taller for smooth parallax on small phones */
    background-position: center top;
  }
  .slider-heading {
    font-size: 1.6rem;
    padding: 0 0.5rem;
  }
  .contact-details h3 {
    font-size: 1.6rem;
  }
  .contact-details p {
    font-size: 0.9rem;
  }
  .contact-box {
    padding: 1.2rem;
  }
}
.contact-form label {
  font-weight: 500;
  margin-bottom: 0.5rem;
}

.contact-form .form-control {
  border-radius: 0;
  border-color: #ddd;
}

.contact-form .btn {
  padding: 12px 30px;
  font-size: 1rem;
  border-radius: 0;
}

/* ------------------------------------
   Dreamscapes Hero Section
------------------------------------- */
.dreamscapes-hero {
  background: url('../img//KijaniRidge/Renders/17.png') no-repeat center center/cover;
  color: white;
  padding: 120px 0;
  text-align: center;
  background-attachment: fixed; /* parallax effect */
}

.dreamscapes-hero h1 {
  font-size: 60px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 3px;
  color: #fff;
}

.dreamscapes-hero .tagline {
  font-size: 20px;
  margin-top: 10px;
  color: #f0f0f0;
}


/* ------------------------------------
   Year Filter Buttons
------------------------------------- */
.dreamscapes-filter {
  margin-top: 40px;
  margin-bottom: 20px;
  text-align: center;
}

.filter-btn {
  background: transparent;
  border: 2px solid #FF6F31;
  color: #FF6F31;
  padding: 8px 20px;
  margin: 0 10px 10px;
  border-radius: 30px;
  font-weight: 600;
  cursor: pointer;
  transition: all 0.3s ease;
}

.filter-btn:hover,
.filter-btn.active {
  background-color: #FF6F31;
  color: #fff;
}


/* ------------------------------------
   Dreamscapes Gallery
------------------------------------- */
.dreamscapes-gallery {
  padding-top: 20px; /* Reduced for tighter layout */
  padding-bottom: 80px;
}

.dreamscapes-gallery .row {
  transition: all 0.4s ease;
}

.dream-card {
  position: relative;
  overflow: hidden;
  border-radius: 8px;
  box-shadow: 0 8px 20px rgba(0, 0, 0, 0.1);
  transition: transform 0.3s ease;
  cursor: pointer;
}

.dream-card:hover {
  transform: translateY(-5px);
}

.dream-card img {
  width: 100%;
  height: auto;
  display: block;
  border-radius: 8px;
}

.dream-card .caption {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  padding: 15px;
  background: rgba(0, 0, 0, 0.6);
  color: #fff;
  font-size: 16px;
  font-weight: 600;
  text-align: center;
  opacity: 0;
  visibility: hidden;
  transition: opacity 0.3s ease, visibility 0.3s ease;
  border-radius: 0 0 8px 8px;
  pointer-events: none;
}

.dream-card:hover .caption {
  opacity: 1;
  visibility: visible;
  pointer-events: auto;
}


/* ------------------------------------
   Filtering Animation / Hide Logic
------------------------------------- */
.dream-item {
  transition: all 0.4s ease;
  opacity: 1;
  display: block;
}

.dream-item.hide {
  opacity: 0;
  transform: scale(0.95);
  pointer-events: none;
  display: none !important; /* Prevents layout gaps */
}


/* ------------------------------------
   Responsive Adjustments
------------------------------------- */
@media (max-width: 768px) {
  .dreamscapes-hero {
    padding: 60px 15px;
  }

  .dreamscapes-hero h1 {
    font-size: 36px;
    line-height: 1.2;
  }

  .dreamscapes-hero .tagline {
    font-size: 14px;
    margin-top: 8px;
  }

  .dreamscapes-filter {
    margin-top: 30px;
    margin-bottom: 15px;
  }

  .dreamscapes-gallery .dream-card {
    margin-bottom: 30px;
  }

  .dreamscapes-gallery .col-md-4,
  .dreamscapes-gallery .col-sm-6 {
    width: 100% !important;
    max-width: 100% !important;
  }

  .dreamscapes-gallery .dream-card img {
    height: auto;
    max-height: 300px;
    object-fit: cover;
  }

  .dream-card .caption {
    font-size: 14px;
    padding: 10px;
  }
}
/* Image Popup Overlay Styles */
.image-popup {
  position: fixed;
  top: 0;
  left: 0;
  width: 100vw;
  height: 100vh;
  background-color: rgba(0,0,0,0.8);
  display: flex;
  justify-content: center;
  align-items: center;
  z-index: 9999;
  cursor: pointer;
  transition: opacity 0.3s ease;
}

.image-popup.hidden {
  display: none;
  opacity: 0;
}

.image-popup img {
  max-width: 90%;
  max-height: 90%;
  border-radius: 8px;
  box-shadow: 0 0 30px rgba(255, 255, 255, 0.2);
  pointer-events: none;
}

.close-btn {
  position: fixed;
  top: 20px;
  right: 30px;
  font-size: 40px;
  color: #fff;
  font-weight: bold;
  cursor: pointer;
  user-select: none;
  z-index: 10000;
}


.menu-footer {
  width: 100%;
  padding: 15px 20px;
  font-size: 2px;
  color: #999;
  text-align: left;
  border-top: 1px solid #eee;
  margin-top: 20px;
}

.menu-footer p {
  margin: 5px 0;
}

.menu-footer a {
  color: #FF6F31; /* your zesty orange */
  text-decoration: none;
  transition: color 0.3s ease;
}

.menu-footer a:hover {
  color: #e65a00;
}
/* TOP RIGHT LOGO */
.top-right-logo {
  position: fixed;
  top: -30px;
  right: 0px;
  height: 150px; /* Adjust as needed */
  z-index: 9999;
}

/* CONTACT BUTTON */
.btn-ed7f10 {
  background-color: #ED7F10 !important;
  border-color: #ED7F10 !important;
  color: #fff !important;
}
.btn-ed7f10:hover {
  background-color: #d56f0d !important;
  border-color: #d56f0d !important;
}

