/* === VISUAL OVERRIDE - Premium Enhancements === */

@keyframes vg-gradient-shift {
  0%{background-position:0% 50%}
  50%{background-position:100% 50%}
  100%{background-position:0% 50%}
}

@keyframes vg-pulse-social {
  0%,100%{box-shadow:0 0 0 0 rgba(46,125,50,0.4)}
  50%{box-shadow:0 0 0 8px rgba(46,125,50,0)}
}

@keyframes vg-progress-top {
  from{transform:scaleX(0)}
  to{transform:scaleX(1)}
}

.vg-page-hero--support,
.vg-page-hero--faq,
.vg-page-hero--contact,
.vg-page-hero--ranking,
.vg-page-hero--guide {
  background-size: 200% 200% !important;
  animation: vg-gradient-shift 8s ease infinite !important;
}

.vg-section-divider {
  display: block;
  width: 100%;
  height: 1px;
  background: linear-gradient(90deg, transparent, var(--c1s, #c8e6c9), var(--c1, #2e7d32), var(--c1s, #c8e6c9), transparent);
  margin: 40px 0;
  position: relative;
}

.vg-section-divider::after {
  content: '';
  position: absolute;
  left: 50%;
  top: -3px;
  transform: translateX(-50%);
  width: 40px;
  height: 7px;
  background: var(--c1, #2e7d32);
  border-radius: 4px;
}

.vg-animate-in {
  animation: vg-fade-in-up 0.6s ease forwards;
  opacity: 0;
}

.vg-btn-primary {
  position: relative;
  overflow: hidden;
  z-index: 1;
}

.vg-btn-primary::before {
  content: '';
  position: absolute;
  top: 0;
  left: -100%;
  width: 100%;
  height: 100%;
  background: linear-gradient(90deg, transparent, rgba(255,255,255,0.25), transparent);
  transition: left 0.5s ease;
  z-index: -1;
}

.vg-btn-primary:hover::before {
  left: 100%;
}

.vg-game-card,
.vg-fp-hero__side-item,
.vg-fp-update-card,
.vg-fp-cat-card,
.vg-faq-card,
.vg-contact-card {
  position: relative;
  overflow: hidden;
}

.vg-game-card::after,
.vg-fp-hero__side-item::after,
.vg-fp-update-card::after,
.vg-fp-cat-card::after,
.vg-faq-card::after,
.vg-contact-card::after {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 3px;
  background: linear-gradient(90deg, var(--c1), var(--c1d));
  transform: scaleX(0);
  transform-origin: left;
  transition: transform 0.4s cubic-bezier(0.4,0,0.2,1);
}

.vg-game-card:hover::after,
.vg-fp-hero__side-item:hover::after,
.vg-fp-update-card:hover::after,
.vg-fp-cat-card:hover::after,
.vg-faq-card:hover::after,
.vg-contact-card:hover::after {
  transform: scaleX(1);
  animation: vg-progress-top 0.4s ease forwards;
}

.vg-footer__social-link:hover {
  animation: vg-pulse-social 1s ease infinite;
}

.vg-fp-hero__main-overlay {
  background: linear-gradient(transparent 30%, rgba(27,94,32,0.92) 100%) !important;
}

.vg-fp-hero__main {
  border: 3px double var(--c1d);
}

.vg-fp-ranking {
  border: 3px double var(--c1d);
}

.vg-fp-ranking__header {
  background: var(--c1l);
  border-bottom: 3px double var(--c1d);
}

.vg-fp-section__title {
  font-family: var(--ff);
  text-transform: uppercase;
  letter-spacing: 1px;
}

.vg-fp-catbar {
  border-bottom: 3px double var(--bdl);
}

.vg-footer__stats {
  border-bottom: 2px solid rgba(255,255,255,0.15);
}

.vg-footer__col-title {
  font-family: var(--ff);
  border-bottom: 2px solid rgba(255,255,255,0.2);
  padding-bottom: 8px;
}

@keyframes vg-masthead-slide-in {
  0%{opacity:0;transform:translateY(-20px)}
  100%{opacity:1;transform:translateY(0)}
}

@keyframes vg-faq-double-border {
  0%{border-width:0}
  100%{border-width:3px}
}

@keyframes vg-green-bar-expand {
  0%{width:0}
  100%{width:4px}
}

.vg-editorial-masthead {
  animation:vg-masthead-slide-in 0.8s cubic-bezier(0.4,0,0.2,1) forwards;
  opacity:0;
}

.vg-fp-editors__card {
  position:relative;
  transition:all 0.35s cubic-bezier(0.4,0,0.2,1);
  border-left:0 solid var(--c1,#2e7d32);
}

.vg-fp-editors__card:hover {
  border-left-width:4px;
  padding-left:12px;
  background:rgba(46,125,50,0.04);
}

.vg-news-content blockquote {
  border-left:4px solid var(--c1,#2e7d32);
  margin:1.5em 0;
  padding:1em 1.5em;
  font-style:italic;
  font-family:Georgia,"Times New Roman",serif;
  background:rgba(46,125,50,0.04);
  color:var(--color-text-light,#666);
}

.vg-news-content blockquote p {
  font-family:inherit;
  font-style:inherit;
}

.vg-faq-page__item {
  transition:all 0.35s cubic-bezier(0.4,0,0.2,1);
  border:0 double transparent;
}

.vg-faq-page__item.open {
  border:3px double var(--c1,#2e7d32);
  animation:vg-faq-double-border 0.4s ease forwards;
  background:rgba(46,125,50,0.03);
}

.vg-contact__input {
  border:none;
  border-bottom:2px solid var(--color-border,#e0e0e0);
  border-radius:0;
  background:transparent;
  padding:0.75em 0.25em;
  transition:border-color 0.3s ease;
}

.vg-contact__input:focus {
  border-bottom-color:var(--c1,#2e7d32);
  outline:none;
  box-shadow:none;
}

.vg-contact__input::placeholder {
  color:var(--color-text-muted,#999);
}
