/* Googfloatinge Fonts */
@import url('https://fonts.googleapis.com/css2?family=Castoro:ital@0;1&family=Cormorant:ital,wght@0,300..700;1,300..700&family=Poppins:ital,wght@0,100;0,200;0,300;0,400;0,500;0,600;0,700;0,800;0,900;1,100;1,200;1,300;1,400;1,500;1,600;1,700;1,800;1,900&display=swap');
@import url('./vendor/bootstrap.min.css');
@import url('./vendor/fontawesome.css');
@import url('./vendor/brands.css');
@import url('./vendor/regular.css');
@import url('./vendor/solid.css');
@import url('./vendor/swiper-bundle.min.css');
@import url('./vendor/rtmicons.css');

:root {
   --primary: #FDFDFD;
   --color-light: #e2e2e2;
   --text-color: #102a43;
   --text-color-2: #615E52;
   --background-color: #102a43;
   --accent-color: #829ab1;
   --accent-color-2: #bcccdc;
   --accent-color-3: #F2F1EE;
   --accent-color-4: #484848;
   --accent-color-5: #C3C3C3;
   --accent-color-6: #F7F7F7;
   --font-1: "Castoro", sans-serif;
   --font-2: "Cormorant", sans-serif;
   --font-3: "Poppins", sans-serif;

   --card: #101b2a;
   --accent: #3fb3ff;
   --accent-soft: rgba(63, 179, 255, 0.12);
   --muted: #9ca8c3;
   --radius: 7px;
   --background-color: #103c43;

}

/* Animation Duration */
.adr-1 { animation-duration: 0.3s; animation-fill-mode: both;}
.adr-2 { animation-duration: 0.6s; animation-fill-mode: both;}
.adr-3 { animation-duration: 0.9s; animation-fill-mode: both;}
.adr-4 { animation-duration: 1.2s; animation-fill-mode: both;}
.adr-5 { animation-duration: 1.5s; animation-fill-mode: both;}
.adr-6 { animation-duration: 1.8s; animation-fill-mode: both;}
.adr-7 { animation-duration: 2.1s; animation-fill-mode: both;}
.adr-8 { animation-duration: 2.4s; animation-fill-mode: both;}
.adr-9 { animation-duration: 2.7s; animation-fill-mode: both;}

/* Animation Delay */
.adl-1 { animation-delay: 0.3s; animation-fill-mode: both;}
.adl-2 { animation-delay: 0.6s; animation-fill-mode: both;}
.adl-3 { animation-delay: 0.9s; animation-fill-mode: both;}
.adl-4 { animation-delay: 1.2s; animation-fill-mode: both;}
.adl-5 { animation-delay: 1.5s; animation-fill-mode: both;}
.adl-6 { animation-delay: 1.8s; animation-fill-mode: both;}
.adl-7 { animation-delay: 2.1s; animation-fill-mode: both;}
.adl-8 { animation-delay: 2.4s; animation-fill-mode: both;}
.adl-9 { animation-delay: 2.7s; animation-fill-mode: both;}

/* --------------------------------------- */

@property --progress {
   syntax: '<integer>';
   inherits: true;
   initial-value: 0;
}

@keyframes load {
   to {
      --progress: var(--value)
   }
}

@keyframes background_animation {
   from {
      background-size: 100%;
   }

   to {
      background-size: 110%;
   }
}

@keyframes ripple {
   from {
      opacity: 1;
      transform: scale3d(1, 1, 1);
      transform-origin: center;
      border-width: 0px;
   }

   to {
      opacity: 0;
      transform: scale3d(1.7, 1.7, 1.8);
      transform-origin: center;
      border-width: 13px;
   }
}

*, *::before, *::after {
  box-sizing: border-box; /* Includes padding/border in element's total width/height */
  margin: 0;
  padding: 0;
}

body {
   font-family: var(--font-2);
   color: var(--text-color);
   background-color: var(--primary);
   background: url('../_img/backgrounds/bg-pattern-01.png');

}


h1 {
   font-size: 71px;
   font-family: var(--font-1);
}
h2 { font-size: 64px;}
h3 { font-size: 48px;}
h4 { font-size: 28px;}
h5 { font-size: 24px;}
h6 {
   font-size: 20px;
   font-family: var(--font-3);
   font-weight: 300;
}

hr.faded { 
   width: 300px; 
   margin: 1.6rem auto;  
   border: 0;
   height: 1px;
   background-image: linear-gradient(to right, rgba(0, 0, 0, 0), rgba(0, 0, 0, 0.75), rgba(0, 0, 0, 0)); }

hr.flared {
   overflow: visible; /* For IE */
   width: 300px; 
   margin: 0 auto; 
   height: 30px;
   border-style: solid;
   border-color: black;
   border-width: 1px 0 0 0;
   border-radius: 20px;
}
hr.flared:before { /* Not really supposed to work, but does */
    display: block;
    content: "";
    height: 30px;
    margin-top: -31px;
    border-style: solid;
    border-color: black;
    border-width: 0 0 1px 0;
    border-radius: 20px;
}

.hidden { display: none; }
.red { color: red; }
.blog-container > * {
   flex: 0 0 calc(33.33% - 10px);
}

p {
   font-size: 16px;
   font-family: var(--font-3);
   color: var(--text-color-2);
}

ul { list-style: none;}
li { font-size: 1.6rem;}

hgroup > span {
   font-size: 1.8rem;
}

.list-circle { list-style: disc var(--accent-color);}
.list-text { font-size: 12px;}

img { object-fit: cover;}

button, a {
   font-size: 18px;
   font-family: var(--font-2);
}

a { text-decoration: none;}

button {
   padding-inline: 1rem;
   padding-block: 0.5rem;
   text-decoration: none;
   transition: all 0.5s;
}

.sub-heading { color: var(--accent-color);}
.text-color { color: var(--text-color);}
.text-color-2 { color: var(--text-color-2);}
.hover-transform:hover { transform: translateY(-10px);}

button:hover { .: var(--text-color);}

.w-max-content { width: max-content;}

.banner-heading { font-size: 5.5rem;}

.ls-2 { letter-spacing: 2px;}
.font-1 { font-family: var(--font-1);}
.font-2 { font-family: var(--font-2);}
.font-3 { font-family: var(--font-3);}

.fs-p5 { font-size: 0.5rem; }
.fs-p6 { font-size: 0.6rem; }
.fs-p8 { font-size: 0.8rem; }

.fs-1 { font-size: 1rem; }
.fs-2 { font-size: 2rem; }

.fs-7 { font-size: 0.8rem !important;}
.fs-very-large { font-size: 4.125rem;}

.fw-black { font-weight: 900 !important;}

.video-e119 {
   width: 60%;
   margin-bottom: -3rem;
   margin-left: -3rem;
}

.bullet-list {
   list-style: disc;
   margin: 0 0 0 1rem;
}

.block-cta {
   padding: 40px 20px;
   text-align: center;
   background: #003049;
   color: white;
}
.block-cta h3 {
   font-size: 1.8rem;
   margin-bottom: 10px;
}
.block-cta .cta-btn {
   display: inline-block;
   background: #ffb703;
   color: #003049;
   padding: 14px 28px;
   font-size: 1.1rem;
   font-weight: 600;
   border-radius: 6px;
   text-decoration: none;
   margin-top: 15px;
}
.block-cta .cta-btn:hover {
   background: #ffca3a;
}




.cards-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));
  gap: 1.5rem;
}

.card {
  border: 1px solid #ddd;
  padding: 1rem;
  border-radius: 8px;
  background: #fff;
}

.pagination {
  margin-top: 1.5rem;
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 1rem;
}


/* === FORMS === */
label {
   display: block;
   margin-top: 16px;
   font-family: 'Poppins', arial, sans-serif;
   font-weight: 600;
}

.form-control { padding: 15px 24px;}

.form .form-group input[type="checkbox"] {
   width: auto;
   margin-top: 0;
}
.form .form-group input[type="checkbox"] + label {
   margin-top: 0;
}

.form textarea {
   background-color: transparent;
   border: solid 1px var(--text-color-2);
   color: var(--text-color-2);
   border-radius: 10px;
   outline: none;
   font-family: var(--font-3);
   font-size: 18px;
}

.form input,
.form select {
   width: 100%;
   padding: 12px;
   margin-top: 6px;
   border-radius: var(--radius);
   border: 1px solid #1f2a3a;
   outline: none;
   color: var(--text-color-2);
   background: var(--card);
   background-color: transparent;
   font-family: var(--font-3);

}

.form select optgroup {
   margin-left: 1rem;
}

.form input:focus,
.form textarea:focus,
.form select:focus {
   box-shadow: none;
   border: solid 1px var(--text-color-2);
   background-color: transparent;
   color: var(--text-color-2);
}

.form input:autofill,
.form input:autofill:focus {
   color: var(--text-color-2);
   transition: background-color 5000s ease-in-out;
   -webkit-text-fill-color: var(--text-color-2);
   font-family: var(--font-3);
}

.form input::placeholder,
.form textarea::placeholder {
   color: var(--text-color-2);
   font-family: var(--font-3);
}

.form input.accent::placeholder,
.form textarea.accent::placeholder {
   color: var(--primary);
   font-family: var(--font-2);
}

.form input[type="submit"] {
   color: white;
   background: var(--text-color);
   transition: background 200ms ease-in-out;
}

.form input[type="submit"]:hover {
   color: var(--text-color);
   background: white;
}

.form .form-select {
   color: var(--text-color-2);
}

.form-check-input:checked[type=checkbox] {
   --bs-form-check-bg-image: url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="blue" class="bi bi-check-xl" viewBox="0 0 16 16"><path d="M12.736 3.97a.733.733 0 0 1 1.047 0c.286.289.29.756.01 1.05L7.88 12.01a.733.733 0 0 1-1.065.02L3.217 8.384a.757.757 0 0 1 0-1.06.733.733 0 0 1 1.047 0l3.052 3.093 5.4-6.425a.247.247 0 0 1 .02-.022Z"/></svg>');
}

.form input.form-check-input {
   background-color: transparent;
   border: 1px solid gray;
}

.form input.form-check-input:checked {
   border: 1px solid blue;
   color: blue;
}

.form .submit_form {
   padding-inline: 2rem;
   padding-block: 0.7rem;
   text-decoration: none;
   transition: all 0.5s;
   background-color: var(--text-color);
   color: white;
   border: solid 1px var(--text-color);
}

.form .submit_form.accent {
   padding-inline: 2rem;
   padding-block: 0.7rem;
   text-decoration: none;
   transition: all 0.5s;
   background-color: var(--accent-color);
   color: white;
   border-radius: 5px;
   border: solid 1px var(--accent-color);
}

.submit_form:hover {
   background-color: transparent;
   color: var(--text-color);
}

.submit_form.accent:hover {
   background-color: transparent;
   color: var(--text-color);
}

.submit_form-subscribe {
   padding-inline: 2rem;
   padding-block: 0.7rem;
   text-decoration: none;
   transition: all 0.5s;
   color: white;
   background-color: transparent;
   border-radius: 5px;
}

.submit_form-subscribe:hover {
   background-color: transparent;
   color: white;
   filter: none;
}

.orderidxcode {
   position: absolute;
   left: -50000px;
}

.maps {
   width: 100%;
   height: 480px;
   transition: filter 0.5s;
   display: block;
}

.map-static {
   border: 1px solid grey;
   border-radius: 7px;
}

.map-static img {
   border-radius: 7px;
}


#header {
   transition: all 0.5s ease;
}

.navbar-nav .nav-link:focus {
   color: var(--accent-color);
   text-align: center;
}

.navbar-nav .nav-link.show {
   color: var(--accent-color);
}

.nav-link {
   border-bottom: 2px solid transparent;
   font-size: 1rem;
   font-family: var(--font-3);
   padding-block: 1.2rem;
   color: var(--accent-color);
   text-align: center;
}

.nav-link:hover {
   color: var(--accent-color-2);
   text-align: center;
}

.nav-link.active {
   color: var(--accent-color-2) !important;
   font-weight: 800;
   text-align: center;
}

.navbar-nav a.active {
   color: var(--accent-color-4) !important;
   font-weight: 600;
}

.navbar-toggler {
   border: none;
   outline: none;
   box-shadow: none;
   color: var(--accent-color);
}

.navbar-toggler:focus {
   box-shadow: none;
   background-color: transparent;
   color: var(--accent-color-2);
}


.navbar #navbarNav {
  position: absolute;
  top: 100%;              /* Push it below the navbar row */
  left: 0;
  width: 100vw;           /* Full width dropdown */
  margin-top: 0;
  border-radius: 0;
  border: none;
  padding: 1rem 2rem;     /* Optional: nicer spacing */
  background: var(--bs-body-bg); /* Or your accent color */
  z-index: 9999;
}

/* Ensure parent is positioned for absolute child */
.navbar {
  position: relative;
}


.dropdown-item {
   padding-block: 0.75rem;
   color: var(--accent-color);
   font-family: var(--font-3);
   font-size: 0.95rem;
   font-weight: 400;
   padding-inline: 0.75rem;
   text-align: left;
}

.dropdown-item.active {
   color: var(--accent-color-2);
   background-color: transparent;
}

.dropdown-item:hover {
   background-color: var(--accent-color);
   color: white;
}

.dropdown-item:focus {
   color: var(--accent-color);
}

.section {
   padding: 6em 2em 6em 2em;
   overflow: hidden;
   background-size: cover;
   background-position: center;
}

.section ul li {
   font-family: var(--font-3);
   font-size: 1rem;
   color: var(--text-color-2);
}



.weather-widget-container {
  min-width: 120px;
  text-align: right;
}

#ej-weather-widget {
  display: flex;
  flex-direction: column;
  margin: 0 auto;
  padding: .5rem 1rem;
  gap: 2px;
  color: #ffffff;
  font-family: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  background: var(--text-color);
  border-radius: 999px;
  backdrop-filter: blur(8px);
}

#ej-weather-widget .ej-weather-location {
  font-size: 0.75rem;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  opacity: 0.9;
}

#ej-weather-widget .ej-weather-main {
  display: flex;
  align-items: baseline;
  gap: 8px;
}

#ej-weather-widget .ej-weather-temp {
  font-size: 1.4rem;
  font-weight: 600;
}

#ej-weather-widget .ej-weather-desc {
  font-size: 0.9rem;
  opacity: 0.9;
}

#ej-weather-widget .ej-weather-meta {
  display: flex;
  gap: 12px;
  font-size: 0.75rem;
  opacity: 0.85;
}

.forecast-grid .temps .high,
.forecast-grid .temps .low {
   color: var(--accent-color-4);
}




ul.dark-bg li {
   color: white;
}

.r-container {
   max-width: 1300px;
   margin-right: auto;
   margin-left: auto;
}

.bg-accent-primary {
   background-color: var(--primary);
}

.bg-accent-color {
   background-color: var(--accent-color);
}

.bg-accent-color-2 {
   background-color: var(--accent-color);
}

.bg-accent-color-3 {
   background-color: var(--accent-color-3);
}

.bg-accent-color-4 {
   background-color: var(--accent-color-4);
}

.read-more {
   color: var(--accent-color-2);
   transition: all 0.5s;
   font-family: var(--font-3);
}

.read-more:hover {
   color: var(--background-color);
}


.bg-accent {
   background-color: var(--accent-color);

}

.bg-text-color {
   background-color: var(--text-color);
}

.bg-text-color-2 {
   background-color: var(--text-color-2);
}

.accent-color {
   color: var(--accent-color);
}

.accent-color-2 {
   color: var(--accent-color-2);
}

.accent-color-3 {
   color: var(--accent-color-3);
}

.accent-color-4 {
   color: var(--accent-color-4);
}

.accent-color-5 {
   color: var(--accent-color-5);
}

.accent-color-6 {
   color: var(--accent-color-6);
}

.accent {
   color: var(--background-color);
}


.team-detail {
   background-color: var(--background-color);
   color: var(--accent-color);
   transition: all 0.5s;
}

.team-detail:hover {
   background-color: var(--accent-color);
   color: var(--primary);
}

.border-accent-color {
   border-color: var(--accent-color) !important;
}

.swiper {
   width: 100%;
}

.swiperPartner {
   overflow: visible;
}

.swiperImage.floating-left {
   margin-left: 16rem;
}

.swiperTestimonials {
   overflow: visible;
}

.border-accent-2 {
   border-color: var(--accent-color-2) !important;
}

.outline {
   color: transparent;
   -webkit-text-stroke-width: 1px;
   -webkit-text-stroke-color: var(--accent-color);
}

.text-gray {
   color: grey !important;
}

.text-accent {
   font-size: 18px;
   background: -webkit-linear-gradient(99.79deg, #2F4A9D 0%, #A502A8 100%);
   -webkit-background-clip: text;
   background-clip: text;
   -webkit-text-fill-color: transparent;
}

.bg-accent-color-hover:hover {
   background-color: var(--accent-color);
   color: white;
}

.bg-dark-transparent {
   background-color: #232323b7;
}

.btn {
   font-size: 18px;
   display: inline-flex;
   align-items: center;
   justify-content: center;
   font-family: var(--font-3);
}

.btn-accent {
   background-color: var(--accent-color-2);
   color: var(--primary);
   transition: all 0.5s;
   border: 1px solid transparent;
}

.btn-accent.accent {
   background-color: var(--accent-color-2);
   color: var(--primary);
}

.btn-accent.accent:hover {
   background-color: var(--primary);
   border-color: var(--primary);
   color: var(--text-color);
}

.btn-accent:hover {
   background-color: transparent;
   border-color: var(--accent-color-2);
   color: var(--accent-color-2);
}

.btn-accent-outline {
   background-color: transparent;
   border: 2px solid var(--primary);
   color: var(--primary);
}

.btn-accent-outline:hover {
   background-color: var(--accent-color-2);
   color: white;
}

.btn-white-accent {
   background-color: transparent;
   color: var(--primary);
   border: 1px solid var(--primary);
}


.btn-white-accent:hover {
   background-color: var(--accent-color);
   border-color: var(--accent-color);
   color: white;
}

.btn-white-outline {
   background-color: transparent;
   border-color: white;
   color: white;
   border-width: 3px;
}

.btn-white-outline-hover:hover {
   background-color: transparent;
   border-color: white;
   color: white;
}

.btn-white-outline:hover {
   background-color: white;
   color: var(--accent-color);
}

.blog-overlay {
   height: 100%;
   width: 100%;
   top: 0;
   left: 0;
   position: absolute;
   transition: background 0.3s, border-radius 0.3s, opacity 0.3s;
   background: linear-gradient(180deg, rgba(13, 27, 11, 0) 0%, #0D1B0B 100%);

}

.image-overlay {
   height: 100%;
   width: 100%;
   top: 0;
   left: 0;
   position: absolute;
   background: linear-gradient(0deg, rgba(16, 26, 14, 0.7), rgba(16, 26, 14, 0.7));

}

.overlay {
   background: linear-gradient(0deg, rgba(248, 248, 248, 0.8), rgba(248, 248, 248, 0.8));
   position: absolute;
   height: 100%;
   width: 100%;
   top: 0;
   left: 0;
}

.bg-overlay {
   background: linear-gradient(0deg, rgba(72, 101, 129, 0.72), rgba(130, 154, 177, 0.72));
   position: absolute;
   width: 100%;
   height: 100%;
   top: 0;
   left: 0;

}

.bg-overlay-dark {
   background: linear-gradient(0deg, rgba(25, 37, 53, 0.72), rgba(26, 47, 67, 0.72));
   position: absolute;
   width: 100%;
   height: 100%;
   top: 0;
   left: 0;

}

.bg-blur {
   border-radius: 20px;
   position: absolute;
   height: 100%;
   width: 100%;
   top: 0;
   left: 0;
   background: rgba(39, 68, 35, 0.6);
   z-index: -1;
   box-shadow: 0 4px 30px rgba(0, 0, 0, 0.1);
   backdrop-filter: blur(2px);
   -webkit-backdrop-filter: blur(2px);
   border: 0.5px solid rgba(39, 68, 35, 0.6);
}

.bg-overlay-2 {
   background: linear-gradient(270deg, rgba(28, 51, 69, 0.82) 5%, #1C3345 100%);
   position: absolute;
   width: 100%;
   height: 100%;
   top: 0;
   left: 0;
}

.bg-overlay-contact {
   background: linear-gradient(0deg, rgba(195, 146, 46, 0.96), rgba(195, 146, 46, 0.96));
   position: absolute;
   width: 100%;
   height: 100%;
   top: 0;
   left: 0;
}

.bg-overlay-cta {
   background: linear-gradient(90deg, rgba(250, 250, 250, 0) 18.76%, rgba(250, 250, 250, 0.9) 70.99%);
   position: absolute;
   width: 100%;
   height: 100%;
   top: 0;
   left: 0;
}

.testimonial-overlay {
   background: linear-gradient(0deg, rgba(255, 239, 225, 0.96), rgba(255, 239, 225, 0.96));
   position: absolute;
   width: 75%;
   height: 100%;
   top: 0;
   right: 0;
}

.bg-accent-opacity {
   background: linear-gradient(0deg, rgba(43, 43, 43, 0.86), rgba(43, 43, 43, 0.86));
}

.linear-gradient {
   padding: 14px 42px;
   background-color: var(--accent-color-2);
   border-radius: 50px;
   width: max-content;
}

.cta-overlay {
   background: linear-gradient(90deg, #0B0C0E 0%, rgba(97, 59, 255, 0.3) 100%);
   position: absolute;
   width: 100%;
   height: 100%;
   top: 0;
   left: 0;

}

.video-overlay {
   height: 100%;
   width: 100%;
   top: 0;
   left: 0;
   position: absolute;
   background: linear-gradient(180deg, rgba(4, 56, 63, 0.144) 0%, rgba(4, 56, 63, 0.72) 100%);
   opacity: 0.5;
   transition: background 0.3s, border-radius 0.3s, opacity 0.3s;
}

.logo-container {
   max-width: 160px;
}


.divider {
   display: flex;
   align-items: center;
}

.divider::after {
   display: block;
   content: "";
   border-bottom: 0;
   flex-grow: 1;
   border-top: 3px solid #8692af;
   max-width: 30px;
   min-width: 30px;
}


.divider-element {
   letter-spacing: 2px;
   flex-shrink: 0;
   flex-grow: 1;
   margin: 0;
   margin-left: 1rem;
   font-weight: 400;
}

.image-infinite-bg {
   height: 90vh;
}

.animation-bg {
   animation: background_animation 10s forwards;
}

.bg-attach-fixed {
   background-attachment: fixed;
}

.bg-attach-cover {
   background-size: cover;
   background-position: center;
   width: 100%;
   height: 100vh;
}

.social-container {
   display: flex;
   flex-direction: row;
   gap: 1rem;
}

.social-container.column {
   display: flex;
   flex-direction: column;
   gap: 1rem;
}

.character-img {
   position: relative;
   z-index: 2;
}

.w-70 {
   width: 70%;
}

.stock-img {
   position: relative;
   z-index: 20;
}

.customer-item {
   border-radius: 50%;
   aspect-ratio: 1/1;
   font-size: 12px;
   width: 3rem;
   height: 3rem;
   transition: all 0.5s;
   display: flex;
   justify-content: center;
   align-items: center;
   background-color: var(--accent-color);
   color: var(--text-color-2);
   border: 2px solid var(--primary);
   margin-left: -6px;
   overflow: hidden;
}

.customer-container {
   display: flex;
   flex-direction: row-reverse;
}

.testimonial-item {
   border-radius: 50%;
   aspect-ratio: 1/1;
   font-size: 19px;
   width: 5rem;
   height: 5rem;
   transition: all 0.5s;
   display: flex;
   justify-content: center;
   margin-left: -6px;
   overflow: hidden;
}

.bg-box {
   bottom: 0;
   right: 0;
   height: 60%;
   width: 50%;
   border: solid 3px var(--accent-color-2);
}

.subscribe-container {
   box-sizing: border-box;
   margin-bottom: -8em;
}

.contact-item {
   border-radius: 50%;
   aspect-ratio: 1/1;
   font-size: 40px;
   height: 3rem;
   width: 3rem;
   transition: all 0.5s;
   display: flex;
   justify-content: center;
   align-items: center;
   color: var(--primary);
   background-color: var(--accent-color);
   padding: 20px;
}


.social-item {
   border-radius: 50%;
   aspect-ratio: 1/1;
   font-size: 19px;
   width: 2rem;
   height: 2rem;
   transition: all 0.5s;
   display: flex;
   justify-content: center;
   align-items: center;
   color: var(--accent-color-2);
   border: 1px solid var(--accent-color-2);
   background-color: var(--primary);
}

.social-item-2 {
   border-radius: 50%;
   aspect-ratio: 1/1;
   font-size: 19px;
   width: 2rem;
   height: 2rem;
   transition: all 0.5s;
   display: flex;
   justify-content: center;
   align-items: center;
   color: var(--primary);
   border: 1px solid var(--primary);
   background-color: transparent;
}

.social-item-3 {
   border-radius: 50%;
   aspect-ratio: 1/1;
   font-size: 19px;
   width: 2rem;
   height: 2rem;
   transition: all 0.5s;
   display: flex;
   justify-content: center;
   align-items: center;
   color: var(--accent-color);
   background-color: transparent;
   border: 1px solid var(--accent-color);
}

.social-container.accent .social-item {
   background-color: var(--accent-color);
   color: white;
   border-color: var(--accent-color);
}

.social-container.accent .social-item:hover {
   background-color: var(--accent-color);
   color: white;

}

.social-container.share .social-item {
   background-color: var(--accent-color);
   color: white;
}

.social-container.share .social-item:hover {
   background-color: var(--accent-color);
   color: white;
   border: 1px solid var(--accent-color);
}


.social-container.team .social-item {
   width: 1.8rem;
   height: 1.8rem;
   font-size: 16px;
}

.social-item:hover {
   background-color: transparent;
   color: var(--primary);
   border: solid 1px var(--primary);
}

.social-item-2:hover {
   background-color: var(--primary);
   color: var(--text-color);
   border: solid 1px var(--text-color);
}

.social-item-3:hover {
   background-color: var(--accent-color);
   color: var(--primary);
   border: solid 1px var(--accent-color);
}

.social-container .share-button {
   background-color: var(--accent-color-1);
   aspect-ratio: 1/1;
   width: 2rem;
   height: 2rem;
   border-radius: 50%;
   display: flex;
   justify-content: center;
   align-items: center;
   text-align: center;
}

.share-button:hover {
   background-color: var(--accent-color-2);
}

.nav-tabs {
   border-bottom: none;
}

.nav-tabs .nav-link {
   background-color: transparent;
   color: var(--accent-color);
   border: none;
   position: relative;
}

.nav-tabs .nav-link:hover {
   border: none;
   color: white;
}

.nav-tabs .nav-link.active {
   background-color: transparent;
   border: none;
}

.nav-tabs .nav-link.active::after {
   content: "";
   position: absolute;
   bottom: 0;
   left: 0;
   width: 100%;
   height: 2px;
   background-color: var(--accent-color);
}

.breadcrumb {
   align-items: left;
   font-family: var(--font-3);
   font-size: 20px;
}

.breadcrumb .breadcrumb-item>a {
   color: var(--accent-color-2);
   font-family: var(--font-3);
   font-size: 20px;
}

.breadcrumb .breadcrumb-item.active {
   color: var(--accent-color-2);
   font-family: var(--font-3);
   font-size: 20px;
}

.breadcrumb-item+.breadcrumb-item::before {
   color: var(--accent-color-2);
   font-family: var(--font-3);
   font-size: 20px;
}

.swiper-pagination {
   margin-block: 1rem;
   position: relative;
   color: var(--accent-color-2);
}

.swiper-slide {
   padding: 0.5rem;
}

.swiper-pagination .swiper-pagination-bullet-active {
   background-color: var(--accent-color);
}

.video-container {
   aspect-ratio: 3/2;
   background-size: cover;
   background-position: center;
   position: relative;
   border: 5px solid white;
   border-radius: 10px;
}

.video-iframe {
   position: absolute;
   left: 0;
   top: 0;
   width: 100%;
   height: 100%;
}

.video-btn {
   border-radius: 50%;
   aspect-ratio: 1/1;
   width: 4rem;
   background-color: var(--accent-color);
   display: flex;
   justify-content: center;
   align-items: center;
   padding: 0;
   font-size: 2rem;
   color: white;
   border: none;
   opacity: 0.7;
}

.video-btn:hover {
   opacity: 1;
   color: white;
}


.border-testimonial {
   border-right: 5px solid var(--accent-color-2);
}

.card {
   border: none;
   border-radius: 10px;
   transition: all 0.5s;
}

.card-hero img {
   width: 100%;
   max-width: 320px;
}

.card-accent {
   color: var(--accent-color);
   position: relative;
   background-size: cover;
   background-position: center;
   border-width: 1px;
   border-style: solid;
   border-radius: 10px;
   border-image: linear-gradient(to left, #A502A8, #2F4A9D)1;
}

.card-team {
   display: flex;
   flex-direction: column;
   color: var(--text-color);
   background-color: var(--background-color);
   transition: all 0.5s;
}

.card-team:hover .social-item {
   background-color: var(--text-color);
   color: var(--primary);
   border: solid 1px var(--primary);
}

.card-service {
   color: var(--text-color);
   position: relative;
   background-size: cover;
   background-position: center;
   transition: all 0.5s;
   background-color: transparent;
}

.card-service:hover {
   border: 1px solid var(--accent-color-2);

}

.service:hover .icon-box {
   color: var(--accent-color);

}

.background-hover {
   position: absolute;
   top: 0;
   left: 0;
   width: 100%;
   height: 100%;
   background-size: cover;
   background-position: center;
}

.card-testimonial {
   border: none;
   border-radius: 20px;
   transition: all 0.5s;
   background-color: var(--accent-color-2);

}

.icon-box {
   display: flex;
   justify-content: center;
   align-items: center;
   text-align: center;
   aspect-ratio: 1/1;
   transition: all 0.5s;
   border-radius: 50%;
   background-color: var(--text-color);
   color: var(--primary);
   padding: 12px;
   width: max-content;
   height: max-content;
}

.icon-box.link {
   background-color: var(--primary);
   color: var(--text-color);
   border: 1px solid var(--accent-color);
   border-radius: 50%;
}

.icon-box.link:hover {
   background-color: transparent;
   color: var(--primary);
   border: 1px solid var(--primary)
}

.icon-box-2 {
   display: flex;
   justify-content: center;
   align-items: center;
   text-align: center;
   aspect-ratio: 1/1;
   transition: all 0.5s;
   border-radius: 0px;
   background-color: var(--accent-color);
   color: var(--primary);
   padding: 15px;
   width: max-content;
   height: max-content;
}

.author-box {
   border-radius: 50%;
   aspect-ratio: 1/1;
   width: 15rem;
   transition: all 0.5s;
   display: flex;
   justify-content: center;
   align-items: center;
   margin-left: -6px;
   overflow: hidden;
}

.list .icon-box {
   width: 4.3rem;
   height: 4.3rem;
}

.card .icon-box.bg-accent-color {
   background-color: var(--accent-color);
   color: var(--accent-color);
}

.card .icon-box.accent-color-2 {
   color: var(--accent-color-2);
   font-size: 4rem;
}

.card:hover .icon-box.accent-color-2 {
   color: var(--accent-color-2);
}

.card:hover {
   transform: translateY(-5px);
   width: 100%;
   height: 100%;
   top: 0;
   left: 0;
}

.card-testimonial:hover {
   transform: translateY(-20px);
   box-shadow: 0px 0px 0px 2px var(--accent-color);
   width: 100%;
   height: 100%;
   top: 0;
   left: 0;
}

.card.card-pricing-hover {
   background-color: var(--background-color);
   border-radius: 20px;
   color: var(--text-color);
   transition: transform 0.3s ease, background-color 0.3s ease, box-shadow 0.3s ease, color 0.3s ease;
}

.card.card-pricing-hover:hover {
   background-color: var(--accent-color);
   color: var(--primary);
   transform: scale(1.05);
}

.card-pricing-hover .check,
.card-pricing-hover p{
   color: var(--text-color-2);
}

.card-pricing-hover:hover .check,
.card-pricing-hover:hover p{
   color: var(--primary);
}

.card-pricing-hover .icon-box {
   background-color: var(--accent-color-2);
   color: var(--primary);
}

.card-pricing-hover:hover .icon-box {
   background-color: var(--primary);
   color: var(--accent-color);
}

.card-pricing-hover-middle {
   transform: scale(1.04);
   flex: 1.00;
   background-color: var(--accent-color);
   color: white;
}

.card:hover .icon-box.bg-accent-color {
   background-color: var(--accent-color);
   color: var(--accent-color-2);

}

.card.card-outline-hover {
   border-bottom: 2px solid transparent;
   border-radius: 0px;
}

.card.blog {
   background-color: var(--background-color);
}

.card.blog:hover {
   border: solid 1px var(--text-color);
   background-color: var(--text-color);
}

.card.card-outline-hover:hover {
   border-bottom: 2px solid var(--text-color);
   box-shadow: none;
}

.card-overlay .card-body {
   position: absolute;
   width: 100%;
   height: 100%;
   bottom: 0;
   left: 0;
   opacity: 0;
   transform: scaleX(0);
   transform-origin: left;
   transition: all 0.5s;
}


.card-overlay:hover .card-body {
   transform: scaleX(1);
   opacity: 1;
   padding: 0;
}

.card:hover .icon-box.bg-accent-color {
   background-color: white;
   color: var(--accent-color);
}

.card:hover p {
   transition: all 0.5s;
}


.request-loader {
   position: relative;
   height: 70px;
   width: 70px;
   border-radius: 15px !important;
   border: solid 1px var(--accent-color);
   background-color: var(--accent-color);
   display: flex;
   justify-content: center;
   align-items: center;
   color: var(--primary);
   font-size: 25px;
   aspect-ratio: 1/1;
}

.request-loader.accent {
   position: relative;
   height: 50px;
   width: 50px;
   border-radius: 50% !important;
   border: solid 1px var(--primary);
   background-color: transparent;
   display: flex;
   justify-content: center;
   align-items: center;
   color: var(--primary);
   font-size: 25px;
   aspect-ratio: 1/1;
}

.request-loader:hover {
   border: solid 2px var(--accent-color);
   color: var(--accent-color);
   background-color: transparent;
}

.request-loader.accent:hover {
   border: solid 2px var(--primary);
   color: var(--primary);
   background-color: transparent;
}

.request-loader.accent::after,
.request-loader.accent::before {
   opacity: 0.2;
   display: flex;
   flex-direction: row;
   justify-content: center;
   align-items: center;
   position: absolute;
   content: '';
   height: 100%;
   width: 100%;
   color: var(--primary);
   border: 4px solid currentColor;
   border-radius: 50%;
   animation-name: ripple;
   animation-iteration-count: infinite;
   animation-timing-function: cubic-bezier(.65, 0, .34, 1);
   z-index: 0;
}

.request-loader::after,
.request-loader::before {
   opacity: 0.2;
   display: flex;
   flex-direction: row;
   justify-content: center;
   align-items: center;
   position: absolute;
   content: '';
   height: 100%;
   width: 100%;
   color: var(--primary);
   border: 4px solid currentColor;
   border-radius: 15px;
   animation-name: ripple;
   animation-iteration-count: infinite;
   animation-timing-function: cubic-bezier(.65, 0, .34, 1);
   z-index: 0;
}

.request-loader::after {
   animation-delay: 0.5s;
   animation-duration: 3s;
}

.request-loader::before {
   animation-delay: 0.2s;
   animation-duration: 3s;
}


.r-progress {
   --value: 17;
   --progress-color: var(--accent-color);
   --secondary-progress-color: var(--accent-color-3);
   --animation-duration: 2000;
}

.r-progress-bar {
   position: relative;
   height: 12px;
   background-color: var(--secondary-progress-color);
   display: flex;
   border-radius: 10px;
/* overflow: hidden; */
}

.r-progress-bar .progress-value {
   height: 100%;
   width: calc(var(--progress) * 1%);
   background-color: var(--progress-color);
   position: relative;
   border-radius: 10px;
   animation: load;
   animation-fill-mode: forwards;
   animation-duration: calc(var(--animation-duration) * 1ms);
   animation-timing-function: linear;
   animation-delay: 500ms;
   color: black;
}

.r-progress-bar.percentage-label::after {
   counter-reset: percentage var(--progress);
   content: counter(percentage) '%';
   display: block;
   position: absolute;
   left: calc((var(--progress) * 1%));
   animation: load;
   animation-fill-mode: forwards;
   animation-duration: calc(var(--animation-duration) * 1ms);
   animation-timing-function: linear;
   animation-delay: 500ms;
   font-size: 18px;
   line-height: 1.2;
/* font-weight: 700; */
font-family: var(--font-1);
bottom: calc(100% + 0.5rem);
}

.ifr-video {
   aspect-ratio: 16/9;
   width: 100%;
}

.post-button {
   background-color: transparent;
   color: var(--accent-color) !important;
   border: none !important;
}

.post-button:hover {
   background-color: transparent !important;
   color: var(--accent-color) !important;
   transform: scale(1.15);
}

.card.with-border-bottom {
   border-bottom: 5px solid var(--accent-color) !important;
}


.list-flush-horizontal {
   display: flex;
   flex-direction: row;
   list-style: none;
   margin: 0;
   padding: 1rem;
}

.list-flush-horizontal .list-item:first-child,
.list-flush-horizontal .list-item {
   border-right: 1px solid white;
}

.list-flush-horizontal .list-item:last-child {
   border-left: 1px solid white;
   border-right: none;
}

.list-flush-horizontal .list-item:nth-last-child(2) {
   border: none;
}

.list-group-item {
   background-color: transparent;
   border-radius: 10px;
}

.list-group .list-group-item .link {
   background-color: transparent;
   border-bottom: 1px solid var(--accent-color);
   color: var(--accent-color);
   padding: 16px 16px;
   transition: all 0.5s;
   border-radius: 0px;
   font-size: 25px;
   font-family: var(--font-1);
   font-weight: 600;
}

.list-group .list-group-item .social-item {
   color: var(--primary);
   background-color: var(--accent-color);
   font-size: 14px;
}

.list-group.accent .list-group-item .link {
   background-color: transparent;
   border: 1px solid var(--accent-color);
   color: var(--accent-color);
   transition: all 0.5s;
}

.list-group .list-group-item:hover .social-item {
   color: var(--accent-color);
   background-color: var(--primary);
}

.list-group .list-group-item .link:hover {
   color: var(--text-color);
   border-bottom: 1px solid var(--text-color);

}

.list-group .list-group-item.active {
   background-color: var(--accent-color);
   color: var(--accent-color);
}

.list-group .list-group-item.list-group-item-action:hover {
   background-color: var(--accent-color-2);
   color: white;
}

.list {
   margin: 0;
   padding: 0;
   display: flex;
   flex-direction: column;
   padding-inline: 0.5rem;
}

.list .link {
   font-weight: 400;
   text-wrap: nowrap;
}

.list li {
   padding: 0;
   font-size: 16px;
   font-family: var(--font-2);
}

.list li .link {
   transition: all 0.5s;
   color: var(--text-color);
}

.list li i {
   transition: all 0.5s;
   color: var(--primary);
}

.list.text-black i {
   color: #131313;
}

.list li .link:hover,
.list li .link:hover i {
   color: var(--accent-color-2);
}

.card .link {
   color: var(--accent-color);
   transition: color 0.5s;
}

.card .link:hover {
   color: var(--primary);
}

.link.accent-color {
   color: var(--accent-color);
   transition: color 0.5s;
}

.link.accent-color:hover {
   color: var(--dark-bg);
}

.link {
   color: var(--text-color);
}

.link:hover {
   color: var(--accent-color);
}

.link-white {
   color: white;
}

.link-white:hover {
   color: var(--accent-color);
}

.glass-effect {
   background: #a55950d5;
   backdrop-filter: blur(11px);
   -webkit-backdrop-filter: blur(11px);
}



.border-bottom-hover:hover {
   border-bottom: 2px solid var(--accent-color);
}

.testimonial-container {
   background-color: var(--accent-color-3);
   border-radius: 30px;
   display: flex;
   flex-direction: column;
/* box-shadow: 0px 0px 18px 0px rgba(0, 0, 0, 0.1); */
}

.testimonial-container:hover {
   box-shadow: 0px 0px 0px 1px transparent;
   transition: all 0.5s;
}

.services-container {
   background-color: transparent;
   padding: 30px;
   display: flex;
   flex-direction: column;
   gap: 0.5rem;
   height: 100%;
   box-shadow: 0px 0px 18px 0px rgba(0, 0, 0, 0.1);
}

.rating {
   list-style: none;
   display: flex;
   flex-direction: row;
   gap: 0.75rem;
   padding: 0;
   margin: 0;
}

.rating li {
   color: #f1c644;
}

.rating li.inactive {
   color: #d9d9d9;
}

.logo-partner {
   filter: brightness(200%) contrast(0%) saturate(0%) blur(0px) hue-rotate(0deg);
   transition-duration: 0.5s;
}

.logo-partner:hover {
   filter: none;
}

.accordion-container {
   display: flex;
   gap: 20px;
   width: 100%;
   height: 50vh;
   overflow: hidden;
}

/* Accordion item pertama tampil lebih besar secara default */
.accordion-item:last-child {
   flex: 2;
}

/* Ketika ada item yang di-hover */
.accordion-item:hover {
   flex: 3;
}

/* Jika ada item yang di-hover, semua accordion lainnya memiliki ukuran yang sama */
.accordion-container:hover .accordion-item {
   flex: 2;
}

.accordion-container:hover .accordion-item:hover {
   flex: 4;
}

.accordion-item {
   flex: 1;
   border-radius: 15px;
   background-size: cover;
   background-position: center;
   transition: flex 0.5s ease;
   position: relative;
   overflow: hidden;
}

.accordion-item:first-of-type,
.accordion-item:last-of-type {
   border-radius: 15px;
}

.accordion-title {
   position: absolute;
   bottom: 20px;
   left: 20px;
   color: white;
   font-size: 24px;
   text-shadow: 2px 2px 4px rgba(0, 0, 0, 0.7);
   transition: opacity 0.5s ease;
}

.accordion-item:hover .accordion-title {
   opacity: 0.8;
}


.accordion .accordion-item {
   background-color: transparent;
   border: none;
   color: var(--text-color-2);
   outline: none;
   border-radius: 10px;
}

.accordion-button:focus {
   box-shadow: none;
}

.accordion .accordion-button {
   background-color: transparent;
   border: 1px solid var(--text-color);
   color: var(--text-color-2);
   outline: none;
   border-radius: 10px !important;
   font-weight: 500;
   font-family: var(--font-2);
   font-size: 24px;
/* box-shadow: rgba(0, 0, 0, 0.1) 0px 4px 6px -1px, rgba(0, 0, 0, 0.06) 0px 2px 4px -1px; */
position: relative;
overflow: hidden;
display: flex;
flex-direction: row;
justify-content: start;
padding-block: 1.2rem;
color: var(--text-color);
}

.accordion .accordion-button.accent {
   box-shadow: rgba(0, 0, 0, 0.1) 0px 4px 6px -1px, rgba(0, 0, 0, 0.06) 0px 2px 4px -1px;
}


.accordion-button::after {
   background-image: url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="%23122426" class="bi bi-chevron-down" viewBox="0 0 16 16"><path fill-rule="evenodd" d="M1.646 4.646a.5.5 0 0 1 .708 0L8 10.293l5.646-5.647a.5.5 0 0 1 .708.708l-6 6a.5.5 0 0 1-.708 0l-6-6a.5.5 0 0 1 0-.708"/></svg>');
}

.accordion-button:not(.collapsed)::after {
   background-image: url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="%23FD791B" class="bi bi-chevron-down" viewBox="0 0 16 16"><path fill-rule="evenodd" d="M1.646 4.646a.5.5 0 0 1 .708 0L8 10.293l5.646-5.647a.5.5 0 0 1 .708.708l-6 6a.5.5 0 0 1-.708 0l-6-6a.5.5 0 0 1 0-.708"/></svg>');
}

.accordion .accordion-button:not(.collapsed) {
   color: var(--accent-color-2);
   font-weight: 500;
   border: none;
   color: var(--accent-color);
   border: 1px solid var(--accent-color-2);
   outline: none;
   border-radius: 10px !important;
   box-shadow: none;
}

.accordion .accordion-body {
   background-color: transparent;
   font-size: 16px;
   color: var(--accent-color-4);
   font-family: var(--font-3);
}

.custom-border {
   border-width: 15px 15px 0 0;
   border-style: solid;
   border-color: white;
   border-radius: 0 30px;
}

.custom-border-2 {
   border-width: 0 20px 20px 0;
   border-style: solid;
   border-color: white;
   border-radius: 45px 0;
}

.custom-border-3 {
   border-width: 20px 0px 0px 20px;
   border-style: solid;
   border-color: white;
   border-radius: 45px 0px 0px 0px;
}

.position-xl-absolute {
   position: absolute;
}

.w-60 {
   width: 60% !important;
}

.shadow-double {
   box-shadow: 40px -40px 0px -4px var(--accent-color), -54px 44px 0px -3px var(--text-color-2);
}

.shadow-single-left {
   box-shadow: -54px 44px 0px -3px var(--accent-color);
}

.shadow-single-right {
   box-shadow: 40px -40px 0px -4px var(--accent-color);
}

.shadow-accent-2 {
   -webkit-box-shadow: -90px -23px 0px 0px var(--accent-color);
   -moz-box-shadow: -90px -23px 0px 0px var(--accent-color);
   box-shadow: -90px -23px 0px 0px var(--accent-color);
}

.number-text {
   font-size: 100px;
}

.text-404 {
   font-size: 12rem;
   font-weight: 700;
}

.rounded-end {
   border-top-right-radius: 1rem;
   border-bottom-right-radius: 1rem;
}

.floating-top {
   margin-top: -8rem;
}

.floating-price {
   top: -2rem;
   right: -3.6rem;
}

.floating-image {
   position: absolute;
}

.floating-banner {
   position: absolute;
   width: 50%;
   padding-right: 5rem;
}

.floating-left {
   margin-left: -10rem;
}

.floating-right {
   position: absolute;
   margin-bottom: 12rem;
}

.floating-right-2 {
   position: absolute;
   margin-top: 8rem;
}

.floating-left-1 {
   margin-left: -3rem;
}

.floating-right-1 {
   margin-right: -3rem;
}

.d-inline-block {
   display: inline-block;
}

.position-responsive {
   position: absolute;
}

footer .list li .link {
   transition: all 0.5s;
   color: var(--primary);
}

footer h5 { 
   color: var(--primary);
   font-weight: 900;
}

footer p {
   font-size: 16px;
   font-family: var(--font-3);
   color: var(--primary);
}

footer form.footer-newsletter-subscribe input::placeholder {
   color: var(--primary);
}
footer form.footer-newsletter-subscribe input[type="text"] {
   color: var(--primary);
   border: solid 1px white;
}



/* spinner */
.listing-loader {
  visibility: hidden;
  opacity: 0;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  transition: opacity 0.25s ease, visibility 0s linear 0.25s;
  position: fixed;            /* <-- THIS IS THE FIX */
  inset: 0;
  z-index: 9999999;              /* ensure top layer */
  background: rgba(255,255,255,0.6);
  backdrop-filter: blur(2px);
}

.listing-loader.active {
  visibility: visible;
  opacity: 1;
  transition-delay: 0s;
}

.spinner {
  width: 32px;
  height: 32px;
  border: 4px solid #ddd;
  border-top-color: var(--accent-color-4);
  border-radius: 50%;
  margin: 0 auto 10px;
  animation: spin 0.7s linear infinite;
}

@keyframes spin {
  to { transform: rotate(360deg); }
}



/* CARDS */
.block-two-columns {
   display: flex;
   flex-direction: column;
   gap: 2rem;
}

#recommended_listing_card {
      max-width: 480px;
}


.grid.listing-cards {
   max-width: 1100px;
   margin: 40px auto;
   padding: 0;
   display: grid;
   grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
   gap: 24px;
}

.page-btn.listings-pagination-btn {
   background: #395e78;
}

.virtual-spacer {
  height: calc(var(--total-pages) * var(--page-height));
}

#listing_cards {
  transform: translateZ(0); /* forces GPU layer */
  transition: opacity 0.25s ease, transform 0.25s ease;
  opacity: 1;
}

#listing_cards.fade-out {
  opacity: 0;
  transform: translateY(10px); /* buttery smooth */
}

#listing_cards.fade-in {
  opacity: 1;
  transform: translateY(0);
}


.listing-cards .card {
   display: flex;
   flex-direction: column;
   gap: 12px;
   height: 100%;
   background: #ebebeb;
   border: 1px solid rgba(223, 213, 213, 0.8);
   border-radius: 16px;
   padding: 20px;
   overflow: hidden;
   transition: transform 0.2s ease, box-shadow 0.2s ease;
}

.listing-cards .card:hover {
   transform: translateY(-4px);
   box-shadow: 0 8px 24px rgba(0,0,0,0.35);
}

.listing-cards .card-hero img {
   width: 100%;
   aspect-ratio: 16 / 9;
   border-radius: 12px;
   object-fit: cover;
   background: #1e293b;
}

.carousel {
  position: relative;
  overflow: hidden;
  height: 200px;
  border-radius: 10px;
}

.slide {
  position: absolute;
  inset: 0;
  opacity: 0;
  transition: opacity .4s ease;
}

.slide.active {
  opacity: 1;
}

.carousel img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.carousel button.prev,
.carousel button.next {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  background: rgba(255,0,0,0.4);
  color: white;
  border: none;
  padding: 6px 10px;
  font-size: 22px;
  cursor: pointer;
  border-radius: 4px;
}

.carousel button.prev { left: 8px; }
.carousel button.next { right: 8px; }
.listing-cards .categories {
   display: flex;
   justify-content: center;
   gap: 10px;
   padding: 20px;
   flex-wrap: wrap;
}

.listing-cards .cat-pill {
   padding: 6px 14px;
   border-radius: 999px;
   background: rgba(255,255,255,0.06);
   border: 1px solid rgba(255,255,255,0.12);
   font-size: 13px;
   color: #cbd5e1;
}

.listing-cards .card h2,
.listing-cards .card h2 a {
   margin: 0;
   font-family: var(--font-3);
   font-size: 1rem;
   color: #294a6a;
}

.listing-cards .tag {
   font-size: 12px;
   text-transform: uppercase;
   letter-spacing: 0.12em;
   color: #29353a;
}

.listing-cards .location {
   color: #1b2636;
}

.listing-cards .desc {
   color: #1b2636;
   line-height: 1.4rem;
}

.link-more {
   color: black;
   font-weight: 600;
   text-decoration: underline;
}

.listing-cards .amenities {
   display: flex;
   flex-wrap: wrap;
   gap: 6px;
   color: #1b2636;
}

.listing-cards .amenity {
   margin-bottom: 1rem;
   padding: 4px 10px;
   border-radius: 999px;
   background: rgba(90,5,5,0.75);
   border: 1px solid rgba(255,255,255,0.12);
   font-size: .8rem;
   color: white;
}

.listing-cards .price {
   font-size: 16px;
   color: #1b2636;
   font-weight: 500;
}



.listing-cards .card-btn-container {
   display: flex;
   flex-direction: column;
   gap: 4px;
   margin-top: auto;
}


.listing-cards .card-btn-container .listing-card-btn {
   display: inline-flex;
   width: 100%;
   padding: 0.8rem 0;
   background: #395e78;
   color: white;
   border-radius: 999px;
   font-size: 1rem;
   align-items: center;
   justify-content: center;
   font-family: "Poppins", arial, sans-serif;
}


.landscape-card {
   display: flex;
   flex-direction: column;
   flex: 1 2 auto;
   margin: 0 auto 4rem;
   border: 1px solid #ddd;
   border-radius: 7px;
}

.landscape-card-image {
   flex: 1;
}

.landscape-card-image img {
   width: 100%;
   height: 100%;
   object-fit: cover;
}

.landscape-card-content {
   flex: 2;
   flex-flow: start;
   justify-content: start;
   align-items: start;
   padding: 20px;
}

.card-btn {
   display: inline-block;
   padding: .3rem 1.6rem;
   border: 1px solid #333;
   border-radius: 7px;
}

/**********************/
/* TESTIMONIAL RATING */
/**********************/
#testimonial_form { display: flex; flex-direction: column; gap: 12px; max-width: 500px; }
.stars span { font-size: 28px; cursor: pointer; color: #ccc; }
.stars .active { color: gold; }
textarea, input { width: 100%; padding: 10px; border-radius: 6px; border: 1px solid #ddd; }
button { padding: 10px 16px; background: #1b4d7a; color: white; border: none; border-radius: 6px; cursor: pointer; }

.modal {
   display:none; position:fixed; top:0; left:0; width:100%; height:100%;
   background:rgba(0,0,0,0.6); justify-content:center; align-items:center;
}
.modal-content {
   background:#fff; padding:20px; border-radius:10px; width:90%; max-width:450px;
}
.close-modal { float:right; cursor:pointer; font-size:24px; }
.stars span { font-size:28px; cursor:pointer; color:#ccc; }
.stars .active { color:gold; }


/**********************/
/* DETAILS PAGE */
/****************/
/* ------------------------------
   MOBILE-FIRST BASE LAYOUT
------------------------------ */
.details-layout {
  display: block;
  width: 100%;
  padding: 1.2rem;
  margin: 0 auto;
  max-width: 1300px;
}

.details-left,
.details-right {
  width: 100%;
  margin-bottom: 2rem;
}

/* ------------------------------
   HERO IMAGE
------------------------------ */
.details-hero img {
  width: 100%;
  border-radius: 14px;
  object-fit: cover;
  max-height: 380px;
  box-shadow: 0 6px 20px rgba(0,0,0,0.25);
}

/* ------------------------------
   TITLES & TEXT
------------------------------ */
.listing-title {
  margin-top: 1rem;
  font-size: 1.9rem;
  font-weight: 700;
  letter-spacing: -0.3px;
}

.caption {
  font-size: 1rem;
  opacity: 0.85;
  margin-top: 0.4rem;
}

.description {
  margin-top: 1rem;
  line-height: 1.65;
  font-size: 1rem;
  opacity: 0.9;
}


/* === TAGS === */
.tags {
  margin: 1rem 0;
  font-weight: 500;
}

/* ------------------------------
   AMENITIES
------------------------------ */
.amenities {
  display: flex;
  flex-wrap: wrap;
  gap: 0.45rem;
  margin-top: 0.8rem;
}

.amenity {
  background: rgba(89, 77, 66, 1);
  color: white;
  padding: 6px 12px;
  border-radius: 8px;
  border: 1px solid #ffffff1a;
}

p.contact-info a {
   display: block;
   margin: 0 0 1rem;
   font-size: 1.4rem;
   color: white;
}

.map-container {
  margin: 1.5rem 0;
  width: 100%;
  overflow: hidden;
  border-radius: 12px;
}

.map-container iframe {
  width: 100%;
  height: 300px;
  border: none;
  border-radius: 12px;
}


/* ------------------------------
   SIDEBAR (MOBILE)
------------------------------ */
.details-right {
   height: 100%;
   background: rgb(53 80 85);
   color: white;
   backdrop-filter: blur(8px);
   padding: 1.5rem;
   border-radius: 14px;
   border: 1px solid #ffffff1a;
   box-shadow: 0 8px 24px rgba(0,0,0,0.15);
}

.rating-block {
   font-size: 1.3rem;
   font-weight: 600;
   margin-bottom: 1rem;
   color: #ffd86b;
}

.contact-info a {
  color: #9ecbff;
  text-decoration: none;
}

.contact-info a:hover {
  text-decoration: underline;
}

.details-right .booking-buttons {
   margin: 1.6rem 0;
}

.booking-buttons .btn {
  display: block;
  width: 100%;
  margin-bottom: 0.8rem;
  padding: 0.9rem;
  border-radius: 8px;
  font-weight: 600;
  text-align: center;
}

.btn.booking {
  background: #1e90ff;
  color: #fff;
}

.btn.phone {
  background: #2ecc71;
  color: #fff;
}

/* ------------------------------
   REVIEWS
------------------------------ */
.reviews-section {
  width: 100%;
  padding: 1.2rem;
  margin: 2rem auto;
  max-width: 900px;
}

.review-item {
  background: #ffffff0d;
  padding: 1.2rem;
  border-radius: 10px;
  margin-bottom: 1rem;
  border: 1px solid #ffffff1a;
}

.review-stars {
  color: #ffd86b;
  font-size: 1.2rem;
  margin-bottom: 0.4rem;
}

.page-btn {
  background: #ffffff12;
  border: 1px solid #ffffff1a;
  padding: 6px 12px;
  margin: 0 4px;
  border-radius: 6px;
  cursor: pointer;
  color: #fff;
}

.page-btn.active {
  background: #1e90ff;
  border-color: #1e90ff;
}


.cta-list-today {
   padding: 1rem 1.3rem; 
   background: var(--text-color); 
   color: white;
   transition: background 330ms ease-in-out;
}


.cta-list-today:hover {
   padding: 1rem 1.3rem; 
   background: white; 
   border: solid 1px var(--text-color);
   color: var(--text-color);
}


































@media only screen and (max-width:993px) {
   h1 {
      font-size: 50px;
   }

   h2 {
      font-size: 38px;
   }

   h3 {
      font-size: 28px;
   }

   h4 {
      font-size: 22px;
   }

   h5 {
      font-size: 18px;
   }

   h6 {
      font-size: 14px;
   }

   p,
   button,
   a {
      font-size: 1.1rem;
   }

   .btn {
      font-size: 13px;
      width: 100%;
   }

   .w-max-content {
      width: 100%;
   }

   .section {
      padding: 4rem 2rem;
   }

   .divider {
      width: 330px;
   }

   .fs-very-large {
      font-size: 3.125rem;
   }

   .number-text {
      font-size: 60px;
   }

   .text-404 {
      font-size: 8rem;
      font-weight: 700;
   }

   .image-absolute-1 {
      left: 45%;
      top: 35%;
   }

   .image-infinite-bg {
      background-size: cover !important;
   }

   #header {
      background: #a55950d5;
      backdrop-filter: blur(11px);
      -webkit-backdrop-filter: blur(11px);
   }

   .border-custom {
      border-width: 0px 0px 1px 0px;
   }

   .outer-margin {
      margin-right: 0;
   }

   .logo-container {
      max-width: 100px;
   }

   .nav-link {
      padding-block: 0.2rem;
      text-align: center;
   }

   .banner-image {
      margin: 0;
      transform: none;
   }

   .testimonial-img {
      margin: 0;
      margin-bottom: 1rem;
   }

   .dropdown-menu {
      width: 100%;
      box-shadow: none;
   }

   .video-e119 {
      width: 85%;
      margin-left: -1.5rem;
   }

   .dropdown-item {
      padding-block: 0.35rem;
   }

   .floating-top {
      position: relative;
      margin-top: -3rem;
   }

   .floating-image {
      position: inherit;
      width: 100%;
   }

   .floating-price {
      top: -2rem;
      right: -4.8rem;
   }

   .floating-banner {
      position: inherit;
      padding-right: 0;
      margin-bottom: 2rem;
      width: 100%;
   }

   .floating-left {
      margin-left: 0;
   }

   .floating-right {
      position: inherit;
      margin-left: 0rem;
      margin-bottom: 0rem;
   }

   .floating-right-2 {
      position: inherit;
      margin-top: 0rem;
   }

   .floating-left-1 {
      margin-left: 0;
   }

   .floating-right-1 {
      margin-right: 0;
   }

   .swiperImage.floating-left {
      margin-left: 0rem;
   }

   .border-testimonial {
      border-right: none;
   }

   .service-container {
      background-color: transparent;
      padding: 30px;
      display: flex;
      flex-direction: column;
      gap: 1.75rem;
      box-shadow: 0px 0px 18px 0px rgba(0, 0, 0, 0.1);
      height: 100%;
   }

   .appointment-box {
      top: -2rem;
      bottom: 0;
      left: 0;
      right: 0;
      height: 8rem;
   }

   .w-md-70 {
      width: 70%;
   }

   .w-md-60 {
      width: 60%;
   }

   .position-responsive {
      position: relative;
   }


   .form-appointment-container {
      position: relative;
      transform: translateY(0);
   }

   .list-flush-horizontal {
      flex-direction: column;
   }

   .list-flush-horizontal .list-item:first-child,
   .list-flush-horizontal .list-item {
      border-right: none;
      border-bottom: 1px solid white;
   }

   .list-flush-horizontal .list-item:last-child {
      border-left: none;
      border-bottom: none;
      border-top: 1px solid white;
   }

   .position-xl-absolute {
      position: static;
   }

   .banner-heading {
      font-size: 2.5rem;
   }

   .accordion .accordion-item {
      font-size: 12px;
   }

   .accordion .accordion-button {
      font-size: 16px;
   }

   .accordion-container {
      display: contents;
   }
}
















@media all and (min-width: 30em) {
   img.blog-image > img.img-fluid { height: 460px !important;}
}














@media all and (min-width: 50em) {
   .details-layout {
      display: flex;
      gap: 3rem;
      padding: 2rem 0;
   }

   .details-left {
      flex: 3;
   }

   .details-right {
      flex: 1;
      position: sticky;
      top: 120px;
   }

   .str-amenities {
      display: flex;
      flex-wrap: wrap;
      align-content: space-evenly;
      row-gap: 20px;
      padding: 1rem;
      background: rgba(125, 14, 35, .05);
   }

   .str-amenity {
      flex-grow: 1;
      width: 50%;
      max-width: 320px;
   }



   .listing-title {
      font-size: 2.4rem;
   }

   .listing-cards .card {
      max-width: 360px;
   }

   .details-hero .carousel {
      height: 323px;
   }

   .details-right {
      height: 100%;
   }

   .map-container iframe {
      height: 350px;
   }
}










/* Desktop hover dropdown */
@media (min-width: 60em) {
   .navbar #navbarNav {
      position: initial;
      width: 100%;
   }

   .navbar .dropdown:hover .dropdown-menu {
      display: block;
      opacity: 1;
      visibility: visible;
      transform: translateY(0);
   }

   .navbar .dropdown-menu {
      display: block; /* allow animation */
      opacity: 0;
      visibility: hidden;
      transform: translateY(10px);
      transition: all 0.25s ease;
   }
   .block-two-columns {
      flex-direction: row;
      justify-content: center;   /* centers both columns horizontally */
      align-items: center;       /* centers them vertically */
      max-width: 960px;
      margin: 0 auto;
   }



   .landscape-card {
      flex-direction: row;
   }
}
