:root {
  --eg-wine: #651b25;
  --eg-wine-dark: #2d0b12;
  --eg-gold: #d9a441;
  --eg-cream: #fbf6ec;
  --eg-paper: #fffdf8;
  --eg-ink: #251d1a;
  --eg-muted: #746861;
  --eg-line: rgba(82, 51, 39, .17);
  --eg-serif: "Playfair Display", Georgia, serif;
  --eg-sans: "DM Sans", Arial, sans-serif;
  --eg-gutter: clamp(20px, 6vw, 96px);
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
.eg-page { margin: 0; overflow-x: hidden; background: var(--eg-cream); color: var(--eg-ink); font-family: var(--eg-sans); }
.eg-page.menu-open { overflow: hidden; }
.eg-page a { color: inherit; }
.eg-page :focus-visible { outline: 3px solid var(--eg-gold); outline-offset: 4px; }
.sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0; }
.eg-skip { position: fixed; top: 8px; left: 8px; z-index: 100; padding: 10px 14px; background: #fff; color: #111; transform: translateY(-160%); }
.eg-skip:focus { transform: none; }

.eg-header { position: relative; z-index: 40; background: var(--eg-wine-dark); color: #fff; }
.eg-nav { min-height: 88px; padding: 0 var(--eg-gutter); display: flex; align-items: center; justify-content: space-between; gap: 24px; border-bottom: 1px solid rgba(255,255,255,.18); }
.eg-brand { display: flex; align-items: center; gap: 13px; min-width: 0; text-decoration: none; color: #fff; }
.eg-brand__mark { width: 45px; height: 45px; flex: 0 0 auto; display: grid; place-items: center; border: 1px solid rgba(255,255,255,.68); border-radius: 50%; color: #ffe29c; font: 700 17px var(--eg-serif); }
.eg-brand__copy { min-width: 0; }
.eg-brand__copy strong { display: block; font-size: 13px; letter-spacing: .15em; white-space: nowrap; }
.eg-brand__copy small { display: block; width: fit-content; max-width: 210px; margin-top: 3px; overflow: hidden; color: rgba(255,255,255,.7); font-size: 10px; letter-spacing: .12em; text-overflow: ellipsis; text-transform: uppercase; white-space: nowrap; }
.eg-brand__copy small.is-regional { padding: 2px 5px; border-radius: 2px; background: #ffe56b; color: #2f1d08; font-weight: 700; }

/* ---- Primary navigation (shared tree via nav_menu.php) --------------- */
.eg-nav__links { display: flex; align-items: center; min-width: 0; }
.eg-nav__menu {
  display: flex;
  align-items: center;
  gap: clamp(6px, 1.3vw, 20px);
  margin: 0;
  padding: 0;
  list-style: none;
}
.eg-nav__item--top { position: relative; }

.eg-nav__link {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  padding: 6px 2px;
  border: 0;
  background: none;
  color: #fff;
  font: 600 13px var(--eg-sans);
  white-space: nowrap;
  text-decoration: none;
  cursor: pointer;
}
.eg-nav__item--top > .eg-nav__link { position: relative; }
.eg-nav__item--top > .eg-nav__link::after {
  content: "";
  position: absolute;
  left: 0;
  right: 100%;
  bottom: -3px;
  height: 1px;
  background: #fff;
  transition: right .25s ease;
}
.eg-nav__item--top:hover > .eg-nav__link::after,
.eg-nav__item--top:focus-within > .eg-nav__link::after,
.eg-nav__item--top.is-active > .eg-nav__link::after { right: 0; }

.eg-nav__item--top.has-children > .eg-nav__toggle {
  padding-right: 12px;
}
.eg-nav__item--top.has-children > .eg-nav__toggle::before {
  content: "";
  position: absolute;
  right: 0;
  top: 50%;
  width: 6px;
  height: 6px;
  border-right: 1.6px solid currentColor;
  border-bottom: 1.6px solid currentColor;
  transform: translateY(-70%) rotate(45deg);
}

/* Dropdown panels — an extension of the wine header, not a white menu box. */
.eg-nav__panel {
  display: none;
  position: absolute;
  z-index: 50;
  top: calc(100% + 12px);
  left: 0;
  min-width: 236px;
  max-width: 300px;
  margin: 0;
  padding: 8px;
  list-style: none;
  background: var(--eg-wine-dark);
  color: #fff;
  border: 1px solid rgba(255,255,255,.14);
  border-top: 2px solid var(--eg-gold);
  box-shadow: 0 28px 54px rgba(8, 2, 4, .5);
}
.eg-nav__panel::before {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  top: -14px;
  height: 16px;
}
.eg-nav__item--top:hover > .eg-nav__panel,
.eg-nav__item--top:focus-within > .eg-nav__panel { display: block; }

.eg-nav__item--sub { position: relative; }
.eg-nav__sublink {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 10px 12px;
  color: rgba(255,255,255,.82);
  font: 500 13.5px var(--eg-sans);
  text-decoration: none;
}
a.eg-nav__sublink:hover,
a.eg-nav__sublink:focus-visible { background: rgba(255,255,255,.08); color: var(--eg-gold); }
.eg-nav__sublink--heading {
  color: var(--eg-gold);
  font: 700 10px var(--eg-sans);
  letter-spacing: .16em;
  text-transform: uppercase;
  padding: 9px 12px 4px;
  cursor: default;
}
.eg-nav__item--sub.has-children > .eg-nav__sublink::after {
  content: "\203A";
  color: rgba(255,255,255,.45);
  font-size: 15px;
}

.eg-nav__panel--nested {
  top: -10px;
  left: calc(100% - 1px);
}
.eg-nav__item--sub:hover > .eg-nav__panel--nested,
.eg-nav__item--sub:focus-within > .eg-nav__panel--nested { display: block; }

.eg-nav__join {
  padding: 10px 16px;
  border: 1px solid rgba(255,255,255,.62);
  border-radius: 999px;
  color: #fff;
  font: 600 13px var(--eg-sans);
  white-space: nowrap;
  text-decoration: none;
  transition: background .25s, color .25s;
}
.eg-nav__join:hover { background: #fff; color: var(--eg-wine) !important; }
.eg-nav__item--cta { margin-left: 4px; }

.eg-menu-button { display: none; width: 44px; height: 44px; border: 1px solid rgba(255,255,255,.5); border-radius: 50%; background: transparent; color: #fff; cursor: pointer; flex: 0 0 auto; }
.eg-menu-button span, .eg-menu-button::before, .eg-menu-button::after { content: ""; display: block; width: 18px; height: 1px; margin: 5px auto; background: currentColor; transition: .25s; }

.eg-footer { padding: 58px var(--eg-gutter) 28px; background: #1d0b0e; color: rgba(255,255,255,.66); }
.eg-footer__main { display: grid; grid-template-columns: 1.7fr repeat(3, minmax(0, 1fr)); gap: clamp(28px, 4vw, 60px); padding-bottom: 44px; }
.eg-footer__main p { max-width: 330px; margin: 16px 0 0; font-size: 13px; line-height: 1.7; }
.eg-footer__main > div:not(:first-child) { display: grid; align-content: start; gap: 11px; }
.eg-footer__main strong { margin-bottom: 5px; color: #fff; font-size: 11px; letter-spacing: .15em; text-transform: uppercase; }
.eg-footer__main a { width: fit-content; color: inherit; text-decoration: none; font-size: 13px; }
.eg-footer__main a:hover { color: #fff; }
.eg-footer__mail { display: inline-block; margin-top: 14px; border-bottom: 1px solid rgba(255,255,255,.28); color: rgba(255,255,255,.72); }
.eg-footer__bottom { display: flex; justify-content: space-between; gap: 20px; padding-top: 22px; border-top: 1px solid rgba(255,255,255,.13); font-size: 11px; }

/* ---- Collapsed navigation (mega-menu needs room; collapse early) ----- */
@media (max-width: 1180px) {
  .eg-menu-button { display: block; z-index: 2; }
  .eg-menu-button.is-active span { opacity: 0; }
  .eg-menu-button.is-active::before { transform: translateY(6px) rotate(45deg); }
  .eg-menu-button.is-active::after { transform: translateY(-6px) rotate(-45deg); }

  .eg-nav__links {
    position: fixed;
    inset: 0;
    z-index: 1;
    display: block;
    padding: 96px 24px 48px;
    overflow-y: auto;
    background: var(--eg-wine-dark);
    transform: translateX(100%);
    transition: transform .35s ease;
  }
  .eg-nav__links.is-open { transform: none; }

  .eg-nav__menu { flex-direction: column; align-items: stretch; gap: 0; }
  .eg-nav__item--top { border-bottom: 1px solid rgba(255,255,255,.13); }
  .eg-nav__item--cta { border-bottom: 0; }

  .eg-nav__link {
    width: 100%;
    justify-content: space-between;
    padding: 15px 4px;
    font: 600 17px var(--eg-serif);
  }
  .eg-nav__item--top > .eg-nav__link::after { display: none; }
  .eg-nav__item--top.has-children > .eg-nav__toggle::before {
    right: 4px;
    width: 8px;
    height: 8px;
    transition: transform .2s ease;
  }
  .eg-nav__item--top.is-open.has-children > .eg-nav__toggle::before {
    transform: translateY(-30%) rotate(-135deg);
  }

  .eg-nav__panel,
  .eg-nav__panel--nested {
    display: none;
    position: static;
    min-width: 0;
    max-width: none;
    margin: 0;
    padding: 0 0 10px 14px;
    background: transparent;
    border: 0;
    box-shadow: none;
    color: #fff;
  }
  .eg-nav__panel::before { content: none; }
  .eg-nav__item--top.is-open > .eg-nav__panel { display: block; }
  .eg-nav__panel--nested { display: block; padding-left: 12px; padding-bottom: 2px; }

  .eg-nav__sublink { color: rgba(255,255,255,.82); padding: 10px 4px; font-size: 14px; }
  a.eg-nav__sublink:hover,
  a.eg-nav__sublink:focus-visible { background: transparent; color: #fff; }
  .eg-nav__sublink--heading { color: rgba(255,255,255,.5); padding: 12px 4px 4px; }
  .eg-nav__item--sub.has-children > .eg-nav__sublink::after { content: none; }

  .eg-nav__join {
    display: inline-block;
    margin-top: 16px;
    padding: 12px 20px;
    font: 700 14px var(--eg-sans);
  }
}

@media (max-width: 1000px) {
  .eg-footer__main { grid-template-columns: 1fr 1fr; gap: 36px 32px; }
  .eg-footer__main > div:first-child { grid-column: 1 / -1; }
}

@media (max-width: 760px) {
  .eg-nav { min-height: 74px; }
  .eg-header .eg-brand__copy small { display: none; }
  .eg-footer__bottom { flex-direction: column; }
}

@media (max-width: 520px) {
  .eg-footer__main { grid-template-columns: 1fr; gap: 26px; }
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; }
}
