/*
Theme Name: Aaron Hansz
Theme URI: https://atthewell.org
Author: Aaron T. Hansz
Description: Personal site theme for Rev. Aaron T. Hansz: pastor, coach, and farmer in Huntsville, Texas. Forest green, navy, terracotta, and cream, with Baskerville titles and Lato body text.
Version: 1.0.0
Requires at least: 6.4
Tested up to: 6.8
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: aaron-hansz
*/

:root {
  --forest: #2E4A3B;
  --navy: #1E2A3E;
  --terracotta: #A9552F;
  --tan: #D6C3A0;
  --sand: #EFE6D4;
  --cream: #F7F1E6;
  --ink: #1E2A3E;
  --ink-soft: #46506A;
  --rule: #DDD0B8;

  --serif: Baskervville, "Libre Baskerville", Baskerville, Georgia, serif;
  --sans: Lato, "Helvetica Neue", Arial, sans-serif;

  --body-size: 11pt;   /* Lato regular 11 */
  --title-size: 14pt;  /* Baskerville bold 14 */
  --sub-size: 12pt;    /* Baskerville semibold italic 12 */
  --leading: 1.2;      /* paragraph line spacing */
}

html { scroll-behavior: smooth; }
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } }

body {
  margin: 0;
  background: var(--cream);
  color: var(--ink);
  font-family: var(--sans);
  font-size: var(--body-size);
  line-height: var(--leading);
  -webkit-font-smoothing: antialiased;
}

.wp-site-blocks p { margin: 0 0 0.9em; max-width: 64ch; }
.wp-site-blocks a { color: inherit; }
.wp-site-blocks a:focus-visible { outline: 2px solid var(--terracotta); outline-offset: 3px; }

.wp-site-blocks h1, .wp-site-blocks h2 {
  font-family: var(--serif);
  font-weight: 700;
  font-size: var(--title-size);
  line-height: 1.2;
  margin: 0 0 0.8em;
}
.wp-site-blocks h3 {
  font-family: var(--serif);
  font-weight: 600;
  font-style: italic;
  font-size: var(--sub-size);
  line-height: 1.2;
  margin: 0 0 0.4em;
}

.wrap { width: min(1080px, 100% - 40px); margin-inline: auto; }

/* ---------- Header ---------- */
.site-header { background: var(--forest); color: var(--cream); }
.header-inner {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 16px;
  padding: 18px 0;
}
.wp-site-blocks .wordmark { margin: 0; font-family: var(--serif); font-weight: 700; font-size: var(--title-size); }
.wordmark a { text-decoration: none; }
.site-nav .wp-block-navigation__container { gap: 6px 22px; flex-wrap: wrap; }
.site-nav a {
  text-decoration: none;
  opacity: 0.85;
  padding: 4px 0;
  border-bottom: 1px solid transparent;
}
.site-nav a:hover { opacity: 1; border-bottom-color: var(--tan); }

/* ---------- Hero ---------- */
.hero { background: var(--forest); color: var(--cream); position: relative; overflow: hidden; }
.hero .wrap { padding: 56px 0 150px; position: relative; z-index: 1; }
.wp-site-blocks .hero-name {
  font-family: var(--serif);
  font-weight: 700;
  font-size: clamp(2.6rem, 7vw, 5.2rem);
  line-height: 1.02;
  letter-spacing: -0.01em;
  margin: 0 0 0.35em;
  max-width: 12ch;
}
.wp-site-blocks .hero-roles {
  font-family: var(--serif);
  font-weight: 600;
  font-style: italic;
  font-size: var(--sub-size);
  color: var(--tan);
  margin-bottom: 1.4em;
}
.wp-site-blocks .lede { max-width: 52ch; opacity: 0.92; }

.actions { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 1.6em; }
.wp-site-blocks .actions .wp-block-button__link {
  display: inline-block;
  font-family: var(--sans);
  font-weight: 700;
  font-size: var(--body-size);
  line-height: 1.2;
  text-decoration: none;
  padding: 11px 20px;
  border-radius: 3px;
  border: 1.5px solid var(--cream);
}
.wp-site-blocks .btn-solid .wp-block-button__link { background: var(--cream); color: var(--forest); }
.wp-site-blocks .btn-solid .wp-block-button__link:hover { background: var(--tan); border-color: var(--tan); }
.wp-site-blocks .btn-line .wp-block-button__link { background: transparent; color: var(--cream); }
.wp-site-blocks .btn-line .wp-block-button__link:hover { background: rgba(247, 241, 230, 0.1); }

.furrows { position: absolute; left: 0; right: 0; bottom: 0; width: 100%; height: 170px; display: block; }

/* ---------- Sections ---------- */
.wp-site-blocks .site-section { padding: 64px 0; margin: 0; }
.wp-site-blocks .section-intro { color: var(--ink-soft); margin-bottom: 2em; }
.sand { background: var(--sand); }

/* Work */
.callings { border-top: 1px solid var(--rule); }
.calling {
  display: grid;
  grid-template-columns: 220px 1fr;
  gap: 28px;
  padding: 28px 0;
  border-bottom: 1px solid var(--rule);
}
.calling-head { border-left: 4px solid var(--accent, var(--forest)); padding-left: 14px; }
.wp-site-blocks .calling-head h2 { margin-bottom: 0.3em; }
.calling-head p { color: var(--ink-soft); }
.calling .more a { font-weight: 700; color: var(--accent, var(--forest)); text-underline-offset: 3px; }
.calling.church { --accent: var(--forest); }
.calling.coaching { --accent: var(--navy); }
.calling.farm { --accent: var(--terracotta); }

/* Writing and teaching */
.works { display: grid; grid-template-columns: repeat(2, 1fr); gap: 36px 48px; margin-top: 1.5em; }
.wp-site-blocks .status { font-size: 9.5pt; color: var(--terracotta); font-weight: 700; margin-bottom: 0.5em; }

/* Blog */
.blog-groups { display: grid; grid-template-columns: repeat(3, 1fr); gap: 40px; }
.wp-site-blocks .blog-group h3 { padding-bottom: 8px; border-bottom: 2px solid var(--tan); margin-bottom: 4px; }
.wp-site-blocks .blog-group h3.group-gap { margin-top: 28px; }
.post-link { padding: 10px 0; border-bottom: 1px solid var(--rule); }
.wp-site-blocks .post-link p { margin: 0; }
.post-link .post-title a { font-weight: 700; color: var(--forest); text-decoration: none; }
.post-link .post-title a:hover { text-decoration: underline; text-underline-offset: 3px; }
.post-link .post-summary { color: var(--ink-soft); margin-top: 2px; }
.wp-site-blocks .all-posts { margin-top: 18px; }
.all-posts a { font-weight: 700; color: var(--terracotta); text-underline-offset: 3px; }

/* About */
.about-grid { display: grid; grid-template-columns: 1.6fr 1fr; gap: 56px; align-items: start; }
.wp-site-blocks .verse {
  margin: 1.6em 0 0;
  padding: 0 0 0 18px;
  border-left: 2px solid var(--tan);
  font-family: var(--serif);
  font-style: italic;
  font-size: var(--sub-size);
  line-height: 1.3;
  color: var(--forest);
  max-width: 52ch;
}
.wp-site-blocks .verse p { margin: 0; }
.verse cite {
  display: block;
  margin-top: 0.5em;
  font-family: var(--sans);
  font-style: normal;
  font-size: 9.5pt;
  color: var(--ink-soft);
}
.fact { padding: 10px 0; border-bottom: 1px solid var(--rule); }
.fact:first-child { border-top: 1px solid var(--rule); }
.wp-site-blocks .fact p { margin: 0; }
.fact .fact-title { font-weight: 700; }
.fact .fact-detail { color: var(--ink-soft); }

/* Background timeline */
.timeline { border-top: 1px solid var(--rule); }
.tl-item { display: grid; grid-template-columns: 150px 1fr; gap: 24px; padding: 16px 0; border-bottom: 1px solid var(--rule); }
.wp-site-blocks .tl-item p { margin: 0; }
.wp-site-blocks .tl-item .years { color: var(--terracotta); font-weight: 700; padding-top: 2px; }
.tl-item .tl-text p { color: var(--ink-soft); }

/* Contact */
.contact { background: var(--navy); color: var(--cream); }
.wp-site-blocks .contact h2 { color: var(--cream); }
.contact-grid { display: grid; grid-template-columns: 1.2fr 1fr; gap: 48px; align-items: start; }
.contact-item { padding: 10px 0; border-bottom: 1px solid rgba(214, 195, 160, 0.3); }
.contact-item:first-child { border-top: 1px solid rgba(214, 195, 160, 0.3); }
.wp-site-blocks .contact-item h3 { color: var(--tan); margin-bottom: 0.2em; }
.wp-site-blocks .contact-item p { margin: 0; }
.contact-item a { text-underline-offset: 3px; }

/* Footer */
.site-footer {
  background: var(--navy);
  color: rgba(247, 241, 230, 0.7);
  font-size: 9.5pt;
  padding: 20px 0 32px;
  border-top: 1px solid rgba(214, 195, 160, 0.2);
}
.wp-site-blocks .site-footer p { margin: 0; }

/* Inner pages and posts */
.page-main { padding: 56px 0 72px; }
.page-main .wrap { max-width: 720px; }
.wp-site-blocks .page-main .wp-block-post-title { font-size: 22pt; margin-bottom: 0.6em; }
.page-main .wp-block-post-content p,
.page-main .wp-block-post-content li { line-height: var(--leading); }
.page-main .wp-block-post-date { color: var(--ink-soft); margin-bottom: 1.5em; }
.post-list .wp-block-post { padding: 20px 0; border-bottom: 1px solid var(--rule); }
.wp-site-blocks .post-list .wp-block-post-title { font-size: var(--title-size); margin: 0 0 0.3em; }
.post-list .wp-block-post-title a { text-decoration: none; color: var(--forest); }

/* ---------- Tablet and phone ---------- */
@media (max-width: 1000px) and (min-width: 761px) {
  .blog-groups { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 760px) {
  .header-inner { flex-direction: column; align-items: flex-start; gap: 8px; padding: 14px 0; }
  .site-nav .wp-block-navigation__container { gap: 6px 16px; }
  .hero .wrap { padding: 40px 0 120px; }
  .furrows { height: 120px; }
  .calling { grid-template-columns: 1fr; gap: 12px; }
  .works, .blog-groups { grid-template-columns: 1fr; gap: 28px; }
  .about-grid, .contact-grid { grid-template-columns: 1fr; gap: 32px; }
  .tl-item { grid-template-columns: 1fr; gap: 4px; }
  .wp-site-blocks .site-section { padding: 48px 0; }
}
