/* Shared header, nav, and footer styles for all Asc3nd Technologies pages.
   Relies on per-page :root variables: --bg, --bg-rgb, --bg2, --ink, --mut, --dim, --line, --line2, --grad */

/* image-slot's empty-state icon/text defaults to a dark color meant for a light
   page background; override for legibility on this site's dark theme. */
image-slot::part(empty) { color:rgba(234,241,248,.5); }
image-slot::part(frame) { background:rgba(255,255,255,.03); }

header { position:fixed; top:0; left:0; right:0; z-index:100; transition:background .3s, border-color .3s, backdrop-filter .3s; border-bottom:1px solid transparent; }
header.solid { background:rgba(var(--bg-rgb),.85); backdrop-filter:blur(14px); border-bottom:1px solid var(--line); }

.nav { max-width:1240px; margin:0 auto; padding:16px 48px; display:flex; align-items:center; justify-content:space-between; }

.brand { display:flex; align-items:center; }
.brand img { height:60px; display:block; }

.navlinks { display:flex; align-items:center; gap:2px; }
.navlinks > a:not(.cta), .nav-item > .nav-trigger { font-size:14px; color:var(--mut); padding:9px 14px; border-radius:7px; transition:color .15s; cursor:pointer; display:inline-flex; align-items:center; gap:6px; background:none; border:none; font-family:inherit; }
.navlinks > a:not(.cta):hover, .nav-item:hover > .nav-trigger { color:var(--ink); }
.navlinks > a.active { color:var(--ink); }
.nav-trigger .caret { width:9px; height:9px; transition:transform .25s; opacity:.7; }
.nav-item:hover .nav-trigger .caret { transform:rotate(180deg); }
.nav-item { position:relative; }

.nav-dd { position:absolute; top:100%; left:50%; transform:translateX(-50%) translateY(8px); min-width:286px; padding-top:12px; opacity:0; visibility:hidden; pointer-events:none; transition:opacity .22s, transform .22s; z-index:50; }
.nav-item:hover .nav-dd { opacity:1; visibility:visible; pointer-events:auto; transform:translateX(-50%) translateY(0); }
.nav-dd-inner { background:rgba(var(--bg-rgb),.97); backdrop-filter:blur(16px); border:1px solid var(--line2); border-radius:14px; padding:8px; box-shadow:0 24px 60px -16px rgba(0,0,0,.6); }
.dd-link { display:flex; gap:13px; align-items:flex-start; padding:13px 14px; border-radius:10px; transition:background .15s; }
.dd-link:hover, .dd-link.active { background:rgba(120,190,200,.09); }
.dd-link .dot { width:9px; height:9px; border-radius:3px; margin-top:5px; flex-shrink:0; }
.dd-link.t1 .dot{ background:#3bb9bf; } .dd-link.t2 .dot{ background:#66c586; } .dd-link.t3 .dot{ background:#48c0f0; } .dd-link.t4 .dot{ background:#c79ae0; }
.dd-link.p1 .dot{ background:#e8584c; } .dd-link.p2 .dot{ background:#48c0f0; }
.dd-link.c1 .dot{ background:#48c0f0; } .dd-link.c2 .dot{ background:#66c586; } .dd-link.c3 .dot{ background:#18a8d8; }
.dd-link.c4 .dot{ background:#3bb9bf; } .dd-link.c5 .dot{ background:#c79ae0; } .dd-link.c6 .dot{ background:#60c0f0; }
.dd-link.single { align-items:center; }
.dd-link .dt { font-weight:600; font-size:14.5px; color:var(--ink); }
.dd-link .dt, .dd-link .ds { display:block; }
.dd-link .ds { font-size:13px; color:var(--dim); margin-top:3px; font-family:'JetBrains Mono',monospace; letter-spacing:.02em; white-space:nowrap; }

.cta { margin-left:10px; background:var(--grad); color:#04222a !important; font-weight:700; padding:11px 20px !important; border-radius:6px; white-space:nowrap; }

footer { border-top:1px solid var(--line); padding:40px 0 54px; }
.foot { display:flex; align-items:baseline; justify-content:space-between; gap:24px; flex-wrap:wrap; color:var(--dim); font-size:19.5px; }
.foot .mono { font-size:18px; }
.foot .footlinks { display:flex; align-items:center; gap:22px; }
.foot .footlinks a:not(.social) { color:var(--dim); font-size:19.5px; transition:color .15s; }
.foot .footlinks a:not(.social):hover { color:var(--ink); }
.foot .social { display:inline-flex; align-items:center; justify-content:center; color:var(--dim); transition:color .15s; }
.foot .social:hover { color:var(--ink); }
.foot .social svg { width:18px; height:18px; display:block; }

@media (max-width:900px){
  .navlinks .nav-item, .navlinks > a:not(.cta){ display:none; }
}
@media (max-width:1100px){ header .navlinks > a:not(.cta), header .navlinks .nav-item { display:none !important; } }

/* Typography: avoid single-word orphans */
h1, h2, h3 { text-wrap:balance; }
p, li, blockquote { text-wrap:pretty; }

/* Footer: contract vehicles and certifications */
.footcreds { display:flex; flex-wrap:wrap; align-items:baseline; gap:8px 30px; padding-bottom:26px; margin-bottom:26px; border-bottom:1px solid var(--line); font-size:18px; color:var(--mut); }
.footcreds .fck { font-family:'JetBrains Mono',monospace; font-size:16px; letter-spacing:.16em; text-transform:uppercase; color:var(--dim); }
.footcreds a { color:var(--ink); border-bottom:1px solid var(--line2); transition:color .15s, border-color .15s; }
.footcreds a:hover { color:var(--sky2); border-color:var(--sky2); }

.foot .sitecredit { display:block; text-align:left; margin-top:6px; font-family:'Archivo',sans-serif; font-size:13px; letter-spacing:.02em; color:#3f5562; }
.foot .sitecredit a { color:inherit; border-bottom:0; transition:color .15s; }
.foot .sitecredit a:hover { color:#5e7682; }

/* trademark mark */
sup.tm { font-size:.42em; line-height:0; vertical-align:super; margin-left:.12em; font-weight:400; letter-spacing:0; font-family:'Archivo',sans-serif; -webkit-text-fill-color:currentColor; color:inherit; }
.wt sup.tm { font-size:.34em; align-self:flex-start; margin-top:.18em; margin-left:.2em; }

/* Standard closing CTA title: two lines on desktop, same size and gradient everywhere */
.final h2.cta-title, .cta-band h2.cta-title { font-family:'Newsreader',serif; font-weight:400; font-size:clamp(34px,4.8vw,68px); line-height:1.06; letter-spacing:-.025em; max-width:none; margin:0 auto; text-align:center; text-wrap:initial; }
.cta-title .l { display:block; white-space:nowrap; }
.cta-title .g { background:linear-gradient(115deg,#0066b0 0%,#0090d8 28%,#18a8d8 48%,#48c0f0 68%,#66c586 100%); -webkit-background-clip:text; background-clip:text; -webkit-text-fill-color:transparent; }
@media (max-width:640px){ .cta-title .l { white-space:normal; text-wrap:balance; } }

/* Hamburger + slide-down menu (built by assets/nav.js) */
.burger { display:none; width:46px; height:46px; margin-left:8px; border:1px solid var(--line2); border-radius:10px; background:transparent; cursor:pointer; padding:0; flex-direction:column; align-items:center; justify-content:center; gap:5px; transition:border-color .2s; }
.burger:hover { border-color:var(--sky,#48c0f0); }
.burger:focus-visible { outline:2px solid var(--sky2,#6fd0f5); outline-offset:3px; }
.burger span { display:block; width:20px; height:2px; border-radius:2px; background:var(--ink); transition:transform .25s, opacity .2s; }
header.menu-open .burger span:nth-child(1) { transform:translateY(7px) rotate(45deg); }
header.menu-open .burger span:nth-child(2) { opacity:0; }
header.menu-open .burger span:nth-child(3) { transform:translateY(-7px) rotate(-45deg); }
header.menu-open { background:rgba(var(--bg-rgb),.98); border-bottom-color:var(--line); }
.mnav { position:absolute; top:100%; left:0; right:0; max-height:calc(100vh - 70px); max-height:calc(100dvh - 70px); overflow-y:auto; overscroll-behavior:contain; background:rgba(var(--bg-rgb),.98); backdrop-filter:blur(16px); border-bottom:1px solid var(--line2); padding:2px 26px 22px; }
.mnav[hidden] { display:none; }
.mn-head { margin-top:14px; font-family:'JetBrains Mono',monospace; font-size:15px; letter-spacing:.22em; text-transform:uppercase; color:var(--dim); }
.mn-sub { display:flex; align-items:flex-start; gap:14px; padding:10px 4px; border-bottom:1px solid var(--line); }
.mn-sub .dot { width:9px; height:9px; border-radius:3px; margin-top:8px; flex-shrink:0; background:var(--sky,#48c0f0); }
.mn-sub.c1 .dot{ background:#48c0f0; } .mn-sub.c2 .dot{ background:#66c586; } .mn-sub.c3 .dot{ background:#18a8d8; } .mn-sub.c5 .dot{ background:#c79ae0; } .mn-sub.c6 .dot{ background:#60c0f0; }
.mn-sub.p1 .dot{ background:#e8584c; } .mn-sub.p2 .dot{ background:#48c0f0; }
.mn-t { display:block; font-size:18px; font-weight:600; color:var(--ink); line-height:1.3; }
.mn-d { display:block; margin-top:3px; font-family:'JetBrains Mono',monospace; font-size:14px; letter-spacing:.02em; color:var(--dim); }
.mn-link { display:block; padding:13px 4px; font-size:19px; font-weight:600; color:var(--ink); border-bottom:1px solid var(--line); }
.mn-link.active { color:var(--ac2,#6fd0f5); }
.mn-cta { display:block; margin-top:18px; text-align:center; background:var(--grad); color:#04222a !important; font-weight:700; font-size:17px; padding:16px 20px; border-radius:8px; }
html.menu-lock, html.menu-lock body { overflow:hidden; }
@media (max-width:1100px){ .burger { display:inline-flex; } }
@media (max-width:760px){
  header .navlinks .cta { display:none; }
  .brand img { height:46px; }
  .nav { padding-top:12px; padding-bottom:12px; }
  .mnav { max-height:calc(100vh - 70px); max-height:calc(100dvh - 70px); }
}
@media (min-width:761px){ .mn-cta { display:none; } }
@media (prefers-reduced-motion:reduce){ .burger span { transition:none; } }
