/* Base */

/* ------------------------------
   HERO
   ------------------------------ */

.hero-section::before {
  background: transparent !important;
}

.hero-section {
  position: relative;
  min-height: 100vh;
  display: flex;
  align-items: center;
  justify-content: center;
  text-align: center;
}

.hero-section .overlay {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  z-index: 2;
}

.hero-content {
  position: relative;
  z-index: 3;
  color: #fff;
  padding-top: 30%;
  font-family: "Typhone" !important;
}

.hero-title {
  letter-spacing: 2px;
  margin: auto !important;
}

.hero-subtitle {
  font-size: 1.2rem;
  font-weight: 300;
  /* margin-top: 0.5rem; */
}

.divider {
  width: 60px;
  height: 2px;
  background: #d4af37;
}

.conflict-free-traceable {
  padding-top: 9rem;
  background: linear-gradient(180deg, #985333 0%, #e4cfc5 15%, #ffffff 60%);
}

/* Conflict-Free */
.conflict-free {
  /* background: linear-gradient(to bottom, #faf1eb, #fff); */
  color: #ffffff !important;
  font-family: "Source Sans 3";
  padding-top: 10rem !important;
  margin-bottom: 5%;
}

.conflict-free .conflict-free-desc {
  /* padding: 0 0 0 10% !important; */
  font-family: "Source Sans 3";
}

.conflict-free .list {
  font-weight: bold;
}

.conflict-free h2 {
  color: #ffffff;
  margin-bottom: 0.5rem;
  font-family: "Typhone";
}

.conflict-free .subtitle {
  /* font-size: 0.85rem; */
  text-transform: uppercase;
  letter-spacing: 1px;
  margin-bottom: 1rem;
  color: #ffffff;
  /* font-family: "Source Sans 3"; */
}

.conflict-image {
  object-fit: cover;
  object-position: right; /* push image flush right */
  height: 100%;
}
/* Traceable Craftsmanship */
.traceable {
  --steps: 6;
  position: relative;
  display: inline-block;
  height: calc(100vh * var(--steps));
}

.traceable img {
  display: block;
  width: 100%;
  border-radius: 10px;
  mix-blend-mode: multiply;
  margin-top: -10%;
}

.traceable .video-div {
  position: relative;
  z-index: -1;
  height: 100vh;
}

.traceable video {
  display: block;
  width: 100%;
  mix-blend-mode: multiply;
  margin-top: -10%;
  transition: opacity 0.6s ease;
  /* background-color: transparent !important; */
}

.traceable h1,
.subtitle {
  color: #fff;
}

.traceable .subtitle {
  margin-bottom: 2rem;
}

.traceable .small-text {
  font-size: 0.9rem;
  color: #555;
}

.traceable .traceable-content-top {
  margin: auto;
  width: 100%;
  position: relative;
  top: 5%;
}

.traceable .traceable-content-bottom {
  margin: auto;
  margin-top: -220px;
}

.traceable-content-bottom h3,
.traceable-content-bottom p {
  transition: opacity 0.5s ease;
  color: #ffffff;
}

.video-counter {
  position: absolute;
  top: 2rem;
  right: 2rem;
  background: rgba(138, 61, 46, 0.8);
  color: white;
  padding: 0.5rem 1rem;
  border-radius: 20px;
  font-size: 0.9rem;
  z-index: 3;
}

/* #skipTraceable{
  margin-top: -4%;
} */

/* Progress bar container */
.progress {
  position: absolute;
  top: 4.5vh;
  right: 40px;
  height: 90vh;
  width: 4px;
  background: #ddd;
}
@media (min-width: 1921px) {
  .progress {
    top: 8vh;
  }
}

/* Orange moving bar */
.progress-inner {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  background: #d67036;
  transition: height 0.4s ease;
  height: 0%;
}

/* Pin the video+UI while scrolling through the tall section */
#traceable .traceable-sticky {
  position: sticky;
  top: 0;
  height: 100vh;
  overflow: hidden;
  background: transparent;
}

.traceable-sticky video {
  position: sticky;
  top: 0;
}

/* (Optional) nice fade when texts change */
.traceable-content-bottom h3,
.traceable-content-bottom p {
  transition: opacity 0.25s ease;
}

/* .traceable {
  position: relative;
  height: 100vh;
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  text-align: center;
  padding-top: 20rem !important;
  overflow: hidden;
}

.traceable-content-top {
  margin-bottom: 2rem;
  z-index: 2;
}

#traceable-video {
  width: 100%;
  height: auto;
  border-radius: 10px;
  mix-blend-mode: multiply;
  z-index: 1;
}

.traceable-content-bottom {
  margin-top: 0rem;
  z-index: 5;
  max-width: 600px;
}

#traceable-title {
  color: #8a3d2e;
  font-size: 2rem;
  margin-bottom: 1rem;
}

.small-text {
  font-size: 0.9rem;
  color: #555;
  line-height: 1.6;
}
.video-info {
  position: absolute;
  bottom: 120px;
  left: 50%;
  transform: translateX(-50%);
  background: rgba(255, 255, 255, 0.9);
  padding: 1rem 2rem;
  border-radius: 10px;
  text-align: center;
  z-index: 2;
  min-width: 300px;
}

 */

/* Certificate */
.certificate {
  /* background: linear-gradient(to bottom, #ffffff); */
}

.certificate h2 {
  color: #8a3d2e;
  margin-bottom: 0.5rem;
}

.certificate .subtitle {
  color: #777;
  /* font-size: 0.9rem; */
  margin-bottom: 1rem;
}

/* Responsible */
.responsible {
  background: #fff;
}

.responsible h2 {
  color: #8a3d2e;
}

.responsible .subtitle {
  color: #555;
  /* font-size: 0.9rem; */
  margin-bottom: 1.5rem;
}

.map-container {
  width: 50%;
  margin: auto;
}

.marker {
  fill: red;
  stroke: white;
  stroke-width: 3px;
  cursor: pointer;
  transition: transform 0.2s ease;
}

/* Ripple effect using a pseudo-element */
.ripple {
  fill: red;
  opacity: 0.4;
  animation: ripple 1.5s infinite;
}

@keyframes ripple {
  0% {
    r: 8;
    opacity: 0.6;
  }
  100% {
    r: 25; /* expands */
    opacity: 0; /* fades */
  }
}

/* Tooltip (desktop only) */
.location-tooltip {
  position: absolute;
  background: #faf1eb;
  border-radius: 12px;
  padding: 20px;
  /* box-shadow: 0 4px 15px rgba(0,0,0,0.15); */
  text-align: left;
  width: 300px;
  display: none;
  pointer-events: none;
  z-index: 999;
}

.tooltip-title {
  font-family: "Typhone", sans-serif;
  font-size: 20px;
  font-weight: 400;
  color: #8b4513;
  margin-bottom: 12px;
}
.tooltip-address,
.tooltip-contact {
  font-size: 15px;
  line-height: 1.5;
  color: #222;
  margin-bottom: 10px;
}
.tooltip-address b,
.tooltip-contact b {
  color: #000;
  font-weight: 600;
}

/* Carousel (mobile only) */
.location-carousel {
  display: none;
  margin-top: 15px;
  overflow-x: auto;
  white-space: nowrap;
  scroll-snap-type: x mandatory;
  padding-bottom: 10px;
}
.location-card {
  display: inline-block;
  vertical-align: top;
  background: #fff;
  border-radius: 12px;
  padding: 20px;
  /* box-shadow: 0 4px 15px rgba(0,0,0,0.15); */
  text-align: left;
  width: 260px;
  margin-right: 15px;
  scroll-snap-align: start;
}
.location-card .title {
  font-size: 25px;
  font-weight: 600;
  color: #8b4513;
  margin-bottom: 10px;
}
.location-card .address,
.location-card .contact {
  font-size: 14px;
  line-height: 1.5;
  color: #222;
  margin-bottom: 8px;
}
.location-card b {
  font-weight: 600;
  color: #000;
}

/* Responsive switch */
.desktop-map {
  display: block;
}
.mobile-map {
  display: none;
}

@media (max-width: 768px) {
  .hero-content {
    padding-top: 100%;
  }
  .hero-image {
    content: url("../images/Provenance/journey_mobile.png");
  }
  .w-md-100 {
    width: 100% !important;
  }
  .traceable h1,
  .subtitle {
    color: #985333;
  }
  .traceable .traceable-content-bottom {
    margin-top: -210px;
  }
  .conflict-free-traceable {
    padding-top: 0rem !important;
  }
  .conflict-free-content,
  .conflict-free ul,
  .certificate p {
    font-size: 0.8rem !important;
  }
  .traceable {
    padding-top: 5rem !important;
  }
  .desktop-map {
    display: none;
  }
  .mobile-map {
    display: block;
    margin-top: 10px;
  }
  .circle-button {
    color: #985432;
  }
  /* Hide tooltips on mobile */
  .location-tooltip {
    display: none !important;
  }

  /* Show carousel */
  .location-carousel {
    display: block;
  }

  .map-container {
    width: 100%;
  }

  .traceable .traceable-content-top{
    position: absolute;
  }

  .traceable video {
    margin-top: -40% !important;
    height: 100vh !important;
    object-fit: fill !important;
    display: inline-block;
  }
}
