/* ============ HERO 3D GLOBE ============ */
.hero-globe{
  position:absolute;
  top:0;left:0;width:100%;height:100%;
  z-index:0;
  pointer-events:none;
  min-height:500px;
}
.hero-globe canvas{
  display:block;
  width:100%!important;
  height:100%!important;
}
.hero-globe__vignette{
  position:absolute;
  inset:0;
  background:radial-gradient(ellipse at center, transparent 50%, var(--green-tint) 95%);
  pointer-events:none;
}

/* ============ ACCENT COVER — AI text hover effect ============ */
.accent-cover{
  position:relative;display:inline-block;cursor:default;vertical-align:middle;
}
.accent-cover:hover .accent{
  animation:accent-shake .25s ease-in-out infinite;
}
@keyframes accent-shake{
  0%,100%{transform:translate(0,0) scale(1)}
  15%{transform:translate(-3px,3px) scale(.92)}
  30%{transform:translate(3px,-2px) scale(1.06)}
  45%{transform:translate(-2px,-3px) scale(.94)}
  60%{transform:translate(3px,2px) scale(1.04)}
  75%{transform:translate(-1px,-1px) scale(.96)}
}
.accent-cover__beam{
  position:absolute;left:-10%;width:120%;height:1px;
  background:linear-gradient(90deg,transparent,#7DD3A0 30%,#fff 50%,#7DD3A0 70%,transparent);
  opacity:0;pointer-events:none;transition:opacity .3s;
}
.accent-cover:hover .accent-cover__beam{animation:beam-scan 1.5s linear infinite}
.accent-cover__beam--1{top:20%;animation-delay:0s}
.accent-cover__beam--2{top:50%;animation-delay:.5s}
.accent-cover__beam--3{top:80%;animation-delay:1.0s}
@keyframes beam-scan{
  0%{opacity:0;transform:translateX(-20%)}
  30%{opacity:.7}
  60%{opacity:0}
  100%{opacity:0;transform:translateX(20%)}
}
.accent-cover__dot{
  position:absolute;width:6px;height:6px;border-radius:50%;
  background:#7DD3A0;opacity:.25;pointer-events:none;
  animation:accent-dot-pulse 2s ease-in-out infinite;
}
.accent-cover__dot--tl{top:-4px;left:-4px;animation-delay:0s}
.accent-cover__dot--tr{top:-4px;right:-4px;animation-delay:.4s}
.accent-cover__dot--bl{bottom:-4px;left:-4px;animation-delay:.8s}
.accent-cover__dot--br{bottom:-4px;right:-4px;animation-delay:1.2s}
.accent-cover:hover .accent-cover__dot{opacity:.9}
@keyframes accent-dot-pulse{
  0%,100%{transform:scale(1);opacity:.25}
  50%{transform:scale(2.5);opacity:.7}
}
.accent-cover__sparkles{
  position:absolute;inset:-24px;
  z-index:0;pointer-events:none;
  opacity:0;transition:opacity .4s;
}
.accent-cover:hover .accent-cover__sparkles{opacity:1}
.accent-cover .accent{
  position:relative;z-index:1;display:inline-block;
}

/* ============ 360° PANORAMA CTA (Pannellum) ============ */
.panorama-cta{
  position:relative;
  width:100%;
  min-height:520px;
  overflow:hidden;
  background:var(--ink);
}
/* Pannellum viewer container — fills section, supports drag */
.panorama-cta__viewer{
  position:absolute;
  inset:0;
  z-index:0;
}
.panorama-cta__viewer .pnlm-container{
  background:var(--ink)!important;
}
.panorama-cta__viewer .pnlm-load-box,
.panorama-cta__viewer .pnlm-panorama-info,
.panorama-cta__viewer .pnlm-title-box,
.panorama-cta__viewer .pnlm-about-msg{
  display:none!important;
}
.panorama-cta__viewer .pnlm-render-container{
  cursor:grab;
  image-rendering:auto;
}
.panorama-cta__viewer .pnlm-render-container canvas{
  image-rendering:-webkit-optimize-contrast;
  image-rendering:crisp-edges;
}
.panorama-cta__viewer .pnlm-render-container:active{
  cursor:grabbing;
}
/* Gradient overlay — pointer-events:none so drag passes through to Pannellum */
.panorama-cta__overlay{
  position:absolute;
  inset:0;
  background:linear-gradient(180deg,
    rgba(15,31,24,.40) 0%,
    rgba(15,31,24,.10) 30%,
    rgba(15,31,24,.30) 65%,
    rgba(15,31,24,.65) 100%
  );
  z-index:1;
  pointer-events:none;
}
.panorama-cta__content{
  position:relative;
  z-index:2;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  min-height:520px;
  padding:80px 32px;
  text-align:center;
  color:var(--white);
  pointer-events:none; /* let drag pass through except on buttons */
}
.panorama-cta__content .btn,
.panorama-cta__content a{
  pointer-events:auto; /* re-enable button clicks */
}
.panorama-cta__tag{
  display:inline-flex;align-items:center;gap:6px;
  padding:8px 20px;border-radius:9999px;
  background:rgba(255,255,255,.9);border:1px solid rgba(255,255,255,.5);
  font-family:var(--font-display);font-size:12px;font-weight:600;
  color:#1a1a1a;letter-spacing:.15em;margin-bottom:24px;
  backdrop-filter:blur(8px);
}
.panorama-cta__content h2{
  font-size:clamp(30px,5.5vw,52px);
  font-weight:700;
  color:var(--white);
  letter-spacing:-.02em;
  margin-bottom:20px;
  text-shadow:0 2px 24px rgba(0,0,0,.5);
}
.panorama-cta__content p{
  font-size:clamp(15px,2vw,17px);
  color:rgba(255,255,255,.92);
  line-height:1.6;
  max-width:560px;
  margin-bottom:0;
  text-shadow:0 1px 10px rgba(0,0,0,.4);
}
.panorama-cta__btns{
  display:flex;
  gap:14px;
  justify-content:center;
  flex-wrap:wrap;
  margin-bottom:20px;
}
.panorama-cta__trust{
  font-family:var(--font-display);
  font-size:14px;
  font-weight:500;
  color:rgba(255,255,255,.8);
  text-shadow:0 1px 8px rgba(0,0,0,.4);
}
/* Drag hint badge */
.panorama-cta__hint{
  position:absolute;
  bottom:28px;
  right:28px;
  z-index:3;
  display:flex;
  align-items:center;
  gap:8px;
  padding:8px 14px;
  border-radius:9999px;
  background:rgba(0,0,0,.4);
  backdrop-filter:blur(12px);
  -webkit-backdrop-filter:blur(12px);
  font-family:var(--font-display);
  font-size:12px;
  font-weight:600;
  color:rgba(255,255,255,.9);
  letter-spacing:.04em;
  pointer-events:none;
  animation:hint-pulse 3s ease-in-out infinite;
}
@keyframes hint-pulse{
  0%,100%{opacity:.7;transform:translateY(0)}
  50%{opacity:1;transform:translateY(-2px)}
}
/* Live label (top-left) */
.panorama-cta__label{
  position:absolute;
  top:28px;
  left:28px;
  z-index:3;
  display:flex;
  align-items:center;
  gap:8px;
  padding:8px 16px;
  border-radius:9999px;
  background:rgba(0,0,0,.4);
  backdrop-filter:blur(12px);
  -webkit-backdrop-filter:blur(12px);
  font-family:var(--font-display);
  font-size:13px;
  font-weight:600;
  color:var(--white);
  letter-spacing:.05em;
  pointer-events:none;
}
.panorama-cta__label .live-dot{
  width:8px;
  height:8px;
  border-radius:50%;
  background:var(--green);
  animation:pulse-dot 2s infinite;
}
