/* Gutenberg Header and Footer - Frontend */
:root{
  --ghf-container-max: 1200px;
  --ghf-container-pad-x: 24px;

  --ghf-header-bg: #f3efe8;
  --ghf-header-height: 80px;
  --ghf-header-border-bottom: 0px;
  --ghf-header-border-color: #e6dfd4;

  --ghf-logo-font-family: Georgia, 'Times New Roman', serif;
  --ghf-logo-font-size: 24px;
  --ghf-logo-font-weight: 600;
  --ghf-logo-line-height: 1.1;
  --ghf-logo-letter-spacing: 0px;
  --ghf-logo-color-prefix: #2b2b2b;
  --ghf-logo-color-suffix: #586848;

  --ghf-nav-font-family: system-ui, -apple-system, Segoe UI, Roboto, Arial, sans-serif;
  --ghf-nav-font-size: 15px;
  --ghf-nav-font-weight: 500;
  --ghf-nav-letter-spacing: 0px;
  --ghf-nav-gap: 28px;
  --ghf-nav-color: #5a5a5a;
  --ghf-nav-hover-color: #2b2b2b;
  --ghf-nav-active-color: #586848;

  --ghf-mobile-breakpoint: 820px;

  --ghf-footer-bg: #2b2b2b;
  --ghf-footer-pt: 56px;
  --ghf-footer-pb: 24px;
  --ghf-footer-gap: 48px;

  --ghf-footer-heading-ff: Georgia, 'Times New Roman', serif;
  --ghf-footer-heading-fs: 18px;
  --ghf-footer-heading-fw: 600;
  --ghf-footer-heading-color: #f0e8e0;

  --ghf-footer-text-ff: system-ui, -apple-system, Segoe UI, Roboto, Arial, sans-serif;
  --ghf-footer-text-fs: 14px;
  --ghf-footer-text-fw: 400;
  --ghf-footer-text-color: #b9b9b2;
  --ghf-footer-link-color: #b9b9b2;
  --ghf-footer-link-hover-color: #ffffff;

  --ghf-footer-divider-color: #4b4b4b;
  --ghf-footer-divider-width: 1px;
  --ghf-footer-copyright-color: #8f8f8f;
}

/* Safely hide common theme headers/footers without killing inner content headers */
.ghf-hide-theme-header #masthead,
.ghf-hide-theme-header .site-header,
.ghf-hide-theme-header header.site-header,
.ghf-hide-theme-header header#masthead,
.ghf-hide-theme-header .ast-header-wrap,
.ghf-hide-theme-header .kadence-header-wrap,
.ghf-hide-theme-header .elementor-location-header,
.ghf-hide-theme-header .wp-site-blocks > header:not(#ghf-header){
  display:none !important;
}
.ghf-hide-theme-footer #colophon,
.ghf-hide-theme-footer .site-footer,
.ghf-hide-theme-footer footer.site-footer,
.ghf-hide-theme-footer footer#colophon,
.ghf-hide-theme-footer .ast-footer-wrap,
.ghf-hide-theme-footer .kadence-footer-wrap,
.ghf-hide-theme-footer .elementor-location-footer,
.ghf-hide-theme-footer .wp-site-blocks > footer:not(#ghf-footer){
  display:none !important;
}

#ghf-header, #ghf-footer{ box-sizing:border-box; }
#ghf-header *, #ghf-footer *{ box-sizing:inherit; }

.ghf-container{
  max-width: var(--ghf-container-max);
  margin: 0 auto;
  padding-left: var(--ghf-container-pad-x);
  padding-right: var(--ghf-container-pad-x);
}

.ghf-header{
  width:100%;
  background: var(--ghf-header-bg);
  border-bottom: var(--ghf-header-border-bottom) solid var(--ghf-header-border-color);
}
.ghf-header .ghf-container{
  height: var(--ghf-header-height);
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap: 20px;
}

.ghf-logo a{
  text-decoration:none;
  font-family: var(--ghf-logo-font-family);
  font-size: var(--ghf-logo-font-size);
  font-weight: var(--ghf-logo-font-weight);
  line-height: var(--ghf-logo-line-height);
  letter-spacing: var(--ghf-logo-letter-spacing);
  display:flex;
  gap: 8px;
  align-items:baseline;
  white-space:nowrap;
}
.ghf-logo-prefix{ color: var(--ghf-logo-color-prefix); }
.ghf-logo-suffix{ color: var(--ghf-logo-color-suffix); }

.ghf-nav{
  display:block;
}
.ghf-menu, .ghf-footer-menu{
  list-style:none;
  margin:0;
  padding:0;
}

/* Ensure fallback menus (wp_page_menu) also have no bullets */
.ghf-nav ul,
.ghf-nav ol,
.ghf-nav .menu,
.ghf-nav .menu ul{
  list-style:none;
  margin:0;
  padding:0;
}

/* Desktop menu layout options */
.ghf-header.ghf-nav-horizontal .ghf-menu,
.ghf-header.ghf-nav-horizontal .ghf-nav > ul,
.ghf-header.ghf-nav-horizontal .ghf-nav .menu > ul{
  display:flex;
  flex-direction:row;
  align-items:center;
  gap: var(--ghf-nav-gap);
}

.ghf-header.ghf-nav-vertical .ghf-menu,
.ghf-header.ghf-nav-vertical .ghf-nav > ul,
.ghf-header.ghf-nav-vertical .ghf-nav .menu > ul{
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  gap: 12px;
}
.ghf-menu a, .ghf-menu a:visited{
  font-family: var(--ghf-nav-font-family);
  font-size: var(--ghf-nav-font-size);
  font-weight: var(--ghf-nav-font-weight);
  letter-spacing: var(--ghf-nav-letter-spacing);
  color: var(--ghf-nav-color);
  text-decoration:none;
  padding: 6px 0;
}

/* Apply the same link styling to fallback menus */
.ghf-nav a,
.ghf-nav a:visited{
  font-family: var(--ghf-nav-font-family);
  font-size: var(--ghf-nav-font-size);
  font-weight: var(--ghf-nav-font-weight);
  letter-spacing: var(--ghf-nav-letter-spacing);
  color: var(--ghf-nav-color);
  text-decoration:none;
  padding: 6px 0;
  display:inline-block;
}
.ghf-nav a:hover{ color: var(--ghf-nav-hover-color); }
.ghf-nav .current-menu-item > a,
.ghf-nav .current_page_item > a,
.ghf-nav .current-menu-ancestor > a{ color: var(--ghf-nav-active-color); }
.ghf-menu a:hover{
  color: var(--ghf-nav-hover-color);
}
.ghf-menu .current-menu-item > a,
.ghf-menu .current_page_item > a,
.ghf-menu .current-menu-ancestor > a{
  color: var(--ghf-nav-active-color);
}

/* Mobile toggle */
.ghf-nav-toggle{
  display:none;
  background: transparent;
  border: 0;
  box-shadow: none;
  border-radius: 0;
  -webkit-appearance: none;
  appearance: none;
  padding: 10px 8px;
  cursor:pointer;
  align-items:center;
  gap:10px;
  font-family: var(--ghf-nav-font-family);
  font-size: var(--ghf-nav-font-size);
  color: var(--ghf-nav-color);
  line-height: 1;
}
.ghf-nav-toggle-text:empty{ display:none; }
.ghf-nav-toggle-icon{
  width:18px;
  height:12px;
  position:relative;
  display:inline-block;
}
.ghf-nav-toggle-icon:before,
.ghf-nav-toggle-icon:after{
  content:"";
  position:absolute;
  left:0;
  right:0;
  height:2px;
  background: currentColor;
  border-radius: 2px;
}
.ghf-nav-toggle-icon:before{ top:0; box-shadow: 0 5px 0 currentColor, 0 10px 0 currentColor; }
.ghf-nav-toggle-icon:after{ display:none; }

/* Footer */
.ghf-footer{
  background: var(--ghf-footer-bg);
  color: var(--ghf-footer-text-color);
}
.ghf-footer .ghf-container{
  padding-top: var(--ghf-footer-pt);
  padding-bottom: var(--ghf-footer-pb);
}
.ghf-footer-grid{
  display:flex;
  gap: var(--ghf-footer-gap);
}
.ghf-footer-col{
  flex:1;
  min-width: 180px;
}
.ghf-footer-brand{
  flex: 1.4;
  max-width: 520px;
}
.ghf-footer-heading{
  font-family: var(--ghf-footer-heading-ff);
  font-size: var(--ghf-footer-heading-fs);
  font-weight: var(--ghf-footer-heading-fw);
  color: var(--ghf-footer-heading-color);
  margin-bottom: 12px;
}
.ghf-footer-text{
  font-family: var(--ghf-footer-text-ff);
  font-size: var(--ghf-footer-text-fs);
  font-weight: var(--ghf-footer-text-fw);
  color: var(--ghf-footer-text-color);
  line-height: 1.6;
  max-width: 520px;
}
.ghf-footer-nav a, .ghf-footer-legal a{
  font-family: var(--ghf-footer-text-ff);
  font-size: var(--ghf-footer-text-fs);
  font-weight: var(--ghf-footer-text-fw);
  color: var(--ghf-footer-link-color);
  text-decoration:none;
}
.ghf-footer-nav a:hover, .ghf-footer-legal a:hover{
  color: var(--ghf-footer-link-hover-color);
}
.ghf-footer-menu{
  display:flex;
  flex-direction:column;
  gap: 10px;
}
.ghf-footer-legal{
  list-style:none;
  margin:0;
  padding:0;
  display:flex;
  flex-direction:column;
  gap: 10px;
}
.ghf-footer-bottom{
  margin-top: 40px;
}
.ghf-footer-divider{
  height: var(--ghf-footer-divider-width);
  background: var(--ghf-footer-divider-color);
  width: 100%;
  opacity: 0.75;
}
.ghf-footer-copyright{
  margin-top: 18px;
  text-align:center;
  font-family: var(--ghf-footer-text-ff);
  font-size: 12px;
  color: var(--ghf-footer-copyright-color);
}

/* Responsive */
@media (max-width: 920px){
  .ghf-footer-grid{ flex-direction:column; }
  .ghf-footer-brand{ max-width:none; }
}
/* Mobile rules are injected inline so the breakpoint can be controlled from the dashboard. */

/* Header behavior options */
.ghf-header--behavior-sticky{ position: sticky; top:0; z-index: 999999; }
.ghf-header--behavior-scroll{ position: relative; z-index: 999999; }
.ghf-header--behavior-scroll.is-fixed{ position: fixed; top:0; left:0; right:0; }
