/* Editorial archive and articles */
.gp-editorial-archive-hero,
.gp-editorial-hero {
  padding: clamp(48px, 8vw, 96px) 0 clamp(28px, 5vw, 54px);
  border-bottom: 1px solid var(--gp-pink);
}

.gp-editorial-archive-hero h1,
.gp-editorial-hero h1 {
  margin: 10px 0 18px;
  max-width: 1050px;
  font-size: clamp(3rem, 9vw, 8rem);
  line-height: .9;
}

.gp-editorial-archive-hero p,
.gp-editorial-lead {
  max-width: 780px;
  color: var(--gp-muted);
  font-size: clamp(1.05rem, 2vw, 1.35rem);
}

.gp-editorial-filters {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-top: 28px;
}

.gp-editorial-search { margin-top: 22px; }
.gp-editorial-search label { display: flex; align-items: center; gap: 10px; padding: 0 16px; border: 1px solid var(--gp-border); border-radius: var(--gp-radius-sm); background: var(--gp-surface); }
.gp-editorial-search-icon { flex: 0 0 auto; filter: grayscale(1); }
.gp-editorial-search input[type="search"] {
  width: 100%;
  min-height: 58px;
  padding: 14px 18px;
  border: 0;
  background: transparent;
  color: var(--gp-text);
  font: inherit;
  font-size: 1.05rem;
}
.gp-editorial-search label:focus-within { border-color: var(--gp-pink); outline: 2px solid var(--gp-pink); outline-offset: 2px; }
.gp-editorial-search input[type="search"]:focus { outline: 0; }

.gp-editorial-filters a,
.gp-editorial-context a,
.gp-editorial-context span {
  padding: 8px 12px;
  border: 1px solid var(--gp-border);
  border-radius: var(--gp-radius-sm);
  color: var(--gp-muted);
  font-weight: 800;
}

.gp-editorial-filters a:hover,
.gp-editorial-filters a:focus-visible,
.gp-editorial-filters a[aria-current="page"] {
  border-color: var(--gp-pink);
  background: var(--gp-pink);
  color: #fff;
}

.gp-editorial-card a:focus-visible,
.gp-editorial-game-box:focus-visible,
.gp-editorial-game-articles a:focus-visible {
  outline: 3px solid var(--gp-pink);
  outline-offset: 3px;
}

.gp-editorial-archive-content { padding: clamp(34px, 6vw, 72px) 0; }
.gp-editorial-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: clamp(18px, 3vw, 30px); }

.gp-editorial-card {
  min-width: 0;
  overflow: hidden;
  border: 1px solid var(--gp-border);
  border-radius: var(--gp-radius);
  background: var(--gp-surface);
}

.gp-editorial-card.is-featured {
  grid-column: 1 / -1;
  display: grid;
  grid-template-columns: minmax(0, 1.35fr) minmax(300px, 1fr);
}

.gp-editorial-card-media {
  display: flex;
  min-height: 220px;
  overflow: hidden;
  background: var(--gp-surface-2);
}

.gp-editorial-card-media img {
  width: 100%;
  aspect-ratio: 16 / 10;
  object-fit: cover;
  transition: transform .25s ease;
}

.gp-editorial-card:hover .gp-editorial-card-media img { transform: scale(1.025); }
.gp-editorial-card-body { padding: clamp(18px, 3vw, 28px); }

.gp-editorial-card-context,
.gp-editorial-byline {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  gap: 10px;
  color: var(--gp-muted);
  font-size: .86rem;
}

.gp-editorial-card-context span { color: var(--gp-pink); font-weight: 900; }
.gp-editorial-card h2 { margin: 12px 0 10px; font-size: clamp(1.55rem, 3vw, 2.4rem); line-height: 1.05; }
.gp-editorial-card p { margin: 0; color: var(--gp-muted); }
.gp-editorial-card-author { display: block; margin-top: 18px; font-weight: 800; }
.gp-editorial-placeholder { display: grid; width: 100%; place-items: center; color: var(--gp-muted); font-weight: 900; }
.gp-editorial-empty { padding: 34px; border: 1px solid var(--gp-border); color: var(--gp-muted); }
.gp-editorial-home-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.gp-editorial-home-grid .gp-editorial-card h2 { font-size: clamp(1.25rem, 2vw, 1.8rem); }
.gp-home-editorial-cta { margin-top: clamp(24px, 4vw, 40px); }
.gp-home-editorial-cta .gp-button:hover { transform: none; }

/* Editorial typography intentionally overrides the global heading scale only inside editorial views. */
.gp-home-editorial .gp-module-head h2 {
  font-size: clamp(2rem, 4vw, 2.75rem) !important;
  line-height: 1.05 !important;
}

.gp-editorial-archive-hero h1,
.gp-editorial-hero h1 {
  font-size: clamp(2.5rem, 5vw, 4rem) !important;
  line-height: 1.02 !important;
  text-wrap: balance;
}

.gp-editorial-card h2,
.gp-editorial-grid.compact .gp-editorial-card h2 {
  margin: 12px 0 10px !important;
  font-size: 1.5rem !important;
  line-height: 1.15 !important;
  text-wrap: balance;
}

.gp-editorial-home-grid .gp-editorial-card h2 {
  font-size: 1.375rem !important;
}

.gp-editorial-content {
  font-size: 1.125rem !important;
  line-height: 1.65 !important;
}

.gp-editorial-content h2 {
  margin-top: 2.2em !important;
  margin-bottom: .65em !important;
  font-size: clamp(1.75rem, 3vw, 2.25rem) !important;
  line-height: 1.12 !important;
  text-wrap: balance;
}

.gp-editorial-content h3 {
  margin-top: 1.9em !important;
  margin-bottom: .6em !important;
  font-size: clamp(1.5rem, 2.4vw, 1.75rem) !important;
  line-height: 1.18 !important;
}

.gp-editorial-author h2 {
  margin: 4px 0 8px !important;
  font-size: 1.75rem !important;
  line-height: 1.1 !important;
}

.gp-editorial-games h2,
.gp-editorial-related > h2 {
  font-size: clamp(1.75rem, 3vw, 2.25rem) !important;
  line-height: 1.12 !important;
}

.gp-editorial-card-context,
.gp-editorial-byline {
  font-size: .875rem !important;
  line-height: 1.4 !important;
}

.gp-editorial-card-context span,
.gp-editorial-byline span,
.gp-editorial-byline time {
  font-weight: 700 !important;
}

.gp-editorial-home-grid .gp-editorial-card-body {
  padding: 18px;
}

.gp-editorial-hero-inner { max-width: 1050px; }
.gp-editorial-context { display: flex; flex-wrap: wrap; gap: 8px; }
.gp-editorial-context span { border-color: var(--gp-pink); color: var(--gp-pink); }
.gp-editorial-byline { justify-content: flex-start; margin-top: 22px; font-weight: 800; }
.gp-editorial-single .gp-editorial-context span {
  padding: 0;
  border: 0;
  border-radius: 0;
  color: var(--gp-pink);
  font-size: .875rem;
  font-weight: 900 !important;
}
.gp-editorial-single .gp-editorial-byline { gap: 8px; }
.gp-editorial-hero-image { margin: clamp(28px, 5vw, 54px) 0 0; }
.gp-editorial-hero-image img { display: block; width: 100%; max-height: 720px; object-fit: cover; border-radius: var(--gp-radius); }
.gp-editorial-layout { width: min(100% - 32px, 920px); padding: clamp(38px, 6vw, 78px) 0; }
.gp-editorial-content { width: 100% !important; max-width: none !important; font-size: clamp(1.05rem, 1.5vw, 1.17rem); line-height: 1.75; }
.gp-editorial-content > * { max-width: 760px; margin-left: 0; margin-right: auto; }
.gp-editorial-content > ul,
.gp-editorial-content > ol { padding-left: 0; list-style-position: inside; }

.gp-editorial-archive-list { margin-top: 30px; }
.gp-editorial-search-results { grid-template-columns: 1fr; }
.gp-editorial-search-results .gp-editorial-card.is-featured { grid-column: auto; }
.gp-editorial-archive-content.is-loading { opacity: .6; pointer-events: none; }

.gp-editorial-archive .gp-editorial-grid,
.gp-game-editorial .gp-editorial-grid { grid-template-columns: 1fr; }

.gp-editorial-archive .gp-editorial-card,
.gp-game-editorial .gp-editorial-card {
  display: grid;
  grid-template-columns: minmax(160px, 260px) minmax(0, 1fr);
}

.gp-editorial-archive .gp-editorial-card-media,
.gp-game-editorial .gp-editorial-card-media { min-height: 160px; }

.gp-editorial-archive .gp-editorial-card-media img,
.gp-game-editorial .gp-editorial-card-media img { height: 100%; aspect-ratio: auto; }

.gp-game-editorial-grid + .gp-game-editorial-grid { margin-top: 20px; }

.gp-editorial-content > .alignwide,
.gp-editorial-content > .wp-block-gallery,
.gp-editorial-content > .wp-block-embed,
.gp-editorial-content > .wp-block-image { max-width: 920px; }

.gp-editorial-content > .wp-block-geekpunkt-game-data,
.gp-editorial-content > .wp-block-geekpunkt-game-videos { max-width: 920px; }

.gp-editorial-game-data-block,
.gp-editorial-game-videos-block { margin-top: clamp(32px, 5vw, 54px); margin-bottom: clamp(32px, 5vw, 54px); }

.gp-editorial-game-data-block + .gp-editorial-game-videos-block,
.gp-editorial-game-videos-block + .gp-editorial-game-data-block { margin-top: 20px; }

.gp-editorial-embedded-game {
  display: grid;
  grid-template-columns: minmax(160px, 240px) minmax(0, 1fr);
  gap: clamp(28px, 5vw, 56px);
  align-items: start;
  padding: clamp(18px, 3vw, 24px);
  background: var(--gp-bg);
}

.gp-editorial-embedded-game .gp-game-cover-wrap { position: static; }
.gp-editorial-embedded-game .gp-editorial-embedded-game-cover { display: block; }
.gp-editorial-embedded-game .gp-game-cover { display: block; width: 100%; border-radius: var(--gp-radius); }
.gp-editorial-embedded-game .gp-game-title { margin: 0 0 24px !important; font-size: clamp(2.25rem, 5vw, 4.5rem) !important; line-height: .95 !important; }
.gp-editorial-embedded-game .gp-game-title a { color: inherit; text-decoration: none; }
.gp-editorial-embedded-game .gp-game-meta-strip { grid-template-columns: repeat(5, minmax(0, 1fr)); }
.gp-editorial-embedded-game .gp-game-bottom-actions { margin-bottom: 0; }

.gp-editorial-content .gp-editorial-game-data-block a,
.gp-editorial-content .gp-editorial-game-videos-block a { color: var(--gp-text); text-decoration: none; }
.gp-editorial-content .gp-editorial-game-data-block .gp-button-buy { color: #fff; }

.gp-game-detail-flow .gp-credit-more[open] {
  display: block !important;
  flex: 1 0 100%;
  width: 100%;
  margin-top: 8px;
}
.gp-game-detail-flow .gp-credit-more-list {
  display: flex !important;
  flex-wrap: wrap;
  gap: 8px;
  width: 100%;
}
.gp-game-detail-flow .gp-credit-more-list a,
.gp-game-detail-flow .gp-credit-more-list span { display: inline-flex !important; margin-left: 0 !important; }

.gp-editorial-content h2 { margin-top: 2.2em; font-size: clamp(2rem, 5vw, 3.5rem); line-height: 1; }
.gp-editorial-content h3 { margin-top: 1.9em; font-size: clamp(1.55rem, 4vw, 2.35rem); line-height: 1.1; }
.gp-editorial-content h4 { margin-top: 1.7em; font-size: 1.3rem; }
.gp-editorial-content p,
.gp-editorial-content li { color: var(--gp-muted); }
.gp-editorial-content a { text-decoration: underline; text-underline-offset: 3px; }

.gp-editorial-content blockquote,
.gp-editorial-content .wp-block-pullquote {
  margin-top: 2em;
  margin-bottom: 2em;
  padding: clamp(20px, 4vw, 38px);
  border-left: 4px solid var(--gp-pink);
  background: var(--gp-surface);
}

.gp-editorial-content blockquote p,
.gp-editorial-content .wp-block-pullquote p { color: var(--gp-text); font-size: 1.25em; }
.gp-editorial-content figcaption { margin-top: 8px; color: var(--gp-muted); font-size: .86rem; text-align: center; }
.gp-editorial-content table { width: 100%; border-collapse: collapse; }
.gp-editorial-content th,
.gp-editorial-content td { padding: 10px; border: 1px solid var(--gp-border); text-align: left; }
.gp-editorial-content hr { margin: 3em auto; border: 0; border-top: 1px solid var(--gp-pink); }
.gp-editorial-content iframe { width: 100%; max-width: 100%; }
.gp-editorial-content .wp-block-group.has-background { padding: clamp(18px, 4vw, 34px); border-left: 4px solid var(--gp-pink); }

.gp-editorial-games,
.gp-editorial-author,
.gp-editorial-related { margin-top: clamp(42px, 7vw, 78px); padding-top: 30px; border-top: 1px solid var(--gp-pink); }

.gp-editorial-games h2,
.gp-editorial-related > h2 { font-size: clamp(2rem, 5vw, 3.8rem); }
.gp-editorial-game-list { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; }
.gp-editorial-game-box { display: block; overflow: hidden; border: 1px solid var(--gp-border); border-radius: var(--gp-radius); background: var(--gp-surface); }
.gp-editorial-game-box img { display: block; width: 100%; aspect-ratio: 3 / 4; object-fit: contain; background: var(--gp-surface-2); }
.gp-editorial-game-box strong { display: block; padding: 14px; }
.gp-editorial-author { display: grid; grid-template-columns: 96px minmax(0, 1fr); gap: 22px; align-items: start; }
.gp-editorial-author img { border-radius: 50%; }
.gp-editorial-author h2 { margin: 4px 0 8px; }
.gp-editorial-author p { margin: 0; color: var(--gp-muted); }
.gp-editorial-grid.compact { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.gp-editorial-grid.compact .gp-editorial-card h2 { font-size: 1.55rem; }
.gp-editorial-game-articles { display: grid; gap: 10px; margin-bottom: 30px; }
.gp-editorial-game-articles a { display: grid; grid-template-columns: 140px minmax(0, 1fr); gap: 16px; padding: 14px; border: 1px solid var(--gp-border); border-radius: var(--gp-radius-sm); }
.gp-editorial-game-articles span { color: var(--gp-pink); font-weight: 800; }

@media (max-width: 900px) {
  .gp-editorial-grid,
  .gp-editorial-grid.compact,
  .gp-editorial-home-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .gp-editorial-card.is-featured { grid-template-columns: 1fr; }
  .gp-editorial-archive .gp-editorial-card,
  .gp-game-editorial .gp-editorial-card { grid-template-columns: minmax(140px, 200px) minmax(0, 1fr); }
}

@media (max-width: 620px) {
  .gp-editorial-grid,
  .gp-editorial-grid.compact,
  .gp-editorial-home-grid,
  .gp-editorial-game-list { grid-template-columns: 1fr; }
  .gp-editorial-layout { width: min(100% - 24px, 920px); }
  .gp-editorial-author { grid-template-columns: 64px minmax(0, 1fr); }
  .gp-editorial-author img { width: 64px; height: 64px; }
  .gp-editorial-game-articles a { grid-template-columns: 1fr; gap: 5px; }
  .gp-home-editorial .gp-module-head h2 { font-size: 2rem !important; }
  .gp-editorial-card h2,
  .gp-editorial-grid.compact .gp-editorial-card h2,
  .gp-editorial-home-grid .gp-editorial-card h2 { font-size: 1.375rem !important; }
  .gp-editorial-archive .gp-editorial-card,
  .gp-game-editorial .gp-editorial-card { grid-template-columns: 120px minmax(0, 1fr); }
  .gp-editorial-archive .gp-editorial-card-body,
  .gp-game-editorial .gp-editorial-card-body { padding: 14px; }
  .gp-editorial-archive .gp-editorial-card p,
  .gp-game-editorial .gp-editorial-card p { display: none; }
  .gp-editorial-embedded-game { grid-template-columns: 1fr; }
  .gp-editorial-embedded-game .gp-editorial-embedded-game-cover { max-width: 320px; }
  .gp-editorial-embedded-game .gp-game-meta-strip { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (prefers-reduced-motion: reduce) {
  .gp-editorial-card-media img { transition: none; }
}
