/* ============================================================================
   reinwok.com — site.css
   Loaded on EVERY page. Design tokens, reset, typography, layout containers,
   buttons, header/nav/dropdowns, logo, page-header, marketing sections,
   legal-page typography, footer, search overlay (Pagefind), image lightbox,
   back-to-top, animations.

   Consolidated from: index.html inline CSS (marketing system, most complete),
   common/logo-styles.css, the header/footer halves of
   documentation/docs-styles.css + monday/monday-docs.css + blog/blog-styles.css,
   and the shared parts of contact/eula/privacy-policy inline CSS.
   ============================================================================ */

/* ---------------------------------------------------------------- Tokens -- */
/* Palette: a deep-cyan brand family on near-white cyan-tinted surfaces, deep
   navy ink and a mint CTA accent. Every text/background pair below is >= 4.5:1
   (see migration/style-reference.md §8 — the reference site's own cyan and grey
   text fail AA, so we use darkened variants for anything that carries text and
   keep the light cyan for fills, borders and decoration only). */
:root {
  /* Brand — deep cyan. --primary-color is safe as text on white AND as a fill
     under white text (5.56:1 both ways). --primary-light is decoration only. */
  --primary-color: #0C7288;
  --primary-dark: #095A6B;
  --primary-light: #4FC3D9;
  --primary-tint: #E8F6F9;

  /* Mint CTA accent — always dark ink on the light fill, never white. */
  --cta-color: #2FDCB4;
  --cta-hover: #22CBA4;
  --cta-border: #1FC9A2;
  --cta-ink: #04302A;
  --cta-glow: rgba(47, 220, 180, 0.40);
  --cta-soft: #C9F7EA;
  --cta-soft-ink: #0B5A48;

  --secondary-color: #137A5B;
  --secondary-dark: #0B5A48;
  --accent-color: #5C49BE;

  /* Ink */
  --text-primary: #0A2233;
  --text-secondary: #3F5A6B;
  --text-light: #5A7080;

  /* Surfaces — white, a faint cyan band, a hero wash, and a calm navy footer. */
  --bg-primary: #FFFFFF;
  --bg-secondary: #EFF6F8;
  --bg-tint: #F4FBFC;
  --bg-dark: #1F323E;
  --border-color: #DCE8EC;
  --border-strong: #C3D6DC;

  /* Layered, low-opacity navy shadows (reference uses navy, never pure black). */
  --shadow-sm: 0 1px 2px rgba(10, 34, 51, 0.06), 0 1px 3px rgba(10, 34, 51, 0.08);
  --shadow-md: 0 4px 12px 4px rgba(10, 34, 51, 0.04), 0 1px 6px rgba(10, 34, 51, 0.10);
  --shadow-lg: 0 12px 28px rgba(10, 34, 51, 0.10), 0 2px 8px rgba(10, 34, 51, 0.06);
  --shadow-xl: 0 24px 56px rgba(10, 34, 51, 0.14), 0 4px 12px rgba(10, 34, 51, 0.06);

  /* Gradients. Both --gradient-primary stops are dark enough to carry white
     text AND to be used as .gradient-text on white. 222deg is the reference's
     signature angle; the soft pairs are tint-to-tint, so they take dark ink. */
  --gradient-primary: linear-gradient(222deg, #095A6B 0%, #0E7A91 100%);
  --gradient-secondary: linear-gradient(222deg, #0F5C3E 0%, #1B8F5F 100%);
  --gradient-accent: linear-gradient(222deg, #4B3AA8 0%, #6E5AC9 100%);
  --gradient-hero: linear-gradient(180deg, #F4FBFC 0%, #FFFFFF 100%);
  --gradient-mesh-cyan: linear-gradient(222deg, #A6DCE4 0%, #EAFAFC 100%);
  --gradient-mesh-blue: linear-gradient(222deg, #BFDCF5 0%, #F4F9FD 100%);
  --gradient-mesh-violet: linear-gradient(222deg, #D6D3F0 0%, #F8F8FD 100%);

  /* Radii — small on controls and cards, generous on panels and hero art. */
  --radius-sm: 8px;
  --radius-md: 12px;
  --radius-lg: 16px;
  --radius-xl: 24px;
  --radius-pill: 999px;

  /* Type scale (reference: headings 600, generous 1.6-1.75 body leading). */
  --fs-h1: 54px;
  --fs-h2: 40px;
  --fs-h3: 28px;
  --fs-lead: 18px;
  --fs-body: 16px;
  --fs-sm: 14px;
  --fs-xs: 12px;
  --fw-heading: 600;

  --font-sans: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
  --font-mono: 'SF Mono', SFMono-Regular, Monaco, Menlo, Consolas, monospace;
}

/* Optional per-product accent. The docs layout may set data-product="<id>" on
   <body> (or on .docs-layout) to restore each app's original brand color.
   Purely additive — everything works without it. */
/* Each accent is darkened to the same contrast floor as --primary-color, so a
   product page stays readable and still sits inside the new palette. Both
   gradient stops carry white text. */
[data-product="monday-workhub"] {
  --primary-color: #5145E0;
  --primary-dark: #4035C4;
  --primary-light: #8E86F2;
  --primary-tint: #EFEEFD;
  --gradient-primary: linear-gradient(222deg, #4035C4 0%, #5F52EA 100%);
}
[data-product="jira-reminders"] {
  --primary-color: #157F53;
  --primary-dark: #0F6541;
  --primary-light: #4FC08D;
  --primary-tint: #E9F7F0;
  --gradient-primary: linear-gradient(222deg, #0F5C3E 0%, #178054 100%);
}
[data-product="jira-label-manager"] {
  --primary-color: #5C49BE;
  --primary-dark: #4A3A9C;
  --primary-light: #9186DC;
  --primary-tint: #F1EFFA;
  --gradient-primary: linear-gradient(222deg, #4A3A9C 0%, #6E5AC9 100%);
}
[data-product="jira-risk-assessment"] {
  --primary-color: #C0392B;
  --primary-dark: #9C2D22;
  --primary-light: #E8796B;
  --primary-tint: #FBEEEC;
  --gradient-primary: linear-gradient(222deg, #9C2D22 0%, #C0392B 100%);
}

/* ------------------------------------------------------------ Reset/base -- */
* { margin: 0; padding: 0; box-sizing: border-box; }

html {
  scroll-behavior: smooth;
  overflow-x: clip;
}

body {
  font-family: var(--font-sans);
  color: var(--text-primary);
  line-height: 1.6;
  /* Faint cyan page canvas: docs, blog, contact and the legal pages all rely
     on it. Marketing sections on the homepage paint their own background. */
  background: var(--bg-secondary);
}

/* `height: auto` is required because the build stamps intrinsic width/height
   attributes on every content <img> (CLS fix): without it, an image scaled down
   by `max-width: 100%` would keep its full attribute height and distort. */
img { max-width: 100%; height: auto; }

/* ------------------------------------------------------------ Containers -- */
.container {
  max-width: 1400px;
  margin: 0 auto;
  padding: 0 24px;
}

.container-wide {
  max-width: 1400px;
  margin: 0 auto;
  padding: 0 24px;
}

/* Marketing / legal content stays at the narrower 1200px measure. */
.hero .container,
.trusted-by .container,
.product-section .container,
.cta-section .container,
.content-section .container {
  max-width: 1200px;
}

.gradient-text {
  background: var(--gradient-primary);
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
}

/* --------------------------------------------------------------- Buttons -- */
.btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  padding: 13px 26px;
  border-radius: var(--radius-sm);
  font-weight: 600;
  font-size: 16px;
  line-height: 1.5;
  text-decoration: none;
  transition: transform 0.2s ease, box-shadow 0.2s ease, background 0.2s ease,
    border-color 0.2s ease, color 0.2s ease;
  border: 1px solid transparent;
  cursor: pointer;
}

/* Primary CTA: mint fill with deep-navy ink (11.4:1). Never white-on-mint. */
.btn-primary {
  background: var(--cta-color);
  border-color: var(--cta-border);
  color: var(--cta-ink);
  box-shadow: 0 1px 6px var(--cta-glow), 0 1px 3px rgba(10, 34, 51, 0.10);
}
.btn-primary:hover {
  background: var(--cta-hover);
  transform: translateY(-2px);
  box-shadow: 0 6px 18px var(--cta-glow), 0 2px 6px rgba(10, 34, 51, 0.12);
}

.btn-secondary {
  background: white;
  color: var(--primary-dark);
  border-color: var(--border-strong);
  box-shadow: var(--shadow-sm);
}
.btn-secondary:hover {
  border-color: var(--primary-color);
  background: var(--primary-tint);
  transform: translateY(-2px);
  box-shadow: var(--shadow-md);
}

.btn-white {
  background: white;
  color: var(--primary-dark);
  border-color: white;
  box-shadow: var(--shadow-md);
}
.btn-white:hover {
  background: var(--primary-tint);
  border-color: var(--primary-tint);
  transform: translateY(-2px);
  box-shadow: var(--shadow-lg);
}

.btn-outline {
  background: transparent;
  color: var(--primary-dark);
  border: 1px solid var(--primary-color);
}
.btn-outline:hover {
  background: var(--primary-tint);
  transform: translateY(-2px);
  box-shadow: var(--shadow-sm);
}

/* On a dark band (.cta-section, .page-header) the outline/secondary variants
   must flip to light-on-dark or they vanish. */
.cta-section .btn-outline,
.cta-section .btn-secondary {
  background: rgba(255, 255, 255, 0.08);
  color: #FFFFFF;
  border-color: rgba(255, 255, 255, 0.55);
  box-shadow: none;
}
.cta-section .btn-outline:hover,
.cta-section .btn-secondary:hover {
  background: rgba(255, 255, 255, 0.16);
  border-color: #FFFFFF;
}

/* Visible keyboard focus for every interactive element in the shared chrome. */
a:focus-visible,
button:focus-visible,
summary:focus-visible,
[tabindex]:focus-visible {
  outline: 3px solid var(--primary-color);
  outline-offset: 2px;
  border-radius: 4px;
}
.cta-section a:focus-visible,
.cta-section button:focus-visible,
.page-header a:focus-visible,
footer a:focus-visible,
footer button:focus-visible {
  outline-color: #FFFFFF;
}

@media (prefers-reduced-motion: reduce) {
  .btn,
  .btn:hover { transform: none; transition: none; }
}

/* --- Overrides for inline styles baked into src/index.html ------------------
   Those buttons/badges hard-code the old Atlassian palette inline, so they win
   over the cascade. Two problems this fixes, from CSS only:
   1. .btn-primary now uses dark ink on a light mint fill; an inline gradient
      background overrides only the fill, leaving dark text on a saturated
      gradient. Normalizing them to the mint CTA also makes every primary
      button on the site identical.
   2. Three inline accent colors land just under 4.5:1 on the new near-white
      section band. The selectors are pinned to the exact inline value so
      nothing else is touched. */
.product-section .btn-primary[style*="linear-gradient"],
.product-section .btn-primary[style*="--gradient"] {
  background: var(--cta-color) !important;
  border-color: var(--cta-border) !important;
  color: var(--cta-ink) !important;
}
.product-section .btn-outline[style*="#6161FF"] {
  color: #5145E0 !important;
  border-color: #5145E0 !important;
}
.product-section .product-badge[style*="#6161FF"] { color: #5145E0 !important; }
.product-section .feature-icon[style*="#6161FF"] { color: #5145E0 !important; }
.product-section h4 span[style*="background: #36B37E"] { background: #178054 !important; }

/* Header call-to-action pills (replace the inline styles that
   common/components.js used to emit on the last two nav items). */
.nav-contact-btn,
.nav-cta-btn {
  padding: 9px 18px;
  font-size: 14px;
  border-radius: var(--radius-sm);
  font-weight: 600 !important;
  text-decoration: none;
  transition: transform 0.2s ease, box-shadow 0.2s ease, background 0.2s ease,
    border-color 0.2s ease, color 0.2s ease;
  white-space: nowrap;
  line-height: 1.5;
}
/* Quiet ghost — a soft cyan chip, not a second competing outline button. */
.nav-contact-btn {
  background: var(--primary-tint);
  color: var(--primary-dark) !important;
  border: 1px solid transparent;
}
.nav-contact-btn:hover {
  background: #DCF0F6;
  border-color: var(--primary-light);
}
/* The one prominent CTA in the bar: mint fill, deep-navy ink. */
.nav-cta-btn {
  background: var(--cta-color);
  color: var(--cta-ink) !important;
  border: 1px solid var(--cta-border);
  box-shadow: 0 1px 6px var(--cta-glow), 0 1px 3px rgba(10, 34, 51, 0.10);
}
.nav-cta-btn:hover {
  background: var(--cta-hover);
  border-color: var(--cta-hover);
  transform: translateY(-1px);
  box-shadow: 0 5px 14px var(--cta-glow), 0 2px 6px rgba(10, 34, 51, 0.12);
}
.nav-links a.nav-contact-btn::after,
.nav-links a.nav-cta-btn::after { display: none; }

/* ---------------------------------------------------------------- Header -- */
/* Scoped to #header (the one site chrome bar partials/header.njk emits), never
   the bare `header` element: content templates use <header> too — e.g.
   layouts/blog.njk's <header class="blog-article-header"> — and a bare selector
   made that in-page hero position:fixed, z-index:1000, which covered the real
   site header and dropped the article body out from under it. */
#header {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  background: rgba(255, 255, 255, 0.88);
  backdrop-filter: saturate(180%) blur(14px);
  -webkit-backdrop-filter: saturate(180%) blur(14px);
  border-bottom: 1px solid transparent;
  z-index: 1000;
  box-shadow: 0 1px 0 rgba(10, 34, 51, 0.06);
  transition: box-shadow 0.3s ease, background 0.3s ease;
}
/* Browsers without backdrop-filter get a solid bar rather than a see-through one. */
@supports not ((backdrop-filter: blur(1px)) or (-webkit-backdrop-filter: blur(1px))) {
  #header { background: #FFFFFF; }
}

#header.scrolled {
  background: rgba(255, 255, 255, 0.94);
  box-shadow: 0 6px 16px rgba(10, 34, 51, 0.07), 0 1px 0 rgba(10, 34, 51, 0.06);
}

/* `:where(#header)` keeps this off content <nav>s (e.g. the .breadcrumb inside
   .blog-article-header) while contributing zero specificity, so `.container`'s
   `padding: 0 24px` still wins over the padding below exactly as it does today.
   NOTE: that means the 14px vertical padding never applies and the bar renders
   ~41px tall rather than the ~69px this rule intends — pre-existing, left as-is
   deliberately so this fix does not resize the header on all 79 pages. */
:where(#header) nav {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 14px 0;
}

/* --- Logo (from common/logo-styles.css) --- */
.logo {
  display: flex;
  align-items: center;
  gap: 12px;
  font-size: 22px;
  font-weight: 700;
  letter-spacing: -0.01em;
  color: var(--text-primary);
  text-decoration: none;
  white-space: nowrap;
  transition: opacity 0.2s ease;
}
.logo:hover { opacity: 0.75; }

.logo-image {
  height: 40px;
  width: auto;
  object-fit: contain;
}

.logo-icon-img {
  width: 36px;
  height: 36px;
  object-fit: contain;
  border-radius: 6px;
}

/* The generated gradient square is only a fallback for a missing logo image. */
.logo-icon {
  width: 40px;
  height: 40px;
  background: var(--gradient-primary);
  border-radius: 10px;
  display: flex;
  align-items: center;
  justify-content: center;
  color: white;
  font-size: 20px;
}
.logo .logo-image + .logo-icon,
.logo .logo-image ~ .logo-icon { display: none; }

/* --- Nav links --- */
.nav-links {
  display: flex;
  gap: 32px;
  align-items: center;
  list-style: none;
}

.nav-links a {
  color: var(--text-primary);
  text-decoration: none;
  font-weight: 500;
  font-size: 15px;
  transition: color 0.2s ease;
  position: relative;
}
.nav-links a:hover { color: var(--primary-color); }

.nav-links > li > a:not(.nav-contact-btn):not(.nav-cta-btn)::after {
  content: '';
  position: absolute;
  bottom: -4px;
  left: 0;
  width: 0;
  height: 2px;
  background: var(--primary-color);
  transition: width 0.3s ease;
}
.nav-links > li > a:not(.nav-contact-btn):not(.nav-cta-btn):hover::after { width: 100%; }

/* --- Header dropdowns --- */
.dropdown { position: relative; }

.dropdown-toggle {
  cursor: pointer;
  display: flex;
  align-items: center;
  gap: 6px;
  color: var(--text-primary);
  font-weight: 500;
  font-size: 15px;
  transition: color 0.2s ease;
}
.dropdown:hover > .dropdown-toggle,
.dropdown-toggle[aria-expanded="true"] { color: var(--primary-color); }

.dropdown-content {
  position: absolute;
  top: 100%;
  left: 0;
  background: #FFFFFF;
  border-radius: var(--radius-lg);
  border: 1px solid var(--border-color);
  box-shadow: 0 4px 12px 4px rgba(10, 34, 51, 0.04), 0 8px 24px rgba(10, 34, 51, 0.12);
  padding: 8px;
  min-width: 250px;
  opacity: 0;
  visibility: hidden;
  transform: translateY(-8px);
  transition: opacity 0.2s ease, transform 0.2s ease, visibility 0.2s ease;
  margin-top: 10px;
}
.dropdown:hover .dropdown-content,
.dropdown-content.active {
  opacity: 1;
  visibility: visible;
  transform: translateY(0);
}

.dropdown-content a {
  display: block;
  padding: 10px 14px;
  border-radius: var(--radius-sm);
  font-size: 14px;
  font-weight: 500;
  color: var(--text-primary);
  transition: background 0.15s ease, color 0.15s ease;
}
.dropdown-content a:hover {
  background: var(--primary-tint);
  color: var(--primary-dark);
}
.dropdown-content a::after { display: none; }

/* Product/documentation dropdown with icon + description rows */
.docs-nav-dropdown {
  min-width: 380px !important;
  padding: 10px !important;
}
.docs-nav-dropdown a {
  display: flex !important;
  align-items: center !important;
  gap: 14px !important;
  padding: 11px 12px !important;
}

.docs-nav-icon {
  width: 36px;
  height: 36px;
  border-radius: var(--radius-sm);
  object-fit: contain;
  flex-shrink: 0;
}

.docs-nav-icon-wrap {
  width: 36px;
  height: 36px;
  border-radius: var(--radius-sm);
  background: var(--primary-tint);
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  font-size: 16px;
  color: var(--primary-color);
}

.docs-nav-text { display: flex; flex-direction: column; }
/* Bumped from 13/11px — these were the least legible text on the site. */
.docs-nav-text strong {
  font-size: 15px;
  font-weight: 600;
  color: var(--text-primary);
  line-height: 1.35;
}
.docs-nav-text span {
  font-size: 13px;
  color: var(--text-light);
  line-height: 1.4;
  margin-top: 2px;
}

/* --- Mobile menu toggle (shown < 968px; site.js may toggle .open) --- */
.mobile-menu-toggle {
  display: none;
  font-size: 24px;
  background: none;
  border: none;
  color: var(--text-primary);
  cursor: pointer;
}

/* ----------------------------------------------------------- Page header -- */
.page-header {
  padding: 132px 0 56px;
  background: var(--gradient-primary);
  color: white;
  text-align: center;
}
.page-header h1 {
  font-size: 44px;
  font-weight: var(--fw-heading);
  line-height: 1.15;
  letter-spacing: -0.02em;
  margin-bottom: 14px;
}
.page-header p {
  font-size: var(--fs-lead);
  line-height: 1.65;
  opacity: 0.94;
  max-width: 720px;
  margin: 0 auto;
}

/* Breadcrumb — rendered inside .page-header by layouts/docs.njk, and inside
   .content-header on a few legacy pages. */
.breadcrumb {
  display: flex;
  align-items: center;
  gap: 8px;
  flex-wrap: wrap;
  font-size: 13px;
  color: var(--text-light);
}
.breadcrumb a {
  color: var(--primary-color);
  text-decoration: none;
  font-weight: 500;
}
.breadcrumb a:hover { text-decoration: underline; }
.breadcrumb .separator { opacity: 0.6; }

/* Inside the gradient hero the breadcrumb must be light, not primary-blue. */
.page-header .breadcrumb,
.blog-article-header .breadcrumb {
  justify-content: center;
  font-size: 14px;
  color: rgba(255, 255, 255, 0.85);
  margin-bottom: 16px;
}
.page-header .breadcrumb a,
.blog-article-header .breadcrumb a {
  color: #FFFFFF;
  font-weight: 600;
  text-decoration: none;
  opacity: 0.85;
  transition: opacity 0.2s ease;
}
.page-header .breadcrumb a:hover,
.blog-article-header .breadcrumb a:hover {
  opacity: 1;
  text-decoration: underline;
}
.page-header .breadcrumb span,
.blog-article-header .breadcrumb span { color: rgba(255, 255, 255, 0.75); }

/* ------------------------------------------- Plain page wrapper (page.njk) -- */
.page-content {
  padding-top: 120px; /* clears the fixed header when there is no .page-header */
  padding-bottom: 80px;
}
.page-header + .page-content { padding-top: 40px; }

/* --------------------------------------------------------- Hero (index) -- */
.hero {
  padding: 148px 0 96px;
  background: var(--gradient-hero);
  position: relative;
  overflow-x: clip;
}
/* Soft cyan mesh blooms, the reference's hero treatment. */
.hero::before {
  content: '';
  position: absolute;
  top: -55%;
  right: -18%;
  width: 820px;
  height: 820px;
  background: radial-gradient(circle, rgba(79, 195, 217, 0.22) 0%, transparent 68%);
  border-radius: 50%;
  pointer-events: none;
}
.hero::after {
  content: '';
  position: absolute;
  bottom: -45%;
  left: -14%;
  width: 640px;
  height: 640px;
  background: radial-gradient(circle, rgba(47, 220, 180, 0.14) 0%, transparent 68%);
  border-radius: 50%;
  pointer-events: none;
}

.hero-content { text-align: center; position: relative; z-index: 1; }

.hero-badge {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  background: white;
  padding: 8px 18px;
  border-radius: var(--radius-pill);
  border: 1px solid var(--border-color);
  font-size: 14px;
  font-weight: 600;
  color: var(--primary-dark);
  margin-bottom: 24px;
  box-shadow: var(--shadow-sm);
}
.hero-badge i { color: var(--secondary-color); }

.hero h1 {
  font-size: 58px;
  font-weight: var(--fw-heading);
  line-height: 1.12;
  margin-bottom: 22px;
  color: var(--text-primary);
  letter-spacing: -0.025em;
}

.hero p {
  font-size: 20px;
  color: var(--text-secondary);
  max-width: 720px;
  margin: 0 auto 40px;
  line-height: 1.7;
}

.hero-cta {
  display: flex;
  gap: 16px;
  justify-content: center;
  flex-wrap: wrap;
}

/* --- "Documentation" menu that sits inside the hero CTA row (index.html) --- */
.docs-dropdown { position: relative; display: inline-block; }
.docs-dropdown-toggle { cursor: pointer; }

.docs-dropdown-menu {
  position: absolute;
  top: calc(100% + 12px);
  left: 50%;
  transform: translateX(-50%) translateY(-10px);
  background: white;
  border-radius: 16px;
  box-shadow: 0 12px 40px rgba(0, 0, 0, 0.15), 0 0 0 1px rgba(0, 0, 0, 0.05);
  padding: 12px;
  min-width: 380px;
  opacity: 0;
  visibility: hidden;
  transition: all 0.25s ease;
  z-index: 100;
}
.docs-dropdown-menu.active {
  opacity: 1;
  visibility: visible;
  transform: translateX(-50%) translateY(0);
}

.docs-dropdown-menu a {
  display: flex;
  align-items: center;
  gap: 14px;
  padding: 12px 14px;
  border-radius: 12px;
  text-decoration: none;
  transition: background 0.2s ease;
}
.docs-dropdown-menu a:hover { background: var(--bg-secondary); }

.docs-menu-icon {
  width: 42px;
  height: 42px;
  border-radius: 10px;
  display: flex;
  align-items: center;
  justify-content: center;
  color: white;
  font-size: 18px;
  flex-shrink: 0;
}

.docs-menu-text { display: flex; flex-direction: column; }
.docs-menu-text strong {
  font-size: 15px;
  font-weight: 600;
  color: var(--text-primary);
  line-height: 1.3;
}
.docs-menu-text span {
  font-size: 13px;
  color: var(--text-light);
  line-height: 1.3;
  margin-top: 2px;
}

/* ------------------------------------------------------------ Trusted by -- */
.trusted-by {
  padding: 60px 0;
  background: white;
  border-bottom: 1px solid var(--border-color);
}
.trusted-by-content { text-align: center; }
.trusted-by h3 {
  font-size: 14px;
  font-weight: 600;
  color: var(--text-light);
  text-transform: uppercase;
  letter-spacing: 0.1em;
  margin-bottom: 32px;
}

.clients-grid {
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 48px;
  flex-wrap: wrap;
  opacity: 0.6;
}

.client-logo {
  height: 40px;
  width: auto;
  filter: grayscale(100%);
  transition: all 0.3s ease;
}
.client-logo:hover {
  filter: grayscale(0%);
  opacity: 1;
  transform: scale(1.1);
}

/* ------------------------------------------------------ Product sections -- */
/* 96px vertical rhythm, matching the reference's uniform section spacing. */
.product-section {
  padding: 96px 0;
  position: relative;
  background: var(--bg-primary);
}
.product-section:nth-child(even) { background: var(--bg-secondary); }

.product-header { text-align: center; margin-bottom: 64px; }

.product-badge {
  display: inline-block;
  padding: 6px 16px;
  background: var(--primary-tint);
  border-radius: var(--radius-pill);
  font-size: 13px;
  font-weight: 600;
  color: var(--primary-dark);
  text-transform: uppercase;
  letter-spacing: 0.06em;
  margin-bottom: 16px;
}

.product-header h2 {
  font-size: var(--fs-h2);
  font-weight: var(--fw-heading);
  line-height: 1.18;
  letter-spacing: -0.02em;
  margin-bottom: 18px;
  color: var(--text-primary);
}
.product-header p {
  font-size: var(--fs-lead);
  line-height: 1.7;
  color: var(--text-secondary);
  max-width: 720px;
  margin: 0 auto;
}

.product-icon {
  width: 112px;
  height: 112px;
  margin: 0 auto 30px;
  background: var(--gradient-primary);
  border-radius: var(--radius-xl);
  display: flex;
  align-items: center;
  justify-content: center;
  box-shadow: var(--shadow-lg);
}
.product-icon img { width: 70px; height: 70px; }

/* --- Marketing feature cards (scoped so the docs .feature-card is safe) --- */
.features-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(320px, 1fr));
  gap: 32px;
  margin-top: 60px;
}

/* Card pattern: white fill + 1px tinted border + layered navy shadow. */
.features-grid .feature-card {
  background: white;
  padding: 30px;
  border-radius: var(--radius-lg);
  border: 1px solid var(--border-color);
  box-shadow: var(--shadow-sm);
  transition: transform 0.25s ease, box-shadow 0.25s ease, border-color 0.25s ease;
  position: relative;
  overflow: hidden;
}
.features-grid .feature-card::before {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  width: 3px;
  height: 0;
  background: var(--gradient-primary);
  transition: height 0.3s ease;
}
.features-grid .feature-card:hover {
  transform: translateY(-4px);
  box-shadow: var(--shadow-lg);
  border-color: var(--primary-light);
}
.features-grid .feature-card:hover::before { height: 100%; }

.features-grid .feature-card h4 {
  font-size: 19px;
  font-weight: var(--fw-heading);
  line-height: 1.35;
  margin-bottom: 10px;
  color: var(--text-primary);
}
.features-grid .feature-card p {
  color: var(--text-secondary);
  line-height: 1.7;
  font-size: var(--fs-body);
}

.feature-icon {
  width: 52px;
  height: 52px;
  background: var(--primary-tint);
  border-radius: var(--radius-md);
  display: flex;
  align-items: center;
  justify-content: center;
  margin-bottom: 20px;
  font-size: 22px;
  color: var(--primary-color);
}

/* --------------------------------------------- Full-bleed CTA (marketing) -- */
.cta-section {
  padding: 96px 0;
  background: var(--gradient-primary);
  color: white;
  text-align: center;
  position: relative;
  overflow: hidden;
}
.cta-section::before {
  content: '';
  position: absolute;
  top: -50%;
  left: -10%;
  width: 500px;
  height: 500px;
  background: rgba(255, 255, 255, 0.05);
  border-radius: 50%;
}
.cta-section::after {
  content: '';
  position: absolute;
  bottom: -50%;
  right: -10%;
  width: 600px;
  height: 600px;
  background: rgba(255, 255, 255, 0.05);
  border-radius: 50%;
}

.cta-content { position: relative; z-index: 1; }
.cta-section h2 {
  font-size: var(--fs-h2);
  font-weight: var(--fw-heading);
  line-height: 1.18;
  letter-spacing: -0.02em;
  margin-bottom: 18px;
}
.cta-section p {
  font-size: 20px;
  margin-bottom: 40px;
  opacity: 0.95;
  max-width: 600px;
  margin-left: auto;
  margin-right: auto;
}

/* ------------------------------------------- Legal / long-form text pages -- */
.content-section { padding: 80px 0; }

.content-wrapper {
  max-width: 900px;
  margin: 0 auto;
  background: white;
  border-radius: var(--radius-lg);
  border: 1px solid var(--border-color);
  padding: 56px;
  box-shadow: var(--shadow-md);
}

.intro-text {
  font-size: 18px;
  line-height: 1.8;
  color: var(--text-secondary);
  margin-bottom: 48px;
  padding-bottom: 32px;
  border-bottom: 2px solid var(--bg-secondary);
}

.policy-section { margin-bottom: 48px; }
.policy-section h2 {
  font-size: 24px;
  font-weight: 700;
  color: var(--text-primary);
  margin-bottom: 16px;
  display: flex;
  align-items: center;
  gap: 12px;
}
.policy-section p {
  font-size: 16px;
  line-height: 1.8;
  color: var(--text-secondary);
}
.policy-section ul {
  margin-top: 12px;
  padding-left: 24px;
  color: var(--text-secondary);
  font-size: 16px;
  line-height: 2;
}

.section-number {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 36px;
  height: 36px;
  background: var(--gradient-primary);
  color: white;
  border-radius: 8px;
  font-size: 18px;
  font-weight: 700;
  flex-shrink: 0;
}

.last-updated {
  background: var(--bg-secondary);
  padding: 24px;
  border-radius: 12px;
  margin-top: 48px;
  text-align: center;
}
.last-updated p { color: var(--text-secondary); font-size: 14px; }

/* ---------------------------------------------------------------- Footer -- */
/* Calm navy footer: small uppercase column heads, light-weight muted links
   (all >= 5.2:1 on the navy), a quiet legal strip. */
footer {
  background: var(--bg-dark);
  color: white;
  padding: 64px 0 28px;
}

.footer-content {
  display: grid;
  grid-template-columns: 2fr 1fr 1fr 1fr;
  gap: 56px;
  margin-bottom: 44px;
}

.footer-brand h3 {
  font-size: 20px;
  font-weight: var(--fw-heading);
  letter-spacing: -0.01em;
  margin-bottom: 14px;
}
.footer-brand p {
  color: #B3C4CD;
  line-height: 1.7;
  font-size: 15px;
  font-weight: 300;
  margin-bottom: 24px;
  max-width: 42ch;
}

.footer-links h4 {
  font-size: var(--fs-xs);
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.09em;
  margin-bottom: 18px;
  color: #9CB0BC;
}
.footer-links ul { list-style: none; }
.footer-links ul li { margin-bottom: 11px; }
.footer-links a {
  color: #B3C4CD;
  text-decoration: none;
  transition: color 0.2s ease;
  font-size: 15px;
  font-weight: 300;
  line-height: 1.5;
}
.footer-links a:hover { color: #FFFFFF; }

.footer-bottom {
  padding-top: 28px;
  border-top: 1px solid rgba(255, 255, 255, 0.11);
  display: flex;
  justify-content: space-between;
  align-items: center;
  flex-wrap: wrap;
  gap: 20px;
}
.footer-bottom p { color: #9CB0BC; font-size: 13px; font-weight: 300; }
.footer-bottom a { color: #B3C4CD; }

.social-links { display: flex; gap: 12px; }
.social-links a {
  width: 38px;
  height: 38px;
  background: rgba(255, 255, 255, 0.08);
  border: 1px solid rgba(255, 255, 255, 0.12);
  border-radius: var(--radius-sm);
  display: flex;
  align-items: center;
  justify-content: center;
  color: #D3E0E5;
  text-decoration: none;
  transition: background 0.2s ease, color 0.2s ease, transform 0.2s ease,
    border-color 0.2s ease;
}
.social-links a:hover {
  background: var(--primary-light);
  border-color: var(--primary-light);
  color: #04302A;
  transform: translateY(-2px);
}

/* ------------------------------------------------- Search triggers/overlay -- */
/* Sidebar trigger (docs sidebar) */
.sidebar-search {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 10px 12px;
  margin-bottom: 12px;
  border: 1px solid var(--border-color);
  border-radius: 8px;
  cursor: pointer;
  color: var(--text-light);
  font-size: 13.5px;
  transition: all 0.2s ease;
  background: var(--bg-secondary);
}
.sidebar-search:hover {
  border-color: var(--primary-color);
  color: var(--text-secondary);
  background: white;
}
.sidebar-search i { font-size: 13px; flex-shrink: 0; }
.sidebar-search span { flex: 1; }
.sidebar-search kbd {
  font-family: inherit;
  font-size: 11px;
  padding: 2px 6px;
  border: 1px solid var(--border-color);
  border-radius: 4px;
  background: white;
  color: var(--text-light);
  line-height: 1;
}

/* Header trigger (monday-style) */
.search-trigger {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 8px 14px;
  background: var(--bg-secondary);
  border: 1px solid var(--border-color);
  border-radius: 8px;
  cursor: pointer;
  font-size: 14px;
  color: var(--text-light);
  font-family: inherit;
  transition: all 0.2s ease;
  min-width: 200px;
}
.search-trigger:hover {
  border-color: var(--primary-color);
  color: var(--text-secondary);
  box-shadow: var(--shadow-sm);
}
.search-trigger i { font-size: 13px; color: var(--text-light); }
.search-trigger-text { flex: 1; text-align: left; }
.search-trigger-kbd {
  font-size: 11px;
  padding: 2px 6px;
  background: white;
  border: 1px solid var(--border-color);
  border-radius: 4px;
  font-family: inherit;
  color: var(--text-light);
  line-height: 1;
}

/* Overlay + modal (monday variant kept — it is a superset with transitions) */
.search-overlay {
  position: fixed;
  inset: 0;
  z-index: 9999;
  background: rgba(9, 30, 66, 0.6);
  backdrop-filter: blur(4px);
  display: flex;
  align-items: flex-start;
  justify-content: center;
  padding-top: 12vh;
  opacity: 0;
  visibility: hidden;
  transition: opacity 0.2s ease, visibility 0.2s ease;
}
.search-overlay.active { opacity: 1; visibility: visible; }

.search-modal {
  position: relative;
  background: white;
  border-radius: 16px;
  box-shadow: 0 16px 48px rgba(0, 0, 0, 0.2);
  width: 90%;
  max-width: 640px;
  max-height: 70vh;
  display: flex;
  flex-direction: column;
  overflow: hidden;
  transform: scale(0.98) translateY(-8px);
  transition: transform 0.2s ease;
}
.search-overlay.active .search-modal { transform: scale(1) translateY(0); }

.search-modal-header {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 12px;
  padding: 12px 16px 0;
}

/* "Search all docs" scope toggle (partials/search-overlay.njk); site.js
   un-hides it on docs pages where a product pre-filter is active. */
.search-scope {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  margin-right: auto;
  font-size: 12px;
  color: var(--text-secondary);
  cursor: pointer;
  user-select: none;
}
.search-scope[hidden] { display: none; }
.search-scope input { accent-color: var(--primary-color); cursor: pointer; }
.search-modal-close {
  position: absolute;
  top: 14px;
  right: 14px;
  z-index: 2;
}
.search-modal-header kbd,
.search-modal-kbd {
  font-size: 11px;
  padding: 4px 10px;
  background: var(--bg-secondary);
  border: 1px solid var(--border-color);
  border-radius: 6px;
  font-family: inherit;
  color: var(--text-light);
  cursor: pointer;
  line-height: 1.2;
  transition: background 0.2s ease;
}
.search-modal-header kbd:hover,
.search-modal-kbd:hover { background: var(--border-color); }

/* --- Pagefind UI overrides --- */
.pagefind-ui {
  --pagefind-ui-scale: 0.9;
  --pagefind-ui-primary: var(--primary-color);
  --pagefind-ui-text: var(--text-primary);
  --pagefind-ui-background: white;
  --pagefind-ui-border: var(--border-color);
  --pagefind-ui-tag: var(--bg-secondary);
  --pagefind-ui-border-width: 1px;
  --pagefind-ui-border-radius: 8px;
  --pagefind-ui-font: var(--font-sans);
}

#pagefindSearch { overflow-y: auto; padding: 0 4px 8px; }

.search-modal .pagefind-ui__form {
  position: relative;
  border-bottom: 1px solid var(--border-color);
}
.search-modal .pagefind-ui__form::before {
  content: "";
  position: absolute;
  left: 16px;
  top: 50%;
  transform: translateY(-50%);
  width: 16px;
  height: 16px;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%237A869A' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='11' cy='11' r='8'/%3E%3Cline x1='21' y1='21' x2='16.65' y2='16.65'/%3E%3C/svg%3E");
  background-size: contain;
  background-repeat: no-repeat;
  z-index: 1;
}

.search-modal .pagefind-ui__search-input {
  font-size: 16px !important;
  padding: 16px 50px 16px 44px !important;
  border-radius: 16px 16px 0 0 !important;
  border: none !important;
  background: white !important;
  width: 100% !important;
  height: auto !important;
}
.search-modal .pagefind-ui__search-input:focus {
  outline: none !important;
  box-shadow: none !important;
}
.search-modal .pagefind-ui__search-input::placeholder { color: var(--text-light); }

.search-modal .pagefind-ui__search-clear {
  position: absolute !important;
  top: 50% !important;
  transform: translateY(-50%) !important;
  right: 56px !important;
  padding: 4px 8px !important;
  font-size: 13px !important;
  color: var(--text-light) !important;
  background: var(--bg-secondary) !important;
  border: 1px solid var(--border-color) !important;
  border-radius: 6px !important;
  cursor: pointer !important;
  z-index: 2;
}
.search-modal .pagefind-ui__search-clear:hover {
  background: var(--border-color) !important;
  color: var(--text-secondary) !important;
}

.search-modal .pagefind-ui__results-area {
  overflow-y: auto;
  max-height: calc(70vh - 60px);
  padding: 4px 12px 12px;
}
.search-modal .pagefind-ui__message {
  padding: 8px 4px !important;
  color: var(--text-light) !important;
  font-size: 13px !important;
}

.search-modal .pagefind-ui__result {
  padding: 14px 12px !important;
  border-radius: 10px !important;
  border-top: 1px solid var(--border-color) !important;
  border-bottom: none !important;
}
.search-modal .pagefind-ui__result:first-child { border-top: none !important; }
.search-modal .pagefind-ui__result:hover { background: var(--bg-secondary); }

.search-modal .pagefind-ui__result-link {
  color: var(--primary-color) !important;
  font-size: 16px !important;
  font-weight: 600 !important;
  text-decoration: none !important;
}
.search-modal .pagefind-ui__result-link:hover { text-decoration: underline !important; }

.search-modal .pagefind-ui__result-excerpt {
  font-size: 13px !important;
  color: var(--text-secondary) !important;
  line-height: 1.6 !important;
  margin-top: 4px !important;
}
.search-modal .pagefind-ui__result-excerpt mark {
  background: rgba(12, 114, 136, 0.14) !important;
  color: var(--primary-color) !important;
  border-radius: 2px;
  padding: 1px 3px;
  font-weight: 600;
}

.search-modal .pagefind-ui__result-nested {
  padding: 6px 0 6px 8px !important;
  border-left: 2px solid var(--border-color) !important;
  margin-left: 4px !important;
  border-top: none !important;
}
.search-modal .pagefind-ui__result-nested .pagefind-ui__result-link {
  font-size: 14px !important;
  font-weight: 500 !important;
}
.search-modal .pagefind-ui__result-nested .pagefind-ui__result-excerpt {
  font-size: 12.5px !important;
}

.search-modal .pagefind-ui__result-thumb { display: none !important; }

.search-modal .pagefind-ui__button {
  background: var(--primary-color) !important;
  border-radius: 8px !important;
  color: white !important;
  font-weight: 600 !important;
  margin-top: 8px !important;
  padding: 10px 20px !important;
  border: none !important;
  cursor: pointer;
  transition: background 0.2s ease;
}
.search-modal .pagefind-ui__button:hover { background: var(--primary-dark) !important; }

/* -------------------------------------------------------- Image lightbox -- */
/* Two markup variants exist in the old site; both are supported so the layout
   can emit either .doc-image-lightbox (common/components.js) or
   .image-lightbox (monday/monday-components.js). */
@keyframes doc-image-lightbox-fade {
  from { opacity: 0; }
  to { opacity: 1; }
}

.doc-image-lightbox {
  position: fixed;
  inset: 0;
  background: rgba(15, 20, 36, 0.88);
  display: flex;
  align-items: center;
  justify-content: center;
  z-index: 9999;
  padding: 16px;
  cursor: zoom-out;
  animation: doc-image-lightbox-fade 140ms ease;
}
img.is-zoomable { cursor: zoom-in; }
img.is-zoomable:focus-visible { outline: 3px solid var(--primary-color, #0C7288); outline-offset: 3px; }
.doc-image-lightbox__fullscreen { right: 64px; font-size: 18px; }
.doc-image-lightbox:fullscreen { padding: 0; background: #0b0f1a; }
.doc-image-lightbox:fullscreen .doc-image-lightbox__img { border-radius: 0; box-shadow: none; }
.doc-image-lightbox__img {
  width: auto;
  height: auto;
  max-width: 100%;
  max-height: 100%;
  object-fit: contain;
  border-radius: 8px;
  box-shadow: 0 24px 60px rgba(0, 0, 0, 0.6);
  cursor: zoom-out;
  transform: none;
}
.doc-image-lightbox__close {
  position: absolute;
  top: 16px;
  right: 16px;
  width: 40px;
  height: 40px;
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.12);
  color: #FFFFFF;
  font-size: 22px;
  line-height: 1;
  border: none;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: background 120ms ease;
}
.doc-image-lightbox__close:hover { background: rgba(255, 255, 255, 0.22); }
.doc-image-lightbox__close:focus { outline: 2px solid #FFFFFF; outline-offset: 2px; }

body.doc-image-lightbox-open,
body.image-lightbox-open { overflow: hidden; }

.image-lightbox {
  position: fixed;
  inset: 0;
  background: rgba(15, 20, 30, 0.92);
  z-index: 10000;
  display: none;
  align-items: center;
  justify-content: center;
  padding: 40px;
  cursor: zoom-out;
  opacity: 0;
  transition: opacity 0.2s ease;
}
.image-lightbox.active { display: flex; opacity: 1; }
.image-lightbox img {
  max-width: 100%;
  max-height: 100%;
  object-fit: contain;
  border-radius: 8px;
  box-shadow: 0 20px 60px rgba(0, 0, 0, 0.5);
  cursor: default;
}
.image-lightbox-close {
  position: absolute;
  top: 20px;
  right: 24px;
  width: 44px;
  height: 44px;
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.15);
  border: none;
  color: #fff;
  font-size: 22px;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: background 0.15s ease;
}
.image-lightbox-close:hover { background: rgba(255, 255, 255, 0.28); }

/* ----------------------------------------------------------- Back to top -- */
.back-to-top {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  color: var(--primary-color);
  text-decoration: none;
  font-size: 14px;
  font-weight: 600;
  margin-left: auto;
  padding: 8px 16px;
  border-radius: 8px;
  transition: all 0.2s ease;
}
.back-to-top:hover { background: var(--bg-secondary); }

/* ------------------------------------------------------------ Animations -- */
@keyframes fadeInUp {
  from { opacity: 0; transform: translateY(30px); }
  to { opacity: 1; transform: translateY(0); }
}
.fade-in-up { animation: fadeInUp 0.8s ease forwards; }

.reveal {
  opacity: 0;
  transform: translateY(30px);
  transition: all 0.6s ease;
}
.reveal.active { opacity: 1; transform: translateY(0); }

/* ------------------------------------------------------------ Responsive -- */
@media (max-width: 968px) {
  .nav-links {
    display: none;
    position: absolute;
    top: 100%;
    left: 0;
    right: 0;
    flex-direction: column;
    align-items: stretch;
    gap: 2px;
    padding: 12px 20px 20px;
    background: #FFFFFF;
    border-top: 1px solid var(--border-color);
    border-bottom: 1px solid var(--border-color);
    box-shadow: var(--shadow-lg);
    max-height: calc(100vh - 68px);
    overflow-y: auto;
  }
  .nav-links.open { display: flex; }
  .nav-links > li > a,
  .nav-links > li > .dropdown-toggle {
    padding: 11px 12px;
    border-radius: var(--radius-sm);
    font-size: 16px;
  }
  .nav-links > li > a:hover { background: var(--primary-tint); }
  .nav-links .dropdown-content {
    position: static;
    opacity: 1;
    visibility: visible;
    transform: none;
    box-shadow: none;
    border: none;
    border-left: 2px solid var(--border-color);
    border-radius: 0;
    min-width: 0;
    margin: 2px 0 6px 12px;
    padding: 0 0 0 6px;
  }
  .nav-links .docs-nav-dropdown { min-width: 0 !important; }
  /* Full-width CTAs at the end of the stacked menu. */
  .nav-links .nav-contact-btn,
  .nav-links .nav-cta-btn {
    display: block;
    text-align: center;
    margin-top: 6px;
    padding: 12px 18px;
    font-size: 15px;
  }

  .mobile-menu-toggle { display: block; }

  .hero h1 { font-size: 42px; }
  .hero p { font-size: 18px; }
  .product-header h2 { font-size: 36px; }
  .features-grid { grid-template-columns: 1fr; }
  .cta-section h2 { font-size: 36px; }
  .page-header h1 { font-size: 36px; }
  .content-wrapper { padding: 40px 24px; }
  .footer-content { grid-template-columns: 1fr 1fr; }
}

@media (max-width: 640px) {
  .hero h1 { font-size: 32px; }
  .hero-cta { flex-direction: column; }
  .btn { width: 100%; justify-content: center; }
  .page-header h1 { font-size: 28px; }
  .footer-content { grid-template-columns: 1fr; gap: 32px; }
  .footer-bottom { flex-direction: column; gap: 8px; text-align: center; }

  .docs-dropdown-menu {
    min-width: 300px;
    left: 0;
    transform: translateX(0) translateY(-10px);
  }
  .docs-dropdown-menu.active { transform: translateX(0) translateY(0); }

  .search-trigger { min-width: auto; padding: 8px 10px; }
  .search-trigger-text,
  .search-trigger-kbd { display: none; }
  .search-modal { margin: 0 12px; max-height: 80vh; }
  .search-overlay { padding-top: 5vh; }

  .image-lightbox { padding: 16px; }
  .image-lightbox-close { top: 12px; right: 12px; width: 40px; height: 40px; }
}

/* ----------------------------------------------------------------- Print -- */
@media print {
  #header,
  #footer,
  .search-overlay,
  .mobile-menu-toggle { display: none !important; }
}
