/* =========================================================
   ORIGINAL FUNERALHOME BASE DESIGN
   Keep this ABOVE the new multi-location CSS
   ========================================================= */


/* =========================================================
   GLOBAL
   ========================================================= */

html {
    scroll-behavior: smooth;
}

body {
    font-family: 'Lora', serif;
    background-color: #fdfaf7;
    color: #333;
    font-size: 1rem;
    line-height: 1.7;
    margin: 0;
}


/* =========================================================
   TYPOGRAPHY
   ========================================================= */

h1,
h2,
h3,
.navbar-brand {
    font-family: 'Playfair Display', serif;
    letter-spacing: 0.5px;
}

h2 {
    color: #3b2f2f;
    font-size: 2rem;
    border-left: 4px solid #b68d2f;
    padding-left: 15px;
}


/* =========================================================
   NAVBAR
   ========================================================= */

.classy-navbar {
    background-color: #191818 !important;
    font-family: 'Georgia', serif;
    padding: 0.75rem 1rem;
    z-index: 1030;
}


/* Funeral home name */

.classy-navbar .navbar-brand {
    color: #d4af37 !important;
    font-size: 1.4rem;
    letter-spacing: 1px;
    font-weight: 700;
}


.classy-navbar .navbar-brand:hover,
.classy-navbar .navbar-brand:focus {
    color: #ffffff !important;
}


/* Menu links */

.classy-navbar .nav-link {
    color: #f8f8f8 !important;
    font-weight: 500;
    margin-left: 1rem;
    transition: color 0.2s ease;
}


.classy-navbar .nav-link:hover,
.classy-navbar .nav-link:focus {
    color: #d4af37 !important;
}


/* =========================================================
   MOBILE NAVBAR BUTTON
   ========================================================= */

.classy-navbar .navbar-toggler {
    border-color: rgba(255, 255, 255, 0.65) !important;
}


.classy-navbar .navbar-toggler:hover {
    border-color: #ffffff !important;
}


.classy-navbar .navbar-toggler:focus {
    box-shadow: none;
}


.classy-navbar .navbar-toggler-icon {
    background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'%3e%3cpath stroke='rgba%28255,255,255,0.90%29' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e") !important;
}


/* =========================================================
   HERO
   ========================================================= */

.hero-header {
    position: relative;

    min-height: 430px;
    height: 50vh;

    padding: 140px 20px 60px;

    text-align: center;

    background-position: center center !important;
    background-size: cover !important;

    overflow: hidden;
}


/*
Your NEW Lambda already has this inline:

linear-gradient(rgba(...)), url(...)

Therefore don't use the very strong old .8 overlay here.
*/

.hero-header::before {
    content: "";

    position: absolute;

    inset: 0;

    background:
        linear-gradient(
            to bottom,
            rgba(0, 0, 0, 0.20),
            rgba(0, 0, 0, 0.05)
        );

    z-index: 1;

    pointer-events: none;
}


.hero-content {
    position: relative;

    z-index: 2;

    color: white;

    width: 100%;
}


.hero-header h1 {
    color: #ffffff;

    font-size: 2.8rem;

    font-weight: 700;

    margin-bottom: 10px;
}


.hero-header p {
    color: #ffffff;

    font-size: 1.25rem;

    font-family: 'Lora', serif;
}


.text-shadow {
    text-shadow:
        0 2px 5px rgba(0, 0, 0, 0.65);
}


/* =========================================================
   ABOUT
   ========================================================= */

.about img {
    width: 100%;

    max-height: 350px;

    object-fit: cover;

    border-radius: 8px;
}


#about p {
    font-family: 'Lora', serif;

    color: #555;

    font-size: 1.05rem;

    line-height: 1.8;
}


/* =========================================================
   SERVICES
   ========================================================= */

.services .card {
    border: none;

    background-color: transparent;
}


.services .list-group-item {
    border-radius: 8px !important;

    background: #ffffff;

    transition:
        transform 0.2s ease,
        box-shadow 0.2s ease;
}


.services .list-group-item:hover {
    transform: translateY(-2px);

    box-shadow:
        0 6px 16px rgba(0, 0, 0, 0.08) !important;
}


/* =========================================================
   FLOWER SHOP
   ========================================================= */

.flower-product {
    margin-bottom: 32px;
}


.flower-image {
    border-radius: 0.5rem;

    box-shadow:
        0 3px 10px rgba(111, 66, 193, 0.12);

    transition:
        transform 0.2s ease;
}


.flower-image:hover {
    transform: scale(1.03);
}


.btn-flower-buy {
    background: #6f42c1 !important;

    color: #ffffff !important;

    border: none !important;

    font-weight: 700;

    box-shadow:
        0 6px 14px rgba(111, 66, 193, 0.25);
}


.btn-flower-buy:hover {
    background: #5936a2 !important;

    color: #ffffff !important;
}


.btn-flower-explore {
    background: #5d5fef !important;

    color: #ffffff !important;

    border: none !important;

    font-weight: 700;

    box-shadow:
        0 8px 18px rgba(93, 95, 239, 0.22);
}


.btn-flower-explore:hover {
    background: #4447bc !important;

    color: #ffffff !important;
}


/* =========================================================
   GALLERY
   ========================================================= */

.gallery img {
    width: 100%;

    height: 220px;

    object-fit: cover;

    border-radius: 8px;
}


.gallery-item {
    overflow: hidden;
}


.gallery-img {
    width: 100%;

    height: 220px;

    object-fit: cover;

    transition:
        transform 0.3s ease,
        opacity 0.3s ease;
}


.gallery-img:hover {
    transform: scale(1.05);

    opacity: 0.9;

    cursor: pointer;
}


/* =========================================================
   FAQ
   ========================================================= */

.accordion-item .accordion-collapse.show .accordion-body {
    background-color: #fff7e6;

    border-top: 1px solid #ddd;

    color: #333;
}


.accordion-button {
    background-color: #f8f9fa;

    color: #333;

    font-family: 'Lora', serif;

    font-weight: 500;
}


.accordion-button:not(.collapsed) {
    background-color: #e9ecef;

    color: #000;

    box-shadow: none;
}


.accordion-button:focus {
    border-color: rgba(182, 141, 47, 0.4);

    box-shadow: none;
}


/* =========================================================
   REVIEWS
   ========================================================= */

.review-card {
    border:
        1px solid #eee7df;

    border-radius: 12px;

    padding: 24px;

    background: #ffffff;

    box-shadow:
        0 6px 18px rgba(0, 0, 0, 0.05);

    transition:
        transform 0.2s ease,
        box-shadow 0.2s ease;
}


.review-card:hover {
    transform: translateY(-3px);

    box-shadow:
        0 10px 24px rgba(0, 0, 0, 0.08);
}


.review-stars {
    color: #b68d2f;

    letter-spacing: 2px;

    margin-bottom: 12px;
}


/* =========================================================
   EXPLORE MORE FUNERAL HOMES
   ========================================================= */

#recommended .container {
    position: relative;
}


#funeralCarousel {
    scrollbar-width: none;

    -ms-overflow-style: none;

    scroll-behavior: smooth;
}


#funeralCarousel::-webkit-scrollbar {
    display: none;
}


.funeral-card {
    flex: 0 0 auto;
}


.card-fixed {
    min-width: 240px;

    max-width: 240px;

    height: 100%;

    border-radius: 12px;

    overflow: hidden;

    background: #ffffff;
}


.card-fixed .card-img-top {
    width: 100%;

    height: 150px;

    object-fit: cover;
}


.scroll-btn {
    position: absolute;

    top: 55%;

    transform:
        translateY(-50%);

    width: 40px;

    height: 40px;

    border: none;

    border-radius: 50%;

    background-color: #343a40;

    color: #ffffff;

    z-index: 10;

    font-size: 1.2rem;

    box-shadow:
        0 4px 10px rgba(0, 0, 0, 0.2);

    display: flex;

    align-items: center;

    justify-content: center;

    cursor: pointer;
}


.scroll-left {
    left: -20px;
}


.scroll-right {
    right: -20px;
}


.scroll-btn:hover {
    background-color: #b68d2f;
}


/* =========================================================
   FOOTER
   ========================================================= */

/*
Your screenshot shows white footer text on an almost-white
background. Force the footer back to the original dark color.
*/

.footer,
footer.footer,
.bg-footer {
    background-color: #2e2e2e !important;

    color: #f8f8f8 !important;
}


footer.footer {
    padding:
        45px 20px 0;

    text-align: left;

    font-size: 0.95rem;
}


/*
Your new Lambda uses:

<h2 class="h5 ... footer-title">

instead of the old <h5>.

Therefore explicitly reset global H2 styles.
*/

.footer h2,
.footer h3,
.footer h4,
.footer h5,
.footer .footer-title {
    font-family: 'Playfair Display', serif !important;

    color: #e9c78a !important;

    font-size: 1.1rem !important;

    line-height: 1.4;

    border-left: none !important;

    padding-left: 0 !important;

    margin-bottom: 15px;
}


/* Footer text */

.footer p,
.footer li,
.footer span,
.footer strong {
    color: #f1f1f1 !important;
}


.footer ul {
    padding-left: 0;

    margin-bottom: 0;
}


.footer li {
    margin-bottom: 7px;
}


/* Footer links */

.footer a {
    color: #f8f8f8 !important;

    text-decoration: none;
}


.footer a:hover {
    color: #d4af37 !important;

    text-decoration: underline;
}


/* Footer divider */

.footer hr {
    border: none;

    border-top:
        1px solid rgba(255, 255, 255, 0.20);

    opacity: 1;
}


/* =========================================================
   BOOTSTRAP BACKGROUND CONSISTENCY
   ========================================================= */

.bg-light {
    background-color: #f8f9fa !important;
}


/* =========================================================
   MOBILE
   ========================================================= */

@media (max-width: 991px) {

    .classy-navbar .navbar-collapse {
        background-color: #191818;

        padding:
            12px 0 16px;
    }


    .classy-navbar .nav-link {
        margin-left: 0;

        padding:
            8px 5px;
    }

}


@media (max-width: 768px) {

    .hero-header {
        min-height: 400px;

        height: auto;

        padding:
            125px 15px 55px;
    }


    .hero-header h1 {
        font-size: 2.15rem;
    }


    .hero-header p {
        font-size: 1.05rem;
    }


    .scroll-btn {
        display: none;
    }


    footer.footer {
        padding-left: 20px;

        padding-right: 20px;
    }

}


@media (max-width: 576px) {

    h2 {
        font-size: 1.7rem;
    }


    .classy-navbar .navbar-brand {
        max-width: 72%;

        font-size: 1.05rem;

        white-space: normal;

        line-height: 1.2;
    }


    .card-fixed {
        min-width: 215px;

        max-width: 215px;
    }

}

.locations-section {
  background: #fff;
}


/* Warning */

.location-warning {
  background: #fff8e1;

  border: 1px solid #ead9a4;
  border-left: 5px solid #b68d2f;

  border-radius: 10px;

  padding: 16px 18px;

  color: #5c5137;

  font-family: 'Lora', serif;
}




.location-tabs-wrap {
  position: relative;

  display: flex;

  align-items: center;

  gap: 10px;
}


.location-tabs {
  display: flex;

  gap: 10px;

  overflow-x: auto;

  scroll-behavior: smooth;

  scrollbar-width: none;

  -ms-overflow-style: none;

  padding: 4px 2px 10px;

  flex: 1;
}


.location-tabs::-webkit-scrollbar {
  display: none;
}




.location-tab {
  flex: 0 0 auto;

  border: 1px solid #d9d2ca;

  background: #fff;

  color: #3b2f2f;

  border-radius: 999px;

  padding: 10px 18px;

  font-family: 'Lora', serif;

  font-weight: 600;

  white-space: nowrap;

  transition:
    all 0.2s ease;
}


.location-tab:hover {
  border-color: #b68d2f;
  color: #8b681e;
}


.location-tab.active {
  background: #3b2f2f;

  border-color: #3b2f2f;

  color: #fff;

  box-shadow:
    0 5px 14px rgba(59, 47, 47, 0.18);
}




.location-scroll-control {
  width: 40px;
  height: 40px;

  flex: 0 0 40px;

  border: none;

  border-radius: 50%;

  background: #343a40;

  color: #fff;

  font-size: 1.6rem;

  line-height: 1;

  display: flex;

  align-items: center;

  justify-content: center;

  cursor: pointer;

  box-shadow:
    0 4px 10px rgba(0, 0, 0, 0.2);

  transition:
    background-color 0.2s ease;
}


.location-scroll-control:hover {
  background-color: #b68d2f;
}




.location-pane[hidden] {
  display: none !important;
}


.location-pane.active {
  animation:
    locationFade 0.22s ease;
}


@keyframes locationFade {

  from {
    opacity: 0.45;
    transform: translateY(3px);
  }

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

}



.location-info-card {
  background: #fff;

  border: 1px solid #eee7df;

  border-radius: 16px;

  padding: 28px;

  box-shadow:
    0 10px 30px rgba(0, 0, 0, 0.07);
}


.location-info-card h3 {
  color: #3b2f2f;
}


.location-info-card p {
  margin-bottom: 12px;

  overflow-wrap: anywhere;
}


.location-info-card a {
  color: #6f42c1;
  text-decoration: none;
}


.location-info-card a:hover {
  color: #5936a2;
  text-decoration: underline;
}


.location-badge {
  display: inline-flex;

  border-radius: 999px;

  background: #f4efe9;

  color: #6b5945;

  padding: 5px 10px;

  font-size: 0.8rem;

  font-weight: 700;
}


.location-label {
  color: #8a7762;

  font-weight: 600;
}




.map-placeholder {
  min-height: 360px;

  background: #f3f1ef;

  display: flex;

  align-items: center;

  justify-content: center;

  color: #777;

  padding: 30px;

  text-align: center;
}




#recommended .container {
  position: relative;
}


.scroll-btn {
  position: absolute;

  top: 55%;

  transform: translateY(-50%);

  width: 40px;
  height: 40px;

  border: none;

  border-radius: 50%;

  background-color: #343a40;

  color: #fff;

  z-index: 10;

  font-size: 1.2rem;

  box-shadow:
    0 4px 10px rgba(0, 0, 0, 0.2);

  display: flex;

  align-items: center;

  justify-content: center;

  cursor: pointer;
}


.scroll-left {
  left: -20px;
}


.scroll-right {
  right: -20px;
}


.scroll-btn:hover {
  background-color: #b68d2f;
}




#funeralCarousel {
  scrollbar-width: none;

  -ms-overflow-style: none;

  scroll-behavior: smooth;
}


#funeralCarousel::-webkit-scrollbar {
  display: none;
}




.funeral-card {
  flex: 0 0 auto;
}


.card-fixed {
  min-width: 240px;

  max-width: 240px;

  height: 100%;

  border-radius: 12px;

  overflow: hidden;

  background: #fff;
}


.card-fixed .card-img-top {
  width: 100%;

  height: 150px;

  object-fit: cover;
}


.card-fixed .card-body {
  padding: 1rem;
}




footer.footer {
  background-color: #2e2e2e;

  padding:
    3rem 20px 0;

  text-align: left;

  font-size: 0.95rem;
}


.bg-footer {
  background-color: #2e2e2e !important;
}


.footer {
  color: #f8f8f8;
}


.footer h2,
.footer h3,
.footer h4,
.footer h5,
.footer .footer-title {
  font-family: 'Playfair Display', serif;

  color: #e9c78a !important;

  font-size: 1.1rem;

  

  border-left: none !important;

  padding-left: 0 !important;
}


.footer p,
.footer li,
.footer span {
  color: #f1f1f1;
}


.footer ul {
  padding-left: 0;
}


.footer li {
  margin-bottom: 7px;
}


.footer a {
  color: #f8f8f8 !important;

  text-decoration: none;
}


.footer a:hover {
  color: #d4af37 !important;

  text-decoration: underline;
}


.footer hr {
  border-top:
    1px solid rgba(255, 255, 255, 0.15);

  opacity: 1;
}



@media (max-width: 991px) {

  .classy-navbar .nav-link {
    margin-left: 0;

    padding:
      0.65rem 0;
  }


  .navbar-collapse {
    padding-top: 10px;
  }

}


@media (max-width: 768px) {

  .hero-header {
    height: auto;

    min-height: 52vh;

    padding:
      130px 15px 60px;
  }


  .hero-header h1 {
    font-size: 2.15rem;
  }


  .hero-header p {
    font-size: 1.05rem;
  }


  .scroll-btn {
    display: none;
  }


  .location-scroll-control {
    display: none;
  }


  .location-tabs-wrap {
    gap: 0;
  }


  .location-info-card {
    padding: 22px;
  }


  footer.footer {
    text-align: left;
  }

}


@media (max-width: 576px) {

  h2 {
    font-size: 1.7rem;
  }


  .classy-navbar .navbar-brand {
    font-size: 1.05rem;

    max-width: 75%;

    white-space: normal;

    line-height: 1.2;
  }


  .location-tab {
    padding: 9px 15px;

    font-size: 0.9rem;
  }


  .card-fixed {
    min-width: 220px;

    max-width: 220px;
  }

}