/* ==========================================================================
   Langsen Theme - News Detail Page Styles
   Reference: media_1790669470244.png
   ========================================================================== */

.langsen-news-detail {
  background: #ffffff;
  color: #0c2340;
  font-family: 'Plus Jakarta Sans', -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;
  overflow-x: hidden;
}

/* --------------------------------------------------------------------------
   1. Hero Banner
   -------------------------------------------------------------------------- */
.langsen-news-detail .ls-detail-hero {
  position: relative;
  background-color: #0a2747;
  overflow: hidden;
  display: flex;
  align-items: center;
}

.langsen-news-detail .ls-detail-hero > img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center 60%;
  filter: brightness(0.68);
}

.langsen-news-detail .ls-detail-hero .container {
  position: relative;
  z-index: 2;
  width: 100%;
}

.ls-detail-hero-inner {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 10px;
}

.ls-detail-hero-inner h1 {
  margin: 0;
  color: #ffffff;
  font-family: 'Outfit', sans-serif;
  font-size: 34px;
  font-weight: 800;
  letter-spacing: -0.5px;
  line-height: 1.15;
}

.langsen-news-detail .langsen-hero-breadcrumb {
  display: flex;
  align-items: center;
  gap: 8px;
  color: rgba(255, 255, 255, 0.9);
  font-size: 13px;
  font-weight: 500;
}

.langsen-news-detail .langsen-hero-breadcrumb a {
  color: rgba(255, 255, 255, 0.9);
  text-decoration: none;
  transition: color 0.2s ease;
}

.langsen-news-detail .langsen-hero-breadcrumb a:hover {
  color: #ffffff;
  text-decoration: underline;
}

.langsen-news-detail .langsen-hero-breadcrumb .bc-sep {
  color: rgba(255, 255, 255, 0.6);
  font-size: 12px;
}

.langsen-news-detail .langsen-hero-breadcrumb span:last-child {
  color: #ffffff;
  font-weight: 600;
}

/* --------------------------------------------------------------------------
   2. Main Container & Article
   -------------------------------------------------------------------------- */
.ls-detail-container {
  padding: 48px 0 72px;
}

.ls-news-article {
  width: 100%;
}

/* --------------------------------------------------------------------------
   3. Article Header (Date Badge + Title & Lead)
   -------------------------------------------------------------------------- */
.ls-detail-header {
  display: flex;
  align-items: flex-start;
  gap: 34px;
  margin-bottom: 28px;
}

.ls-detail-date {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  min-width: 86px;
  padding-right: 34px;
  border-right: 1.5px solid #eef2f6;
  flex-shrink: 0;
}

.ls-detail-date strong {
  font-family: 'Outfit', sans-serif;
  font-size: 44px;
  line-height: 1;
  font-weight: 800;
  color: #ee141d;
}

.ls-detail-date span {
  font-size: 12.5px;
  font-weight: 600;
  color: #94a3b8;
  text-transform: uppercase;
  letter-spacing: 0.6px;
  margin-top: 6px;
}

.ls-detail-heading {
  flex: 1;
}

.ls-detail-heading h1 {
  margin: 0 0 12px;
  color: #0c2340;
  font-family: 'Outfit', sans-serif;
  font-size: 34px;
  font-weight: 800;
  line-height: 1.25;
  letter-spacing: -0.3px;
}

.ls-detail-red-bar {
  width: 32px;
  height: 3.5px;
  background-color: #ee141d;
  border-radius: 2px;
  margin-bottom: 16px;
}

.ls-detail-lead {
  margin: 0;
  color: #64748b;
  font-size: 16px;
  line-height: 1.72;
}

/* --------------------------------------------------------------------------
   4. Featured Cover Image
   -------------------------------------------------------------------------- */
.ls-detail-cover-box {
  width: 100%;
  margin-bottom: 34px;
  border-radius: 8px;
  overflow: hidden;
  box-shadow: 0 6px 20px rgba(12, 35, 64, 0.05);
}

.ls-detail-cover {
  display: block;
  width: 100%;
  max-height: 520px;
  object-fit: cover;
  object-position: center;
}

/* --------------------------------------------------------------------------
   5. Article Content & Typography
   -------------------------------------------------------------------------- */
.ls-detail-content {
  color: #556987;
  font-size: 15.5px;
  line-height: 1.78;
}

.ls-detail-content h2,
.ls-detail-content h3,
.ls-detail-content h4 {
  margin: 32px 0 12px;
  color: #0c2340;
  font-family: 'Outfit', sans-serif;
  font-size: 20px;
  font-weight: 700;
  line-height: 1.35;
}

.ls-detail-content p {
  margin: 0 0 16px;
}

.ls-detail-content img {
  max-width: 100%;
  height: auto;
  border-radius: 6px;
}

/* 3-Column Image Gallery inside content */
.ls-detail-gallery {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 18px;
  margin: 24px 0 28px;
}

.ls-gallery-item {
  position: relative;
  overflow: hidden;
  border-radius: 6px;
  aspect-ratio: 16 / 9;
  background-color: #f1f5f9;
  box-shadow: 0 3px 12px rgba(12, 35, 64, 0.04);
}

.ls-gallery-item img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 0.4s ease;
}

.ls-gallery-item:hover img {
  transform: scale(1.06);
}

/* Conclusion Callout Box */
.ls-detail-callout {
  display: flex;
  align-items: flex-start;
  gap: 20px;
  padding: 22px 26px;
  margin-top: 32px;
  background-color: #fdf5f5;
  border: 1px solid #fee2e2;
  border-radius: 8px;
}

.ls-callout-icon {
  color: #ee141d;
  flex-shrink: 0;
  margin-top: 2px;
  display: flex;
  align-items: center;
  justify-content: center;
}

.ls-callout-icon svg {
  display: block;
}

.ls-callout-body {
  flex: 1;
}

.ls-callout-body h4 {
  margin: 0 0 6px;
  font-family: 'Outfit', sans-serif;
  font-size: 18px;
  font-weight: 700;
  color: #ee141d;
}

.ls-callout-body p {
  margin: 0;
  font-size: 15px;
  line-height: 1.68;
  color: #64748b;
}

/* --------------------------------------------------------------------------
   6. Previous / Next Bar
   -------------------------------------------------------------------------- */
.ls-detail-pagination {
  margin-top: 48px;
  background: #ffffff;
  border: 1px solid #edf2f7;
  border-radius: 8px;
  display: flex;
  align-items: stretch;
  box-shadow: 0 3px 12px rgba(12, 35, 64, 0.03);
}

.ls-detail-page-item {
  flex: 1;
  padding: 20px 28px;
  display: flex;
  align-items: center;
}

.ls-detail-page-sep {
  width: 1px;
  background: #edf2f7;
  align-self: stretch;
}

.ls-page-link {
  display: flex;
  align-items: center;
  gap: 16px;
  text-decoration: none;
  color: inherit;
  width: 100%;
}

.ls-detail-circle {
  display: inline-flex;
  width: 40px;
  height: 40px;
  border-radius: 50%;
  background-color: #f1f5f9;
  color: #64748b;
  align-items: center;
  justify-content: center;
  font-size: 17px;
  font-weight: 600;
  flex-shrink: 0;
  transition: all 0.25s ease;
}

.ls-page-text {
  display: flex;
  flex-direction: column;
  overflow: hidden;
}

.ls-page-text small {
  font-size: 12px;
  font-weight: 600;
  color: #94a3b8;
  text-transform: uppercase;
  letter-spacing: 0.5px;
  margin-bottom: 4px;
}

.ls-page-text strong {
  font-size: 15.5px;
  font-weight: 700;
  color: #0c2340;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  transition: color 0.25s ease;
}

.ls-detail-next .ls-page-link {
  justify-content: flex-end;
}

.ls-detail-next .ls-page-text {
  text-align: right;
}

.ls-page-link:hover .ls-detail-circle {
  background-color: #ee141d;
  color: #ffffff;
}

.ls-page-link:hover strong {
  color: #ee141d;
}

/* --------------------------------------------------------------------------
   7. Related News Section
   -------------------------------------------------------------------------- */
.ls-related-news {
  width: 100%;
  margin-top: 56px;
}

.ls-related-heading {
  display: flex;
  align-items: center;
  gap: 12px;
  margin-bottom: 24px;
}

.ls-heading-bar {
  width: 22px;
  height: 3.5px;
  background-color: #ee141d;
  border-radius: 2px;
}

.ls-related-heading h2 {
  margin: 0;
  font-family: 'Outfit', sans-serif;
  font-size: 22px;
  font-weight: 800;
  color: #0c2340;
  letter-spacing: 0.3px;
}

.ls-related-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 26px;
}

.ls-related-card {
  background: #ffffff;
  border-radius: 8px;
  overflow: hidden;
  border: 1px solid #edf2f7;
  box-shadow: 0 4px 16px rgba(12, 35, 64, 0.04);
  text-decoration: none;
  display: flex;
  flex-direction: column;
  transition: all 0.3s cubic-bezier(0.165, 0.84, 0.44, 1);
}

.ls-related-card:hover {
  transform: translateY(-4px);
  box-shadow: 0 12px 26px rgba(12, 35, 64, 0.09);
  border-color: #e2e8f0;
}

.ls-related-thumb {
  width: 100%;
  height: 165px;
  overflow: hidden;
  position: relative;
  background-color: #f1f5f9;
}

.ls-related-thumb img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 0.45s ease;
}

.ls-related-card:hover .ls-related-thumb img {
  transform: scale(1.06);
}

.ls-related-copy {
  display: flex;
  align-items: center;
  gap: 16px;
  padding: 16px 18px;
  min-height: 72px;
  background-color: #ffffff;
}

.ls-related-date {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  min-width: 52px;
  padding-right: 14px;
  border-right: 1px solid #edf2f7;
  flex-shrink: 0;
}

.ls-related-date strong {
  font-family: 'Outfit', sans-serif;
  font-size: 24px;
  line-height: 1;
  font-weight: 800;
  color: #0c2340;
}

.ls-related-date small {
  font-size: 10px;
  font-weight: 600;
  color: #94a3b8;
  text-transform: uppercase;
  margin-top: 4px;
}

.ls-related-title {
  flex: 1;
  font-family: 'Plus Jakarta Sans', sans-serif;
  font-size: 15px;
  font-weight: 700;
  color: #062a63;
  line-height: 1.4;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
  transition: color 0.25s ease;
}

.ls-related-card:hover .ls-related-title {
  color: #ee141d;
}

.ls-related-arrow {
  color: #ee141d;
  font-size: 18px;
  font-weight: 700;
  flex-shrink: 0;
  transition: transform 0.25s ease;
}

.ls-related-card:hover .ls-related-arrow {
  transform: translateX(4px);
}

/* --------------------------------------------------------------------------
   8. Bottom CTA Banner
   -------------------------------------------------------------------------- */
.ls-detail-cta {
  background: linear-gradient(rgba(10, 39, 71, 0.65), rgba(10, 39, 71, 0.75)), url('../images/product-cta-bg.jpg') center/cover no-repeat;
  padding: 60px 0;
  color: #ffffff;
  margin-top: 40px;
}

.ls-detail-cta .container {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 32px;
}

.ls-detail-cta-text h2 {
  font-family: 'Outfit', sans-serif;
  font-size: 28px;
  font-weight: 800;
  color: #ffffff;
  margin: 0 0 8px;
  letter-spacing: -0.3px;
}

.ls-detail-cta-text p {
  font-size: 14px;
  color: rgba(255, 255, 255, 0.85);
  margin: 0;
}

.ls-detail-cta-btn {
  display: inline-flex;
  align-items: center;
  gap: 12px;
  background-color: #ee141d;
  color: #ffffff;
  font-family: 'Outfit', sans-serif;
  font-size: 14px;
  font-weight: 700;
  padding: 13px 30px;
  border-radius: 4px;
  text-decoration: none;
  white-space: nowrap;
  transition: all 0.3s ease;
  box-shadow: 0 4px 14px rgba(238, 20, 29, 0.3);
}

.ls-detail-cta-btn:hover {
  background-color: #d01119;
  transform: translateY(-2px);
  box-shadow: 0 6px 18px rgba(238, 20, 29, 0.45);
  color: #ffffff;
}

.ls-detail-cta-btn .cta-arrow {
  font-size: 16px;
  transition: transform 0.25s ease;
}

.ls-detail-cta-btn:hover .cta-arrow {
  transform: translateX(3px);
}

/* --------------------------------------------------------------------------
   9. Responsive Design
   -------------------------------------------------------------------------- */
@media (max-width: 992px) {
  .ls-related-grid {
    grid-template-columns: repeat(2, 1fr);
  }

  .ls-detail-cta .container {
    flex-direction: column;
    text-align: center;
    gap: 20px;
  }
}

@media (max-width: 768px) {
  .ls-detail-hero-inner h1 {
    font-size: 26px;
  }

  .ls-detail-container {
    padding: 32px 16px 50px;
  }

  .ls-detail-header {
    flex-direction: column;
    gap: 18px;
  }

  .ls-detail-date {
    flex-direction: row;
    align-items: baseline;
    gap: 10px;
    border-right: none;
    border-bottom: 1.5px solid #eef2f6;
    padding-right: 0;
    padding-bottom: 12px;
    width: 100%;
    justify-content: flex-start;
  }

  .ls-detail-date strong {
    font-size: 30px;
  }

  .ls-detail-heading h1 {
    font-size: 22px;
  }

  .ls-detail-gallery {
    grid-template-columns: 1fr;
    gap: 14px;
  }

  .ls-detail-pagination {
    flex-direction: column;
  }

  .ls-detail-page-sep {
    width: 100%;
    height: 1px;
  }

  .ls-detail-next .ls-page-link {
    justify-content: flex-start;
  }

  .ls-detail-next .ls-page-text {
    text-align: left;
    order: 2;
  }

  .ls-detail-next .ls-detail-circle {
    order: 1;
  }

  .ls-related-grid {
    grid-template-columns: 1fr;
    gap: 16px;
  }

  .ls-detail-cta-text h2 {
    font-size: 22px;
  }
}
