/* Shared mobile navigation drawer.
   site-nav.js builds the burger, backdrop and drawer from the links already in the
   page, so this file only styles them. Loaded by the public pages. */

.navburger{
  display:none;
  position:relative;
  width:44px;height:44px;
  flex:0 0 auto;
  padding:0;border:0;background:transparent;cursor:pointer;
}
.navburger span{
  position:absolute;left:11px;right:11px;height:3px;border-radius:2px;
  background:var(--ink,#1E1E24);
}
.navburger span:nth-child(1){top:14px}
.navburger span:nth-child(2){top:20px}
.navburger span:nth-child(3){top:26px}

@media (max-width:760px){
  .navburger{display:block}
  /* Phones: the inline links move into the drawer. One rule for every public nav shape —
     .pillnav (home), .sitenav (trade pages, legal), .top (pricing, contact, blog) — so a page
     can't ship with its links squeezed into one row and the CTA cut off. Only applies once
     site-nav.js has built the burger (html.has-navburger), so a script failure keeps the links. */
  html.has-navburger .pillnav nav,
  html.has-navburger .pillnav>div:not(.brand) a,
  html.has-navburger .sitenav nav,
  html.has-navburger .top nav{display:none}
}

.navbackdrop{
  position:fixed;inset:0;z-index:55;
  background:rgba(30,30,36,.45);
  opacity:0;visibility:hidden;
  transition:opacity .2s ease,visibility .2s ease;
}
.navbackdrop.open{opacity:1;visibility:visible}

.navdrawer{
  position:fixed;top:0;right:0;bottom:0;z-index:60;
  width:min(82vw,320px);
  background:var(--card,#FFFFFF);
  border-left:1px solid var(--line,#DFE5EC);
  padding:20px 22px;
  display:flex;flex-direction:column;
  overflow-y:auto;
  transform:translateX(100%);
  visibility:hidden;
  transition:transform .2s ease,visibility .2s ease;
}
.navdrawer.open{transform:translateX(0);visibility:visible}

.navclose{
  align-self:flex-end;
  width:44px;height:44px;
  border:0;background:transparent;cursor:pointer;
  font-size:1.5rem;line-height:1;
  color:var(--slate,#8B93A3);
  border-radius:var(--radius-sm,9px);
}
.navclose:hover{color:var(--ink,#1E1E24)}

.navdrawer nav{
  display:flex;flex-direction:column;gap:2px;
  margin-top:6px;
}
.navdrawer nav a{
  display:flex;align-items:center;
  min-height:44px;
  padding:10px 12px;
  font-size:1.05rem;line-height:1.4;
  color:var(--slate-2,#565C6B);
  text-decoration:none;
  border-radius:var(--radius-sm,9px);
}
.navdrawer nav a[hidden]{display:none}
.navdrawer nav a:hover{background:var(--paper,#F0F4F8);color:var(--ink,#1E1E24)}
.navdrawer nav a.cta{
  margin-top:12px;
  justify-content:center;
  background:var(--accent,#FF6B00);
  color:var(--ink,#1E1E24);
  font-weight:700;
  border-radius:999px;
}

.navdrawer-phone{
  margin-top:auto;
  padding:14px 12px 4px;
  border-top:1px solid var(--line,#DFE5EC);
}
.navdrawer-phone a{
  display:flex;align-items:center;justify-content:center;
  min-height:44px;
  font-size:1.05rem;font-weight:700;
  color:var(--ink,#1E1E24);
  text-decoration:none;
}

body.nav-open{overflow:hidden}

@media (prefers-reduced-motion:reduce){
  .navdrawer,.navbackdrop{transition-duration:.01ms}
}

/* Contact popup overlay (DESIGN_RULES §9). overlay.js builds the markup; this
   styles it. Backdrop 60 / card 61, one accent action, three ways out, scroll
   locked while open, 16px gutter at every width. */
.thraev-overlay{
  position:fixed;inset:0;z-index:60;
  background:rgba(30,30,36,.66);
  display:flex;align-items:center;justify-content:center;
  padding:16px;
  opacity:0;visibility:hidden;
  transition:opacity .12s ease,visibility .12s ease;
}
.thraev-overlay.open{opacity:1;visibility:visible}
.thraev-overlay-card{
  position:relative;z-index:61;
  width:100%;max-width:440px;
  max-height:calc(100vh - 32px);
  overflow-y:auto;
  background:var(--card,#FFFFFF);
  border:1px solid var(--line,#DFE5EC);
  border-radius:14px;
  padding:22px 22px 18px;
  box-shadow:0 24px 60px -20px rgba(30,30,36,.4);
  transform:translateY(8px);
  transition:transform .12s ease;
}
.thraev-overlay.open .thraev-overlay-card{transform:translateY(0)}
.thraev-overlay-x{
  position:absolute;top:6px;right:6px;
  width:44px;height:44px;
  border:0;background:transparent;cursor:pointer;
  font-size:1.5rem;line-height:1;
  color:var(--slate,#8B93A3);
  border-radius:var(--radius-sm,9px);
}
.thraev-overlay-x:hover{color:var(--ink,#1E1E24)}
.thraev-overlay-title{margin:0 0 4px;padding-right:44px;font-size:20px;font-weight:600;color:var(--ink,#1E1E24)}
.thraev-overlay-sub{margin:0 0 14px;font-size:14px;color:var(--slate-2,#565C6B)}
.thraev-overlay-form label{display:block;font-size:12px;color:var(--slate-2,#565C6B);margin:12px 0 4px}
.thraev-overlay-opt{color:var(--slate,#8B93A3)}
.thraev-overlay-form input,.thraev-overlay-form textarea{
  width:100%;font-family:inherit;font-size:14px;padding:10px 12px;
  border:1px solid var(--line,#DFE5EC);border-radius:8px;
  background:var(--card,#FFFFFF);color:var(--ink,#1E1E24);
}
.thraev-overlay-form textarea{min-height:110px;resize:vertical}
.thraev-overlay-submit{
  margin-top:16px;width:100%;padding:12px;
  border:0;border-radius:8px;
  background:var(--accent,#FF6B00);color:var(--ink,#1E1E24);
  font-size:14px;font-weight:600;cursor:pointer;
}
.thraev-overlay-submit:hover{background:var(--accent-deep,#E05F00)}
.thraev-overlay-submit:disabled{opacity:.6;cursor:default}
.thraev-overlay-note{margin:12px 0 0;font-size:13px}
.thraev-overlay-note.ok{color:var(--green,#1B7F52)}
.thraev-overlay-note.err{color:var(--red,#B42318)}
.thraev-overlay-alt{margin:14px 0 0;font-size:13px;color:var(--slate-2,#565C6B)}
.thraev-overlay-alt a{color:var(--ink,#1E1E24)}
body.thraev-overlay-open{overflow:hidden}

@media (prefers-reduced-motion:reduce){
  .thraev-overlay,.thraev-overlay-card{transition-duration:.01ms}
}