/* ==================================================
   HV BLOG DETAIL SYSTEM (ANIMATED – REUSABLE)
   Author: HackVitraSec
================================================== */

.main {
  overflow-x: hidden;
}

/* ------------------ Anim Helpers ------------------ */
@keyframes fadeUp {
  from { opacity: 0; transform: translateY(25px); }
  to   { opacity: 1; transform: translateY(0); }
}

@keyframes fadeIn {
  from { opacity: 0; }
  to   { opacity: 1; }
}

/* ---------- Hero ---------- */
.hv-blog-hero {
  padding: 5.5rem 1rem 3rem;
  text-align: center;
  animation: fadeUp .9s ease both;
}

.hv-blog-date {
  color: var(--first-color);
  font-weight: 600;
  letter-spacing: .5px;
}

.hv-blog-title {
  font-size: clamp(2.1rem, 4vw, 2.9rem);
  margin: 1rem auto;
  max-width: 900px;
  line-height: 1.25;
}

.hv-blog-subtitle {
  opacity: .85;
  max-width: 720px;
  margin: auto;
}

/* ---------- Meta ---------- */
.hv-blog-meta {
  border-top: 1px solid rgba(255,255,255,.08);
  border-bottom: 1px solid rgba(255,255,255,.08);
  padding: .9rem 0;
  animation: fadeIn 1.1s ease both;
}

.hv-blog-meta .container {
  display: flex;
  gap: .9rem;
  justify-content: center;
  font-size: .9rem;
  opacity: .8;
  flex-wrap: wrap;
}

/* ---------- Images ---------- */
.hv-blog-img {
  margin: 3.2rem auto;
  max-width: 1100px;
  padding: 0 1rem;
  animation: fadeUp 1s ease both;
}

.hv-blog-img img {
  width: 100%;
  border-radius: 1.2rem;
  box-shadow: 0 20px 40px rgba(0,0,0,.45);
  transition: transform .4s ease, box-shadow .4s ease;
}

.hv-blog-img img:hover {
  transform: scale(1.015);
  box-shadow: 0 28px 55px rgba(0,0,0,.6);
}

.hv-blog-img figcaption {
  text-align: center;
  font-size: .85rem;
  opacity: .7;
  margin-top: .6rem;
}

/* Featured image */
.hv-blog-img-featured img {
  max-height: 480px;
  object-fit: cover;
}

/* ---------- Image Grid ---------- */
.hv-blog-img-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
  gap: 1.4rem;
  margin: 3.5rem 0;
}

.hv-blog-img-grid img {
  width: 100%;
  border-radius: 1rem;
  object-fit: cover;
  transition: transform .35s ease, filter .35s ease;
}

.hv-blog-img-grid img:hover {
  transform: translateY(-6px) scale(1.02);
  filter: brightness(1.08);
}

/* ---------- Content ---------- */
.hv-blog-content {
  padding: 3rem 1rem;
}

.hv-blog-content .container {
  max-width: 850px;
}

.hv-blog-content p {
  margin-top: 1.25rem;
  line-height: 1.95;
  opacity: .92;
  animation: fadeUp .8s ease both;
}

.hv-blog-content h2 {
  margin-top: 3.4rem;
  color: var(--first-color);
  font-size: 1.6rem;
  position: relative;
  animation: fadeUp .8s ease both;
}

/* subtle underline */
.hv-blog-content h2::after {
  content: "";
  width: 48px;
  height: 3px;
  background: var(--first-color);
  display: block;
  margin-top: .5rem;
  border-radius: 3px;
}

/* ===============================
   BLOG TABLE – REUSABLE COMPONENT
================================ */

.hv-blog-table-section {
  margin: 4rem 1rem;
}

.hv-blog-table-title {
  text-align: center;
  font-size: 1.5rem;
  margin-bottom: 1.5rem;
  color: var(--first-color);
}

.hv-blog-table {
  max-width: 900px;
  margin: auto;
  border-radius: 1.2rem;
  overflow: hidden;
  background: rgba(255,255,255,.03);
  backdrop-filter: blur(6px);
}

.hv-blog-table-row {
  display: grid;
  grid-template-columns: 1.2fr 1.5fr 1.3fr;
  padding: 1rem 1.2rem;
  border-bottom: 1px solid rgba(255,255,255,.08);
  font-size: .95rem;
}

.hv-blog-table-row span {
  opacity: .9;
}

/* Header Row */
.hv-blog-table-head {
  background: rgba(255,255,255,.06);
  font-weight: 700;
}

.hv-blog-table-row:last-child {
  border-bottom: none;
}

/* Hover Effect */
.hv-blog-table-row:not(.hv-blog-table-head):hover {
  background: rgba(255,255,255,.05);
  transition: .3s ease;
}

/* Responsive */
@media (max-width: 768px) {
  .hv-blog-table-row {
    grid-template-columns: 1fr;
    gap: .4rem;
  }

  .hv-blog-table-head {
    display: none;
  }

  .hv-blog-table-row span {
    font-size: .9rem;
  }
}


/* ---------- Highlights ---------- */
.hv-blog-highlights {
  margin: 3.5rem 1rem;
  padding: 3rem 1.6rem;
  border-radius: 1.4rem;
  background: linear-gradient(
    135deg,
    rgba(255,255,255,.05),
    rgba(255,255,255,.02)
  );
  animation: fadeUp .9s ease both;
}

.hv-blog-highlights ul {
  margin-top: 1.4rem;
  padding-left: 1.2rem;
}

.hv-blog-highlights li {
  margin-bottom: .9rem;
  line-height: 1.6;
}

/* ---------- CTA ---------- */
.hv-blog-cta {
  padding: 4.8rem 1rem;
  text-align: center;
  animation: fadeUp 1s ease both;
}

.hv-blog-btn {
  display: inline-block;
  margin-top: 1.6rem;
  padding: .95rem 2.4rem;
  background: var(--first-color);
  border-radius: .7rem;
  color: #000;
  font-weight: 700;
  transition: transform .3s ease, box-shadow .3s ease;
}

.hv-blog-btn:hover {
  transform: translateY(-4px);
  box-shadow: 0 15px 30px rgba(0,0,0,.45);
}

/* ---------- Back ---------- */
/* ============================================================
   BACK TO BLOGS - SIMPLE INTERACTIVE
   ============================================================ */

.hv-blog-back {
  padding: 50px 20px;
  text-align: center;
}

.hv-blog-back a {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  padding: 14px 30px;
  background: rgba(30,193,255,0.08);
  border: 1px solid rgba(30,193,255,0.25);
  border-radius: 50px;
  color: #1EC1FF;
  font-size: 1rem;
  font-weight: 600;
  text-decoration: none;
  transition: all 0.3s ease;
}

.hv-blog-back a:hover {
  background: rgba(30,193,255,0.15);
  border-color: #1EC1FF;
  transform: translateX(-5px);
  box-shadow: 0 0 20px rgba(30,193,255,0.3);
}

.hv-blog-back a:active {
  transform: translateX(-3px) scale(0.98);
}

/* ---------- Responsive ---------- */
@media (max-width: 768px) {
  .hv-blog-title {
    font-size: 2rem;
  }

  .hv-blog-content {
    padding: 2rem 1rem;
  }
}
