/* Start custom CSS for html, class: .elementor-element-a59b9fd *//* =========================================
   JENVORA NECKLACES
   FULL WIDTH + RESPONSIVE
========================================= */

* {
  box-sizing: border-box;
}

html,
body {
  margin: 0 !important;
  padding: 0 !important;
  width: 100%;
  overflow-x: hidden;
}

body {
  font-family: Arial, Helvetica, sans-serif;
  background: #ffffff;
  color: #2b2025;
}


/* =========================================
   ELEMENTOR RESET
========================================= */

.elementor,
.elementor-section,
.elementor-container,
.elementor-column,
.elementor-widget-wrap,
.elementor-widget-html,
.elementor-widget-container {
  margin: 0 !important;
  padding: 0 !important;
}


/* =========================================
   MAIN PAGE
========================================= */

.jv-necklaces-page {
  width: 100vw;
  max-width: 100vw;

  margin-left: calc(50% - 50vw);
  margin-right: calc(50% - 50vw);

  background: #ffffff;
}


/* =========================================
   HERO
========================================= */

.jv-necklaces-hero {

  width: 100%;
  min-height: 330px;

  display: flex;
  align-items: center;
  justify-content: center;

  text-align: center;

  padding: 60px 20px;

  background:
    radial-gradient(
      circle at 20% 20%,
      rgba(255,255,255,.8),
      transparent 28%
    ),
    radial-gradient(
      circle at 80% 70%,
      rgba(194,24,91,.12),
      transparent 30%
    ),
    linear-gradient(
      135deg,
      #fff7fa 0%,
      #fdebf3 52%,
      #ffffff 100%
    );

  position: relative;
  overflow: hidden;
}


.jv-necklaces-hero::before {

  content: "✦";

  position: absolute;

  top: 35px;
  left: 10%;

  font-size: 38px;

  color: #d4af37;

  opacity: .45;
}


.jv-necklaces-hero::after {

  content: "✧";

  position: absolute;

  bottom: 30px;
  right: 12%;

  font-size: 48px;

  color: #c2185b;

  opacity: .2;
}


.jv-hero-content {
  position: relative;
  z-index: 2;
}


.jv-eyebrow {

  display: inline-block;

  color: #c2185b;

  font-size: 12px;

  font-weight: 800;

  letter-spacing: 3px;

  margin-bottom: 12px;
}


.jv-necklaces-hero h1 {

  margin: 0;

  color: #6f173d;

  font-family:
    Georgia,
    "Times New Roman",
    serif;

  font-size: clamp(42px, 6vw, 76px);

  line-height: 1;
}


.jv-necklaces-hero p {

  margin: 18px auto 0;

  max-width: 620px;

  color: #6c5b63;

  font-size: 17px;

  line-height: 1.7;
}


/* =========================================
   MAIN WRAPPER
========================================= */

.jv-necklaces-wrap {

  width: 100%;

  padding:
    45px
    5vw
    70px;
}


/* =========================================
   TOOLBAR
========================================= */

.jv-necklaces-toolbar {

  max-width: 1400px;

  margin: 0 auto 35px;

  display: flex;

  align-items: center;

  justify-content: space-between;

  gap: 20px;

  flex-wrap: wrap;
}


.jv-search-box {

  flex: 1 1 260px;
}


.jv-search-box input {

  width: 100%;

  min-height: 48px;

  border:
    1px solid
    #ead5de;

  border-radius: 30px;

  padding:
    0 20px;

  outline: none;

  font-size: 15px;

  background: #ffffff;

  transition: .25s ease;
}


.jv-search-box input:focus {

  border-color: #c2185b;

  box-shadow:
    0 0 0 4px
    rgba(194,24,91,.08);
}


/* =========================================
   FILTERS
========================================= */

.jv-filter-buttons {

  display: flex;

  gap: 9px;

  flex-wrap: wrap;
}


.jv-filter {

  border:
    1px solid
    #e4cbd5;

  background: #ffffff;

  color: #6f173d;

  padding:
    11px 19px;

  border-radius: 25px;

  cursor: pointer;

  font-size: 14px;

  font-weight: 700;

  transition: .25s ease;
}


.jv-filter:hover,
.jv-filter.active {

  background: #c2185b;

  border-color: #c2185b;

  color: #ffffff;
}


/* =========================================
   PRODUCT GRID
========================================= */

.jv-necklace-grid {

  width: 100%;

  max-width: 1400px;

  margin: 0 auto;

  display: grid;

  grid-template-columns:
    repeat(4, minmax(0, 1fr));

  gap: 25px;
}


/* =========================================
   PRODUCT CARD
========================================= */

.jv-product-card {

  min-width: 0;

  overflow: hidden;

  background: #ffffff;

  border:
    1px solid
    #f0dce4;

  border-radius: 22px;

  box-shadow:
    0 10px 30px
    rgba(80,20,45,.07);

  transition:
    transform .3s ease,
    box-shadow .3s ease;
}


.jv-product-card:hover {

  transform:
    translateY(-7px);

  box-shadow:
    0 18px 40px
    rgba(80,20,45,.13);
}


.jv-product-card[hidden] {

  display: none !important;
}


/* =========================================
   PRODUCT IMAGE
========================================= */

.jv-product-image {

  position: relative;

  width: 100%;

  aspect-ratio: 1 / 1;

  overflow: hidden;

  background: #fff7fa;
}


.jv-product-image img {

  display: block;

  width: 100%;

  height: 100%;

  object-fit: cover;

  transition:
    transform .45s ease;
}


.jv-product-card:hover
.jv-product-image img {

  transform:
    scale(1.055);
}


/* SALE BADGE */

.jv-sale-badge {

  position: absolute;

  z-index: 3;

  top: 14px;
  left: 14px;

  background: #c2185b;

  color: #ffffff;

  padding:
    7px 11px;

  border-radius: 20px;

  font-size: 11px;

  font-weight: 800;
}


/* WISHLIST */

.jv-wishlist {

  position: absolute;

  z-index: 3;

  top: 13px;
  right: 13px;

  width: 40px;
  height: 40px;

  border: 0;

  border-radius: 50%;

  background:
    rgba(255,255,255,.94);

  color: #c2185b;

  font-size: 22px;

  line-height: 40px;

  cursor: pointer;

  box-shadow:
    0 5px 16px
    rgba(0,0,0,.08);

  transition: .25s ease;
}


.jv-wishlist:hover,
.jv-wishlist.active {

  background: #c2185b;

  color: #ffffff;
}


/* =========================================
   PRODUCT INFO
========================================= */

.jv-product-info {

  padding:
    20px
    18px
    19px;
}


.jv-stock {

  display: inline-block;

  margin-bottom: 9px;

  color: #228b45;

  font-size: 12px;

  font-weight: 700;
}


.jv-product-info h2 {

  min-height: 48px;

  margin:
    0 0 9px;

  color: #351f28;

  font-family:
    Georgia,
    "Times New Roman",
    serif;

  font-size: 20px;

  line-height: 1.25;
}


/* RATING */

.jv-rating {

  color: #d4af37;

  font-size: 14px;

  font-weight: 800;

  letter-spacing: 1px;
}


.jv-rating span {

  color: #76666c;

  font-size: 11px;

  font-weight: 500;

  letter-spacing: 0;
}


/* PRICE */

.jv-price {

  display: flex;

  align-items: center;

  gap: 10px;

  margin:
    13px 0
    17px;
}


.jv-price del {

  color: #999999;

  font-size: 14px;
}


.jv-price strong {

  color: #c2185b;

  font-size: 23px;
}


/* =========================================
   BUTTONS
========================================= */

.jv-actions {

  display: grid;

  grid-template-columns:
    1fr 1fr;

  gap: 9px;
}


.jv-btn {

  display: flex;

  align-items: center;

  justify-content: center;

  min-height: 44px;

  padding:
    10px 8px;

  border-radius: 12px;

  text-decoration: none !important;

  font-size: 13px;

  font-weight: 800;

  transition: .25s ease;

  text-align: center;
}


.jv-view {

  color: #c2185b !important;

  background: #ffffff;

  border:
    1px solid
    #c2185b;
}


.jv-view:hover {

  color: #ffffff !important;

  background: #c2185b;
}


.jv-buy {

  color: #ffffff !important;

  background:
    linear-gradient(
      135deg,
      #c2185b,
      #8f1244
    );

  border:
    1px solid
    #c2185b;

  box-shadow:
    0 7px 16px
    rgba(194,24,91,.2);
}


.jv-buy:hover {

  color: #ffffff !important;

  transform:
    translateY(-2px);

  box-shadow:
    0 10px 22px
    rgba(194,24,91,.3);
}


/* =========================================
   NO RESULTS
========================================= */

.jv-no-results {

  display: none;

  max-width: 1400px;

  margin: 30px auto;

  padding: 35px 20px;

  text-align: center;

  color: #76666c;

  background: #fff7fa;

  border-radius: 18px;
}


.jv-no-results.show {

  display: block;
}


/* =========================================
   CTA
========================================= */

.jv-necklaces-cta {

  max-width: 1400px;

  margin:
    65px auto 0;

  padding:
    55px 25px;

  text-align: center;

  border-radius: 28px;

  background:
    linear-gradient(
      135deg,
      #fff7fa,
      #fbe5ef
    );

  border:
    1px solid
    #f0d3df;
}


.jv-necklaces-cta span {

  color: #c2185b;

  font-size: 13px;

  font-weight: 800;

  letter-spacing: 1.5px;

  text-transform: uppercase;
}


.jv-necklaces-cta h2 {

  margin:
    10px 0
    22px;

  color: #6f173d;

  font-family:
    Georgia,
    "Times New Roman",
    serif;

  font-size:
    clamp(28px,4vw,44px);
}


.jv-cta-btn {

  display: inline-flex;

  align-items: center;

  justify-content: center;

  min-height: 48px;

  padding:
    0 25px;

  border-radius: 28px;

  color: #ffffff !important;

  background: #c2185b;

  text-decoration: none !important;

  font-weight: 800;

  transition: .25s ease;
}


.jv-cta-btn:hover {

  color: #ffffff !important;

  background: #8f1244;

  transform:
    translateY(-2px);
}


/* =========================================
   TABLET
========================================= */

@media (max-width: 1100px) {

  .jv-necklaces-wrap {

    padding-left: 3vw;
    padding-right: 3vw;
  }

  .jv-necklace-grid {

    grid-template-columns:
      repeat(2,minmax(0,1fr));

    gap: 20px;
  }
}


/* =========================================
   MOBILE
========================================= */

@media (max-width: 600px) {

  .jv-necklaces-hero {

    min-height: 260px;

    padding:
      45px 18px;
  }


  .jv-necklaces-hero h1 {

    font-size: 43px;
  }


  .jv-necklaces-hero p {

    font-size: 14px;

    line-height: 1.55;
  }


  .jv-necklaces-wrap {

    padding:
      25px 12px
      45px;
  }


  .jv-necklaces-toolbar {

    margin-bottom: 22px;

    gap: 13px;
  }


  .jv-filter-buttons {

    width: 100%;

    overflow-x: auto;

    flex-wrap: nowrap;

    padding-bottom: 3px;

    scrollbar-width: none;
  }


  .jv-filter-buttons::-webkit-scrollbar {

    display: none;
  }


  .jv-filter {

    flex: 0 0 auto;

    padding:
      9px 14px;

    font-size: 12px;
  }


  .jv-necklace-grid {

    grid-template-columns:
      repeat(2,minmax(0,1fr));

    gap: 11px;
  }


  .jv-product-card {

    border-radius: 14px;
  }


  .jv-product-image {

    aspect-ratio:
      1 / 1.08;
  }


  .jv-sale-badge {

    top: 8px;
    left: 8px;

    padding:
      5px 7px;

    font-size: 9px;
  }


  .jv-wishlist {

    top: 7px;
    right: 7px;

    width: 32px;
    height: 32px;

    line-height: 32px;

    font-size: 18px;
  }


  .jv-product-info {

    padding:
      12px 9px
      11px;
  }


  .jv-stock {

    font-size: 9px;

    margin-bottom: 5px;
  }


  .jv-product-info h2 {

    min-height: 42px;

    font-size: 14px;

    line-height: 1.25;

    margin-bottom: 6px;
  }


  .jv-rating {

    font-size: 10px;

    letter-spacing: .5px;

    white-space: nowrap;
  }


  .jv-rating span {

    display: block;

    margin-top: 2px;

    font-size: 9px;
  }


  .jv-price {

    gap: 5px;

    margin:
      9px 0
      11px;

    flex-wrap: wrap;
  }


  .jv-price del {

    font-size: 10px;
  }


  .jv-price strong {

    font-size: 16px;
  }


  .jv-actions {

    grid-template-columns: 1fr;

    gap: 6px;
  }


  .jv-btn {

    min-height: 37px;

    border-radius: 9px;

    font-size: 11px;
  }


  .jv-necklaces-cta {

    margin-top: 38px;

    padding:
      35px 17px;

    border-radius: 20px;
  }


  .jv-necklaces-cta h2 {

    font-size: 28px;
  }
}


/* =========================================
   SMALL MOBILE
========================================= */

@media (max-width: 380px) {

  .jv-necklace-grid {

    gap: 8px;
  }


  .jv-product-info {

    padding:
      10px 7px;
  }


  .jv-product-info h2 {

    font-size: 13px;
  }


  .jv-price strong {

    font-size: 15px;
  }


  .jv-btn {

    font-size: 10px;
  }
}


/* =========================================
   ELEMENTOR GAP FIX
========================================= */

.elementor:has(.jv-necklaces-page),
.elementor-section:has(.jv-necklaces-page),
.elementor-container:has(.jv-necklaces-page),
.elementor-column:has(.jv-necklaces-page),
.elementor-widget-wrap:has(.jv-necklaces-page) {

  margin: 0 !important;
  padding: 0 !important;
}
'''

Path("/mnt/data/necklaces.html").write_text(html, encoding="utf-8")
Path("/mnt/data/necklaces.css").write_text(css, encoding="utf-8")
print("Files created successfully.")
print("/mnt/data/necklaces.html")
print("/mnt/data/necklaces.css")/* End custom CSS */