/* =========================================================================
   Site header (v6). The same header on every page.

   Four doors, always in the same place: Aviation, Hospitality, Private Office
   and About. Each opens a short dropdown listing that page's sections in the
   order they appear on the page, plus the guides and sources linked from
   inside it ("Go deeper"). One action: the enquiry button.

   Desktop: the label is a link to the page; the chevron beside it (or a
   hover) opens the dropdown. Phones: the four doors sit on their own row and
   the menu button opens the same lists as an accordion.

   The header is a <nav class="zh">. Older stylesheets (home.css,
   hospitality.css) still carry bare `nav{...}` rules for an earlier header;
   every property they set is reset here with a class selector, which
   outranks them. The state classes are zh--*, so the old
   `nav.is-scrolled` rule never matches.
   ========================================================================= */

:root{--zh-h:72px}
/* Same usable width on every page, so the header never shifts sideways
   between pages that do and do not have a scrollbar. */
html{scrollbar-gutter:stable}

.zh{
  --zh-ink:#11130E; --zh-oyster:#F2EEE6; --zh-gold:#C8AA72;
  --zh-text:rgba(242,238,230,.74);
  --zh-panel:#15180F;
  --zh-pad:clamp(1.25rem,4vw,3.5rem);
  --zh-gap:clamp(1.5rem,2.6vw,2.6rem);
  position:fixed; top:0; left:0; right:0; z-index:40;
  display:block; height:auto; margin:0; padding:0;
  color:var(--zh-oyster);
  font-family:"Hanken Grotesk",-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Arial,sans-serif;
  font-size:16px; line-height:1.2; text-align:left;
  background:linear-gradient(180deg,rgba(17,19,14,.8),rgba(17,19,14,.6));
  -webkit-backdrop-filter:blur(18px); backdrop-filter:blur(18px);
  border:0; border-bottom:1px solid rgba(242,238,230,.09);
  transition:background-color .3s ease,border-color .3s ease;
}
.zh.zh--solid{background:rgba(17,19,14,.92); border-bottom-color:rgba(242,238,230,.13)}
/* Light pages: the header sits in the flow above the page and sticks. */
.zh.zh--sticky{position:sticky; background:var(--zh-ink); -webkit-backdrop-filter:none; backdrop-filter:none}
.zh--sticky + .shell{min-height:calc(100vh - var(--zh-h))}

.zh *,.zh *::before,.zh *::after{box-sizing:border-box}
.zh ul,.zh ol{list-style:none; margin:0; padding:0}
.zh li{margin:0; padding:0}
.zh a:focus-visible,.zh button:focus-visible{outline:2px solid var(--zh-gold); outline-offset:3px; border-radius:2px}

.zh__bar{
  display:grid; grid-template-columns:minmax(0,1fr) auto minmax(0,1fr); align-items:center;
  height:var(--zh-h); padding:0 var(--zh-pad);
}

.zh__brand{
  justify-self:start; display:inline-flex; align-items:center; min-height:44px;
  font-family:"Fraunces",Georgia,"Times New Roman",serif; font-weight:400; font-size:1.04rem;
  letter-spacing:.38em; text-transform:uppercase; text-decoration:none; color:var(--zh-oyster);
  white-space:nowrap;
}

/* Phone-only parts */
.zh .zh__tabs,.zh .zh__burger{display:none}

/* ---- The four doors ------------------------------------------------------ */
.zh__nav{justify-self:center}
.zh__menu{display:flex; align-items:center; gap:var(--zh-gap)}
.zh__item{position:relative}
.zh__row{display:flex; align-items:center}
.zh__top,.zh__tab{
  position:relative; display:inline-flex; align-items:center; min-height:44px;
  font-size:.7rem; font-weight:500; letter-spacing:.2em; text-transform:uppercase;
  color:var(--zh-text); text-decoration:none; white-space:nowrap;
  transition:color .2s ease;
}
.zh__top[aria-current],.zh__tab[aria-current]{color:var(--zh-oyster)}
.zh__top[aria-current]::after,.zh__tab[aria-current]::after{
  content:""; position:absolute; left:0; right:.2em; bottom:9px; height:1px; background:var(--zh-gold);
}
/* Buttons are reset against the site-wide form button styles in home.css
   and hospitality.css (ink fill, 52px height, forest hover). */
.zh .zh__toggle,.zh .zh__burger{
  min-height:0; margin-top:0; box-shadow:none; transform:none; justify-self:auto;
  font:inherit; letter-spacing:normal; text-transform:none; -webkit-appearance:none; appearance:none;
}
.zh .zh__toggle:hover,.zh .zh__toggle:active,.zh .zh__burger:hover,.zh .zh__burger:active{background:none; transform:none}
.zh .zh__toggle{
  display:inline-flex; align-items:center; justify-content:center; flex:0 0 auto;
  width:26px; height:44px; margin:0 0 0 .15rem; padding:0; border:0; border-radius:4px;
  background:none; color:var(--zh-text); cursor:pointer;
  transition:color .2s ease;
}
.zh__toggle svg{width:9px; height:6px; transition:transform .2s ease}
.zh__item.is-open .zh__top,.zh__item.is-open .zh__toggle{color:var(--zh-oyster)}
.zh__item.is-open .zh__toggle svg{transform:rotate(180deg)}
@media (hover:hover){
  .zh__row:hover .zh__top,.zh__row:hover .zh__toggle,.zh__tab:hover{color:var(--zh-oyster)}
}

/* ---- Dropdown ------------------------------------------------------------- */
.zh__drop{
  display:none; position:absolute; top:calc(100% + 14px); left:50%; z-index:2;
  width:22rem; margin-left:-11rem; padding:.7rem 1.4rem 1.1rem;
  background:var(--zh-panel); border:1px solid rgba(242,238,230,.13); border-top-color:rgba(200,170,114,.6);
  box-shadow:0 26px 60px rgba(0,0,0,.45);
  text-align:left; line-height:1.3;
}
/* Keeps the pointer inside the menu while it crosses the gap from the label */
.zh__drop::before{content:""; position:absolute; left:0; right:0; top:-15px; height:15px}
.zh__item.is-open > .zh__drop{display:block; animation:zh-in .18s ease-out}
/* Without JavaScript, hover and keyboard focus still open the dropdowns */
.zh:not(.zh--js) .zh__item:hover > .zh__drop,
.zh:not(.zh--js) .zh__item:focus-within > .zh__drop{display:block}
@keyframes zh-in{from{opacity:0; transform:translateY(-6px)}to{opacity:1; transform:none}}

.zh__secs li + li{border-top:1px solid rgba(242,238,230,.07)}
.zh__secs a{
  display:flex; align-items:baseline; gap:.9rem; min-height:42px; padding:.7rem 0 .62rem;
  font-size:.93rem; letter-spacing:.005em; color:rgba(242,238,230,.86); text-decoration:none;
  transition:color .2s ease;
}
.zh__n{
  flex:0 0 1.15rem; font-size:.64rem; letter-spacing:.04em; font-variant-numeric:tabular-nums;
  color:var(--zh-gold);
}
.zh__deep-title{
  margin:.85rem 0 .2rem; padding-top:.95rem; border-top:1px solid rgba(242,238,230,.16);
  font-size:.58rem; font-weight:600; letter-spacing:.2em; text-transform:uppercase;
  color:rgba(242,238,230,.52);
}
.zh__deep a{
  display:flex; align-items:baseline; gap:.75rem; min-height:36px; padding:.5rem 0 .4rem;
  font-size:.86rem; color:rgba(242,238,230,.8); text-decoration:none; transition:color .2s ease;
}
.zh__tag{
  flex:0 0 3.7rem; font-size:.56rem; font-weight:600; letter-spacing:.15em; text-transform:uppercase;
  color:var(--zh-gold);
}
.zh__drop a[aria-current]{color:var(--zh-oyster)}
.zh__drop a[aria-current]::after{
  content:""; align-self:center; width:5px; height:5px; margin-left:auto; border-radius:50%;
  background:var(--zh-gold); flex:0 0 auto;
}
@media (hover:hover){
  .zh__drop a:hover{color:var(--zh-oyster)}
  .zh__secs a:hover .zh__n{color:#E2C98F}
  .zh__drop a:hover .zh__deep-label{text-decoration:underline; text-decoration-color:rgba(200,170,114,.7); text-underline-offset:4px}
}

/* ---- Call to action -------------------------------------------------------- */
.zh__cta{
  justify-self:end; display:inline-flex; align-items:center; justify-content:center; min-height:44px;
  padding:.8rem 1.15rem .76rem; border:1px solid rgba(242,238,230,.26); border-radius:999px;
  font-size:.66rem; font-weight:500; letter-spacing:.2em; text-transform:uppercase; text-decoration:none;
  color:var(--zh-oyster); white-space:nowrap;
  transition:background-color .25s ease,border-color .25s ease;
}
.zh__cta-short{display:none}
@media (hover:hover){.zh__cta:hover{background:rgba(242,238,230,.08); border-color:rgba(242,238,230,.45)}}

/* ---- Page offsets for the header ------------------------------------------ */
[id]{scroll-margin-top:calc(var(--zh-h) + 24px)}
.evidence-toc{top:calc(var(--zh-h) + 1.75rem)}

/* ---- Narrower desktops ------------------------------------------------------ */
@media (max-width:1139px){
  .zh__cta-long{display:none}
  .zh__cta-short{display:inline}
}
@media (max-width:1023px){
  .zh{--zh-gap:1.2rem}
  .zh__top{font-size:.65rem; letter-spacing:.16em}
  .zh .zh__toggle{width:22px; margin-left:.05rem}
  .zh__brand{font-size:.96rem; letter-spacing:.34em}
}

/* ---- Phones and small tablets ----------------------------------------------
   Row 1: wordmark, enquiry, menu. Row 2: the four doors, always visible.
   The menu opens the same page lists as an accordion under the header. */
@media (max-width:859px){
  :root{--zh-h:101px}
  .zh{--zh-pad:clamp(1rem,4.5vw,1.6rem)}
  .zh__bar{
    height:auto; padding:0;
    grid-template-columns:minmax(0,1fr) auto auto; grid-template-areas:"brand cta burger" "tabs tabs tabs";
  }
  .zh__brand{grid-area:brand; height:56px; padding-left:var(--zh-pad); font-size:.9rem; letter-spacing:.34em}
  .zh__cta{grid-area:cta; min-height:40px; padding:.66rem .95rem .62rem; font-size:.6rem; letter-spacing:.17em}
  .zh .zh__burger{
    grid-area:burger; display:inline-flex; align-items:center; justify-content:center;
    width:44px; height:44px; margin:0 var(--zh-pad) 0 .8rem; padding:0;
    border:1px solid rgba(242,238,230,.26); border-radius:50%; background:none; color:var(--zh-oyster); cursor:pointer;
    visibility:hidden;
  }
  .zh.zh--js .zh__burger{visibility:visible}
  .zh__bars{display:block; position:relative; width:16px; height:10px}
  .zh__bars span{position:absolute; left:0; right:0; height:1.5px; background:currentColor; transition:transform .25s ease}
  .zh__bars span:first-child{top:0}
  .zh__bars span:last-child{bottom:0}
  .zh--sheet-open .zh__bars span:first-child{transform:translateY(4.25px) rotate(45deg)}
  .zh--sheet-open .zh__bars span:last-child{transform:translateY(-4.25px) rotate(-45deg)}

  .zh .zh__tabs{
    grid-area:tabs; display:flex; align-items:center; justify-content:center; gap:2.2rem;
    height:44px; padding:0 var(--zh-pad); border-top:1px solid rgba(242,238,230,.09);
  }
  .zh__tab{font-size:.64rem; letter-spacing:.15em}
  .zh__tab[aria-current]::after{bottom:0; height:2px; right:.15em}

  /* The menu sheet */
  .zh__nav{
    display:none; position:absolute; top:100%; left:0; right:0; z-index:2; justify-self:stretch; width:auto;
    max-height:calc(100vh - var(--zh-h)); max-height:calc(100dvh - var(--zh-h));
    overflow-y:auto; overscroll-behavior:contain;
    padding:.25rem var(--zh-pad) 1.4rem; background:var(--zh-panel);
    border-bottom:1px solid rgba(242,238,230,.13);
  }
  .zh--sheet-open{-webkit-backdrop-filter:none; backdrop-filter:none; background:rgba(17,19,14,.98)}
  .zh--sheet-open .zh__nav{display:block; animation:zh-in .2s ease-out}
  /* Dims the page under the open menu; a tap on it closes the menu */
  .zh--sheet-open .zh__nav::before{
    content:""; position:fixed; left:0; right:0; top:var(--zh-h); bottom:0; z-index:-1;
    background:rgba(8,9,7,.55);
  }
  .zh__menu{display:block}
  .zh__item{position:static; border-bottom:1px solid rgba(242,238,230,.1)}
  .zh__row{justify-content:space-between; min-height:58px}
  .zh__top{
    font-family:"Fraunces",Georgia,"Times New Roman",serif; font-size:1.3rem; font-weight:400;
    letter-spacing:-.01em; text-transform:none; color:var(--zh-oyster);
  }
  .zh__top[aria-current]::after{right:0; bottom:8px}
  .zh .zh__toggle{width:44px; height:44px; margin-right:-.7rem; color:rgba(242,238,230,.8)}
  .zh__toggle svg{width:12px; height:8px}
  .zh__drop{
    position:static; width:auto; margin:0; padding:0 0 1.2rem;
    background:none; border:0; box-shadow:none; animation:none;
  }
  .zh__item.is-open > .zh__drop{animation:none}
  .zh__drop::before{display:none}
  .zh__secs{display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); column-gap:1.4rem}
  .zh__secs li + li{border-top:0}
  .zh__secs li{border-top:1px solid rgba(242,238,230,.07)}
  .zh__secs a{min-height:46px; font-size:.95rem}
  .zh__deep a{min-height:44px}
  html.zh-lock,html.zh-lock body{overflow:hidden}

  /* Fixed header over each hero: keep the hero clear of both rows */
  .home-hero,.h-hero,.plate-hero{padding-top:calc(var(--zh-h) + 2.1rem)}
}
@media (max-width:559px){
  .zh .zh__tabs{justify-content:space-between; gap:.6rem}
}
@media (max-width:420px){
  .zh__secs{grid-template-columns:minmax(0,1fr) minmax(0,1fr); column-gap:1rem}
  .zh__secs a{font-size:.9rem; gap:.6rem}
}
@media (max-width:374px){
  .zh__brand{font-size:.8rem; letter-spacing:.3em}
  .zh__cta{padding:.62rem .75rem .58rem; letter-spacing:.13em}
  .zh .zh__burger{margin-left:.78rem}
  .zh__tab{font-size:.58rem; letter-spacing:.09em}
  .zh__secs{grid-template-columns:minmax(0,1fr)}
}

@media (prefers-reduced-motion:reduce){
  .zh,.zh *,.zh *::before{transition:none!important; animation:none!important}
}
@media (forced-colors:active){
  .zh{border-bottom:1px solid CanvasText}
  .zh__drop,.zh__nav{border:1px solid CanvasText}
  .zh__top[aria-current]::after,.zh__tab[aria-current]::after{background:CanvasText}
}
@media print{.zh{display:none!important}}
