/* ==========================================================================
   Simian Website — Global Stylesheet
   ========================================================================== */

/* ---------- Design tokens ------------------------------------------------- */
:root {
  /* Brand colors (exact, from  variables) */
  --simian-blue: #043f57;   /* "Simian Blue" — primary dark brand color      */
  --color-2:     #5eb3e4;   /* "Color 2" — light blue accent                 */

  /* Approximate accents — TODO: confirm exact hex from  when quota frees */
  --simian-green: #34b78f;  /* placeholder green used in logo / "Learn More"  */
  --accent-green: #4afa60;  /* bright CTA green ( "See Reels in Action")  */
  --ink:          #000000;
  --white:        #ffffff;
  --bg:           #ffffff;
  --muted:        #6b7a80;

  /* Typography — family */
  --font-sans: "Basis Grotesque Pro", "Helvetica Neue", Arial, "Segoe UI",
    system-ui, sans-serif;

  /* Type scale (real px =  ÷ 2) */
  --fs-h1:   67.5px;  /*  "Simian H1" 135 */
  --fs-h2:   55px;    /*  "Simian H2" 110 */
  --fs-h3:   37.5px;  /*  "Simian H3" 75  */
  --fs-h4:   32.5px;  /*  "Simian H4" 65  */
  --fs-body: 24px;    /*  "Simian Body" 48 */
  --fs-body-sm: 18px; /*  "Simian Body - Small" 36 */
  --fs-nav:  20px;    /* Nav / button text 40 */

  --weight-light: 300;
  --weight-regular: 400;
  --weight-medium: 500;   /* falls back to 400 face; heavier synthesis */
  --weight-bold: 700;     /* maps to basis-grotesque-bold-pro.woff */

  /* Layout */
  --container-max: 1450px;   /*  nav content width 2899 ÷ 2 */
  --container-pad: 60px;
  --radius-nav: 10px;        /*  20 ÷ 2 */
  --radius-pill: 100px;
}

/* ---------- Fonts --------------------------------------------------------- */
/* Basis Grotesque Pro is a COMMERCIAL font. The licensed .woff files live in
   assets/fonts/ (basis-grotesque-{light,regular,bold}-pro.woff) and are wired
   below. If you later export .woff2 versions, add them as an additional src
   before the .woff for smaller payloads. */
@font-face {
  font-family: "Basis Grotesque Pro";
  src: url("../fonts/basis-grotesque-light-pro.woff") format("woff");
  font-weight: 300;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: "Basis Grotesque Pro";
  src: url("../fonts/basis-grotesque-regular-pro.woff") format("woff");
  font-weight: 400;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: "Basis Grotesque Pro";
  src: url("../fonts/basis-grotesque-bold-pro.woff") format("woff");
  font-weight: 700;
  font-style: normal;
  font-display: swap;
}

/* ---------- Reset --------------------------------------------------------- */
*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; }
body {
  margin: 0;
  font-family: var(--font-sans);
  font-weight: var(--weight-light);
  color: var(--ink);
  /* Soft blue → white gradient that begins at the very top of the page
     (behind the top bar + nav), fading to white through the hero. */
  background-color: var(--bg);
  /*  home Background (3673:457): a clean cool-gray -> white vertical fade,
     NO radial glow. Top ~#d4dee2 (≈17% toward #043f57), white by ~640px. */
  background-image:
    linear-gradient(180deg, #d4dee2 0, #e8eef1 180px, #ffffff 230px);
  background-repeat: no-repeat;
  line-height: 1.2;
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}
/* ---------- Dark-hero pages ---------------------------------------------
   CONVENTION (be mindful going forward): pages whose hero sits on a dark
   gradient must NOT paint that gradient on the hero section itself — that
   leaves a light band between the AI bar and the hero (the header floats on
   the light <body>). Instead, mirror the home page: the gradient lives on
   <body> so it is anchored to the very top of the page, behind the top bar
   and the floating nav card, then fades to white through the hero.

   Usage:  set  $body_class = 'hero-dark hero-dark--<page>';  in the page and
   keep the hero section background transparent. --hero-white = the pixel
   distance from the page top where the gradient reaches white; set it to
   roughly header(136px) + hero height for each page.                        */
body.hero-dark {
  background-color: var(--white);
  /* Solid #043f57 hero with a HARD edge into the next (white) section — the
     gradient holds teal to the section boundary then drops to white in 2px. */
  background-image: linear-gradient(180deg,
      #043f57 0,
      #043f57 calc(var(--hero-white, 760px) - 2px),
      var(--white) var(--hero-white, 760px));
  background-repeat: no-repeat;
}
/* Enterprise + Ecosystem heroes: same teal #043f57 -> light blue-gray #a4b9c2
   gradient as About, then a HARD edge into the white section below. */
body.hero-dark--ent {
  --hero-white: 756px;
  background-image: linear-gradient(180deg,
      #043f57 0,
      #a4b9c2 calc(var(--hero-white) - 2px),
      var(--white) var(--hero-white));
}
body.hero-dark--eco {
  --hero-white: 626px;
  background-image: linear-gradient(180deg,
      #043f57 0,
      #a4b9c2 calc(var(--hero-white) - 2px),
      var(--white) var(--hero-white));
}
body.hero-dark--ms  {
  --hero-white: 760px;
  /*  MS hero (3673:773): teal at top fading to white, no #001720/#7fa0ac band */
  background-image: linear-gradient(180deg,
      #043f57 0, #2c6178 250px, #93b2c1 520px, var(--white) var(--hero-white));
}
/* About hero ( ABOUT_Desktop): teal #043f57 -> light blue-gray #a4b9c2
   gradient (NOT solid), then a HARD edge into the white section. */
body.hero-dark--about {
  /* The About hero owns its gradient (see .about-hero) so the teal always covers
     the hero at ANY width instead of a fixed hard-edge that stranded content on
     narrow desktops. The body only needs teal behind the top bar + nav, then white. */
  background-image: linear-gradient(180deg, #043f57 0, #043f57 260px, var(--white) 260px);
}
/* Enterprise "Everything You Need to Run at Scale" — subtle blue tint -> white ( 3673:1175). */
.ent-features { background: linear-gradient(180deg, #d4dee3 0, var(--white) 261px); background-repeat: no-repeat; }
/* Customers hero ( 3673:7602): black -> #043f57 teal, held dark to the
   hero bottom, then a HARD edge into the white quote section (no soft fade). */
body.hero-dark--customers {
  --hero-white: 720px;
  background-image: linear-gradient(180deg,
      #000000 0,
      #043f57 340px,
      #043f57 706px,
      var(--white) 706px);
}
body.hero-dark--thankyou { --hero-white: 620px; }
/* Content template (legal / privacy / GDPR): dark #001720 -> teal gradient
   anchored to the very top of the page, fading to white where the article body
   begins (just below the page title). */
body.hero-dark--content {
  --hero-white: 304px;
  background-image: linear-gradient(180deg,
      #001720 0,
      #043f57 200px,
      #043f57 calc(var(--hero-white) - 2px),
      var(--white) var(--hero-white));
}
/* Comparison hero: teal at top (behind nav) fading to white, matching the
   COMPARISON-* design overlay (from-white ~44% -> #043f57 at top). */
body.hero-dark--compare {
  --hero-white: 900px;
  background-image: linear-gradient(180deg,
      #043f57 0,
      #2c6178 300px,
      #93b2c1 620px,
      var(--white) var(--hero-white));
}
/* Resources hero is its own solid block: teal at top -> black at bottom,
   then a hard cut to white where the "Fits" section begins. */
body.hero-dark--resources {
  --hero-white: 1400px;
  background-image: linear-gradient(180deg,
      #06506b 0,
      #043f57 300px,
      #072a38 760px,
      #01090d calc(var(--hero-white) - 1px),
      var(--white) var(--hero-white));
}

img, svg, video { display: block; max-width: 100%; }
a { color: inherit; text-decoration: none; }
button { font: inherit; cursor: pointer; }
h1, h2, h3, h4, p { margin: 0; }
ul { margin: 0; padding: 0; list-style: none; }

/* ---------- Typography helpers ------------------------------------------- */
.h1 { font-size: var(--fs-h1); font-weight: 300; line-height: 1; }
.h2 { font-size: var(--fs-h2); font-weight: 300; line-height: 1; }
.h3 { font-size: var(--fs-h3); font-weight: 300; line-height: 1; }
.h4 { font-size: var(--fs-h4); font-weight: 300; line-height: 1; }
.body { font-size: var(--fs-body); line-height: 1.2; }
.body-sm { font-size: var(--fs-body-sm); line-height: 1.3; }

/* ---------- Layout -------------------------------------------------------- */
.container {
  width: 100%;
  max-width: var(--container-max);
  margin-inline: auto;
  padding-inline: var(--container-pad);
}

/* ==========================================================================
   AI Top Bar
    node 3673:483 — full-width dark bar, centered white text,
   green "Learn More" link.
   ========================================================================== */
.topbar {
  background: var(--simian-blue);
  color: var(--white);
  text-align: center;
  font-size: 15px;
  font-weight: 300;
  padding: 9px 16px;
}
.topbar a {
  color: var(--accent-green);   /*  "Learn More." = #4afa60 */
  font-weight: var(--weight-regular);
  margin-left: 6px;
}
.topbar a:hover { text-decoration: underline; }

/* ==========================================================================
   Header / Nav
    node 3673:463 — white rounded bar, soft shadow, logo left,
   links + Free Trial pill right.
   ========================================================================== */
.site-header {
  position: sticky;
  top: 0;
  z-index: 100;
  background: transparent;
  padding: 12px var(--container-pad);
}
.nav {
  position: relative;
  max-width: var(--container-max);
  margin-inline: auto;
  background: var(--white);
  border-radius: var(--radius-nav);
  box-shadow: 0 0 20px rgba(0, 0, 0, 0.10);
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 16px 30px;
  gap: 24px;
}
.nav__logo { display: flex; align-items: center; }
.nav__logo img { height: 44px; width: auto; }   /*  logo 98 ÷ 2 ≈ 49, trimmed for optical whitespace */
.nav__logo-fallback {           /* shown until real logo asset is added */
  font-size: 26px;
  font-weight: 400;
  color: var(--simian-blue);
  letter-spacing: -0.5px;
}
.nav__links {
  display: flex;
  align-items: center;
  gap: 34px;
}
.nav__links a {
  font-size: var(--fs-nav);
  font-weight: 400;
  color: var(--ink);
}
.nav__links a:hover { color: var(--simian-blue); }
.nav__cta {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: var(--simian-blue);
  color: var(--white);
  font-size: var(--fs-nav);
  font-weight: 400;
  border-radius: var(--radius-pill);
  padding: 9px 18px;      /* snug pill to match design (~115px wide) */
  min-height: 43px;
}
.nav__cta:hover { background: #06576f; color: var(--white); }
/* Beat `.nav__links a` specificity so the pill / mega-CTA text stays white */
.nav__links a.nav__cta,
.nav__links a.nav__cta:hover,
.nav__links a.mega__cta,
.nav__links a.mega__cta:hover { color: var(--white); }

/* The mega-menu trigger is a <button> styled to match the text links */
.nav__mega-trigger {
  font-size: var(--fs-nav);
  font-weight: 400;
  color: var(--ink);
  background: none;
  border: 0;
  padding: 0;
  display: inline-flex;
  align-items: center;
  gap: 7px;
  cursor: pointer;
}
.nav__mega-trigger::after {
  content: "";
  width: 8px; height: 8px;
  border-right: 2px solid currentColor;
  border-bottom: 2px solid currentColor;
  transform: translateY(-2px) rotate(45deg);
  transition: transform .2s ease;
}
.nav__mega-trigger:hover { color: var(--simian-blue); }
.nav__item--mega[data-open="true"] .nav__mega-trigger,
.nav__item--mega:hover .nav__mega-trigger { color: var(--simian-blue); }
.nav__item--mega[data-open="true"] .nav__mega-trigger::after,
.nav__item--mega:hover .nav__mega-trigger::after { transform: translateY(1px) rotate(-135deg); }

/* ==========================================================================
   Products mega-menu ( PRODUCT NAV 3673:7460)
   Full-width white panel below the nav with 4 product cards + CTA.
   ========================================================================== */
.mega {
  position: absolute;
  /* attach to the bottom of the nav card (overlap a touch so there's no seam),
     square top corners so it reads as one continuous panel with the nav */
  top: calc(100% - 10px);
  left: 0;
  right: 0;
  background: var(--white);
  border-radius: 0 0 18px 18px;
  padding: 36px 26px 26px;
  display: flex;
  flex-direction: column;
  z-index: 200;
  opacity: 0;
  visibility: hidden;
  transform: translateY(-8px);
  transition: opacity .18s ease, transform .18s ease, visibility .18s ease;
}
/* Shadow on sides + bottom only (top clipped so it reads as one panel with the nav) */
/* Hover-bridge across the gap between the trigger and the panel, so the menu
   doesn't flicker/close when the mouse moves slowly down into it. */
.mega::before { content: ""; position: absolute; left: 0; right: 0; top: -18px; height: 18px; }
.mega::after {
  content: "";
  position: absolute;
  inset: 0;
  border-radius: inherit;
  box-shadow: 0 26px 54px rgba(2, 30, 43, 0.18);
  clip-path: inset(0 -80px -80px -80px);
  z-index: -1;
  pointer-events: none;
}
.nav__item--mega:hover .mega,
.nav__item--mega:focus-within .mega,
.nav__item--mega[data-open="true"] .mega {
  opacity: 1;
  visibility: visible;
  transform: none;
}
.mega__grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 22px;
}
.mega-card {
  border-radius: 20px;
  padding: 44px 30px 36px;
  min-height: 300px;
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  color: var(--white);
  transition: transform .2s ease, box-shadow .2s ease;
}
.mega-card:hover { transform: translateY(-4px); box-shadow: 0 16px 30px rgba(0,0,0,0.22); }
.mega-card__logo { height: 54px; display: inline-flex; align-items: center; margin-bottom: 36px; }
.mega-card__logo img { height: 100%; width: auto; display: block; }
.mega-card__logo[data-name]::after { content: attr(data-name); font-size: 24px; font-weight: 400; color: var(--white); }
.mega-card__desc {
  font-size: var(--fs-body-sm);
  font-weight: var(--weight-light);
  line-height: 1.32;
  color: rgba(255,255,255,0.92);
}
.mega-card--simian { background: linear-gradient(180deg, #001720 0%, var(--simian-blue) 100%); }
.mega-card--lite   { background: linear-gradient(180deg, #0f6f7d 0%, #1a9aad 100%); }
.mega-card--reelio { background: linear-gradient(180deg, #232c33 17%, #384c70 100%); }
.mega-card--howler { background: linear-gradient(180deg, #000000 0%, #666666 100%); }
.mega__cta { align-self: center; margin: 30px 0 4px; }

/* Mobile nav toggle (hidden on desktop) */
.nav__toggle {
  display: none;
  flex-direction: column;
  gap: 5px;
  background: none;
  border: 0;
  padding: 8px;
}
.nav__toggle span {
  display: block;
  width: 26px;
  height: 2px;
  background: var(--simian-blue);
  transition: transform .25s ease, opacity .25s ease;
}

/* ==========================================================================
   Buttons (shared)
    pill button: bg #043f57, white text, radius 100, Basis Grotesque Regular.
   ========================================================================== */
.btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: var(--fs-nav);
  font-weight: var(--weight-regular);
  border-radius: var(--radius-pill);
  padding: 12px 40px;
  min-height: 43px;
  border: 2px solid transparent;
  text-align: center;
  transition: background .2s ease, color .2s ease, border-color .2s ease;
}
.btn--primary { background: var(--simian-blue); color: var(--white); }
.btn--primary:hover { background: #06576f; color: var(--white); }
.btn--outline {
  background: transparent;
  color: var(--simian-blue);
  border-color: var(--simian-blue);
}
.btn--outline:hover { background: var(--simian-blue); color: var(--white); }
.btn--light { background: var(--white); color: var(--simian-blue); }
.btn--light:hover { background: #eef4f7; }
.btn--green { background: var(--accent-green); color: var(--simian-blue); }
.btn--green:hover { background: #37e84d; color: var(--simian-blue); }
.btn--reelio { background: #26c485; color: var(--white); }
.btn--reelio:hover { background: #1faf76; color: var(--white); }
.btn--howler { background: var(--white); color: #000; }
.btn--howler:hover { background: #ececec; color: #000; }
.btn--lite { background: #1ad4e9; color: var(--white); }
.btn--lite:hover { background: #12b6c9; color: var(--white); }

/* ==========================================================================
   HERO  ( node 3673:456)
   Centered headline + subhead + CTA, large app mockup below, soft top gradient.
   ========================================================================== */
.hero {
  position: relative;
  /* Gradient now lives on <body> so it starts at the page top. */
  background: transparent;
  padding-top: 40px;
  overflow: hidden;
}
.hero__inner {
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
}
.hero__title {
  max-width: 864px;
  letter-spacing: -0.01em;
}
.hero__sub {
  max-width: 820px;      /*  subtitle 1728 ÷ 2 ≈ 864 → 2 lines */
  margin-top: 20px;
  color: var(--ink);
  font-weight: var(--weight-light);
}
.hero__cta { margin-top: 28px; }
.hero__media {
  margin-top: 0px;
  width: 100%;
  max-width: 1261px;
}
.hero__media img,
.hero__media video {
  width: 100%;
  height: auto;
  border-radius: 18px;
}
/* Sized placeholder shown until hero-app-mockup.png is added */
.hero__media.is-empty {
  aspect-ratio: 1261 / 751;
  border-radius: 18px;
  background:
    repeating-linear-gradient(45deg, #f2f5f7 0 14px, #e9eef1 14px 28px);
  display: flex;
  align-items: center;
  justify-content: center;
}
.hero__media.is-empty::after {
  content: "hero-app-mockup.png";
  color: var(--muted);
  font-size: 14px;
}

/* ==========================================================================
   CLIENTS  ( node 3673:441)
   Muted heading + 6×2 grid of greyscale client logos at 30% opacity.
   ========================================================================== */
.clients { padding: 20px 40px 72px 40px; }
/* Enterprise: keep the 'Trusted by' heading in the white section (not on the
   hero's blue-gray band) by painting the whole clients strip white. */
body.hero-dark--ent .clients { background: var(--white); }
.clients__title {
  text-align: center;
  opacity: 0.3;
  font-size: 27.5px;        /*  55px ÷2 — was wrongly using H2 (55px) */
  line-height: 1.1;
  font-weight: var(--weight-light);
  margin-bottom: 44px;
}
.clients__grid {
  margin: 0;
  padding: 0;
  list-style: none;
  display: grid;
  /* minmax(0,1fr) lets the 6 columns shrink to fit instead of overflowing the
     container to the right (1fr's implicit auto floor won't drop below the
     logo's intrinsic width). */
  grid-template-columns: repeat(6, minmax(0, 1fr));
  align-items: center;
  gap: 23.5px 97px;
}
.clients__logo {
  display: flex;
  align-items: center;
  justify-content: center;
  height: 62px;
  opacity: 1;   /* the 30% fade is already baked into the exported PNGs */
}
.clients__logo img {
  max-width: 150px;
  max-height: 62px;
  width: auto;
  height: auto;
  object-fit: contain;
  filter: grayscale(1);
  opacity: 0.55;              /* lightens the now-black logos to a soft gray */
  transition: filter .25s ease, opacity .25s ease;
}
.clients__logo img:hover {
  opacity: 1;              /* keep grayscale => hovers to solid black, not colour */
}
.clients__logo.is-empty {
  width: 100%;
  border: 1px dashed #c7d2d8;
  border-radius: 6px;
  min-height: 48px;
}
.clients__logo.is-empty::after {
  content: attr(data-label);
  color: var(--muted);
  font-size: 12px;
}

/* ==========================================================================
   Shared section helpers (used by Media, Reels, Ecosystem, etc.)
   ========================================================================== */
.section { padding: 90px 0; }
.section__head {
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
}
.section__sub {
  max-width: 900px;
  margin-top: 18px;
  font-weight: var(--weight-light);
}
.section__head .btn { margin-top: 26px; }

/* A framed product screenshot */
.shot {
  width: 100%;
  margin-inline: auto;
}
.shot img, .shot video { width: 100%; height: auto; border-radius: 14px; }
.media-video { display: block; }
.shot.is-empty {
  aspect-ratio: 16 / 9;
  border-radius: 14px;
  background: repeating-linear-gradient(45deg,#f2f5f7 0 14px,#e9eef1 14px 28px);
  display: flex; align-items: center; justify-content: center;
}
.shot.is-empty::after { content: attr(data-label); color: var(--muted); font-size: 13px; }

/* Media & Review each sit on their own soft blue→white gradient ( Rectangle 152) */
.media, .review {
  background-image: linear-gradient(180deg, #e8eff4 0, var(--white) 450px);
  background-repeat: no-repeat;
}
/* Offset anchored jumps (footer "Review & Approval" -> #review) below the sticky header. */
#review, #reels, #microsites { scroll-margin-top: 100px; }

.media__app { max-width: 1407px; margin-top: 56px; }

/* Feature cards (light rounded panels: title + copy + illustration) */
.feature-cards { display: grid; gap: 24px; margin-top: 40px; }
.feature-cards--3 { grid-template-columns: repeat(3, 1fr); }
.feature-cards--2 { grid-template-columns: repeat(2, 1fr); }
.feature-card {
  display: flex;
  flex-direction: column;
  background: #f8fafb;
  border-radius: 15px;
  padding: 40px 32px 0;
  overflow: hidden;
  text-align: center;
}
.feature-card__body { padding-bottom: 12px; }
.feature-card__body .h4 { margin-bottom: 12px; }
.feature-card__body .body-sm { color: var(--ink); font-weight: var(--weight-light); }
/* Feature-card bullet list ("Approve with confidence"): the card centres its
   text, so make the list a left-aligned inline-block (bullets sit next to their
   text), centred as a group so it reads slightly inset from the paragraph
   above, at a smaller size. */
.feature-card__body ul {
  list-style: disc;
  display: inline-block;
  text-align: left;
  margin-top: 12px;
  padding-left: 22px;
  color: var(--ink);
  font-size: 15px;
  font-weight: var(--weight-light);
  line-height: 1.4;
}
.feature-card__body li { margin-top: 6px; }
.feature-card__art {
  margin-top: auto;
  padding-top: 4px;
  height: 340px;            /* equal art zone across the row so the images line up */
  display: flex;
  align-items: center;      /* centers each image vertically within that zone */
  justify-content: center;
}
/* Fit inside the zone (keeps aspect, fills width when it can), centered by flex */
.feature-card__art img { max-width: 100%; max-height: 100%; width: auto; height: auto; }
.feature-card__art.is-empty {
  aspect-ratio: 4 / 3;
  width: 100%;
  background: repeating-linear-gradient(45deg,#eef2f4 0 14px,#e4eaed 14px 28px);
  border-radius: 10px;
}
.feature-card__art.is-empty::after { content: attr(data-label); color: var(--muted); font-size: 12px; margin: auto; }

/* ==========================================================================
   REELS  ( node 3673:282)
   Dark-blue → white gradient behind heading + tablet player; cards on white.
   ========================================================================== */
.reels {
  /*  reels gradient rect (3673:283) is a fixed 466px tall: teal -> #86a3ae
     (65.4%) -> white. Fixed px, NOT % of the (much taller) section. */
  background: linear-gradient(180deg, var(--simian-blue) 0%, #86a3ae 250px, var(--white) 350px);
  background-repeat: no-repeat;
  padding-top: 80px;
}
.section__head--light { color: var(--white); }
.section__head--light .section__sub { color: rgba(255,255,255,0.92); }
.reels__player { max-width: 1292px; margin-top: 48px; }
.reels__player img, .reels__player video { border-radius: 20px; }

/* ==========================================================================
   REEL INSIGHTS  ( node 3673:273)
   Dark rounded promo banner: copy + CTA left, eBook graphic right.
   ========================================================================== */
.reel-insights { padding: 40px 0; }
.reel-insights__panel {
  background: linear-gradient(180deg, #001720 0%, var(--simian-blue) 100%);
  border-radius: 15px;
  padding: 12px 64px;
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1.1fr);
  align-items: center;
  gap: 40px;
  overflow: hidden;
}
.reel-insights__copy { color: var(--white); }
.reel-insights__copy .body { margin: 22px 0 30px; font-weight: var(--weight-light); max-width: 520px; }
.reel-insights__art img { width: 100%; height: auto; }
.reel-insights__art.is-empty {
  aspect-ratio: 1489 / 946;
  background: rgba(255,255,255,0.06);
  border: 1px dashed rgba(255,255,255,0.3);
  border-radius: 10px;
  display: flex; align-items: center; justify-content: center;
}
.reel-insights__art.is-empty::after { content: attr(data-label); color: rgba(255,255,255,0.6); font-size: 12px; }

.review__app { max-width: 1276px; margin-top: 52px; }

/* ==========================================================================
   Promo banner (reusable) — copy + CTA left, artwork right, rounded panel.
   Used by Microsites (Review section) and Enterprise-style callouts.
   ========================================================================== */
.promo {
  margin-top: 64px;
  border-radius: 15px;
  padding: 60px 64px;
  display: grid;
  grid-template-columns: minmax(0, 0.9fr) minmax(0, 1.1fr);
  align-items: center;
  gap: 40px;
  overflow: hidden;
}
.promo__copy { color: var(--white); }
.promo__copy .body { margin: 22px 0 30px; font-weight: var(--weight-light); max-width: 520px; }
.promo__art img { width: 100%; height: auto; }
.promo__art.is-empty {
  aspect-ratio: 16 / 10;
  background: rgba(255,255,255,0.08);
  border: 1px dashed rgba(255,255,255,0.35);
  border-radius: 10px;
  display: flex; align-items: center; justify-content: center;
}
.promo__art.is-empty::after { content: attr(data-label); color: rgba(255,255,255,0.65); font-size: 12px; }
.promo--microsites {
  background: linear-gradient(160deg, #0a4a63 0%, var(--simian-blue) 45%, #7fa0ac 100%);
  padding: 0px 64px;
}

/* Ecosystem panels: artwork left, copy right */
.promo--eco { grid-template-columns: minmax(0, 1.15fr) minmax(0, 0.85fr); gap: 56px; }
.promo--reelio { background: linear-gradient(180deg, #384c70 0%, #232c33 100%); }
.promo--howler { background: linear-gradient(180deg, #6a6a6a 0%, #000000 100%); }
.promo__brand { height: 60px; width: auto; margin-bottom: 22px; }
.promo__brand--howler { height: 92px; }
.promo__title {
  font-size: var(--fs-body);
  font-weight: 700;
  line-height: 1.2;
  color: var(--white);
  margin-bottom: 12px;
}
.promo__copy .promo__title + .body { margin-top: 0; }

/* ==========================================================================
   99.999% UPTIME  ( node 3673:102)
   Intro copy left; accordion of infrastructure specs right (native <details>).
   ========================================================================== */
.uptime__grid {
  display: grid;
  grid-template-columns: minmax(0, 0.5fr) minmax(0, 1fr);
  gap: 56px;
  align-items: start;
}
.uptime__intro .h2 { line-height: 1; }
.uptime__intro .section__sub { margin-top: 20px; text-align: left; max-width: 360px; }
.uptime__list { display: flex; flex-direction: column; gap: 20px; }
.spec {
  background: #f8fafb;
  border-radius: 15px;
  padding: 0 40px;
}
.spec__row {
  display: flex;
  align-items: center;
  gap: 28px;
  padding: 30px 0;
  cursor: pointer;
  list-style: none;
  position: relative;
}
.spec__row::-webkit-details-marker { display: none; }
.spec__icon {
  width: 64px;
  display: flex;
  align-items: center;
  justify-content: center;
  flex: none;
}
.spec__icon img { width: auto; height: 46px; max-width: 64px; }
.spec__label { font-weight: var(--weight-light); }
/* Chevron */
.spec__row::after {
  content: "";
  margin-left: auto;
  width: 16px;
  height: 16px;
  border-right: 2px solid #9aa7ad;
  border-bottom: 2px solid #9aa7ad;
  transform: rotate(45deg);
  transition: transform .25s ease;
}
.spec[open] .spec__row::after { transform: rotate(-135deg); }
.spec__body { padding: 0 0 30px 92px; }
.spec__body .body-sm { color: var(--ink); font-weight: var(--weight-light); max-width: 760px; }

/* Pull quote (client logo + quote + attribution) */
.pull-quote {
  max-width: 916px;
  margin: 80px auto 0;
  text-align: center;
}
.pull-quote__logo {
  width: 172px;
  margin: 0 auto 24px;
  opacity: 0.6;
}
.pull-quote__logo img { width: 100%; height: auto; filter: grayscale(1); }
.pull-quote__logo.is-empty { aspect-ratio: 212/89; border:1px dashed #c7d2d8; border-radius:6px; }
.pull-quote__logo.is-empty::after { content: attr(data-label); font-size: 10px; color: var(--muted); }
.pull-quote__text {
  font-size: var(--fs-body);
  line-height: 1.4;
  color: rgba(0,0,0,0.5);
  font-weight: var(--weight-regular);
}
.pull-quote__cite {
  display: block;
  margin-top: 18px;
  font-style: normal;
  font-weight: 700;
  color: rgba(0,0,0,0.5);
  font-size: var(--fs-body);
}

/* ==========================================================================
   QUOTE SLIDER  ( node 3673:92)
   Centered rotating testimonials: client logo, quote, attribution, arrows.
   ========================================================================== */
.quote-slider { padding: 72px 0 90px; }
.qslider { max-width: 1024px; margin-inline: auto; text-align: center; }
.qslider__track { position: relative; }
.qslide {
  display: none;
  margin: 0;
  flex-direction: column;
  align-items: center;
}
.qslide.is-active { display: flex; }
.qslide__logo { width: 142px; margin: 0 auto 26px; opacity: 0.4; }
.qslide__logo img { width: 100%; height: auto; filter: grayscale(1); }
.qslide__logo.is-empty { aspect-ratio: 142/61; border:1px dashed #c7d2d8; border-radius:6px; }
.qslide__logo.is-empty::after { content: attr(data-label); font-size: 10px; color: var(--muted); }
.qslide__text {
  font-size: 20px;
  line-height: 1.3;
  font-weight: var(--weight-regular);
  color: rgba(0,0,0,0.35);
  max-width: 920px;
}
.qslide__cite {
  display: block;
  margin-top: 18px;
  font-style: normal;
  font-weight: 700;
  color: rgba(0,0,0,0.5);
  font-size: 20px;
}
.qslider__arrows {
  display: flex;
  justify-content: center;
  gap: 22px;
  margin-top: 40px;
}
.qslider__arrow {
  width: 44px;
  height: 44px;
  border-radius: 50%;
  border: 0;
  background: #e9edef;
  position: relative;
  transition: background .2s ease;
}
.qslider__arrow:hover { background: #d7dde0; }
.qslider__arrow::before {
  content: "";
  position: absolute;
  top: 50%;
  left: 52%;
  width: 9px;
  height: 9px;
  border-left: 2px solid #5a6b72;
  border-bottom: 2px solid #5a6b72;
  transform: translate(-50%, -50%) rotate(45deg);
}
.qslider__arrow--next::before {
  left: 48%;
  transform: translate(-50%, -50%) rotate(-135deg);
}

/* ==========================================================================
   FOOTER  ( node 3673:57)
   Light footer: Get Started CTA, 4 link columns, legal + social row.
   Subtle white → faint-blue gradient, black text.
   ========================================================================== */
.site-footer {
  background: linear-gradient(180deg, #eef3f6 0%, var(--white) 40%);
  color: var(--ink);
  padding: 80px 0 48px;
  font-weight: var(--weight-light);
}
.site-footer__cta { margin-bottom: 40px; }
.site-footer__cta .h2 { margin-bottom: 28px; }
.site-footer__cta-sub { max-width: 620px; margin: -14px 0 28px; color: var(--ink); font-size: 20px; font-weight: var(--weight-light); line-height: 1.4; }
.site-footer__cta-btns { display: flex; flex-wrap: wrap; gap: 16px; }
.site-footer__rule { border: 0; border-top: 1px solid #dfe6ea; margin: 0 0 48px; }
.site-footer__cols {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 32px;
}
.site-footer__col-title {
  font-size: var(--fs-body-sm);
  font-weight: 700;
  margin-bottom: 20px;
}
.site-footer__col ul { display: flex; flex-direction: column; gap: 12px; }
.site-footer__col a {
  font-size: var(--fs-body-sm);
  color: var(--ink);
  font-weight: var(--weight-light);
}
.site-footer__col a:hover { color: var(--simian-blue); }
.site-footer__bottom {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 24px;
  margin-top: 64px;
}
.site-footer__copy { font-size: var(--fs-body-sm); }
.site-footer__social { display: flex; gap: 20px; align-items: center; }
.site-footer__social a { color: var(--ink); display: inline-flex; }
.site-footer__social a:hover { color: var(--simian-blue); }

/* ==========================================================================
   REELS PAGE
   ========================================================================== */
/* Split hero: headline left, reel image right */
.rl-hero { padding: 40px 0 24px; overflow: hidden; }
.rl-hero__inner {
  display: grid;
  grid-template-columns: minmax(0, 0.9fr) minmax(0, 1.35fr);
  gap: 40px;
  align-items: center;
}
.rl-hero__title { max-width: 460px; letter-spacing: -0.01em; }
.rl-hero__sub { margin-top: 18px; max-width: 460px; font-weight: var(--weight-light); color: var(--muted); line-height: 1.4; }
.rl-hero__media img { width: 100%; height: auto; }

/* Live Reels — dark rounded panel with 3 reel cards */
.live-reels { padding: 40px 0; }
.live-reels__panel {
  background: linear-gradient(180deg, var(--simian-blue) 0%, #85a2ad 100%);
  border-radius: 15px;
  padding: 72px 72px 72px 80px;
  display: grid;
  grid-template-columns: minmax(0, 0.8fr) minmax(0, 1.65fr);
  gap: 52px;
  align-items: center;
}
.live-reels__intro { text-align: left; }
.live-reels__title { color: var(--white); text-align: left; margin: 0; line-height: 1.02; }
.live-reels__sub { color: rgba(255, 255, 255, 0.9); font-weight: var(--weight-light); text-align: left; margin: 22px 0 0; max-width: 400px; }
.live-reels__grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 32px;
}
.live-reel { display: block; text-align: center; }
.live-reel__thumb { display: block; border-radius: 14px; overflow: hidden; }
.live-reel__thumb img { width: 100%; height: auto; aspect-ratio: 16/9; object-fit: cover; }
.live-reel__thumb.is-empty { aspect-ratio: 16/9; background: rgba(255, 255, 255, 0.12); }
.live-reel__thumb.is-empty::after { content: ""; }
.live-reel__label {
  display: block;
  margin-top: 20px;
  color: var(--white);
  font-size: var(--fs-body-sm);
  font-weight: var(--weight-light);
}

/* Analytics composite */
.rl-analytics__art { max-width: 1000px; margin: 48px auto 0; }

/* Trending — dark gradient, MAC left + zombie card right */
.trending {
  /* fixed-px gradient (same pattern as .reels) so white lands ~466px in,
     not a % of the tall section */
  background: linear-gradient(180deg, var(--simian-blue) 0%, #597890 37%, #86a3ae 60%, #d3dee2 84%, #f2f5f7 94%, var(--white) 100%);
  background-repeat: no-repeat;
  padding: 80px 0 90px;
}
.trending__row {
  display: grid;
  grid-template-columns: minmax(0, 0.97fr) minmax(0, 1fr);
  gap: 96px;
  align-items: start;
  margin-top: 48px;
}
.trending__col { display: flex; flex-direction: column; }
/* Zombie Reel callout — HTML/CSS build (replaces the baked PNG). */
.zreel { background: linear-gradient(180deg, #2c5d72 0%, #43707f 100%); border-radius: 18px; padding: 32px 34px 34px; color: var(--white); }
.zreel__head { display: flex; align-items: center; gap: 18px; }
.zreel__num { width: 52px; height: 52px; flex: 0 0 auto; border-radius: 50%; background: #5cb3e6; color: var(--white); display: inline-flex; align-items: center; justify-content: center; font-size: 26px; font-weight: var(--weight-bold); }
.zreel__title { margin: 0; font-size: 34px; font-weight: var(--weight-bold); color: var(--white); line-height: 1; }
.zreel__stats { display: flex; flex-wrap: wrap; align-items: center; gap: 16px 20px; background: rgba(0,0,0,0.18); border-radius: 10px; padding: 12px 18px; margin-top: 26px; }
.zreel__thumb { width: 132px; height: 84px; flex: 0 0 auto; object-fit: cover; border-radius: 5px; display: block; }
.zreel__stat { display: flex; flex-direction: column; gap: 5px; }
.zreel__stat--date { margin-left: auto; }
.zreel__stat-k { font-size: 11px; letter-spacing: 0.05em; text-transform: uppercase; color: rgba(255,255,255,0.72); white-space: nowrap; }
.zreel__stat-v { font-size: 21px; font-weight: var(--weight-bold); color: var(--white); white-space: nowrap; }
.zreel__stat--date .zreel__stat-v { font-size: 18px; }
.zreel__desc { margin: 26px 0 0; font-size: var(--fs-body-sm); font-weight: var(--weight-light); line-height: 1.5; color: rgba(255,255,255,0.92); }
.trending__mac img { width: 100%; height: auto; }
.trending__card-art img { width: 100%; height: auto; }
.trending__copy {
  margin-top: 8px;
  color: var(--white);
  font-size: var(--fs-body-sm);
  font-weight: var(--weight-light);
  line-height: 1.3;
}

/* Reel.io block: promo panel + 4 feature cards */
.promo__title-lg { color: var(--white); margin: 12px 0 0; }
.promo__copy .promo__title-lg + .body { margin-top: 18px; }
.reelio-block__features {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 42px;
  margin-top: 42px;
}
.reelio-feat {
  background: linear-gradient(180deg, #384c6f 0%, #232c34 100%);
  border-radius: 15px;
  padding: 33px;
  min-height: 192px;
  display: flex;
  flex-direction: column;
  gap: 22px;
}
.reelio-feat__icon { height: 42px; display: flex; align-items: center; }
.reelio-feat__icon img { max-height: 42px; max-width: 44px; width: auto; height: auto; }
.reelio-feat__text {
  color: var(--white);
  font-size: var(--fs-body-sm);
  font-weight: var(--weight-light);
  line-height: 1.3;
}

/* ==========================================================================
   MICROSITES PAGE
   ========================================================================== */
.ms-hero {
  /* gradient lives on body.hero-dark--ms (anchored to page top) */
  background: transparent;
  padding-top: 60px;
  overflow: hidden;
}
.ms-hero__inner { display: flex; flex-direction: column; align-items: center; text-align: center; }
.ms-hero .h1 { max-width: 1040px; color: var(--white); }
.ms-hero__sub { max-width: 806px; margin-top: 10px; color: rgba(255,255,255,0.95); font-weight: var(--weight-light); }
.ms-hero__media { max-width: 1250px; margin-top: 24px; }
.ms-hero__media img { width: 100%; height: auto; }

/* Live Microsites: copy + tags left, monitor right */
.ms-live__row {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  gap: 24px;
  align-items: center;
}
.ms-live .section__sub { margin-top: 32px; }
.ms-tags { display: flex; flex-wrap: wrap; gap: 20px; margin-top: 32px; }
.ms-tag {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 12px 30px;
  min-height: 48px;
  border: 0;
  border-radius: var(--radius-pill);
  background: #f8fafb;
  color: var(--ink);
  font-family: inherit;
  font-size: var(--fs-body-sm);
  font-weight: var(--weight-light);
  cursor: pointer;
  -webkit-appearance: none;
  appearance: none;
  transition: background .18s ease, color .18s ease;
}
.ms-tag:hover { background: #e9eff2; }
.ms-tag--active,
.ms-tag--active:hover { background: var(--simian-blue); color: var(--white); }
.ms-live__art { text-align: center; }
.ms-live__shot { position: relative; display: inline-block; width: 100%; }
.ms-live__art .shot img.ms-live__monitor { position: relative; z-index: 1; width: 100%; height: auto; display: block; }
.ms-live__art .shot img.ms-live__screen {
  position: absolute;
  z-index: 2;
  left: 9.44%;
  top: 7.41%;
  width: 80.69%;
  height: 59.59%;
  object-fit: cover;
  border-radius: 0;
  transition: opacity .25s ease;
}
.ms-live__shot.is-swapping .ms-live__screen { opacity: 0; }
.ms-live__link {
  display: block;
  margin-top: 18px;
  font-size: var(--fs-body-sm);
  color: var(--ink);
  font-weight: var(--weight-light);
}

/* Templates: art left, copy + list right */
.ms-templates .section__sub { margin-top: 36px; }
.ms-templates__row {
  display: grid;
  grid-template-columns: minmax(0, 1.9fr) minmax(0, 1fr);
  gap: 114px;
  align-items: center;
}
.ms-templates__art img { width: 100%; height: auto; }
.ms-templates__list {
  margin-top: 24px;
  display: grid;
  gap: 4px;
  list-style: none;
  padding: 0;
}
.ms-templates__list li {
  position: relative;
  padding-left: 34px;
  font-size: var(--fs-body-sm);
  font-weight: var(--weight-light);
}
.ms-templates__list li::before {
  content: "";
  position: absolute;
  left: 6px; top: 0.62em;
  width: 6px; height: 6px;
  border-radius: 50%;
  background: var(--muted);
}

/* ==========================================================================
   ECOSYSTEM page ( ECOSYSTEM_Desktop 3673:835)
   ========================================================================== */
/* Hero — dark-blue → white gradient, centered text, no image */
.eco-hero {
  /* gradient lives on body.hero-dark--eco (anchored to page top) */
  background: transparent;
  padding: 132px 0 96px;
}
.eco-hero__inner { text-align: center; display: flex; flex-direction: column; align-items: center; }
.eco-hero__title { color: var(--white); }
.eco-hero__sub {
  color: rgba(255,255,255,0.92);
  max-width: 945px;
  margin-top: 22px;
  font-weight: var(--weight-light);
}
.eco-hero__cta { margin-top: 34px; }

/* Creative companies — 8 category pills, 4 per row */
.eco-companies .section__head { margin-bottom: 48px; }
.eco-cat__grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 25.5px 27px;
}
.eco-cat {
  display: flex;
  align-items: center;
  gap: 20px;
  background: #f8fafb;
  border-radius: 15px;
  padding: 24px 30px;
}
.eco-cat__icon { flex: 0 0 auto; display: inline-flex; }
.eco-cat__icon img { width: 30px; height: 30px; display: block; }
.eco-cat__label { font-size: var(--fs-h5, 25px); font-weight: var(--weight-light); color: #000; }

/* Simian showcase — copy + art header, then 5 feature cards */
.eco-showcase {
  background-image: linear-gradient(180deg, #eef4f7 0, var(--white) 620px);
  background-repeat: no-repeat;
}
.eco-showcase__head {
  display: grid;
  grid-template-columns: minmax(0, 0.9fr) minmax(0, 1.1fr);
  gap: 56px;
  align-items: center;
  margin-bottom: 56px;
}
.eco-showcase__copy .section__sub { margin-left: 0; text-align: left; max-width: 460px; }
.eco-showcase__art img { width: 100%; height: auto; }
.eco-feat__grid {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: 23px;
}
.eco-feat {
  background: #f8fafb;
  border-radius: 20px;
  padding: 22px;
  display: flex;
  flex-direction: column;
  text-align: center;
}
.eco-feat__art { margin-bottom: 18px; aspect-ratio: 259 / 220; }
.eco-feat__art img { width: 100%; height: 100%; object-fit: contain; border-radius: 10px; }
.eco-feat__title { font-size: 25px; font-weight: var(--weight-light); color: #000; margin: 0 0 10px; min-height: 60px; }
.eco-feat__desc { font-size: var(--fs-body-sm); font-weight: var(--weight-light); color: #000; line-height: 1.3; }

/* Bigger story — copy + diagram header, then 3 dark product cards */
.eco-story__head {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  gap: 48px;
  align-items: center;
  margin-bottom: 56px;
}
.eco-story__copy .section__sub { margin-left: 0; text-align: left; max-width: 480px; }
.eco-story__art { text-align: center; }
.eco-story__art img { max-width: 100%; height: auto; mix-blend-mode: multiply; }
/* Tighten the gap between the Simian showcase and the "Bigger story" section */
.eco-showcase { padding-bottom: 45px; }
.eco-story { padding-top: 45px; }
.eco-products {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 25px;
}
.eco-product {
  border-radius: 15px;
  padding: 44px 40px;
  color: var(--white);
  display: flex;
  flex-direction: column;
}
.eco-product--simian { background: linear-gradient(180deg, #001720 0%, var(--simian-blue) 100%); }
.eco-product--reelio { background: linear-gradient(180deg, #232c33 17.3%, #384c70 100%); }
.eco-product--howler { background: linear-gradient(180deg, #000000 0%, #666666 100%); }
.eco-product__logo { height: 44px; width: auto; margin-bottom: 24px; }
.eco-product__logo--howler {     height: 56px;
  width: auto !important;
  margin: 0px auto 12px auto; }
.eco-product__desc {
  font-size: var(--fs-body);
  font-weight: var(--weight-light);
  line-height: 1.2;
  color: var(--white);
  margin: 0 0 26px;
}
.eco-product__list {
  list-style: none;
  padding: 0;
  margin: 0 0 32px;
  display: flex;
  flex-direction: column;
  gap: 14px;
}
.eco-product__list li {
  position: relative;
  padding-left: 26px;
  font-size: var(--fs-body-sm);
  font-weight: var(--weight-light);
}
.eco-product__list li::before {
  content: "";
  position: absolute;
  left: 2px; top: 0.5em;
  width: 8px; height: 8px;
  border-radius: 50%;
  background: #fff;
}
.eco-product--reelio .eco-product__list li::before { background: #fff; }
.eco-product--howler .eco-product__list li::before { background: #fff; }
.eco-product__cta { margin-top: auto; align-self: flex-start; }

/* ==========================================================================
   ENTERPRISE page ( ENTERPRISE_Desktop 3673:1086)
   ========================================================================== */
/* Hero — dark gradient, centered, no image */
.ent-hero {
  /* gradient lives on body.hero-dark--ent (anchored to page top) */
  background: transparent;
  padding: 140px 0 104px;
}
.ent-hero__inner { text-align: center; display: flex; flex-direction: column; align-items: center; }
.ent-hero__title { color: var(--white); max-width: 1000px; }
.ent-hero__sub {
  color: rgba(255,255,255,0.92);
  max-width: 840px;
  margin-top: 26px;
  font-weight: var(--weight-light);
}
.ent-hero__sub strong { font-weight: var(--weight-bold); display: block; margin-bottom: 12px; }
.ent-hero__cta { margin-top: 36px; }

/* Get the Most — 4 feature cards */
.ent-features .section__head { margin-bottom: 48px; }
.ent-feat__grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 20px;
}
.ent-feat {
  background: #f8fafb;
  border-radius: 18px;
  padding: 40px 34px;
  display: flex;
  flex-direction: column;
}
.ent-feat__icon { display: inline-flex; margin-bottom: 30px; min-height: 70px; align-items: flex-end; }
.ent-feat__icon img { width: auto; height: 70px; max-width: 90px; display: block; }
.ent-feat__title { font-size: 28px; font-weight: var(--weight-light); color: #000; margin: 0 0 18px; min-height: 67px; }
.ent-feat__intro { font-size: var(--fs-body-sm); font-weight: var(--weight-light); color: var(--muted); line-height: 1.35; margin: 0 0 26px; min-height: 150px; }
.ent-feat__list {
  list-style: none;
  padding: 0;
  margin: 0;
  display: flex;
  flex-direction: column;
  gap: 12px;
}
.ent-feat__list li {
  position: relative;
  padding-left: 26px;
  font-size: var(--fs-body-sm);
  font-weight: var(--weight-light);
  color: var(--ink);
}
.ent-feat__list li::before {
  content: "";
  position: absolute;
  left: 2px; top: 0.5em;
  width: 8px; height: 8px;
  border-radius: 50%;
  background: var(--color-2);
}

.ent-why-wrap, .ent-compliance-wrap, .ent-cases { padding-top: 48px; padding-bottom: 48px; }
/* Why Teams — dark rounded panel with 4 icon columns */
.ent-why {
  background: linear-gradient(180deg, #001720 0%, var(--simian-blue) 100%);
  border-radius: 30px;
  padding: 72px 60px 84px;
  color: var(--white);
}
.ent-why__title { text-align: center; color: var(--white); margin-bottom: 56px; }
.ent-why__grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 40px;
}
.ent-why__item { text-align: center; display: flex; flex-direction: column; align-items: center; }
.ent-why__icon { display: inline-flex; margin-bottom: 26px; }
.ent-why__icon img { width: auto; height: 56px; display: block; }
.ent-why__item-title { font-size: 26px; font-weight: var(--weight-light); color: var(--white); margin: 0 0 16px; min-height: 62px; }
.ent-why__copy { font-size: var(--fs-body-sm); font-weight: var(--weight-light); color: rgba(255,255,255,0.85); line-height: 1.35; }

/* Security & Compliance — light rounded panel, title + 3 bullet columns */
.ent-compliance {
  background: linear-gradient(180deg, #eef4f7 0%, var(--white) 100%);
  border: 1px solid #e4ecf0;
  border-radius: 30px;
  padding: 60px 64px;
  display: grid;
  grid-template-columns: minmax(0, 1fr) repeat(3, minmax(0, 0.8fr));
  gap: 48px;
  align-items: start;
}
.ent-compliance__title { margin: 0; color: var(--simian-blue); align-self: center; }
.ent-compliance__cols { display: contents; }
.ent-compliance__col {
  list-style: none;
  padding: 0;
  margin: 0;
  display: flex;
  flex-direction: column;
  gap: 18px;
}
.ent-compliance__col li {
  position: relative;
  padding-left: 30px;
  font-size: var(--fs-body);
  font-weight: var(--weight-light);
  color: var(--ink);
}
.ent-compliance__col li::before {
  content: "";
  position: absolute;
  left: 4px; top: 0.5em;
  width: 9px; height: 9px;
  border-radius: 50%;
  background: var(--color-2);
}

/* Customer Success — 2×2 case-study image cards */
.ent-cases .section__head { margin-bottom: 48px; }
.ent-case__grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 32px;
}
.ent-case { display: block; }
.ent-case__art { position: relative; display: block; overflow: hidden; border-radius: 20px; aspect-ratio: 1321 / 650; }
.ent-case__art .ent-case__photo { width: 100%; height: 100%; object-fit: cover; display: block; border-radius: 20px; transition: transform .35s ease; }
.ent-case__logo { position: absolute; left: 32px; bottom: 32px; max-width: 150px; max-height: 52px; width: auto; height: auto; z-index: 1; }
.ent-case:hover .ent-case__art .ent-case__photo { transform: scale(1.02); }

/* ==========================================================================
   FREE TRIAL ( FREETRIAL_Desktop 3673:1700)
   ========================================================================== */
.ft-hero { padding: 52px 0 40px; }
.ft-hero__inner { text-align: center; display: flex; flex-direction: column; align-items: center; }
.ft-hero__sub { max-width: 860px; margin-top: 20px; font-weight: var(--weight-light); }
.ft-main__row {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 0.95fr);
  gap: 56px;
  align-items: start;
}
.ft-features { display: grid; grid-template-columns: repeat(2, 1fr); gap: 22px; }
.ft-feat { background: #f8fafb; border-radius: 20px; padding: 34px 30px; }
.ft-feat__icon { display: inline-flex; height: 46px; align-items: center; margin-bottom: 22px; }
.ft-feat__icon img { height: 42px; width: auto; }
.ft-feat__title { font-size: 27px; font-weight: var(--weight-light); color: #000; margin: 0 0 12px; }
.ft-feat__desc { font-size: var(--fs-body-sm); font-weight: var(--weight-light); color: var(--muted); line-height: 1.35; }

.ft-form { background: var(--white); }
/* Placeholder-style fields: the label lives inside the input as placeholder text
   (set in the markup). The <span> stays as the field's accessible label
   (visually hidden) AND doubles as the inline validation error shown below the
   field on error (see the .ft-form handler in main.js). */
.ft-field { display: flex; flex-direction: column; margin-bottom: 18px; }
.ft-field input, .ft-field select {
  order: 0;
  width: 100%;
  border: 1.5px solid #d3dde2;
  border-radius: 10px;
  background: var(--white);
  padding: 16px 18px;
  font: inherit;
  font-size: var(--fs-body-sm);
  line-height: normal;   /* Safari clips input text when a tight line-height is set */
  color: var(--ink);
  min-height: 54px;      /* keep inputs + the <select> the same height (Safari) */
}
/* Reset Safari's native text-field appearance (its intrinsic box clipped the
   placeholder at the top). Not applied to <select> so it keeps its dropdown arrow. */
.ft-field input { -webkit-appearance: none; appearance: none; }
/* Safari ignores height/padding on a NATIVE select, so reset it too and draw a
   custom chevron; now the select honors min-height/padding and matches the inputs. */
.ft-field select {
  -webkit-appearance: none;
  appearance: none;
  background-color: var(--white);
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='9' viewBox='0 0 14 9' fill='none'%3E%3Cpath d='M1 1.5l6 6 6-6' stroke='%236b7a80' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: right 18px center;
  background-size: 14px 9px;
  padding-right: 44px;
}
.ft-field input::placeholder { color: var(--muted); }
/* Company-type <select>: show its first (placeholder) option muted until chosen. */
.ft-field select:invalid { color: var(--muted); }
.ft-field input:focus, .ft-field select:focus { outline: none; border-color: var(--simian-blue); }
/* Label span: visually hidden by default (kept for screen readers), and revealed
   as the red inline error message when the field is invalid. */
.ft-field span {
  order: 2;
  position: absolute; width: 1px; height: 1px; overflow: hidden;
  clip: rect(0 0 0 0); clip-path: inset(50%); white-space: nowrap; margin: -1px; padding: 0; border: 0;
}
.ft-field.is-error input, .ft-field.is-error select { border-color: #d64545; }
.ft-field.is-error span {
  position: static; width: auto; height: auto; overflow: visible; clip: auto; clip-path: none;
  white-space: normal; margin: 6px 0 0; font-size: 13px; font-weight: var(--weight-bold); color: #d64545;
}
.ft-field.is-error span::after { content: attr(data-err); }
.ft-form__submit { margin-top: 20px; }
.ft-form__note { margin-top: 18px; font-size: 14px; color: var(--muted); font-weight: var(--weight-light); }

.ft-quote { margin-top: 46px; }

/* ---- Reel Insights download page (reel-insights.php) ---- */
.ri-eyebrow { text-transform: uppercase; letter-spacing: .12em; font-weight: var(--weight-bold); font-size: 14px; color: var(--accent-green); margin-bottom: 12px; }
.ri-left { align-self: start; }
.ri-learn { display: flex; gap: 28px; align-items: center; }
.ri-learn__copy { min-width: 0; }
.ri-cover { flex: 0 0 190px; width: 190px; height: auto; border-radius: 12px; display: block; }
@media (max-width: 560px) {
  .ri-learn { flex-direction: column; align-items: flex-start; gap: 20px; }
  .ri-cover { flex: 0 0 auto; width: 220px; max-width: 100%; }
}
.ri-list__title { margin: 0 0 16px; font-size: 24px; font-weight: var(--weight-light); }
.ri-list { list-style: none; margin: 0; padding: 0; display: grid; gap: 14px; }
.ri-list li { display: flex; align-items: flex-start; gap: 12px; font-size: var(--fs-body-sm); line-height: 1.4; }
.ri-list__check { color: var(--accent-green); font-weight: var(--weight-bold); font-size: 18px; line-height: 1.2; flex: 0 0 auto; }
.ri-form__title { font-size: 27px; font-weight: var(--weight-light); margin: 0 0 6px; }
.ri-form__intro { color: var(--muted); margin: 0 0 10px; font-size: var(--fs-body-sm); font-weight: var(--weight-light); }

/* Why creative teams — dark panel with 4 checked items */
.why-ct {
  background: linear-gradient(180deg, #001720 0%, var(--simian-blue) 100%);
  border-radius: 15px;
  padding: 64px 60px 72px;
  text-align: center;
  color: var(--white);
}
.why-ct__title { color: var(--white); margin-bottom: 48px; }
.why-ct__grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 106px; }
.why-ct__item { display: flex; flex-direction: column; align-items: center; gap: 16px; }
.why-ct__check {
  /* Same thick green check (icon-perf.svg) as the enterprise "Why Teams" icons. */
  display: inline-block;
  width: 58px; height: 54px;
  background: url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20width%3D%27114%27%20height%3D%27105%27%20viewBox%3D%270%200%20114%20105%27%20fill%3D%27none%27%3E%3Cpath%20d%3D%27M12.3111%2074.1765C9.24446%2069.4809%206.27836%2064.919%203.01061%2060.4574C0.563991%2057.132%20-0.994473%2054.2579%200.731567%2050.1138C2.45761%2045.9696%206.68054%2043.9143%2010.9705%2045.084C12.3446%2045.4516%2013.5512%2046.0866%2014.7577%2046.9221C20.9413%2051.1164%2028.5493%2059.8224%2034.6491%2064.7018C35.4032%2065.3033%2036.2411%2065.8046%2037.1627%2066.1221C38.9055%2066.7404%2041.7208%2067.1916%2044.2177%2065.2031C44.5696%2064.919%2044.888%2064.5848%2045.1897%2064.2506C49.8315%2058.9535%2099.1996%202.67347%20100.523%201.68757C104.177%20-1.03619%20109.003%20-0.367787%20111.919%203.00768C114.08%205.51421%20114.65%208.82283%20113.192%2011.8641C112.723%2012.8667%20112.07%2013.6521%20111.382%2014.5879L102.87%2026.2349C88.8099%2045.9529%2074.9848%2065.7211%2061.2268%2085.6397L53.8701%2096.4345C53.6523%2096.7519%2053.4177%2097.0694%2053.1831%2097.3702L50.8873%20100.261C45.927%20105.943%2037.833%20106.611%2032.0684%20101.748C30.5937%20100.495%2029.3704%2099.1081%2028.1639%2097.5707C25.3318%2093.9279%2022.7344%2090.235%2020.204%2086.3582L12.2776%2074.1765H12.3111Z%27%20fill%3D%27%234AFA60%27%2F%3E%3C%2Fsvg%3E") center / contain no-repeat;
  font-size: 0; line-height: 0;
}
.why-ct__item p { font-size: 25px; font-weight: var(--weight-light); color: var(--white); line-height: 1.15; }

/* ==========================================================================
   BOOK A DEMO / CONTACT forms ( 3673:2767 / 3673:3329)
   ========================================================================== */
.demo-hero__row {
  display: grid;
  grid-template-columns: minmax(0, 440px) minmax(0, 590px);
  justify-content: space-between;
  gap: 64px;
  align-items: start;
}
.demo-hero__copy .h1 { max-width: 12ch; }
.demo-hero__sub { margin-top: 24px; font-weight: var(--weight-light); max-width: 440px; }
.demo-hero__lead { margin-top: 22px; font-weight: var(--weight-bold); font-size: var(--fs-body-sm); max-width: 520px; }
.demo-hero__kb { margin-top: 32px; padding-top: 24px; border-top: 1px solid #dfe6ea; max-width: 440px; }
.demo-hero__kb-title { font-weight: var(--weight-bold); font-size: var(--fs-body); margin: 0; }
.demo-hero__kb-text { font-weight: var(--weight-light); font-size: var(--fs-body-sm); line-height: 1.45; margin: 8px 0 0; }
.demo-hero__kb-text a { color: var(--simian-blue); text-decoration: underline; }

/* Contact hub */
.contact-hero__inner { text-align: center; display: flex; flex-direction: column; align-items: center; }
.contact-hero__sub { margin-top: 18px; font-weight: var(--weight-light); }
.contact-cards { display: grid; grid-template-columns: 1fr 1fr; gap: 103px; width: 100%; max-width: 1390px; margin: 74px auto 0; }
.contact-card {
  border-radius: 15px;
  padding: 75px 40px 88px;
  color: var(--white);
  min-height: 298px;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: space-between;
  gap: 32px;
}
.contact-card--sales { background: linear-gradient(180deg, var(--simian-blue) 0%, #ffffff 190.8%); }
.contact-card--support { background: linear-gradient(180deg, #001720 0%, var(--simian-blue) 100%); }
.contact-card .btn { width: 264px; }
.contact-card__title { font-size: 67.5px; font-weight: var(--weight-light); color: var(--white); margin: 0; }
.contact-card__top { display: flex; flex-direction: column; align-items: center; gap: 16px; }
.contact-card__sub { font-size: var(--fs-body-sm); font-weight: var(--weight-light); color: rgba(255,255,255,0.9); line-height: 1.4; max-width: 460px; margin: 0; }
.contact-card__foot { display: flex; flex-direction: column; align-items: center; gap: 14px; }
.contact-card__caption { font-size: 14px; font-weight: var(--weight-light); color: rgba(255,255,255,0.75); margin: 0; }
.contact-kb { margin-top: 64px; display: flex; flex-direction: column; align-items: center; text-align: center; gap: 12px; }
.contact-kb__title { font-size: var(--fs-h3); font-weight: var(--weight-light); margin: 0; }
.contact-kb__sub { font-size: var(--fs-body-sm); font-weight: var(--weight-light); color: var(--muted); max-width: 560px; margin: 0; }
.contact-kb .btn { margin-top: 8px; }
.contact-info { margin-top: 80px; }
.contact-info__loc { font-size: 32.5px; font-weight: var(--weight-light); color: #000; }
.contact-info__hours-label { font-size: var(--fs-body); font-weight: var(--weight-bold); margin-top: 24px; }
.contact-info__hours { font-size: var(--fs-body); font-weight: var(--weight-light); margin-top: 6px; }
.contact-info__note { font-size: var(--fs-body-sm); font-weight: var(--weight-light); color: var(--ink); max-width: 1174px; margin: 18px auto 0; }

/* ==========================================================================
   THANK YOU ( THANKYOU_Desktop 3673:1638)
   ========================================================================== */
.ty-hero { padding: 150px 0 180px; background: var(--simian-blue); }
.ty-hero__inner { text-align: center; display: flex; flex-direction: column; align-items: center; }
.ty-hero__inner .h1 { color: var(--white); }
.ty-hero__sub { color: rgba(255,255,255,0.92); max-width: 700px; margin-top: 22px; font-weight: var(--weight-light); }
.ty-hero__cta { margin-top: 34px; }

/* ==========================================================================
   CUSTOMER DETAIL ( CUSTOMERS-DETAIL_Desktop 3673:7727)
   ========================================================================== */
.cd-hero {
  position: relative;
  min-height: 720px;
  display: flex;
  align-items: flex-end;
  overflow: hidden;
  background: #043f57; /* dark base behind photo — keeps stub heroes (no photo) legible */
}
/* Stub story body ("full case study coming soon") */
.cd-stub__inner { max-width: 760px; margin-inline: auto; text-align: center; }
.cd-stub__eyebrow {
  text-transform: uppercase; letter-spacing: .08em;
  font-size: var(--fs-body-sm); font-weight: var(--weight-bold);
  color: var(--accent-green); margin-bottom: 14px;
}
.cd-stub__desc { color: var(--ink-600, #4a5a63); margin-top: 18px; }
.cd-stub__soon {
  margin: 26px 0 30px; font-size: var(--fs-body);
  font-weight: var(--weight-medium); color: var(--simian-blue);
}
.cd-hero__bg { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.cd-hero__overlay {
  position: absolute; inset: 0;
  /*  3673:7812 — transparent at top, darkening only over the lower portion. */
  background: linear-gradient(180deg, rgba(0,0,0,0) 45%, rgba(0,0,0,0.5) 100%);
}
.cd-hero__inner { position: relative; text-align: center; padding: 0 0 70px; margin-inline: auto; }
.cd-hero__inner .h1 { color: var(--white); }
.cd-hero__sub { color: rgba(255,255,255,0.92); margin-top: 22px; font-weight: var(--weight-light); }
/* Hero-flush pages (customer story): the photo hero fills from the very top of the
   page; the top bar + nav overlay it instead of pushing it down (: Hero at y=0). */
body.hero-flush .topbar { position: relative; z-index: 101; }
body.hero-flush .cd-hero { margin-top: -136px; }

.cd-main { background: linear-gradient(180deg, #eef4f7 0, var(--white) 320px); background-repeat: no-repeat; }
.cd-main__row {
  display: grid;
  grid-template-columns: 320px minmax(0, 1fr);
  gap: 56px;
  align-items: start;
}
.cd-side { position: sticky; top: 110px; }
.cd-side__card { background: #f8fafb; border-radius: 30px; padding: 40px 36px; }
.cd-side__logo { max-width: 200px; height: auto; margin-bottom: 24px; }
.cd-side__logo-fallback { font-size: 34px; font-weight: var(--weight-bold); color: var(--simian-blue); margin-bottom: 24px; }
.cd-side__by { margin: 2px 0 18px; padding-bottom: 16px; border-bottom: 1px solid rgba(4,63,87,0.12); }
.cd-side__by-name { display: block; font-weight: var(--weight-bold); color: var(--simian-blue); font-size: 16px; line-height: 1.3; }
.cd-side__by-role { display: block; font-size: 13px; color: var(--muted); margin-top: 3px; }
.cd-side__list { margin: 0; }
.cd-side__list dt { font-size: 22px; font-weight: var(--weight-regular); color: var(--simian-blue); margin-top: 20px; }
.cd-side__list dt:first-child { margin-top: 0; }
.cd-side__list dd { margin: 6px 0 0; font-size: var(--fs-body-sm); font-weight: var(--weight-light); color: var(--ink); }
.cd-side__list dd ul { margin: 0; padding-left: 20px; list-style: disc; }
.cd-side__list dd li { margin-top: 2px; }

.cd-article { max-width: 820px; }
.cd-article p { font-size: var(--fs-body); font-weight: var(--weight-light); line-height: 1.35; margin-bottom: 26px; color: var(--ink); }
.cd-article__q { font-weight: var(--weight-bold); }
/*  3673:7805 — FULL-BLEED teal band: speech-bubble mark on the left,
   large light-weight quote text on the right. Breaks out of the article column. */
.cd-quote {
  background: linear-gradient(180deg, #043f57 0%, #6f97a6 100%);
  color: var(--white);
  padding: 84px 0;
}
.cd-quote__inner {
  max-width: 1300px;
  margin-inline: auto;
  padding: 0 var(--container-pad, 60px);
  display: flex;
  align-items: center;
  gap: 60px;
}
.cd-quote__mark { flex: 0 0 156px; width: 156px; height: auto; }
.cd-quote__text {
  margin: 0;
  max-width: 900px;
  font-size: 34px;
  font-weight: var(--weight-light);
  line-height: 1.3;
  color: var(--white);
}
/* Continued article blocks between the quote bands align with the article column
   (sidebar 320px + 56px gap = 376px). */
.cd-main--cont { background: var(--white); padding-top: 40px; }
.cd-article--offset { margin-left: 376px; max-width: 820px; }

/* More customer stories — 2×2 image cards */
.more-stories .section__head { margin-bottom: 44px; }
.more-stories__grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 32px; }
.story-card { display: block; }
.story-card__media { position: relative; display: block; border-radius: 20px; overflow: hidden; min-height: 300px; }
.story-card__media img:first-child { width: 100%; height: 100%; object-fit: cover; display: block; }
.story-card__logo { position: absolute; left: 32px; bottom: 32px; max-width: 150px; max-height: 52px; width: auto; height: auto; }

/* ==========================================================================
   CUSTOMERS page ( CUSTOMERS_Desktop 3673:7543)
   ========================================================================== */
.cust-hero { padding: 90px 0 84px; }
.cust-hero__row {
  display: grid;
  grid-template-columns: minmax(0, 0.82fr) minmax(0, 1.18fr);
  gap: 56px;
  align-items: center;
}
.cust-hero__copy .h1 { color: var(--white); }
.cust-hero__sub { color: rgba(255,255,255,0.9); font-weight: var(--weight-light); margin-top: 22px; max-width: 460px; }
.cust-hero__logos {
  list-style: none;
  padding: 0; margin: 0;
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 50px 97px;
  align-items: center;
  justify-items: center;
}
.cust-hero__logos img {
  max-width: 150px; height: auto;
  /* : logos are full-opacity white on the dark hero (no dimming). */
  filter: brightness(0) invert(1);
  opacity: 1;
}

/* Quote overrides */
.cust-quote .pricing-quote__logo { opacity: 0.4; }
/* Prev/next arrows under the top quote ( 3673:7594, 38px circles) */
.quote-arrows { display: flex; justify-content: center; gap: 20px; margin-top: 30px; }
.quote-arrows__btn {
  width: 38px; height: 38px; border-radius: 50%;
  display: inline-flex; align-items: center; justify-content: center;
  border: 1px solid rgba(0,0,0,0.18); color: rgba(0,0,0,0.4);
  font-size: 20px; line-height: 1;
}
.what-say__quote { margin: 33px auto 0; max-width: 820px; }
/* Customers page only: smaller "What our customers are saying" heading (-25%).
   Scoped to .what-say so no other page changes. */
.what-say .section__head .h2 { font-size: calc(var(--fs-h2) * 0.75); }

/* Customer success — stacked case-study cards (image left, copy right) */
.cust-cases .container { display: flex; flex-direction: column; gap: 28px; }
.cs-card {
  display: grid;
  grid-template-columns: minmax(0, 0.86fr) minmax(0, 1.14fr);
  background: #f8fafb;
  border-radius: 30px;
  overflow: hidden;
  align-items: stretch;
}
.cs-card__media { position: relative; display: block; min-height: 300px; overflow: hidden; }
.cs-card__media.is-empty { aspect-ratio: auto; }
.cs-card__photo { width: 100%; height: 100%; object-fit: cover; display: block; }
.cs-card__logo {
  position: absolute;
  left: 34px; bottom: 34px;
  max-width: 150px; max-height: 58px;
  width: auto; height: auto;
}
.cs-card__body { padding: 54px 56px; display: flex; flex-direction: column; justify-content: center; }
.cs-card__title { font-size: 33px; font-weight: var(--weight-light); line-height: 1.05; color: var(--ink); }
.cs-card__desc { font-size: var(--fs-body-sm); font-weight: var(--weight-light); line-height: 1.35; color: var(--muted); margin-top: 20px; }
.cs-card__more { font-size: var(--fs-body-sm); color: var(--simian-blue); margin-top: 22px; font-weight: var(--weight-regular); }
.cs-card:hover .cs-card__more { text-decoration: underline; }

/* ==========================================================================
   ABOUT page ( ABOUT_Desktop 3673:1452)
   ========================================================================== */
.about-hero { padding: 96px 0 90px; background: linear-gradient(180deg, #043f57 0%, #a4b9c2 100%); background-repeat: no-repeat; }
.about-hero__row {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  gap: 40px;
  align-items: center;
}
.about-hero__copy .h1 { color: var(--white); max-width: 698px; }
.about-hero__sub { color: #ffffff; font-weight: var(--weight-light); margin-top: 22px; max-width: 537px; }
.about-hero__cta { display: flex; flex-wrap: wrap; gap: 19px; margin-top: 30px; }
.about-hero__art img { width: 100%; height: auto; }

/* Software That Works — dark panel, title + intro + 3 icon items */
.stw {
  background: linear-gradient(180deg, #001720 0%, var(--simian-blue) 100%);
  border-radius: 15px;
  padding: 72px 64px 80px;
  text-align: center;
  color: var(--white);
}
.stw__title { color: var(--white); }
.stw__lead { max-width: 900px; margin: 0 auto; font-size: var(--fs-body); font-weight: var(--weight-bold); color: var(--white); line-height: 1.3; }
.stw__sub { max-width: 1040px; margin: 24px auto 0; font-weight: var(--weight-light); color: rgba(255,255,255,0.9); }
.stw__sub strong { font-weight: var(--weight-bold); }
.stw__grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 66px;
  margin-top: 56px;
}
.stw__item { display: flex; flex-direction: column; align-items: center; }
.stw__icon { display: inline-flex; height: 62px; align-items: flex-end; margin-bottom: 26px; }
.stw__icon img { height: 100%; width: auto; }
.stw__label { font-size: 18px; font-weight: var(--weight-light); line-height: 1.3; color: var(--white); max-width: 14ch; }
.stw__label strong { font-weight: var(--weight-bold); }

/* Beyond Media — copy left, image right */
.beyond { padding: 40px 0; }
.beyond__row {
  display: grid;
  grid-template-columns: minmax(0, 0.92fr) minmax(0, 1.08fr);
  gap: 56px;
  align-items: center;
}
.beyond__copy .body { margin: 22px 0 35px; font-weight: var(--weight-light); max-width: 443px; }
.beyond__art { text-align: center; }
.beyond__art img { max-width: 100%; max-height: 480px; width: auto; height: auto; mix-blend-mode: multiply; }
.about-clients .section__head { margin-bottom: 44px; }

/* ==========================================================================
   PRICING page ( PRICING_Desktop 3673:2884)
   ========================================================================== */
.pricing-hero { padding: 80px 0 90px; }
.pricing-hero__inner { text-align: center; display: flex; flex-direction: column; align-items: center; margin-bottom: 56px; }
.pricing-hero__sub { max-width: 860px; margin-top: 20px; font-weight: var(--weight-light); }
.pricing-hero__compare {
  margin-top: 22px;
  color: var(--simian-blue);
  font-weight: var(--weight-regular);
  font-size: var(--fs-body-sm);
}
.pricing-hero__compare:hover { text-decoration: underline; }

/* Pricing / Comparison segmented toggle ( 3673:3418) */
.plan-toggle { display: inline-flex; background: #f8fafb; border-radius: var(--radius-pill); padding: 7px; margin-top: 26px; gap: 4px; }
.plan-toggle a {
  padding: 12px 34px;
  border-radius: var(--radius-pill);
  font-size: var(--fs-body-sm);
  font-weight: var(--weight-light);
  color: var(--simian-blue);
}
.plan-toggle a.is-active { background: var(--simian-blue); color: var(--white); }

/* Feature comparison chart ( PRICING-COMPARISON 3673:3423) */
.pcmp-wrap { overflow-x: auto; }
.pcmp {
  display: grid;
  grid-template-columns: 1.15fr 1fr 1fr 1fr;
  gap: 18px;
  min-width: 760px;
}
.pcmp__col { display: flex; flex-direction: column; background: #f7f7f7; border-radius: 22px; overflow: hidden; }
.pcmp__col--features { background: #f8fafb; }
.pcmp__head {
  height: 96px;
  display: flex; align-items: center; justify-content: center;
  font-size: 30px; font-weight: var(--weight-bold); text-transform: uppercase; letter-spacing: 0.5px;
  color: var(--white);
  background: linear-gradient(180deg, var(--simian-blue) 0%, #001720 100%);
}
.pcmp__col--features .pcmp__head { background: transparent; }
.pcmp__cell {
  height: 64px;
  display: flex; align-items: center; justify-content: center;
  font-size: var(--fs-body-sm); font-weight: var(--weight-light); color: var(--ink);
  text-align: center;
}
.pcmp__cell:nth-of-type(odd) { background: var(--white); }
.pcmp__col--features .pcmp__cell { justify-content: flex-start; padding-left: 30px; }
.pcmp__yes, .pcmp__no { font-size: 24px; line-height: 1; font-weight: var(--weight-bold); }
.pcmp__yes { color: #17a05a; }
.pcmp__no { color: #c2ccd2; }

.pricing__grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 24px;
  align-items: stretch;
}
.plan {
  border-radius: 30px;
  overflow: hidden;
  background: #f8fafb;
  display: flex;
  flex-direction: column;
  box-shadow: 0 12px 34px rgba(2, 30, 43, 0.08);
}
.plan--popular { box-shadow: 0 20px 44px rgba(2, 30, 43, 0.14); }
.plan__top {
  position: relative; padding: 42px 38px 34px; color: var(--white);
  min-height: 400px;                 /* fixed header so the colour boundary aligns across all three cards */
  display: flex; flex-direction: column;
}
.plan--lite .plan__top { background: linear-gradient(180deg, #1ad4e9 0%, #0f7783 100%); }
.plan--company .plan__top,
.plan--enterprise .plan__top { background: linear-gradient(180deg, var(--simian-blue) 0%, #001720 100%); }
.plan__badge {
  position: absolute;
  top: 34px; right: 34px;
  white-space: nowrap;
  color: var(--accent-green);
  font-weight: var(--weight-bold);
  font-size: var(--fs-body-sm);
}
.plan__icon { display: inline-flex; height: 56px; margin-bottom: 20px; }
.plan__icon img { height: 100%; width: auto; }
.plan__name { font-size: 50px; font-weight: var(--weight-bold); line-height: 1; margin: 0; letter-spacing: -0.5px; }
.plan__tagline { font-size: 25px; font-weight: var(--weight-regular); line-height: 1.1; margin: 16px 0 0; max-width: 88%; }
.plan__for { display: flex; flex-wrap: wrap; gap: 9px; margin-top: auto; padding-top: 28px; }
.plan__for span {
  background: rgba(0, 0, 0, 0.30);
  border-radius: 9px;
  padding: 6px 15px;
  font-size: 15px;
  font-weight: var(--weight-bold);
}
.plan--lite .plan__for span { background: rgba(4, 63, 87, 0.5); }

.plan__body { padding: 34px 38px 40px; display: flex; flex-direction: column; flex: 1; }
.plan__starting { font-size: var(--fs-body-sm); color: var(--muted); }
.plan__starting--ghost { visibility: hidden; }
.plan__price { font-size: 60px; font-weight: var(--weight-bold); line-height: 1; margin: 8px 0 22px; color: var(--ink); }
.plan__price-per { font-weight: var(--weight-light); }
.plan__price--custom { font-size: 46px; }
.plan__features { list-style: none; padding: 0; margin: 0 0 8px; display: flex; flex-direction: column; gap: 12px; }
.plan__features li,
.plan__addons li {
  position: relative;
  padding-left: 34px;
  font-size: var(--fs-body-sm);
  font-weight: var(--weight-light);
  line-height: 1.3;
  color: var(--ink);
}
.plan__features li::before,
.plan__addons li::before {
  content: "\2713";
  position: absolute;
  left: 4px; top: 0;
  color: #17a05a;
  font-weight: var(--weight-bold);
}
.plan__addons-title { font-weight: var(--weight-bold); font-size: var(--fs-body-sm); margin: 26px 0 14px; }
.plan__addons { list-style: none; padding: 0; margin: 0; display: flex; flex-direction: column; gap: 16px; }
.plan__addon-name { font-weight: var(--weight-bold); }
.plan__addon-desc { font-weight: var(--weight-light); }
.plan__spacer { flex: 1 1 auto; min-height: 36px; }
.plan__cta { align-self: flex-start; }

/* Flexible storage — centered text band */
.flex-storage__inner { text-align: center; display: flex; flex-direction: column; align-items: center; }
.flex-storage__lead { max-width: 1000px; margin-top: 22px; font-weight: var(--weight-light); }
.flex-storage__points { display: flex; flex-wrap: wrap; justify-content: center; gap: 20px 80px; margin-top: 30px; }
.flex-storage__points span { font-size: var(--fs-body); font-weight: var(--weight-bold); color: var(--ink); }

/* All plans include — dark rounded panel, title + 2 columns of 3 items */
.all-plans {
  background: linear-gradient(158deg, #114a5e 0%, #2c6579 48%, #587f90 100%);
  border-radius: 30px;
  padding: 60px 72px;
  display: grid;
  grid-template-columns: minmax(0, 0.9fr) minmax(0, 2fr);
  gap: 40px 72px;
  align-items: center;
}
.all-plans__title { color: var(--white); margin: 0; }
.all-plans__cols {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  grid-template-rows: repeat(3, auto);
  grid-auto-flow: column;
  column-gap: 64px;
}
.all-plans__item {
  display: flex;
  align-items: center;
  gap: 22px;
  padding: 20px 2px;
  border-bottom: 1px solid rgba(255, 255, 255, 0.22);
}
.all-plans__icon { flex: 0 0 auto; display: inline-flex; width: 48px; }
.all-plans__icon img { width: 46px; height: auto; }
.all-plans__label { font-size: 24px; font-weight: var(--weight-light); color: var(--white); line-height: 1.12; }

/* Pricing quote */
.pricing-quote { padding: 70px 0; }
.pricing-quote__inner { text-align: center; display: flex; flex-direction: column; align-items: center; }
.pricing-quote__logo { height: 64px; width: auto; opacity: 0.4; margin-bottom: 22px; }
.pricing-quote__text { font-size: var(--fs-body); color: rgba(0,0,0,0.55); margin-bottom: 12px; }
.pricing-quote__cite { font-size: var(--fs-body); font-weight: var(--weight-bold); color: rgba(0,0,0,0.62); }

/* More than storage — dark panel: screenshot left, copy right */
.more-storage {
  background: linear-gradient(180deg, #001720 0%, var(--simian-blue) 100%);
  border-radius: 30px;
  padding: 60px 64px;
  display: grid;
  grid-template-columns: minmax(0, 1.35fr) minmax(0, 0.65fr);
  gap: 48px;
  align-items: center;
}
.more-storage__art img { width: 100%; height: auto; border-radius: 14px; }
.more-storage__copy .h2 { color: var(--white); }
.more-storage__copy .body { color: rgba(255,255,255,0.9); font-weight: var(--weight-light); margin-top: 20px; }

/* ==========================================================================
   MODAL ( ENTERPRISE-POPUP 3673:1425)
   ========================================================================== */
.modal { position: fixed; inset: 0; z-index: 1000; display: flex; align-items: center; justify-content: center; padding: 24px; }
.modal[hidden] { display: none; }
.modal__overlay { position: absolute; inset: 0; background: rgba(2, 20, 28, 0.55); backdrop-filter: blur(2px); }
.modal__dialog {
  position: relative;
  width: 100%; max-width: 640px;
  max-height: calc(100vh - 48px);
  overflow-y: auto;
  background: var(--white);
  border-radius: 24px;
  box-shadow: 0 30px 70px rgba(2, 30, 43, 0.35);
  animation: modalIn .22s ease;
}
@keyframes modalIn { from { opacity: 0; transform: translateY(16px); } to { opacity: 1; transform: none; } }
.modal__head {
  background: linear-gradient(180deg, #001720 0%, var(--simian-blue) 100%);
  color: var(--white);
  padding: 44px 48px 36px;
  border-radius: 24px 24px 0 0;
}
.modal__title { font-size: 40px; font-weight: var(--weight-light); color: var(--white); margin: 0 0 14px; }
.modal__sub { font-size: var(--fs-body-sm); font-weight: var(--weight-light); color: rgba(255,255,255,0.9); line-height: 1.4; }
.modal__dialog .ft-form { padding: 30px 48px 44px; }
.modal__dialog .ft-field:first-of-type { margin-top: 0; }
.modal__close {
  position: absolute; top: 20px; right: 22px; z-index: 2;
  width: 40px; height: 40px; border: 0; border-radius: 50%;
  background: rgba(255,255,255,0.15); color: var(--white);
  font-size: 26px; line-height: 1; cursor: pointer;
  display: flex; align-items: center; justify-content: center;
}
.modal__close:hover { background: rgba(255,255,255,0.28); }
body.modal-open { overflow: hidden; }

/* ==========================================================================
   CONTENT / article template ( CONTENT_Desktop 3673:1850)
   ========================================================================== */
.content-hero {
  /* Dark gradient now lives on body.hero-dark--content so it starts at the very
     top of the page (behind the top bar + nav). */
  background: transparent;
  padding: 40px 0 60px;
  text-align: center;
}
.content-hero .h1 { color: var(--white); }
.content-body { padding-top: 56px; }
.content-prose { max-width: 820px; margin-inline: auto; }
.content-prose > :first-child { margin-top: 0; }
/* Legal / privacy / GDPR read as long-form documents — smaller, denser body
   copy than the default article scale. */
.content-body .content-prose { font-size: 17px; line-height: 1.6; color: var(--ink); }
.content-body .content-prose p,
.content-body .content-prose li { font-size: 17px; }
.content-body .content-prose p { margin: 0 0 16px; }
.content-body .content-prose h2 { font-size: 25px; margin: 36px 0 12px; }
.content-body .content-prose h3 { font-size: 20px; margin: 26px 0 10px; }
/* Restore list markers (the global reset removes ul bullets). */
.content-body .content-prose ul { list-style: disc; padding-left: 24px; margin: 0 0 16px; }
.content-body .content-prose ol { list-style: decimal; padding-left: 24px; margin: 0 0 16px; }
.content-body .content-prose li { margin-bottom: 8px; }

/* ==========================================================================
   RESOURCES ( RESOURCES_Desktop 3673:1908)
   ========================================================================== */
/* Hero — dark, centered title + tab control, then Simian Go copy + phones */
.rhero { padding: 84px 0 70px; }
.rhero__top { text-align: center; display: flex; flex-direction: column; align-items: center; }
.rhero__title { color: var(--white); }
.rhero__sub { color: rgba(255,255,255,0.92); max-width: 920px; margin-top: 22px; font-weight: var(--weight-light); }

/* Segmented tab control (Simian Go! active) */
.rtabs {
  position: relative; z-index: 3;
  display: inline-flex; align-items: center; gap: 6px;
  margin-top: 36px; padding: 8px;
  background: var(--simian-blue);
  border-radius: 100px;
}
.rtabs__tab {
  font-size: var(--fs-body-sm); font-weight: var(--weight-light);
  color: var(--white); padding: 13px 30px; border-radius: 100px;
  white-space: nowrap; transition: background .18s ease, color .18s ease;
  border: 0; background: transparent; font-family: inherit; cursor: pointer;
}
.rtabs__tab:hover { background: rgba(255,255,255,0.08); }
.rtabs__tab.is-active { background: var(--accent-green); color: var(--simian-blue); }
.rtabs__tab.is-active:hover { background: var(--accent-green); }

.rhero__body {
  display: grid; grid-template-columns: minmax(0,0.85fr) minmax(0,1.15fr);
  gap: 48px; align-items: center; margin-top: 40px;
}
.rhero__go { color: var(--white); }
.rhero__go-icon { width: 72px; height: auto; display: block; margin: 0 0 26px; }
.rhero__go-title { font-size: var(--fs-h2); font-weight: var(--weight-light); color: var(--white); margin: 0 0 20px; }
.rhero__go-sub { font-size: var(--fs-body); font-weight: var(--weight-light); color: rgba(255,255,255,0.92); line-height: 1.25; max-width: 440px; }
.rhero__go-dl { display: inline-block; margin-top: 26px; color: var(--accent-green); font-size: var(--fs-body-sm); font-weight: var(--weight-regular); }
.rhero__go-dl:hover { text-decoration: underline; }
/* Fixed footprint so switching tabs doesn't resize the panel / shift the page. */
.rhero__phones { height: 480px; display: flex; align-items: center; justify-content: center; }
.rhero__phones img { max-width: 100%; max-height: 100%; width: auto; height: auto; }
.rhero__phones.is-empty { border-radius: 20px; }
/* Only the active tab's panel is shown (author display:grid on .rhero__body
   overrides the UA [hidden] rule, so hide non-active panels explicitly). */
.rhero__panel:not(.is-active) { display: none; }

/* Fits — feature cards with app illustrations.
   Explicit white bg masks any bleed from the dark hero gradient above,
   so the hero->white boundary is clean regardless of hero height. */
.res-fits { position: relative; background: var(--white); }
.res-fits .section__head { margin-bottom: 48px; }
/* 3-column grid to match the design (Adobe | Zapier | SSO, then API |
   Build-on-Simian which spans two columns). Narrower cards keep the app
   illustrations at the design's modest scale. */
.fits__grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; }
.fits-card {
  display: flex; flex-direction: column; align-items: center;
  text-align: center;
  background: #f8fafb; border-radius: 30px;
  padding: 40px 30px 34px;
}
.fits-card--wide { grid-column: span 2; }
.fits-card__title { font-size: var(--fs-h4); font-weight: var(--weight-light); color: #000; margin: 0 0 14px; }
.fits-card__desc { font-size: var(--fs-body-sm); font-weight: var(--weight-light); color: #365260; line-height: 1.3; max-width: 560px; }
.fits-card__art { width: 100%; margin-top: 24px; display: flex; align-items: center; justify-content: center; flex: 1; }
.fits-card__art img { max-width: 100%; max-height: 300px; width: auto; height: auto; }
.fits-card--wide .fits-card__art img { max-height: 340px; }
.fits-card__art.is-empty { aspect-ratio: auto; min-height: 200px; width: 100%; border-radius: 20px; }
.fits-card__art--wide.is-empty { aspect-ratio: auto; min-height: 240px; }
.fits-card__cta { margin-top: 26px; color: var(--simian-blue); font-size: var(--fs-body-sm); font-weight: var(--weight-regular); text-decoration: none; display: inline-block; }
.fits-card__cta:hover { text-decoration: underline; }
/* API card: icon cluster (white rounded boxes at the design's scatter positions) */
.fits-icons { position: relative; width: 304px; height: 282px; margin: 24px auto 0; flex: 0 0 auto; }
.fits-icon {
  position: absolute; width: 68px; height: 68px; border-radius: 18px; background: #fff;
  box-shadow: 0 6px 18px rgba(2,30,43,0.10); display: flex; align-items: center; justify-content: center;
  color: var(--simian-blue);
}
.fits-icon svg, .fits-icon img { width: 38px; height: 38px; object-fit: contain; display: block; }
.fits-mark { position: absolute; left: 50%; top: 50%; transform: translate(-50%, -50%); width: 92px; height: 92px; }
.fits-mark svg, .fits-mark img { width: 100%; height: 100%; object-fit: contain; display: block; }

/* Get the most — two big gradient cards */
.res-most-wrap .section__head { margin-bottom: 48px; }
.res-most__grid { display: grid; grid-template-columns: 1fr 1fr; gap: 30px; }
.res-most {
  position: relative; display: flex; flex-direction: row; align-items: center; gap: 34px;
  border-radius: 30px; padding: 56px 60px; color: var(--white);
  min-height: 216px;
  transition: transform .2s ease, box-shadow .2s ease;
}
.res-most__icon { flex: 0 0 auto; display: inline-flex; }
.res-most__icon img { height: 56px; width: auto; display: block; }
.res-most__text { display: flex; flex-direction: column; }
.res-most:hover { transform: translateY(-4px); box-shadow: 0 20px 40px rgba(2,30,43,0.18); }
.res-most--kb { background: linear-gradient(160deg, var(--simian-blue) 0%, #2f7f9c 78%, #7fb9cf 100%); }
.res-most--support { background: linear-gradient(160deg, var(--simian-blue) 0%, #001720 100%); }
.res-most__title { font-size: var(--fs-h3); font-weight: var(--weight-light); color: var(--white); margin: 0 0 14px; }
.res-most__desc { font-size: var(--fs-body-sm); font-weight: var(--weight-light); color: rgba(255,255,255,0.9); }

/* What's new — copy + modal image */
.res-new__row {
  display: grid;
  grid-template-columns: minmax(0, 0.72fr) minmax(0, 1.28fr);
  gap: 56px;
  align-items: center;
}
.res-new__copy .body { margin: 22px 0 30px; font-weight: var(--weight-light); }
.res-new__art img { width: 100%; height: auto; border-radius: 18px; }

@media (max-width: 900px) {
  .rhero__body { grid-template-columns: 1fr; gap: 32px; }
  .rtabs { flex-wrap: wrap; border-radius: 24px; }
  .fits__grid { grid-template-columns: 1fr; }
  .fits-card--wide { grid-column: auto; }
  .res-most__grid { grid-template-columns: 1fr; }
  .res-new__row { grid-template-columns: 1fr; gap: 32px; }
}

/* ==========================================================================
   COMPARISON (Simian vs. X —  COMPARISON-* )
   ========================================================================== */
/* Hero — copy left, product graphic right (dark) */
.cmp-hero { padding: 84px 0 80px; }
.cmp-hero__grid {
  display: grid; grid-template-columns: minmax(0,1fr) minmax(0,1fr);
  gap: 56px; align-items: center;
}
.cmp-hero__copy .h1 { color: var(--white); }
.cmp-hero__lead { color: var(--white); font-weight: var(--weight-bold); font-size: var(--fs-body); margin-top: 22px; }
.cmp-hero__sub { color: rgba(255,255,255,0.9); font-weight: var(--weight-light); margin-top: 16px; max-width: 620px; }
.cmp-hero__cta { display: flex; flex-wrap: wrap; gap: 16px; margin-top: 34px; }
.cmp-hero__art img { width: 100%; height: auto; }
.cmp-hero__art.is-empty { min-height: 460px; border-radius: 24px; }

/* Comparison — categories, each with feature rows of two cards.
   White bg so the section reads clean below the fading hero gradient. */
/* Comparison content sits on the secondary gradient ( Rectangle 152
   3673:7944): light blue-gray #d4dee3 at the top fading to white (~1685px). */
.cmp-table { padding-top: 40px; position: relative; background: linear-gradient(180deg, #d4dee3 0, var(--white) 1685px); background-repeat: no-repeat; }
.cmpcat { margin-bottom: 40px; }
.cmpcat__title {
  font-size: 33px; font-weight: var(--weight-bold); color: var(--ink);
  margin: 0 0 20px; padding-bottom: 16px;
  border-bottom: 1.5px solid #e6ecef;
}
.cmprow { margin-bottom: 26px; }
.cmprow__feature { font-size: 24px; font-weight: var(--weight-bold); color: var(--ink); margin: 0 0 14px; }
.cmprow__cards { display: grid; grid-template-columns: 1fr 1fr; gap: 26px; }
.cmpc {
  background: #f8fafb; border-radius: 24px;
  padding: 30px 40px; display: flex; align-items: center; gap: 26px;
  min-height: 144px;
}
.cmpc__mark { flex: 0 0 auto; width: 46px; display: inline-flex; align-items: center; justify-content: center; }
.cmpc__mark img { width: 46px; height: auto; display: block; }
.cmpc__vs {
  flex: 0 0 150px;
  font-weight: var(--weight-bold); font-size: var(--fs-body-sm);
  text-transform: uppercase; letter-spacing: 0.4px;
}
.cmpc__text { font-size: var(--fs-body-sm); font-weight: var(--weight-light); line-height: 1.35; color: var(--ink); }
.cmpc__text a { color: var(--simian-blue); font-weight: var(--weight-bold); }

/* Built for what's next — dark panel, big prose */
.cmp-next-wrap { padding: 0; }
.cmp-next {
  background: linear-gradient(180deg, var(--simian-blue) 0%, #001720 100%);
  padding: 90px 0 110px;
}
.cmp-next__inner { max-width: 1000px; }
.cmp-next__inner .h2 { color: var(--white); margin-bottom: 30px; }
.cmp-next__inner p { color: rgba(255,255,255,0.92); font-weight: var(--weight-light); font-size: var(--fs-body); line-height: 1.25; margin-bottom: 26px; }
.cmp-next__inner p:last-child { margin-bottom: 0; }

@media (max-width: 900px) {
  .cmp-hero__grid { grid-template-columns: 1fr; gap: 36px; }
  .cmprow__cards { grid-template-columns: 1fr; }
  .cmpc__vs { flex-basis: 120px; }
}

/* ==========================================================================
   KNOWLEDGE BASE (/kb/kb.php) — Simian-branded
   ========================================================================== */
.kb-hero { padding: 72px 0 8px; }
.kb-hero__inner { text-align: center; display: flex; flex-direction: column; align-items: center; }
.kb-hero__eyebrow { font-size: var(--fs-body-sm); font-weight: var(--weight-regular); color: var(--simian-green); margin-bottom: 14px; }
.kb-hero__eyebrow a { color: inherit; }
.kb-hero__eyebrow a:hover { color: var(--simian-blue); }
.kb-hero__title { color: var(--simian-blue); }
/* Compact, doc-style header for KB sub-pages (article / category / search) —
   smaller title, left-aligned, a proper "< Knowledge Base" back link. The big
   centered search hero stays on the KB home only. */
.kb-hero--sub { padding: 46px 0 0; }
.kb-hero--sub .kb-hero__inner { align-items: flex-start; text-align: left; }
.kb-hero--sub .kb-hero__eyebrow { margin-bottom: 10px; }
.kb-hero--sub .kb-hero__title { font-size: 40px; line-height: 1.14; }
.kb-hero--article .kb-hero__title { font-size: 34px; max-width: 760px; }
.kb-hero--sub .kb-search { margin-top: 22px; max-width: 520px; }
@media (max-width: 700px) {
  .kb-hero--sub .kb-hero__title,
  .kb-hero--article .kb-hero__title { font-size: 30px; }
}
.kb-search { display: flex; gap: 12px; width: 100%; max-width: 640px; margin-top: 34px; }
.kb-search input {
  flex: 1;
  border: 1.5px solid #cdd8dd;
  border-radius: var(--radius-pill);
  background: var(--white);
  padding: 14px 24px;
  font: inherit;
  font-size: var(--fs-body-sm);
  color: var(--ink);
}
.kb-search input:focus { outline: none; border-color: var(--simian-blue); box-shadow: 0 0 0 3px rgba(94,179,228,0.18); }
.kb-search .btn { flex: 0 0 auto; }

.kb-body { padding-top: 40px; }

/* Breadcrumbs */
.kb-crumbs { font-size: var(--fs-body-sm); color: var(--muted); font-weight: var(--weight-light); margin-bottom: 28px; }
.kb-crumbs a { color: var(--simian-green); }
.kb-crumbs a:hover { text-decoration: underline; }
.kb-crumbs span { margin: 0 8px; color: var(--color-2); }
/* Indent the content that sits below the breadcrumb (article list + article body)
   so it reads as nested under the crumb trail. Breadcrumb itself stays flush. */
.kb-body .kb-list, .kb-body .kb-article { padding-left: 22px; }
@media (max-width: 600px) { .kb-body .kb-list, .kb-body .kb-article { padding-left: 12px; } }

/* Category cards (index view) */
.kb-cats { display: grid; grid-template-columns: repeat(auto-fill, minmax(300px, 1fr)); gap: 22px; }
.kb-cat {
  display: flex; flex-direction: column; gap: 8px;
  background: #f8fafb;
  border-radius: 18px;
  padding: 30px 32px;
  transition: transform .2s ease, box-shadow .2s ease;
}
.kb-cat:hover { transform: translateY(-4px); box-shadow: 0 16px 30px rgba(2,30,43,0.10); }
.kb-cat__name { font-size: 27px; font-weight: var(--weight-light); color: var(--simian-blue); line-height: 1.1; }
.kb-cat__count { font-size: var(--fs-body-sm); color: var(--muted); font-weight: var(--weight-light); }

/* Article lists (category / search views) */
.kb-list { list-style: none; padding: 0; margin: 0; max-width: 860px; }
.kb-list__item { padding: 24px 0; border-bottom: 1px solid #e4ecf0; }
.kb-list__item:first-child { padding-top: 0; }
.kb-list__title { font-size: 24px; font-weight: var(--weight-regular); color: var(--simian-blue); line-height: 1.2; }
.kb-list__title:hover { text-decoration: underline; }
.kb-list__desc { font-size: var(--fs-body-sm); font-weight: var(--weight-light); color: var(--ink); margin-top: 8px; line-height: 1.4; }
.kb-list__meta { font-size: 14px; color: var(--muted); margin-top: 8px; }

/* Full article */
.kb-article { max-width: 820px; }
.kb-article__hero { width: 100%; height: auto; border-radius: 16px; margin-bottom: 28px; }
.kb-article__meta { font-size: 14px; color: var(--muted); margin-bottom: 26px; }
.kb-article__content { font-size: var(--fs-body); font-weight: var(--weight-light); line-height: 1.55; color: var(--ink); }
.kb-article__content h1, .kb-article__content h2, .kb-article__content h3 {
  font-weight: var(--weight-light); color: var(--simian-blue); line-height: 1.15;
  margin: 40px 0 14px;
}
.kb-article__content h1 { font-size: 40px; }
.kb-article__content h2 { font-size: 32px; }
.kb-article__content h3 { font-size: 25px; }
.kb-article__content p { margin: 0 0 20px; }
.kb-article__content a { color: var(--simian-blue); text-decoration: underline; }
.kb-article__content ul, .kb-article__content ol { margin: 0 0 20px; padding-left: 24px; }
.kb-article__content li { margin-bottom: 8px; }
.kb-article__content img { max-width: 100%; height: auto; border-radius: 10px; margin: 12px 0; }
.kb-article__content pre {
  background: #f4f7f9; border: 1px solid #e4ecf0; border-radius: 10px;
  padding: 18px 20px; overflow: auto; font-size: 15px; margin: 0 0 20px;
}
.kb-article__content code { background: #eef4f7; padding: 2px 6px; border-radius: 4px; font-size: 0.92em; }
.kb-article__content pre code { background: none; padding: 0; }
.kb-article__content blockquote {
  margin: 0 0 20px; padding: 4px 0 4px 24px; border-left: 3px solid var(--color-2);
  color: var(--muted); font-style: italic;
}
.kb-article__content table { border-collapse: collapse; width: 100%; margin: 0 0 20px; font-size: var(--fs-body-sm); }
.kb-article__content th, .kb-article__content td { border: 1px solid #e4ecf0; padding: 10px 14px; text-align: left; }
.kb-article__content th { background: #f8fafb; font-weight: var(--weight-regular); }
.kb-article__download { margin-top: 28px; }

.kb-empty { color: var(--muted); font-weight: var(--weight-light); padding: 40px 0; }

@media (max-width: 560px) {
  .kb-search { flex-direction: column; }
  .kb-search .btn { width: 100%; }
}

/* ==========================================================================
   Page stubs (coming-soon pages)
   ========================================================================== */
.stub { padding: 120px 0; }
.stub__inner { text-align: center; display: flex; flex-direction: column; align-items: center; }
.stub__inner .section__sub { margin: 18px auto 28px; }

/* ==========================================================================
   Responsive
   ========================================================================== */
/* Client logos: step 6 -> 4 columns early so they never crowd/shrink too far. */
@media (max-width: 1200px) {
  .clients__grid { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 28px 56px; }
}

@media (max-width: 1024px) {
  .feature-cards--3 { grid-template-columns: 1fr; max-width: 520px; margin-inline: auto; }
  .reel-insights__panel,
  .promo { grid-template-columns: 1fr; text-align: left; }
  .promo--eco { gap: 32px; }
  .promo__art { order: 2; }
  .uptime__grid { grid-template-columns: 1fr; gap: 32px; }
  .uptime__intro .section__sub { max-width: none; }
  .site-footer__cols { grid-template-columns: repeat(2, 1fr); gap: 32px 24px; }
  /* Reels page */
  .rl-hero__inner { grid-template-columns: 1fr; text-align: center; }
  .rl-hero__title { max-width: none; margin-inline: auto; }
  .rl-hero__sub { max-width: none; margin-inline: auto; }
  .live-reels__panel { grid-template-columns: 1fr; padding: 48px 24px; gap: 36px; }
  .live-reels__intro, .live-reels__title, .live-reels__sub { text-align: center; }
  .live-reels__sub { margin-inline: auto; }
  .live-reels__grid { grid-template-columns: 1fr; max-width: 420px; margin-inline: auto; }
  .trending__row { grid-template-columns: 1fr; gap: 32px; }
  .reelio-block__features { grid-template-columns: repeat(2, 1fr); }
  /* Microsites page */
  .ms-live__row { grid-template-columns: 1fr; }
  .ms-templates__row { grid-template-columns: 1fr; }
  .ms-templates__art { order: 2; }
  /* Ecosystem page */
  .eco-cat__grid { grid-template-columns: repeat(2, 1fr); }
  .eco-showcase__head { grid-template-columns: 1fr; gap: 32px; }
  .eco-feat__grid { grid-template-columns: repeat(2, 1fr); }
  .eco-story__head { grid-template-columns: 1fr; gap: 32px; }
  .eco-story__art { order: -1; }
  .eco-products { grid-template-columns: 1fr; max-width: 480px; margin-inline: auto; }
  /* Enterprise page */
  .ent-feat__grid { grid-template-columns: repeat(2, 1fr); }
  .ent-feat__title, .ent-feat__intro { min-height: 0; }
  .ent-why__grid { grid-template-columns: repeat(2, 1fr); gap: 44px 32px; }
  .ent-compliance { grid-template-columns: 1fr; gap: 28px; }
  .ent-compliance__title { text-align: center; }
  .ent-case__grid { grid-template-columns: 1fr; max-width: 620px; margin-inline: auto; }
  /* Free trial */
  .ft-main__row { grid-template-columns: 1fr; gap: 40px; }
  .why-ct__grid { grid-template-columns: repeat(2, 1fr); gap: 36px 24px; }
  /* Book a demo / contact */
  .demo-hero__row { grid-template-columns: 1fr; gap: 36px; }
  .contact-cards { grid-template-columns: 1fr; }
  /* Customer detail */
  .cd-main__row { grid-template-columns: 1fr; gap: 32px; }
  .cd-side { position: static; }
  .cd-article--offset { margin-left: 0; }
  .cd-quote__inner { flex-direction: column; align-items: flex-start; gap: 24px; }
  .cd-quote__mark { flex-basis: auto; width: 96px; }
  .cd-quote__text { font-size: 26px; }
  .more-stories__grid { grid-template-columns: 1fr; max-width: 560px; margin-inline: auto; }
  /* Customers page */
  .cust-hero__row { grid-template-columns: 1fr; gap: 36px; }
  .cs-card { grid-template-columns: 1fr; }
  .cs-card__media { min-height: 220px; }
  .cs-card__body { padding: 32px 30px; }
  .cs-card__logo { left: 22px; bottom: 22px; max-width: 118px; max-height: 44px; }
  .cs-card__title { font-size: 27px; }
  .cust-cases .container { gap: 20px; }
  /* About page */
  .about-hero__row { grid-template-columns: 1fr; gap: 32px; }
  .about-hero__art { order: -1; }
  .stw__grid { grid-template-columns: 1fr; gap: 44px; max-width: 460px; margin-inline: auto; }
  .beyond__row { grid-template-columns: 1fr; gap: 32px; }
  /* Pricing page */
  .pricing__grid { grid-template-columns: 1fr; max-width: 520px; margin-inline: auto; }
  .all-plans { grid-template-columns: 1fr; gap: 8px 0; }
  .all-plans__title { margin-bottom: 8px; }
  .more-storage { grid-template-columns: 1fr; gap: 32px; }
}

/* Collapse the nav to a hamburger at <=1024: the full nav (logo + 4 links +
   Free Trial pill) stops fitting around 960px and the button wraps, so switch
   to the mobile menu before that. */
@media (max-width: 1024px) {
  /* The nav card is inset by --container-pad on EVERY breakpoint, so on a
     390px phone it was 270px wide — 69% of the viewport, with the menu panel
     that hangs off it just as narrow. Pull the header's own padding in to
     16px; the card and its panel now run ~92% of the viewport. Only the
     header is touched — page sections keep --container-pad. */
  .site-header { position: relative; padding: 12px 16px; }
  .nav { position: relative; flex-wrap: wrap; }
  .nav__toggle { display: flex; }

  /* Square off the bar's bottom corners while the menu is open. The panel
     below is a separate box carrying its own `0 0 r r`, so leaving the bar
     rounded left a visible notch on both sides of the seam. */
  .nav[data-open="true"] { border-radius: var(--radius-nav) var(--radius-nav) 0 0; }

  .nav__links {
    position: absolute;
    top: 100%;
    left: 0;
    right: 0;
    background: var(--white);
    flex-direction: column;
    align-items: stretch;
    gap: 0;
    padding: 4px 20px 18px;
    box-shadow: 0 12px 20px rgba(0,0,0,.08);
    border-radius: 0 0 var(--radius-nav) var(--radius-nav);
    display: none;
    /* The panel is absolutely positioned, so it contributes nothing to the
       document height. Without a cap, an opened submenu runs past the bottom
       of the screen with no way to scroll to it. */
    max-height: calc(100vh - 128px);
    overflow-y: auto;
    overscroll-behavior: contain;
    -webkit-overflow-scrolling: touch;
  }
  .nav[data-open="true"] .nav__links { display: flex; }

  /* One full-width row per item, hairline-separated. `> li` rather than
     `.nav__item` because the CTA's <li> carries no class.

     Every row selector below is `> li >`, not the old blanket `.nav__links a`.
     That rule was (0,1,1) and so beat `.mega-card` (0,1,0) — it was stripping
     the product cards' padding as well as the CTA pill's, and it hit the
     dropdown's own links too. Scoping to direct children keeps it on the rows
     it is meant for. */
  .nav__links > li { width: 100%; }
  .nav__links > li + li { border-top: 1px solid rgba(2, 30, 43, .10); }
  .nav__links > li:last-child { border-top: 0; }
  /* display:block, because a plain <a> is inline — vertical padding on an
     inline box does not grow the line box, so the row collapsed to ~21px and
     the links overlapped their neighbours. */
  .nav__links > li > a { display: block; padding: 13px 0; width: 100%; }
  /* 3px of right padding, not 0: the chevron is an 8px square rotated 45deg,
     so its corner reaches ~1.7px past its own box and would otherwise push a
     2px horizontal scroll inside the panel. */
  .nav__mega-trigger { padding: 13px 3px 13px 0; width: 100%; justify-content: space-between; }

  /* The CTA is an <a> too, so the row rule above would flatten it to a block
     with no horizontal padding — which is exactly what made "Free Trial"
     overflow a 69px pill. Keep it a centred flex pill, full panel width. */
  .nav__links > li > .nav__cta {
    display: flex;
    width: 100%;
    padding: 13px 22px;
    min-height: 46px;
    margin: 14px 0 2px;
  }

  /* Mega-menu collapses into the mobile menu as a stacked list */
  .mega {
    position: static;
    opacity: 1; visibility: visible; transform: none;
    box-shadow: none; padding: 2px 0 12px; border-radius: 0;
    display: none;
  }
  .mega::after { display: none; }
  .mega::before { display: none; }   /* desktop drop-shadow layer */
  .nav__item--mega[data-open="true"] .mega { display: block; }
  .mega__grid { grid-template-columns: 1fr; gap: 10px; }

  /* Product cards: the logo gets a fixed column instead of its natural width,
     so a wide wordmark (reel.io is 500x132 — 145px at height 38) can no longer
     shove the copy out through the side of the card. */
  .mega-card {
    min-height: 0;
    padding: 16px 18px;
    flex-direction: row;
    align-items: center;
    gap: 16px;
    text-align: left;
    border-radius: 14px;
  }
  .mega-card__logo {
    margin-bottom: 0;
    height: 32px;
    flex: 0 0 auto;
    width: clamp(104px, 20%, 150px);   /* 104px on a phone, wider on a tablet */
    justify-content: flex-start;
  }
  .mega-card__logo img { height: 100%; width: 100%; object-fit: contain; object-position: left center; }
  .mega-card__logo[data-name]::after { font-size: 17px; line-height: 1.1; }
  .mega-card__desc { font-size: 14px; line-height: 1.35; min-width: 0; }
  .mega__cta { align-self: stretch; width: 100%; margin: 12px 0 2px; }

  /* Hamburger -> X (spans are 2px tall, 5px apart, so ±7px recentres them) */
  .nav[data-open="true"] .nav__toggle span:nth-child(1) { transform: translateY(7px) rotate(45deg); }
  .nav[data-open="true"] .nav__toggle span:nth-child(2) { opacity: 0; }
  .nav[data-open="true"] .nav__toggle span:nth-child(3) { transform: translateY(-7px) rotate(-45deg); }
}

@media (max-width: 900px) {
  :root {
    --fs-h1: 40px;
    --fs-h2: 34px;
    --fs-h3: 28px;
    --fs-h4: 24px;
    --fs-body: 20px;
    --fs-body-sm: 16px;
    --fs-nav: 17px;
    --container-pad: 24px;
  }
  .section { padding: 44px 0; }
  .clients { padding-left: 0; padding-right: 0; }
  .clients__grid { display: flex; flex-wrap: wrap; justify-content: center; align-items: center; gap: 26px 36px; }
  .clients__logo { flex: 0 0 auto; width: calc(33.333% - 24px); justify-content: center; }
  .reel-insights__panel { padding: 40px 28px; }
  .promo { padding: 40px 28px; }
  .promo__brand { height: 46px; }
  .promo__brand--howler { height: 66px; }
  .spec { padding: 0 24px; }
  .spec__row { gap: 18px; padding: 22px 0; }
  .spec__body { padding-left: 0; }
  .site-footer__bottom { flex-direction: column; align-items: flex-start; }

  /* Reels: close the gap between the Zombie Reels card and the Reel.io block */
  .trending { padding: 56px 0 32px; }
  .reelio-block { padding-top: 20px; }

  /* Microsites + Resources: center the switch/tab pills so wrapped rows aren't ragged */
  .ms-tags { justify-content: center; }
  .rtabs { justify-content: center; }
  .rtabs__tab { padding: 12px 20px; }

  /* Resources: fixed 480px phones panel left a big empty gap on mobile */
  .rhero { padding: 56px 0 8px; }
  .rhero__phones { height: auto; }
}

@media (max-width: 560px) {
  :root { --container-pad: 16px; }
  .clients__logo { width: calc(50% - 18px); }
  .cs-card__body { padding: 26px 20px; }
  .fits-icons { transform: scale(0.85); transform-origin: center top; }
  .site-footer__cols { grid-template-columns: 1fr; }
  .site-footer__cta-btns { flex-direction: column; align-items: stretch; }
  .hero__cta { width: 100%; max-width: 320px; }
  .eco-cat__grid { grid-template-columns: 1fr; }
  .eco-feat__grid { grid-template-columns: 1fr; max-width: 360px; margin-inline: auto; }
  .eco-feat__title { min-height: 0; }
  .reelio-block__features { grid-template-columns: 1fr; }
  .ent-feat__grid { grid-template-columns: 1fr; max-width: 420px; margin-inline: auto; }
  .ent-why__grid { grid-template-columns: 1fr; }
  .ent-why__item-title { min-height: 0; }
  .ent-why { padding: 48px 28px 56px; }
  .all-plans { grid-template-columns: 1fr; padding: 40px 28px; }
  .all-plans__cols { grid-template-columns: 1fr; grid-auto-flow: row; column-gap: 0; }
  .all-plans__item { padding: 16px 0; }
  .flex-storage__points { flex-direction: column; gap: 12px; }
  .ft-features { grid-template-columns: 1fr; }
  .ft-form__row { grid-template-columns: 1fr; }
  .why-ct__grid { grid-template-columns: 1fr; }
}

/* ---- Stacked-hero fixes (about / customers / enterprise / ecosystem) ------
   These heroes stack to one column at <=1024. On desktop they rely on a
   body-anchored gradient that turns white at a FIXED --hero-white px, but once
   stacked the hero height varies wildly with wrapping, so that fixed line cut
   across the hero and the big top padding left an empty gap. Instead each hero
   paints its OWN gradient sized to itself, so the boundary always lands at the
   hero's real bottom. Enterprise/ecosystem/about fade teal -> light-blue-gray;
   customers stays DARK (black -> teal) to match its desktop hero and to keep
   its white client logos legible. */
@media (max-width: 1024px) {
  /* Teal behind the top bar + nav, then each hero's own gradient below. */
  body.hero-dark--ent, body.hero-dark--eco, body.hero-dark--about {
    background-image: linear-gradient(180deg, #043f57 0, #043f57 175px, var(--white) 176px);
  }
  .ent-hero, .eco-hero, .about-hero {
    background: linear-gradient(180deg, #043f57 0%, #043f57 60px, #a4b9c2 100%);
  }
  /* Customers: dark hero (matches desktop black->teal; white logos need it). */
  body.hero-dark--customers {
    background-image: linear-gradient(180deg, #000 0, #000 175px, var(--white) 176px);
  }
  .cust-hero {
    background: linear-gradient(180deg, #000 0%, #043f57 240px, #043f57 100%);
  }
  .ent-hero   { padding: 44px 0 60px; }
  .eco-hero   { padding: 44px 0 60px; }
  .about-hero { padding: 36px 0 52px; }
  .cust-hero  { padding: 40px 0 56px; }
  /* Lead with the copy on stacked layout; art follows below. */
  .about-hero__art { order: 2; }
  /* Hero logo wall: let columns shrink + tighten gaps so it never spills, and
     constrain each logo to its cell so they don't overlap their neighbours. */
  .cust-hero__logos { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 34px 22px; }
  .cust-hero__logos img { max-width: 100%; }
}
@media (max-width: 560px) {
  /* Two-across is roomier than three on a phone. */
  .cust-hero__logos { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 30px 24px; }
}

/* ============ Cookie consent bar ============ */
.cookie-bar {
  position: fixed; left: 0; right: 0; bottom: 0; z-index: 1000;
  display: flex; align-items: center; justify-content: space-between; gap: 28px;
  padding: 18px 32px;
  background: var(--simian-blue); color: var(--white);
  box-shadow: 0 -2px 18px rgba(0, 0, 0, .18);
  transform: translateY(110%);
  transition: transform .35s ease;
}
.cookie-bar.is-visible { transform: translateY(0); }
.cookie-bar[hidden] { display: none; }
.cookie-bar__text { margin: 0; font-size: 15px; line-height: 1.5; font-weight: var(--weight-light, 300); max-width: 820px; }
.cookie-bar__text a { color: var(--white); text-decoration: underline; }
.cookie-bar__actions { flex: none; display: flex; gap: 12px; }
.cookie-bar__btn {
  cursor: pointer; border-radius: var(--radius-pill, 100px);
  font-family: inherit; font-weight: var(--weight-bold, 700); font-size: 15px;
  padding: 11px 30px; border: 1px solid var(--white);
  transition: background .15s ease, color .15s ease;
}
.cookie-bar__btn--solid { background: var(--white); color: var(--simian-blue); }
.cookie-bar__btn--solid:hover { background: #e8eef1; }
.cookie-bar__btn--ghost { background: transparent; color: var(--white); }
.cookie-bar__btn--ghost:hover { background: rgba(255, 255, 255, .12); }
.cookie-reopen {
  background: none; border: 0; padding: 0; cursor: pointer;
  color: inherit; font: inherit; text-decoration: underline; opacity: .85;
}
.cookie-reopen:hover { opacity: 1; }
@media (max-width: 640px) {
  .cookie-bar { flex-direction: column; align-items: flex-start; gap: 14px; padding: 16px 20px; }
  .cookie-bar__actions { width: 100%; }
  .cookie-bar__btn { flex: 1; padding: 12px 0; }
}
