.ffda-archive,
.ffda-facts,
.ffda-closure,
.ffda-memories,
.ffda-submit {
  --ffda-plum: #571548;
  --ffda-deep: #25051f;
  --ffda-pink: #ed1593;
  --ffda-yellow: #ffe53d;
  --ffda-ink: #38102f;
  --ffda-line: #f2dce9;
  color: var(--ffda-ink);
  font-family: inherit;
}

.ffda-archive { margin: 1.5rem auto 2.5rem; }
.ffda-hero {
  position: relative; overflow: hidden; margin: 0 0 23px; padding: clamp(25px, 4vw, 42px);
  border: 1px solid rgba(255,255,255,.24); border-radius: 24px;
  background: radial-gradient(circle at 82% 20%, rgba(237,21,147,.55), transparent 30%), linear-gradient(115deg, #25051f, #571548 63%, #761451);
  color: #fff; box-shadow: 0 12px 30px rgba(87,21,72,.2);
}
.ffda-hero::after { content: "♫"; position: absolute; right: 4%; bottom: -55px; color: rgba(255,255,255,.08); font-size: 11rem; line-height: 1; transform: rotate(-12deg); pointer-events: none; }
.ffda-eyebrow { display: inline-block; margin: 0 0 14px; padding: 6px 12px; border-radius: 5px; background: var(--ffda-yellow); color: #37102d; font-size: .75rem; font-weight: 950; letter-spacing: .07em; transform: rotate(-1deg); }
.ffda-hero h2 { position: relative; z-index: 1; margin: 0 0 8px; color: #fff; font-size: clamp(2rem, 5vw, 3.2rem); font-weight: 900; line-height: 1.06; text-shadow: 0 2px 12px rgba(0,0,0,.16); }
.ffda-hero > p:not(.ffda-eyebrow) { position: relative; z-index: 1; max-width: 720px; margin: 0; color: #fbe8f5; font-size: clamp(1rem, 1.7vw, 1.16rem); line-height: 1.6; }
.ffda-hero-note { position: relative; z-index: 1; display: inline-block; margin-top: 18px; padding: 8px 14px; border: 1px solid rgba(255,255,255,.26); border-radius: 999px; color: #fff; font-size: .86rem; font-weight: 800; }
.ffda-filters {
  display: grid;
  grid-template-columns: minmax(220px, 1fr) minmax(180px, .48fr) auto;
  align-items: end;
  gap: 14px;
  padding: clamp(18px, 3vw, 30px);
  margin: 0 0 24px;
  border: 1px solid #f0d6e6;
  border-radius: 22px;
  background: linear-gradient(120deg, #fff 55%, #fff3fa 100%);
  box-shadow: 0 8px 24px rgba(87, 21, 72, .08);
}
.ffda-filters label, .ffda-submit label { display: flex; flex-direction: column; gap: 7px; font-weight: 700; }
.ffda-filters label span { font-size: .83rem; color: var(--ffda-plum); }
.ffda-filters input, .ffda-filters select, .ffda-submit input[type="text"], .ffda-submit input[type="email"], .ffda-submit textarea {
  width: 100%; min-height: 48px; padding: 11px 14px; border: 1px solid #e9cddd; border-radius: 12px;
  background: #fffafd; color: #32102b; font: inherit; box-shadow: inset 0 1px 2px rgba(50,16,43,.035);
}
.ffda-filters input:focus, .ffda-filters select:focus, .ffda-submit input:focus, .ffda-submit textarea:focus {
  outline: 3px solid rgba(237,21,147,.18); border-color: var(--ffda-pink);
}
.ffda-archive button, .ffda-submit button {
  min-height: 48px; padding: 11px 22px; border: 0; border-radius: 999px; background: var(--ffda-pink);
  color: #fff; font: inherit; font-weight: 800; cursor: pointer; box-shadow: 0 5px 14px rgba(237,21,147,.24);
  transition: transform .18s ease, box-shadow .18s ease;
}
.ffda-archive button:hover, .ffda-submit button:hover { transform: translateY(-2px); box-shadow: 0 8px 18px rgba(237,21,147,.3); }
.ffda-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 20px; }
.ffda-card {
  overflow: hidden; border: 1px solid #f0dce9; border-radius: 20px; background: #fff;
  box-shadow: 0 7px 20px rgba(87,21,72,.075); transition: transform .2s ease, box-shadow .2s ease;
}
.ffda-card:hover { transform: translateY(-4px); box-shadow: 0 14px 30px rgba(87,21,72,.14); }
.ffda-card-link { display: block; height: 100%; color: inherit; text-decoration: none; }
.ffda-card-link:focus-visible { outline: 3px solid var(--ffda-pink); outline-offset: -3px; }
.ffda-card-image { aspect-ratio: 16/9; overflow: hidden; background: radial-gradient(circle at 25% 25%, #fa3eb0, #571548 68%, #25051f); }
.ffda-card-image img { display: block; width: 100%; height: 100%; object-fit: cover; }
.ffda-card-body { padding: 20px 21px 22px; }
.ffda-card h2 { margin: 0 0 7px; color: var(--ffda-plum); font-size: clamp(1.25rem, 2vw, 1.55rem); line-height: 1.2; }
.ffda-meta { margin: 0 0 12px; color: #79506f; font-size: .9rem; font-weight: 700; }
.ffda-card-body > p:not(.ffda-meta) { color: #51404d; line-height: 1.55; }
.ffda-readmore { display: inline-flex; gap: 8px; align-items: center; margin-top: 5px; color: #c90077; font-weight: 800; }
.ffda-readmore span { font-size: 1.2em; }
.ffda-pagination { display: flex; justify-content: center; gap: 8px; flex-wrap: wrap; margin: 28px 0; }
.ffda-pagination .page-numbers { display: inline-flex; min-width: 40px; min-height: 40px; justify-content: center; align-items: center; padding: 6px 12px; border: 1px solid var(--ffda-line); border-radius: 999px; color: var(--ffda-plum); text-decoration: none; }
.ffda-pagination .current { border-color: var(--ffda-plum); background: var(--ffda-plum); color: #fff; }
.ffda-empty { padding: 35px; border: 1px dashed #e8b9d5; border-radius: 20px; background: #fff6fb; text-align: center; }
.ffda-empty h2 { margin-top: 0; color: var(--ffda-plum); }

.ffda-facts, .ffda-closure, .ffda-memories, .ffda-submit {
  margin: 25px 0; padding: clamp(20px, 3vw, 30px); border: 1px solid #f0dce9; border-radius: 22px;
  background: #fff; box-shadow: 0 7px 20px rgba(87,21,72,.06);
}
.ffda-facts h2, .ffda-closure h2, .ffda-memories h2, .ffda-submit h2 { margin: 0 0 17px; color: var(--ffda-plum); font-size: clamp(1.4rem, 2.4vw, 1.8rem); }
.ffda-facts dl { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 24px; margin: 0; }
.ffda-fact { padding: 12px 0; border-bottom: 1px solid #f4e8f0; }
.ffda-fact dt { margin-bottom: 4px; color: #895e7f; font-size: .84rem; font-weight: 800; }
.ffda-fact dd { margin: 0; color: #35102d; font-weight: 600; }
.ffda-status { display: inline-flex; align-items: center; padding: 7px 13px; border-radius: 999px; background: var(--ffda-yellow); color: #421336; font-size: .87rem; font-weight: 900; }
.ffda-status-closing { background: #ffe3f4; color: #a80062; }
.ffda-status-open { background: #dcfff0; color: #155f43; }
.ffda-status-uncertain { background: #f2edf1; color: #604957; }
.ffda-closure { border-left: 5px solid var(--ffda-pink); background: linear-gradient(110deg, #fff 65%, #fff1f8); }
.ffda-memory { padding: 18px 20px; margin: 14px 0; border: 1px solid #f3deeb; border-radius: 16px; background: #fffafd; }
.ffda-memory-text { line-height: 1.65; }
.ffda-memory-text p:last-child { margin-bottom: 0; }
.ffda-memory-byline { margin: 12px 0 0; color: #835776; font-size: .9rem; font-weight: 800; }
.ffda-submit { border-top: 4px solid var(--ffda-pink); background: linear-gradient(145deg, #fff 60%, #fff4fa); }
.ffda-submit form { display: grid; gap: 15px; }
.ffda-submit label > span { color: #75516c; font-size: .82rem; font-weight: 500; }
.ffda-submit textarea { min-height: 145px; resize: vertical; }
.ffda-submit .ffda-consent { display: flex; flex-direction: row; align-items: flex-start; gap: 9px; font-size: .9rem; font-weight: 500; line-height: 1.45; }
.ffda-submit .ffda-consent input { margin-top: 4px; accent-color: var(--ffda-pink); }
.ffda-submit button { justify-self: start; }
.ffda-privacy { margin: 12px 0 0; color: #76566c; font-size: .86rem; }
.ffda-notice { padding: 12px 16px; border-radius: 12px; background: #e8fff4; color: #175b40; font-weight: 700; }
.ffda-error { padding: 12px 16px; border-radius: 12px; background: #fff0f0; color: #8c1839; font-weight: 700; }
.ffda-honeypot { position: absolute !important; width: 1px !important; height: 1px !important; overflow: hidden !important; clip: rect(1px, 1px, 1px, 1px) !important; white-space: nowrap !important; }
.ffda-admin-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 4px 20px; }

@media (max-width: 850px) {
  .ffda-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .ffda-filters { grid-template-columns: 1fr 1fr; }
  .ffda-filters button { grid-column: 1 / -1; justify-self: start; }
}
@media (max-width: 560px) {
  .ffda-grid, .ffda-filters, .ffda-facts dl, .ffda-admin-grid { grid-template-columns: 1fr; }
  .ffda-filters button { grid-column: auto; width: 100%; }
  .ffda-card-body { padding: 17px; }
  .ffda-archive { margin-top: 1rem; }
}
@media (prefers-reduced-motion: reduce) {
  .ffda-card, .ffda-archive button, .ffda-submit button { transition: none; }
  .ffda-card:hover, .ffda-archive button:hover, .ffda-submit button:hover { transform: none; }
}


.ffda-submit input[type="file"] {
  width: 100%;
  padding: 10px 12px;
  border: 1px dashed #d9b8ce;
  border-radius: 12px;
  background: #fffafd;
  color: #32102b;
  font: inherit;
}
.ffda-memory-photo { margin: 16px 0 4px; }
.ffda-memory-photo img { display: block; width: auto; max-width: 100%; max-height: 520px; border-radius: 14px; }
