/*
Theme Name: Whitcomb Homestead QC
Theme URI: https://whitcombhomestead.com/
Author: Whitcomb Homestead
Description: Lightweight Whitcomb Homestead heritage theme with pre-launch QC corrections.
Version: 0.3.0
Text Domain: wh-homestead
License: GNU General Public License v2 or later
*/

:root{
  --wh-cream:#faf7ef;
  --wh-warm:#eee7dc;
  --wh-green:#1d2d20;
  --wh-ink:#312e29;
  --wh-rust:#84302a;
  --wh-border:#d6d0c5;
  --wh-footer-link:#f0cfc4;
  --wh-max:1180px;
  --wh-reading:820px;
}

*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  margin:0;
  background:var(--wh-cream);
  color:var(--wh-ink);
  font-family:Georgia,"Times New Roman",serif;
  font-size:20px;
  line-height:1.62;
  text-rendering:optimizeLegibility;
}
a{color:var(--wh-rust);text-underline-offset:.14em}
a:hover,a:focus{color:#a44338}
img{max-width:100%;height:auto}

.wh-site-header{
  background:var(--wh-cream);
}
.wh-header-inner{
  max-width:var(--wh-max);
  margin:0 auto;
  padding:32px 44px 26px;
}
.wh-header-row{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:24px;
}
.wh-site-title{
  color:var(--wh-ink);
  text-decoration:none;
  font-size:1.5rem;
  font-weight:700;
  line-height:1.1;
}
.wh-menu-toggle{
  display:none;
  appearance:none;
  border:0;
  background:transparent;
  color:var(--wh-ink);
  width:48px;height:44px;padding:8px;
  cursor:pointer;
}
.wh-menu-toggle span{
  display:block;height:2px;background:currentColor;margin:6px 0;
}
.wh-primary-nav ul{
  margin:0;padding:0;list-style:none;
  display:flex;align-items:center;gap:26px;
}
.wh-primary-nav a{
  color:var(--wh-ink);
  text-decoration:none;
  font-size:.92rem;
}
.wh-header-rule{
  border:0;border-top:2px solid var(--wh-rust);
  margin:34px 0 0;
}

main{min-height:55vh}

.entry-content > *,
.page-content > *{
  max-width:var(--wh-reading);
  margin-left:auto;
  margin-right:auto;
}
.entry-content > .alignwide,.page-content > .alignwide{max-width:var(--wh-max)}
.entry-content > .alignfull,.page-content > .alignfull{max-width:none}

.entry-content h1,
.page-content h1,
.wp-block-heading.is-style-h1{
  color:var(--wh-green);
  font-size:clamp(3.1rem,6vw,5rem);
  line-height:.98;
  letter-spacing:-.025em;
  margin-top:.25em;
  margin-bottom:.55em;
}
.entry-content h2,
.page-content h2{
  color:var(--wh-green);
  font-size:clamp(2.25rem,4.4vw,3.45rem);
  line-height:1.05;
  letter-spacing:-.018em;
  margin-top:0;
  margin-bottom:.52em;
}
.entry-content h3,.page-content h3{
  color:var(--wh-green);
  font-size:1.65rem;
  line-height:1.18;
}
.entry-content p,.page-content p{
  margin-top:0;
  margin-bottom:1.45em;
}
.entry-content > p:first-child,
.page-content > p:first-child{margin-top:0}

.wp-block-group{
  padding-top:72px;
  padding-bottom:72px;
}
.wp-block-group.has-background{
  padding-left:max(32px,calc((100vw - var(--wh-reading))/2));
  padding-right:max(32px,calc((100vw - var(--wh-reading))/2));
}
.wp-block-separator{
  border:0;
  border-top:1px solid var(--wh-border);
  margin:0;
  max-width:none!important;
}
.wp-block-quote{
  border-left:5px solid var(--wh-rust);
  margin:42px auto;
  padding:4px 0 4px 30px;
  font-style:normal;
}
.wp-block-button__link,.wh-button{
  display:inline-block;
  background:var(--wh-green);
  color:#fff!important;
  border-radius:0;
  padding:.72em 1.15em;
  text-decoration:none;
  font-weight:700;
  line-height:1.2;
}
.wh-button--rust{background:var(--wh-rust)}
.wh-inline-actions{margin:1.1em 0 2.2em}
.wh-inline-actions a+a{margin-left:.65em}

/* Generic protection against overly large block-editor headings on phones */
h1,h2,h3{overflow-wrap:break-word;word-break:normal}

.wh-site-footer{
  background:var(--wh-green);
  color:#fff;
  margin-top:0;
}
.wh-footer-inner{
  max-width:var(--wh-max);
  margin:0 auto;
  padding:68px 44px 44px;
}
.wh-footer-grid{
  display:grid;
  grid-template-columns:1.55fr 1fr 1fr;
  gap:48px;
}
.wh-footer-brand{
  font-size:1.4rem;
  margin:0 0 20px;
}
.wh-footer-copy{
  max-width:560px;
  margin:0;
  color:#fff;
}
.wh-footer-title{
  font-size:1.1rem;
  margin:0 0 14px;
  color:#fff;
}
.wh-footer-nav{
  margin:0;padding-left:1.35em;
}
.wh-footer-nav li{margin:.18em 0}
.wh-site-footer a{
  color:var(--wh-footer-link);
}
.wh-site-footer a:hover,.wh-site-footer a:focus{color:#fff}
.wh-footer-legal{
  border-top:1px solid rgba(255,255,255,.22);
  margin-top:44px;
  padding-top:24px;
  font-size:.82rem;
  display:flex;
  justify-content:space-between;
  flex-wrap:wrap;
  gap:14px 26px;
}
.wh-footer-legal p{margin:0}

@media (max-width: 782px){
  body{
    font-size:18px;
    line-height:1.55;
  }
  .wh-header-inner{
    padding:31px 30px 22px;
  }
  .wh-site-title{
    font-size:1.38rem;
  }
  .wh-menu-toggle{display:block}
  .wh-primary-nav{
    display:none;
    padding-top:18px;
  }
  .wh-primary-nav.is-open{display:block}
  .wh-primary-nav ul{
    display:block;
    border-top:1px solid var(--wh-border);
    padding-top:12px;
  }
  .wh-primary-nav li{padding:7px 0}
  .wh-header-rule{margin-top:30px}

  .entry-content h1,.page-content h1,
  h1.wp-block-heading{
    font-size:clamp(2.7rem,12vw,3.75rem)!important;
    line-height:1.00!important;
  }
  .entry-content h2,.page-content h2,
  h2.wp-block-heading{
    font-size:clamp(2rem,8.2vw,2.7rem)!important;
    line-height:1.08!important;
    letter-spacing:-.012em;
  }
  .entry-content h3,.page-content h3,
  h3.wp-block-heading{
    font-size:1.55rem!important;
    line-height:1.16!important;
  }
  .entry-content p,.page-content p{
    line-height:1.55;
    margin-bottom:1.3em;
  }
  .entry-content > *,
  .page-content > *{
    max-width:none;
    margin-left:0;
    margin-right:0;
  }
  .entry-content > :not(.alignfull),
  .page-content > :not(.alignfull){
    padding-left:30px;
    padding-right:30px;
  }
  .wp-block-group{
    padding-top:52px;
    padding-bottom:52px;
  }
  .wp-block-group.has-background{
    padding-left:30px!important;
    padding-right:30px!important;
  }
  .wp-block-quote{
    margin:28px 30px;
    padding-left:22px;
  }

  .wh-footer-inner{padding:54px 30px 34px}
  .wh-footer-grid{grid-template-columns:1fr;gap:34px}
  .wh-footer-brand{font-size:1.25rem}
  .wh-footer-legal{margin-top:32px}
}

@media (max-width: 420px){
  body{font-size:17px}
  .wh-header-inner{padding-left:24px;padding-right:24px}
  .entry-content > :not(.alignfull),
  .page-content > :not(.alignfull){padding-left:24px;padding-right:24px}
  .wp-block-group.has-background{padding-left:24px!important;padding-right:24px!important}
  .entry-content h2,.page-content h2,h2.wp-block-heading{
    font-size:clamp(1.9rem,9vw,2.45rem)!important;
  }
  .wh-footer-inner{padding-left:24px;padding-right:24px}
}


/* v0.3 post-deployment QC: prevent legacy staging spacers/min-heights from
   creating multi-screen gaps on small devices. */
@media (max-width: 782px){
  .wp-block-spacer{
    height:40px!important;
    min-height:0!important;
  }
  .entry-content .wp-block-group,
  .page-content .wp-block-group{
    min-height:0!important;
  }
  .entry-content .wp-block-cover,
  .page-content .wp-block-cover{
    min-height:min(70vh,560px)!important;
  }
}
@media (max-width: 420px){
  .wp-block-spacer{height:30px!important}
}
