/* Disclosure - ported from Framer code component Disclosure.tsx
   One expandable row for accordions / FAQ lists. The header is a real <button>
   carrying aria-expanded + aria-controls; the body region opens by animating
   grid-template-rows from 0fr to 1fr, which reaches the natural height of the
   content without measuring anything in JS.

   Hover is only offered to devices with a real pointer; keyboard focus draws a
   ring in the hover colour; reduced motion keeps the colour change but drops the
   chevron movement and the open/close animation. Per-instance sizes (title size,
   padding, chevron, duration) arrive as inline styles / custom properties from
   the macro so the shared sheet text is identical for every row. */
.fr-disc {
  --fr-disc-ink: rgb(25, 25, 25);
  --fr-disc-hover: rgb(139, 109, 85);
  --fr-disc-dur: 0.32s;
  --fr-disc-chev: 11px;
  --fr-disc-ease: cubic-bezier(.16, 1, .3, 1);
  width: 100%;
}
.fr-disc__hit {
  appearance: none;
  -webkit-appearance: none;
  background: none;
  border: 0;
  margin: 0;
  box-sizing: border-box;
  cursor: pointer;
  display: flex;
  align-items: flex-start;
  gap: 16px;
  width: 100%;
  padding: var(--fr-disc-pad, 18.4px) 0;
  text-align: left;
  color: var(--fr-disc-ink);
  transition: color 0.22s var(--fr-disc-ease);
}
.fr-disc__hit:focus { outline: none; }
.fr-disc__hit:focus-visible { outline: 2px solid var(--fr-disc-hover); outline-offset: 3px; border-radius: 2px; }
.fr-disc__title { flex: 1 1 auto; }
.fr-disc__chev { display: inline-flex; flex: 0 0 auto; align-self: center; transition: transform 0.22s var(--fr-disc-ease); }
/* Two borders on a square form the arrow; the nudges keep it optically centred. */
.fr-disc__chev i {
  display: block;
  width: var(--fr-disc-chev);
  height: var(--fr-disc-chev);
  border-right: 2px solid currentColor;
  border-bottom: 2px solid currentColor;
  transform: rotate(45deg) translate(-2px, -2px);
  transition: transform 0.22s var(--fr-disc-ease);
}
.fr-disc.is-open .fr-disc__chev i { transform: rotate(225deg) translate(-1px, -1px); }
.fr-disc__region {
  display: grid;
  grid-template-rows: 0fr;
  transition: grid-template-rows var(--fr-disc-dur) var(--fr-disc-ease);
}
.fr-disc.is-open .fr-disc__region { grid-template-rows: 1fr; }
/* minHeight 0 is what lets the grid child collapse below its content height. */
.fr-disc__clip { overflow: hidden; min-height: 0; }
.fr-disc__body { padding: 0 0 var(--fr-disc-bodypad, 22.4px); }
@media (hover: hover) {
  .fr-disc__hit:hover { color: var(--fr-disc-hover); }
  .fr-disc__hit[aria-expanded="false"]:hover .fr-disc__chev i { transform: rotate(45deg) translate(-2px, -2px) translateY(2px); }
}
@media (prefers-reduced-motion: reduce) {
  .fr-disc__hit, .fr-disc__chev, .fr-disc__chev i, .fr-disc__region { transition: none; }
  .fr-disc__hit[aria-expanded="false"]:hover .fr-disc__chev i { transform: rotate(45deg) translate(-2px, -2px); }
}
