/* Custom CSS to complement Bootstrap */

* {
  margin: 0;
  padding: 0;
  box-sizing: border-box;
}

html {
  scroll-behavior: smooth;
}

body {
  font-family: 'Poppins', sans-serif;
  font-size: 1.125rem;
  line-height: 1.6;
  color: #2E3B4E;
  background: #ffffff;
}

footer {
  font-family: 'Poppins', sans-serif;
  font-size: 1rem;
  line-height: 1.2;
}

/* CustomNavbar Styling */
.custom-navbar {
  background: rgba(255, 255, 255, 0.5) !important;
  backdrop-filter: blur(10px);
  padding: 15px 0;
}

.navbar-brand {
  color: #2E3B4E !important;
  text-decoration: none;
}

.logo {
  width: 100%;
  height: 2rem;
  object-fit: contain;
}

.brand-name {
  font-family: 'Libre Baskerville', serif;
  font-size: 1.5rem;
  font-weight: 700;
  color: #2E3B4E;
}

.custom-nav-link {
  color: #2E3B4E !important;
  font-weight: 500;
  font-size: 0.875rem;
  transition: color 0.3s ease;
  margin: 0 10px;
}

.custom-nav-link:hover {
  color: #006064 !important;
}

.text-body-secondary: {
  color: #006064;
}
.text-body-secondary:hover {
  color: #2E3B4E !important;
}
.btn-custom-cta {
  background: #006064;
  border: .125rem solid #f1cd66;
  color: white;
  font-weight: 500;
  font-size: 1rem;
  border-radius: 25px;
  width: calc(100% + .5rem + .25rem);
  height:calc(100% + .5rem + .25rem);
  padding: 12px 30px;
  transition: opacity .35s cubic-bezier(.76,0,.24,1);
}

.btn-custom-cta:hover {
  background: #f1cd66;
  border-color: #f1cd66;
  color: #2E3B4E;
}

/*Properties */
.property-carousel {
            padding: 3rem 0;
            /*background-color: #fff; */
        }
        
        .property-card {
            border: 1px solid #006064;
            border-radius: 12px;
            overflow: hidden;
            /*box-shadow: 0 2px 12px rgba(0,0,0,0.1);
            transition: transform 0.3s ease, box-shadow 0.3s ease; */
            height: 100%;
        }
        
        .property-card:hover {
            /*transform: translateY(-4px);
            box-shadow: 0 8px 25px rgba(0,0,0,0.15); */
            background-color: rgb(0 96 100 / 5%);

        }
        
        .property-image {
            position: relative;
            height: 200px;
            overflow: hidden;
        }
        
        .property-image img {
            width: 100%;
            height: 100%;
            object-fit: cover;
        }
        
        .sold-badge {
            position: absolute;
            top: 12px;
            left: 12px;
            background-color: #dc3545;
            color: white;
            padding: 4px 8px;
            border-radius: 4px;
            font-size: 0.75rem;
            font-weight: 500;
        }
        .most-badge {
            position: absolute;
            top: 12px;
            left: 12px;
            background-color: #6da935;
            color: white;
            padding: 4px 8px;
            border-radius: 4px;
            font-size: 0.75rem;
            font-weight: 500;
        }
        .soon-badge {
            position: absolute;
            top: 12px;
            left: 12px;
            background-color: #f1cd66;
            color: #2E3B4E;
            padding: 4px 8px;
            border-radius: 4px;
            font-size: 0.75rem;
            font-weight: 500;
        }
        
        .property-details {
            padding: 1.25rem;
        }
        
        .property-price {
            font-size: 1.5rem;
            font-weight: 500;
            color: #006064;
            margin-bottom: 0.5rem;
        }
        
        .property-specs {
            display: flex;
            gap: 1rem;
            margin-bottom: 0.75rem;
            font-size: 0.9rem;
            color: #2E3B4E;
        }
        
        .property-address {
            font-size: 0.9rem;
            color: #495057;
            margin-bottom: 0.5rem;
            font-weight: 500;
        }
        
        .property-mls {
            font-size: 0.75rem;
            color: #6c757d;
            line-height: 1.3;
        }
        
        .carousel-control-prev,
        .carousel-control-next {
            width: 50px;
            height: 50px;
            background-color: white;
            border-radius: 50%;
            top: 50%;
            transform: translateY(-50%);
            box-shadow: 0 2px 8px rgba(0,0,0,0.15);
            opacity: 0.8;
        }
        
        .carousel-control-prev:hover,
        .carousel-control-next:hover {
            opacity: 1;
        }
        
        .carousel-control-prev {
            left: -25px;
        }
        
        .carousel-control-next {
            right: -25px;
        }
        
        .carousel-control-prev-icon,
        .carousel-control-next-icon {
            background-size: 20px;
            filter: invert(1);
        }
        
        .carousel-indicators {
            bottom: -50px;
        }
        
        .carousel-indicators button {
            width: 10px;
            height: 10px;
            border-radius: 50%;
            margin: 0 4px;
        }

/* Hero Section */
.hero-section {
  /*background: white;*/
  padding-top: 8rem;
  padding-bottom: 2rem;
  min-height: 50vh;
  display: flex;
  align-items: flex-start;
}

.hero-content {
  max-width: 500px;
}

.hero-heading {
  font-family: 'Libre Baskerville', serif;
  font-size: 3.5rem;
  font-weight: 400;
  line-height: 1.2;
  color: #006064;
}

.hero-subheading {
  font-size: 1.125rem;
  line-height: 1.6;
  color: #2E3B4E;
}

.hero-img {
  /*border-radius: 45px;
  border: 3px solid #D8A48F; */
  max-width: 100%;
  height: auto;
  mix-blend-mode: multiply;
}

/*how section*/
.list-group{
  --bs-list-group-bg : #ffffff; 

}
.list-group-item.active {
  --bs-list-group-active-bg:#ffffff !important;
}

.btn-learn-more-outline {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.5rem; /* space between text & arrow */
  padding: 0.6rem 1.5rem;
  border: 1px solid #006064;
  border-radius: 50px;
  background: transparent;
  color: #006064;
  font-weight: 500;
  font-size: 1rem;
  cursor: pointer;
  text-decoration: none;
  transition: all 0.3s ease;
}

.btn-learn-more-outline .arrow {
  display: inline-block;
  transition: transform 0.3s ease, opacity 0.3s ease;
  opacity: 0.7;
}

.btn-learn-more-outline:hover {
  background: #006064;
  color: #fff;
}

.btn-learn-more-outline:hover .arrow {
  transform: translateX(6px);
  opacity: 1;
}

.marker-title {
  position: relative;
  display: inline-block;
  font-size: 2.5rem;
  font-weight: 500;
  color: #2E3B4E;
  background-image: url("./attached_assets/round.svg");
  background-repeat: no-repeat;
  background-size: contain;
  background-position: center bottom;
  padding: 0.2em 0.5em;
}

/* marker text */
        .text-container {
            position: relative;
            /*cursor: pointer;*/
        }
        .highlight-text {
            font-size: 2em;
            position: relative;
            z-index: 2;
        }
        .circle-svg {
            position: absolute;
            top: 50%;
            left: 50%;
            transform: translate(-50%, -50%);
            width: 200px;
            height: 100px;
            z-index: 1;
        }
        .circle-path {
            stroke: #00cc00;
            stroke-width: 3;
            fill: none;
            stroke-linecap: round;
            stroke-dasharray: 500;
            stroke-dashoffset: 500;
            transition: stroke-dashoffset 0.7s ease-in-out;
        }
        .text-container:hover .circle-path {
            stroke-dashoffset: 0;
        }

        .underline-svg {
            position: absolute;
            bottom: 70px;
            left: 0;
            width: 100%;
            height: 20px;
            z-index: 1;
        }
        .underline-path {
            stroke: #006064;
            stroke-width: 3;
            fill: none;
            stroke-linecap: round;
            stroke-dasharray: 150;
            stroke-dashoffset: 150;
            transition: stroke-dashoffset 0.6s ease-in-out;
        }
        .text-container:hover .underline-path {
            stroke-dashoffset: 0;
        }

       .ellipse-svg {
  position: absolute;
  top: 50%;
  left: 50%;
  width: 120%;
  height: 140%;
  transform: translate(-50%, -50%);
  z-index: 0;
  pointer-events: none;
}

.ellipse-path {
  stroke: #006064; /* teal color */
  stroke-width: 3;
  fill: none; /* only stroke, no fill */
  stroke-linecap: round;
  stroke-dasharray: 600; /* path length */
  stroke-dashoffset: 600; /* hidden */
  transition: stroke-dashoffset 1s ease-in-out;
}

.text-container:hover .ellipse-path {
  stroke-dashoffset: 0; /* animates the stroke around */
}

  .blog-card {
    border-radius: 12px;
    box-shadow: 0 4px 12px rgba(0,0,0,0.1);
    transition: transform 0.2s, box-shadow 0.2s;
    height: 450px;
    display: flex;
    flex-direction: column;
    overflow: hidden;
    cursor: pointer; /* whole card clickable */
    text-decoration: none; /* remove underline for links */
    color: inherit;
  }

  .blog-card:hover {
    transform: translateY(-5px);
    box-shadow: 0 8px 20px rgba(0,0,0,0.15);
  }

  .blog-card img {
    width: 100%;
    height: 200px;
    object-fit: cover;
  }

  .blog-card-body {
    padding: 1rem;
    display: flex;
    flex-direction: column;
    flex: 1;
  }

  .blog-card-body .card-title {
    margin-bottom: 0.5rem;
    font-weight: 600;
  }

  .blog-card-body .card-text {
    flex: 1;
  }


/* footer*/
.py-5{
  margin-bottom: 0.25rem;
  padding-bottom: 0.25rem !important;
}

.btn-primary {
  background: #2E3B4E;
  border:2px solid #2E3B4E;
  color: white;
  font-weight: 500;
  font-size: 1rem;
  border-radius: 25px;
  width: calc(30% + .5rem + .25rem);
  height:calc(30% + .5rem + .25rem);
  padding: 12px 30px;
  transition: opacity .35s cubic-bezier(.76,0,.24,1);
    --bs-btn-focus-shadow-rgb: 49, 132, 253; 
    --bs-btn-active-color: #2E3B4E; 
    --bs-btn-active-bg: #fff; 
    --bs-btn-active-border: 2px solid #2E3B4E; 
    --bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); 
    --bs-btn-disabled-color: #fff;
    --bs-btn-disabled-bg: #2E3B4E;
    --bs-btn-disabled-border-color: #2E3B4E;
    --bs-btn-active-border-color:#2E3B4E;
    
}
.btn-oogway {
    background: #f1cd66;
  border:2px solid #f1cd66;
  color: #2E3B4E;
  font-weight: 500;
  font-size: 1rem;
  border-radius: 25px;
  width: calc(30% + .5rem + .25rem);
  height:calc(30% + .5rem + .25rem);
  padding: 12px 30px;
  transition: opacity .35s cubic-bezier(.76,0,.24,1);
    --bs-btn-focus-shadow-rgb: 49, 132, 253; 
    --bs-btn-active-color: #2E3B4E; 
    --bs-btn-active-bg: #fff; 
    --bs-btn-active-border: 2px solid #2E3B4E; 
    --bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); 
    --bs-btn-disabled-color: #fff;
    --bs-btn-disabled-bg: #2E3B4E;
    --bs-btn-disabled-border-color: #2E3B4E;
    --bs-btn-active-border-color:#2E3B4E;
    }

.btn-primary:hover {
  background: #f1cd66;
  border:2px solid #f1cd66;
  color: #2E3B4E;
}
.btn-oogway:hover {
  background: #000000;
  border:2px solid #000000;
  color: #ffffff;
}
.btn-oogway:active {
  background: #ffffff !important;
  border:2px solid #ffffff !important;
  color: #000000;
}

.form-control:focus{
  border-color: #f1cd66;
  box-shadow:0 0 0 .25rem #fff3cd;
}

/*Keypoints Section*/
.keypoints-section{
  
}

/* Section Headings */
.section-heading {
  font-family: 'Libre Baskerville', serif;
  font-size: 2rem;
  color: #006064;
}

/*pain section*/
.pain-image {
  transition: opacity 0.5s ease-in-out;
}

.pain-image.fade {
  opacity: 0;
}

/*ask Oogway section */
/* Make input look modern */
#messageInput {
  background: white;
  box-shadow: none !important;
  border: none;
  font-size: 1rem;
}

/* Adjust icons */
.input-group-text i {
  font-size: 1.2rem;
  color: #555;
}

/* Send button */
.input-group-text.bg-light {
  border-radius: 50% !important;
  width: 38px;
  height: 38px;
  display: flex;
  align-items: center;
  justify-content: center;
}

/* Steps Section */
.list-group-item {
  cursor: pointer;
  border: none;
  padding: 15px;
  font-weight: 500;
  transition: background 0.3s;
}
.list-group-item{
  --bs-list-group-color:#b4c2d0;
}

.list-group-item.active {
  color: #006064;
  /*border-radius: 50px;*/
  /*border: 1px solid #006064;*/
  --bs-list-group-active-bg: #fff;
}

.feature-text {
  animation: fadeIn 0.4s ease-in-out;
}

@keyframes fadeIn {
  from { opacity: 0; transform: translateY(10px); }
  to { opacity: 1; transform: translateY(0); }
}


/* Responsive adjustments */
@media (max-width: 768px) {
  .hero-heading {
    font-size: 2.5rem;
  }

  .hero-subheading {
    font-size: 1rem;
  }

  .brand-name {
    font-size: 1.25rem;
  }

  .custom-nav-link {
    font-size: 0.875rem;
    margin: 5px 0;
  }

  .hero-section {
   /* padding-top: 10px; */
  }
  .carousel-control-prev,.carousel-control-next {
    display: none;
  }
            
  .carousel-indicators {
    bottom: -30px;
  }
}

@media (max-width: 576px) {
  .hero-heading {
    font-size: 2rem;
  }

  .btn-custom-cta {
    padding: 8px 16px;
    font-size: 0.875rem;
  }

  .hero-section {
   /* padding-top: 120px; */
  }
}

/* Ensure sections have proper spacing */
section {
  min-height: 60vh;
}

#why, #properties, #oogway, #early-access {
  padding: 80px 0;
}

/* ======================
   Oogway Page Styles
   ====================== */

/* Oogway Section */
#oogway-page {
  background: #f9f9f9;
  padding-top: 8rem;
  padding-bottom: 4rem;
}

/* Title & Caption */
#oogway-page h1.section-heading {
  font-family: 'Libre Baskerville', serif;
  font-size: 3rem;
  font-weight: 700;
  color: #006064;
  margin-bottom: 1rem;
}

#oogway-page .caption {
  font-size: 1.25rem;
  color: #2E3B4E;
  margin-bottom: 1.5rem;
  font-weight: 500;
}

#oogway-page .description {
  font-size: 1rem;
  color: #555;
  max-width: 750px;
  margin: 0 auto 2rem auto;
}

/* Sample Prompts Section */
.sample-prompts {
  margin: 2rem 0;
}

.sample-prompts h5 {
  font-weight: 600;
  margin-bottom: 1rem;
  color: #006064;
}

.sample-prompts .badge {
  background: #e8f5f5;
  color: #006064;
  padding: 10px 15px;
  border-radius: 25px;
  margin: 5px;
  font-size: 0.9rem;
  cursor: pointer;
  transition: background 0.3s ease;
}

.sample-prompts .badge:hover {
  background: #d0ecec;
}

/* Cards Section */
.oogway-card {
  border: 1px solid #eee;
  border-radius: 16px;
  padding: 2rem;
  transition: transform 0.3s ease, box-shadow 0.3s ease;
  height: 100%;
  background: #fff;
}

.oogway-card:hover {
  transform: translateY(-6px);
  box-shadow: 0 8px 25px rgba(0, 0, 0, 0.1);
}

.oogway-card h5 {
  color: #006064;
  font-weight: 600;
  margin-bottom: 1rem;
}

/* Input Box */
.oogway-input {
  max-width: 600px;
  margin: 2rem auto;
}

.oogway-input .form-control {
  border-radius: 30px 0 0 30px;
  padding: 0.75rem 1.25rem;
  border: 1px solid #ddd;
}

.oogway-input .btn-oogway {
  border-radius: 0 30px 30px 0;
}


/* On Mobile: make Ask Oogway button separate */
@media (max-width: 768px) {
  .oogway-input .input-group {
    flex-direction: column;
  }

  .oogway-input .form-control {
    border-radius: 25px;
    margin-bottom: 10px;
    width: 100%;
  }

  .oogway-input .btn-oogway {
    border-radius: 25px;
    width: 100%;
  }
}

/* Feedback Section */
.feedback-section {
  text-align: center;
  margin-top: 3rem;
}

.feedback-section h5 {
  margin-bottom: 1rem;
  color: #006064;
}

.rating-stars i {
  font-size: 1.5rem;
  color: #f1cd66;
  margin: 0 5px;
  cursor: pointer;
}

/* Chat-style input box */
.chat-input-box {
  display: flex;
  align-items: center;
  border: 1px solid #ddd;
  border-radius: 30px;
  padding: 0.5rem;
  background: #fff;
  max-width: 700px;
  gap: 0.5rem;
  margin-bottom: 1.5rem; /* tighter spacing */
}

.chat-input-box .prompt-input {
  border: none;
  resize: none;
  flex: 1;
  padding: 0.75rem 1rem;
  border-radius: 20px;
  outline: none;
  font-size: 1rem;
  box-shadow: none;
}

.chat-input-box .prompt-input:focus {
  outline: none;
  box-shadow: none;
}

.chat-input-box .ask-btn {
  background-color: #2e3b4e;
  color: #fff;
  border-radius: 25px;
  padding: 0.5rem 1.25rem;
  border: none;
  white-space: nowrap;
  transition: background-color 0.3s ease;
}

.chat-input-box .ask-btn:hover {
  background-color: #006064;
}

.chat-input-box {
  display: flex;
  align-items: center;
  background: #ffffff;
  border: 2px solid #e0e0e0;
  border-radius: 30px;
  padding: 0.5rem 1rem;
  max-width: 700px;
  margin: 0 auto;
  box-shadow: 0 2px 6px rgba(0, 0, 0, 0.05);
  transition: box-shadow 0.3s ease, border-color 0.3s ease;
}

/* Textarea styling */
.prompt-input {
  border: none;
  outline: none;
  flex-grow: 1;
  resize: none;
  font-size: 1rem;
  background: transparent;
  padding: 0.5rem;
}

/* On hover */
.chat-input-box:hover {
  border-color: #80cbc4;
  box-shadow: 0 4px 12px rgba(0, 150, 136, 0.15);
}

/* On focus (when textarea is active) */
.chat-input-box:focus-within {
  border-color: #009688;
  box-shadow: 0 6px 16px rgba(0, 150, 136, 0.25);
}

/* Mic button */
.mic-btn {
  color: #555;
  background: transparent;
  border: none;
  font-size: 1.2rem;
}

.ask-btn {
  background-color: #006064; /* teal */
  color: #fff;
  border-radius: 20px;
  padding: 0.6rem 1.5rem;
  font-weight: 500;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.4rem;
  border: none;
  transition: background 0.2s ease, transform 0.2s ease, box-shadow 0.2s ease;
}

.ask-btn:hover {
  background-color: #004d4d;
  transform: translateY(-2px);
  box-shadow: 0 6px 14px rgba(0, 96, 100, 0.3);
}

.ask-btn:active {
  transform: translateY(0);
  box-shadow: 0 3px 8px rgba(0, 96, 100, 0.2);
}


/* Mobile adjustment: button below input */
@media (max-width: 768px) {
  .chat-input-box {
    flex-direction: column;
    border-radius: 20px;
    padding: 1rem;
  }
  .chat-input-box .ask-btn {
    width: 100%;
    margin-top: 0.5rem;
    border-radius: 20px;
  }
}
/* Mic button */
.chat-input-box .mic-btn {
  background: transparent;
  border: none;
  color: #6da935;
  font-size: 1.4rem;
  padding: 0.4rem 0.75rem;
  border-radius: 50%;
  transition: background-color 0.2s ease;
}

.chat-input-box .mic-btn:hover {
  background-color: rgba(109, 169, 53, 0.1);
}

.ask-btn {
  background-color: #006064;
  color: #fff;
  border-radius: 20px;
  padding: 0.5rem 1.25rem;
  font-weight: 500;
  display: flex;
  align-items: center;
  gap: 0.4rem;
  transition: background 0.2s ease;
}

.ask-btn:hover {
  background-color: #004d4d;
}

.examples {
  max-width: 900px;
  margin: 0 auto;
}

/* Suggested prompt wrapper */
.examples-section {
  max-width: 100%;
  text-align: center;
}

/* Chat bubbles */

.carousel-wrapper {
  overflow-x: auto;
  overflow-y: hidden;
  width: 100%;
  cursor: grab;
  scroll-behavior: smooth;
  -webkit-overflow-scrolling: touch;
}

/* Two-row grid */
.carousel-inner {
  display: grid;
  grid-auto-flow: column;       /* flow horizontally */
  grid-template-rows: repeat(2, auto); /* exactly 2 rows */
  gap: 0.5rem 1rem;             /* row-gap & column-gap */
  min-width: max-content;       /* expand beyond container */
}

.chat-bubble {
  display: inline-block;
  padding: 0.6rem 1.2rem;
  font-size: 0.9rem;
  font-weight: 400;
  color: #444;
  background: linear-gradient(135deg, #fdfdfd, #f1f1f1);
  border-radius: 20px;
  box-shadow: 0 2px 6px rgba(0, 0, 0, 0.05);
  cursor: pointer;
  white-space: normal;
  transition: all 0.25s ease-in-out;
}

.chat-bubble:hover {
  background: linear-gradient(135deg, #e0f7fa, #f9ffff);
  transform: translateY(-2px);
  box-shadow: 0 4px 10px rgba(0, 96, 100, 0.15);
  color: #006064;
}

/* Hide scrollbar (optional) */
.carousel-wrapper {
  overflow-x: auto;
  overflow-y: hidden;
  width: 100%;
  cursor: grab;
  padding-bottom: 0.625rem;
  scroll-behavior: smooth;
  -webkit-overflow-scrolling: touch;
}
/* Hide scrollbar by default */
.carousel-wrapper::-webkit-scrollbar {
  height: 8px; /* horizontal scrollbar height */
  background: transparent;
}

/* Track (hidden until hover) */
.carousel-wrapper::-webkit-scrollbar-track {
  background: transparent;
}

/* Thumb (hidden until hover) */
.carousel-wrapper::-webkit-scrollbar-thumb {
  background: transparent;
  border-radius: 4px;
  transition: background 0.3s;
}

/* Show scrollbar only when hovering */
.carousel-wrapper:hover::-webkit-scrollbar-thumb {
  background: rgba(0, 96, 100, 0.4); /* teal-gray */
}

.carousel-wrapper:hover::-webkit-scrollbar-track {
  background: rgba(0, 0, 0, 0.05);
}


.feature-card {
  background: #fff;
  border:1px solid #f1cd66;
  border-radius: 16px;
  padding: 2rem 1.5rem;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.05);
  transition: transform 0.2s ease, box-shadow 0.2s ease;
  text-align: left;
  display: flex;
  flex-direction: column;
  justify-content: flex-start; /* aligns text at the top */
  height: 100%;
}

.feature-card h4 {
  font-size: 1.2rem;
  font-weight: 600;
  margin-bottom: 1rem;
  color: #2E3B4E;
}

.feature-card p {
  font-size: 0.9rem;
  color: #555;
  line-height: 1.5;
}

/* Hover effect like property cards */
.feature-card:hover {
  transform: translateY(-4px);
  box-shadow: 0 6px 16px rgba(0, 0, 0, 0.12);
}

/* Reduce space between example prompts and feature cards */
.examples-section {
  margin-bottom: 1rem; /* instead of default ~3rem (my-5) */
}

.feature-section {
  margin-top: 2rem; /* reduce gap */
}
}
/* Loader spinner inside button */
.btn-loading {
  position: relative;
  pointer-events: none; /* disable button while loading */
  opacity: 0.9;
}

.btn-loading::after {
  content: "";
  position: absolute;
  right: 1rem;
  top: 50%;
  transform: translateY(-50%);
  width: 1rem;
  height: 1rem;
  border: 2px solid #fff;
  border-top-color: transparent;
  border-radius: 50%;
  animation: spin 0.8s linear infinite;
}

@keyframes spin {
  100% {
    transform: translateY(-50%) rotate(360deg);
  }
}