/* Public header/footer only. Content and CMS layouts keep their own styles. */
body.public-page > .skip-link:not(:focus) { position: fixed; top: 0; left: 16px; width: 1px; height: 1px; margin: 0; padding: 0; border: 0; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
body.public-page > .skip-link:focus { position: fixed; top: 8px; left: 16px; z-index: 2000; width: auto; height: auto; padding: 10px 14px; background: #203326; color: #fff; border-radius: 6px; clip-path: none; transform: none; overflow: visible; }
body.public-page .public-header .header-bar { min-height: 72px; flex-wrap: nowrap; gap: 20px; }
body.public-page .public-header .brand-link { flex: 0 0 auto; min-width: 52px; }
body.public-page .public-header .brand-logo { height: 46px !important; width: auto; max-width: 130px; }
body.public-page .public-header .public-nav { gap: clamp(12px, 1.5vw, 24px); flex-wrap: nowrap; font-size: 14px; }
body.public-page .public-header .public-nav > a,
body.public-page .public-header .nav-group-trigger { color: #353a36; font-size: 14px; font-weight: 600; white-space: nowrap; min-height: 44px; }
body.public-page .public-header .public-nav > a:hover,
body.public-page .public-header .public-nav a[aria-current="page"],
body.public-page .public-header .has-active-section,
body.public-page .public-header .nav-group.has-active > .nav-group-trigger { color: #76621c; }
body.public-page .public-header :is(a, button):focus-visible,
body.public-page .public-footer a:focus-visible { outline: 2px solid #8c7424; outline-offset: 4px; }
body.public-page .public-header .nav-dropdown-inner { border-radius: 12px; border-color: #dedfd8; box-shadow: 0 12px 35px #192c191a; }
body.public-page .public-header .nav-dropdown-inner a { padding: 10px 13px; min-height: 44px; font-size: 14px; }
body.public-page .public-header .nav-dropdown[hidden] { display: none !important; }
body.public-page .public-header .mobile-nav-toggle { display: none; }
body.public-page .public-header .mobile-nav-header { display: none; }

body.public-page .public-footer .footer-bar { display: grid; grid-template-columns: minmax(160px, .8fr) minmax(0, 2.2fr); gap: 32px; align-items: start; }
body.public-page .public-footer .footer-bar > p { margin: 0; max-width: 30ch; font-size: 13px; line-height: 1.8; }
body.public-page .public-footer #footer-tagline { display: block; color: #c2c5bf; margin-top: 5px; }
body.public-page .public-footer .footer-links { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px 28px; margin: 0; }
body.public-page .public-footer .footer-link-group { display: flex; flex-direction: column; align-items: flex-start; min-width: 0; gap: 1px; }
body.public-page .public-footer .footer-group-title { margin: 0 0 8px; color: #fff; font-weight: 700; font-size: 13px; }
body.public-page .public-footer .footer-links a { min-height: 36px; padding: 4px 0; font-size: 13px; line-height: 1.5; color: #d4d8d0 !important; }
body.public-page .public-footer .footer-links a:hover { color: #e7d589 !important; }

@media (min-width: 1001px) {
  body.public-page .public-header .public-nav { position: static; display: flex; width: auto; margin-left: auto; opacity: 1; visibility: visible; transform: none; pointer-events: auto; padding: 0; background: transparent; border: 0; box-shadow: none; }
  body.public-page .public-header .nav-group-trigger { width: auto; padding: 0; justify-content: center; letter-spacing: 0; text-transform: none; }
  body.public-page .public-header .nav-dropdown { position: absolute; top: 100%; left: 0; min-width: 226px; }
}
@media (max-width: 1000px) {
  body.public-page .public-header .header-bar { min-height: 64px; justify-content: space-between; gap: 16px; }
  body.public-page .public-header .brand-logo { height: 44px !important; }
  body.public-page .public-header .brand-link { padding-right: 0; }
  body.public-page .public-header.is-menu-open { z-index: 1300; }
  body.public-page .public-header .mobile-nav-toggle { display: inline-flex; position: static; top: auto; right: auto; transform: none; max-width: none; min-height: 44px; min-width: 90px; border-radius: 9px; background: #202c24; border-color: #202c24; padding: 0 13px; color: #fff; }
  body.public-page .public-header .mobile-nav-label { display: inline; font-size: 14px; letter-spacing: 0; }
  body.public-page .public-header .mobile-nav-lines { display: grid; align-self: center; align-content: center; gap: 4px; width: 18px; height: 14px; min-height: 14px !important; max-height: 14px; flex: 0 0 18px; }
  body.public-page .public-header .mobile-nav-lines span { display: block; width: 100%; height: 2px; border-radius: 2px; background: currentColor; transition: transform 180ms ease, opacity 180ms ease; }
  body.public-page .public-header .mobile-nav-toggle.is-open .mobile-nav-lines span:nth-child(1) { transform: translateY(6px) rotate(45deg); }
  body.public-page .public-header .mobile-nav-toggle.is-open .mobile-nav-lines span:nth-child(2) { opacity: 0; }
  body.public-page .public-header .mobile-nav-toggle.is-open .mobile-nav-lines span:nth-child(3) { transform: translateY(-6px) rotate(-45deg); }
  body.public-page .public-header .public-nav { position: fixed; inset: 0 0 0 auto; display: flex; flex-direction: column; align-items: stretch; justify-content: flex-start; flex-wrap: nowrap; width: min(90vw, 360px); height: 100dvh; max-height: 100dvh; margin: 0; gap: 3px; padding: 12px 14px max(24px, env(safe-area-inset-bottom)); overflow: auto; overscroll-behavior: contain; background: #fff; border: 0; border-radius: 0; box-shadow: -12px 0 40px #0002; z-index: 1301; }
  /* Remove the closed fixed panel from layout entirely. Translating a hidden
     drawer beyond the viewport still extends scrollable width on tablets. */
  body.public-page .public-header:not(.is-menu-open) .public-nav[data-dropdown-ready] { display: none !important; opacity: 0; visibility: hidden; pointer-events: none; transform: none; }
  body.public-page .public-header.is-menu-open .public-nav { opacity: 1; visibility: visible; pointer-events: auto; transform: translateX(0); }
  body.public-page .public-header .mobile-nav-header { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 0 0 12px; margin: 0 0 8px; border-bottom: 1px solid #e5e8e0; }
  body.public-page .public-header .mobile-nav-brand { color: #53614f; font-size: 12px; letter-spacing: .02em; padding: 0; }
  body.public-page .public-header .mobile-nav-close { display: inline-flex; align-items: center; justify-content: center; width: 44px; height: 44px; min-height: 44px; border-radius: 8px; border: 1px solid #dfe5d9; background: #fff; font-size: 26px; color: #263426; }
  body.public-page .public-header .public-nav > a,
  body.public-page .public-header .nav-group-trigger { display: flex; align-items: center; justify-content: space-between; width: 100%; min-height: 48px; padding: 10px 12px; margin: 0; border-radius: 8px; border: 0; background: transparent; color: #273626; line-height: 1.5; font-size: 16px; text-transform: none; letter-spacing: 0; cursor: pointer; pointer-events: auto; }
  body.public-page .public-header .public-nav > a[aria-current="page"],
  body.public-page .public-header .nav-group.has-active > .nav-group-trigger { background: #f1f4eb; color: #66571d; }
  body.public-page .public-header .nav-group { display: block; width: 100%; margin: 0; }
  body.public-page .public-header .nav-arrow { display: block; }
  body.public-page .public-header .nav-dropdown { display: block !important; position: static; width: 100%; min-width: 0; padding: 0; margin: 0; opacity: 1 !important; transform: none !important; visibility: visible !important; pointer-events: auto !important; border: 0; box-shadow: none; }
  body.public-page .public-header .nav-dropdown[hidden] { display: none !important; }
  body.public-page .public-header .nav-dropdown-inner { display: grid; gap: 0; min-height: 0; border: 0; border-left: 2px solid #d8dfcf; border-radius: 0; margin: 2px 10px 10px 18px; padding: 0 0 0 8px; background: transparent; box-shadow: none; overflow: visible; }
  body.public-page .public-header .nav-dropdown-inner a { width: 100%; padding: 10px 12px; min-height: 44px; font-size: 15px; white-space: normal; }
  body.public-page .mobile-nav-backdrop { display: block; position: fixed; inset: 0; z-index: 1250; opacity: 0; visibility: hidden; pointer-events: none; background: #15211773; }
  body.public-page.has-mobile-nav-open { overflow: hidden; }
  body.public-page.has-mobile-nav-open .mobile-nav-backdrop { opacity: 1; visibility: visible; pointer-events: auto; }
  body.public-page.has-mobile-nav-open .mobile-sticky-cta { visibility: hidden; pointer-events: none; }
  /* A useful, visible fallback if JavaScript cannot run. */
  body.public-page .public-header .public-nav:not([data-dropdown-ready]) { position: static; width: 100%; height: auto; max-height: none; transform: none; opacity: 1; visibility: visible; box-shadow: none; }
  body.public-page .public-header .header-bar:has(.public-nav:not([data-dropdown-ready])) { flex-wrap: wrap; }
  body.public-page .public-footer .footer-bar { grid-template-columns: 1fr; gap: 24px; }
}
@media (max-width: 540px) {
  body.public-page .public-footer .footer-links { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 22px 16px; }
  body.public-page .public-footer .footer-link-group:last-child { grid-column: 1 / -1; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: 16px; width: 100%; }
  body.public-page .public-footer .footer-link-group:last-child .footer-group-title { grid-column: 1 / -1; }
}
@media (prefers-reduced-motion: reduce) {
  body.public-page .public-header .public-nav,
  body.public-page .mobile-nav-backdrop,
  body.public-page .public-header .mobile-nav-lines span { transition: none; animation: none; }
}
