/* =========================================================
   LAU-TAM TOP NAV + MENU OVERLAY
   Replaces the old vertical sidebar with a minimal fixed topbar.
   ========================================================= */

:root{
  --sb-w:0px;
  --topbar-h:84px;
  --navy:#06296C;
  --navy-dark:#00050E;
  --white:#fff;
  --gold:#C8A45D;
  --text:#00050E;
  --line:#D9DEE8;
  --fd:"Playfair Display",Georgia,serif;
  --fb:"Georama",Arial,sans-serif;
  --ease:cubic-bezier(.77,0,.18,1);
  --menu-overlay-bg:#11151C;
  --lock-scrollbar-width:0px;
}

#layout-sidebar{
  position:fixed;
  top:0;
  left:0;
  right:0;
  height:var(--topbar-h);
  z-index:500;
  background:transparent;
  pointer-events:none;
}

#layout-sidebar #sidebar{
  pointer-events:auto;
}

body{
  padding-left:0!important;
}

body.menu-open{
  overflow:hidden;
  background:#05070D!important;
}

body.menu-open::after{
  content:"";
  position:fixed;
  top:0;
  right:0;
  bottom:0;
  width:var(--lock-scrollbar-width);
  background:#05070D;
  z-index:9999;
  pointer-events:none;
}

/* TOPBAR */
#sidebar{
  position:fixed;
  top:0;
  left:0;
  right:0;
  z-index:520;
  height:var(--topbar-h);
  display:flex;
  align-items:center;
  justify-content:space-between;
  padding:0 var(--page-pad,clamp(3rem,5vw,6rem));
  background:transparent;
  color:var(--white);
  border-bottom:1px solid transparent;
  transition:
    background .28s ease,
    border-color .28s ease,
    color .28s ease,
    box-shadow .28s ease,
    backdrop-filter .28s ease;
}

#sidebar.nav-solid,
body.menu-open #sidebar{
  background:rgba(255,255,255,.88);
  color:var(--text);
  border-bottom-color:rgba(0,5,14,.08);
  box-shadow:0 14px 34px rgba(0,5,14,.055);
  backdrop-filter:blur(18px);
  -webkit-backdrop-filter:blur(18px);
}

body.menu-open #sidebar{
  background:rgba(5,7,13,.92);
  color:var(--white);
  border-bottom-color:rgba(255,255,255,.10);
  box-shadow:none;
}

.sb-logo{
  position:relative;
  display:inline-flex!important;
  align-items:center!important;
  justify-content:flex-start!important;
  width:auto!important;
  height:auto!important;
  line-height:0;
  padding:0;
  margin:0;
  z-index:2;
}

.sb-logo-img{
  display:none!important;
  width:clamp(92px,7.4vw,128px)!important;
  max-width:none!important;
  height:auto!important;
  max-height:42px!important;
  object-fit:contain!important;
  filter:drop-shadow(0 10px 24px rgba(0,5,14,.22));
  transition:filter .28s ease, opacity .28s ease;
}

html[lang="es"] .sb-logo-img-default,
html:not([lang]) .sb-logo-img-default,
html[lang="en"] .sb-logo-img-en,
html[lang="zh"] .sb-logo-img-zh{
  display:block!important;
}

#sidebar.nav-solid .sb-logo-img{
  filter:brightness(0) saturate(100%);
}

body.menu-open #sidebar .sb-logo-img{
  filter:drop-shadow(0 10px 24px rgba(0,5,14,.22));
}

.sb-logo-fallback{
  display:none;
  font-family:var(--fd);
  font-size:1.7rem;
  font-weight:700;
  line-height:1;
  letter-spacing:-.08em;
  color:currentColor;
}

.sb-nav-actions{
  display:flex;
  align-items:center;
  justify-content:flex-end;
  gap:clamp(1.2rem,2vw,2.2rem);
}

/* MENU BUTTON */
.sb-menu-block{
  position:relative;
  display:inline-flex;
  align-items:center;
  gap:.8rem;
  min-height:44px;
  color:currentColor;
  opacity:.94;
  transition:opacity .18s ease,color .18s ease;
}

.sb-menu-block:hover,
.sb-menu-block:focus-visible{
  opacity:1;
  color:var(--gold);
  outline:none;
}

.sb-menu-word{
  display:none!important;
  font-size:.64rem;
  letter-spacing:.18em;
  text-transform:uppercase;
  font-weight:700;
  line-height:1;
}

html[lang="es"] .sb-menu-word[data-i18n="es"],
html[lang="en"] .sb-menu-word[data-i18n="en"],
html[lang="zh"] .sb-menu-word[data-i18n="zh"]{
  display:inline!important;
}

.sb-hamburger{
  position:relative;
  display:block;
  width:30px;
  height:12px;
}

.sb-hamburger span{
  position:absolute;
  left:0;
  width:30px;
  height:1.5px;
  background:currentColor;
  transform-origin:center;
  transition:transform .42s var(--ease), top .42s var(--ease), opacity .2s ease;
}

.sb-hamburger span:nth-child(1){top:1px;}
.sb-hamburger span:nth-child(2){top:10px;}

.sb-menu-block:hover .sb-hamburger span:nth-child(1),
.sb-menu-block:focus-visible .sb-hamburger span:nth-child(1){
  transform:translateX(-4px);
}

.sb-menu-block:hover .sb-hamburger span:nth-child(2),
.sb-menu-block:focus-visible .sb-hamburger span:nth-child(2){
  transform:translateX(4px);
}

.sb-menu-block.open .sb-hamburger span:nth-child(1){
  top:5.5px;
  transform:rotate(45deg);
}

.sb-menu-block.open .sb-hamburger span:nth-child(2){
  top:5.5px;
  transform:rotate(-45deg);
}

/* LANGUAGE */
.sb-lang{
  position:relative;
  display:inline-flex;
  align-items:center;
  justify-content:center;
}

.lang-toggle{
  display:inline-flex!important;
  align-items:center!important;
  justify-content:center!important;
  min-height:44px!important;
  padding:0!important;
  color:currentColor!important;
  opacity:.78;
  transition:opacity .18s ease,color .18s ease;
}

.lang-toggle:hover,
.lang-toggle:focus-visible,
.sb-lang.open .lang-toggle{
  opacity:1;
  color:var(--gold)!important;
  outline:none;
}

.lang-globe{
  display:none!important;
}

.lang-current{
  display:inline-flex!important;
  align-items:center!important;
  justify-content:center!important;
  min-height:1em!important;
  font-size:.64rem!important;
  line-height:1!important;
  letter-spacing:.12em!important;
  text-transform:uppercase!important;
  font-weight:600!important;
  color:currentColor!important;
  white-space:nowrap!important;
}

.lang-current [data-lang-label]{display:none!important;}
html[lang="en"] .lang-current [data-lang-label="en"],
html[lang="es"] .lang-current [data-lang-label="es"],
html[lang="zh"] .lang-current [data-lang-label="zh"]{display:inline!important;}

.lang-options{
  position:absolute;
  top:calc(100% + .85rem)!important;
  right:0!important;
  left:auto!important;
  bottom:auto!important;
  z-index:540;
  display:flex;
  flex-direction:column;
  align-items:stretch!important;
  gap:.12rem!important;
  min-width:152px!important;
  width:max-content!important;
  padding:.58rem!important;
  background:#05070D!important;
  border:1px solid rgba(255,255,255,.12)!important;
  box-shadow:0 18px 44px rgba(0,0,0,.32)!important;
  opacity:0;
  visibility:hidden;
  pointer-events:none;
  transform:translateY(6px)!important;
  transition:opacity .2s ease, visibility .2s ease, transform .28s var(--ease);
}

.sb-lang.open .lang-options{
  opacity:1;
  visibility:visible;
  pointer-events:auto;
  transform:translateY(0)!important;
}

.lang-options button{
  width:100%!important;
  min-height:2.05rem;
  padding:.42rem .68rem!important;
  text-align:left!important;
  font-size:.74rem!important;
  line-height:1.2!important;
  letter-spacing:.02em!important;
  text-transform:none!important;
  font-weight:400!important;
  color:rgba(255,255,255,.52)!important;
  white-space:nowrap!important;
  transition:color .18s ease, background .18s ease;
}

.lang-options button.active{
  color:#fff!important;
  background:rgba(255,255,255,.035)!important;
}

.lang-options button:hover,
.lang-options button:focus-visible{
  color:#fff!important;
  background:rgba(255,255,255,.045)!important;
  outline:none!important;
}

/* MENU OVERLAY */
#menuOverlay{
  position:fixed!important;
  inset:0!important;
  z-index:500!important;
  display:flex!important;
  align-items:center!important;
  padding:calc(var(--topbar-h) + 2rem) var(--page-pad,clamp(3rem,5vw,6rem)) 4rem!important;
  background:var(--menu-overlay-bg)!important;
  color:var(--white)!important;
  overflow-x:hidden!important;
  overflow-y:hidden!important;
  opacity:0!important;
  visibility:hidden!important;
  pointer-events:none!important;
  isolation:isolate!important;
  transition:opacity .32s ease, visibility .32s ease!important;
}

#menuOverlay.open{
  opacity:1!important;
  visibility:visible!important;
  pointer-events:auto!important;
}

#menuOverlay.menu-ready{
  overflow-y:auto!important;
  scrollbar-width:thin!important;
  scrollbar-color:rgba(200,164,93,.28) #05070D!important;
}

#menuOverlay::-webkit-scrollbar{width:6px!important;height:0!important;}
#menuOverlay::-webkit-scrollbar-track{background:#05070D!important;}
#menuOverlay::-webkit-scrollbar-thumb{background:rgba(200,164,93,.28)!important;border-radius:999px!important;}

#menuOverlay::before{
  content:"";
  position:absolute;
  inset:0;
  z-index:0;
  background:
    radial-gradient(circle at 82% 18%,rgba(200,164,93,.10),transparent 28%),
    linear-gradient(135deg,#05070D 0%,#11151C 52%,#05070D 100%);
  opacity:1;
  pointer-events:none;
}

.overlay-nav{
  position:relative!important;
  z-index:2!important;
  display:flex!important;
  flex-direction:column!important;
  width:100%!important;
  max-width:1180px!important;
  max-height:none!important;
  margin:0 auto!important;
  opacity:0!important;
  transform:translateY(12px)!important;
  transition:opacity .34s ease .14s, transform .48s var(--ease) .14s!important;
}

#menuOverlay.open .overlay-nav{
  opacity:1!important;
  transform:translateY(0)!important;
}

.overlay-main-links{
  display:flex!important;
  flex-direction:column!important;
  align-items:flex-start!important;
  width:100%!important;
  gap:.22rem!important;
}

.overlay-nav a,
.overlay-main-links a{
  position:relative!important;
  width:max-content!important;
  max-width:100%!important;
  display:inline-flex!important;
  align-items:flex-start!important;
  justify-content:flex-start!important;
  padding:.08em 0!important;
  border:0!important;
  color:rgba(255,255,255,.92)!important;
  overflow:visible!important;
  line-height:1.15!important;
  opacity:1!important;
  transform:none!important;
  pointer-events:auto!important;
  transition:color .14s ease!important;
}

.overlay-nav a:hover,
.overlay-nav a:focus-visible,
.overlay-main-links a:hover,
.overlay-main-links a:focus-visible{
  color:var(--gold)!important;
  outline:none!important;
}

.overlay-nav a::before,
.overlay-nav a::after,
.overlay-main-links a::before,
.overlay-main-links a::after{display:none!important;content:none!important;}

.overlay-nav a > span:not([data-i18n]),
.overlay-main-links a > span:not([data-i18n]){display:none!important;}

.overlay-main-links a > span[data-i18n],
.overlay-nav a > span[data-i18n]{
  display:none!important;
  font-family:var(--fd)!important;
  font-size:clamp(2.5rem,5vw,5.45rem)!important;
  font-weight:700!important;
  line-height:1.08!important;
  letter-spacing:-.04em!important;
  text-transform:none!important;
  color:inherit!important;
  padding-bottom:.16em!important;
  margin-bottom:-.16em!important;
}

html[lang="es"] .overlay-main-links a > span[data-i18n="es"],
html[lang="en"] .overlay-main-links a > span[data-i18n="en"],
html[lang="zh"] .overlay-main-links a > span[data-i18n="zh"],
html[lang="es"] .overlay-nav a > span[data-i18n="es"],
html[lang="en"] .overlay-nav a > span[data-i18n="en"],
html[lang="zh"] .overlay-nav a > span[data-i18n="zh"]{
  display:inline-block!important;
}

.overlay-internal-access{
  position:relative;
  margin-top:2.8rem!important;
  padding-top:1.5rem!important;
  max-width:620px;
  opacity:.98;
}

.overlay-internal-access::before{
  content:"";
  position:absolute;
  top:0;
  left:0;
  width:min(340px,100%)!important;
  height:1px!important;
  background:rgba(255,255,255,.13)!important;
}

.overlay-internal-title{
  margin-bottom:.95rem!important;
  font-family:var(--fd);
  font-size:clamp(.95rem,1.25vw,1.18rem)!important;
  font-weight:700;
  line-height:1.1;
  color:rgba(255,255,255,.86);
}

.overlay-internal-links{
  display:flex;
  flex-wrap:wrap;
  gap:1rem 1.35rem!important;
}

.overlay-internal-links a{
  position:relative!important;
  display:inline-flex!important;
  width:max-content!important;
  max-width:100%!important;
  padding:0!important;
  border:0!important;
  font-family:var(--fb)!important;
  font-size:.58rem!important;
  line-height:1!important;
  letter-spacing:.17em!important;
  text-transform:uppercase!important;
  font-weight:700!important;
  color:rgba(255,255,255,.48)!important;
  transition:color .18s ease!important;
}

.overlay-internal-links a::after{
  content:""!important;
  position:absolute!important;
  left:0!important;
  bottom:-.28rem!important;
  width:100%!important;
  height:1px!important;
  display:block!important;
  background:currentColor!important;
  opacity:.85!important;
  transform:scaleX(0)!important;
  transform-origin:right!important;
  transition:transform .28s var(--ease)!important;
}

.overlay-internal-links a:hover,
.overlay-internal-links a:focus-visible{
  color:rgba(255,255,255,.74)!important;
  outline:none!important;
}

.overlay-internal-links a:hover::after,
.overlay-internal-links a:focus-visible::after{
  transform:scaleX(1)!important;
  transform-origin:left!important;
}

/* EXISTING SIDE PANELS THAT USED --sb-w */
.practices-overlay{
  inset:0!important;
}

@media (max-width:1100px){
  :root{--topbar-h:76px;}

  #sidebar{
    padding:0 clamp(1.5rem,4vw,3rem);
  }

  .sb-logo-img{
    width:clamp(86px,9vw,112px)!important;
    max-height:38px!important;
  }
}

@media (max-width:640px){
  :root{--topbar-h:72px;}

  body{
    padding-top:0!important;
  }

  #layout-sidebar{
    height:var(--topbar-h);
  }

  #sidebar{
    height:var(--topbar-h);
    padding:0 1.25rem;
  }

  .sb-logo-img{
    width:86px!important;
    max-height:34px!important;
  }

  .sb-nav-actions{
    gap:1rem;
  }

  .lang-current{
    font-size:.58rem!important;
    letter-spacing:.09em!important;
  }

  .sb-menu-word{
    display:none!important;
  }

  .sb-hamburger,
  .sb-hamburger span{
    width:28px;
  }

  .lang-options{
    top:calc(100% + .75rem)!important;
    right:0!important;
    min-width:144px!important;
  }

  #menuOverlay{
    padding:calc(var(--topbar-h) + 1.75rem) 1.25rem 3rem!important;
    align-items:flex-start!important;
  }

  .overlay-main-links a > span[data-i18n],
  .overlay-nav a > span[data-i18n]{
    font-size:clamp(2.35rem,13vw,4.1rem)!important;
    line-height:1.1!important;
  }

  .overlay-internal-links{
    flex-direction:column;
    gap:.95rem!important;
  }
}

/* =========================================================
   TOP NAV V15 - menu left, logo next, no top language
   ========================================================= */
#sidebar.lt-topbar{
  justify-content:flex-start!important;
}

.sb-left-actions{
  display:inline-flex!important;
  align-items:center!important;
  justify-content:flex-start!important;
  gap:clamp(1.25rem,2.2vw,2.4rem)!important;
  min-width:0!important;
}

.sb-nav-actions,
.sb-lang{
  display:none!important;
}

#sidebar.lt-topbar .sb-menu-block{
  order:1!important;
  display:inline-flex!important;
  flex-direction:row!important;
  align-items:center!important;
  justify-content:flex-start!important;
  gap:.78rem!important;
  min-height:44px!important;
  padding:0!important;
  color:currentColor!important;
}

#sidebar.lt-topbar .sb-logo{
  order:2!important;
}

/* Restore the earlier three-line hamburger. */
#sidebar.lt-topbar .sb-hamburger{
  position:relative!important;
  display:block!important;
  width:32px!important;
  height:18px!important;
  flex:0 0 32px!important;
}

#sidebar.lt-topbar .sb-hamburger span{
  position:absolute!important;
  left:3px!important;
  display:block!important;
  width:26px!important;
  height:1.5px!important;
  background:currentColor!important;
  transform-origin:center!important;
  opacity:1!important;
  transition:
    transform .55s var(--ease),
    opacity .25s ease,
    top .55s var(--ease),
    background .25s ease!important;
}

#sidebar.lt-topbar .sb-hamburger span:nth-child(1){top:2px!important;}
#sidebar.lt-topbar .sb-hamburger span:nth-child(2){top:8px!important;}
#sidebar.lt-topbar .sb-hamburger span:nth-child(3){top:14px!important;}

#sidebar.lt-topbar .sb-menu-block:not(.open):hover .sb-hamburger span:nth-child(1),
#sidebar.lt-topbar .sb-menu-block:not(.open):focus-visible .sb-hamburger span:nth-child(1){
  transform:translateX(-5px)!important;
}

#sidebar.lt-topbar .sb-menu-block:not(.open):hover .sb-hamburger span:nth-child(2),
#sidebar.lt-topbar .sb-menu-block:not(.open):focus-visible .sb-hamburger span:nth-child(2){
  transform:translateX(5px)!important;
}

#sidebar.lt-topbar .sb-menu-block:not(.open):hover .sb-hamburger span:nth-child(3),
#sidebar.lt-topbar .sb-menu-block:not(.open):focus-visible .sb-hamburger span:nth-child(3){
  transform:translateX(-5px)!important;
}

#sidebar.lt-topbar .sb-menu-block.open .sb-hamburger span:nth-child(1){
  top:8px!important;
  transform:rotate(45deg)!important;
}

#sidebar.lt-topbar .sb-menu-block.open .sb-hamburger span:nth-child(2){
  top:8px!important;
  opacity:0!important;
  transform:translateX(14px)!important;
}

#sidebar.lt-topbar .sb-menu-block.open .sb-hamburger span:nth-child(3){
  top:8px!important;
  transform:rotate(-45deg)!important;
}

#sidebar.lt-topbar .sb-menu-word{
  font-size:.64rem!important;
  letter-spacing:.18em!important;
  text-transform:uppercase!important;
  font-weight:700!important;
  line-height:1!important;
}

@media (max-width:640px){
  #sidebar.lt-topbar{
    padding:0 1.25rem!important;
  }

  .sb-left-actions{
    width:100%!important;
    gap:1.05rem!important;
  }

  #sidebar.lt-topbar .sb-logo-img{
    width:88px!important;
    max-height:34px!important;
  }

  #sidebar.lt-topbar .sb-menu-word{
    font-size:.6rem!important;
  }
}

/* =========================================================
   TOP NAV V16 - content-axis alignment
   Menu icon starts on the same horizontal axis as page content;
   logo follows immediately after it.
   ========================================================= */
#sidebar.lt-topbar{
  justify-content:center!important;
  padding-left:var(--page-pad,clamp(3rem,5vw,6rem))!important;
  padding-right:var(--page-pad,clamp(3rem,5vw,6rem))!important;
}

#sidebar.lt-topbar .sb-left-actions{
  width:100%!important;
  max-width:var(--content-max,1440px)!important;
  margin-left:auto!important;
  margin-right:auto!important;
  display:flex!important;
  align-items:center!important;
  justify-content:flex-start!important;
  gap:clamp(1.45rem,2.35vw,2.75rem)!important;
}

#sidebar.lt-topbar .sb-menu-block{
  flex:0 0 auto!important;
}

#sidebar.lt-topbar .sb-logo{
  flex:0 0 auto!important;
}

@media (max-width:1100px){
  #sidebar.lt-topbar{
    padding-left:var(--page-pad,clamp(2rem,4vw,3rem))!important;
    padding-right:var(--page-pad,clamp(2rem,4vw,3rem))!important;
  }
}

@media (max-width:640px){
  #sidebar.lt-topbar{
    padding-left:1.25rem!important;
    padding-right:1.25rem!important;
  }

  #sidebar.lt-topbar .sb-left-actions{
    max-width:none!important;
    gap:1.1rem!important;
  }
}


/* =========================================================
   TOP NAV V17 - footer wordmark as top logo
   Uses assets/logos/logo-menu.svg.
   ========================================================= */
#sidebar.lt-topbar .sb-logo{
  display:inline-flex!important;
  align-items:center!important;
  justify-content:flex-start!important;
  width:auto!important;
  height:auto!important;
  line-height:0!important;
  padding:0!important;
  margin:0!important;
}

#sidebar.lt-topbar .sb-logo-img{
  display:block!important;
  width:clamp(112px,9vw,148px)!important;
  max-width:148px!important;
  max-height:42px!important;
  height:auto!important;
  object-fit:contain!important;
  opacity:1!important;
  transition:filter .28s ease, opacity .28s ease!important;
}

#sidebar.lt-topbar.nav-solid .sb-logo-img{
  filter:brightness(0) saturate(100%)!important;
}

body.menu-open #sidebar.lt-topbar .sb-logo-img{
  filter:none!important;
}

@media (max-width:640px){
  #sidebar.lt-topbar .sb-logo-img{
    width:112px!important;
    max-width:112px!important;
    max-height:34px!important;
  }
}

/* =========================================================
   TOP NAV V19 - logo left, hamburger right, no menu label
   ========================================================= */
:root{
  --topbar-h:76px;
}

#sidebar.lt-topbar{
  justify-content:center!important;
  padding-left:var(--page-pad,clamp(3rem,5vw,6rem))!important;
  padding-right:var(--page-pad,clamp(3rem,5vw,6rem))!important;
}

#sidebar.lt-topbar .sb-left-actions{
  width:100%!important;
  max-width:var(--content-max,1440px)!important;
  margin-left:auto!important;
  margin-right:auto!important;
  display:flex!important;
  align-items:center!important;
  justify-content:space-between!important;
  gap:2rem!important;
}

#sidebar.lt-topbar .sb-logo{
  order:1!important;
  flex:0 0 auto!important;
}

#sidebar.lt-topbar .sb-menu-block{
  order:2!important;
  flex:0 0 auto!important;
  min-height:44px!important;
  padding:0!important;
  display:inline-flex!important;
  align-items:center!important;
  justify-content:center!important;
  gap:0!important;
  color:currentColor!important;
}

#sidebar.lt-topbar .sb-menu-word{
  display:none!important;
}

#sidebar.lt-topbar .sb-hamburger{
  position:relative!important;
  display:block!important;
  width:32px!important;
  height:18px!important;
  flex:0 0 32px!important;
}

#sidebar.lt-topbar .sb-hamburger span{
  position:absolute!important;
  left:3px!important;
  display:block!important;
  width:26px!important;
  height:1.5px!important;
  background:currentColor!important;
  transform-origin:center!important;
  opacity:1!important;
  transition:
    transform .55s var(--ease),
    opacity .25s ease,
    top .55s var(--ease),
    background .25s ease!important;
}

#sidebar.lt-topbar .sb-hamburger span:nth-child(1){top:2px!important;}
#sidebar.lt-topbar .sb-hamburger span:nth-child(2){top:8px!important;}
#sidebar.lt-topbar .sb-hamburger span:nth-child(3){top:14px!important;}

#sidebar.lt-topbar .sb-menu-block:not(.open):hover .sb-hamburger span:nth-child(1),
#sidebar.lt-topbar .sb-menu-block:not(.open):focus-visible .sb-hamburger span:nth-child(1){
  transform:translateX(-5px)!important;
}

#sidebar.lt-topbar .sb-menu-block:not(.open):hover .sb-hamburger span:nth-child(2),
#sidebar.lt-topbar .sb-menu-block:not(.open):focus-visible .sb-hamburger span:nth-child(2){
  transform:translateX(5px)!important;
}

#sidebar.lt-topbar .sb-menu-block:not(.open):hover .sb-hamburger span:nth-child(3),
#sidebar.lt-topbar .sb-menu-block:not(.open):focus-visible .sb-hamburger span:nth-child(3){
  transform:translateX(-5px)!important;
}

#sidebar.lt-topbar .sb-menu-block.open .sb-hamburger span:nth-child(1){
  top:8px!important;
  transform:rotate(45deg)!important;
}

#sidebar.lt-topbar .sb-menu-block.open .sb-hamburger span:nth-child(2){
  top:8px!important;
  opacity:0!important;
  transform:translateX(14px)!important;
}

#sidebar.lt-topbar .sb-menu-block.open .sb-hamburger span:nth-child(3){
  top:8px!important;
  transform:rotate(-45deg)!important;
}

@media (max-width:1100px){
  #sidebar.lt-topbar{
    padding-left:var(--page-pad,clamp(2rem,4vw,3rem))!important;
    padding-right:var(--page-pad,clamp(2rem,4vw,3rem))!important;
  }
}

@media (max-width:640px){
  :root{
    --topbar-h:72px;
  }

  #sidebar.lt-topbar{
    padding-left:1.25rem!important;
    padding-right:1.25rem!important;
  }

  #sidebar.lt-topbar .sb-left-actions{
    max-width:none!important;
    gap:1.25rem!important;
  }
}


/* =========================================================
   TOP NAV V20 - hamburger left, logo immediately after
   Editorial position: menu icon starts on content axis, logo follows.
   ========================================================= */
#sidebar.lt-topbar .sb-left-actions{
  justify-content:flex-start!important;
  gap:clamp(1.25rem,1.75vw,1.9rem)!important;
}

#sidebar.lt-topbar .sb-menu-block{
  order:1!important;
}

#sidebar.lt-topbar .sb-logo{
  order:2!important;
}

@media (max-width:640px){
  #sidebar.lt-topbar .sb-left-actions{
    gap:1.05rem!important;
  }
}

/* =========================================================
   TOP NAV V21 - visible close state over menu overlay
   Keeps the topbar above the overlay, preserves the logo, and
   turns the hamburger into a clear X while the menu is open.
   ========================================================= */
#layout-sidebar{
  z-index:900!important;
}

#sidebar.lt-topbar{
  z-index:920!important;
}

#menuOverlay{
  z-index:800!important;
}

body.menu-open #sidebar.lt-topbar{
  background:transparent!important;
  color:var(--white)!important;
  border-bottom-color:transparent!important;
  box-shadow:none!important;
  backdrop-filter:none!important;
  -webkit-backdrop-filter:none!important;
}

body.menu-open #sidebar.lt-topbar .sb-left-actions{
  opacity:1!important;
  visibility:visible!important;
  pointer-events:auto!important;
}

body.menu-open #sidebar.lt-topbar .sb-logo,
body.menu-open #sidebar.lt-topbar .sb-logo-img{
  display:inline-flex!important;
  opacity:1!important;
  visibility:visible!important;
}

body.menu-open #sidebar.lt-topbar .sb-logo-img{
  display:block!important;
  filter:none!important;
}

body.menu-open #sidebar.lt-topbar .sb-menu-block{
  opacity:1!important;
  color:var(--white)!important;
}

body.menu-open #sidebar.lt-topbar .sb-menu-block:hover,
body.menu-open #sidebar.lt-topbar .sb-menu-block:focus-visible{
  color:var(--gold)!important;
}

body.menu-open #sidebar.lt-topbar .sb-hamburger span{
  background:currentColor!important;
}

body.menu-open #sidebar.lt-topbar .sb-menu-block.open .sb-hamburger span:nth-child(1){
  top:8px!important;
  transform:rotate(45deg)!important;
}

body.menu-open #sidebar.lt-topbar .sb-menu-block.open .sb-hamburger span:nth-child(2){
  top:8px!important;
  opacity:0!important;
  transform:translateX(14px)!important;
}

body.menu-open #sidebar.lt-topbar .sb-menu-block.open .sb-hamburger span:nth-child(3){
  top:8px!important;
  transform:rotate(-45deg)!important;
}

#menuOverlay.open{
  padding-top:calc(var(--topbar-h) + 2.75rem)!important;
}

@media (max-width:640px){
  #menuOverlay.open{
    padding-top:calc(var(--topbar-h) + 2rem)!important;
  }
}

/* =========================================================
   MENU OVERLAY LEFT-TO-RIGHT REVEAL RESTORE - FINAL V25
   Restores the original Lau-Tam menu reveal after reverting
   to the classic hamburger.
   ========================================================= */
#menuOverlay{
  background:transparent!important;
  opacity:0!important;
  visibility:hidden!important;
  pointer-events:none!important;
  overflow:hidden!important;
  transition:opacity .01s linear, visibility .01s linear!important;
}

#menuOverlay.open{
  opacity:1!important;
  visibility:visible!important;
  pointer-events:auto!important;
}

#menuOverlay::before,
#menuOverlay::after{
  content:""!important;
  position:absolute!important;
  inset:0 -48px 0 0!important;
  transform:translateX(-105%)!important;
  will-change:transform!important;
  pointer-events:none!important;
}

#menuOverlay::before{
  z-index:0!important;
  background:#05070D!important;
  transition:transform 1.08s var(--ease)!important;
}

#menuOverlay::after{
  z-index:1!important;
  background:
    radial-gradient(circle at 82% 18%,rgba(200,164,93,.10),transparent 28%),
    linear-gradient(135deg,#05070D 0%,#11151C 52%,#05070D 100%)!important;
  transition:transform 1.26s var(--ease) .08s!important;
}

#menuOverlay.open::before,
#menuOverlay.open::after{
  transform:translateX(0)!important;
}

#menuOverlay:not(.open),
#menuOverlay:not(.open) *,
#menuOverlay:not(.open)::before,
#menuOverlay:not(.open)::after{
  visibility:hidden!important;
  pointer-events:none!important;
}

#menuOverlay.open,
#menuOverlay.open *,
#menuOverlay.open::before,
#menuOverlay.open::after{
  visibility:visible!important;
}

#menuOverlay.menu-ready{
  overflow-y:auto!important;
}

.overlay-nav{
  z-index:3!important;
  opacity:0!important;
  transform:none!important;
  transition:opacity .2s ease .46s!important;
}

#menuOverlay.open .overlay-nav{
  opacity:1!important;
  transform:none!important;
}

html[lang="es"] .overlay-main-links a > span[data-i18n="es"],
html[lang="en"] .overlay-main-links a > span[data-i18n="en"],
html[lang="zh"] .overlay-main-links a > span[data-i18n="zh"],
html[lang="es"] .overlay-nav a > span[data-i18n="es"],
html[lang="en"] .overlay-nav a > span[data-i18n="en"],
html[lang="zh"] .overlay-nav a > span[data-i18n="zh"]{
  display:inline-block!important;
  width:max-content!important;
  max-width:100%!important;
  clip-path:inset(0 100% -.22em 0)!important;
  transform:translateX(-10px)!important;
  transition:
    clip-path .72s var(--ease),
    transform .72s var(--ease),
    color .12s ease!important;
}

#menuOverlay.open .overlay-main-links a > span[data-i18n],
#menuOverlay.open .overlay-nav a > span[data-i18n]{
  clip-path:inset(0 0 -.22em 0)!important;
  transform:translateX(0)!important;
}

#menuOverlay.open .overlay-main-links a:nth-child(1) > span[data-i18n]{transition-delay:.50s!important;}
#menuOverlay.open .overlay-main-links a:nth-child(2) > span[data-i18n]{transition-delay:.57s!important;}
#menuOverlay.open .overlay-main-links a:nth-child(3) > span[data-i18n]{transition-delay:.64s!important;}
#menuOverlay.open .overlay-main-links a:nth-child(4) > span[data-i18n]{transition-delay:.71s!important;}
#menuOverlay.open .overlay-main-links a:nth-child(5) > span[data-i18n]{transition-delay:.78s!important;}

#menuOverlay.open.menu-ready .overlay-main-links a,
#menuOverlay.open.menu-ready .overlay-main-links a > span[data-i18n]{
  transition:color .08s ease!important;
  transition-delay:0s!important;
  clip-path:inset(0 0 -.22em 0)!important;
  transform:none!important;
}

.overlay-internal-access{
  opacity:0!important;
  transform:translateX(-18px)!important;
  transition:opacity .24s ease .72s, transform .28s var(--ease) .72s!important;
}

#menuOverlay.open .overlay-internal-access{
  opacity:1!important;
  transform:translateX(0)!important;
}

/* =========================================================
   MENU OVERLAY VIDEO BACKGROUND - FIXED V27
   Real video layer, explicit JS source loading, same left-to-right reveal.
   This replaces the previous video attempt.
   ========================================================= */
#menuOverlay{
  background:#05070D!important;
  isolation:isolate!important;
}

#menuOverlay::before{
  content:""!important;
  display:block!important;
  position:absolute!important;
  inset:0 -52px 0 0!important;
  z-index:0!important;
  background:#05070D!important;
  transform:translateX(-105%)!important;
  will-change:transform!important;
  pointer-events:none!important;
  transition:transform 1.08s var(--ease)!important;
}

#menuOverlay.open::before{
  transform:translateX(0)!important;
}

.overlay-menu-media{
  position:absolute!important;
  inset:0 -52px 0 0!important;
  z-index:1!important;
  overflow:hidden!important;
  background:
    linear-gradient(90deg,rgba(0,5,14,.78),rgba(0,5,14,.70)),
    url("assets/menu/hero.jpg") center center / cover no-repeat,
    #05070D!important;
  opacity:1!important;
  visibility:visible!important;
  transform:translateX(-105%)!important;
  will-change:transform!important;
  pointer-events:none!important;
  transition:transform 1.18s var(--ease) .04s!important;
}

#menuOverlay.open .overlay-menu-media{
  transform:translateX(0)!important;
}

.overlay-menu-video{
  position:absolute!important;
  inset:0!important;
  display:block!important;
  width:100%!important;
  height:100%!important;
  object-fit:cover!important;
  object-position:center center!important;
  opacity:.72!important;
  filter:saturate(.82) contrast(1.08) brightness(.66)!important;
  transform:scale(1.025)!important;
  pointer-events:none!important;
}

#menuOverlay::after{
  content:""!important;
  display:block!important;
  position:absolute!important;
  inset:0 -52px 0 0!important;
  z-index:2!important;
  background:
    radial-gradient(circle at 76% 20%,rgba(200,164,93,.10),transparent 30%),
    linear-gradient(90deg,rgba(0,5,14,.88) 0%,rgba(0,5,14,.64) 44%,rgba(0,5,14,.84) 100%),
    linear-gradient(180deg,rgba(0,5,14,.20) 0%,rgba(0,5,14,.70) 100%)!important;
  transform:translateX(-105%)!important;
  will-change:transform!important;
  pointer-events:none!important;
  transition:transform 1.28s var(--ease) .08s!important;
}

#menuOverlay.open::after{
  transform:translateX(0)!important;
}

#menuOverlay .overlay-nav{
  position:relative!important;
  z-index:3!important;
}

body.menu-open #sidebar.lt-topbar{
  background:linear-gradient(180deg,rgba(0,5,14,.48),rgba(0,5,14,0))!important;
}

@media (max-width:760px){
  .overlay-menu-media{
    background:
      linear-gradient(180deg,rgba(0,5,14,.84),rgba(0,5,14,.78)),
      url("assets/menu/hero-mobile.jpg") center center / cover no-repeat,
      #05070D!important;
  }

  .overlay-menu-video{
    object-position:center center!important;
    opacity:.56!important;
    filter:saturate(.74) contrast(1.08) brightness(.54)!important;
    transform:scale(1.04)!important;
  }

  #menuOverlay::after{
    background:
      radial-gradient(circle at 70% 12%,rgba(200,164,93,.08),transparent 28%),
      linear-gradient(180deg,rgba(0,5,14,.88) 0%,rgba(0,5,14,.72) 46%,rgba(0,5,14,.90) 100%)!important;
  }
}

@media (prefers-reduced-motion:reduce){
  .overlay-menu-video{
    display:none!important;
  }

  .overlay-menu-media,
  #menuOverlay::before,
  #menuOverlay::after{
    transition:none!important;
  }
}


/* =========================================================
   MENU VIDEO PLAYBACK VISIBILITY FIX - FINAL V28
   Keeps the same reveal, but the video is now an actual visible moving layer.
   ========================================================= */
.overlay-menu-video{
  opacity:.86!important;
  filter:saturate(.86) contrast(1.08) brightness(.74)!important;
  transform:scale(1.035)!important;
  will-change:transform,opacity!important;
}

#menuOverlay::after{
  background:
    radial-gradient(circle at 76% 20%,rgba(200,164,93,.08),transparent 30%),
    linear-gradient(90deg,rgba(0,5,14,.80) 0%,rgba(0,5,14,.54) 44%,rgba(0,5,14,.78) 100%),
    linear-gradient(180deg,rgba(0,5,14,.18) 0%,rgba(0,5,14,.58) 100%)!important;
}

body.menu-open #sidebar.lt-topbar{
  background:linear-gradient(180deg,rgba(0,5,14,.58),rgba(0,5,14,0))!important;
}

@media (max-width:760px){
  .overlay-menu-video{
    opacity:.78!important;
    filter:saturate(.78) contrast(1.08) brightness(.66)!important;
    transform:scale(1.055)!important;
  }
}

/* =========================================================
   MENU VIDEO REPAIR - FINAL V30
   The video is visible again. The dark overlay is attached to
   the same moving media layer, so no raw full-color strip appears
   during the left-to-right reveal.
   ========================================================= */
#menuOverlay{
  background:#05070D!important;
}

#menuOverlay::before{
  z-index:0!important;
  background:#05070D!important;
}

.overlay-menu-media{
  position:absolute!important;
  inset:0 -52px 0 0!important;
  z-index:1!important;
  overflow:hidden!important;
  isolation:isolate!important;
  background:url("assets/menu/hero.jpg") center center / cover no-repeat #05070D!important;
  transform:translateX(-105%)!important;
  will-change:transform!important;
  pointer-events:none!important;
  transition:transform 1.18s var(--ease) .04s!important;
}

#menuOverlay.open .overlay-menu-media{
  transform:translateX(0)!important;
}

.overlay-menu-video{
  position:absolute!important;
  inset:0!important;
  z-index:1!important;
  display:block!important;
  width:100%!important;
  height:100%!important;
  object-fit:cover!important;
  object-position:center center!important;
  opacity:.92!important;
  filter:saturate(.86) contrast(1.08) brightness(.82)!important;
  transform:scale(1.035)!important;
  will-change:opacity,transform!important;
  pointer-events:none!important;
}

.overlay-menu-media::before,
.overlay-menu-media::after{
  content:""!important;
  position:absolute!important;
  inset:0!important;
  display:block!important;
  pointer-events:none!important;
}

/* Main dark treatment. It travels with the video, not separately. */
.overlay-menu-media::before{
  z-index:2!important;
  background:
    linear-gradient(90deg,rgba(0,5,14,.82) 0%,rgba(0,5,14,.56) 44%,rgba(0,5,14,.80) 100%),
    linear-gradient(180deg,rgba(0,5,14,.22) 0%,rgba(0,5,14,.64) 100%)!important;
}

/* Texture / premium finish. */
.overlay-menu-media::after{
  z-index:3!important;
  background:
    radial-gradient(circle at 76% 20%,rgba(200,164,93,.08),transparent 30%),
    radial-gradient(rgba(255,255,255,.034) 1px,transparent 1px)!important;
  background-size:auto,28px 28px!important;
  mix-blend-mode:screen!important;
  opacity:.40!important;
}

/* The outer veil is disabled. Keeping it was making the video read as static. */
#menuOverlay::after{
  display:none!important;
  content:none!important;
}

#menuOverlay .overlay-nav{
  position:relative!important;
  z-index:4!important;
}

body.menu-open #sidebar.lt-topbar{
  background:linear-gradient(180deg,rgba(0,5,14,.52),rgba(0,5,14,0))!important;
}

@media (max-width:760px){
  .overlay-menu-media{
    background:url("assets/menu/hero-mobile.jpg") center center / cover no-repeat #05070D!important;
  }

  .overlay-menu-video{
    opacity:.88!important;
    filter:saturate(.78) contrast(1.08) brightness(.72)!important;
    transform:scale(1.055)!important;
  }

  .overlay-menu-media::before{
    background:
      linear-gradient(180deg,rgba(0,5,14,.86) 0%,rgba(0,5,14,.70) 46%,rgba(0,5,14,.90) 100%),
      linear-gradient(90deg,rgba(0,5,14,.72) 0%,rgba(0,5,14,.58) 100%)!important;
  }

  .overlay-menu-media::after{
    background:
      radial-gradient(circle at 70% 12%,rgba(200,164,93,.07),transparent 28%),
      radial-gradient(rgba(255,255,255,.03) 1px,transparent 1px)!important;
    background-size:auto,24px 24px!important;
    opacity:.38!important;
  }
}


/* =========================================================
   TOP NAV SCROLL BACKGROUND - FINAL V32
   Adds a real background once the page scrolls over light sections.
   ========================================================= */
#sidebar.lt-topbar.nav-solid{
  background:rgba(255,255,255,.94)!important;
  color:var(--text)!important;
  border-bottom:1px solid rgba(0,5,14,.075)!important;
  box-shadow:0 14px 34px rgba(0,5,14,.055)!important;
  backdrop-filter:blur(18px)!important;
  -webkit-backdrop-filter:blur(18px)!important;
}

#sidebar.lt-topbar.nav-solid .sb-logo-img{
  filter:brightness(0) saturate(100%)!important;
}

#sidebar.lt-topbar.nav-solid .sb-menu-block{
  color:var(--text)!important;
}

#sidebar.lt-topbar.nav-solid .sb-menu-block:hover,
#sidebar.lt-topbar.nav-solid .sb-menu-block:focus-visible{
  color:var(--gold)!important;
}

body.menu-open #sidebar.lt-topbar,
body.menu-open #sidebar.lt-topbar.nav-solid{
  background:transparent!important;
  color:var(--white)!important;
  border-bottom-color:transparent!important;
  box-shadow:none!important;
  backdrop-filter:none!important;
  -webkit-backdrop-filter:none!important;
}

body.menu-open #sidebar.lt-topbar .sb-logo-img{
  filter:none!important;
}

/* =========================================================
   TOP NAV SCROLL BACKGROUND - SMOKE FINAL V33
   Replaces pure white with a softer smoke/translucent surface.
   ========================================================= */
#sidebar.lt-topbar.nav-solid{
  background:rgba(248,249,250,.90)!important;
  color:var(--text)!important;
  border-bottom:1px solid rgba(0,5,14,.065)!important;
  box-shadow:0 12px 30px rgba(0,5,14,.045)!important;
  backdrop-filter:blur(18px) saturate(1.08)!important;
  -webkit-backdrop-filter:blur(18px) saturate(1.08)!important;
}

#sidebar.lt-topbar.nav-solid .sb-logo-img{
  filter:brightness(0) saturate(100%)!important;
}

#sidebar.lt-topbar.nav-solid .sb-menu-block{
  color:var(--text)!important;
}

#sidebar.lt-topbar.nav-solid .sb-menu-block:hover,
#sidebar.lt-topbar.nav-solid .sb-menu-block:focus-visible{
  color:var(--gold)!important;
}

body.menu-open #sidebar.lt-topbar,
body.menu-open #sidebar.lt-topbar.nav-solid{
  background:transparent!important;
  color:var(--white)!important;
  border-bottom-color:transparent!important;
  box-shadow:none!important;
  backdrop-filter:none!important;
  -webkit-backdrop-filter:none!important;
}
