:root {
  --ff-sage: #c5cbaf;
  --ff-sage-mid: #9ca878;
  --ff-olive: #485448;
  --ff-olive-dark: #535d50;
  --ff-ink: #231f20;
  --ff-glow: #e5fa1f;
  --ff-cream: #f4f5ef;
}

body {
  color: var(--ff-ink);
  background-color: #fafbf7;
}

a {
  color: var(--ff-olive);
}

a:hover,
a:focus {
  color: var(--ff-ink);
}

/* Header */
.site-header-wrap,
.site-main-header-wrap,
.site-header-row-container-inner,
#masthead,
.site-header {
  background-color: var(--ff-sage) !important;
}

.site-main-header-inner-wrap,
.site-header-main-section-left,
.site-header-main-section-center,
.site-header-main-section-right {
  padding-top: 0.45rem;
  padding-bottom: 0.45rem;
}

.site-branding {
  padding: 0.35rem 0.9rem 0.35rem 0.5rem;
}

.site-header .custom-logo-link {
  display: inline-flex;
  align-items: center;
  padding: 0.15rem 0.25rem;
}

.site-branding img.custom-logo,
.custom-logo-link img,
.custom-logo {
  max-height: 56px !important;
  width: auto !important;
  height: auto !important;
}

.site-branding .site-title,
.site-branding .site-title a,
.site-title a {
  color: var(--ff-ink) !important;
  font-weight: 700;
}

.site-branding .site-description,
.site-description {
  color: var(--ff-olive) !important;
  font-style: italic;
}

.header-navigation .header-menu-container > ul > li > a,
.primary-menu-container > ul > li > a,
#site-navigation > div > ul > li > a,
.main-navigation > ul > li > a {
  color: var(--ff-ink) !important;
}

.header-navigation .header-menu-container > ul > li > a:hover,
.header-navigation .header-menu-container > ul > li > a:focus,
.main-navigation > ul > li > a:hover,
.main-navigation > ul > li > a:focus {
  color: var(--ff-olive) !important;
}

/* Dropdown: Kadence uses palette3 (ink) as the panel. Our earlier
 * `a { color: ink }` rule made shop-category links dark-on-dark. */
.header-navigation .header-menu-container ul ul.sub-menu,
.header-navigation .header-menu-container ul ul.submenu,
.main-navigation ul ul {
  background: var(--ff-olive) !important;
}

.header-navigation .header-menu-container ul ul li.menu-item > a,
.primary-menu-container ul ul a,
#site-navigation ul ul a,
.main-navigation ul ul a {
  color: var(--ff-cream) !important;
}

.header-navigation .header-menu-container ul ul li.menu-item > a:hover,
.header-navigation .header-menu-container ul ul li.menu-item > a:focus,
.main-navigation ul ul a:hover,
.main-navigation ul ul a:focus {
  color: var(--ff-glow) !important;
  background: #3d473d !important;
}

/* Mobile drawer uses the same ink/olive-dark pairing. */
#mobile-drawer,
#mobile-drawer .drawer-inner,
#mobile-drawer .drawer-content {
  background: var(--ff-olive) !important;
  color: var(--ff-cream) !important;
}

#mobile-drawer .mobile-navigation ul li > a,
#mobile-drawer .mobile-navigation ul li.menu-item-has-children > .drawer-nav-drop-wrap,
#mobile-drawer .drawer-toggle {
  color: var(--ff-cream) !important;
}

#mobile-drawer .mobile-navigation ul li > a:hover,
#mobile-drawer .mobile-navigation ul li.current-menu-item > a {
  color: var(--ff-glow) !important;
}

/* Header social icons (Kadence) */
.header-social-wrap a,
.header-social-inner-wrap a,
.site-header .social-show-none a {
  color: var(--ff-ink) !important;
}

.header-social-wrap a:hover,
.header-social-inner-wrap a:hover,
.site-header .social-show-none a:hover {
  color: var(--ff-olive) !important;
}

/* Footer */
.site-footer-wrap,
.site-bottom-footer-wrap,
#colophon,
.site-footer {
  background-color: var(--ff-olive) !important;
  color: #f4f5ef !important;
}

.site-footer-wrap a,
.site-footer a,
#colophon a {
  color: var(--ff-glow) !important;
}

.site-footer .site-info,
.site-info {
  color: #e8ebe0 !important;
}

/* Kadence filled socials use --global-palette7 (default gray) as the
 * chip background and --global-palette-btn-bg (default blue) on hover.
 * That reads as off-brand on the olive footer. */
.site-footer .footer-social-wrap a,
.site-footer .footer-social-inner-wrap a,
.site-footer .social-show-none a,
#colophon .footer-social-inner-wrap a,
.site-footer .footer-social-wrap .social-button,
#colophon .footer-social-inner-wrap .social-button {
  color: var(--ff-glow) !important;
  background: transparent !important;
  background-color: transparent !important;
  box-shadow: none !important;
}

.site-footer .footer-social-wrap a:hover,
.site-footer .footer-social-wrap a:focus,
.site-footer .footer-social-inner-wrap a:hover,
.site-footer .footer-social-inner-wrap a:focus,
#colophon .footer-social-inner-wrap a:hover,
#colophon .footer-social-inner-wrap a:focus,
.site-footer .footer-social-wrap .social-button:hover,
.site-footer .footer-social-wrap .social-button:focus,
#colophon .footer-social-inner-wrap .social-button:hover,
#colophon .footer-social-inner-wrap .social-button:focus {
  color: #ffffff !important;
  background: transparent !important;
  background-color: transparent !important;
}

.site-footer .social-button svg,
.site-footer .social-button svg * {
  fill: currentColor !important;
}

/* MailPoet signup (footer + in-page olive card) */
.site-footer .mailpoet_form,
.ff-newsletter .mailpoet_form,
.mailpoet_form[data-background-color="#485448"] {
  background: transparent !important;
  color: #f4f5ef;
}

.site-footer .mailpoet_form,
.site-footer .ff-footer-newsletter {
  max-width: 28rem;
  margin: 0.75rem auto 0;
}

.site-footer .mailpoet-heading,
.ff-newsletter .mailpoet-heading {
  color: var(--ff-glow) !important;
}

.site-footer .mailpoet_paragraph,
.ff-newsletter .mailpoet_paragraph,
.site-footer .mailpoet_validate_success,
.ff-newsletter .mailpoet_validate_success {
  color: #f4f5ef !important;
}

.site-footer .mailpoet_text,
.ff-newsletter .mailpoet_text {
  border-radius: 4px !important;
}

.site-footer .mailpoet_submit,
.ff-newsletter .mailpoet_submit {
  background: var(--ff-glow) !important;
  color: var(--ff-ink) !important;
  border: 0 !important;
  border-radius: 4px !important;
  font-weight: 600 !important;
}

.site-footer .mailpoet_submit:hover,
.site-footer .mailpoet_submit:focus,
.ff-newsletter .mailpoet_submit:hover,
.ff-newsletter .mailpoet_submit:focus {
  background: #ffffff !important;
  color: var(--ff-ink) !important;
}

.wp-block-button__link {
  border-radius: 4px !important;
}

/* Homepage */
body.home .entry-hero,
body.home .page-hero-section,
body.page-id-15 .entry-hero {
  display: none !important;
}

body.home .content-container,
body.home .entry-content-wrap {
  padding-top: 1.25rem;
}

.ff-home-logo {
  margin: 0 auto 0.35rem;
  text-align: center;
}

.ff-home-logo img {
  max-height: 180px;
  width: auto;
  height: auto;
}

.ff-hero-photo {
  max-width: 560px;
  margin: 1.1rem auto 1.35rem;
}

.ff-hero-photo img {
  width: 100%;
  height: auto;
  max-height: 240px;
  object-fit: cover;
  border-radius: 8px;
}

.ff-hero-photo figcaption {
  text-align: center;
  font-size: 0.85rem;
  color: var(--ff-olive);
  font-style: italic;
  margin-top: 0.4rem;
}

/* In-page social row (home + contact) */
.ff-social {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  align-items: center;
  gap: 0.35rem 1rem;
  margin: 0.75rem 0 0;
  font-size: 1rem;
}

.ff-social a {
  color: var(--ff-olive);
  font-weight: 600;
  text-decoration: none;
  border-bottom: 1px solid transparent;
}

.ff-social a:hover,
.ff-social a:focus {
  color: var(--ff-ink);
  border-bottom-color: var(--ff-olive);
}

.ff-social-label {
  color: var(--ff-olive);
  font-style: italic;
}

body.blog .entry-hero {
  display: none !important;
}

/*
 * Shop + product categories: Kadence title-above hero is a 200px gray bar
 * (.entry-hero-container-inner .entry-header { min-height: 200px }) plus
 * 5rem .content-area margin. Hug the heading instead.
 */
body.woocommerce-shop .entry-hero.product-archive-hero-section,
body.post-type-archive-product .entry-hero.product-archive-hero-section,
body.tax-product_cat .entry-hero.product-archive-hero-section,
body.tax-product_tag .entry-hero.product-archive-hero-section {
  background: transparent;
}

body.woocommerce-shop .product-archive-hero-section .entry-hero-container-inner,
body.post-type-archive-product .product-archive-hero-section .entry-hero-container-inner,
body.tax-product_cat .product-archive-hero-section .entry-hero-container-inner,
body.tax-product_tag .product-archive-hero-section .entry-hero-container-inner {
  padding: 0.5rem 0 0 !important;
  min-height: 0 !important;
  background: transparent !important;
}

body.woocommerce-shop .product-archive-hero-section .entry-header,
body.post-type-archive-product .product-archive-hero-section .entry-header,
body.tax-product_cat .product-archive-hero-section .entry-header,
body.tax-product_tag .product-archive-hero-section .entry-header {
  min-height: 0 !important;
  padding: 0 !important;
  margin: 0 !important;
}

body.woocommerce-shop .product-archive-hero-section .page-title,
body.post-type-archive-product .product-archive-hero-section .page-title,
body.tax-product_cat .product-archive-hero-section .page-title,
body.tax-product_tag .product-archive-hero-section .page-title {
  font-size: 1.4rem !important;
  line-height: 1.25 !important;
  margin: 0 !important;
  color: var(--ff-olive);
}

body.woocommerce-shop .content-area,
body.post-type-archive-product .content-area,
body.tax-product_cat .content-area,
body.tax-product_tag .content-area {
  margin-top: 1rem !important;
}

/*
 * Square digital wallets (Google Pay / Apple Pay).
 *
 * Square attaches a native <button> into #wc-square-google-pay. Kadence styles
 * every `button` with `transition: all .2s` and a growing box-shadow + theme
 * background on hover, which fights the official Google Pay hover overlay and
 * makes the Buy with GPay button look broken.
 */
#wc-square-digital-wallet button,
#wc-square-google-pay button,
#apple-pay-button {
  transition: none !important;
  box-shadow: none !important;
  transform: none !important;
}

#wc-square-digital-wallet button:hover,
#wc-square-digital-wallet button:focus,
#wc-square-digital-wallet button:active,
#wc-square-google-pay button:hover,
#wc-square-google-pay button:focus,
#wc-square-google-pay button:active,
#apple-pay-button:hover,
#apple-pay-button:focus,
#apple-pay-button:active {
  background: #000 !important;
  background-color: #000 !important;
  color: #fff !important;
  box-shadow: none !important;
  transform: none !important;
  transition: none !important;
}

#wc-square-google-pay,
#wc-square-google-pay button {
  width: 100%;
  max-width: 100%;
}

#wc-square-google-pay:empty {
  display: none !important;
}

/* Meat-share deposit callout */
.ff-deposit-label {
  font-size: 0.85em;
  font-weight: 600;
  color: var(--ff-olive);
  text-transform: lowercase;
}

.ff-deposit-note {
  margin: 0.35rem 0 0.85rem;
  font-size: 0.95em;
}

.sku_wrapper,
.product_meta .sku {
  display: none !important;
}

/*
 * Cart/checkout blocks: Square still registers an express-pay method while
 * Apple Pay is allowed, even after Google Pay is hidden. On non-Apple
 * browsers that leaves Woo's "--- OR ---" rule with no button above it.
 * Hide the empty slot unless a wallet button actually rendered.
 */
.wc-block-components-express-payment:not(:has(button)):not(:has(iframe)):not(:has(.apple-pay-button[style*="display: block"])):not(:has(.apple-pay-button[style*="display: inline"])),
.wc-block-components-express-payment:not(:has(button)):not(:has(iframe)):not(:has(.apple-pay-button[style*="display: block"])):not(:has(.apple-pay-button[style*="display: inline"]))
  + .wc-block-components-express-payment-continue-rule {
  display: none !important;
}
