:root{
  --wceu-navy:#2D4068;
  --wceu-teal:#2CB7AE;
  --wceu-sky:#41AAD2;
  --wceu-white:#ffffff;
}

.wc-eu-products-map-wrap{width:100%;}
.wc-eu-products-map{width:100%; height:100%; border-radius:18px; overflow:hidden; min-height:320px; box-shadow:0 12px 30px rgba(0,0,0,.08);}
.wc-eu-map-popup{font-family:system-ui,-apple-system,Segoe UI,Roboto,Arial,sans-serif;max-width:260px}
.wc-eu-map-popup a{color:inherit;text-decoration:none}
.wc-eu-map-popup .city{font-weight:900;font-size:14px;margin:0 0 6px 0;color:var(--wceu-navy)}
.wc-eu-map-popup .title{font-weight:800;margin:6px 0 4px 0;line-height:1.2}
.wc-eu-map-popup .price{font-weight:900;margin-top:6px}
.wc-eu-map-popup .addr{opacity:.85;font-size:12px;line-height:1.25}
.wc-eu-map-popup img{width:100%;height:auto;border-radius:12px;display:block}

.leaflet-container{background:#eaf6ff;} /* mare */

/* Country labels */
.wceu-country-label{
  background: rgba(255,255,255,0);
  border: none;
  box-shadow: none;
  padding: 0;
  color: rgba(45,64,104,.55);
  font-weight: 950;
  letter-spacing: .6px;
  text-transform: uppercase;
  font-size: 11px;
  text-shadow: 0 2px 0 rgba(255,255,255,1), 0 0 10px rgba(255,255,255,1);
}
.wceu-country-label:before{display:none;}

/* Product markers */
.wceu-product-pin{ background: transparent !important; border: none !important; }
.wceu-product-pin__inner{
  display:block;
  width:14px;
  height:14px;
  border-radius:999px;
  background: var(--wceu-navy);
  border:3px solid #ffffff;
  box-shadow: 0 8px 18px rgba(45,64,104,.25);
}

/* City hover labels */
.wceu-city-hover{
  background: rgba(255,255,255,0);
  border: none;
  box-shadow: none;
  padding: 0;
  color: rgba(45,64,104,.95);
  font-weight: 950;
  font-size: 12px;
  text-shadow: 0 2px 0 rgba(255,255,255,1), 0 0 10px rgba(255,255,255,1);
}
.wceu-city-hover:before{display:none;}

/* Shared slider UI */
.wceu-slides{margin-top:22px;}
.wceu-slide-group{margin-top:22px;}
.wceu-slide-title{margin:0 0 12px 0; font-size:26px; line-height:1.15; font-weight:1000; letter-spacing:.2px; color:var(--wceu-navy);}

.wceu-slider{position:relative;}
.wceu-track{
  display:flex;
  gap:14px;
  overflow:auto;
  scroll-snap-type:x mandatory;
  scroll-behavior:smooth;
  padding: 6px 44px 14px 44px;
}
.wceu-track::-webkit-scrollbar{height:10px}
.wceu-track::-webkit-scrollbar-thumb{background:rgba(45,64,104,.18); border-radius:999px}
.wceu-track::-webkit-scrollbar-track{background:transparent}

.wceu-arrow{
  position:absolute;
  top: 40%;
  transform: translateY(-50%);
  width:36px;
  height:36px;
  border:none;
  border-radius:999px;
  background:#ffffff;
  box-shadow: 0 10px 20px rgba(0,0,0,.12);
  color:var(--wceu-navy);
  font-size:20px;
  font-weight:1000;
  cursor:pointer;
  z-index:3;
}
.wceu-arrow--prev{left:6px;}
.wceu-arrow--next{right:6px;}
.wceu-arrow:hover{transform: translateY(-50%) scale(1.05);}

.wceu-dots{
  display:flex;
  gap:8px;
  justify-content:center;
  padding: 6px 0 0 0;
}
.wceu-dot{
  width:22px;
  height:4px;
  border:none;
  border-radius:999px;
  background: rgba(45,64,104,.18);
}
.wceu-dot.is-active{background: var(--wceu-teal);}

/* Product card (grouped sliders) */
.wceu-prod-card{
  position:relative;
  flex: 0 0 calc(25% - 10.5px);
  min-width: 210px;
  height: 240px;
  scroll-snap-align:start;
  text-decoration:none;
  color:#fff;
  border-radius:18px;
  overflow:hidden;
  box-shadow: 0 14px 34px rgba(0,0,0,.14);
  background: var(--wceu-navy);
  background-image: var(--bg);
  background-size: cover;
  background-position: center;
}
@media (max-width: 1100px){ .wceu-prod-card{flex-basis: calc(33.333% - 9.5px);} }
@media (max-width: 800px){ .wceu-prod-card{flex-basis: calc(50% - 7px); height: 220px;} }
@media (max-width: 520px){ .wceu-prod-card{flex-basis: 88%; height: 220px;} }

.wceu-prod-overlay{
  position:absolute; inset:0;
  background: linear-gradient(180deg, rgba(0,0,0,.10) 0%, rgba(45,64,104,.55) 70%, rgba(45,64,104,.82) 100%);
}
.wceu-prod-meta{
  position:absolute; left:14px; right:14px; bottom:14px;
  z-index:2;
}
.wceu-prod-cat{
  display:inline-flex;
  padding:6px 10px;
  border-radius:999px;
  background: rgba(255,255,255,.16);
  backdrop-filter: blur(6px);
  font-weight:950;
  font-size:12px;
  letter-spacing:.4px;
  margin-bottom:10px;
}
.wceu-prod-title{
  font-weight:1000;
  font-size:16px;
  line-height:1.15;
  text-shadow: 0 6px 16px rgba(0,0,0,.30);
}
.wceu-prod-price{
  margin-top:8px;
  font-weight:1000;
  font-size:14px;
  opacity:.98;
}
.wceu-prod-price del{opacity:.7}
.wceu-prod-price ins{text-decoration:none}

/* WOW carousel */
.wceu-wow{margin-top:24px;}
.wceu-wow-title{margin:0 0 12px 0; font-size:28px; line-height:1.12; font-weight:1100; letter-spacing:.2px; color:var(--wceu-navy);}

/* arrows OUTSIDE + no background (WOW only) */
.wceu-slider--wow .wceu-arrow{
  background: transparent;
  box-shadow: none;
  width: 46px;
  height: 46px;
  font-size: 56px;
  line-height: 46px;
  color: var(--wceu-navy);
  opacity: .95;
}
.wceu-slider--wow .wceu-arrow--prev{left:-56px;}
.wceu-slider--wow .wceu-arrow--next{right:-56px;}
.wceu-slider--wow .wceu-arrow:hover{
  transform: translateY(-50%) scale(1.05);
  color: var(--wceu-teal);
}
@media (max-width: 900px){
  .wceu-slider--wow .wceu-arrow--prev{left:8px;}
  .wceu-slider--wow .wceu-arrow--next{right:8px;}
  .wceu-slider--wow .wceu-arrow{
    background: rgba(255,255,255,.92);
    box-shadow: 0 10px 22px rgba(0,0,0,.12);
    border-radius: 999px;
    width: 36px;
    height: 36px;
    font-size: 22px;
    line-height: 36px;
  }
}

.wceu-track--wow{padding: 10px 56px 18px 56px;}

.wceu-wow-card{
  position:relative;
  flex: 0 0 320px;
  min-width: 320px;
  height: 420px;
  border-radius: 24px;
  overflow:hidden;
  scroll-snap-align: start;
  text-decoration:none;
  color:#fff;
  background: var(--wceu-navy);
  background-image: var(--bg);
  background-size: cover;
  background-position: center;
  box-shadow: 0 26px 70px rgba(0,0,0,.18);
  transform: translateZ(0);
  transition: transform .25s ease, box-shadow .25s ease, filter .25s ease;
  isolation:isolate;
}
.wceu-wow-card:hover{
  transform: translateY(-6px) scale(1.01);
  box-shadow: 0 32px 88px rgba(0,0,0,.22);
  filter: saturate(1.05);
}

.wceu-wow-media{
  position:absolute; inset:0;
  background:
    radial-gradient(1200px 600px at 0% 0%, rgba(65,170,210,.22), rgba(65,170,210,0) 55%),
    linear-gradient(180deg, rgba(0,0,0,.05) 0%, rgba(45,64,104,.60) 70%, rgba(45,64,104,.86) 100%);
  z-index:1;
}
.wceu-wow-glow{
  position:absolute; inset:-40px;
  background: radial-gradient(420px 240px at 25% 20%, rgba(44,183,174,.22), rgba(44,183,174,0) 62%);
  opacity:.55;
  z-index:2;
  mix-blend-mode: screen;
  pointer-events:none;
}
.wceu-wow-meta{
  position:absolute; left:18px; right:18px; bottom:18px;
  z-index:3;
}
.wceu-wow-cat{
  display:inline-flex;
  padding:7px 12px;
  border-radius:999px;
  background: rgba(255,255,255,.16);
  backdrop-filter: blur(10px);
  font-weight:1000;
  font-size:12px;
  letter-spacing:.45px;
  margin-bottom:12px;
}
.wceu-wow-title2{
  font-weight:1100;
  font-size:20px;
  line-height:1.1;
  text-shadow: 0 10px 30px rgba(0,0,0,.25);
}
.wceu-wow-bottom{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  margin-top:12px;
}
.wceu-wow-price{
  font-weight:1100;
  font-size:16px;
}
.wceu-wow-price del{opacity:.7}
.wceu-wow-price ins{text-decoration:none}
.wceu-wow-rating .star-rating{margin:0; float:none;}
.wceu-wow-rating .star-rating span:before{color:#fff;}
.wceu-wow-cta{
  margin-top:14px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  padding: 12px 14px;
  border-radius: 14px;
  background: linear-gradient(135deg, rgba(44,183,174,.22), rgba(65,170,210,.18));
  border: 1px solid rgba(255,255,255,.18);
  backdrop-filter: blur(12px);
  font-weight:1100;
  letter-spacing:.2px;
}
.wceu-wow-cta span:last-child{font-size:18px; opacity:.95}

@media (max-width: 900px){
  .wceu-wow-card{flex-basis: 78%; min-width: 78%; height: 380px;}
}
@media (max-width: 520px){
  .wceu-wow-card{flex-basis: 92%; min-width: 92%; height: 360px;}
}



/* --- Level-2 Categories Carousel (\"--\") --- */
.wceu-catwow{margin-top:24px;}
.wceu-catwow-title{margin:0 0 12px 0; font-size:28px; line-height:1.12; font-weight:1100; letter-spacing:.2px; color:var(--wceu-navy);}

.wceu-slider--catwow .wceu-arrow{z-index:6; pointer-events:auto;
  background: transparent;
  box-shadow:none;
  width: 46px;
  height: 46px;
  font-size: 56px;
  line-height: 46px;
  color: var(--wceu-navy);
  opacity:.95;
}
.wceu-slider--catwow .wceu-arrow--prev{left:8px;}
.wceu-slider--catwow .wceu-arrow--next{right:8px;}
.wceu-slider--catwow .wceu-arrow:hover{color:var(--wceu-teal); transform: translateY(-50%) scale(1.05);}

@media (max-width: 900px){
  .wceu-slider--catwow .wceu-arrow--prev{left:8px;}
  .wceu-slider--catwow .wceu-arrow--next{right:8px;}
  .wceu-slider--catwow .wceu-arrow{z-index:6; pointer-events:auto;
    background: rgba(255,255,255,.92);
    box-shadow: 0 10px 22px rgba(0,0,0,.12);
    border-radius: 999px;
    width: 36px;
    height: 36px;
    font-size: 22px;
    line-height: 36px;
  }
}

.wceu-track--catwow{padding:10px 0 18px 0;}

.wceu-cat-card{
  position:relative;
  flex: 0 0 360px;
  min-width: 360px;
  height: 340px;
  border-radius: 24px;
  overflow:hidden;
  scroll-snap-align: start;
  text-decoration:none;
  color:#fff;
  background: var(--wceu-navy);
  background-image: var(--bg);
  background-size: cover;
  background-position: center;
  box-shadow: 0 22px 60px rgba(0,0,0,.16);
  transform: translateZ(0);
  transition: transform .25s ease, box-shadow .25s ease, filter .25s ease;
  isolation:isolate;
}
.wceu-cat-card:hover{
  transform: translateY(-6px);
  box-shadow: 0 30px 84px rgba(0,0,0,.22);
  filter: saturate(1.06);
}

.wceu-cat-media{
  position:absolute; inset:0;
  background:
    radial-gradient(900px 520px at 15% 10%, rgba(65,170,210,.26), rgba(65,170,210,0) 55%),
    linear-gradient(180deg, rgba(0,0,0,.06) 0%, rgba(45,64,104,.58) 68%, rgba(45,64,104,.88) 100%);
  z-index:1;
}
.wceu-cat-glow{
  position:absolute; inset:-50px;
  background: radial-gradient(420px 260px at 20% 20%, rgba(44,183,174,.28), rgba(44,183,174,0) 65%);
  opacity:.55;
  z-index:2;
  mix-blend-mode: screen;
  pointer-events:none;
}

.wceu-cat-meta{
  position:absolute; left:18px; right:18px; bottom:18px;
  z-index:3;
  display:flex;
  flex-direction:column;
  gap:12px;
}
.wceu-cat-top{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
}
.wceu-cat-badge{
  display:inline-flex;
  padding:7px 12px;
  border-radius:999px;
  background: rgba(255,255,255,.14);
  border:1px solid rgba(255,255,255,.16);
  backdrop-filter: blur(10px);
  font-weight:1000;
  font-size:12px;
  letter-spacing:.45px;
}
.wceu-cat-parent{
  font-weight:1000;
  font-size:12px;
  color: rgba(255,255,255,.92);
  opacity:.92;
  letter-spacing:.35px;
  text-transform: uppercase;
}

.wceu-cat-name{
  font-weight:1200;
  font-size:26px;
  line-height:1.05;
  text-shadow: 0 14px 40px rgba(0,0,0,.28);
}
.wceu-cat-bottom{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
}
.wceu-cat-count{
  font-weight:1000;
  font-size:14px;
  opacity:.95;
}
.wceu-cat-cta{
  display:inline-flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
  padding: 10px 12px;
  border-radius: 14px;
  background: linear-gradient(135deg, rgba(44,183,174,.22), rgba(65,170,210,.18));
  border: 1px solid rgba(255,255,255,.18);
  backdrop-filter: blur(12px);
  font-weight:1100;
  letter-spacing:.2px;
  min-width: 110px;
}
.wceu-cat-cta span:last-child{font-size:18px; opacity:.95}

@media (max-width: 900px){
  .wceu-cat-card{flex-basis: 78%; min-width: 78%; height: 320px;}
}
@media (max-width: 520px){
  .wceu-cat-card{flex-basis: 92%; min-width: 92%; height: 300px;}
}


/* --- Overflow safeguard --- */
.wceu-wow, .wceu-catwow, .wceu-slides { overflow-x: clip; }
@supports not (overflow: clip) {
  .wceu-wow, .wceu-catwow, .wceu-slides { overflow-x: hidden; }
}

.wceu-slider--catwow{position:relative;padding:0 54px;}

.wceu-track, .wceu-track--wow, .wceu-track--catwow{cursor: grab;}
.wceu-track.is-dragging{cursor: grabbing;}


/* Hide horizontal scrollbars */
.wceu-track, .wceu-track--wow, .wceu-track--catwow{
  scrollbar-width: none;           /* Firefox */
  -ms-overflow-style: none;        /* IE/Edge legacy */
}
.wceu-track::-webkit-scrollbar,
.wceu-track--wow::-webkit-scrollbar,
.wceu-track--catwow::-webkit-scrollbar{
  width: 0;
  height: 0;
  display: none;                   /* Chrome/Safari */
}


/* --- MAP FILTER fixed widget + fullscreen modal --- */
html.wceu-noscroll, html.wceu-noscroll body{overflow:hidden;}

.wceu-mapfilter-btn{
  position:fixed;
  right: 14px;
  top: 120px;
  width: 42px;
  height: 160px;
  border-radius: 999px;
  border: 1px solid rgba(255,255,255,.25);
  background: linear-gradient(180deg, rgba(45,64,104,.92), rgba(45,64,104,.72));
  box-shadow: 0 18px 40px rgba(0,0,0,.18);
  color: #fff;
  font-weight: 1100;
  letter-spacing: .18em;
  font-size: 12px;
  text-transform: uppercase;
  cursor:pointer;
  z-index: 99998;
  writing-mode: vertical-rl;
  text-orientation: mixed;
}
.wceu-mapfilter-btn:hover{
  background: linear-gradient(180deg, rgba(44,183,174,.92), rgba(65,170,210,.72));
}

.wceu-mapfilter-modal{
  position:fixed;
  inset:0;
  z-index:99999;
  display:none;
}
.wceu-mapfilter-modal.is-open{display:block;}
.wceu-mapfilter-backdrop{
  position:absolute; inset:0;
  background: rgba(0,0,0,.55);
}
.wceu-mapfilter-panel{
  position:absolute; inset: 18px;
  border-radius: 26px;
  background: #fff;
  overflow:hidden;
  box-shadow: 0 30px 90px rgba(0,0,0,.30);
}
.wceu-mapfilter-close{
  position:absolute;
  top: 14px;
  right: 14px;
  width: 44px;
  height: 44px;
  border-radius: 999px;
  border: none;
  background: rgba(255,255,255,.92);
  color: var(--wceu-navy);
  font-size: 28px;
  font-weight: 1100;
  cursor:pointer;
  z-index: 10;
  box-shadow: 0 12px 24px rgba(0,0,0,.12);
}
.wceu-mapfilter-mapwrap{position:absolute; inset:0;}
.wceu-mapfilter-map{width:100%; height:100%; border-radius:0; box-shadow:none;}

/* Country click popup */
.wceu-country-popup__title{
  font-weight:1100;
  color: var(--wceu-navy);
  font-size: 16px;
  margin-bottom: 10px;
}
.wceu-country-popup__list{
  max-height: 320px;
  overflow:auto;
  padding-right: 4px;
}
.wceu-country-popup__city{
  margin-top: 10px;
  font-weight:1100;
  color: var(--wceu-teal);
  font-size: 13px;
  text-transform: uppercase;
  letter-spacing: .06em;
}
.wceu-country-popup__item{
  display:flex;
  align-items:center;
  gap:10px;
  padding: 6px 2px;
  text-decoration:none;
  color: var(--wceu-navy);
  font-weight: 850;
  font-size: 13px;
}
.wceu-country-popup__item .dot{
  width:8px; height:8px;
  border-radius:999px;
  background: var(--wceu-sky);
  box-shadow: 0 0 0 3px rgba(65,170,210,.18);
}
.wceu-country-popup__item:hover{color: var(--wceu-teal);}


/* Popup product carousel inside map (state click) */
.wceu-country-popup-wrap .leaflet-popup-content{margin:12px;}
.wceu-country-popup__title{
  font-weight:1100;
  color: var(--wceu-navy, #2D4068);
  font-size: 16px;
  margin-bottom: 10px;
}
.wceu-popup-carousel{position:relative; margin-top:10px;}
.wceu-poptrack{
  display:flex;
  gap:12px;
  overflow:auto;
  scroll-snap-type:x mandatory;
  scroll-behavior:smooth;
  padding: 4px 40px 10px 40px;
  scrollbar-width:none;
  cursor:grab;
}
.wceu-poptrack::-webkit-scrollbar{width:0;height:0;display:none;}
.wceu-poptrack.is-dragging{cursor:grabbing;}

.wceu-poparr{
  position:absolute;
  top: 50%;
  transform: translateY(-50%);
  border:none;
  background: transparent;
  box-shadow:none;
  font-size: 34px;
  font-weight:1100;
  color: var(--wceu-navy, #2D4068);
  width:34px; height:34px;
  cursor:pointer;
  z-index:5;
}
.wceu-poparr.prev{left:0;}
.wceu-poparr.next{right:0;}
.wceu-poparr:hover{color:var(--wceu-teal, #2CB7AE);}

.wceu-popcard{
  position:relative;
  flex: 0 0 240px;
  min-width:240px;
  height: 150px;
  border-radius: 16px;
  overflow:hidden;
  scroll-snap-align:start;
  text-decoration:none;
  color:#fff;
  background: var(--wceu-navy, #2D4068);
  background-image: var(--bg);
  background-size: cover;
  background-position:center;
  box-shadow: 0 14px 30px rgba(0,0,0,.16);
}
.wceu-popmedia{
  position:absolute; inset:0;
  background: linear-gradient(180deg, rgba(0,0,0,.05) 0%, rgba(45,64,104,.70) 78%, rgba(45,64,104,.88) 100%);
}
.wceu-popmeta{
  position:absolute; left:12px; right:12px; bottom:10px;
  z-index:2;
}
.wceu-popmeta .city{
  font-weight:950;
  font-size:11px;
  letter-spacing:.06em;
  text-transform: uppercase;
  color: rgba(255,255,255,.9);
  margin-bottom:6px;
}
.wceu-popmeta .title{
  font-weight:1100;
  font-size:13px;
  line-height:1.1;
}

.wceu-popdots{
  display:flex;
  gap:8px;
  justify-content:center;
  padding: 6px 0 0 0;
}
.wceu-popdot{
  width:22px;
  height:4px;
  border:none;
  border-radius:999px;
  background: rgba(45,64,104,.18);
  cursor:pointer;
}
.wceu-popdot.is-active{background: var(--wceu-teal, #2CB7AE);}
