/* ==========================================================================
   Global header — utility bar, primary nav, mega-menu flyouts, mobile drawer
   ========================================================================== */

.global-nav{
  position:sticky;
  top:calc(-1 * (var(--ps-utility-menu-height) + 1px));
  z-index:1026;
  pointer-events:none;
}
.global-nav > *{pointer-events:auto}

/* --------------------------------------------------------------------------
   Utility bar
   -------------------------------------------------------------------------- */
.utility-menu{
  background-color:var(--ps-color-neutral-3-500);
  border-bottom:1px solid var(--ps-color-neutral-3-400);
}
.utility-menu__content{position:relative;display:flex;align-items:center;height:var(--ps-utility-menu-height)}

.utility-menu__static-links{display:none;margin-left:auto;margin-right:20px}
.utility-menu__static-link{
  font:400 12px/16px var(--ps-font);letter-spacing:normal;
  color:var(--ps-color-neutral-1-700);white-space:nowrap;
}
.utility-menu__static-link:not(:first-of-type){margin-left:20px}
.utility-menu__static-link:hover,.utility-menu__static-link:focus-visible{color:var(--sv-white)}
.utility-menu__static-link .ps-link__arrow{display:none}

/* Language selector — same dropdown mechanics the utility bar already used */
.utility-menu__lang{
  position:relative;display:flex;align-items:center;gap:5px;margin-left:auto;cursor:pointer;
  font:500 12px/16px var(--ps-font);letter-spacing:.04em;
  color:var(--ps-color-neutral-1-700);transition:color .2s;
}
.utility-menu__static-links + .utility-menu__lang{margin-left:0}
.utility-menu__lang:hover,.utility-menu__lang:focus-visible{color:var(--sv-white)}
.utility-menu__lang-caret{flex:none;transition:transform .2s}
.utility-menu__lang:hover .utility-menu__lang-caret,
.utility-menu__lang:focus-within .utility-menu__lang-caret{transform:rotate(180deg)}
.utility-menu__lang-items{
  position:absolute;right:-8px;top:100%;margin-top:11px;
  display:none;flex-direction:column;padding:4px;min-width:150px;
  background-color:var(--sv-white);
  border:1px solid var(--ps-color-neutral-2-300);border-radius:3px;
  box-shadow:var(--ps-shadow-bottom-md);
}
.utility-menu__lang:hover .utility-menu__lang-items,
.utility-menu__lang:focus-within .utility-menu__lang-items{display:flex}
.utility-menu__lang-items::before{content:"";position:absolute;top:-9px;right:11px;border-left:8px solid transparent;border-right:8px solid transparent;border-bottom:8px solid var(--ps-color-neutral-2-300)}
.utility-menu__lang-item{
  font:400 13px/20px var(--ps-font);letter-spacing:normal;padding:8px 12px;white-space:nowrap;
  color:var(--ps-color-neutral-3-500);border-radius:2px;
}
.utility-menu__lang-item:hover{color:var(--ps-color-brand-500);background:var(--ps-color-neutral-2-100)}
.utility-menu__lang-item.is-current{font-weight:600;box-shadow:inset 2px 0 0 var(--ps-color-brand-500)}

.utility-menu__search-icon{height:16px;width:16px;margin-left:20px;cursor:pointer;flex:none}
.utility-menu__search-icon svg path{fill:var(--ps-color-neutral-1-700);transition:fill .2s}
.utility-menu__search-icon:hover svg path,.utility-menu__search-icon:focus-visible svg path{fill:var(--sv-white)}

@media (min-width:900px){
  .utility-menu__static-links{display:flex}
}

/* --------------------------------------------------------------------------
   Desktop primary nav
   -------------------------------------------------------------------------- */
.global-nav-desktop{
  display:none;position:relative;
  height:var(--ps-global-nav-height);
  background-color:var(--ps-color-neutral-1-500);
  box-shadow:inset 0 -1px 0 0 var(--ps-color-neutral-2-300);
}
.global-nav-desktop__content{position:relative;display:flex;align-items:center;height:inherit}

.global-nav-desktop__logo{display:flex;align-items:center;flex:none;transition:opacity .25s linear}
/* Official artwork, unmodified: colour, proportions and paths as supplied. */
.silvaco-logo{display:block;height:26px;width:auto;max-width:none}
.silvaco-logo__glyph{fill:#ad2527}
.global-nav-desktop__logo:hover .silvaco-logo,
.global-nav-desktop__logo:focus-visible .silvaco-logo{opacity:.82}

.global-nav-desktop__links-parent{height:inherit;overflow:hidden;margin-right:auto}
.global-nav-desktop__links-wrapper{position:relative;display:flex;height:inherit;align-items:center;padding-left:32px}
.global-nav-desktop__links{display:flex;height:inherit;align-items:center;margin-left:auto;margin-right:10px}

.global-nav-desktop__link{
  position:relative;display:flex;align-items:center;height:inherit;
  padding:0 14px;white-space:nowrap;cursor:pointer;
  font:500 15px/24px var(--ps-font);letter-spacing:normal;
  color:var(--ps-color-neutral-3-500);
  transition:color .2s ease-out;
}
.global-nav-desktop__link::after{
  content:"";position:absolute;bottom:0;left:0;display:block;
  height:3px;width:100%;border-radius:3px;background:transparent;
  transition:background .2s ease-out;
}
.global-nav-desktop__link:hover,
.global-nav-desktop__link:focus-visible,
.global-nav-desktop__link.is-open{color:var(--ps-color-brand-500)}
.global-nav-desktop__link:hover::after,
.global-nav-desktop__link:focus-visible::after,
.global-nav-desktop__link.is-open::after{background:var(--ps-color-brand-500)}

.global-nav-desktop__cta-section{display:flex;align-items:center;justify-content:flex-end;flex:none}
.global-nav-desktop__cta-section .ps-btn{margin:0 0 0 16px}

@media (min-width:768px){
  .global-nav-desktop{display:block}
}
/* Silvaco's top-level labels are long ("Products and Workflows",
   "Support & Downloads"), so the full link row needs 1280px to sit
   comfortably. Below that the header falls back to the drawer the layout
   foundation already uses — same mechanism, higher threshold. */
@media (max-width:1279.98px){
  .global-nav-desktop{box-shadow:inset 0 -1px 0 0 var(--ps-color-neutral-2-300)}
  .global-nav-desktop__links-parent{opacity:0;pointer-events:none}
  .global-nav-desktop__logo .silvaco-logo{height:22px}
}
@media (min-width:1280px) and (max-width:1439.98px){
  .global-nav-desktop__link{padding:0 9px;font-size:14px}
  .global-nav-desktop__logo .silvaco-logo{height:23px}
  .global-nav-desktop__cta-section .ps-btn{font-size:13px;padding:10px 16px}
}
@media (min-width:1280px){
  .main-menu__toggle--desktop{display:none}
  /* Nav shrinks from 64px to 48px as the utility bar scrolls out of view */
  @supports (animation-timeline:scroll()){
    .global-nav-desktop{
      animation:ps-nav-shrink cubic-bezier(.25,.46,.45,.94) both;
      animation-timeline:scroll(root);
      animation-range:var(--ps-utility-menu-height) calc(var(--ps-utility-menu-height) + 30px);
    }
  }
  @supports not (animation-timeline:scroll()){
    .global-nav-desktop{height:var(--ps-global-nav-height);transition:height .2s cubic-bezier(.25,.46,.45,.94)}
    .is-scrolled .global-nav-desktop{height:var(--ps-global-nav-height-condensed)}
  }
}
@keyframes ps-nav-shrink{from{height:64px}to{height:48px}}

/* --------------------------------------------------------------------------
   Mega-menu flyouts
   -------------------------------------------------------------------------- */
.global-nav-desktop__flyouts{position:absolute;top:100%;left:0;right:0}
.main-menu__flyout-wrapper{position:relative;grid-column-end:span var(--ps-grid-columns)}

.main-menu__flyout{
  position:absolute;left:-99999px;top:0;opacity:0;visibility:hidden;
  transition:opacity .2s ease-out;
  border-radius:16px;overflow:hidden;pointer-events:none;
  box-shadow:var(--ps-shadow-bottom-xl);
  --flyout-columns-bg:var(--ps-color-neutral-1-500);
  --flyout-section-title-color:var(--ps-color-neutral-3-500);
  --flyout-section-arrow-color:var(--ps-color-brand-600);
  --flyout-section-border-color:var(--ps-color-neutral-2-300);
  --flyout-item-title-color:var(--ps-color-secondary-5-500);
}
.main-menu__flyout.is-open{left:0;opacity:1;visibility:visible;pointer-events:auto}
.main-menu__flyout--column_2{width:100%;max-width:900px}
.main-menu__flyout--column_3{width:100%;max-width:1300px}

.main-menu__flyout-columns{
  display:flex;flex-direction:row;flex-wrap:nowrap;
  background-color:var(--flyout-columns-bg);
  max-height:calc(100vh - 164px);overflow:auto;scrollbar-width:thin;
}
.main-menu__flyout-columns::-webkit-scrollbar{width:16px}
.main-menu__flyout-columns::-webkit-scrollbar-track{margin:12px}
.main-menu__flyout-columns::-webkit-scrollbar-thumb{background-color:var(--ps-color-neutral-3-200);border:6px solid transparent;border-radius:10px;background-clip:padding-box}

.main-menu__flyout-column{padding:32px;display:flex;flex:1 1 0;flex-direction:column;gap:24px;background-color:var(--flyout-columns-bg)}
.main-menu__flyout-column + .main-menu__flyout-column{padding-left:0}

.main-menu__flyout-section{flex-shrink:1;flex-basis:0}
.main-menu__flyout-section-heading{
  display:flex;min-height:41px;align-items:center;padding-bottom:8px;
  border-bottom:1px solid var(--flyout-section-border-color);
}
.main-menu__flyout-section-heading-text{display:flex;flex-direction:column;gap:8px;margin-right:8px;min-width:0}
.main-menu__flyout-section-title{font:500 16px/20px var(--ps-font);letter-spacing:.5px;color:var(--flyout-section-title-color);transition:color .2s ease-out}
.main-menu__flyout-section-description{font:400 12px/16px var(--ps-font);letter-spacing:.5px;color:var(--flyout-section-title-color)}
.main-menu__flyout-section-arrow{display:flex;align-items:center;width:16px;height:16px;margin-left:auto;flex:none}
.main-menu__flyout-section-arrow::after{
  content:"";display:block;width:10px;height:10px;rotate:45deg;
  border-top:2px solid var(--flyout-section-arrow-color);
  border-right:2px solid var(--flyout-section-arrow-color);
}
a.main-menu__flyout-section-heading:hover .main-menu__flyout-section-title,
a.main-menu__flyout-section-heading:focus-visible .main-menu__flyout-section-title{color:var(--ps-color-brand-500)}

/* Optical trim, matching the reference menu typography */
.main-menu__flyout-section-title,
.main-menu__flyout-section-description,
.main-menu__flyout-item-title,
.main-menu__flyout-item-description,
.main-menu__menu-hero-title,
.main-menu__menu-hero-description{
  text-box:none;
  margin-block:calc((-1lh + 1cap + 1px) / 1.605) calc((-1lh + 1cap + 1px) / 3.21);
}

.main-menu__flyout-item{position:relative;display:block}
.main-menu__flyout-item:first-child{margin-top:12px}
.main-menu__flyout-item-content{position:relative;display:flex;flex-direction:column;margin-left:20px;padding:12px 0;gap:8px}
.main-menu__flyout-item-content::before{
  content:"";position:absolute;bottom:0;left:-20px;display:block;height:100%;width:4px;
  background-color:transparent;transition:background-color ease-out .2s;
}
.main-menu__flyout-item-title{font:500 14px/20px var(--ps-font);letter-spacing:normal;color:var(--ps-color-neutral-3-500);transition:color ease-out .2s;position:relative}
.main-menu__flyout-item-description{font:400 12px/16px var(--ps-font);letter-spacing:normal;color:var(--ps-color-secondary-5-500);position:relative}
.main-menu__flyout-item-description p{margin:0}
.main-menu__flyout-item:hover .main-menu__flyout-item-title,
.main-menu__flyout-item:focus-visible .main-menu__flyout-item-title{color:var(--ps-color-brand-500)}
.main-menu__flyout-item:hover .main-menu__flyout-item-content::before,
.main-menu__flyout-item:focus-visible .main-menu__flyout-item-content::before{background-color:var(--ps-color-brand-500)}

/* hero panel inside a flyout */
.main-menu__menu-hero{
  background-color:var(--ps-color-secondary-3-400);
  padding:32px;display:flex;flex:1 1 0;flex-direction:column;max-width:450px;
}
.main-menu__menu-hero-image{border-radius:8px;position:relative;overflow:hidden;aspect-ratio:16/9;background:var(--ps-color-neutral-3-500)}
.main-menu__menu-hero-image img{position:absolute;inset:0;height:100%;width:100%;object-fit:cover}
.main-menu__menu-hero-text{display:flex;flex-direction:column;gap:24px;padding:32px 16px}
.main-menu__menu-hero-title,
.main-menu__menu-hero-description{color:var(--ps-color-neutral-3-500)}
.main-menu__menu-hero-description p{margin:0}
.main-menu__menu-hero-list{display:flex;flex-direction:column;gap:4px;margin-top:-12px}
.main-menu__menu-hero-list li{position:relative;padding-left:14px;font:400 14px/20px var(--ps-font);letter-spacing:.5px;color:var(--ps-color-neutral-3-500)}
.main-menu__menu-hero-list li::before{content:"";position:absolute;left:0;top:8px;width:5px;height:5px;border-radius:50%;background:var(--ps-color-brand-500)}
.main-menu__menu-hero-cta{color:var(--ps-color-secondary-5-500);margin-top:auto}

/* --------------------------------------------------------------------------
   Mobile nav
   -------------------------------------------------------------------------- */
.global-nav-mobile{
  display:flex;align-items:center;height:var(--ps-global-nav-height);
  background-color:var(--ps-color-neutral-1-500);
  box-shadow:inset 0 -1px 0 0 var(--ps-color-neutral-2-300);
  padding-inline:var(--ps-grid-margin);
}
.global-nav-mobile__logo{display:flex;align-items:center;flex:none}
.global-nav-mobile__logo .silvaco-logo{height:20px}
.global-nav-mobile__contact{display:flex;align-items:center;margin-left:auto;gap:12px}

@media (min-width:768px){
  .global-nav-mobile{display:none}
}

.main-menu__toggle{
  width:21px;height:15px;margin-left:24px;padding:0;border:0;cursor:pointer;
  position:relative;flex:none;background:none;
}
.main-menu__toggle .line{display:block;width:inherit;height:3px;border-radius:2px;background-color:var(--ps-color-brand-500);transition:transform .3s,opacity .3s;position:absolute;left:0;top:6px}
.main-menu__toggle .line-1{transform:translate3d(0,-5.5px,0);transform-origin:right}
.main-menu__toggle .line-3{transform:translate3d(0,5.5px,0);transform-origin:left}
.main-menu__toggle.is-active .line-1{transform:translate3d(-3px,-7.5px,0) rotate(-45deg)}
.main-menu__toggle.is-active .line-2{transform:rotate(45deg)}
.main-menu__toggle.is-active .line-3{transform:translate3d(3px,7px,0) rotate(-45deg);opacity:0}



/* mobile drawer */
.mobile-drawer{
  position:fixed;inset:calc(var(--ps-utility-menu-height) + var(--ps-global-nav-height)) 0 0 0;
  background:var(--ps-color-neutral-1-500);
  z-index:1025;overflow-y:auto;
  transform:translateX(100%);visibility:hidden;
  transition:transform .3s ease-out,visibility .3s;
}
.mobile-drawer.is-open{transform:translateX(0);visibility:visible}
.mobile-drawer__panels{position:relative}
.mobile-drawer__panel{padding:8px var(--ps-grid-margin) 40px}
.mobile-drawer__panel[hidden]{display:none}
.mobile-drawer__back{
  display:flex;align-items:center;gap:8px;padding:16px 0;width:100%;
  font:500 16px/20px var(--ps-font);letter-spacing:.5px;color:var(--ps-color-neutral-3-500);
}
.mobile-drawer__back svg{width:14px;height:12px;transform:rotate(180deg);color:var(--ps-color-brand-500)}
.mobile-drawer__panel-title{font:500 16px/20px var(--ps-font);letter-spacing:.5px;color:var(--ps-color-neutral-3-500);padding:8px 0 16px}
.mobile-drawer__major{
  display:flex;align-items:center;justify-content:space-between;width:100%;
  padding:16px 0;border-bottom:1px solid var(--ps-color-neutral-2-300);
  font:700 16px/24px var(--ps-font);letter-spacing:.5px;color:var(--ps-color-neutral-3-500);
  text-align:left;
}
.mobile-drawer__major svg{width:14px;height:12px;color:var(--ps-color-brand-500);flex:none}
.mobile-drawer__section{padding-top:24px}
.mobile-drawer__section-title{
  font:500 16px/20px var(--ps-font);letter-spacing:.5px;color:var(--ps-color-neutral-3-500);
  padding-bottom:8px;border-bottom:1px solid var(--ps-color-neutral-2-300);
}
.mobile-drawer__item{display:block;padding:12px 0;border-bottom:1px solid var(--ps-color-neutral-2-200)}
.mobile-drawer__item-title{font:500 14px/20px var(--ps-font);letter-spacing:normal;color:var(--ps-color-neutral-3-500)}
.mobile-drawer__item-desc{font:400 12px/16px var(--ps-font);letter-spacing:normal;color:var(--ps-color-secondary-5-500);margin-top:4px}
.mobile-drawer__ctas{display:flex;flex-direction:column;gap:12px;padding-top:32px}
.mobile-drawer__ctas .ps-btn{justify-content:center}
.mobile-drawer__lang{display:flex;align-items:center;gap:14px;padding-top:28px}
.mobile-drawer__lang-label{font:400 12px/16px var(--ps-font);color:var(--ps-color-secondary-5-500);margin-right:2px}
.mobile-drawer__lang a{font:500 13px/16px var(--ps-font);color:var(--ps-color-neutral-3-500)}
.mobile-drawer__lang a.is-current{color:var(--ps-color-brand-500)}

/* --------------------------------------------------------------------------
   Header search overlay
   -------------------------------------------------------------------------- */
.global-nav-desktop__search{
  position:absolute;inset:0;display:flex;align-items:center;
  padding-inline:var(--ps-grid-margin);
  pointer-events:none;opacity:0;transition:opacity .25s linear;
}
.global-nav-desktop__search input{
  width:100%;height:40px;padding:11px 44px 11px 16px;border-radius:3px;
  border:1px solid var(--ps-color-neutral-3-200);background:var(--ps-color-neutral-1-000);
  font:600 16px/18px var(--ps-font);letter-spacing:.5px;color:var(--ps-color-neutral-3-600);
}
.global-nav-desktop__search-close{
  position:absolute;right:calc(var(--ps-grid-margin) + 16px);top:50%;transform:translateY(-50%);
  width:16px;height:16px;color:var(--ps-color-brand-600);display:none;
}
.global-nav.is-search-active .global-nav-desktop__search{opacity:1;pointer-events:auto}
.global-nav.is-search-active .global-nav-desktop__search-close{display:block}
.global-nav.is-search-active .global-nav-desktop__logo,
.global-nav.is-search-active .global-nav-desktop__links-parent,
.global-nav.is-search-active .global-nav-desktop__cta-section{opacity:0;pointer-events:none;transition:opacity .25s linear}
