/* ELION / 2026 sitemap. Paper, bronze and deliberate typographic hierarchy. */
.site-header:has([data-mega-nav]) {
  background: #faf8f2;
  backdrop-filter: none;
  border-bottom: 1px solid #d8d0c1;
}
.site-header:has([data-mega-nav]) .nav-shell {
  width: min(1500px, calc(100% - 64px));
  min-height: 92px;
  gap: 28px;
}
.site-header:has([data-mega-nav]) .brand-copy b { font-size: 23px; letter-spacing: .13em; }
.site-header:has([data-mega-nav]) .brand-copy small { font-size: 8px; letter-spacing: .26em; }
.site-header:has([data-mega-nav]) .brand::before { width: 44px; height: 44px; flex-basis: 44px; }
.site-header:has([data-mega-nav]) .nav-cta {
  border-radius: 2px;
  min-height: 42px;
  padding: 0 17px;
  background: #292722;
  border-color: #292722;
  font-size: 12px;
}
.site-header:has([data-mega-nav]) .nav-cta:hover { color: #292722; background: transparent; }
.site-header:has([data-mega-nav]) :is(a,button):focus-visible {
  outline: 2px solid #8a6a39;
  outline-offset: 5px;
}
.site-header .elion-mega-nav {
  gap: clamp(10px, 1.5vw, 30px);
  justify-content: center;
  align-self: stretch;
}
.mega-group { min-width: 0; }
.mega-trigger {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 7px;
  height: 100%;
  min-height: 92px;
  padding: 0 3px;
  border: 0;
  border-radius: 0;
  background: transparent;
  color: #302d26;
  font: 500 13px/1.5 var(--sans, sans-serif);
  letter-spacing: -.025em;
  white-space: nowrap;
  cursor: pointer;
}
.mega-trigger::after {
  content: "";
  position: absolute;
  bottom: 0;
  right: 0;
  left: 0;
  height: 2px;
  background: #967648;
  transform: scaleX(0);
  transform-origin: left;
  transition: transform 180ms ease;
}
.mega-trigger:hover::after,
.mega-trigger[aria-expanded="true"]::after { transform: scaleX(1); }
.mega-chevron {
  flex: 0 0 5px;
  width: 5px;
  height: 5px;
  border-right: 1px solid currentColor;
  border-bottom: 1px solid currentColor;
  transform: translateY(-2px) rotate(45deg);
  opacity: .55;
  transition: transform 180ms ease;
}
.mega-trigger[aria-expanded="true"] .mega-chevron { transform: translateY(1px) rotate(225deg); }
.mega-panel {
  display: none;
  position: absolute;
  z-index: 80;
  top: 100%;
  left: 0;
  right: 0;
  max-height: calc(100vh - 92px);
  max-height: calc(100dvh - var(--mega-header-bottom, 92px));
  overflow-x: hidden;
  overflow-y: auto;
  overscroll-behavior: contain;
  color: #302d26;
  background: #faf8f2;
  border-top: 1px solid #e5ded3;
  border-bottom: 1px solid #a3875b;
  box-shadow: 0 18px 30px rgba(25, 20, 12, .08);
}
.mega-group.is-open > .mega-panel { display: block; animation: mega-reveal 180ms ease both; }
html:not(.mega-nav-ready) .mega-group:is(:hover,:focus-within) > .mega-panel { display: block; }
.mega-panel-inner {
  display: grid;
  grid-template-columns: minmax(180px, .9fr) minmax(420px, 2.2fr) minmax(140px, .7fr);
  gap: clamp(28px, 4vw, 64px);
  width: min(1300px, calc(100% - 80px));
  margin: 0 auto;
  padding: 43px 0 47px;
}
.mega-intro { border-right: 1px solid #ddd4c5; padding-right: 30px; }
.mega-eyebrow {
  margin: 0 0 18px;
  color: #8c714a;
  font: 500 10px/1.6 var(--sans, sans-serif);
  letter-spacing: .14em;
}
.mega-title { margin: 0; color: #28251f; font: 500 28px/1.45 var(--sans, sans-serif); letter-spacing: -.06em; }
.mega-description { margin: 17px 0 24px; max-width: 230px; color: #776e60; font: 400 13px/1.85 var(--sans, sans-serif); }
.mega-overview { display: inline-block; padding: 5px 0 8px; border-bottom: 1px solid #a48960; color: #44392b; font-size: 12px; }
.mega-links {
  display: grid;
  grid-template-columns: repeat(2,minmax(0,1fr));
  column-gap: 32px;
  align-content: start;
  margin: 0;
  padding: 0;
  list-style: none;
}
.mega-links > li { margin: 0; padding: 0; border-bottom: 1px solid #e3dcd0; }
.mega-links > li > :is(a,button,.mega-pending) {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 15px;
  min-height: 56px;
  width: 100%;
  padding: 12px 2px;
  color: #383329;
  background: transparent;
  border: 0;
  border-radius: 0;
  font: 500 14px/1.65 var(--sans, sans-serif);
  text-align: left;
  text-decoration: none;
  word-break: keep-all;
}
.mega-links > li > a:hover { color: #886635; }
.mega-links > li > a > span:last-child[aria-hidden] { color: #a38a66; font-size: 15px; transition: transform 180ms ease; }
.mega-links > li > a:hover > span:last-child[aria-hidden] { transform: translate(2px,-2px); }
.mega-links .mega-pending { color: #8b8275; }
.mega-links small { display: inline-block; margin-left: 8px; color: #8b8275; font: 400 10px/1.5 var(--sans, sans-serif); white-space: nowrap; }
.mega-aside {
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: flex-start;
  padding-left: 6px;
  color: #8a7657;
  font-size: 12px;
  line-height: 1.8;
}
.mega-aside img { width: 100%; max-width: 180px; max-height: 190px; object-fit: contain; margin: 0 auto 16px; }
.mega-aside :is(p,h3) { margin: 8px 0; }
.mega-aside h3 { color: #3a3329; font-weight: 500; font-size: 16px; }
.mega-aside a { text-decoration: underline; text-underline-offset: 5px; }
.mega-aside .mega-brand { font-family: var(--serif,serif); font-size: 34px; letter-spacing: .14em; }
.mega-monogram { display:grid;place-items:center;width:52px;height:52px;border:1px solid #a18a66;border-radius:50%;font:36px/1 var(--serif,serif);margin-bottom:6px; }
.mega-aside > p { font:22px/1.2 var(--serif,serif);letter-spacing:.1em; }
.mega-aside > p small { font:8px/2 var(--sans,sans-serif);letter-spacing:.18em; }
.mega-aside > a { margin-top:9px; }
.mega-mobile-actions { display: none; }
@keyframes mega-reveal { from { opacity: 0; transform: translateY(-5px); } to { opacity: 1; transform: translateY(0); } }

@media (min-width: 1201px) {
  .site-header:has([data-mega-nav]) .nav-shell { grid-template-columns: auto minmax(0,1fr) auto; }
  .site-header .elion-mega-nav {
    position: static;
    display: flex;
    flex-direction: row;
    min-height: auto;
    padding: 0;
    overflow: visible;
    background: transparent;
  }
  html[data-site-lang] .site-header .elion-mega-nav { gap: clamp(10px, 1.5vw, 30px); }
  .site-header:has([data-mega-nav]) .nav-tools { position: static; grid-column: auto; grid-row: auto; gap: 13px; }
  .site-header:has([data-mega-nav]) .nav-tools .nav-cta { display: inline-flex; }
  .site-header:has([data-mega-nav]) :is(.nav-toggle,.mobile-lang-toggle) { display: none; }
  .site-header:has([data-mega-nav]) .lang-links,
  .site-header:has([data-mega-nav]) .lang-links.is-mobile-open {
    position: static;
    display: flex;
    width: auto;
    margin: 0;
    padding: 0;
    gap: 5px;
    border: 0;
    border-radius: 0;
    background: transparent;
    box-shadow: none;
    color: #82745e;
    font-size: 10px;
  }
  .site-header:has([data-mega-nav]) .lang-links a { display: inline-block; min-height: auto; padding: 5px 3px; border: 0; background: transparent; font-size: 10px; }
  html[data-site-lang="en"] .mega-trigger { font-size: 12px; letter-spacing: -.03em; }
  html[data-site-lang="ja"] .mega-trigger { font-size: 12px; }
}
@media (min-width: 1201px) and (max-width: 1350px) {
  .site-header:has([data-mega-nav]) .nav-shell { width: calc(100% - 40px); gap: 18px; }
  .site-header:has([data-mega-nav]) .brand { gap: 9px; }
  .site-header:has([data-mega-nav]) .brand-copy b { font-size: 21px; }
  .site-header:has([data-mega-nav]) .brand-copy small { font-size: 7px; }
  .site-header:has([data-mega-nav]) .nav-tools { gap: 8px; }
  .site-header:has([data-mega-nav]) .nav-cta { padding-inline: 12px; font-size: 11px; }
  .mega-trigger { font-size: 12px; }
  .mega-panel-inner { grid-template-columns: 210px minmax(400px,1fr) 150px; gap: 32px; }
}
@media (max-width: 1200px) {
  .site-header:has([data-mega-nav]) .nav-shell { min-height: 76px; width: calc(100% - 40px); grid-template-columns: 1fr auto; gap: 16px; }
  .site-header:has([data-mega-nav]) .brand-copy b { font-size: 21px; }
  .site-header:has([data-mega-nav]) .brand-copy small { font-size: 7px; }
  .site-header:has([data-mega-nav]) .brand::before { width: 40px; height: 40px; flex-basis: 40px; }
  .site-header:has([data-mega-nav]) .nav-tools { grid-column: 2; grid-row: 1; position: relative; gap: 8px; }
  .site-header:has([data-mega-nav]) .nav-tools .nav-cta { display: none; }
  .site-header:has([data-mega-nav]) .nav-toggle { display: block; border-color: #bcb09e; border-radius: 0; }
  .site-header:has([data-mega-nav]) .mobile-lang-toggle { display: inline-flex; border-radius: 0; background: transparent; }
  .site-header .elion-mega-nav {
    position: fixed;
    z-index: 80;
    inset: var(--mobile-nav-top,76px) 0 0;
    display: none;
    flex-direction: column;
    justify-content: flex-start;
    align-items: stretch;
    padding: 19px max(24px,calc((100vw - 760px)/2)) max(35px,env(safe-area-inset-bottom));
    overflow: auto;
    overscroll-behavior: contain;
    background: #faf8f2;
  }
  .nav-open .site-header .elion-mega-nav { display: flex; }
  .nav-open :is(.quick-contact,.clinic-calendar-trigger,.october-calendar-trigger) { visibility: hidden; }
  html[data-site-lang] .site-header .elion-mega-nav { gap: 0; }
  .mega-group { flex: 0 0 auto; border-bottom: 1px solid #dcd3c4; }
  .mega-trigger { width: 100%; min-height: 66px; height: auto; justify-content: space-between; padding: 14px 0; text-align: left; font-size: 17px; font-weight: 500; }
  .mega-trigger::after { display: none; }
  .mega-chevron { margin-right: 3px; width: 7px; height: 7px; flex-basis: 7px; }
  .mega-panel { position: static; max-height: none; overflow: visible; border: 0; background: transparent; box-shadow: none; }
  .mega-panel-inner { display: block; width: 100%; padding: 0 0 20px; }
  .mega-intro { padding: 0; border: 0; }
  .mega-intro :is(.mega-eyebrow,.mega-title,.mega-description) { display: none; }
  .mega-overview { margin: 0 0 10px; padding: 5px 0; font-size: 12px; }
  .mega-links { grid-template-columns: repeat(2,minmax(0,1fr)); column-gap: 22px; }
  .mega-links > li { border: 0; }
  .mega-links > li > :is(a,button,.mega-pending) { min-height: 46px; padding: 10px 0; font-size: 14px; font-weight: 400; gap: 8px; }
  .mega-links > li > a > span:last-child[aria-hidden] { font-size: 12px; }
  .mega-aside { display: none; }
  .mega-mobile-actions { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; margin-top: 30px; padding-bottom: 10px; }
  .mega-mobile-actions a { display: flex; align-items: center; justify-content: center; min-height: 48px; padding: 10px; border: 1px solid #c6b79f; font-size: 13px; text-align: center; }
  .mega-mobile-actions a:first-child { grid-column: 1/-1; color: #faf8f2; background: #302d26; border-color: #302d26; }
  html:not(.mega-nav-ready) .site-header:has([data-mega-nav]) .nav-shell { grid-template-columns: 1fr auto; }
  html:not(.mega-nav-ready) .site-header .elion-mega-nav { position: static; display: flex; grid-column: 1/-1; padding: 15px 0; }
  html:not(.mega-nav-ready) .elion-mega-nav .mega-panel { display: block; }
}
@media (max-width: 480px) {
  .site-header:has([data-mega-nav]) .nav-shell { width: calc(100% - 32px); gap: 8px; }
  .site-header:has([data-mega-nav]) .brand { gap: 8px; }
  .site-header:has([data-mega-nav]) .brand-copy b { font-size: 19px; }
  .site-header:has([data-mega-nav]) .brand-copy small { font-size: 6px; letter-spacing: .22em; }
  .site-header:has([data-mega-nav]) .nav-tools { gap: 6px; }
  .site-header:has([data-mega-nav]) .mobile-lang-toggle { min-width: 47px; padding-inline: 8px; }
  .site-header .elion-mega-nav { padding-inline: 24px; }
  .mega-links { grid-template-columns: 1fr; }
  .mega-links > li > :is(a,button,.mega-pending) { min-height: 44px; }
  .mega-trigger { min-height: 63px; font-size: 16px; }
}
@media (prefers-reduced-motion: reduce) {
  .mega-group.is-open > .mega-panel { animation: none; }
  .mega-trigger::after,.mega-chevron,.mega-links > li > a > span:last-child[aria-hidden] { transition: none; }
}
