/* ═══════════════════════════════
   SINGLE POST
═══════════════════════════════ */
.grc-single-page {
  --p: #1B6CA8;
  --a: #2FBCD3;
  --dark: #1a1a2e;
}

/* ── Reset Astra containers ── */
#main.site-main,
#primary,
.ast-article-single,
.entry-content,
.site-content .ast-container {
  max-width: 100% !important;
  width: 100% !important;
  padding: 0 !important;
  margin: 0 !important;
  float: none !important;
}

.gs {
  font-family: 'Poppins', sans-serif;
}

/* ══ HERO — full-width image with overlay ══ */
.gs-hero {
  position: relative;
  height: 520px;
  overflow: hidden;
  background: var(--dark);
}

.gs-hero__img {
  position: absolute; inset: 0;
  width: 100%; height: 100%;
  object-fit: cover; display: block;
  transform: scale(1.04);
  transition: transform 6s ease;
}

.gs-hero__img.loaded { transform: scale(1); }

.gs-hero__overlay {
  position: absolute; inset: 0;
  background: linear-gradient(
    to bottom,
    rgba(26,26,46,.3) 0%,
    rgba(26,26,46,.55) 50%,
    rgba(26,26,46,.88) 100%
  );
}

/* no image fallback */
.gs-hero--plain {
  height: auto;
  background: var(--dark);
  padding: 140px 48px 72px;
}

.gs-hero--plain .gs-hero__overlay { display: none; }

.gs-hero__content {
  position: absolute;
  bottom: 0; left: 0; right: 0;
  padding: 0 48px 52px;
  z-index: 2;
  max-width: 860px;
}

.gs-hero--plain .gs-hero__content {
  position: relative;
  padding: 0;
  max-width: 860px;
  margin: 0 auto;
}

.gs-hero__date {
  display: inline-block;
  font-size: .68rem; font-weight: 700;
  letter-spacing: .18em; text-transform: uppercase;
  color: var(--a); margin-bottom: 14px;
}

.gs-hero__title {
  font-size: clamp(1.7rem, 4vw, 2.8rem);
  font-weight: 800; color: #fff;
  line-height: 1.18; margin: 0;
  letter-spacing: -.01em;
}

.gs-hero__bar {
  position: absolute; bottom: 0; left: 0;
  width: 100%; height: 4px;
  background: linear-gradient(90deg, var(--p), var(--a));
}

/* ══ CONTENT AREA ══ */
.gs-body {
  background: #f4f7fb;
  padding: 72px 48px 96px;
}

.gs-body__inner {
  max-width: 780px;
  margin: 0 auto;
}

/* article typography */
.gs-content {
  background: #fff;
  border-radius: 16px;
  padding: 52px 56px;
  box-shadow: 0 4px 32px rgba(26,26,46,.06);
  border: 1px solid #e4eaf3;
  font-size: .97rem;
  font-weight: 300;
  color: #2e3448;
  line-height: 1.9;
}

.gs-content h1, .gs-content h2, .gs-content h3,
.gs-content h4, .gs-content h5 {
  font-family: 'Poppins', sans-serif;
  font-weight: 700; color: var(--dark);
  margin: 1.8em 0 .6em; line-height: 1.3;
}

.gs-content h2 { font-size: 1.45rem; }
.gs-content h3 { font-size: 1.2rem; }

.gs-content p { margin: 0 0 1.4em; }

.gs-content a {
  color: var(--p); text-decoration: underline;
  text-decoration-color: rgba(27,108,168,.3);
  transition: color .2s, text-decoration-color .2s;
}

.gs-content a:hover {
  color: var(--a);
  text-decoration-color: var(--a);
}

.gs-content ul, .gs-content ol {
  margin: 0 0 1.4em 1.5em; padding: 0;
}

.gs-content li { margin-bottom: .5em; }

.gs-content blockquote {
  margin: 2em 0; padding: 20px 28px;
  border-left: 4px solid var(--a);
  background: #f0f8ff; border-radius: 0 10px 10px 0;
  font-style: italic; color: #4a5568;
}

.gs-content img {
  max-width: 100%; border-radius: 10px;
  margin: 1.5em 0; display: block;
}

.gs-content hr {
  border: none; border-top: 1px solid #e4eaf3;
  margin: 2.5em 0;
}

/* ══ BACK LINK ══ */
.gs-back {
  display: inline-flex; align-items: center; gap: 8px;
  font-size: .8rem; font-weight: 600;
  color: var(--p); text-decoration: none;
  margin-bottom: 32px;
  transition: gap .2s, color .2s;
}

.gs-back:hover { color: var(--a); gap: 12px; }

.gs-back svg {
  width: 14px; height: 14px;
  stroke: currentColor; fill: none;
  stroke-width: 2; stroke-linecap: round; stroke-linejoin: round;
}

/* ══ OTHER POSTS ══ */
.gs-more {
  background: #fff;
  padding: 80px 48px;
  border-top: 1px solid #e4eaf3;
}

.gs-more__inner { max-width: 1180px; margin: 0 auto; }

.gs-more__head {
  display: flex; align-items: flex-end;
  justify-content: space-between;
  margin-bottom: 40px;
  gap: 16px;
}

.gs-more__eyebrow {
  font-size: .65rem; font-weight: 700;
  letter-spacing: .2em; text-transform: uppercase;
  color: var(--a); margin-bottom: 6px;
}

.gs-more__title {
  font-size: 1.6rem; font-weight: 800;
  color: var(--dark); margin: 0;
}

.gs-more__all {
  display: inline-flex; align-items: center; gap: 6px;
  font-size: .8rem; font-weight: 600;
  color: var(--p); text-decoration: none;
  white-space: nowrap;
  transition: gap .2s, color .2s;
  flex-shrink: 0;
}

.gs-more__all:hover { color: var(--a); gap: 10px; }

.gs-more__all svg {
  width: 13px; height: 13px;
  stroke: currentColor; fill: none;
  stroke-width: 2; stroke-linecap: round; stroke-linejoin: round;
}

.gs-more__grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 28px;
}

/* reuse blog card styles */
.gs-card {
  background: #f4f7fb;
  border-radius: 16px; overflow: hidden;
  border: 1px solid #e4eaf3;
  display: flex; flex-direction: column;
  text-decoration: none;
  transition: transform .28s, box-shadow .28s, border-color .28s;
}

.gs-card:hover {
  transform: translateY(-5px);
  box-shadow: 0 18px 44px rgba(27,108,168,.12);
  border-color: #b8d4ec;
}

.gs-card__img {
  aspect-ratio: 16/9; overflow: hidden;
  background: #dce8f5; flex-shrink: 0;
  position: relative;
}

.gs-card__img img {
  width: 100%; height: 100%;
  object-fit: cover; display: block;
  transition: transform .6s ease;
}

.gs-card:hover .gs-card__img img { transform: scale(1.05); }

.gs-card__img-placeholder {
  width: 100%; height: 100%;
  display: flex; align-items: center; justify-content: center;
  background: linear-gradient(135deg, var(--p), var(--a));
}

.gs-card__img-placeholder svg {
  width: 36px; height: 36px;
  stroke: rgba(255,255,255,.5); fill: none;
  stroke-width: 1.5; stroke-linecap: round; stroke-linejoin: round;
}

.gs-card__img::after {
  content: ''; position: absolute;
  top: 0; left: 0; right: 0; height: 3px;
  background: linear-gradient(90deg, var(--p), var(--a));
  opacity: 0; transition: opacity .28s;
}

.gs-card:hover .gs-card__img::after { opacity: 1; }

.gs-card__body {
  padding: 22px 22px 18px;
  display: flex; flex-direction: column; flex: 1;
}

.gs-card__date {
  font-size: .65rem; font-weight: 600;
  letter-spacing: .12em; text-transform: uppercase;
  color: var(--a); margin-bottom: 8px;
}

.gs-card__title {
  font-size: .95rem; font-weight: 700;
  color: var(--dark); line-height: 1.4;
  margin: 0 0 10px;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
  transition: color .2s;
}

.gs-card:hover .gs-card__title { color: var(--p); }

.gs-card__excerpt {
  font-size: .8rem; font-weight: 300;
  color: #5a6478; line-height: 1.7;
  margin: 0 0 16px; flex: 1;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

.gs-card__read {
  display: inline-flex; align-items: center; gap: 5px;
  font-size: .72rem; font-weight: 600;
  color: var(--p); transition: gap .2s;
}

.gs-card:hover .gs-card__read { gap: 9px; }

.gs-card__read svg {
  width: 12px; height: 12px;
  stroke: var(--p); fill: none;
  stroke-width: 2; stroke-linecap: round; stroke-linejoin: round;
}

/* responsive */
@media (max-width: 860px) {
  .gs-hero { height: 380px; }
  .gs-hero__content { padding: 0 24px 36px; }
  .gs-body { padding: 48px 20px 72px; }
  .gs-content { padding: 32px 24px; }
  .gs-more { padding: 60px 20px; }
  .gs-more__grid { grid-template-columns: 1fr; }
}
