/* ================================================================
   ABOUT PAGE: Our Belief (manifesto)
   Classes: manifesto, mf-inner, mf-quote, mf-divider, mf-body
   ================================================================ */
.manifesto {
  background:  var(--pf-sand);
  padding:     80px 40px;
  width:       100%;
  text-align:  center;
}
.mf-inner { max-width: 780px; margin: 0 auto; }
.manifesto .eyebrow, .manifesto p.eyebrow {
  display: block;
  font-family: var(--pf-mono) !important;
  font-size: 0.6875rem !important;
  letter-spacing: .18em !important;
  text-transform: uppercase !important;
  color: var(--pf-mineral) !important;
  margin-bottom: 20px !important;
  font-style: normal !important;
}
.mf-quote {
  font-family: var(--pf-display) !important;
  font-size: clamp(1.5rem,2.8vw,2.2rem) !important;
  font-weight: 300 !important;
  font-style: italic !important;
  color: var(--pf-navy) !important;
  line-height: 1.55 !important;
  margin: 0 0 32px !important;
  padding: 0 28px;
}
.mf-divider {
  width: 56px;
  height: 1.5px;
  background: var(--pf-gold);
  margin: 0 auto 28px;
  opacity: 0.6;
}
.mf-body {
  font-family: var(--pf-body) !important;
  font-size: 1rem !important;
  font-weight: 300 !important;
  color: var(--pf-slate) !important;
  line-height: 1.8 !important;
  margin: 0 !important;
}

/* ================================================================
   ABOUT PAGE: Our Promise (promise-section)
   Classes: promise-section, promise-inner, promise-header,
   promise-grid, promise-card, promise-num, promise-label, promise-desc
   ================================================================ */
.promise-section {
  background: var(--pf-navy);
  padding: 80px 40px;
  width: 100%;
}
.promise-inner { max-width: 1100px; margin: 0 auto; }
.promise-header { text-align: center; margin-bottom: 52px; }
.promise-header .eyebrow, .promise-header p.eyebrow {
  display: block;
  font-family: var(--pf-mono) !important;
  font-size: 0.6875rem !important;
  letter-spacing: .18em !important;
  text-transform: uppercase !important;
  color: var(--pf-gold) !important;
  margin-bottom: 10px !important;
  font-style: normal !important;
}
.promise-header .sec-title, .promise-header h2.sec-title {
  font-family: var(--pf-display) !important;
  font-size: clamp(1.8rem,3vw,2.6rem) !important;
  font-weight: 300 !important;
  color: var(--pf-white) !important;
  line-height: 1.12 !important;
  margin: 0 !important;
}
.promise-header .sec-title em { color: var(--pf-mineral); font-style: italic; }
.promise-grid {
  display: grid;
  grid-template-columns: repeat(4,1fr);
  gap: 20px;
}
.promise-card {
  background: rgba(255,255,255,.04);
  border: 1px solid rgba(255,255,255,.08);
  border-radius: var(--pf-r-card);
  padding: 32px 20px;
  text-align: center;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 8px;
  transition: background .22s ease, border-color .22s ease, transform .22s ease;
}
.promise-card:hover {
  background: rgba(196,169,122,.08);
  border-color: rgba(196,169,122,.3);
  transform: translateY(-4px);
}
.promise-num {
  font-family: var(--pf-display);
  font-size: clamp(2.2rem,4vw,3.2rem);
  font-weight: 300;
  color: var(--pf-gold);
  line-height: 1;
  display: block;
}
.promise-label {
  font-family: var(--pf-mono);
  font-size: 0.6875rem;
  letter-spacing: .12em;
  text-transform: uppercase;
  color: rgba(253,252,250,.7);
  display: block;
  margin-bottom: 4px;
}
.promise-desc {
  font-family: var(--pf-body) !important;
  font-size: 0.8125rem !important;
  font-weight: 300 !important;
  color: var(--pf-haze) !important;
  line-height: 1.65 !important;
  margin: 0 !important;
}

/* ================================================================
   ABOUT PAGE: CTA Band (cta-band)
   Classes: cta-band, cta-title, cta-sub, cta-btns, btn-sand, btn-ghost
   ================================================================ */
.cta-band {
  background: var(--pf-foam);
  padding: 80px 40px;
  width: 100%;
  text-align: center;
}
.cta-title {
  font-family: var(--pf-display) !important;
  font-size: clamp(1.8rem,3vw,2.8rem) !important;
  font-weight: 300 !important;
  color: var(--pf-ink) !important;
  line-height: 1.15 !important;
  margin-bottom: 12px !important;
}
.cta-sub {
  font-family: var(--pf-body) !important;
  font-size: 1rem !important;
  font-weight: 300 !important;
  color: var(--pf-slate) !important;
  line-height: 1.75 !important;
  max-width: 560px;
  margin: 0 auto 36px !important;
}
.cta-btns {
  display: flex;
  gap: 14px;
  justify-content: center;
  flex-wrap: wrap;
}
.btn-sand {
  display: inline-flex;
  align-items: center;
  padding: 13px 28px;
  background: var(--pf-navy);
  color: var(--pf-white) !important;
  font-family: var(--pf-body);
  font-size: 0.875rem;
  font-weight: 600;
  border-radius: var(--pf-r-btn);
  text-decoration: none;
  letter-spacing: .02em;
  transition: background .18s ease;
}
.btn-sand:hover { background: var(--pf-ocean); color: var(--pf-white) !important; }
.btn-ghost {
  display: inline-flex;
  align-items: center;
  padding: 13px 28px;
  background: transparent;
  color: var(--pf-navy) !important;
  font-family: var(--pf-body);
  font-size: 0.875rem;
  font-weight: 600;
  border-radius: var(--pf-r-btn);
  border: 1.5px solid var(--pf-slate);
  text-decoration: none;
  letter-spacing: .02em;
  transition: border-color .18s ease, color .18s ease;
}
.btn-ghost:hover { border-color: var(--pf-navy); color: var(--pf-navy) !important; }

/* ================================================================
   BLOG PAGE: Article cards in 3-column grid
   ================================================================ */
.blog .site-content, .archive .site-content { background: var(--pf-foam); }
.blog #primary, .archive #primary {
  max-width: 100% !important;
  width: 100% !important;
  padding: 0 !important;
  float: none !important;
}
.blog .ast-row, .archive .ast-row {
  display: flex;
  flex-wrap: wrap;
  gap: 20px;
  padding: 40px;
  max-width: 1160px;
  margin: 0 auto;
  box-sizing: border-box;
}
.blog .ast-article-post, .archive .ast-article-post {
  background: var(--pf-white);
  border: 1px solid var(--pf-mist);
  border-radius: var(--pf-r-card);
  overflow: hidden;
  transition: box-shadow .2s ease, transform .2s ease;
  margin-bottom: 0 !important;
  flex: 0 0 calc(33.333% - 14px);
  display: flex;
  flex-direction: column;
}
.blog .ast-article-post:hover, .archive .ast-article-post:hover {
  box-shadow: var(--pf-shadow-hover);
  transform: translateY(-2px);
}
.blog .ast-article-inner, .archive .ast-article-inner {
  padding: 0 !important;
  display: flex;
  flex-direction: column;
  height: 100%;
}
.blog .post-content, .archive .post-content {
  padding: 20px 24px 24px !important;
  flex: 1;
  display: flex;
  flex-direction: column;
}
.blog .entry-title, .archive .entry-title {
  font-family: var(--pf-display) !important;
  font-size: 1.2rem !important;
  font-weight: 300 !important;
  line-height: 1.3 !important;
  margin: 8px 0 10px !important;
}
.blog .entry-title a, .archive .entry-title a {
  color: var(--pf-ink) !important;
  text-decoration: none !important;
}
.blog .entry-title a:hover, .archive .entry-title a:hover { color: var(--pf-ocean) !important; }
.blog .cat-links a, .archive .cat-links a {
  background: var(--pf-foam) !important;
  color: var(--pf-ocean) !important;
  font-family: var(--pf-mono) !important;
  font-size: 0.625rem !important;
  letter-spacing: .1em !important;
  text-transform: uppercase !important;
  padding: 3px 9px !important;
  border-radius: var(--pf-r-badge) !important;
  text-decoration: none !important;
  border: 1px solid var(--pf-mist) !important;
}
.blog .entry-meta, .archive .entry-meta {
  font-family: var(--pf-mono) !important;
  font-size: 0.6875rem !important;
  color: var(--pf-haze) !important;
  letter-spacing: .03em !important;
}
.blog .ast-excerpt p, .archive .ast-excerpt p {
  font-size: 0.875rem !important;
  color: var(--pf-slate) !important;
  font-weight: 300 !important;
  line-height: 1.7 !important;
  margin-top: 10px !important;
}
.blog .ast-continue-reading-link a, .archive .ast-continue-reading-link a {
  font-family: var(--pf-body) !important;
  font-size: 0.8125rem !important;
  font-weight: 600 !important;
  color: var(--pf-ocean) !important;
  text-decoration: none !important;
  margin-top: auto !important;
  display: inline-block !important;
  padding-top: 12px !important;
}

/* ================================================================
   FOOTER: Dark ink, 3-column branded layout
   ================================================================ */
#colophon, .site-footer {
  background: var(--pf-ink) !important;
  border-top: 1px solid rgba(255,255,255,.06) !important;
  padding: 0 !important;
}
.site-primary-footer-wrap {
  padding: 52px 40px 36px !important;
  max-width: 1160px;
  margin: 0 auto !important;
  box-sizing: border-box;
}
.ast-builder-footer-grid-columns { gap: 0 !important; }
.site-footer-section { padding: 0 28px !important; }
.site-footer-section:first-child { padding-left: 0 !important; }
.site-footer-section:last-child  { padding-right: 0 !important; }
.footer-bar-navigation nav, .footer-widget-area { background: transparent !important; }
.footer-bar-navigation .ast-nav-menu, #astra-footer-menu {
  flex-direction: column !important;
  gap: 10px !important;
  align-items: flex-start !important;
}
.footer-bar-navigation .menu-link, #astra-footer-menu .menu-link {
  font-family: var(--pf-body) !important;
  font-size: 0.8125rem !important;
  font-weight: 300 !important;
  color: rgba(253,252,250,.45) !important;
  text-decoration: none !important;
  transition: color .18s ease !important;
  padding: 0 !important;
}
.footer-bar-navigation .menu-link:hover, #astra-footer-menu .menu-link:hover {
  color: var(--pf-white) !important;
}
.ast-footer-html-1 .ast-header-html { text-align: center !important; }
.ast-footer-html-1 img { max-width: 160px !important; height: auto !important; opacity: .75; }
.ast-footer-html-1 p {
  font-size: 0.75rem !important;
  color: rgba(253,252,250,.3) !important;
  font-weight: 300 !important;
  line-height: 1.6 !important;
  margin-top: 8px !important;
}
.ast-footer-copyright, .ast-footer-copyright p {
  font-family: var(--pf-mono) !important;
  font-size: 0.6875rem !important;
  color: rgba(253,252,250,.2) !important;
  letter-spacing: .04em !important;
  text-align: right !important;
}
.ast-small-footer, .footer-bar-wrap {
  background: var(--pf-ink) !important;
  border-top: 1px solid rgba(255,255,255,.04) !important;
  padding: 16px 40px !important;
}

/* ================================================================
   NAV: Hide site title text — keep logo image + menu only
   ================================================================ */
.site-branding .site-title,
.ast-site-identity .site-title,
.ast-site-title-wrap .site-title {
  display: none !important;
}
.site-branding .site-description,
.ast-site-identity .site-description {
  display: none !important;
}

/* ================================================================
   RESPONSIVE ADDITIONS
   ================================================================ */
@media (max-width: 1023px) {
  .promise-grid { grid-template-columns: repeat(2,1fr); }
  .blog .ast-article-post, .archive .ast-article-post { flex: 0 0 calc(50% - 10px); }
}
@media (max-width: 767px) {
  .manifesto, .promise-section, .cta-band { padding: 52px 20px; }
  .promise-grid { grid-template-columns: 1fr 1fr; gap: 12px; }
  .promise-card { padding: 20px 14px; }
  .cta-btns { flex-direction: column; align-items: center; }
  .btn-sand, .btn-ghost { width: 100%; justify-content: center; max-width: 280px; }
  .blog .ast-row, .archive .ast-row { padding: 24px 16px; gap: 16px; }
  .blog .ast-article-post, .archive .ast-article-post { flex: 0 0 100%; }
  .site-primary-footer-wrap { padding: 40px 20px 24px !important; }
  .ast-small-footer, .footer-bar-wrap { padding: 14px 20px !important; }
}
@media (max-width: 480px) {
  .promise-grid { grid-template-columns: 1fr; }
}

/* ================================================================
   CATEGORY/ARCHIVE: Hide Astra duplicate H1
   Our pf_archive_hdr() outputs the branded H1 (pf-archive-title).
   Astra also outputs its own H1 (ast-archive-title) even when
   the text is filtered to empty. This CSS hides Astra's wrapper.
   ================================================================ */
.archive h1.ast-archive-title,
.archive h1.page-title,
.category h1.ast-archive-title,
.category h1.page-title,
.tag h1.ast-archive-title,
.tag h1.page-title {
  display: none !important;
}

/* Also hide the entire archive banner section Astra wraps around it
   (only if it contains ONLY the archive title and nothing else) */
.ast-archive-description .ast-archive-title:empty {
  display: none !important;
}
