/* Silent Witness Exhibit Reports */
.swe-wrap {
	--swe-purple: #662D91;
	--swe-red: #E7001D;
	--swe-line: rgba(0, 0, 0, 0.14);
	--swe-soft: rgba(102, 45, 145, 0.07);
	max-width: 900px;
}

/* Form */
.swe-form fieldset { border: 1px solid var(--swe-line); border-radius: 8px; padding: 1em 1.2em 0.4em; margin: 0 0 1.2em; }
.swe-form legend { font-weight: 700; color: var(--swe-purple); padding: 0 0.3em; }
.swe-sub { font-weight: 400; color: inherit; opacity: 0.75; font-size: 0.9em; }
.swe-form label { display: block; font-weight: 600; margin-bottom: 0.25em; }
.swe-form .swe-check label { font-weight: 400; }
.swe-form input[type="text"], .swe-form input[type="email"], .swe-form input[type="tel"],
.swe-form input[type="number"], .swe-form input[type="date"], .swe-form select, .swe-form textarea {
	width: 100%; box-sizing: border-box; font: inherit; padding: 0.5em 0.6em;
	border: 1px solid rgba(0, 0, 0, 0.3); border-radius: 6px; background: #fff; color: #222;
}
.swe-form input[type="file"] { font: inherit; }
.swe-form input:focus, .swe-form select:focus, .swe-form textarea:focus { outline: 2px solid var(--swe-purple); outline-offset: 1px; }
.swe-row { display: grid; grid-template-columns: 1fr 1fr; gap: 0 1em; }
.swe-row3 { display: grid; grid-template-columns: 2fr 1.4fr 1fr; gap: 0 1em; }
@media (max-width: 600px) { .swe-row, .swe-row3 { grid-template-columns: 1fr; } }
.swe-req { font-weight: 400; font-size: 0.85em; opacity: 0.75; }
.swe-help { display: block; font-size: 0.88em; opacity: 0.8; margin-top: 0.3em; }
.swe-hp { position: absolute !important; left: -9999px !important; width: 1px; height: 1px; overflow: hidden; }
.swe-button {
	font: inherit; font-weight: 600; cursor: pointer; border: 0; border-radius: 999px;
	padding: 0.7em 1.6em; background: var(--swe-purple); color: #fff;
}
.swe-button:hover, .swe-button:focus-visible { background: #4f2270; }
.swe-button:focus-visible { outline: 2px solid var(--swe-red); outline-offset: 2px; }
.swe-thanks, .swe-problem { border-radius: 8px; padding: 1em 1.2em; margin-bottom: 1.2em; }
.swe-thanks { background: var(--swe-soft); border-left: 4px solid var(--swe-purple); }
.swe-problem { background: rgba(231, 0, 29, 0.06); border-left: 4px solid var(--swe-red); }

/* List */
.swe-state { color: var(--swe-purple); border-bottom: 2px solid var(--swe-red); padding-bottom: 0.2em; margin: 1.8em 0 0.8em; }
.swe-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); gap: 1.1em; }
.swe-card { border: 1px solid var(--swe-line); border-radius: 8px; overflow: hidden; background: rgba(255, 255, 255, 0.6); display: flex; flex-direction: column; }
.swe-photo img { display: block; width: 100%; height: 180px; object-fit: cover; }
.swe-body { padding: 0.9em 1.1em 0.8em; border-top: 4px solid var(--swe-red); }
.swe-org { margin: 0 0 0.2em; font-size: 1.08em; }
.swe-org a { color: inherit; }
.swe-meta, .swe-when { margin: 0 0 0.4em; font-size: 0.92em; opacity: 0.85; }
.swe-when { font-weight: 600; opacity: 1; color: var(--swe-purple); }
.swe-tags { margin: 0.3em 0 0.6em; }
.swe-tag { display: inline-block; font-size: 0.8em; padding: 0.15em 0.6em; margin: 0 0.3em 0.3em 0; border-radius: 999px; background: var(--swe-soft); color: var(--swe-purple); }
.swe-more summary { cursor: pointer; color: var(--swe-purple); font-size: 0.92em; }
.swe-more p { font-size: 0.94em; margin: 0.5em 0; }
.swe-thumbs { display: flex; gap: 0.4em; margin: 0.6em 0 0; }
.swe-thumbs img { width: 64px; height: 64px; object-fit: cover; border-radius: 4px; display: block; }
.swe-contact { font-size: 0.9em; margin: 0.6em 0 0; }
.swe-empty { opacity: 0.85; }

/* Featured Exhibit spotlight */
.swe-featured { border: 1px solid var(--swe-line); border-top: 5px solid var(--swe-red); border-radius: 10px; padding: 1.2em 1.4em; margin: 0 0 1.5em; background: rgba(102, 45, 145, 0.04); }
.swe-featured-label { text-transform: uppercase; letter-spacing: 0.08em; font-size: 0.8em; font-weight: 700; color: var(--swe-red); margin: 0 0 0.6em; }
.swe-featured-grid { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.2fr); gap: 1.4em; align-items: start; }
.swe-featured-photo img { display: block; width: 100%; height: auto; border-radius: 8px; }
.swe-featured-org { margin: 0 0 0.2em; color: var(--swe-purple); }
.swe-featured-text p { margin: 0 0 0.7em; }
.swe-featured .swe-button { display: inline-block; text-decoration: none; margin-top: 0.4em; }
@media (max-width: 700px) { .swe-featured-grid { grid-template-columns: 1fr; } }
