/* =========================================================
   SECRET FOOTPATH — SELECTED PLACES / PLACE CARD
   ========================================================= */


/* =========================================================
   LISTING GRID
   ========================================================= */

.sf-selected-places-grid {
  width: 100% !important;
  max-width: none !important;
}

.sf-selected-places-grid .jet-listing-grid {
  width: 100% !important;
  max-width: none !important;
}

.sf-selected-places-grid .jet-listing-grid__items {
  display: grid !important;

  grid-template-columns: repeat(4, minmax(0, 1fr)) !important;

  width: 100% !important;
  max-width: none !important;

  column-gap: 28px !important;
  row-gap: 48px !important;

  margin: 0 !important;
  padding: 0 !important;
}

.sf-selected-places-grid .jet-listing-grid__item {
  width: 100% !important;
  max-width: none !important;
  min-width: 0 !important;

  margin: 0 !important;
  padding: 0 !important;

  flex: none !important;
}

.sf-selected-places-grid .jet-listing-grid__item > * {
  width: 100% !important;
  max-width: none !important;
  height: 100% !important;
}


/* =========================================================
   PLACE CARD
   ========================================================= */

.sf-place-card {
  display: flex !important;
  flex-direction: column !important;

  justify-content: flex-start !important;
  align-items: stretch !important;

  position: relative !important;

  width: 100% !important;
  max-width: none !important;
  min-width: 0 !important;

  height: 100% !important;
  min-height: 0 !important;

  margin: 0 !important;
  padding: 0 !important;

  gap: 0 !important;

  background: #FFFAF4 !important;
  color: #17130F !important;

  text-decoration: none !important;

  border-radius: 8px !important;

  overflow: hidden !important;

  box-shadow:
    0 0 0 1px rgba(23, 19, 15, 0.02);

  transition:
    box-shadow 220ms ease;
}

.sf-place-card:hover {
  color: #17130F !important;
  text-decoration: none !important;

  transform: none !important;
  top: auto !important;

  box-shadow:
    0 10px 28px rgba(23, 19, 15, 0.06);
}

.sf-place-card *,
.sf-place-card *::before,
.sf-place-card *::after {
  box-sizing: border-box;
}

.sf-place-card > .elementor-element,
.sf-place-card .elementor-element,
.sf-place-card .elementor-widget,
.sf-place-card .elementor-widget-container {
  margin-block-start: 0 !important;
  margin-block-end: 0 !important;
}

.sf-place-card p,
.sf-place-card h1,
.sf-place-card h2,
.sf-place-card h3,
.sf-place-card h4,
.sf-place-card h5,
.sf-place-card h6 {
  margin-top: 0 !important;
  margin-bottom: 0 !important;
}


/* =========================================================
   CARD IMAGE WRAPPER
   ========================================================= */

.sf-place-card-image-wrap {
  position: relative !important;

  display: block !important;

  width: 100% !important;
  max-width: none !important;

  margin: 0 !important;
  padding: 0 !important;

  overflow: hidden !important;

  flex: 0 0 auto !important;
}


/* =========================================================
   CARD IMAGE
   ========================================================= */

.sf-place-card-image {
  display: block !important;

  width: 100% !important;
  max-width: none !important;

  aspect-ratio: 1.42 / 1 !important;

  margin: 0 !important;
  padding: 0 !important;

  overflow: hidden !important;

  flex: 0 0 auto !important;
}

.sf-place-card-image,
.sf-place-card-image .elementor-widget-container,
.sf-place-card-image .jet-listing-dynamic-image,
.sf-place-card-image .jet-listing-dynamic-image__link,
.sf-place-card-image a {
  width: 100% !important;
  height: 100% !important;

  margin: 0 !important;
  padding: 0 !important;
}

.sf-place-card-image img {
  display: block !important;

  width: 100% !important;
  height: 100% !important;

  max-width: none !important;

  margin: 0 !important;
  padding: 0 !important;

  object-fit: cover !important;
  object-position: center !important;

  vertical-align: top !important;

  transform: none !important;
  transition: none !important;
}

.sf-place-card:hover .sf-place-card-image img {
  transform: none !important;
}


/* =========================================================
   FAVORITE — DATA STORE BUTTON
   ========================================================= */

.sf-place-card-favorite {
  position: absolute !important;

  top: 14px !important;
  right: 14px !important;

  /*
   * VAŽNO:
   * mora biti IZNAD full-card overlay linka.
   */
  z-index: 30 !important;

  display: flex !important;
  align-items: center !important;
  justify-content: center !important;

  width: 38px !important;
  height: 38px !important;

  margin: 0 !important;
  padding: 0 !important;

  border-radius: 50% !important;

  background: rgba(255, 250, 244, 0.88) !important;

  border:
    1px solid rgba(23, 19, 15, 0.07) !important;

  box-shadow:
    0 2px 10px rgba(23, 19, 15, 0.08);

  cursor: pointer !important;

  color: #17130F !important;

  transition:
    background-color 180ms ease,
    border-color 180ms ease,
    box-shadow 180ms ease,
    color 180ms ease,
    transform 180ms ease;
}

.sf-place-card-favorite .elementor-widget-container {
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;

  width: 100% !important;
  height: 100% !important;

  margin: 0 !important;
  padding: 0 !important;
}

.sf-place-card-favorite .jet-data-store-link {
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;

  width: 100% !important;
  height: 100% !important;

  margin: 0 !important;
  padding: 0 !important;

  border: 0 !important;
  border-radius: 50% !important;

  background: transparent !important;

  color: #17130F !important;

  text-decoration: none !important;
}

.sf-place-card-favorite .jet-data-store-link__label {
  display: none !important;
}

.sf-place-card-favorite .jet-data-store-link__icon {
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;

  width: 16px !important;
  height: 16px !important;

  margin: 0 !important;
  padding: 0 !important;

  color: #17130F !important;
}

.sf-place-card-favorite .jet-data-store-link__icon svg {
  display: block !important;

  width: 16px !important;
  height: 16px !important;

  color: currentColor !important;
}

.sf-place-card-favorite
.jet-data-store-link__icon
svg path {
  fill: currentColor !important;
}


/* =========================================================
   FAVORITE — HOVER
   ========================================================= */

.sf-place-card-favorite:hover {
  background: #FFFAF4 !important;

  border-color:
    rgba(23, 19, 15, 0.13) !important;

  box-shadow:
    0 4px 14px rgba(23, 19, 15, 0.12);

  transform: scale(1.10) !important;
}

.sf-place-card-favorite:hover
.jet-data-store-link:not(.in-store)
.jet-data-store-link__icon,

.sf-place-card-favorite:hover
.jet-data-store-link:not(.in-store)
.jet-data-store-link__icon svg {
  color: #A58B5B !important;
}


/* =========================================================
   FAVORITE — SAVED STATE
   ========================================================= */

.sf-place-card-favorite
.jet-data-store-link.in-store {
  background: #A58B5B !important;

  color: #FFFAF4 !important;

  border-radius: 50% !important;
}

.sf-place-card-favorite
.jet-data-store-link.in-store
.jet-data-store-link__icon,

.sf-place-card-favorite
.jet-data-store-link.in-store
.jet-data-store-link__icon svg {
  color: #FFFAF4 !important;
}

.sf-place-card-favorite
.jet-data-store-link.in-store
.jet-data-store-link__icon
svg path {
  fill: #FFFAF4 !important;
}

.sf-place-card-favorite:has(.jet-data-store-link.in-store) {
  background: #A58B5B !important;

  border-color: #A58B5B !important;

  box-shadow:
    0 4px 14px rgba(43, 41, 38, 0.18) !important;
}

.sf-place-card-favorite:focus-visible {
  outline:
    2px solid rgba(23, 19, 15, 0.85) !important;

  outline-offset: 3px !important;
}


/* =========================================================
   META
   ========================================================= */

.sf-place-card-meta {
  display: flex !important;
  flex-direction: row !important;

  align-items: center !important;
  justify-content: flex-start !important;

  flex-wrap: wrap !important;

  width: 100% !important;

  gap: 6px !important;

  margin: 0 !important;

  padding:
    14px
    14px
    0
    14px !important;

  min-height: 0 !important;
}


/* =========================================================
   TAXONOMY PILLS
   ========================================================= */

.sf-place-card-destination,
.sf-place-card-type {
  display: inline-flex !important;

  align-items: center !important;

  width: auto !important;

  margin: 0 !important;

  padding:
    4px
    8px !important;

  font-family: "Inter", sans-serif !important;

  font-size: 8.8px !important;
  font-weight: 600 !important;

  line-height: 1.15 !important;

  letter-spacing: 1px !important;

  text-transform: uppercase !important;

  white-space: nowrap !important;

  color:
    rgba(23, 19, 15, 0.60) !important;

  background:
    rgba(23, 19, 15, 0.028) !important;

  border:
    1px solid rgba(23, 19, 15, 0.04) !important;

  border-radius: 999px !important;
}


/* =========================================================
   META SEPARATOR
   ========================================================= */

.sf-place-card-separator {
  display: inline-flex !important;

  align-items: center !important;

  margin: 0 !important;
  padding: 0 !important;

  font-family: "Inter", sans-serif !important;

  font-size: 8px !important;
  font-weight: 600 !important;

  line-height: 1 !important;

  color:
    rgba(23, 19, 15, 0.18) !important;
}

.sf-place-card-destination *,
.sf-place-card-type *,
.sf-place-card-separator * {
  margin: 0 !important;
  padding: 0 !important;

  font: inherit !important;

  line-height: inherit !important;
  letter-spacing: inherit !important;

  text-transform: inherit !important;

  color: inherit !important;

  background: transparent !important;

  border: 0 !important;
}


/* =========================================================
   TITLE
   ========================================================= */

.sf-place-card-title {
  display: block !important;

  width: 100% !important;

  margin: 0 !important;

  padding:
    12px
    14px
    0
    14px !important;

  min-height: 0 !important;
}

.sf-place-card-title,
.sf-place-card-title * {
  font-family:
    "Cormorant Garamond",
    serif !important;

  font-size: 27.5px !important;
  font-weight: 500 !important;

  line-height: 1 !important;

  letter-spacing: -0.25px !important;

  color: #17130F !important;

  text-decoration: none !important;
}

.sf-place-card-title * {
  margin: 0 !important;
  padding: 0 !important;
}

.sf-place-card-title::before,
.sf-place-card-title::after {
  content: none !important;

  display: none !important;
}


/* =========================================================
   EXCERPT
   ========================================================= */

.sf-place-card-excerpt {
  display: block !important;

  width: calc(100% - 14px) !important;

  max-width: 34em !important;

  margin: 0 !important;

  padding:
    8px
    14px
    0
    14px !important;

  min-height: 0 !important;
}

.sf-place-card-excerpt,
.sf-place-card-excerpt * {
  font-family:
    "Inter",
    sans-serif !important;

  font-size: 13.2px !important;
  font-weight: 400 !important;

  line-height: 1.58 !important;

  letter-spacing: 0 !important;

  color:
    rgba(23, 19, 15, 0.68) !important;
}

.sf-place-card-excerpt * {
  margin: 0 !important;
  padding: 0 !important;
}


/* =========================================================
   READ MORE — VISUAL LABEL
   ========================================================= */

.sf-place-card::after {
  content: "READ MORE  →";

  display: block !important;

  width: 100% !important;

  margin-top: auto !important;

  padding:
    17px
    14px
    18px
    14px !important;

  font-family:
    "Inter",
    sans-serif !important;

  font-size: 10.2px !important;
  font-weight: 600 !important;

  line-height: 1 !important;

  letter-spacing: 1.35px !important;

  text-transform: uppercase !important;

  color: #17130F !important;

  opacity: 0.84;

  transition:
    opacity 180ms ease;
}

.sf-place-card:hover::after {
  opacity: 1;
}


/* =========================================================
   FULL CARD LINK OVERLAY
   ---------------------------------------------------------
   Dynamic Link widget:
   Navigator = Place Card Link Overlay
   CSS class = sf-place-card-link-overlay
   ========================================================= */

.sf-place-card-link-overlay {
  position: absolute !important;

  inset: 0 !important;

  z-index: 20 !important;

  display: block !important;

  width: 100% !important;
  height: 100% !important;

  margin: 0 !important;
  padding: 0 !important;

  pointer-events: none !important;
}


/* Elementor wrapper */

.sf-place-card-link-overlay
.elementor-widget-container {
  position: absolute !important;

  inset: 0 !important;

  width: 100% !important;
  height: 100% !important;

  margin: 0 !important;
  padding: 0 !important;

  pointer-events: none !important;
}


/* JetEngine Dynamic Link */

.sf-place-card-link-overlay
.jet-listing-dynamic-link {
  position: absolute !important;

  inset: 0 !important;

  display: block !important;

  width: 100% !important;
  height: 100% !important;

  margin: 0 !important;
  padding: 0 !important;

  pointer-events: none !important;
}


/* Actual clickable <a> */

.sf-place-card-link-overlay
.jet-listing-dynamic-link__link,

.sf-place-card-link-overlay a {
  position: absolute !important;

  inset: 0 !important;

  display: block !important;

  width: 100% !important;
  height: 100% !important;

  margin: 0 !important;
  padding: 0 !important;

  background: transparent !important;

  border: 0 !important;

  color: transparent !important;

  font-size: 0 !important;
  line-height: 0 !important;

  text-indent: -9999px !important;

  text-decoration: none !important;

  cursor: pointer !important;

  pointer-events: auto !important;
}


/* No visual content from overlay link */

.sf-place-card-link-overlay
.jet-listing-dynamic-link__link::before,

.sf-place-card-link-overlay
.jet-listing-dynamic-link__link::after,

.sf-place-card-link-overlay
a::before,

.sf-place-card-link-overlay
a::after {
  content: none !important;

  display: none !important;
}


/* =========================================================
   IMPORTANT INTERACTION LAYERS
   ---------------------------------------------------------
   Overlay = 20
   Favorite = 30

   Zato je CIJELA kartica link,
   ali favorite button ostaje zasebno klikabilan.
   ========================================================= */

.sf-place-card-favorite {
  z-index: 30 !important;
}


/* =========================================================
   KEYBOARD ACCESSIBILITY
   ========================================================= */

.sf-place-card:has(
  .sf-place-card-link-overlay a:focus-visible
) {
  outline:
    2px solid #A58B5B !important;

  outline-offset: 3px !important;
}


/* =========================================================
   TABLET
   ========================================================= */

@media (max-width: 1024px) {

  .sf-selected-places-grid
  .jet-listing-grid__items {
    grid-template-columns:
      repeat(2, minmax(0, 1fr)) !important;

    column-gap: 24px !important;
    row-gap: 40px !important;
  }

  .sf-place-card-title,
  .sf-place-card-title * {
    font-size: 27px !important;
  }
}


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

@media (max-width: 767px) {

  .sf-selected-places-grid
  .jet-listing-grid__items {
    grid-template-columns:
      1fr !important;

    row-gap: 32px !important;
  }


  /* IMAGE */

  .sf-place-card-image {
    aspect-ratio:
      1.42 / 1 !important;
  }


  /* FAVORITE */

  .sf-place-card-favorite {
    top: 12px !important;
    right: 12px !important;

    width: 36px !important;
    height: 36px !important;
  }

  .sf-place-card-favorite
  .jet-data-store-link__icon {
    width: 15px !important;
    height: 15px !important;
  }

  .sf-place-card-favorite
  .jet-data-store-link__icon
  svg {
    width: 15px !important;
    height: 15px !important;
  }


  /* META */

  .sf-place-card-meta {
    padding:
      12px
      13px
      0
      13px !important;

    gap: 5px !important;
  }

  .sf-place-card-destination,
  .sf-place-card-type {
    font-size: 8.4px !important;

    letter-spacing:
      0.9px !important;

    padding:
      4px
      7px !important;
  }


  /* TITLE */

  .sf-place-card-title {
    padding:
      11px
      13px
      0
      13px !important;
  }

  .sf-place-card-title,
  .sf-place-card-title * {
    font-size: 26px !important;

    line-height: 1 !important;
  }


  /* EXCERPT */

  .sf-place-card-excerpt {
    width:
      calc(100% - 13px) !important;

    padding:
      8px
      13px
      0
      13px !important;
  }

  .sf-place-card-excerpt,
  .sf-place-card-excerpt * {
    font-size: 13px !important;
  }


  /* READ MORE */

  .sf-place-card::after {
    padding:
      16px
      13px
      17px
      13px !important;

    font-size: 10px !important;
  }
}