/* Stowe Holdings: the Enterprise top bar, header, menus and footer, for pages that don't load
   enterprise.css (videos.html, which keeps its own portal.css for the page body).
   The rules are the same as enterprise.css; tokens, buttons and resets are scoped to the shell,
   so nothing here leaks into the page's own content. Keep in step with enterprise.css. */
.util, .hdr, .cta-band, .ftr {
  --ink: #0b1626; --slate: #3c4a5e; --mute: #6b778a; --line: #dde2ea; --line-dk: rgba(255, 255, 255, 0.12);
  --accent: #1f5bff; --accent-hi: #3d74ff; --accent-ink: #fff; --ok: #18a058;
  --gold: #d8b979; --gold-ink: #94712d; --grad: linear-gradient(90deg, #d8b979, #ead7ab);
  --edge: clamp(20px, 4vw, 120px); --wrap: min(calc(100vw - 2 * var(--edge)), 2200px);
  --gut: clamp(20px, 2vw, 40px); --head: 72px; --cta-bg: var(--accent);
  --mono: "JetBrains Mono", ui-monospace, monospace;
  font-family: "Inter", "Helvetica Neue", Arial, sans-serif; line-height: 1.6;
  -webkit-font-smoothing: antialiased;
}
.util *, .hdr *, .cta-band *, .ftr * { box-sizing: border-box; }
.util .wrap, .hdr .wrap, .cta-band .wrap, .ftr .wrap { width: var(--wrap); max-width: none; margin: 0 auto; padding-left: 0; padding-right: 0; }
.hdr h4, .ftr h3, .ftr p, .cta-band p { margin: 0; letter-spacing: normal; }
.hdr ul, .hdr ol, .ftr ul, .ftr ol { margin: 0; padding: 0; list-style: none; }
.hdr img, .ftr img { display: block; max-width: 100%; height: auto; }
.hdr button { font-family: inherit; }

/* Buttons (scoped) */
.hdr .btn, .cta-band .btn {
  display: inline-flex; align-items: center; justify-content: space-between; gap: 28px;
  min-height: 52px; padding: 0 22px;
  border: 1px solid transparent; border-radius: 2px;
  font-size: 15px; font-weight: 600; letter-spacing: 0.005em; text-decoration: none;
  transition: background 0.18s, border-color 0.18s, color 0.18s; cursor: pointer; box-shadow: none; transform: none;
}
.hdr .btn .arr, .cta-band .btn .arr { transition: transform 0.18s; }
.hdr .btn:hover .arr, .cta-band .btn:hover .arr { transform: translateX(3px); }
.hdr .btn-primary { background: var(--accent); color: var(--accent-ink); }
.hdr .btn-primary:hover { background: var(--accent-hi); }
.cta-band .btn-line { background: transparent; }

/* =========================================================
   Utility bar + header
   ========================================================= */
.util { background: var(--ink); color: #b7c1d1; font-size: 13px; }
.util .wrap { display: flex; align-items: center; justify-content: space-between; gap: 16px; min-height: 38px; }
.util a { color: #fff; text-decoration: none; }
.util a:hover { color: var(--accent-hi); }
.util-l, .util-r { display: flex; align-items: center; gap: 24px; }
.util-l span { color: var(--gold); font-family: var(--mono); font-size: 11.5px; letter-spacing: 0.12em; text-transform: uppercase; }
.dot { display: inline-block; width: 6px; height: 6px; margin-right: 8px; background: var(--ok); border-radius: 50%; vertical-align: middle; }

.hdr {
  position: sticky; top: 0; z-index: 50;
  background: rgba(255, 255, 255, 0.97);
  border-bottom: 1px solid var(--line);
}
.hdr .wrap { display: flex; align-items: center; gap: 40px; height: var(--head); }
.brand { flex: none; display: block; }
.brand img { height: 40px; width: auto; }
.nav { display: flex; align-items: stretch; height: 100%; gap: 0; margin-right: auto; }
.nav > a, .nav-trig {
  display: flex; align-items: center; gap: 6px; height: 100%; white-space: nowrap;
  padding: 0 clamp(10px, 0.9vw, 18px);
  border: 0; background: none; cursor: pointer;
  font-size: 14.5px; font-weight: 500; color: var(--ink); text-decoration: none;
  box-shadow: inset 0 -2px 0 transparent; transition: box-shadow 0.18s, color 0.18s;
}
.nav > a:hover, .nav-trig:hover, .nav-trig[aria-expanded="true"] { color: var(--accent); box-shadow: inset 0 -2px 0 var(--accent); }
.nav-trig svg { transition: transform 0.18s; }
.nav-trig[aria-expanded="true"] svg { transform: rotate(180deg); }
.hdr-act { display: flex; align-items: center; gap: 20px; }
.hdr-act .txt { font-size: 14.5px; font-weight: 500; color: var(--ink); text-decoration: none; white-space: nowrap; }
.hdr-act .txt:hover { color: var(--accent); }
.hdr-act .btn { min-height: 44px; gap: 14px; white-space: nowrap; }
.burger { display: none; width: 44px; height: 44px; border: 1px solid var(--line); background: #fff; border-radius: 2px; cursor: pointer; }
.burger span, .burger span::before, .burger span::after { display: block; width: 18px; height: 1.5px; margin: 0 auto; background: var(--ink); position: relative; content: ""; }
.burger span::before { position: absolute; top: -6px; }
.burger span::after { position: absolute; top: 6px; }

/* Mega panels: white, ruled, full width */
.mega {
  position: absolute; left: 0; right: 0; top: 100%;
  background: #fff; border-bottom: 1px solid var(--line);
  box-shadow: 0 24px 40px -24px rgba(11, 22, 38, 0.25);
  display: none;
}
.mega.open { display: block; }
.mega .wrap { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); height: auto; gap: 0; align-items: stretch; }
.mega-col { padding: 32px 32px 36px 0; border-right: 1px solid var(--line); }
.mega-col + .mega-col { padding-left: 32px; }
.mega-col h4 { font-family: var(--mono); font-size: 11.5px; font-weight: 500; letter-spacing: 0.14em; text-transform: uppercase; color: var(--mute); margin-bottom: 14px; }
.mega-col a { display: block; padding: 10px 0; border-top: 1px solid var(--line); text-decoration: none; }
.mega-col a:first-of-type { border-top: 0; }
.mega-col b { display: block; font-size: 15px; font-weight: 600; color: var(--ink); }
.mega-col small { display: block; font-size: 13px; color: var(--mute); }
.mega-col a:hover b { color: var(--accent); }
.soon { font-family: var(--mono); font-size: 10px; font-weight: 500; letter-spacing: 0.1em; text-transform: uppercase; color: var(--mute); border: 1px solid var(--line); padding: 1px 5px; margin-left: 6px; vertical-align: 2px; }
.mega-feat { display: flex; flex-direction: column; justify-content: flex-end; gap: 8px; padding: 32px; background: var(--ink); color: #fff; text-decoration: none; position: relative; overflow: hidden; }
.mega-feat img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; opacity: 0.35; }
.mega-feat > * { position: relative; }
.mega-feat em { font-family: var(--mono); font-style: normal; font-size: 11.5px; letter-spacing: 0.14em; text-transform: uppercase; color: #b7c1d1; }
.mega-feat b { font-size: 20px; font-weight: 500; line-height: 1.25; letter-spacing: -0.01em; }
.mega-feat span { font-size: 14px; font-weight: 600; color: #fff; }
.mega-feat:hover span { text-decoration: underline; }

/* Mobile sheet */
.sheet { display: none; }

/* =========================================================
   Footer
   ========================================================= */
.cta-band { background: var(--cta-bg); color: #fff; }
.cta-band .wrap { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 24px; min-height: 120px; padding: 32px 0; }
.cta-band p { font-size: clamp(22px, 1.8vw, 32px); font-weight: 500; letter-spacing: -0.02em; }
.cta-band .btns { display: flex; flex-wrap: wrap; gap: 12px; }
.cta-band .btn-w { background: #fff; color: var(--ink); }
.cta-band .btn-w:hover { background: var(--ink); color: #fff; }
.cta-band .btn-o { border-color: rgba(255, 255, 255, 0.6); color: #fff; }
.cta-band .btn-o:hover { border-color: #fff; background: rgba(255, 255, 255, 0.1); }

.ftr { background: #070f1b; color: #9aa7bb; font-size: 14.5px; border-top: 3px solid transparent; border-image: var(--grad) 1; }
.ftr-cols { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); gap: var(--gut); padding: clamp(56px, 5vw, 96px) 0 48px; }
.ftr-brand { grid-column: 1 / span 4; display: flex; flex-direction: column; gap: 20px; }
.ftr-brand img { width: 180px; height: auto; }
.ftr-brand p { max-width: 26em; }
.ftr-col { grid-column: span 2; }
.ftr-col.wide { grid-column: span 4; }
.ftr h3 { font-family: var(--mono); font-size: 11.5px; font-weight: 500; letter-spacing: 0.14em; text-transform: uppercase; color: var(--gold); margin-bottom: 18px; }
.ftr li + li { margin-top: 10px; }
.ftr a { color: #dfe5ee; text-decoration: none; }
.ftr a:hover { color: #fff; text-decoration: underline; }
.ftr-loc { display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); border-top: 1px solid var(--line-dk); }
.ftr-loc div { padding: 24px 20px 28px 0; font-size: 13.5px; line-height: 1.55; }
.ftr-loc div + div { padding-left: 20px; border-left: 1px solid var(--line-dk); }
.ftr-loc b { display: block; margin-bottom: 6px; color: #fff; font-weight: 600; font-size: 14px; }
.ftr-note { padding: 16px 0; border-top: 1px solid var(--line-dk); font-size: 13px; }
.ftr-bot { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 12px 24px; padding: 20px 0 28px; border-top: 1px solid var(--line-dk); font-size: 13px; }
.ftr-bot nav { display: flex; flex-wrap: wrap; gap: 6px 20px; }


@media (max-width: 1280px) {
  .nav > a, .nav-trig { padding: 0 8px; font-size: 14px; }
  .hdr-act .txt { display: none; }
  .hdr .wrap { gap: 24px; }
  .ftr-loc { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .ftr-loc div:nth-child(4) { padding-left: 0; border-left: 0; }
  .ftr-loc div:nth-child(n+4) { border-top: 1px solid var(--line-dk); }
}
@media (max-width: 1100px) {
  .nav, .hdr-act .txt { display: none; }
  .burger { display: block; }
  .hdr .wrap { justify-content: space-between; }
  .hdr-act { margin-left: auto; }
  .sheet.open {
    display: block; position: absolute; left: 0; right: 0; top: 100%;
    max-height: calc(100vh - var(--head)); overflow-y: auto;
    background: #fff; border-bottom: 1px solid var(--line); padding: 8px var(--edge) 32px;
  }
  .sheet h4 { margin: 20px 0 6px; font-family: var(--mono); font-size: 11px; font-weight: 500; letter-spacing: 0.14em; text-transform: uppercase; color: var(--mute); }
  .sheet a { display: block; padding: 12px 0; border-bottom: 1px solid var(--line); color: var(--ink); text-decoration: none; font-weight: 500; }
  .sheet .btn { margin-top: 20px; width: 100%; color: #fff; border: 0; }
  .ftr-brand { grid-column: 1 / -1; }
  .ftr-col, .ftr-col.wide { grid-column: span 4; }
}
@media (max-width: 720px) {
  .util-l span { display: none; }
  .util .wrap { justify-content: flex-end; }
  .util-r { gap: 16px; }
  .util-r a { white-space: nowrap; }
  .brand img { height: 34px; }
  .hdr-act .btn { display: none; }
  .ftr-col, .ftr-col.wide { grid-column: 1 / -1; }
  .ftr-loc { grid-template-columns: 1fr; }
  .ftr-loc div, .ftr-loc div + div { padding: 18px 0; border-left: 0; }
  .ftr-loc div + div { border-top: 1px solid var(--line-dk); }
  /* paired buttons stack full width, and the footer's last line clears the Zola button */
  .ix-ctas .btn, .fix-intro .btns .btn, .cta-band .btns .btn { flex: 1 1 100%; }
  .ftr-bot { padding-bottom: 96px; }
}
