/*
Theme Name: High Noon
Template: organic-farm
Description: Design layer for queerseum.org.
Version: 1.0
*/

/* queerseum.org — refero "Programa" language (child theme "High Noon")
   Tokens from styles.refero.design/style/41af8353: Swiss studio at high noon.
   Ink on paper, one highlighter-yellow action colour, hairline 1px borders,
   ZERO shadows (elevation comes from a colour shift), -0.03em tracking
   everywhere, 6px spacing grid. Only one primary action per viewport.
   Parent: organic-farm — the same parent as tvgtaproom.com, deliberately, to
   prove the theme skeleton does not dictate the look. */

:root {
  --p-ink:    #1a1a1a;
  --p-paper:  #ffffff;
  --p-fog:    #f4f4f4;
  --p-ash:    #767676;   /* darkened from #a3a3a3: the source value is 2.6:1 */
  --p-hi:     #fbff2b;
  --p-measure: 66ch;
  --p-sans: "Neue Haas Grotesk Text", Inter, "Helvetica Neue", Helvetica, Arial, sans-serif;
}

body {
  background: var(--p-paper);
  color: var(--p-ink);
  font-family: var(--p-sans);
  font-size: 16px;
  line-height: 1.4;
  letter-spacing: -0.03em;
}

/* ---------- header: a rule, not a bar ---------- */
.top_header,
.site-header,
header.site-header {
  background: var(--p-paper);
  border-bottom: 1px solid var(--p-ink);
  box-shadow: none;
  padding: 12px 0;
}
.site-title,
.site-title a {
  font-family: var(--p-sans);
  font-size: 1.5rem;
  font-weight: 500;
  letter-spacing: -0.045em;
  line-height: 1.2;
  color: var(--p-ink);
}
.site-description { color: var(--p-ash); font-size: .875rem; line-height: 1.4; }

/* ---------- nav: text only, underline on state ---------- */
.gb_nav_menu ul li a,
#menu-navigation li a,
.mobile_nav li a {
  font-family: var(--p-sans);
  font-size: 1rem;
  font-weight: 400;
  letter-spacing: -0.03em;
  color: var(--p-ink);
  padding: 6px 12px;
  border-radius: 10px;
  line-height: 1.4;
}
.gb_nav_menu ul li a:hover,
#menu-navigation li a:hover { background: var(--p-fog); }
.gb_nav_menu ul li.current-menu-item > a,
#menu-navigation li.current-menu-item > a {
  background: var(--p-hi);
  border: 1px solid var(--p-ink);
}

/* ---------- cards: hairline boxes, no elevation ---------- */
.postbox {
  background: var(--p-paper);
  border: 1px solid var(--p-ink);
  border-radius: 16px;
  box-shadow: none;
  padding: 16px;
  overflow: hidden;
}
.postbox:hover { background: var(--p-fog); }
.postbox .box-content img,
.wrap_figure img {
  border-radius: 10px;
  display: block;
  width: 100%;
  height: auto;
}
.postbox h3 {
  font-family: var(--p-sans);
  font-size: 1.5rem;
  font-weight: 500;
  letter-spacing: -0.045em;
  line-height: 1.2;
  margin: 12px 0 6px;
  text-align: left;
}
.postbox h3 a { color: var(--p-ink); }
.postbox h3 a:hover { text-decoration: underline; }
.postbox .overlay,
.postbox .box-content { text-align: left; }
.postbox .date-box,
.postbox .entry-author,
.postbox .entry-comments,
.postbox .date-box span {
  font-size: .875rem;
  font-weight: 400;
  color: var(--p-ash);
  line-height: 1.4;
  letter-spacing: -0.03em;
}
.postbox p {
  font-size: 1rem;
  line-height: 1.4;
  color: var(--p-ink);
  max-width: var(--p-measure);
  margin: 0 0 12px;
}

/* the one saturated action — sticker-like, bordered */
.quote-btn,
a.quote-btn,
.postbox .btn,
.more-link,
a.more-link {
  display: inline-block;
  background: var(--p-hi);
  color: var(--p-ink);
  border: 1px solid var(--p-ink);
  border-radius: 10px;
  font-family: var(--p-sans);
  font-size: 1rem;
  font-weight: 500;
  letter-spacing: -0.03em;
  line-height: 1.4;
  padding: 8px 12px;
  box-shadow: none;
  text-decoration: none;
}
.quote-btn:hover,
a.more-link:hover { background: var(--p-ink); color: var(--p-hi); }

/* ---------- single post ---------- */
.single .entry-title,
.single h1.entry-title,
.single .page-title,
.page-title,
h1.page-title {
  font-family: var(--p-sans);
  font-size: clamp(2rem, 4.4vw, 2.65rem);
  font-weight: 500;
  letter-spacing: -0.045em;
  line-height: 1.15;
  color: var(--p-ink);
  max-width: 22ch;
}

.entry-content {
  font-size: 1rem;
  line-height: 1.55;
  color: var(--p-ink);
  max-width: var(--p-measure);
  letter-spacing: -0.03em;
}
.entry-content > * { max-width: var(--p-measure); }
.entry-content p { margin: 0 0 24px; }
.entry-content h2 {
  font-size: 1.5rem;
  font-weight: 500;
  letter-spacing: -0.045em;
  line-height: 1.3;
  margin: 48px 0 12px;
  padding-top: 12px;
  border-top: 1px solid var(--p-ink);
}
.entry-content h3 {
  font-size: 1.25rem;
  font-weight: 500;
  letter-spacing: -0.04em;
  line-height: 1.35;
  margin: 36px 0 12px;
}
.entry-content h2 + p,
.entry-content h3 + p { margin-top: 0; }
.entry-content ul,
.entry-content ol { margin: 0 0 24px 24px; }
.entry-content li { margin-bottom: 8px; line-height: 1.55; }
.entry-content a { color: var(--p-ink); text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: 3px; }
.entry-content a:hover { background: var(--p-hi); }
.entry-content img { max-width: 100%; height: auto; border-radius: 16px; margin: 36px 0; }
.entry-content blockquote {
  background: var(--p-fog);
  border: 0;
  border-radius: 16px;
  margin: 36px 0;
  padding: 12px 16px;
  color: var(--p-ink);
  font-style: normal;
  line-height: 1.5;
}
.entry-content table {
  width: 100%;
  max-width: 100%;
  border-collapse: collapse;
  margin: 36px 0;
  font-size: 1rem;
  background: var(--p-paper);
  border: 1px solid var(--p-ink);
  border-radius: 16px;
  overflow: hidden;
}
.entry-content table th {
  background: var(--p-fog);
  color: var(--p-ink);
  font-weight: 500;
  text-align: left;
  padding: 12px 16px;
  line-height: 1.4;
  border-bottom: 1px solid var(--p-ink);
}
.entry-content table td {
  padding: 12px 16px;
  border-bottom: 1px solid #d8d8d8;
  line-height: 1.5;
}
.entry-content table tr:last-child td { border-bottom: 0; }

/* ---------- author: a bordered info banner ---------- */
.pbn-author {
  display: flex;
  gap: 12px;
  align-items: flex-start;
  max-width: var(--p-measure);
  margin: 48px 0 0;
  padding: 16px;
  background: var(--p-fog);
  border-radius: 16px;
}
.pbn-author__avatar img {
  width: 64px;
  height: 64px;
  border-radius: 10px;
  border: 1px solid var(--p-ink);
  display: block;
  margin: 0;
}
.pbn-author__name {
  font-size: 1.25rem;
  font-weight: 500;
  letter-spacing: -0.04em;
  color: var(--p-ink);
  line-height: 1.3;
  margin: 0 0 2px;
}
.pbn-author__role {
  font-size: .875rem;
  font-weight: 400;
  color: var(--p-ash);
  line-height: 1.4;
  margin: 0 0 8px;
}
.pbn-author__bio { font-size: 1rem; line-height: 1.5; color: var(--p-ink); margin: 0; }

/* ---------- sidebar ---------- */
.widget,
#secondary .widget,
.sidebar .widget {
  background: var(--p-paper);
  border: 1px solid var(--p-ink);
  border-radius: 16px;
  padding: 16px;
  margin-bottom: 12px;
  box-shadow: none;
}
.widget-title,
.widget h2,
.widget .wp-block-group h2,
.widget label.wp-block-search__label {
  font-family: var(--p-sans);
  font-size: 1.25rem;
  font-weight: 500;
  letter-spacing: -0.04em;
  line-height: 1.3;
  color: var(--p-ink);
  background: transparent;
  margin: 0 0 12px;
  padding: 0 0 8px;
  border-bottom: 1px solid var(--p-ink);
}
.widget a { color: var(--p-ink); font-size: 1rem; line-height: 1.5; }
.widget a:hover { background: var(--p-hi); }
.widget li { padding: 6px 0; }
.widget input[type="search"],
.widget .wp-block-search__input {
  border: 1px solid var(--p-ink);
  border-radius: 10px;
  background: var(--p-paper);
  padding: 6px 12px;
  color: var(--p-ink);
  font-family: var(--p-sans);
}
.widget .wp-block-search__button,
.widget input[type="submit"],
.search-submit {
  background: var(--p-hi);
  color: var(--p-ink);
  border: 1px solid var(--p-ink);
  border-radius: 10px;
  font-family: var(--p-sans);
  font-weight: 500;
  font-size: 1rem;
  padding: 6px 12px;
}

/* ---------- footer ---------- */
.site-footer { background: var(--p-paper); border-top: 1px solid var(--p-ink); }
.pbn-colophon {
  background: var(--p-paper);
  max-width: none;
  font-family: var(--p-sans);
  color: var(--p-ink);
  font-size: 1rem;
  line-height: 1.4;
  letter-spacing: -0.03em;
  padding: 48px 24px 36px;
}
.pbn-colophon > * { max-width: 1200px; margin-left: auto; margin-right: auto; }
.pbn-colophon__cols { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 36px; }
.pbn-colophon h3 {
  font-size: 1.25rem;
  font-weight: 500;
  letter-spacing: -0.04em;
  color: var(--p-ink);
  margin: 0 0 12px;
  line-height: 1.3;
}
.pbn-colophon ul { list-style: none; margin: 0; padding: 0; }
.pbn-colophon li { margin-bottom: 6px; }
.pbn-colophon a { color: var(--p-ink); text-decoration: underline; text-underline-offset: 3px; }
.pbn-colophon a:hover { background: var(--p-hi); }
.pbn-colophon p { margin: 0 0 12px; max-width: 44ch; color: var(--p-ink); }
.pbn-colophon__base {
  margin-top: 36px;
  padding-top: 12px;
  border-top: 1px solid var(--p-ink);
  font-size: .875rem;
  color: var(--p-ash);
}

/* ---------- gate floor ---------- */
#page, .site, .top_header, .menu_header, .wrap_figure { overflow-x: hidden; }
button, input[type="submit"], .wp-block-search__button, .wp-element-button { line-height: 1.4; }
p, li, td, th, span, div, a, figcaption, label, input, select, textarea { line-height: 1.5; }
h1, h2, h3, h4, h5, h6 { line-height: 1.3; }
.screen-reader-text, .skip-link { line-height: 1.5; }
.no-comments, .wp-block-latest-comments, .wp-block-latest-comments__no-comments { color: var(--p-ash); }
a:focus-visible, button:focus-visible, input:focus-visible { outline: 2px solid var(--p-ink); outline-offset: 2px; }
@media (prefers-reduced-motion: reduce) { *, *::before, *::after { transition: none !important; animation: none !important; } }
@media (max-width: 900px) {
  .pbn-colophon__cols { grid-template-columns: 1fr; gap: 24px; }
  .pbn-author { flex-direction: column; }
}

/* ---------- v2: gate items from the live page ---------- */
/* Ash grey on the fog panel is 4.13:1 — fine on white, short of AA on #f4f4f4. */
.pbn-author__role { color: #5e5e5e; }
.postbox h3 a, .site-title a, .entry-title a { line-height: 1.3; }
h3 a, h2 a, h1 a { line-height: 1.3; }
#post_section, section#post_section, .content_area { overflow-x: hidden; }


/* ---------------------------------------------------------------------------
   Stopgap before the from-scratch theme (plan-v3): the three defects that must
   not sit on a live site while the rebuild is decided.
   --------------------------------------------------------------------------- */
/* colormag ships html{font-size:10px}; every rem below was landing at 62.5%. */
html { font-size: 16px; }

/* The parent theme renders its own author card next to ours. */
.author-info, .author-bio, .author-description, .author-avatar,
.wp-post-author-meta, .entry-author-box, .cm-author-box, .about-author,
#author-info, .post-author-info { display: none; }

/* Flex was squashing a square avatar to 31x64. */
.pbn-author__avatar { flex: 0 0 auto; width: auto; }
.pbn-author__avatar img { width: 64px; height: 64px; object-fit: cover; max-width: none; }

/* Nothing under 14px on a reading site. */
body, p, li, td, th, a, span, div, figcaption { font-size: inherit; }
.entry-meta, .entry-meta a, .posted-on, .posted-on a, .cm-entry-header-meta,
.cm-entry-header-meta a, .cm-below-entry-meta, .cm-below-entry-meta a,
.byline, .byline a, .nav-subtitle, time, .date-box, .date-box span,
.pbn-author__role, .pbn-colophon__base, .widget label,
.wp-block-search__label, .cat-links, .cat-links a { font-size: 14px; }
.pbn-author__name { font-size: 16px; }
.pbn-author__bio { font-size: 15px; }
.postbox .date-box, .postbox .entry-author, .postbox .entry-comments { font-size: 14px; }
button, input, select, textarea, .wp-block-search__button { font-size: 15px; }
.cm-post-categories a, .morenews-categories, a.morenews-categories { font-size: 12.5px; }

/* Second pass on the 14px floor: chips, widget titles and footer headings were
   still landing at 12-12.8px. */
.cat-links, .cat-links a, .cm-post-categories a, .morenews-categories,
a.morenews-categories, .postbox .date-box, .postbox .date-box span,
span.nav-subtitle, .nav-links .nav-subtitle, label.wp-block-search__label,
.widget label, h2.wp-block-heading, .widget .wp-block-heading, .widget h2,
.widget-title, .cm-widget-title, .cm-widget-title span,
.pbn-colophon h3, .pbn-colophon a, .pbn-colophon li, .pbn-colophon p,
.pbn-colophon__base, .entry-meta, .entry-meta a, .posted-on, .posted-on a,
.cm-entry-header-meta, .cm-entry-header-meta a, .cm-below-entry-meta,
.cm-below-entry-meta a, time, .byline, .byline a { font-size: 14px; }

/* Final stopgap pass: these few selectors are outranked by the parent's own
   sizing, so the floor is enforced explicitly. The from-scratch theme removes
   the need for this entirely. */
.cat-links a, .cat-links, a.morenews-categories, .morenews-categories,
.category-color-1, label.wp-block-search__label, .wp-block-search__button,
.item-metadata, .posts-date, span.item-metadata, .entry-meta a, .author a,
a.url.fn.n, .pbn-author__role, .cm-post-categories a { font-size: 14px !important; }

/* charliewellbeing: the author card had no inner padding. */
.pbn-author { padding: 1.25rem; box-sizing: border-box; }
