/* Related articles belong to the template, never to article body patterns. */
.gn-blog-related {
  margin-block: var(--gn-space-12);
  padding-top: var(--gn-space-8);
  border-top: 1px solid var(--gn-color-border);
}

.gn-blog-related h2 {
  margin: 0 0 var(--gn-space-5);
  font-size: var(--gn-fs-cta-title);
  line-height: var(--gn-lh-heading);
}
.gn-blog-related .gn-related-works__track { margin: 0; }
.gn-blog-related .gn-work-card__thumb { aspect-ratio: 1200 / 630; }

.gn-blog-related__carousel { position: relative; }

.gn-blog-related__carousel:has(.gn-related-works__controls:not([hidden])) {
  padding-inline: var(--gn-space-12);
}

.gn-blog-related .gn-related-works__controls {
  position: absolute;
  inset: 0;
  justify-content: space-between;
  margin: 0;
  pointer-events: none;
}

.gn-blog-related__arrow {
  display: grid;
  place-items: center;
  width: var(--gn-space-12);
  height: var(--gn-space-12);
  padding: 0;
  border: 0;
  background: transparent;
  color: var(--gn-color-primary);
  cursor: pointer;
  pointer-events: auto;
}

.gn-blog-related__arrow:hover:not(:disabled) {
  color: var(--gn-color-primary-hover);
}

@media (width >= 768px) {
  .gn-blog-related .gn-related-works__track { grid-auto-columns: calc((100% - var(--gn-space-6)) / 2); }
}

.gn-blog-related .gn-work-card__thumb img { object-fit: contain; }

:where(.gn-blog-related) .gn-work-card__inner:hover .gn-work-card__thumb img {
  transform: none;
}

.gn-blog-byline {
  display: inline-block;
  margin-inline-start: var(--gn-space-4);
}

.gn-blog-byline a {
  text-decoration: underline;
  text-underline-offset: 0.2em;
}

.gn-blog-author {
  display: grid;
  grid-template-columns: 7rem minmax(0, 1fr);
  gap: var(--gn-space-6);
  padding: var(--gn-space-8);
  margin-block: var(--gn-space-12);
  background: var(--gn-color-bg-service);
  border: 1px solid var(--gn-color-border);
  border-radius: var(--gn-radius);
}

.gn-blog-author__image {
  display: block;
  width: 100%;
  height: auto;
  aspect-ratio: 1;
  object-fit: cover;
  border-radius: 50%;
}

.gn-blog-author__label {
  color: var(--gn-color-primary);
  font-size: var(--gn-fs-small);
  margin-bottom: var(--gn-space-2);
}

.gn-blog-author h2 {
  font-size: var(--gn-fs-cta-title);
  margin-bottom: var(--gn-space-2);
}

.gn-blog-author__role {
  font-size: var(--gn-fs-small);
  margin-bottom: var(--gn-space-4);
}
.gn-blog-author p { line-height: var(--gn-lh-body); }

.gn-blog-author__link {
  display: block;
  margin-top: var(--gn-space-4);
  text-align: right;
  text-decoration: underline;
  text-underline-offset: 0.2em;
}

@media (width <= 600px) {
  .gn-blog-author {
    grid-template-columns: minmax(0, 1fr);
    padding: var(--gn-space-5);
  }
  .gn-blog-author__image { width: var(--gn-space-20); }
}

/* Blog-only reading scale. Shared site tokens remain unchanged. */
:is(.single-blog .gn-entry-content, .gn-blog-prose, .editor-styles-wrapper) {
  --gn-blog-h2: 1.625rem;
  --gn-blog-h3: 1.375rem;
  --gn-blog-h4: 1.125rem;

  font-family: var(--gn-font-jp);
  font-size: var(--gn-fs-body);
  line-height: var(--gn-lh-body);
  color: var(--gn-color-text);
  overflow-wrap: anywhere;
}

.single-blog .gn-article__title,
.editor-styles-wrapper .editor-post-title__input {
  --gn-blog-title: 2rem;

  font-size: var(--gn-blog-title);
  line-height: var(--gn-lh-heading);
  letter-spacing: 0;
}

:is(.single-blog .gn-entry-content, .gn-blog-prose, .editor-styles-wrapper) :is(h2, h3, h4) {
  font-weight: 700;
  line-height: var(--gn-lh-heading);
  letter-spacing: 0;
  scroll-margin-top: var(--gn-space-20);
}

:is(.single-blog .gn-entry-content, .gn-blog-prose, .editor-styles-wrapper) h2 {
  font-size: var(--gn-blog-h2);
  margin-block: var(--gn-space-12) var(--gn-space-5);
  padding-bottom: var(--gn-space-3);
  border-bottom: 1px solid var(--gn-color-border);
}

:is(.single-blog .gn-entry-content, .gn-blog-prose, .editor-styles-wrapper) h3 {
  font-size: var(--gn-blog-h3);
  margin-block: var(--gn-space-8) var(--gn-space-4);
}

:is(.single-blog .gn-entry-content, .gn-blog-prose, .editor-styles-wrapper) h4 {
  font-size: var(--gn-blog-h4);
  margin-block: var(--gn-space-6) var(--gn-space-3);
}

:is(.single-blog .gn-entry-content, .gn-blog-prose, .editor-styles-wrapper) :is(p, ul, ol, figure, blockquote, .wp-block-group) {
  margin-block: var(--gn-space-6);
}

:is(.single-blog .gn-entry-content, .gn-blog-prose, .editor-styles-wrapper) :is(ul, ol) {
  padding-inline-start: var(--gn-space-6);
}
:is(.single-blog .gn-entry-content, .gn-blog-prose, .editor-styles-wrapper) ul { list-style: disc; }
:is(.single-blog .gn-entry-content, .gn-blog-prose, .editor-styles-wrapper) ol { list-style: decimal; }
:is(.single-blog .gn-entry-content, .gn-blog-prose, .editor-styles-wrapper) li + li { margin-top: var(--gn-space-2); }
:is(.single-blog .gn-entry-content, .gn-blog-prose, .editor-styles-wrapper) li > :is(ul, ol) { margin-block: var(--gn-space-2); }

:is(.single-blog .gn-entry-content, .gn-blog-prose, .editor-styles-wrapper) a:not(.wp-block-button__link, .gn-btn) {
  color: var(--gn-color-primary);
  text-decoration: underline;
  text-underline-offset: 0.2em;
}

:is(.single-blog .gn-entry-content, .gn-blog-prose, .editor-styles-wrapper) :is(a, [tabindex]):focus-visible {
  outline: 2px solid var(--gn-color-primary);
  outline-offset: 4px;
}

:is(.single-blog .gn-entry-content, .gn-blog-prose, .editor-styles-wrapper) :is(.is-style-gn-blog-point, .is-style-gn-blog-note, .is-style-gn-blog-cta) {
  padding: var(--gn-space-6);
  border: 1px solid var(--gn-color-border);
  border-radius: var(--gn-radius);
}

:is(.single-blog .gn-entry-content, .gn-blog-prose, .editor-styles-wrapper) .wp-block-buttons {
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-end;
  gap: var(--gn-space-4);
}

:is(.single-blog .gn-entry-content, .gn-blog-prose, .editor-styles-wrapper) .wp-block-button__link {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: var(--gn-space-3);
  min-height: 48px;
  max-width: 100%;
  padding: var(--gn-space-3) var(--gn-space-6);
  border: 1px solid var(--gn-color-primary);
  border-radius: var(--gn-radius-pill);
  background: var(--gn-color-primary);
  color: var(--gn-color-invert-text);
  font: inherit;
  font-weight: 600;
  line-height: 1.6;
  text-align: center;
  text-decoration: none;
  box-shadow: none;
  transition: box-shadow var(--gn-tx), border-color var(--gn-tx);
}

:is(.single-blog .gn-entry-content, .gn-blog-prose, .editor-styles-wrapper) .is-style-gn-blog-point {
  font-weight: 700;
  background: var(--gn-color-primary-soft);
}

:is(.single-blog .gn-entry-content, .gn-blog-prose, .editor-styles-wrapper) .is-style-gn-blog-note {
  background: var(--gn-color-bg-sub);
}

:is(.single-blog .gn-entry-content, .gn-blog-prose, .editor-styles-wrapper) .is-style-gn-blog-cta {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: center;
  gap: var(--gn-space-6);
  padding: var(--gn-space-6);
  border-color: var(--gn-color-blog-cta-border);
  background: var(--gn-color-blog-cta-bg);
}
:is(.single-blog .gn-entry-content, .gn-blog-prose, .editor-styles-wrapper) :is(.is-style-gn-blog-point, .is-style-gn-blog-note, .is-style-gn-blog-cta) > :first-child { margin-top: 0; }
:is(.single-blog .gn-entry-content, .gn-blog-prose, .editor-styles-wrapper) :is(.is-style-gn-blog-point, .is-style-gn-blog-note, .is-style-gn-blog-cta) > :last-child { margin-bottom: 0; }

/* Flatten the classic-theme group wrapper so front-end and editor share a grid. */
:is(.single-blog .gn-entry-content, .gn-blog-prose, .editor-styles-wrapper) .is-style-gn-blog-cta > .wp-block-group__inner-container { display: contents; }

/* CTA copy and action use separate native groups with a shared baseline. */
:is(.single-blog .gn-entry-content, .gn-blog-prose, .editor-styles-wrapper) .is-style-gn-blog-cta :is(.wp-block-group, .wp-block-buttons) {
  margin: 0;
  min-width: 0;
}
:is(.single-blog .gn-entry-content, .gn-blog-prose, .editor-styles-wrapper) .is-style-gn-blog-cta h3 { margin: 0 0 var(--gn-space-2); }

:is(.single-blog .gn-entry-content, .gn-blog-prose, .editor-styles-wrapper) .is-style-gn-blog-cta p {
  margin: 0;
  color: var(--gn-color-text-secondary);
}

:is(.single-blog .gn-entry-content, .gn-blog-prose, .editor-styles-wrapper) .is-style-gn-blog-cta .wp-block-buttons {
  justify-self: end;
  justify-content: flex-end;
}

:is(.single-blog .gn-entry-content, .gn-blog-prose, .editor-styles-wrapper) .is-style-gn-blog-cta .wp-block-button__link {
  min-width: 12rem;
  min-height: 44px;
  padding-block: var(--gn-space-2);
  font-size: var(--gn-fs-small);
}

:is(.single-blog .gn-entry-content, .gn-blog-prose, .editor-styles-wrapper) blockquote {
  padding: var(--gn-space-5) var(--gn-space-6);
  border: 1px solid var(--gn-color-border);
  border-radius: var(--gn-radius);
  background: var(--gn-color-bg-sub);
}

:is(.single-blog .gn-entry-content, .gn-blog-prose, .editor-styles-wrapper) blockquote::before {
  content: "";
  display: block;
  width: var(--gn-space-8);
  height: var(--gn-space-6);
  margin-bottom: var(--gn-space-3);
  background-color: var(--gn-color-primary);
  opacity: 0.35;
  mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 32 24'%3E%3Cpath d='M0 14C0 6 4 1 12 0v5c-4 1-6 3-6 6h7v13H0zm19 0c0-8 4-13 12-14v5c-4 1-6 3-6 6h7v13H19z'/%3E%3C/svg%3E") center / contain no-repeat;
}

:is(.single-blog .gn-entry-content, .gn-blog-prose, .editor-styles-wrapper) blockquote cite {
  text-align: right;
}
:is(.single-blog .gn-entry-content, .gn-blog-prose, .editor-styles-wrapper) blockquote > :first-child { margin-top: 0; }
:is(.single-blog .gn-entry-content, .gn-blog-prose, .editor-styles-wrapper) blockquote > :last-child { margin-bottom: 0; }

:is(.single-blog .gn-entry-content, .gn-blog-prose, .editor-styles-wrapper) :is(cite, figcaption) {
  display: block;
  margin-top: var(--gn-space-3);
  font-size: var(--gn-fs-small);
  line-height: 1.7;
  font-style: normal;
  color: var(--gn-color-text-secondary);
}
:is(.single-blog .gn-entry-content, .gn-blog-prose, .editor-styles-wrapper) .wp-block-table { overflow-x: auto; }

:is(.single-blog .gn-entry-content, .gn-blog-prose, .editor-styles-wrapper) table {
  width: 100%;
  border-collapse: collapse;
  font-size: var(--gn-fs-body);
  line-height: 1.8;
}

:is(.single-blog .gn-entry-content, .gn-blog-prose, .editor-styles-wrapper) :is(th, td) {
  padding: var(--gn-space-4);
  border: 1px solid var(--gn-color-border);
  text-align: left;
  vertical-align: top;
  min-width: 8rem;
}

:is(.single-blog .gn-entry-content, .gn-blog-prose, .editor-styles-wrapper) th {
  background: var(--gn-color-bg-muted);
  font-weight: 700;
}

:is(.single-blog .gn-entry-content, .gn-blog-prose, .editor-styles-wrapper) .wp-block-button__link:hover {
  border-color: var(--gn-color-primary-hover);
  box-shadow: inset 0 0 0 3px var(--gn-color-primary-hover);
  transform: none;
}

:is(.single-blog .gn-entry-content, .gn-blog-prose, .editor-styles-wrapper) .wp-block-image img {
  max-width: 100%;
  height: auto;
}
.editor-styles-wrapper .wp-block { max-width: var(--gn-container-narrow); }

@media (width <= 767px) {
  :is(.single-blog .gn-entry-content, .gn-blog-prose, .editor-styles-wrapper) {
    --gn-blog-h2: 1.375rem;
    --gn-blog-h3: 1.25rem;
  }

  .single-blog .gn-article__title,
  .editor-styles-wrapper .editor-post-title__input { font-size: var(--gn-fs-page-title-mobile); }
  :is(.single-blog .gn-entry-content, .gn-blog-prose, .editor-styles-wrapper) h2 { margin-top: var(--gn-space-10); }
  :is(.single-blog .gn-entry-content, .gn-blog-prose, .editor-styles-wrapper) :is(.is-style-gn-blog-point, .is-style-gn-blog-note, .is-style-gn-blog-cta, blockquote) { padding: var(--gn-space-5); }

  :is(.single-blog .gn-entry-content, .gn-blog-prose, .editor-styles-wrapper) .is-style-gn-blog-cta {
    grid-template-columns: minmax(0, 1fr);
    gap: var(--gn-space-4);
    padding: var(--gn-space-4);
  }
}

@media (prefers-reduced-motion: reduce) {
  :is(.single-blog .gn-entry-content, .gn-blog-prose, .editor-styles-wrapper) .wp-block-button__link { transition: none; }
}


