@import url('https://fonts.googleapis.com/css2?family=Fraunces:opsz,wght@9..144,300;9..144,500;9..144,600&family=Inter:wght@400;500;600&display=swap');

/* ---- Black + Metallic Gold design tokens ---- */
:root{
  --jp-bg:#0A0A0B;
  --jp-surface:#141317;
  --jp-card:#1B1A1E;
  --jp-gold:#C9A227;
  --jp-gold-hi:#E8CD87;
  --jp-gold-deep:#8A6A1C;
  --jp-text:#F3EFE7;
  --jp-text-2:#A39C8C;
  --jp-hair:#2A2620;
}

/* Metallic gold gradient on the accent word (wrap word in <span class="jp-gold-word">) */
.jp-gold-word{
  background:linear-gradient(100deg,var(--jp-gold-deep),var(--jp-gold-hi) 45%,var(--jp-gold) 80%);
  -webkit-background-clip:text;background-clip:text;color:transparent;
}

/* ---- Logo carousel ---- */
.jp-carousel{position:relative;display:flex;align-items:center;gap:8px;}
.jp-viewport{overflow:hidden;flex:1;}
.jp-track{display:flex;transition:transform .5s cubic-bezier(.4,0,.2,1);}
.jp-slide{
  flex:0 0 auto;display:flex;flex-direction:column;align-items:center;justify-content:center;
  gap:10px;padding:18px 12px;text-decoration:none;
}
.jp-slide img{max-height:56px;max-width:160px;width:auto;height:auto;object-fit:contain;display:block;transition:transform .25s;}
.jp-slide:hover img{transform:scale(1.06);}
.jp-slide-meta{
  font-family:'Inter',sans-serif;font-size:12px;color:var(--jp-text-2);text-align:center;
  display:flex;flex-direction:column;line-height:1.3;opacity:0;transition:opacity .25s;
}
.jp-slide-meta em{font-style:normal;font-size:10px;letter-spacing:.08em;text-transform:uppercase;color:var(--jp-gold);}
.jp-slide:hover .jp-slide-meta{opacity:1;}
/* Optional grayscale mode only if explicitly enabled */
.jp-carousel.jp-gray .jp-slide img{filter:grayscale(1) brightness(1.4) opacity(.6);transition:filter .25s;}
.jp-carousel.jp-gray .jp-slide:hover img{filter:none;opacity:1;}
.jp-arrow{
  background:transparent;border:1px solid var(--jp-hair);color:var(--jp-gold-hi);
  width:38px;height:38px;border-radius:50%;cursor:pointer;font-size:20px;line-height:1;flex:0 0 auto;
  transition:border-color .2s,background .2s;
}
.jp-arrow:hover{border-color:var(--jp-gold);background:rgba(201,162,39,.08);}
.jp-dots{display:flex;gap:6px;justify-content:center;position:absolute;bottom:-22px;left:0;right:0;}
.jp-dots button{width:6px;height:6px;border-radius:50%;border:none;background:var(--jp-hair);cursor:pointer;padding:0;}
.jp-dots button.active{background:var(--jp-gold);}

@media (max-width:768px){
  .jp-slide img{max-height:40px;max-width:110px;}
  .jp-arrow{width:32px;height:32px;font-size:17px;}
}

/* Ensure protected images never crop */
.jp-carousel img,
.elementor-widget-image img[style*="object-fit"]{object-fit:contain !important;}

/* ---- Back-to-top button ---- */
#jp-top{
  position:fixed;right:22px;bottom:22px;z-index:9999;width:46px;height:46px;border-radius:50%;
  border:1px solid var(--jp-gold);background:rgba(20,19,23,.85);color:var(--jp-gold-hi);
  font-size:20px;line-height:1;cursor:pointer;opacity:0;pointer-events:none;
  transition:opacity .3s,transform .3s,background .2s;backdrop-filter:blur(6px);
}
#jp-top.show{opacity:1;pointer-events:auto;}
#jp-top:hover{background:var(--jp-gold);color:#161207;transform:translateY(-3px);}

/* ---- Defensive dropdown bridge (helps themes where sub-menu drops on hover gap) ---- */
.menu-item-has-children{position:relative;}
.menu-item-has-children > .sub-menu{margin-top:0 !important;padding-top:8px !important;}
.menu-item-has-children:hover > .sub-menu,
.menu-item-has-children:focus-within > .sub-menu{display:block !important;opacity:1 !important;visibility:visible !important;}
