/* ──────────────────────────────────────────────────────────────────
 * Dhanvantari Gallery — reusable image-tour component
 * Brand: bg #050810 · teal #00e8c6 · cyan #00c8f8
 * Self-contained — no external libs.
 * ────────────────────────────────────────────────────────────────── */

.dvg-root{
  --dvg-bg:#050810;
  --dvg-card:rgba(14,21,40,0.6);
  --dvg-border:rgba(0,232,198,0.12);
  --dvg-border-h:rgba(0,232,198,0.32);
  --dvg-teal:#00e8c6;
  --dvg-cyan:#00c8f8;
  --dvg-t1:#eaf0fa;
  --dvg-t2:rgba(234,240,250,0.62);
  --dvg-t3:rgba(234,240,250,0.32);
  --dvg-fd:'Bricolage Grotesque',system-ui,sans-serif;
  --dvg-fb:'Lexend',system-ui,sans-serif;
  position:relative;
  width:100%;
  max-width:1080px;
  margin:0 auto;
  padding:18px;
  background:linear-gradient(180deg, rgba(10,15,26,0.55), rgba(5,8,16,0.85));
  border:1px solid var(--dvg-border);
  border-radius:18px;
  color:var(--dvg-t1);
  font-family:var(--dvg-fb);
  user-select:none;
  -webkit-user-select:none;
  overflow:hidden;
}
.dvg-root *{box-sizing:border-box}
.dvg-root:fullscreen{
  background:#050810;
  max-width:none;
  width:100vw;
  height:100vh;
  border-radius:0;
  border:none;
  display:flex;
  flex-direction:column;
  justify-content:center;
  padding:24px;
}
.dvg-root:fullscreen .dvg-stage{height:auto;flex:1;min-height:0}
.dvg-root:fullscreen .dvg-image-wrap{max-height:100%;height:100%;display:flex;align-items:center;justify-content:center}

/* Top toolbar (counter + play/fullscreen) */
.dvg-toolbar{
  display:flex;
  justify-content:space-between;
  align-items:center;
  margin-bottom:12px;
  padding:0 4px;
  font-family:var(--dvg-fd);
  font-size:12px;
  letter-spacing:1.5px;
  text-transform:uppercase;
  color:var(--dvg-t2);
}
.dvg-counter{
  font-weight:600;
  color:var(--dvg-teal);
  font-variant-numeric:tabular-nums;
}
.dvg-tools{display:flex;gap:8px}
.dvg-tool-btn{
  background:rgba(0,232,198,0.06);
  border:1px solid var(--dvg-border);
  color:var(--dvg-t1);
  width:34px;height:34px;
  border-radius:8px;
  cursor:pointer;
  display:inline-flex;align-items:center;justify-content:center;
  transition:background .2s, border-color .2s, transform .15s;
  padding:0;
}
.dvg-tool-btn:hover{background:rgba(0,232,198,0.14);border-color:var(--dvg-border-h);transform:translateY(-1px)}
.dvg-tool-btn:active{transform:translateY(0)}
.dvg-tool-btn svg{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}

/* Main stage */
.dvg-stage{
  position:relative;
  width:100%;
  display:flex;
  align-items:center;
  justify-content:center;
  min-height:380px;
  padding:14px 8px;
}

/* Arrows */
.dvg-arrow{
  position:absolute;
  top:50%;
  transform:translateY(-50%);
  width:48px;height:48px;
  border-radius:50%;
  background:rgba(5,8,16,0.7);
  border:1px solid var(--dvg-border);
  color:var(--dvg-t1);
  cursor:pointer;
  display:inline-flex;align-items:center;justify-content:center;
  z-index:5;
  transition:background .2s, border-color .2s, transform .15s, opacity .2s;
  opacity:.65;
  padding:0;
}
.dvg-arrow:hover{opacity:1;background:rgba(0,232,198,0.18);border-color:var(--dvg-teal);transform:translateY(-50%) scale(1.06)}
.dvg-arrow svg{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:2.4;stroke-linecap:round;stroke-linejoin:round}
.dvg-arrow.dvg-prev{left:8px}
.dvg-arrow.dvg-next{right:8px}

/* Image frame container */
.dvg-image-wrap{
  position:relative;
  display:flex;
  align-items:center;
  justify-content:center;
  width:100%;
  max-width:100%;
  transition:opacity .35s ease;
}
.dvg-image-wrap.dvg-fading{opacity:0}

/* Phone frame */
.dvg-phone-frame{
  position:relative;
  width:100%;
  max-width:280px;
  aspect-ratio:390/844;
  background:#050810;
  border:7px solid #1a2236;
  border-radius:32px;
  padding:0;
  box-shadow:0 14px 36px rgba(0,232,198,0.10), 0 0 0 1px rgba(0,232,198,0.06);
  overflow:hidden;
}
.dvg-phone-frame .dvg-notch{
  position:absolute;
  top:0;left:50%;
  transform:translateX(-50%);
  width:62px;height:14px;
  background:#0a0f1a;
  border-radius:0 0 14px 14px;
  z-index:3;
}
.dvg-phone-frame img{
  display:block;
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:top center;
  border-radius:25px;
}

/* Laptop frame */
.dvg-laptop-frame{
  position:relative;
  width:100%;
  max-width:840px;
  aspect-ratio:1280/720;
  background:#050810;
  border:1px solid rgba(0,232,198,0.18);
  border-radius:10px;
  padding:0;
  overflow:hidden;
  box-shadow:0 18px 44px rgba(0,232,198,0.10), 0 0 0 1px rgba(0,232,198,0.06);
}
.dvg-laptop-frame .dvg-tlbar{
  height:22px;
  background:linear-gradient(180deg,#0e1525,#0a0f1a);
  border-bottom:1px solid rgba(0,232,198,0.12);
  display:flex;
  align-items:center;
  padding:0 10px;
  gap:5px;
  position:relative;
  z-index:2;
}
.dvg-laptop-frame .dvg-tlbar i{
  width:8px;height:8px;border-radius:50%;display:inline-block;
}
.dvg-laptop-frame .dvg-tlbar i:nth-child(1){background:#fb7185}
.dvg-laptop-frame .dvg-tlbar i:nth-child(2){background:#fbbf24}
.dvg-laptop-frame .dvg-tlbar i:nth-child(3){background:#34d399}
.dvg-laptop-frame img{
  display:block;
  width:100%;
  height:calc(100% - 22px);
  object-fit:cover;
  object-position:top center;
}

/* Caption */
.dvg-caption{
  margin:18px auto 6px;
  padding:0 14px;
  text-align:center;
  max-width:680px;
}
.dvg-caption-title{
  font-family:var(--dvg-fd);
  font-size:22px;
  font-weight:700;
  line-height:1.2;
  color:var(--dvg-t1);
  margin-bottom:6px;
  background:linear-gradient(135deg,#eaf0fa 0%, var(--dvg-teal) 100%);
  -webkit-background-clip:text;
  background-clip:text;
  -webkit-text-fill-color:transparent;
}
.dvg-caption-body{
  font-family:var(--dvg-fb);
  font-size:14.5px;
  line-height:1.55;
  color:var(--dvg-t2);
  font-weight:400;
}

/* Dots */
.dvg-dots{
  display:flex;
  gap:8px;
  justify-content:center;
  flex-wrap:wrap;
  margin:14px auto 6px;
  padding:0 8px;
}
.dvg-dot{
  width:9px;height:9px;
  border-radius:50%;
  background:rgba(234,240,250,0.18);
  border:none;
  cursor:pointer;
  padding:0;
  transition:background .2s, transform .2s, box-shadow .2s;
}
.dvg-dot:hover{background:rgba(0,232,198,0.4)}
.dvg-dot.dvg-active{
  background:var(--dvg-teal);
  box-shadow:0 0 12px rgba(0,232,198,0.6);
  transform:scale(1.2);
}

/* Thumbnail strip */
.dvg-thumbs{
  display:flex;
  gap:8px;
  overflow-x:auto;
  overflow-y:hidden;
  padding:10px 4px 4px;
  margin-top:8px;
  scrollbar-width:thin;
  scrollbar-color:rgba(0,232,198,0.3) transparent;
  scroll-snap-type:x mandatory;
  -webkit-overflow-scrolling:touch;
}
.dvg-thumbs::-webkit-scrollbar{height:6px}
.dvg-thumbs::-webkit-scrollbar-thumb{background:rgba(0,232,198,0.3);border-radius:3px}
.dvg-thumb{
  flex:0 0 auto;
  width:64px;height:64px;
  border-radius:8px;
  overflow:hidden;
  border:1px solid rgba(0,232,198,0.10);
  background:#0a0f1a;
  cursor:pointer;
  opacity:.45;
  transition:opacity .2s, border-color .2s, transform .15s, box-shadow .2s;
  padding:0;
  scroll-snap-align:start;
}
.dvg-thumb:hover{opacity:.75}
.dvg-thumb.dvg-active{
  opacity:1;
  border-color:var(--dvg-teal);
  box-shadow:0 0 14px rgba(0,232,198,0.35);
  transform:translateY(-2px);
}
.dvg-thumb img{
  display:block;
  width:100%;height:100%;
  object-fit:cover;
  object-position:top center;
}

/* Responsive: small phones */
@media (max-width:640px){
  .dvg-root{padding:12px;border-radius:14px}
  .dvg-arrow{display:none}
  .dvg-phone-frame{max-width:240px;border-width:6px;border-radius:28px}
  .dvg-phone-frame img{border-radius:21px}
  .dvg-laptop-frame{max-width:100%}
  .dvg-caption-title{font-size:18px}
  .dvg-caption-body{font-size:13.5px}
  .dvg-stage{min-height:300px;padding:8px 4px}
  .dvg-thumb{width:54px;height:54px}
}

/* Subtle keyboard-hint pill */
.dvg-kbd-hint{
  position:absolute;
  bottom:12px;left:50%;
  transform:translateX(-50%);
  font-family:var(--dvg-fd);
  font-size:10px;
  letter-spacing:1.2px;
  text-transform:uppercase;
  color:var(--dvg-t3);
  pointer-events:none;
  white-space:nowrap;
}
@media (max-width:640px){.dvg-kbd-hint{display:none}}

/* Loading state */
.dvg-loading{
  text-align:center;
  padding:60px 20px;
  color:var(--dvg-t2);
  font-family:var(--dvg-fd);
  font-size:13px;
  letter-spacing:1.5px;
  text-transform:uppercase;
}
.dvg-loading::after{content:'…';animation:dvg-blink 1.2s infinite}
@keyframes dvg-blink{0%,100%{opacity:.3}50%{opacity:1}}

/* Error */
.dvg-error{
  padding:24px;
  text-align:center;
  color:#fb7185;
  font-family:var(--dvg-fb);
  font-size:13px;
}
