/* Preston Foods header. Scoped to .pfh-* only. */
.pfh-header { --pfh-green:#104232; --pfh-cream:var(--cream,#edf0e8); --pfh-brass:#b8933f; --pfh-ink:#1e2a25;
  --pfh-serif:Georgia,"Times New Roman",serif; --pfh-sans:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;
  font-family:var(--pfh-sans); color:var(--pfh-ink); line-height:1.3; }
.pfh-header *, .pfh-header *::before, .pfh-header *::after { box-sizing:border-box; }
.pfh-inner { max-width:1200px; margin:0 auto; padding:0 24px; }

/* Preview notice: present but quiet */
.pfh-notice { margin:0; padding:4px 24px; background:var(--cream-2); color:#5a5346; font-size:12px; text-align:center; letter-spacing:.02em; }

/* Masthead */
.pfh-masthead { background:var(--pfh-cream); border-bottom:1px solid #e2dac6; }
.pfh-masthead-inner { display:flex; align-items:center; justify-content:space-between; gap:24px; padding-top:18px; padding-bottom:18px; }
.pfh-brand { display:flex; align-items:center; gap:22px; text-decoration:none; color:inherit; min-width:0; }
.pfh-crest { flex:none; display:block; width:120px; height:120px; padding:5px; border-radius:50%; background:var(--pfh-cream);
  box-shadow:0 0 0 2px var(--pfh-brass), 0 4px 10px rgba(16,66,50,.14); }
.pfh-crest img { display:block; width:110px; height:110px; border-radius:50%; }
.pfh-wordmark { display:flex; flex-direction:column; min-width:0; }
.pfh-name { font-family:var(--pfh-serif); font-size:40px; font-weight:400; letter-spacing:.01em; color:var(--pfh-green); line-height:1; }
.pfh-tagline { margin-top:8px; font-size:15px; color:#3e4a44; }
.pfh-est { margin-top:4px; font-family:var(--pfh-serif); font-size:14px; font-style:italic; color:var(--pfh-brass); }

/* Buttons */
.pfh-actions { display:flex; gap:12px; flex:none; }
.pfh-btn { display:inline-block; padding:12px 20px; border-radius:4px; border:2px solid transparent; font-size:15px; font-weight:600;
  text-decoration:none; white-space:nowrap; transition:background .15s, color .15s, border-color .15s; }
.pfh-btn-primary { background:var(--pfh-green); border-color:var(--pfh-green); color:#fff; }
.pfh-btn-primary:hover { background:#0c3327; border-color:#0c3327; }
.pfh-btn-secondary { background:transparent; border-color:var(--pfh-green); color:var(--pfh-green); }
.pfh-btn-secondary:hover { background:rgba(16,66,50,.08); }

/* Navigation row */
.pfh-navbar { background:var(--pfh-green); border-top:3px solid var(--pfh-brass); }
.pfh-navbar-inner { display:flex; align-items:center; }
.pfh-menu-toggle { display:none; }
.pfh-menu { list-style:none; margin:0; padding:0; display:flex; justify-content:space-between; }
.pfh-menu > li { position:relative; flex:0 0 auto; }
.pfh-menu > li > a { display:flex; align-items:center; gap:7px; padding:15px 14px; color:var(--pfh-cream); text-decoration:none; white-space:nowrap;
  font-size:15px; font-weight:500; letter-spacing:.01em; }
.pfh-menu > li > a:hover, .pfh-menu > .menu-item-has-children:hover > a, .pfh-menu > .menu-item-has-children:focus-within > a { background:rgba(237,240,232,.10); color:#fff; }
.pfh-menu > .menu-item-has-children > a::after { width:7px; height:7px; border-right:1.5px solid var(--pfh-brass); border-bottom:1.5px solid var(--pfh-brass);
  transform:translateY(-2px) rotate(45deg); }

/* Dropdowns: hover and keyboard (focus-within) */
.pfh-menu .sub-menu { list-style:none; margin:0; padding:8px 0; position:absolute; top:100%; left:0; min-width:220px; background:var(--pfh-cream);
  border:1px solid #d9d0b9; border-top:3px solid var(--pfh-brass); box-shadow:0 8px 20px rgba(16,66,50,.18); z-index:50; display:none; }
.pfh-menu > .menu-item-has-children:hover > .sub-menu, .pfh-menu > .menu-item-has-children:focus-within > .sub-menu { display:block; }
.pfh-menu .sub-menu a { display:block; padding:9px 18px; color:var(--pfh-green); text-decoration:none; font-size:15px; }
.pfh-menu .sub-menu a:hover, .pfh-menu .sub-menu a:focus { background:var(--cream-2); }
.pfh-nav-actions { display:none; }

/* Focus: visible on both cream and green */
.pfh-header a:focus-visible, .pfh-header button:focus-visible { outline:3px solid var(--pfh-brass); outline-offset:2px; }
.pfh-navbar a:focus-visible, .pfh-menu-toggle:focus-visible { outline-offset:-3px; }

/* Tablet: tighten masthead */
@media (max-width:1024px) {
  .pfh-name { font-size:34px; }
  .pfh-tagline { font-size:14px; max-width:36ch; }
  .pfh-menu > li > a { padding:14px 13px; font-size:14px; }
}

/* Mobile: compact masthead; navigation has its own wider breakpoint. */
@media (max-width:860px) {
  .pfh-inner { padding:0 16px; }
  .pfh-masthead-inner { gap:12px; padding-top:10px; padding-bottom:10px; }
  .pfh-brand { gap:12px; }
  .pfh-crest { width:80px; height:80px; padding:4px; }
  .pfh-crest img { width:72px; height:72px; }
  .pfh-name { font-size:24px; }
  .pfh-tagline { display:none; }
  .pfh-est { margin-top:5px; font-size:12px; }
  /* Keep trade access one tap away on the compact masthead. */
  .pfh-actions .pfh-btn-primary { display:none; }
  .pfh-actions .pfh-btn-secondary { padding:9px 12px; font-size:13px; }

}

/* Use the menu popup before desktop labels run out of room. */
@media (max-width:1199px) {
  .pfh-navbar-inner { flex-direction:column; align-items:stretch; padding:0; }
  .pfh-menu-toggle { display:flex; align-items:center; gap:10px; width:100%; min-height:48px; padding:0 16px; margin:0; border:0;
    background:transparent; color:var(--pfh-cream); font:600 15px var(--pfh-sans); cursor:pointer; text-align:left; }
  .pfh-burger { position:relative; width:22px; height:2px; background:var(--pfh-cream); }
  .pfh-burger::before, .pfh-burger::after { content:""; position:absolute; left:0; width:22px; height:2px; background:var(--pfh-cream); }
  .pfh-burger::before { top:-7px; } .pfh-burger::after { top:7px; }
  .pfh-menu-toggle[aria-expanded="true"] .pfh-burger { background:transparent; }
  .pfh-menu-toggle[aria-expanded="true"] .pfh-burger::before { top:0; transform:rotate(45deg); }
  .pfh-menu-toggle[aria-expanded="true"] .pfh-burger::after { top:0; transform:rotate(-45deg); }

  .pfh-nav { display:none; border-top:1px solid rgba(237,240,232,.15); }
  .pfh-menu { flex-direction:column; }
  .pfh-menu > li > a { min-height:48px; white-space:normal; padding:12px 16px; border-bottom:1px solid rgba(237,240,232,.10); }
  .pfh-menu > .menu-item-has-children > a::after { display:none; }
  /* Show submenu links inside the popup without a hover dependency. */
  .pfh-menu .sub-menu, .pfh-menu > .menu-item-has-children:hover > .sub-menu, .pfh-menu > .menu-item-has-children:focus-within > .sub-menu { display:block; position:static; min-width:0; padding:0;
    background:transparent; border:0; box-shadow:none; }
  .pfh-menu .sub-menu a { min-height:44px; padding:11px 16px 11px 36px; color:var(--pfh-cream); opacity:.88; font-size:14px;
    border-bottom:1px solid rgba(237,240,232,.08); }
  .pfh-menu .sub-menu a:hover, .pfh-menu .sub-menu a:focus { background:rgba(237,240,232,.10); opacity:1; }
  .pfh-nav-actions { display:flex; flex-direction:column; gap:10px; padding:16px; }
  .pfh-nav-actions .pfh-btn { text-align:center; }
  .pfh-nav-actions .pfh-btn-primary { background:var(--pfh-brass); border-color:var(--pfh-brass); color:var(--pfh-green); }
  .pfh-nav-actions .pfh-btn-secondary { border-color:var(--pfh-cream); color:var(--pfh-cream); }
}

@media (max-width:380px) {
  .pfh-crest { width:72px; height:72px; }
  .pfh-crest img { width:64px; height:64px; }
  .pfh-name { font-size:21px; }
  .pfh-actions .pfh-btn-secondary { padding:8px 10px; font-size:12px; }
}

@media (prefers-reduced-motion:reduce) { .pfh-btn { transition:none; } }
/* Local WordPress integration: existing toggle hooks, actual menu and focus state. */
.pfh-header .pfh-nav{width:100%}
.pfh-header .pfh-menu-toggle{border-radius:0}
.pfh-menu > .menu-item-has-children > a::after{content:"";flex-shrink:0}
.pfh-menu > li > a[aria-current="page"],.pfh-menu > li.current-menu-ancestor > a{box-shadow:inset 0 -3px 0 var(--pfh-brass);background:rgba(237,240,232,.07)}
.pfh-est{color:#806323}
.pfh-menu .sub-menu a{min-height:44px;display:flex;align-items:center}
.pfh-header .pfh-btn{min-height:44px;display:inline-flex;align-items:center;justify-content:center}
.pfh-header .pfh-wordmark{padding:2px 0}
@media(min-width:1200px){.pfh-header .pfh-nav{display:block}.pfh-header .pfh-menu-toggle{display:none}.pfh-menu > li:nth-last-child(-n+2) > .sub-menu{left:auto;right:0}}
@media(max-width:1199px){.pfh-header .pfh-menu-toggle{display:flex}.pfh-header .pfh-nav{display:none}}
@media(max-width:860px){.pfh-header .pfh-actions .pfh-btn-primary{display:none}}
@media(max-width:480px){.pfh-masthead-inner{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px}.pfh-brand{gap:10px}.pfh-name{font-size:25px;line-height:1.04;max-width:7ch}.pfh-est{font:11px/1.35 var(--pfh-sans);max-width:17ch}.pfh-actions .pfh-btn-secondary{font-size:12px;white-space:normal;max-width:88px;text-align:center;padding:8px 10px}.pfh-notice{font-size:10px;padding:5px 12px}.pfh-crest{width:80px;height:80px;padding:4px}.pfh-crest img{width:72px;height:72px}}
@media(max-width:360px){.pfh-masthead-inner{padding-left:12px;padding-right:12px;gap:8px}.pfh-brand{gap:8px}.pfh-name{font-size:23px}.pfh-actions .pfh-btn-secondary{max-width:80px}}

/* Native modal keeps the rest of the page inert while the menu is open. */
html.pfh-menu-open { overflow:hidden; }
html.pfh-menu-open body { position:fixed; top:var(--pfh-scroll-top); left:0; right:var(--pfh-scrollbar-width, 0px); }
/* Full-height left drawer; leave a strip of backdrop visible on small phones. */
.pfh-menu-dialog { position:fixed; inset:0 auto 0 0; width:min(420px, calc(100% - 24px)); max-width:none;
  height:100vh; height:100dvh; max-height:none; margin:0; padding:0; border:0; border-right:1px solid rgba(184,147,63,.5); border-radius:0;
  background:var(--pfh-green); color:var(--pfh-cream); box-shadow:16px 0 64px rgba(0,0,0,.3); overflow:hidden; }
.pfh-menu-dialog:not([open]) { display:none; }
.pfh-menu-dialog[open] { display:flex; flex-direction:column; }
.pfh-menu-dialog::backdrop { background:rgba(8,28,22,.68); }
.pfh-menu-dialog-heading { display:flex; align-items:center; justify-content:space-between; gap:12px; flex:none;
  padding: max(16px, env(safe-area-inset-top, 0px)) 20px 16px max(20px, env(safe-area-inset-left, 0px)); background:var(--pfh-cream); color:var(--pfh-green); border-bottom:1px solid var(--pfh-brass); }
.pfh-menu-dialog-heading h2 { margin:0; color:inherit; font:400 25px/1.15 var(--pfh-serif); }
.pfh-menu-close { display:flex; align-items:center; justify-content:center; flex:none; width:44px; height:44px; padding:0;
  border:1px solid rgba(16,66,50,.25); border-radius:50%; background:transparent; color:var(--pfh-green); font:400 30px/1 var(--pfh-sans); cursor:pointer; }
.pfh-menu-close:hover { background:rgba(16,66,50,.08); }
.pfh-menu-dialog-body { flex:1; padding-left:env(safe-area-inset-left, 0px); overflow-y:auto; overscroll-behavior:contain; min-height:0; padding-bottom:env(safe-area-inset-bottom, 0px); }
.pfh-header .pfh-menu-dialog .pfh-nav { display:block; border-top:0; }
.pfh-menu-dialog a:focus-visible { outline-offset:-3px; }
@media (max-width:380px) {
  .pfh-menu-dialog-heading { padding:max(12px, env(safe-area-inset-top, 0px)) 12px 12px max(12px, env(safe-area-inset-left, 0px)); }
  .pfh-menu-dialog-heading h2 { font-size:22px; }
}

.pfh-account-link{font-size:12px;color:#104232;text-underline-offset:3px}
