/* Isolated Beacon reading surfaces; existing Hoverla pages retain their CSS. */
/* Self-hosted Cyrillic fallback: English glyphs continue to use Satoshi. */
@font-face {
  font-family: "Beacon Manrope";
  src: url("../fonts/beacon/Manrope-Variable.woff") format("woff");
  font-style: normal;
  font-weight: 200 800;
  font-display: swap;
}
.beacon-public {
  max-width: 1300px;
  margin: 0 auto;
  padding: 160px 32px 96px;
  color: #fff;
  font-family: "Satoshi Variable", "Beacon Manrope", sans-serif;
  font-size: 20px;
  line-height: 1.6;
  overflow-wrap: anywhere;
}
.beacon-public :is(h1, h2, h3, h4, h5, h6),
.beacon-body .wp-block-post-content { font-family: inherit; }
.beacon-public :lang(uk) { font-family: "Beacon Manrope", sans-serif; }
.beacon-public a:where(:not(.wp-element-button)) { color: #a1afa0; text-underline-offset: .2em; }
.beacon-public a:where(:not(.wp-element-button)):hover { color: #fff; }
.beacon-public a:focus-visible { outline: 2px solid #a1afa0; outline-offset: 5px; border-radius: 2px; }
.beacon-public ::selection { color: #0f0f0f; background: #a1afa0; }
.beacon-public h1 { font-size: clamp(40px, 4.5vw, 64px); font-weight: 400; line-height: 1.12; letter-spacing: -.025em; text-wrap: balance; margin: 0 0 24px; }
.beacon-public h2 { font-size: clamp(28px, 3vw, 36px); font-weight: 500; line-height: 1.25; margin: 56px 0 24px; }
.beacon-public h3 { font-size: 27px; font-weight: 500; line-height: 1.3; margin: 12px 0 18px; }
.beacon-public p { margin: 0 0 24px; }
.beacon-public .beacon-intro { color: #a1afa0; font-size: 24px; max-width: 46ch; }
.beacon-cards { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 24px; }
.beacon-card { border: 1px solid #3e4a3d; border-radius: 20px; padding: 32px; display: flex; flex-direction: column; min-width: 0; }
.beacon-card h3 a, .beacon-archive-item h2 a { color: #fff; text-decoration: none; }
.beacon-card h3 a:hover, .beacon-archive-item h2 a:hover { text-decoration: underline; }
.beacon-public .beacon-topic { color: #a1afa0; font-size: 16px; margin-bottom: 12px; }
/* Owner-selected sage family; category shades can be tuned here independently. */
.beacon-public .beacon-topic--procurement { color: #b4b7a7; }
.beacon-public .beacon-topic--production { color: #a1afa0; }
.beacon-public .beacon-topic--technology { color: #b1b49f; }
.beacon-public .beacon-topic--policy { color: #adb5ad; }
.beacon-public .beacon-topic--cooperation { color: #a8b8ad; }
.beacon-public .beacon-topic--force { color: #aab29e; }
.beacon-public .beacon-topic--operations { color: #a5b19e; }
.beacon-public .beacon-topic--supply { color: #b2b7ad; }
.beacon-excerpt { font-size: 18px; }
.beacon-public .beacon-sources { font-size: 16px; color: #a1afa0; margin: 0 0 20px; }
.beacon-dates { display: flex; flex-direction: column; gap: 4px; font-size: 15px; color: #a1afa0; font-variant-numeric: tabular-nums; margin: 8px 0 24px; }
.beacon-card .beacon-dates { margin-top: auto; padding-top: 12px; }
.beacon-read { font-size: 17px; }
.beacon-public .beacon-archive-link { margin-top: 32px; }
.beacon-advisory { border-top: 1px solid #3e4a3d; margin-top: 64px; padding-top: 8px; }
.beacon-public .beacon-advisory h2 { margin-top: 32px; }
.beacon-detail { max-width: 800px; box-sizing: content-box; }
.beacon-body { margin-top: 40px; }
.beacon-body .wp-block-post-content { font-size: 20px; line-height: 1.7; }
.beacon-body .wp-block-post-content > * { max-width: 100%; }
.beacon-body ul, .beacon-body ol { padding-left: 24px; }
.beacon-public .beacon-breadcrumb, .beacon-public .beacon-backlinks { font-size: 16px; }
.beacon-public .beacon-breadcrumb { margin-bottom: 40px; }
.beacon-public .beacon-backlinks { margin-top: 48px; }
.beacon-archive-list { max-width: 1100px; }
.beacon-archive-item { border-bottom: 1px solid #3e4a3d; padding: 32px 0; }
.beacon-archive .beacon-archive-item:last-child { border-bottom: 0; }
.beacon-public .beacon-archive-item h2 { font-size: 27px; font-weight: 500; line-height: 1.3; margin: 0 0 18px; }
.beacon-signal-sections { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 32px; margin: 24px 0; }
.beacon-signal-sections--single { grid-template-columns: minmax(0, 1fr); }
.beacon-signal-section { min-width: 0; }
.beacon-public .beacon-signal-section h3 { color: #a1afa0; font-size: 19px; font-weight: 500; line-height: 1.4; margin: 0 0 12px; }
.beacon-signal-section p { font-size: 18px; line-height: 1.65; margin: 0 0 12px; }
.beacon-signal-section p:last-child { margin-bottom: 0; }
@media (max-width: 700px) {
  .beacon-signal-sections { grid-template-columns: minmax(0, 1fr); gap: 24px; }
}
.beacon-activity { border-top: 1px solid #3e4a3d; margin-top: 32px; padding-top: 32px; }
.wp-block-hoverla-beacon-activity .beacon-activity { color: #fff; font-family: "Satoshi Variable", "Beacon Manrope", sans-serif; line-height: 1.6; }
.beacon-activity h2 { color: #fff; font-size: clamp(28px, 3vw, 36px); font-weight: 500; line-height: 1.25; margin: 0 0 12px; }
.beacon-activity .beacon-activity-period { font-size: 17px; color: #a1afa0; margin: 0 0 24px; }
.beacon-activity-metrics { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 32px; margin: 0 0 24px; }
.beacon-activity-metrics > div { display: flex; align-items: baseline; gap: 16px; min-width: 0; }
.beacon-activity-metrics dt { font-size: 18px; }
.beacon-activity-metrics dd { order: -1; flex-shrink: 0; white-space: nowrap; margin: 0; font-size: 36px; font-weight: 500; line-height: 1.2; font-variant-numeric: tabular-nums; }
.beacon-activity .beacon-activity-updated { font-size: 15px; color: #a1afa0; margin: 0 0 8px; }
@media (max-width: 900px) {
  .beacon-activity-metrics { grid-template-columns: minmax(0, 1fr); gap: 16px; }
  .beacon-activity-metrics dd { font-size: 30px; min-width: 4ch; }
}
/* Saved Gutenberg overview: one section boundary and compact heading grouping. */
.beacon-research-draft #research-opportunities .beacon-card:last-child { border-bottom: 0; }
.beacon-research-draft .beacon-opportunity-details > div { display: block; }
.beacon-research-draft .beacon-opportunity-details :is(dt, dd) { display: inline; }
.beacon-research-draft .beacon-opportunity-details dt { margin-right: 6px; }
@media (max-width: 781px) {
  .beacon-activity { padding-top: 24px; }
  /* Use the existing mobile menu alone throughout the stacked overview layout. */
  body:has(.beacon-research-draft) .site-header .wp-block-navigation { display: none; }
}
.beacon-pagination { margin-top: 40px; }
.beacon-pagination ul { display: flex; flex-wrap: wrap; gap: 12px; list-style: none; padding: 0; }
.beacon-pagination a, .beacon-pagination span { display: block; padding: 8px 14px; }
.beacon-pagination .current { background: #a1afa0; color: #0f0f0f; border-radius: 4px; }
@media (max-width: 900px) {
  .beacon-cards { grid-template-columns: minmax(0, 1fr); }
  .beacon-public { padding: 128px 24px 64px; font-size: 18px; }
  .beacon-detail { box-sizing: border-box; }
  .beacon-public .beacon-intro { font-size: 21px; }
  .beacon-body .wp-block-post-content { font-size: 18px; }
}
@media (max-width: 480px) {
  .beacon-public { padding-inline: 20px; }
  .beacon-card { padding: 24px; }
  .beacon-public h3 { font-size: 25px; }
}

/* Company activity: scoped overview columns; other featured instances keep their layout. */
.beacon-overview-columns {
  display: grid;
  font-family: "Satoshi Variable", "Beacon Manrope", sans-serif;
  grid-template-columns: minmax(0, 2fr) minmax(0, 1fr);
  gap: 64px;
  align-items: start;
}
.beacon-overview-columns > * { min-width: 0; margin-block-start: 0; }
.beacon-overview-columns .beacon-cards { display: block; }
.beacon-overview-columns .beacon-card,
.beacon-research-draft .beacon-overview-columns #research-signals .beacon-card {
  display: flex; flex-direction: column; gap: 10px;
  border: 0; border-bottom: 1px solid #3e4a3d; border-radius: 0; padding: 28px 0;
}
.beacon-overview-columns .beacon-card .beacon-excerpt { max-width: 72ch; margin: 0; }
.beacon-overview-columns .beacon-card .beacon-dates { margin-top: 0; padding-top: 0; }
.beacon-overview-columns .beacon-card h3 { margin: 0; font-size: 27px; line-height: 1.3; }
.beacon-overview-companies { border: 0; padding-left: 0; padding-top: var(--wp--preset--spacing--40, 32px); }
.beacon-company-heading { display: flex; align-items: center; min-height: 78px; box-sizing: border-box; border-bottom: 1px solid #3e4a3d; padding: 12px 0 16px; margin-top: 0; }
.beacon-overview-companies > .beacon-company-list { margin-top: 0; }
.beacon-company-heading h2 { color: #fff; font-size: 32px; line-height: 1.25; font-weight: 400; margin: 0; }
.beacon-company-entry { border-bottom: 1px solid #3e4a3d; padding: 28px 0; }
.beacon-company-entry h3 { font-size: 23px; font-weight: 500; line-height: 1.35; margin: 0 0 16px; }
.beacon-company-entry h3 a { color: #fff; text-decoration: none; }
.beacon-company-entry h3 a:hover { text-decoration: underline; }
.beacon-company-entry .beacon-read { display: none; }
.beacon-company-entry :is(.beacon-sources, .beacon-dates) { margin: 12px 0 0; font-size: 14px; color: #a1afa0; }
.beacon-company-names { color: #a1afa0; font-size: 16px; line-height: 1.5; overflow-wrap: anywhere; }
.beacon-public .beacon-company-names, .beacon-research-draft .beacon-company-names { margin: 0 0 12px; }
.beacon-company-archive-link { margin-top: 24px; font-size: 17px; }
.beacon-overview-columns .beacon-empty { margin-top: 24px; }
.beacon-archive-filters { display: flex; flex-wrap: wrap; gap: 12px 24px; margin: 32px 0 16px; }
.beacon-archive-filters a { padding: 8px 0; text-decoration: none; border-bottom: 2px solid transparent; }
.beacon-archive-filters a[aria-current="page"] { color: #fff; border-bottom-color: #a1afa0; }
.beacon-archive-filters a:hover { text-decoration: underline; }
/* Saved overview CSS has a two-up Signal grid; opt in only this nested instance. */
.beacon-research-draft .beacon-overview-columns #research-signals { display: block; }
.beacon-research-draft .beacon-overview-columns #research-signals .beacon-cards { display: block; }
.beacon-research-draft .beacon-overview-columns #research-signals .beacon-cards > .beacon-card:nth-child(n) { border-bottom: 1px solid #3e4a3d; }
.beacon-research-draft .beacon-overview-columns #research-signals .beacon-card .beacon-read { align-self: flex-start; }
@media (max-width: 900px) {
  .beacon-overview-columns { grid-template-columns: minmax(0, 1fr); gap: 40px; }
  .beacon-overview-companies { border-left: 0; padding-left: 0; padding-top: 0; }
  .beacon-company-heading { margin-top: 0; }
}

/* Shared editorial headings; whitespace separates the independent streams. */
.beacon-overview-columns { --beacon-heading-height: 78px; }
.beacon-overview-columns #research-signals > .wp-block-group:first-child {
  min-height: var(--beacon-heading-height);
  box-sizing: border-box;
}
.beacon-overview-columns #research-signals h2,
.beacon-overview-columns .beacon-company-heading h2 {
  /* The saved Signal heading has an inline WordPress font size. */
  font-size: clamp(28px, 2.5vw, 36px) !important;
  font-weight: 400;
  line-height: 1.25;
}
/* Item rules separate stories, without closing each column in a box. */
.beacon-research-draft .beacon-overview-columns #research-signals .beacon-cards > .beacon-card:last-child,
.beacon-overview-columns .beacon-company-entry:last-child { border-bottom: 0; padding-bottom: 0; }
.beacon-overview-signals > p:last-child,
.beacon-overview-companies > .beacon-company-archive-link {
  text-align: left;
  margin: 24px 0 0 !important;
  font-size: 17px;
  line-height: 1.6;
}
.beacon-research-draft .beacon-overview-columns .beacon-dates {
  flex-direction: row;
  flex-wrap: wrap;
  gap: 4px 16px;
  font-size: 14px;
}
/* Active funding has its own section; Analysis is a compact status beneath it. */
.beacon-research-draft > #research-opportunities {
  margin-top: 56px;
  padding-top: 32px;
  border-top: 1px solid #3e4a3d;
}
.beacon-research-draft #research-opportunities h2 {
  font-size: clamp(28px, 2.5vw, 36px) !important;
}
.beacon-research-draft #research-opportunities .beacon-cards {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 48px;
}
.beacon-research-draft #research-opportunities .beacon-card {
  border: 0;
  padding: 16px 0 0;
}
.beacon-research-draft > #research-analysis {
  display: block;
  margin-top: 56px;
  padding-top: 32px;
  border-top: 1px solid #3e4a3d;
}
.beacon-research-draft #research-analysis > .wp-block-group:first-child {
  padding-bottom: 0 !important;
}
.beacon-research-draft #research-analysis > :not(.wp-block-group:first-child) {
  margin-block: 16px 0 !important;
}
.beacon-research-draft #research-analysis > p { max-width: 70ch; }
.beacon-research-draft #research-analysis h2 { font-size: 30px !important; }
.beacon-research-draft #research-analysis h3 { font-size: 24px !important; }
@media (max-width: 900px) {
  .beacon-research-draft #research-opportunities .beacon-cards { grid-template-columns: minmax(0, 1fr); gap: 32px; }
}
/* Saved font-size utility classes otherwise enlarge the closing headings. */
.beacon-research-draft > .wp-block-group:last-child > h2 {
  font-size: 30px !important;
  font-weight: 400;
  line-height: 1.25;
}
/* Keep archive controls and entries on one reading edge; CTA uses the site frame. */
.beacon-archive :is(.beacon-intro, .beacon-archive-filters, .beacon-archive-list, .beacon-pagination) {
  width: 100%;
  max-width: 1100px;
  box-sizing: border-box;
  margin-inline: auto;
}

/* The outer result region stays in place while its links and entries update. */
.beacon-archive-results { scroll-margin-top: 144px; }
/* Only result content dims; filter controls remain steady during requests. */
.beacon-archive-results :is(.beacon-archive-list, .beacon-empty) { transition: opacity 120ms ease-out; }
.beacon-archive-results[aria-busy="true"] :is(.beacon-archive-list, .beacon-empty) { opacity: .82; }
.beacon-archive-filters a { transition: color 140ms ease-out, border-color 140ms ease-out; }
@media (prefers-reduced-motion: reduce) {
  .beacon-archive-results :is(.beacon-archive-list, .beacon-empty),
  .beacon-archive-filters a { transition: none; }
}
.beacon-archive .beacon-empty { max-width: 1100px; margin-inline: auto; }

/* Account for the reading surface's padding when using the shared site frame. */
.beacon-public.beacon-archive {
  --beacon-archive-inset: 32px;
  max-width: calc(var(--wp--style--global--content-size, 1300px) + var(--wp--preset--spacing--40, 30px) + var(--wp--preset--spacing--40, 30px));
  padding-inline: var(--beacon-archive-inset);
}
.beacon-archive .beacon-advisory {
  margin-inline: calc(var(--wp--preset--spacing--40, 30px) - var(--beacon-archive-inset));
}
@media (max-width: 900px) {
  .beacon-public.beacon-archive { --beacon-archive-inset: 24px; }
}
@media (max-width: 480px) {
  .beacon-public.beacon-archive { --beacon-archive-inset: 20px; }
}
