/* The YES Standard RFP page — Figma "AI security hub" > Updated RFP
   (frames 2571:123245 standard, 2571:122290 customize, 2347:34676 modal).
   The "Next stop" card keeps the Figma layout with Romy's Book-a-demo copy
   (the Scorecard is out of this release). */
.rfp-page { background: #fdf2d4; }
.rfp-wrap { position: relative; overflow: hidden; overflow: clip; padding: 5.3125rem 1rem 2.0625rem; }
/* Plus field: the homepage's fixed .home-grid (plutonium.css); copy that sits
   straight on it gets the same soft cream halo as the homepage and catalog
   headings, so text wins over the pluses. */
.rfp-page :is(.rfp-title, .rfp-intro, .rfp-h2) { position: relative; isolation: isolate; width: fit-content; max-width: 100%; }
.rfp-page :is(.rfp-title, .rfp-intro, .rfp-h2)::before {
  content: '';
  position: absolute;
  inset: -0.5rem -0.875rem;
  z-index: -1;
  background: #fdf2d4;
  border-radius: 1rem;
  filter: blur(0.625rem);
  pointer-events: none;
}
.rfp-content { position: relative; z-index: 2; width: min(73.3125rem, 100%); margin: 0 auto; display: flex; flex-direction: column; gap: 4.375rem; }

/* Decorations hang off the right edge of the page, like the navbar's
   "Powered by" pill (50px from the edge at every width), so the ringed planet
   always sits under it. Offsets come from the 1440px Figma frame. */
.rfp-deco { position: absolute; z-index: 1; pointer-events: none; max-width: none; }
.rfp-deco-teal { right: 20.75rem; top: 4.5625rem; width: 4.3125rem; height: 4.25rem; animation: rfp-float-a 3s ease-in-out infinite alternate; }
.rfp-deco-star { right: 15rem; top: 4rem; width: 2rem; height: 2rem; animation: rfp-twinkle 2.4s ease-in-out infinite alternate; }
.rfp-deco-peach { right: 2.8125rem; top: 3.0625rem; width: 11rem; height: 10.375rem; animation: rfp-float-b 3.4s ease-in-out infinite alternate; }
/* Same loops as the homepage planets (home-motion.css). */
@keyframes rfp-float-a { from { transform: translate(0, .15rem) rotate(-1.5deg); } to { transform: translate(.2rem, -.65rem) rotate(1.5deg); } }
@keyframes rfp-float-b { from { transform: translate(0, -.35rem) rotate(1deg); } to { transform: translate(-.25rem, .45rem) rotate(-1.5deg); } }
@keyframes rfp-twinkle { from { transform: scale(.9) rotate(-8deg); } to { transform: scale(1.08) rotate(8deg); } }

.rfp-header { display: flex; flex-direction: column; gap: 3rem; }
.rfp-title { margin: 0; display: flex; flex-wrap: wrap; align-items: center; gap: 0.5625rem; font: 600 2.625rem/1.24 'Unbounded', 'Poppins', sans-serif; color: #000; }
.rfp-tag { display: inline-block; padding: 0.75rem 1.25rem; background: #9ee283; border: 0.039rem solid #000; box-shadow: 0.5rem 0.5rem 0 #000; font: 700 2.625rem/1 'Unbounded', 'Poppins', sans-serif; text-transform: uppercase; transform: rotate(-2deg); }
.rfp-intro { margin: 0; font: 400 1.5rem/2.25rem 'Poppins', sans-serif; color: #1c1917; }

.rfp-body { display: flex; flex-direction: column; gap: 2rem; }
.rfp-h2 { margin: 0 0 1.25rem; font: 600 1.5rem/1.25 'Unbounded', 'Poppins', sans-serif; color: #000; }
.rfp-path-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 3rem; }
.rfp-path { display: flex; flex-direction: column; align-items: flex-start; gap: 1rem; min-height: 17.3125rem; padding: 2.25rem 2rem; border: 0.0625rem solid #171717; border-radius: 1.9375rem; box-shadow: 0.4375rem 0.4375rem 0 #000; font-family: 'Poppins', sans-serif; color: #111; }
.rfp-path-green { background: #9ee283; }
.rfp-path-teal { background: #dfecea; }
.rfp-path-eyebrow, .rfp-path-body { margin: 0; font-size: 1.125rem; line-height: 1.6875rem; }
.rfp-path .rfp-btn-black { margin-top: auto; }
.rfp-path-title { margin: 0; font: 600 1.5rem/1.25 'Unbounded', 'Poppins', sans-serif; color: #000; }
/* Phones and small tablets: the two option cards stack (Sam, Nov 12). */
@media (max-width: 760px) {
  .rfp-path-grid { grid-template-columns: minmax(0, 1fr); gap: 1.75rem; }
  .rfp-path { min-height: 0; padding: 1.75rem 1.5rem; margin-right: 0.4375rem; }
  .rfp-path-title { font-size: 1.375rem; overflow-wrap: break-word; }
  .rfp-path .rfp-btn-black { margin-top: 0.5rem; }
}

.rfp-btn-black, .rfp-btn-yellow { display: inline-flex; align-items: center; justify-content: center; gap: 0.5rem; border: 0.0625rem solid #000; border-radius: 6.25rem; cursor: pointer; text-decoration: none; white-space: nowrap; }
.rfp-btn-black { padding: 0.75rem 1.5rem; background: #000; color: #fff; font: 600 1rem/1.25rem 'Poppins', sans-serif; }
.rfp-btn-black:hover { background: #292524; }
.rfp-btn-yellow { padding: 1rem 1.5rem; background: #f8f872; color: #000; font: 600 1.125rem/1.25rem 'Poppins', sans-serif; text-transform: uppercase; }
.rfp-btn-yellow:hover { background: #fefa98; }
.rfp-btn-yellow img { width: 1.25rem; height: 1.25rem; }
:is(.rfp-btn-black, .rfp-btn-yellow):focus-visible, .rfp-verify summary:focus-visible { outline: 0.125rem solid #000; outline-offset: 0.1875rem; }

/* the standard card */
.rfp-standard { scroll-margin-top: 6rem; overflow: hidden; overflow: clip; background: #fef6e1; border: 0.0625rem solid #000; border-radius: 1.5rem; box-shadow: 0.1875rem 0.1875rem 0 #000; }
.rfp-standard-head { display: flex; align-items: center; justify-content: space-between; gap: 0.75rem; padding: 1.25rem 1.5rem; background: #9ee283; border-bottom: 0.0625rem solid rgba(0, 0, 0, 0.5); }
.rfp-standard[data-mode="custom"] .rfp-standard-head { background: #dfecea; }
.rfp-standard-titles { display: flex; flex-direction: column; gap: 0.25rem; min-width: 0; }
.rfp-standard[data-mode="custom"] .rfp-standard-titles { gap: 0.5rem; }
.rfp-standard-title { margin: 0; font: 600 1.25rem/1.25 'Unbounded', 'Poppins', sans-serif; color: #000; }
.rfp-standard-sub { margin: 0; font: 400 1.125rem/1.6875rem 'Poppins', sans-serif; color: #111; }
.rfp-standard-sub strong { font-weight: 600; }
.rfp-standard-body { display: flex; flex-direction: column; gap: 1rem; padding: 1.25rem; }
.rfp-covers-title { margin: 0; font: 600 1.25rem/1.25rem 'Unbounded', 'Poppins', sans-serif; color: #1c1917; }
.rfp-domains { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1.25rem; }
.rfp-domain { display: flex; background: #fdf2d4; border: 0.0625rem solid #171717; border-radius: 1rem; transition: background-color .15s ease, box-shadow .15s ease; }
.rfp-domain:hover, .rfp-domain:focus-within { background: #ffedbb; box-shadow: 0.1875rem 0.1875rem 0 #000; }
.rfp-domain-link { flex: 1; display: flex; flex-direction: column; gap: 0.75rem; padding: 1.25rem 2rem; border-radius: inherit; color: inherit; text-decoration: none; }
.rfp-domain-link:focus-visible { outline: 0.125rem solid #000; outline-offset: 0.1875rem; }
.rfp-group { scroll-margin-top: 7rem; }
.rfp-domain h4 { margin: 0; font: 600 1.25rem/1.25rem 'Unbounded', 'Poppins', sans-serif; color: #1c1917; }
.rfp-domain p { margin: 0; font: 400 1.125rem/1.6875rem 'Poppins', sans-serif; color: #111; }
@media (max-width: 1000px) { .rfp-domains { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 600px) {
  .rfp-domains { grid-template-columns: minmax(0, 1fr); gap: 0.875rem; }
  .rfp-domain-link { padding: 1.125rem 1.25rem; }
  .rfp-domain p { font-size: 1rem; line-height: 1.5rem; }
}

.rfp-reqs { list-style: none; margin: 0; padding: 0; overflow: hidden; background: #fef6e1; border: 0.0625rem solid #000; border-radius: 1rem; }
.rfp-req { display: flex; flex-direction: column; gap: 0.75rem; padding: 1rem 1.25rem; background: #fff; border-bottom: 0.0625rem solid #000; font-family: 'Poppins', sans-serif; color: #1c1917; }
.rfp-req:last-child { border-bottom: 0; }
.rfp-req-name { display: flex; align-items: center; gap: 0.5rem; font-weight: 600; font-size: 1rem; line-height: 1.25rem; }
.rfp-standard[data-mode="custom"] .rfp-req-name { cursor: pointer; }
.rfp-req-body { margin: 0; font-weight: 500; font-size: 0.875rem; line-height: 1.25rem; }
.rfp-verify { display: flex; flex-direction: column; gap: 0.5rem; }
.rfp-verify summary { display: inline-flex; align-items: center; gap: 0.375rem; width: max-content; cursor: pointer; list-style: none; font-weight: 600; font-size: 0.75rem; line-height: 1.25rem; }
.rfp-verify summary::-webkit-details-marker { display: none; }
.rfp-verify summary img { width: 1rem; height: 1rem; transform: rotate(-90deg); transition: transform .15s ease; }
.rfp-verify[open] summary img { transform: none; }
.rfp-verify p { margin: 0.5rem 0 0; padding: 0.5rem; background: #fbf5f2; border: 0.0625rem solid #d6d3d1; border-radius: 0.25rem; font-size: 0.75rem; line-height: 1.25rem; color: #78716c; }


/* download gate status */
.rfp-toast { position: fixed; left: 50%; bottom: 2rem; z-index: 1000; transform: translateX(-50%); margin: 0; padding: 0.75rem 1.25rem; background: #111; color: #fff; border-radius: 6.25rem; font: 500 0.9375rem/1.25rem 'Poppins', sans-serif; box-shadow: 0.25rem 0.25rem 0 #000; }
.rfp-toast[hidden] { display: none; }

/* customize: reset link */
.rfp-reset { margin-left: 0.5rem; padding: 0; border: 0; background: none; cursor: pointer; font: 600 1.125rem/1.6875rem 'Poppins', sans-serif; color: #000; text-decoration: underline; text-underline-offset: 0.2rem; }
.rfp-reset:focus-visible { outline: 0.125rem solid #000; outline-offset: 0.1875rem; }

/* Book a demo card (Figma 2786:52118). The two outline stars sit half behind
   the card's left edge; the sparkles are inside its bottom-right corner. */
.rfp-demo { position: relative; isolation: isolate; margin: 1.5rem 0 4.25rem; }
.rfp-demo-star { position: absolute; z-index: -1; max-width: none; pointer-events: none; }
.rfp-demo-star-a { left: -3.8419rem; top: 3.8738rem; width: 7.7213rem; height: 7.7213rem; }
.rfp-demo-star-b { left: -2.7544rem; top: 4.96rem; width: 5.5481rem; height: 5.5481rem; }
.rfp-demo-card { position: relative; display: flex; align-items: center; gap: 3.5rem; padding: 3.875rem; background: #dce6de; border: 0.0625rem solid #000; border-radius: 1.8125rem; }
.rfp-demo-text { flex: 1; min-width: 0; max-width: 45.125rem; display: flex; flex-direction: column; gap: 0.75rem; }
.rfp-demo-title { margin: 0; font: 700 1.75rem/2.375rem 'Unbounded', 'Poppins', sans-serif; color: #111013; }
.rfp-demo-body { margin: 0; font: 400 1.375rem/2.25rem 'Poppins', sans-serif; color: #78716c; }
.rfp-demo-button { flex: none; display: inline-flex; align-items: center; justify-content: center; width: 18.625rem; height: 3.25rem; padding: 1rem 1.75rem 1rem 1.375rem; background: #000; border-radius: 6.25rem; font: 700 1rem/1.25rem 'Poppins', sans-serif; letter-spacing: 0.09em; text-transform: uppercase; color: #fff; text-decoration: none; }
.rfp-demo-button:hover { background: #292524; }
.rfp-demo-button:focus-visible { outline: 0.125rem solid #000; outline-offset: 0.1875rem; }
.rfp-demo-sparkle { position: absolute; max-width: none; pointer-events: none; }
.rfp-demo-sparkle-lg { right: 2.7813rem; bottom: 2.2125rem; width: 1.8588rem; height: 1.8594rem; }
.rfp-demo-sparkle-sm { right: 1.8175rem; bottom: 3.8575rem; width: 0.8669rem; height: 0.8675rem; }
@media (max-width: 900px) {
  .rfp-demo-card { flex-direction: column; align-items: flex-start; gap: 1.5rem; padding: 2rem 1.5rem 3.5rem; }
  .rfp-demo-title { font-size: 1.375rem; line-height: 1.875rem; }
  .rfp-demo-body { font-size: 1.125rem; line-height: 1.75rem; }
  .rfp-demo-button { width: 100%; }
  .rfp-demo-star { display: none; }
  /* The button is full width here, so the sparkles move below it instead of overlapping its edge. */
  .rfp-demo-sparkle-lg { right: 2rem; bottom: 0.75rem; }
  .rfp-demo-sparkle-sm { right: 1.125rem; bottom: 2.125rem; }
}

/* header actions: Open Preview + download */
.rfp-standard-actions { display: flex; align-items: center; gap: 1rem; flex: none; }
.rfp-covers-head { display: flex; flex-direction: column; gap: 0.5rem; padding: 0.25rem 0; }
.rfp-covers-sub { margin: 0; font: 400 1.125rem/1.6875rem 'Poppins', sans-serif; color: #111; }

/* Customize: the head (title, n/33 selected, Reset, Download) sticks under the
   navbar while the visitor ticks requirements (Wedian, 9.11 review). The
   wrappers clip instead of hide so sticky keeps working; rfp.js sets the two
   offsets and adds .is-stuck once the head has left its place. */
.rfp-standard[data-mode="custom"] .rfp-standard-head { position: sticky; top: var(--rfp-sticky-top, 5rem); z-index: 6; transition: box-shadow .18s ease; }
.rfp-standard[data-mode="custom"] .rfp-standard-head.is-stuck { box-shadow: 0 0.3125rem 0.75rem -0.25rem rgba(0, 0, 0, 0.28); }
.rfp-group { scroll-margin-top: calc(var(--rfp-sticky-top, 5rem) + var(--rfp-head-h, 0px) + 1rem); }
.rfp-mobile-bar { display: none; }
@media (max-width: 760px) {
  /* Phones: the head stays in place; the bottom bar carries count + Download. */
  .rfp-standard[data-mode="custom"] .rfp-standard-head { position: static; box-shadow: none; }
  .rfp-group { scroll-margin-top: calc(var(--rfp-sticky-top, 4rem) + 1rem); }
  .rfp-standard[data-mode="custom"] .rfp-mobile-bar:not([hidden]) {
    position: sticky; bottom: 0; z-index: 6;
    display: flex; align-items: center; justify-content: space-between; gap: 0.75rem;
    padding: 0.75rem 1rem calc(0.75rem + env(safe-area-inset-bottom));
    background: #dfecea; border-top: 0.0625rem solid #000;
    box-shadow: 0 -0.3125rem 0.75rem -0.25rem rgba(0, 0, 0, 0.2);
  }
  .rfp-mobile-count { margin: 0; font: 400 1rem/1.25rem 'Poppins', sans-serif; color: #111; }
  .rfp-mobile-count strong { font-weight: 600; }
  .rfp-mobile-bar .rfp-btn-yellow { padding: 0.625rem 1rem; font-size: 0.9375rem; }
}
.rfp-count-bump { display: inline-block; animation: rfp-count-bump .32s ease; }
@keyframes rfp-count-bump { 40% { transform: scale(1.25); } }
@media (prefers-reduced-motion: reduce) { .rfp-standard-head { transition: none; } .rfp-count-bump { animation: none; } }

/* requirements grouped by domain (Figma 2571:124091) */
.rfp-reqs-head { margin-top: 0.25rem; }
.rfp-groups { display: flex; flex-direction: column; gap: 1rem; }
.rfp-group { position: relative; overflow: hidden; background: #fef6e1; border: 0.0625rem solid #000; border-radius: 1rem; }
.rfp-group-title { display: flex; align-items: center; gap: 0.5rem; padding: 1rem 1.25rem; background: #fff; border-bottom: 0.0625rem solid #000; font: 600 1.25rem/1.25rem 'Unbounded', 'Poppins', sans-serif; color: #1c1917; }
.rfp-standard[data-mode="custom"] .rfp-group:not(.is-locked) .rfp-group-title { cursor: pointer; }
.rfp-group-reqs { list-style: none; margin: 0; padding: 0; }
.rfp-group .rfp-req { border-bottom: 0.0625rem solid #000; }
.rfp-group .rfp-req:last-child { border-bottom: 0; }
.rfp-group.is-locked .rfp-group-title { border-bottom-color: rgba(0, 0, 0, 0.25); }
.rfp-veil { position: absolute; left: 0; right: 0; bottom: 0; top: 3.3125rem; border-radius: 0 0 0.9375rem 0.9375rem; display: flex; align-items: center; justify-content: center; background: rgba(253, 242, 212, 0.3); -webkit-backdrop-filter: blur(0.46875rem); backdrop-filter: blur(0.46875rem); }
.rfp-unlock { display: inline-flex; align-items: center; gap: 0.375rem; padding: 0.75rem 1.5rem; background: #fdf2d4; border: 0.0625rem solid #000; border-radius: 6.25rem; cursor: pointer; font: 700 0.875rem/1 'Poppins', sans-serif; letter-spacing: 0.09em; text-transform: uppercase; color: #000; }
.rfp-unlock:hover { background: #fefa98; }
.rfp-unlock:focus-visible { outline: 0.125rem solid #000; outline-offset: 0.1875rem; }
.rfp-unlock img { width: 1rem; height: 1rem; }
.rfp-standard[data-mode="standard"] .rfp-custom-only { display: none; }
.rfp-standard[data-mode="custom"] .rfp-req-name { cursor: pointer; }

@media (max-width: 760px) {
  .rfp-standard-actions { flex-wrap: wrap; }
}
/* Phones: the title gets its own line above Download, so long words
   ("enablement") are never hidden behind the button. */
@media (max-width: 600px) {
  .rfp-standard-head { flex-direction: column; align-items: flex-start; gap: 1rem; padding: 1.25rem; }
  .rfp-standard-titles { width: 100%; }
  .rfp-standard-title { overflow-wrap: break-word; }
}
@media (prefers-reduced-motion: reduce) { .rfp-deco { animation: none; } }

/* data-standard-only / data-custom-only toggles win over display rules. */
.rfp-standard [hidden] { display: none !important; }

/* Checkbox: Figma component 2098:13255 (16px box, 1px outside border, 2px
   radius, hard 1px drop shadow). Checking pops the box and grows the tick. */
.rfp-check {
  appearance: none; -webkit-appearance: none; flex: none; box-sizing: content-box;
  width: 1rem; height: 1rem; margin: 0 0.0625rem 0.0625rem 0;
  border: 0.0625rem solid #000; border-radius: 0.1875rem;
  background: #fdfdfd url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M14.3337 5L7.00033 12.3333L3.66699 9' fill='none' stroke='%23FAFAF9' stroke-width='1.33' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center / 0 0 no-repeat;
  box-shadow: 0.0625rem 0.0625rem 0 #000;
  cursor: pointer;
  transition: background-color .16s ease, border-color .16s ease, box-shadow .16s ease, background-size .2s cubic-bezier(.34, 1.56, .64, 1);
}
.rfp-check:hover { background-color: #fff3ee; }
.rfp-check:checked { background-color: #ff7659; background-size: 1rem 1rem; border-color: #d75127; box-shadow: 0.0625rem 0.0625rem 0 #d75127; }
.rfp-check.is-popping:checked { animation: rfp-check-pop .22s ease-out; }
.rfp-check:checked:hover { background-color: #ff6a4a; }
.rfp-check:focus-visible { outline: 0.125rem solid #000; outline-offset: 0.1875rem; }
.rfp-check[hidden] { display: none; }
@keyframes rfp-check-pop { 0% { transform: scale(.85); } 60% { transform: scale(1.1); } 100% { transform: scale(1); } }
@media (prefers-reduced-motion: reduce) { .rfp-check { transition: none; } .rfp-check.is-popping:checked { animation: none; } }

/* Requirements as plain HTML (scripts/build_rfp_data.py) for search engines and
   AI crawlers that do not run JavaScript. rfp.js replaces them on load; with
   JavaScript on, html.rfp-js hides them before the first paint. */
html.rfp-js .rfp-static { display: none; }
.rfp-static { display: flex; flex-direction: column; gap: 1rem; }
.rfp-static-line { margin: 0; padding: 0.75rem 1.25rem 0; font: 400 0.875rem/1.4 'Poppins', sans-serif; color: #44403c; }
.rfp-static-meta { margin: 0.5rem 0 0; font: 600 0.75rem/1 'Poppins', sans-serif; text-transform: uppercase; letter-spacing: 0.05em; color: #57534e; }
