/* Bidrock /features page. Scoped under .ft-page so it doesn't collide with the
   Framer chrome (nav + footer). Brand styling: Poppins headings, Inter body. */
:root {
  --ft-teal: #004746; --ft-green: #00bc72; --ft-mteal: #0e6362;
  --ft-gray: #727272; --ft-ink: #101010; --ft-light: #f2f4f7; --ft-border: #ccdada;
}
/* data-framer-root is display:contents, so .ft-page becomes a direct flex item
   of Framer's column wrapper (align-items:center). Without these it shrinks to
   its content width (varying per page, and narrower than the footer). Stretching
   to full width lets the inner .ft-hero/.ft-layout center at exactly 1200px -
   identical on every page and aligned with the footer. */
.ft-page { font-family: "Poppins", "Poppins Placeholder", sans-serif; color: var(--ft-ink); background: #fff; -webkit-font-smoothing: antialiased; width: 100%; align-self: stretch; }
.ft-page * { box-sizing: border-box; }
.ft-accent { color: var(--ft-green); }

/* Shared pill */
.ft-pill { display: inline-flex; align-items: center; gap: 6px; background: #fff; border: 1px solid rgb(240, 244, 247); border-radius: 40px; padding: 6px 10px; font-family: "Poppins", "Poppins Placeholder", sans-serif; font-weight: 600; font-size: 14px; letter-spacing: 0; text-transform: uppercase; color: var(--ft-teal); }
.ft-pill svg { flex-shrink: 0; }

/* Hero - centered, same max-width as the layout + footer so everything lines up */
.ft-hero { max-width: 1200px; margin: 0 auto; padding: 80px 32px 40px; text-align: center; }
.ft-hero .ft-pill { margin-bottom: 22px; }
.ft-hero h1 { font-family: "Poppins", sans-serif; font-weight: 500; font-size: 56px; line-height: 1.1; letter-spacing: -.02em; color: var(--ft-teal); margin: 0 auto 18px; max-width: 760px; }
.ft-hero p { font-family: "Inter", sans-serif; font-weight: 400; font-size: 18px; line-height: 1.6; color: var(--ft-gray); margin: 0 auto; max-width: 640px; }

/* Always show the vertical scrollbar so short and tall feature pages have the
   exact same viewport width (and therefore identical content width + position). */
html { overflow-y: scroll; scrollbar-gutter: stable; }
/* Layout: section nav (left) + content (right) - minmax(0,1fr) keeps the content
   column an identical width on every page (no min-content blowout) */
.ft-layout { max-width: 1200px; margin: 0 auto; padding: 24px 32px 96px; display: grid; grid-template-columns: 240px minmax(0, 1fr); gap: 56px; align-items: start; }
.ft-sections { min-width: 0; }
.ft-nav { position: relative; align-self: stretch; }
.ft-nav-inner { position: relative; }
.ft-nav.is-fixed .ft-nav-inner { position: fixed; top: 96px; }
.ft-nav.is-bottom .ft-nav-inner { position: absolute; bottom: 0; left: 0; right: 0; top: auto; }
.ft-nav-title { font-family: "Poppins", sans-serif; font-weight: 600; font-size: 12px; letter-spacing: .06em; text-transform: uppercase; color: var(--ft-gray); margin: 0 0 16px; padding-left: 14px; }

/* Expandable groups */
.ft-group { margin-bottom: 4px; }
.ft-group-head { width: 100%; display: flex; align-items: center; gap: 12px; padding: 10px 14px; border: none; background: none; cursor: pointer; border-radius: 10px; font-family: "Poppins", sans-serif; font-weight: 500; font-size: 18px; color: var(--ft-ink); text-align: left; text-decoration: none; transition: background .2s, color .2s; }
.ft-group-head:hover { background: var(--ft-light); }
.ft-group.current > .ft-group-head { color: var(--ft-teal); font-weight: 600; }
.ft-group-icon { width: 28px; height: 28px; flex-shrink: 0; display: flex; align-items: center; justify-content: center; border-radius: 8px; background: var(--ft-light); color: var(--ft-gray); transition: background .2s, color .2s; }
.ft-group.open .ft-group-icon { background: var(--ft-teal); color: #fff; }
.ft-group-label { flex: 1; display: flex; align-items: center; gap: 8px; }
.ft-chev { flex-shrink: 0; color: var(--ft-gray); transition: transform .25s; }
.ft-group.open .ft-chev { transform: rotate(180deg); }
.ft-sublist { display: none; padding: 4px 0 8px 40px; }
.ft-group.open .ft-sublist { display: block; }
.ft-sublink { display: block; padding: 7px 12px; border-radius: 8px; border-left: 2px solid transparent; font-family: "Poppins", sans-serif; font-weight: 500; font-size: 15px; color: var(--ft-gray); text-decoration: none; transition: color .2s, background .2s; }
.ft-sublink:hover { color: var(--ft-teal); }
.ft-sublink.active { color: var(--ft-teal); font-weight: 600; }
.ft-soon { display: inline-block; font-family: "Inter", sans-serif; font-weight: 600; font-size: 10px; letter-spacing: .03em; text-transform: uppercase; color: var(--ft-green); background: rgba(0, 188, 114, .12); border-radius: 20px; padding: 2px 8px; }
.ft-label { display: inline-block; font-family: "Poppins", sans-serif; font-weight: 600; font-size: 13px; letter-spacing: .04em; text-transform: uppercase; color: var(--ft-green); margin-bottom: 14px; }

/* Sections */
.ft-section { margin-bottom: 100px; scroll-margin-top: 96px; }
.ft-section:last-child { margin-bottom: 0; }
.ft-section .ft-pill { margin-bottom: 18px; }
.ft-section .ft-pill + h2 { margin-top: 0; }
.ft-section h2 { font-family: "Poppins", sans-serif; font-weight: 500; font-size: 38px; line-height: 1.15; letter-spacing: -.02em; color: var(--ft-teal); margin: 0 0 16px; }
.ft-desc { font-family: "Inter", sans-serif; font-weight: 400; font-size: 17px; line-height: 1.65; color: var(--ft-gray); margin: 0 0 22px; max-width: 620px; }
.ft-list { list-style: none; margin: 0 0 32px; padding: 0; }
.ft-list li { display: flex; align-items: flex-start; gap: 10px; font-family: "Inter", sans-serif; font-size: 15px; color: var(--ft-ink); padding: 7px 0; }
.ft-list li svg { flex-shrink: 0; margin-top: 1px; }
.ft-list em { font-style: normal; color: var(--ft-gray); }

/* Coming-soon badge */
.ft-soon { display: inline-block; margin-left: 8px; font-family: "Inter", sans-serif; font-weight: 600; font-size: 11px; letter-spacing: .03em; text-transform: uppercase; color: var(--ft-green); background: rgba(0, 188, 114, .12); border-radius: 20px; padding: 3px 9px; vertical-align: middle; }

/* Media */
.ft-media { position: relative; border-radius: 16px; overflow: hidden; background: var(--ft-light); border: 1px solid var(--ft-border); box-shadow: 0 12px 40px rgba(0, 71, 70, .08); aspect-ratio: 16/10; }
.ft-media video { display: block; width: 100%; height: 100%; object-fit: cover; }
.ft-media .ft-shot { display: block; width: 100%; height: 100%; object-fit: cover; object-position: top left; }
/* Static screenshots render at their natural aspect (full content, no crop) inside the framed card */
.ft-media.ft-media-shot { aspect-ratio: auto; background: #fff; }
.ft-media.ft-media-shot .ft-shot { height: auto; object-fit: contain; }
.ft-media-ph { position: absolute; inset: 0; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 12px; color: var(--ft-teal); text-align: center; padding: 24px; }
.ft-media-ph span { font-family: "Poppins", sans-serif; font-size: 14px; font-weight: 500; }
.ft-media-ph small { font-family: "Inter", sans-serif; font-size: 12px; color: var(--ft-gray); }

/* Coming soon - blurred product backdrop + big dark-green label */
.ft-soon-cell { background: var(--ft-light); }
.ft-soon-bg { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: top left; filter: saturate(.92); }
.ft-soon-overlay { position: absolute; inset: 0; display: flex; align-items: center; justify-content: center; padding: 24px; background: radial-gradient(120% 120% at 50% 50%, rgba(255, 255, 255, .35) 0%, rgba(241, 247, 245, .58) 100%); }
.ft-soon-overlay span { font-family: "Poppins", sans-serif; font-weight: 600; font-size: clamp(28px, 5vw, 46px); letter-spacing: .04em; text-transform: uppercase; color: var(--ft-teal); text-align: center; line-height: 1.1; text-shadow: 0 2px 18px rgba(255, 255, 255, .7); }

@media (max-width: 980px) {
  .ft-hero { padding: 56px 20px 36px; }
  .ft-hero h1 { font-size: 36px; }
  .ft-layout { grid-template-columns: 1fr; gap: 8px; padding: 16px 20px 72px; }
  .ft-nav { align-self: auto; }
  .ft-nav.is-fixed .ft-nav-inner, .ft-nav.is-bottom .ft-nav-inner { position: relative; top: auto; left: auto; right: auto; bottom: auto; width: auto !important; }
  .ft-section { margin-bottom: 64px; }
  .ft-section h2 { font-size: 28px; }
}
