/*
Theme Name: Holy Gusto Field Manual
Theme URI: https://fieldmanual.holygusto.co
Author: Holy Gusto
Description: A bespoke, accessible, two-column editorial theme for the Holy Gusto Field Manual. The homepage is automatic; posts and pages use the classic editor.
Version: 1.0.5
Requires at least: 6.4
Requires PHP: 7.4
Text Domain: holy-gusto-field-manual
*/

:root {
  --hg-bg: #f5f3ed;
  --hg-paper: #f7f5ef;
  --hg-ink: #111111;
  --hg-muted: #5d5b56;
  --hg-rule: #181818;
  --hg-accent: #a93412;
  --hg-max: 1180px;
  --hg-reading: 760px;
  --hg-serif: Georgia, 'Times New Roman', serif;
  --hg-sans: Arial, Helvetica, sans-serif;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  margin: 0;
  color: var(--hg-ink);
  background: var(--hg-bg);
  font-family: var(--hg-sans);
  font-size: 18px;
  line-height: 1.58;
  text-rendering: optimizeLegibility;
}
a { color: inherit; text-decoration-thickness: .08em; text-underline-offset: .15em; }
a:hover { color: var(--hg-accent); }
a:focus-visible, button:focus-visible, input:focus-visible, textarea:focus-visible, select:focus-visible {
  outline: 3px solid var(--hg-accent);
  outline-offset: 3px;
}
img { max-width: 100%; height: auto; }

.skip-link {
  position: fixed;
  top: 12px;
  left: 12px;
  z-index: 9999;
  transform: translateY(-180%);
  background: var(--hg-ink);
  color: #fff;
  padding: .7rem 1rem;
}
.skip-link:focus { transform: translateY(0); }

.hg-shell { width: min(calc(100% - 40px), var(--hg-max)); margin-inline: auto; }

.site-header { padding: 30px 0 22px; }
.site-branding { display: flex; align-items: center; }
.hg-brand-lockup { display: flex; align-items: center; gap: 18px; min-width: 0; }
.custom-logo-link {
  display: block;
  flex: 0 0 auto;
  line-height: 0;
  padding: 8px;
  background: #fff;
  border: 2px solid var(--hg-ink);
  box-shadow: 0 1px 0 rgba(17,17,17,.12);
}
.custom-logo {
  display: block;
  width: 64px;
  max-width: 64px;
  max-height: 64px;
  object-fit: contain;
  filter: contrast(1.2) saturate(1.05);
}
.site-title {
  margin: 0;
  color: var(--hg-ink);
  font-family: var(--hg-serif);
  font-size: clamp(1.65rem, 3.2vw, 3rem);
  line-height: .95;
  font-weight: 700;
  letter-spacing: -.04em;
  text-transform: uppercase;
}
.site-title a { text-decoration: none; }

.site-nav { border-top: 2px solid var(--hg-rule); border-bottom: 2px solid var(--hg-rule); }
.site-nav ul { list-style: none; display: flex; flex-wrap: wrap; gap: 10px 26px; margin: 0; padding: 12px 0; }
.site-nav a { font-size: .78rem; font-weight: 800; letter-spacing: .11em; text-transform: uppercase; text-decoration: none; }

.hg-kicker, .entry-kicker, .section-label {
  margin: 0 0 .8rem;
  font-size: .78rem;
  font-weight: 800;
  letter-spacing: .14em;
  text-transform: uppercase;
}

.hg-hero { padding: 44px 0 54px; border-bottom: 2px solid var(--hg-rule); }
.hg-hero__title {
  max-width: 1050px;
  margin: 0 0 1.25rem;
  font-family: var(--hg-serif);
  font-size: clamp(2.75rem, 7vw, 6.35rem);
  line-height: .96;
  letter-spacing: -.045em;
}
.hg-hero__title a { text-decoration: none; }
.hg-hero__excerpt { max-width: 780px; margin: 0; color: var(--hg-muted); font-size: clamp(1.05rem, 2vw, 1.32rem); }
.hg-read-link { display: inline-block; margin-top: 1rem; font-size: .82rem; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; }

.hg-dashboard { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); border-bottom: 2px solid var(--hg-rule); }
.hg-panel { padding: 44px 0 48px; }
.hg-panel:first-child { padding-right: 52px; border-right: 2px solid var(--hg-rule); }
.hg-panel:last-child { padding-left: 52px; }
.hg-panel h2, .hg-stream h2 {
  margin: 0 0 1.5rem;
  font-family: var(--hg-serif);
  font-size: clamp(2rem, 4vw, 3.6rem);
  line-height: 1;
  letter-spacing: -.035em;
}
.hg-finding-list, .hg-post-list { list-style: none; margin: 0; padding: 0; }
.hg-finding-list li, .hg-post-list li { padding: 1rem 0; border-top: 1px solid rgba(17,17,17,.28); }
.hg-finding-list li:first-child, .hg-post-list li:first-child { border-top: 0; padding-top: 0; }
.hg-finding-list a, .hg-post-list a { font-family: var(--hg-serif); font-size: clamp(1.15rem, 2vw, 1.55rem); line-height: 1.22; text-decoration: none; }
.hg-post-list time { display: block; margin-top: .35rem; color: var(--hg-muted); font-size: .72rem; letter-spacing: .08em; text-transform: uppercase; }

.hg-streams { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); }
.hg-stream { padding: 50px 0 64px; }
.hg-stream:first-child { padding-right: 52px; border-right: 2px solid var(--hg-rule); }
.hg-stream:last-child { padding-left: 52px; }
.hg-card { padding: 1.25rem 0 1.45rem; border-top: 1px solid rgba(17,17,17,.28); }
.hg-card:first-of-type { border-top: 0; padding-top: 0; }
.hg-card__title { margin: 0 0 .55rem; font-family: var(--hg-serif); font-size: clamp(1.45rem, 2.4vw, 2.1rem); line-height: 1.08; letter-spacing: -.025em; }
.hg-card__title a { text-decoration: none; }
.hg-card__excerpt { margin: 0; color: var(--hg-muted); font-size: .98rem; }
.hg-empty { color: var(--hg-muted); font-style: italic; }

.content-area { padding: 54px 0 82px; }
.entry-header, .archive-header { max-width: 980px; margin-bottom: 2.5rem; }
.entry-title, .archive-title {
  margin: 0;
  font-family: var(--hg-serif);
  font-size: clamp(2.7rem, 7vw, 6rem);
  line-height: .97;
  letter-spacing: -.045em;
}
.entry-meta { margin-top: 1rem; color: var(--hg-muted); font-size: .82rem; letter-spacing: .08em; text-transform: uppercase; }
.entry-content { max-width: var(--hg-reading); font-family: var(--hg-serif); font-size: clamp(1.1rem, 2vw, 1.3rem); }
.entry-content > * { margin-top: 0; margin-bottom: 1.35em; }
.entry-content h2, .entry-content h3, .entry-content h4 { color: var(--hg-accent); font-family: var(--hg-sans); line-height: 1.08; letter-spacing: -.02em; }
.entry-content h2 { margin-top: 2.4em; font-size: 1.65em; }
.entry-content h3 { margin-top: 2em; font-size: 1.25em; }
.entry-content ul, .entry-content ol { padding-left: 1.25em; }
.entry-content blockquote { margin-left: 0; padding-left: 1.25rem; border-left: 5px solid var(--hg-accent); font-size: 1.2em; }
.entry-content strong { font-weight: 800; }
.entry-content img { margin: .5rem 0; }

.archive-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 52px; }
.archive-grid article { padding: 1.45rem 0; border-top: 1px solid rgba(17,17,17,.28); }
.archive-grid h2 { margin: 0 0 .5rem; font-family: var(--hg-serif); font-size: 2rem; line-height: 1.1; }
.archive-grid h2 a { text-decoration: none; }

.site-footer { border-top: 2px solid var(--hg-rule); padding: 30px 0 46px; color: var(--hg-muted); font-size: .86rem; }
.site-footer__inner { display: flex; justify-content: space-between; gap: 24px; }

.hg-ip-nav { border-top: 2px solid var(--hg-rule); border-bottom: 2px solid var(--hg-rule); background: var(--hg-paper); }
.hg-ip-nav__inner { display: flex; flex-wrap: wrap; align-items: center; gap: 10px 24px; padding: 12px 0; }
.hg-ip-nav__label { margin: 0; font-size: .72rem; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; color: var(--hg-muted); }
.hg-ip-nav a { font-size: .78rem; font-weight: 800; letter-spacing: .11em; text-transform: uppercase; text-decoration: none; }
.hg-ip-feature { border-bottom: 2px solid var(--hg-rule); background: var(--hg-paper); }
.hg-ip-feature__inner { display: grid; grid-template-columns: minmax(0, 1.3fr) minmax(260px, .7fr); gap: 48px; align-items: end; padding: 42px 0 46px; }
.hg-ip-feature h2 { margin: 0 0 .75rem; font-family: var(--hg-serif); font-size: clamp(2rem, 4vw, 4rem); line-height: 1; letter-spacing: -.035em; }
.hg-ip-feature p { margin: 0; max-width: 760px; color: var(--hg-muted); }
.hg-ip-feature__link { justify-self: end; font-size: .82rem; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; }
.hg-ip-callout { max-width: var(--hg-reading); margin-top: 3.25rem; padding-top: 1.5rem; border-top: 2px solid var(--hg-rule); }
.hg-ip-callout__label { margin: 0 0 .5rem; font-size: .72rem; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; color: var(--hg-muted); }
.hg-ip-callout h2 { margin: 0 0 .6rem; font-family: var(--hg-serif); font-size: clamp(1.8rem, 3vw, 2.8rem); line-height: 1.05; }
.hg-ip-callout p { margin: 0 0 .8rem; }
.site-footer__links { display: flex; flex-wrap: wrap; gap: 10px 20px; }
.site-footer__links a { font-weight: 800; text-decoration: none; }

@media (max-width: 760px) {
  .hg-shell { width: min(calc(100% - 28px), var(--hg-max)); }
  .site-header { padding-top: 24px; }
  .site-branding { display: flex; }
  .hg-brand-lockup { gap: 12px; }
  .custom-logo-link { padding: 6px; }
  .custom-logo { width: 48px; max-width: 48px; max-height: 48px; }
  .hg-dashboard, .hg-streams, .archive-grid { grid-template-columns: 1fr; }
  .hg-panel:first-child, .hg-stream:first-child { padding-right: 0; border-right: 0; border-bottom: 2px solid var(--hg-rule); }
  .hg-panel:last-child, .hg-stream:last-child { padding-left: 0; }
  .hg-ip-feature__inner { grid-template-columns: 1fr; gap: 18px; }
  .hg-ip-feature__link { justify-self: start; }
  .site-footer__inner { display: block; }
  .site-footer__links { margin-top: 12px; }
}
