/*
Theme Name: Revolution Acres 1.0.2
Theme URI: https://www.revolutionacres.com/
Author: Jesse Ryan Jensen and OpenAI
Description: A classic one-page-first WordPress theme for Revolution Acres, with homepage anchor navigation, editorial pages, a blog, and a live typography style guide.
Version: 1.0.2
Requires at least: 6.0
Tested up to: 6.6
Requires PHP: 7.4
License: GNU General Public License v2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
Text Domain: revolution-acres
Tags: blog, custom-logo, featured-images, one-column, accessibility-ready, editor-style
*/

@font-face {
  font-family: "Chunk Five";
  src: url("https://www.revolutionacres.com/wp-content/fonts/ChunkFive-Regular.ttf") format("truetype");
  font-style: normal;
  font-weight: 400;
  font-display: swap;
}

@font-face {
  font-family: "IM Fell English";
  src: url("https://www.revolutionacres.com/wp-content/fonts/IMFellEnglish-Regular.ttf") format("truetype");
  font-style: normal;
  font-weight: 400;
  font-display: swap;
}

@font-face {
  font-family: "IM Fell English";
  src: url("https://www.revolutionacres.com/wp-content/fonts/IMFellEnglish-Italic.ttf") format("truetype");
  font-style: italic;
  font-weight: 400;
  font-display: swap;
}

@font-face {
  font-family: "Oswald";
  src: url("https://www.revolutionacres.com/wp-content/fonts/Oswald-VariableFont_wght.ttf") format("truetype");
  font-style: normal;
  font-weight: 200 700;
  font-display: swap;
}

:root {
  --ra-display: "Chunk Five", Rockwell, "Roboto Slab", serif;
  --ra-interface: "Oswald", "Arial Narrow", Arial, sans-serif;
  --ra-editorial: "IM Fell English", Georgia, serif;
  --ra-paper: #f3ecdf;
  --ra-paper-light: #fffdf8;
  --ra-paper-deep: #e7dbc7;
  --ra-ink: #211915;
  --ra-muted: #6c5b4f;
  --ra-rust: #8d3024;
  --ra-rust-dark: #5b1b15;
  --ra-gold: #c4954f;
  --ra-blue: #2f6f9b;
  --ra-rule: #c8b69f;
  --ra-content: 1180px;
  --ra-reading: 780px;
  --ra-header-height: 88px;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; overflow-x: hidden; }
body {
  margin: 0;
  color: var(--ra-ink);
  background: var(--ra-paper);
  font-family: var(--ra-editorial);
  font-size: 19px;
  line-height: 1.66;
  text-rendering: optimizeLegibility;
  overflow-x: hidden;
}
body.admin-bar { --ra-admin-offset: 32px; }
img { max-width: 100%; height: auto; }
a { color: var(--ra-rust-dark); text-decoration-thickness: .08em; text-underline-offset: .15em; }
a:hover { color: var(--ra-rust); }
a:focus-visible,
button:focus-visible {
  outline: 3px solid var(--ra-blue);
  outline-offset: 4px;
}

.screen-reader-text {
  border: 0;
  clip: rect(1px, 1px, 1px, 1px);
  clip-path: inset(50%);
  height: 1px;
  margin: -1px;
  overflow: hidden;
  padding: 0;
  position: absolute !important;
  width: 1px;
  word-wrap: normal !important;
}
.screen-reader-text:focus {
  background: var(--ra-paper-light);
  clip: auto !important;
  clip-path: none;
  color: var(--ra-ink);
  display: block;
  font: 600 16px/1.2 var(--ra-interface);
  height: auto;
  left: 8px;
  padding: 14px 18px;
  top: 8px;
  width: auto;
  z-index: 100000;
}

.ra-container {
  width: min(calc(100% - 48px), var(--ra-content));
  margin-inline: auto;
}

.site-header {
  position: relative;
  z-index: 1000;
  background: rgba(255, 253, 248, .97);
  border-bottom: 1px solid var(--ra-rule);
}
.site-header__inner {
  min-height: var(--ra-header-height);
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 38px;
}
.site-branding { min-width: 0; }
.site-title {
  margin: 0;
  font: 400 clamp(27px, 3vw, 40px)/.92 var(--ra-display);
  letter-spacing: -.025em;
  text-transform: uppercase;
  white-space: nowrap;
}
.site-title a { color: var(--ra-ink); text-decoration: none; }
.site-title a:hover { color: var(--ra-rust); }

.menu-toggle {
  display: none;
  align-items: center;
  justify-content: center;
  min-width: 48px;
  min-height: 44px;
  border: 1px solid var(--ra-ink);
  background: transparent;
  color: var(--ra-ink);
  font: 600 14px/1 var(--ra-interface);
  letter-spacing: .06em;
  text-transform: uppercase;
  cursor: pointer;
}
.main-navigation ul {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 18px 34px;
  list-style: none;
  padding: 0;
  margin: 0;
}
.main-navigation a {
  display: block;
  padding: 12px 0 10px;
  color: var(--ra-ink);
  border-bottom: 3px solid transparent;
  font: 600 16px/1 var(--ra-interface);
  letter-spacing: .055em;
  text-decoration: none;
  text-transform: uppercase;
}
.main-navigation a:hover,
.main-navigation a:focus-visible { color: var(--ra-rust); border-bottom-color: var(--ra-rust); }

.hero-splash {
  margin: 0;
  background: var(--ra-ink);
  overflow: hidden;
}
.hero-splash img {
  display: block;
  width: 100%;
  aspect-ratio: 1860 / 768;
  object-fit: cover;
  object-position: center center;
}

.home-section {
  scroll-margin-top: 0;
  padding: clamp(58px, 6vw, 86px) 0;
  border-bottom: 1px solid var(--ra-rule);
}
.home-section:nth-of-type(odd) { background: var(--ra-paper-light); }
.home-section:nth-of-type(even) { background: var(--ra-paper); }
.home-section__inner {
  display: grid;
  grid-template-columns: minmax(80px, .25fr) minmax(0, 1.75fr);
  gap: clamp(26px, 5vw, 78px);
  align-items: start;
}
.home-section__number {
  padding-top: 10px;
  color: var(--ra-rust);
  font: 600 clamp(15px, 1.5vw, 18px)/1 var(--ra-interface);
  letter-spacing: .12em;
  text-transform: uppercase;
}
.home-section h2 {
  margin: 0 0 22px;
  font: 400 clamp(50px, 7.4vw, 94px)/.9 var(--ra-display);
  letter-spacing: -.035em;
  text-transform: uppercase;
}
.home-section p {
  max-width: 900px;
  margin: 0;
  font-size: clamp(22px, 2.05vw, 29px);
  line-height: 1.4;
}
.home-section--communities {
  background: var(--ra-rust-dark) !important;
  color: var(--ra-paper-light);
  border-color: #7d3c34;
}
.home-section--communities .home-section__number { color: var(--ra-gold); }
.home-section--videos {
  background: var(--ra-ink) !important;
  color: var(--ra-paper-light);
  border-color: #463a32;
}
.home-section--videos .home-section__number { color: var(--ra-gold); }

.site-main--page,
.site-main--archive {
  min-height: 58vh;
  padding: clamp(64px, 8vw, 112px) 0;
}
.page-shell,
.archive-shell {
  width: min(calc(100% - 48px), var(--ra-content));
  margin-inline: auto;
}
.entry-header,
.archive-header {
  max-width: 970px;
  margin-bottom: 44px;
}
.entry-title,
.archive-title {
  margin: 0;
  font: 400 clamp(48px, 7vw, 88px)/.92 var(--ra-display);
  letter-spacing: -.03em;
  text-transform: uppercase;
}
.entry-content {
  max-width: var(--ra-reading);
  font-size: 22px;
}
.entry-content > *:first-child { margin-top: 0; }
.entry-content p { margin: 0 0 1.35em; }
.entry-content h2,
.entry-content h3,
.entry-content h4 {
  margin: 1.4em 0 .45em;
  font-family: var(--ra-display);
  font-weight: 400;
  line-height: 1;
  text-transform: uppercase;
}
.entry-content h2 { font-size: clamp(38px, 5vw, 60px); }
.entry-content h3 { font-size: clamp(30px, 4vw, 44px); }
.entry-content blockquote {
  margin: 2em 0;
  padding: .25em 0 .25em 1em;
  border-left: 5px solid var(--ra-rust);
  font-size: 1.35em;
  line-height: 1.35;
}
.entry-content img { border-radius: 2px; }

.about-statement {
  max-width: 1000px;
  margin: 0;
  font-size: clamp(30px, 4vw, 54px);
  line-height: 1.28;
}

.post-list {
  display: grid;
  gap: 28px;
}
.post-card {
  display: grid;
  grid-template-columns: minmax(220px, 340px) minmax(0, 1fr);
  background: var(--ra-paper-light);
  border: 1px solid var(--ra-rule);
}
.post-card__image { min-height: 230px; background: var(--ra-paper-deep); }
.post-card__image img { width: 100%; height: 100%; object-fit: cover; display: block; }
.post-card__content { padding: clamp(24px, 4vw, 44px); }
.post-card__title {
  margin: 0 0 12px;
  font: 400 clamp(30px, 4vw, 48px)/1 var(--ra-display);
  text-transform: uppercase;
}
.post-card__title a { color: var(--ra-ink); text-decoration: none; }
.post-card__title a:hover { color: var(--ra-rust); }
.entry-meta {
  margin-bottom: 16px;
  color: var(--ra-muted);
  font: 500 14px/1.4 var(--ra-interface);
  letter-spacing: .045em;
  text-transform: uppercase;
}
.post-card__excerpt { font-size: 20px; }
.post-card__excerpt p { margin: 0; }
.read-more {
  display: inline-block;
  margin-top: 20px;
  padding: 12px 18px;
  background: var(--ra-rust);
  color: white;
  border: 1px solid var(--ra-rust-dark);
  font: 600 14px/1 var(--ra-interface);
  letter-spacing: .06em;
  text-decoration: none;
  text-transform: uppercase;
}
.read-more:hover { background: var(--ra-rust-dark); color: white; }

.single-post .entry-header { max-width: 1000px; }
.single-post .entry-content { max-width: 820px; }
.post-navigation { margin-top: 70px; padding-top: 28px; border-top: 1px solid var(--ra-rule); }
.post-navigation .nav-links { display: flex; justify-content: space-between; gap: 30px; }
.post-navigation a { font: 600 15px/1.3 var(--ra-interface); letter-spacing: .04em; text-transform: uppercase; }

.pagination,
.nav-links { margin-top: 46px; }
.pagination .nav-links { display: flex; flex-wrap: wrap; gap: 8px; }
.page-numbers {
  display: inline-flex;
  min-width: 42px;
  height: 42px;
  align-items: center;
  justify-content: center;
  border: 1px solid var(--ra-rule);
  background: var(--ra-paper-light);
  font: 600 14px/1 var(--ra-interface);
  text-decoration: none;
}
.page-numbers.current { background: var(--ra-ink); color: white; border-color: var(--ra-ink); }

.sitemap-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 30px;
  max-width: 1000px;
}
.sitemap-card {
  padding: 30px;
  background: var(--ra-paper-light);
  border: 1px solid var(--ra-rule);
}
.sitemap-card h2 {
  margin: 0 0 18px;
  font: 400 35px/1 var(--ra-display);
  text-transform: uppercase;
}
.sitemap-card ul { margin: 0; padding-left: 1.2em; }
.sitemap-card li { margin: .45em 0; }

.type-guide { max-width: none; min-width: 0; overflow-x: clip; }
.type-guide__intro { max-width: 900px; font-size: 24px; }
.type-guide__status {
  margin: 26px 0 42px;
  display: inline-flex;
  align-items: center;
  gap: 9px;
  padding: 9px 13px;
  border: 1px solid var(--ra-rule);
  background: var(--ra-paper-light);
  font: 500 13px/1 var(--ra-interface);
  letter-spacing: .045em;
  text-transform: uppercase;
}
.type-guide__dot { width: 9px; height: 9px; border-radius: 50%; background: var(--ra-gold); }
.type-guide__status.loaded .type-guide__dot { background: #438a4b; }
.type-guide__status.failed .type-guide__dot { background: #c74332; }
.type-guide__grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 22px;
  margin: 32px 0 70px;
}
.type-guide__card {
  min-width: 0;
  display: flex;
  flex-direction: column;
  min-height: 420px;
  padding: 28px;
  background: var(--ra-paper-light);
  border: 1px solid var(--ra-rule);
}
.type-guide__label {
  color: var(--ra-rust);
  font: 600 13px/1 var(--ra-interface);
  letter-spacing: .08em;
  text-transform: uppercase;
}
.type-guide__sample { margin: 24px 0; }
.type-guide__sample--chunk { font: 400 37px/1.05 var(--ra-display); text-transform: uppercase; }
.type-guide__sample--oswald { font: 600 34px/1.1 var(--ra-interface); text-transform: uppercase; letter-spacing: .04em; }
.type-guide__sample--fell { font: 400 37px/1.2 var(--ra-editorial); }
.type-guide__alphabet { min-width: 0; overflow-wrap: anywhere; word-break: break-word; font-size: 22px; line-height: 1.45; }
.type-guide__role { margin-top: auto; padding-top: 20px; border-top: 1px solid var(--ra-rule); font-size: 18px; color: var(--ra-muted); }
.type-guide__hierarchy { border-top: 1px solid var(--ra-rule); margin-top: 32px; }
.type-guide__row {
  display: grid;
  grid-template-columns: minmax(190px, .55fr) minmax(0, 1.45fr);
  gap: 30px;
  padding: 25px 0;
  border-bottom: 1px solid var(--ra-rule);
}
.type-guide__row-label { color: var(--ra-muted); font: 500 13px/1.4 var(--ra-interface); letter-spacing: .05em; text-transform: uppercase; }
.type-guide__wordmark { font: 400 38px/.95 var(--ra-display); text-transform: uppercase; }
.type-guide__nav { font: 600 16px/1.2 var(--ra-interface); letter-spacing: .055em; text-transform: uppercase; word-spacing: 18px; }
.type-guide__heading { font: 400 clamp(42px, 5vw, 68px)/.95 var(--ra-display); text-transform: uppercase; }
.type-guide__lead { max-width: 800px; font-size: 29px; line-height: 1.35; }
.type-guide__body { max-width: 760px; font-size: 19px; line-height: 1.65; }
.type-guide__statement {
  margin: 72px 0;
  padding: clamp(64px, 8vw, 100px) clamp(24px, 6vw, 72px);
  background: var(--ra-ink);
  color: var(--ra-paper-light);
}
.type-guide__statement blockquote { max-width: 1080px; margin: 0; padding: 0; border: 0; font-size: clamp(31px, 4vw, 58px); line-height: 1.18; }

.site-footer {
  padding: 46px 0 52px;
  background: #171210;
  color: #d9cdbd;
}
.site-footer__inner {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  gap: 40px;
}
.footer-navigation ul {
  display: grid;
  grid-template-columns: repeat(4, auto);
  gap: 13px 28px;
  list-style: none;
  padding: 0;
  margin: 0;
}
.footer-navigation a {
  color: #f9f2e7;
  font: 500 14px/1.2 var(--ra-interface);
  letter-spacing: .045em;
  text-decoration: none;
  text-transform: uppercase;
}
.footer-navigation a:hover { color: var(--ra-gold); }
.site-info {
  text-align: right;
  font-size: 16px;
  line-height: 1.4;
}
.site-info strong { display: block; color: white; font: 400 22px/1 var(--ra-display); text-transform: uppercase; }

.not-found { max-width: 760px; }
.not-found p { font-size: 23px; }

@media (max-width: 900px) {
  :root { --ra-header-height: 76px; }
  .site-header__inner { min-height: var(--ra-header-height); }
  .menu-toggle { display: inline-flex; }
  .main-navigation {
    display: none;
    position: absolute;
    left: 0;
    right: 0;
    top: 100%;
    background: var(--ra-paper-light);
    border-bottom: 1px solid var(--ra-rule);
    box-shadow: 0 8px 20px rgba(33, 25, 21, .1);
  }
  .main-navigation.is-open { display: block; }
  .main-navigation ul { display: block; padding: 12px 24px 20px; }
  .main-navigation a { padding: 15px 0 12px; }
  .home-section__inner { grid-template-columns: 1fr; gap: 12px; }
  .post-card { grid-template-columns: 1fr; }
  .post-card__image { min-height: 260px; }
  .type-guide__grid { grid-template-columns: 1fr; }
  .type-guide__card { min-height: auto; }
  .site-footer__inner { flex-direction: column; }
  .site-info { text-align: left; }
}

@media (max-width: 700px) {
  body { font-size: 18px; }
  .ra-container,
  .page-shell,
  .archive-shell { width: min(calc(100% - 30px), var(--ra-content)); }
  .site-title { font-size: 26px; white-space: normal; }
  .hero-splash img { aspect-ratio: 4 / 3; object-position: center center; }
  .home-section { padding: 58px 0; }
  .home-section h2 { font-size: clamp(43px, 14vw, 64px); }
  .home-section p { font-size: 23px; }
  .entry-content { font-size: 20px; }
  .post-card__image { min-height: 220px; }
  .sitemap-grid { grid-template-columns: 1fr; }
  .type-guide__row { grid-template-columns: 1fr; gap: 9px; }
  .footer-navigation ul { grid-template-columns: repeat(2, auto); }
  .post-navigation .nav-links { flex-direction: column; }
}

@media (max-width: 420px) {
  .site-title { max-width: 200px; }
  .menu-toggle { min-width: 43px; padding-inline: 9px; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; }
}

@media print {
  .site-header, .site-footer, .menu-toggle { display: none; }
  body { background: white; color: black; }
}
