/*
Theme Name: Steadfast for GeneratePress v2
Theme URI: https://example.com/
Description: A clean GeneratePress child theme for Steadfast. Page content remains editable in Gutenberg; no front-page.php override is included.
Author: Steadfast
Template: generatepress
Version: 2.1.0
Text Domain: steadfast-v2
*/

/* =========================================================
   STEADFAST DESIGN SYSTEM
   Grounded in Truth.
   ========================================================= */

:root{
  --sf-bg:#F8F7F3;
  --sf-paper:#FCFBF8;
  --sf-text:#2F2F2F;
  --sf-muted:#6F706A;
  --sf-green:#465A47;
  --sf-navy:#30485E;
  --sf-sand:#C9B79C;
  --sf-stone:#EAE6DE;
  --sf-border:#E4E0D8;
  --sf-dark:#20231F;
  --sf-white:#FFFFFF;
  --sf-max:1200px;
  --sf-reading:760px;
}

html{scroll-behavior:smooth}
body{
  background:var(--sf-bg);
  color:var(--sf-text);
  font-family:"Inter",system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  font-size:18px;
  line-height:1.78;
  -webkit-font-smoothing:antialiased;
}
body,button,input,select,textarea{font-family:"Inter",system-ui,sans-serif}
h1,h2,h3,h4,h5,h6,.site-title{
  font-family:"Cormorant Garamond",Georgia,serif;
  color:var(--sf-text);
  font-weight:600;
  line-height:1.08;
}
a{color:var(--sf-green);text-decoration-thickness:1px;text-underline-offset:3px}
a:hover{color:var(--sf-navy)}
img{max-width:100%;height:auto}

/* Hide GeneratePress' default header/nav/footer; the child theme provides
   a simple brand header/footer while leaving all page content to Gutenberg. */
.site-header,.main-navigation,.site-footer{display:none!important}

/* Brand header */
.sf-site-header{
  background:rgba(248,247,243,.98);
  border-bottom:1px solid var(--sf-border);
  position:relative;
  z-index:40;
}
.sf-header-inner{
  width:min(var(--sf-max),calc(100% - 48px));
  margin:0 auto;
  min-height:96px;
  display:grid;
  grid-template-columns:1fr auto 1fr;
  align-items:center;
  gap:28px;
}
.sf-header-left{justify-self:start}
.sf-header-brand{
  justify-self:center;
  text-align:center;
  color:var(--sf-text);
  text-decoration:none;
  line-height:1;
}
.sf-header-brand strong{
  display:block;
  font-family:"Cormorant Garamond",Georgia,serif;
  font-size:30px;
  letter-spacing:.28em;
  font-weight:600;
  margin-right:-.28em;
}
.sf-header-brand span{
  display:block;
  margin-top:9px;
  font-size:9px;
  letter-spacing:.34em;
  text-transform:uppercase;
  color:#77756f;
  margin-right:-.34em;
}
.sf-header-right{justify-self:end;display:flex;align-items:center;gap:18px}
.sf-header-nav ul{
  display:flex;list-style:none;margin:0;padding:0;gap:28px;align-items:center;
}
.sf-header-nav a,.sf-header-action{
  color:var(--sf-text);text-decoration:none;text-transform:uppercase;
  letter-spacing:.10em;font-size:12px;font-weight:600;
}
.sf-header-nav a:hover,.sf-header-action:hover{color:var(--sf-green)}
.sf-header-action{display:inline-flex;align-items:center;gap:6px}
.sf-header-action svg{width:17px;height:17px;stroke:currentColor;fill:none;stroke-width:1.6}
.sf-mobile-menu{display:none}

/* Remove GeneratePress container padding only for installed editable pages. */
body.sf-editable-page .site.grid-container,
body.sf-editable-page .site-content,
body.sf-editable-page #primary,
body.sf-editable-page .content-area,
body.sf-editable-page .inside-article,
body.sf-editable-page .entry-content{
  max-width:none!important;width:100%!important;margin:0!important;padding:0!important;
}
body.sf-editable-page .entry-header{display:none!important}
body.sf-editable-page .site-content{display:block!important}

/* Full-width Gutenberg sections */
.sf-section{
  padding:96px 28px;
}
.sf-section > .wp-block-group__inner-container,
.sf-contained{
  width:min(var(--sf-max),100%);
  margin-inline:auto;
}
.sf-section-cream{background:var(--sf-bg)}
.sf-section-paper{background:var(--sf-paper)}
.sf-section-stone{background:var(--sf-stone)}
.sf-section-dark{background:var(--sf-dark);color:#f7f4ee}
.sf-section-dark h1,.sf-section-dark h2,.sf-section-dark h3{color:#fff}

.sf-eyebrow{
  font-size:11px!important;
  line-height:1.4!important;
  letter-spacing:.24em!important;
  text-transform:uppercase;
  color:var(--sf-green);
  font-weight:600;
  margin-bottom:18px!important;
}
.sf-eyebrow-light{color:#d8d6cf}
.sf-section-title{
  font-size:clamp(42px,5vw,64px)!important;
  margin:0 0 18px!important;
}
.sf-section-lead{
  max-width:720px;
  margin:0 auto 48px!important;
  color:var(--sf-muted);
  font-size:18px;
}

/* HERO: hard centered horizontally + vertically */
.wp-block-cover.sf-hero-cover{
  min-height:clamp(620px,78vh,860px)!important;
  width:100%!important;
  margin:0!important;
  padding:0!important;
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
}
.sf-hero-cover .wp-block-cover__image-background{
  object-position:center center!important;
}
.sf-hero-cover .wp-block-cover__inner-container{
  width:100%!important;
  max-width:100%!important;
  margin:0!important;
  padding:80px 24px!important;
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
}
.sf-hero-content{
  width:min(900px,100%)!important;
  margin:0 auto!important;
  text-align:center!important;
  display:flex!important;
  flex-direction:column!important;
  align-items:center!important;
  justify-content:center!important;
}
.sf-hero-title{
  color:#fff!important;
  font-size:clamp(58px,8.2vw,118px)!important;
  letter-spacing:.20em!important;
  margin:0 -.20em 20px 0!important;
  line-height:.95!important;
  text-align:center!important;
}
.sf-hero-tagline{
  color:#fff!important;
  text-transform:uppercase;
  letter-spacing:.28em!important;
  font-size:12px!important;
  font-weight:500;
  margin:0 0 28px!important;
  text-align:center!important;
}
.sf-hero-tagline::before,.sf-hero-tagline::after{
  content:"";
  width:90px;
  display:inline-block;
  vertical-align:middle;
  border-top:1px solid rgba(255,255,255,.75);
  margin:0 18px 4px;
}
.sf-hero-copy{
  color:#fff!important;
  font-family:"Cormorant Garamond",Georgia,serif;
  font-size:clamp(24px,2.4vw,34px)!important;
  font-style:italic;
  margin:0 0 36px!important;
  text-align:center!important;
}
.sf-hero-content .wp-block-buttons{
  justify-content:center!important;
  align-items:center!important;
  width:100%;
}

/* Buttons */
.sf-btn-dark .wp-block-button__link,
.sf-btn-light .wp-block-button__link,
.sf-btn-outline-light .wp-block-button__link,
.woocommerce a.button,.woocommerce button.button,.woocommerce input.button,
button,input[type=submit]{
  border-radius:0!important;
  padding:15px 28px!important;
  text-transform:uppercase!important;
  letter-spacing:.08em!important;
  font-size:12px!important;
  font-weight:600!important;
  border:1px solid transparent!important;
  transition:.2s ease;
}
.sf-btn-dark .wp-block-button__link,.woocommerce a.button,.woocommerce button.button,.woocommerce input.button,button,input[type=submit]{
  background:var(--sf-green)!important;color:#fff!important;
}
.sf-btn-dark .wp-block-button__link:hover,.woocommerce a.button:hover,.woocommerce button.button:hover,
.woocommerce input.button:hover,button:hover,input[type=submit]:hover{
  background:var(--sf-dark)!important;color:#fff!important;
}
.sf-btn-light .wp-block-button__link{background:#fff!important;color:var(--sf-dark)!important}
.sf-btn-light .wp-block-button__link:hover{background:var(--sf-green)!important;color:#fff!important}
.sf-btn-outline-light .wp-block-button__link{
  background:transparent!important;color:#fff!important;border-color:rgba(255,255,255,.8)!important;
}
.sf-btn-outline-light .wp-block-button__link:hover{background:#fff!important;color:var(--sf-dark)!important}

/* Split editorial sections */
.sf-split{gap:64px!important;align-items:center!important}
.sf-copy-column{padding:18px 10px}
.sf-copy-column h2{font-size:clamp(40px,4.7vw,62px);margin:0 0 24px}
.sf-copy-column p{color:#555651}
.sf-editorial-image img{
  display:block;width:100%;aspect-ratio:16/10;object-fit:cover;border-radius:0;
}

/* Latest Posts */
.sf-latest-posts{
  list-style:none!important;
  padding:0!important;
  margin:46px 0 42px!important;
  display:grid!important;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:34px;
}
.sf-latest-posts li{margin:0!important}
.sf-latest-posts .wp-block-latest-posts__featured-image img{
  width:100%!important;aspect-ratio:4/3;object-fit:cover;margin-bottom:18px;
}
.sf-latest-posts a{
  font-family:"Cormorant Garamond",Georgia,serif;
  font-size:28px;line-height:1.1;color:var(--sf-text);text-decoration:none;
}
.sf-latest-posts time{font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:#777}

/* Page hero */
.sf-page-hero{padding:92px 28px 70px;background:var(--sf-paper);text-align:center;border-bottom:1px solid var(--sf-border)}
.sf-page-hero h1{font-size:clamp(58px,7vw,92px);margin:0 0 12px}
.sf-page-hero p{max-width:720px;margin:0 auto;color:var(--sf-muted)}

/* Cards */
.sf-card-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:34px}
.sf-card{background:transparent}
.sf-card img{display:block;width:100%;aspect-ratio:4/3;object-fit:cover;margin-bottom:18px}
.sf-card h3{font-size:30px;margin:6px 0 10px}
.sf-card p{font-size:16px;color:var(--sf-muted)}

/* Newsletter */
.sf-newsletter-band{padding:92px 28px;background:var(--sf-green);color:#fff;text-align:center}
.sf-newsletter-band h2{color:#fff;font-size:clamp(46px,5vw,68px);margin:0 0 16px}
.sf-newsletter-band p{max-width:650px;margin:0 auto 28px;color:#eef0eb}

/* Forms */
.sf-form{max-width:720px;margin:0 auto}
.sf-form label{display:block;font-size:12px;text-transform:uppercase;letter-spacing:.08em;margin:18px 0 7px}
.sf-form input,.sf-form textarea{
  width:100%;box-sizing:border-box;border:1px solid var(--sf-border);background:#fff;
  padding:14px 15px;font-size:16px;color:var(--sf-text);border-radius:0;
}
.sf-form textarea{min-height:180px}

/* Single posts / archives inherited from GP but refined */
body.single-post .site-content,body.archive .site-content,body.search .site-content{
  width:min(1120px,calc(100% - 40px));margin:0 auto;padding-top:70px;
}
body.single-post .content-area{width:100%!important}
body.single-post .widget-area{display:none!important}
body.single-post article{max-width:var(--sf-reading);margin:0 auto}
body.single-post .entry-title{font-size:clamp(48px,6vw,72px)}
body.single-post .entry-content{font-family:"Source Serif 4",Georgia,serif;font-size:19px;line-height:1.9}
body.single-post .entry-content h2,body.single-post .entry-content h3{font-family:"Cormorant Garamond",Georgia,serif}
blockquote{border-left:2px solid var(--sf-green);margin:42px 0;padding:4px 0 4px 28px;font-family:"Cormorant Garamond",Georgia,serif;font-size:30px;font-style:italic}

/* WooCommerce */
.woocommerce ul.products{display:grid!important;grid-template-columns:repeat(4,minmax(0,1fr));gap:28px}
.woocommerce ul.products::before,.woocommerce ul.products::after{display:none!important}
.woocommerce ul.products li.product{width:auto!important;margin:0!important;float:none!important;text-align:left}
.woocommerce ul.products li.product img{aspect-ratio:1/1;object-fit:cover}
.woocommerce ul.products li.product .woocommerce-loop-product__title{
  font-family:"Cormorant Garamond",Georgia,serif;font-size:26px!important;color:var(--sf-text)
}
.woocommerce div.product .product_title{font-size:54px}
.woocommerce .price{color:var(--sf-green)!important}

/* Footer */
.sf-site-footer{background:#F0EDE6;border-top:1px solid var(--sf-border);padding:68px 28px 26px}
.sf-footer-inner{width:min(var(--sf-max),100%);margin:0 auto}
.sf-footer-grid{display:grid;grid-template-columns:1.5fr 1fr 1fr 1fr;gap:38px}
.sf-footer-brand strong{font-family:"Cormorant Garamond",Georgia,serif;font-size:28px;letter-spacing:.20em}
.sf-footer-brand span{display:block;font-size:9px;letter-spacing:.26em;text-transform:uppercase;margin-top:8px;color:#777}
.sf-footer-col h3{font-family:"Inter",sans-serif;font-size:11px;text-transform:uppercase;letter-spacing:.13em;margin:0 0 14px}
.sf-footer-col a{display:block;color:var(--sf-text);text-decoration:none;font-size:14px;margin:7px 0}
.sf-footer-bottom{margin-top:44px;padding-top:18px;border-top:1px solid var(--sf-border);font-size:12px;color:#777;display:flex;justify-content:space-between}

/* Responsive */
@media (max-width:980px){
  .sf-header-inner{grid-template-columns:1fr auto;width:min(100% - 32px,1200px);min-height:78px}
  .sf-header-left{display:none}
  .sf-header-brand{justify-self:start}
  .sf-header-right{justify-self:end}
  .sf-latest-posts,.sf-card-grid{grid-template-columns:1fr 1fr}
  .sf-footer-grid{grid-template-columns:1fr 1fr}
  .woocommerce ul.products{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media (max-width:720px){
  body{font-size:17px}
  .sf-header-brand strong{font-size:24px}
  .sf-header-action span{display:none}
  .sf-section{padding:70px 20px}
  .sf-hero-cover .wp-block-cover__inner-container{padding:60px 18px!important}
  .sf-hero-title{letter-spacing:.12em!important;margin-right:-.12em!important;font-size:clamp(48px,15vw,72px)!important}
  .sf-hero-tagline::before,.sf-hero-tagline::after{width:34px;margin-inline:9px}
  .sf-hero-tagline{letter-spacing:.18em!important;font-size:10px!important}
  .sf-split{gap:30px!important}
  .sf-latest-posts,.sf-card-grid{grid-template-columns:1fr}
  .sf-footer-grid{grid-template-columns:1fr}
  .sf-footer-bottom{display:block}
  .sf-footer-bottom span{display:block;margin-top:7px}
  .woocommerce ul.products{grid-template-columns:1fr}
}
