/* ======================================
   SOURCE THEME — CAMPAIGN MINIMAL MODE
   ====================================== */

/* --- Remove blog-style metadata --- */
.gh-card-meta,
.gh-card-author,
.gh-card-date,
.gh-post-meta,
.gh-post-authors,
.gh-post-reading-time {
    display: none !important;
}

/* --- Remove share/social UI --- */
.gh-social,
.gh-share,
.post-share,
.share {
    display: none !important;
}

/* ==========================
   TYPOGRAPHY (civic, warm)
   ========================== */

/* Use system serif for body + a classic serif for headings */
:root{
  --campaign-body: ui-serif, "Iowan Old Style", "Palatino Linotype", Palatino, Georgia, serif;
  --campaign-title: ui-serif, "Iowan Old Style", "Palatino Linotype", Palatino, Georgia, serif;
}

body{
  font-family: var(--campaign-body) !important;
}

h1,h2,h3,.gh-head-logo,.gh-head-title{
  font-family: var(--campaign-title) !important;
  letter-spacing: 0.02em;
}


/* --- Hide post thumbnails on lists (huge visual improvement) --- */
.gh-card-image,
.gh-feature-image {
    display: none !important;
}

/* --- Typography: civic + calm --- */
body {
    font-size: 18px;
    line-height: 1.6;
    color: #222;
}

/* Serif headings for professional tone */
h1, h2, h3 {
    font-family: "Cinzel", Georgia, serif;
    letter-spacing: 0.03em;
    font-weight: 500;
}

/* --- Narrow content width for credibility --- */
.gh-outer,
.gh-inner,
.gh-content {
    max-width: 720px;
}

/* --- Tighten spacing --- */
.gh-card {
    padding: 0.75rem 0;
    border-bottom: 1px solid rgba(0,0,0,0.05);
}

/* --- Navigation cleanup --- */
.gh-head-menu a {
    font-weight: 500;
    letter-spacing: 0.05em;
    text-transform: uppercase;
    font-size: 0.85rem;
}

/* --- Remove loud hero spacing --- */
.gh-hero {
    margin-bottom: 1rem;
}

/* --- Footer more restrained --- */
footer {
    font-size: 0.85rem;
    opacity: 0.75;
}

/* --- HOME PAGE: remove the big top gap Source adds --- */
body.page-home .gh-main,
body.page-home .gh-outer,
body.page-home .gh-inner {
    padding-top: 0 !important;
    margin-top: 0 !important;
}

body.page-home .gh-article,
body.page-home .gh-article-header {
    margin-top: 0 !important;
    padding-top: 0 !important;
}

/* Source often gives headings a lot of breathing room */
body.page-home .gh-article-title {
    margin-top: 0 !important;
}

/* SOURCE: kill big top spacing on the static homepage */
body.page-home .gh-main,
body.page-home .gh-outer,
body.page-home .gh-inner,
body.page-home main,
body.page-home header,
body.page-template .gh-main,
body.page-template .gh-outer,
body.page-template .gh-inner,
body.page-template main,
body.page-template header {
  margin-top: 0 !important;
  padding-top: 0 !important;
}

/* If Source is using a large hero/header wrapper */
body.page-home .gh-hero,
body.page-home .gh-hero-inner,
body.page-home .gh-header,
body.page-home .gh-post-header {
  margin-bottom: 1rem !important;
  padding-top: 0 !important;
  padding-bottom: 0 !important;
}

/* Hide the literal "Home" title (looks like a CMS artifact) */
body.page-home .gh-article-title,
body.page-template .gh-article-title,
body.page-home .gh-post-title,
body.page-template .gh-post-title {
  display: none !important;
}

/* ======================================
   SOURCE: HOMEPAGE SPACING FIX
   (applies when <body> has class home-template)
   ====================================== */

/* Reduce the large top padding/margin Source gives the homepage */
body.home-template .gh-main,
body.home-template .gh-outer,
body.home-template .gh-inner {
  padding-top: 0 !important;
  margin-top: 0 !important;
}

/* If a hero/header wrapper is creating the gap */
body.home-template .gh-hero,
body.home-template .gh-hero-inner,
body.home-template .gh-header,
body.home-template .gh-post-header {
  padding-top: 0 !important;
  margin-top: 0 !important;
}

/* Tighten first content block so it sits naturally under header */
body.home-template .gh-card:first-child,
body.home-template .gh-content:first-child {
  margin-top: 0 !important;
}

/* ======================================
   LAYOUT: center + clamp to 720
   ====================================== */

/* Center the main content wrappers */
.gh-outer,
.gh-inner,
.gh-content,
.gh-canvas,
.gh-main {
  margin-left: auto !important;
  margin-right: auto !important;
}

/* Enforce the 720px measure */
.gh-inner,
.gh-content,
.gh-canvas {
  max-width: 720px !important;
  width: 100% !important;
}

/* Some Source layouts use a grid; ensure the main column is centered */
body .gh-main {
  display: block !important;
}

/* ======================================
   MEDIA: keep images from exceeding 720
   ====================================== */

/* Clamp all images inside content */
.gh-content img,
.gh-canvas img,
.gh-article img {
  display: block;
  max-width: 720px !important;
  width: 100% !important;     /* responsive down */
  height: auto !important;
  margin-left: auto !important;
  margin-right: auto !important;
}

/* Neutralize "wide" and "full" image treatments that break the measure */
.kg-width-wide,
.kg-width-full,
.kg-gallery-container,
.kg-image-card.kg-width-wide,
.kg-image-card.kg-width-full {
  max-width: 720px !important;
  width: 100% !important;
  margin-left: auto !important;
  margin-right: auto !important;
}

/* Ensure galleries also stay within measure */
.kg-gallery-row,
.kg-gallery-image,
.kg-gallery-card img {
  max-width: 720px !important;
}

/* Prevent accidental horizontal overflow */
html, body {
  overflow-x: hidden;
}

/* ======================================
   HIDE "HOME" PAGE TITLE (Source)
   Only inside main content, not the site header
   ====================================== */

/* Theme-rendered title elements */
body.home-template main .gh-article-title,
body.home-template main .gh-post-title,
body.home-template main .gh-page-title,
body.home-template main header h1 {
  display: none !important;
  margin: 0 !important;
  padding: 0 !important;
}

/* If the "title" is actually the first H1 inside the page content (Koenig editor) */
body.home-template main .gh-content > h1:first-child,
body.home-template main .gh-canvas > h1:first-child {
  display: none !important;
}

/* ======================================
   CLOSE THE GAP AFTER HIDING TITLE
   ====================================== */

/* Collapse the header block that used to contain the title */
body.home-template main .gh-article-header,
body.home-template main .gh-post-header,
body.home-template main .gh-page-header,
body.home-template main header {
  padding-top: 0 !important;
  padding-bottom: 0 !important;
  margin-top: 0 !important;
  margin-bottom: 0 !important;
}

/* If Source adds spacing to the article container itself */
body.home-template main .gh-article,
body.home-template main .gh-post,
body.home-template main .gh-page {
  padding-top: 0 !important;
  margin-top: 0 !important;
}

/* Ensure the content starts immediately under the site header */
body.home-template main .gh-content,
body.home-template main .gh-canvas {
  margin-top: 0 !important;
  padding-top: 0 !important;
}

/* ==========================
   FOOTER: nav menu above glyph
   ========================== */

#gh-navigation .gh-navigation-inner{
  display: flex;
  flex-direction: column;
  align-items: center;     /* centers name and nav */
  gap: 0.5rem;
}

/* The nav list Ghost outputs is ul.nav */
#gh-navigation .campaign-nav ul.nav{
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 1.25rem;
}

/* links: understated but intentional */
#gh-navigation .campaign-nav a{
  text-decoration: none;
  font-weight: 500;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  font-size: 0.85rem;
  opacity: 0.85;
}

#gh-navigation .campaign-nav a:hover{
  opacity: 1;
}

/* Remove bullets even if theme tries to style lists */
#gh-navigation .campaign-nav li{
  margin: 0;
  padding: 0;
}

/* ======================================
   FOOTER LAYOUT (Source): consistent Safari/Chrome
   ====================================== */

footer.gh-footer .gh-footer-bar{
  display: flex !important;
  flex-wrap: wrap;
  align-items: column;
  justify-content: flex-start;   /* or flex-start if you prefer */
  gap: 0.75rem 1.25rem;
}

/* Treat each disclaimer block like a compact inline cell */
footer.gh-footer .gh-footer-bar .campaign-disclaimer{
  display: inline-flex !important;
  align-items: center;
  margin: 0 !important;
  padding: 0 !important;
  text-align: left !important;
  max-width: 720px;
}

/* Clamp the logo so it can’t blow up in Chrome */
footer.gh-footer .gh-footer-bar .campaign-disclaimer img{
  width: auto !important;
  max-width: 220px !important;   /* adjust: 160–260 depending on taste */
  max-height: 48px !important;   /* keeps it “header-logo sized” */
  height: auto !important;
  display: block;
}

/* Make the long disclaimer take the full row when needed */
footer.gh-footer .gh-footer-bar .campaign-disclaimer:nth-child(3){
  flex: 1 1 100%;
  opacity: 0.75;
  font-size: 0.85rem;
  line-height: 1.35;
}

/* Small screens: stack nicely */
@media (max-width: 600px){
  footer.gh-footer .gh-footer-bar{
    flex-direction: column;
    align-items: flex-start;
  }

  footer.gh-footer .gh-footer-bar .campaign-disclaimer:nth-child(3){
    flex: 1 1 auto;
  }
}


/* ==========================
   FOOTER: ALWAYS CENTERED
   ========================== */

footer.gh-footer .gh-footer-bar{
  display: flex !important;
  flex-wrap: wrap;
  justify-content: center !important;
  align-items: center;
  gap: 0.75rem 1.25rem;
  text-align: center !important;
  max-width: 720px;
}

footer.gh-footer .gh-footer-bar .campaign-disclaimer{
  display: inline-flex !important;
  align-items: center;
  justify-content: center;
  text-align: center !important;
  margin: 0 !important;
  padding: 0 !important;
}

/* Logo clamp stays */
footer.gh-footer .gh-footer-bar .campaign-disclaimer img{
  width: auto !important;
  max-width: 220px !important;
  max-height: 48px !important;
  height: auto !important;
}

/* Let the long disclaimer take its own centered line */
footer.gh-footer .gh-footer-bar .campaign-disclaimer:nth-child(3){
  flex: 1 1 100%;
  justify-content: center;
  opacity: 0.75;
  font-size: 0.9rem;
  line-height: 1.35;
}

/* ======================================
   FOOTER: ALWAYS STACKED + SUBTLE STYLE
   ====================================== */

/* Force footer bar to be a vertical stack on all screen widths */
footer.gh-footer .gh-footer-bar{
  display: flex !important;
  flex-direction: column !important;
  flex-wrap: nowrap !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 0.6rem !important;
  text-align: center !important;
}

/* Each footer item becomes its own centered row */
footer.gh-footer .gh-footer-bar .campaign-disclaimer{
  display: block !important;
  width: 100%;
  max-width: 720px;
  margin: 0 !important;
  padding: 0 !important;
  text-align: center !important;
  opacity: 0.82;              /* “less” but not washed out */
  font-size: 0.95rem;         /* smaller, not tiny */
  line-height: 1.35;
}

/* Logo clamp */
footer.gh-footer .gh-footer-bar .campaign-disclaimer img{
  display: block;
  margin: 0 auto;
  width: auto !important;
  max-width: 220px !important;
  max-height: 48px !important;
  height: auto !important;
  opacity: 0.95;
}

/* Links in footer should match the subdued look */
footer.gh-footer .gh-footer-bar a{
  text-decoration: none;
  opacity: 0.9;
}
footer.gh-footer .gh-footer-bar a:hover{
  opacity: 1;
  text-decoration: underline;
}

/* ======================================
   FOOTER NAV (Ghost outputs ul.nav)
   ====================================== */

footer.gh-footer ul.nav{
  list-style: none !important;
  margin: 0.25rem 0 0 !important;
  padding: 0 !important;

  display: flex !important;
  flex-wrap: wrap;
  justify-content: center !important;
  gap: 1.0rem !important;

  font-size: 0.85rem;         /* slightly smaller than body */
  letter-spacing: 0.06em;
  text-transform: uppercase;
  opacity: 0.85;
}

footer.gh-footer ul.nav li{
  margin: 0 !important;
  padding: 0 !important;
}

footer.gh-footer ul.nav a{
  text-decoration: none;
}
footer.gh-footer ul.nav a:hover{
  text-decoration: underline;
}

/* ======================================
   FLOAT IMAGES WITH WRAPPED TEXT (HOME)
   ====================================== */

body.home-template .gh-content img.float-left,
body.page-template .gh-content img.float-left{
  float: left;
  margin: 0 16px 12px 0;   /* 16px gap between image + text */
  width: min(40%, 320px);  /* prevents it from getting huge */
  height: auto;
}

body.home-template .gh-content img.float-right,
body.page-template .gh-content img.float-right{
  float: right;
  margin: 0 0 12px 16px;
  width: min(40%, 320px);
  height: auto;
}

/* Make sure floats don’t bleed into later sections/cards */
body.home-template .gh-content::after{
  content: "";
  display: block;
  clear: both;
}

/* On small screens, don’t wrap—stack instead */
@media (max-width: 700px){
  body.home-template .gh-content img.float-left,
  body.home-template .gh-content img.float-right{
    float: none;
    display: block;
    margin: 0 auto 14px;
    width: min(100%, 520px);
  }
}
body.home-template .gh-article-title,
body.home-template .post-title,
body.home-template .page-title {
  display: none !important;
  }
  body.home-template .hlb-two-col,
  body.page-template .hlb-two-col{
    display:grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 1.5rem;
    margin: 2rem 0;
    align-items:start;
  }

  @media (max-width: 768px){
   body.home-template .hlb-two-col,
   body.page-template .hlb-two-col{
      grid-template-columns: 1fr;
    }
  }

  /* optional presentation */
  body.home-template .hlb-two-col .hlb-col,
  body.page-template .hlb-two-col .hlb-col{
    padding: 1.25rem;
    border: 1px solid rgba(0,0,0,.12);
    border-radius: 14px;
  }

  body.home-template .hlb-two-col .hlb-btn,
  body.page-template .hlb-two-col .hlb-btn{
    display:inline-block;
    margin-top: .75rem;
    padding: .6rem 1rem;
    border-radius: 999px;
    border: 1px solid #2f5d3a;
	color: #2f5d3a;
    text-decoration: none;
  }
  body.home-template .hlb-btn:hover, 
  body.page-template .hlb-btn:hover{
    background: #2f5d3a;
    color: #fff;
    }

  body.home-template figure.gh-article-image, 
  body.page-template figure.gh-article-image{
    width: auto !important;
    max-width: 350px;   /* set this to your original image width */
    margin: 2rem auto !important;
  }

  body.home-template figure.gh-article-image img,
  body.page-template figure.gh-article-image img{
    width: 100%;
    height: auto;
  }
  body.home-template hr,
  body.page-template hr{
  	margin: 1.25rem 0;   /* top and bottom */
  }
    
/* HOME: image + text split layout */
 body.home-template .hlb-split,
 body.page-template .hlb-split{
   display: grid;
   grid-template-columns: minmax(0, 320px) minmax(0, 1fr);
   gap: 20px;
   align-items: start;
   margin: 16px 0;
 }
  body.page-template .hlb-split.is-reversed{
    grid-template-columns: minmax(0, 1fr) minmax(0, 320px);
  }

/* Make the right column control its own vertical spacing */
 body.home-template .hlb-split-text,
 body.page-template .hlb-split-text{
   display: flex;
   justify-content: center;
   flex-direction: column;
   gap: 14px;              /* breathing room between blocks */
   padding-top: 6px;       /* tiny top offset so it doesn’t feel stuck */
 }

 body.home-template .hlb-split-text .hlb-hero,
 body.page-template .hlb-split-text .hlb-hero{
   }
 body.home-template .hlb-split-text .hlb-hero-tag,
 body.page-template .hlb-split-text .hlb-hero-tag{
   }

 body.home-template .hlb-split-media,
 body.page-template .hlb-split-media{
   align-self: center;
 }

 body.home-template .hlb-split-media img,
 body.page-template .hlb-split-media img{
   width: 100%;
   height: auto;
   display: block;
 }

 /* Optional: tighten paragraph spacing inside the block */
 body.home-template .hlb-split-text p,
 body.page-template .hlb-split-text p{
   margin-top: 0;
 }

 /* Mobile: stack */
 @media (max-width: 700px){
   body.home-template .hlb-split,
   body.page-template .hlb-split{
     grid-template-columns: 1fr;
   }
   body.home-template .hlb-split-media,
   body.page-template .hlb-split-media{
     max-width: 520px;
     margin: 0 auto;
   }
 }

.photo-credit-global{
  font-size: 0.95rem;
  opacity: 0.65;
  margin-bottom: 8px;
}
