/* Events Directory front end (EVS-16). Neutral base styles; each site's child theme sets --ed-accent and refines. */
:root { --ed-accent: currentColor; --ed-line: rgba(0, 0, 0, .14); --ed-soft: rgba(0, 0, 0, .04); --ed-radius: 6px; }

/* Key facts */
.ed-facts { margin: 0 0 1.5em; }
.ed-facts-title { margin: 0 0 .6em; }
.ed-facts--cards .ed-facts-list { display: grid; grid-template-columns: repeat(auto-fill, minmax(170px, 1fr)); gap: 12px; margin: 0; }
.ed-facts--cards .ed-fact { border: 1px solid var(--ed-line); border-radius: var(--ed-radius); padding: 12px 14px; background: var(--ed-soft); }
.ed-facts--cards .ed-fact dt { font-size: .85em; opacity: .8; margin: 0 0 4px; }
.ed-facts--cards .ed-fact dd { margin: 0; font-size: 1.25em; font-weight: 700; line-height: 1.25; }
.ed-facts--list .ed-facts-list { margin: 0; }
.ed-facts--list .ed-fact { display: flex; justify-content: space-between; gap: 12px; padding: 6px 0; border-bottom: 1px solid var(--ed-line); }
.ed-facts--list .ed-fact dd { margin: 0; font-weight: 700; text-align: right; }
.ed-facts-source { font-size: .85em; opacity: .85; margin: .6em 0 0; }

/* Listing tools: calendar, save, compare */
.ed-calendar { margin: 1em 0 0; display: flex; flex-wrap: wrap; gap: 8px 14px; align-items: baseline; }
.ed-calendar-label { font-weight: 700; }
.ed-calendar-feed { flex-basis: 100%; margin: 0; font-size: .9em; }
.ed-tools-row { display: flex; flex-wrap: wrap; gap: 8px 12px; align-items: center; margin: 1em 0 0; }
:where(.ed-save, .ed-compare-toggle) { font: inherit; cursor: pointer; border: 1px solid currentColor; background: transparent; color: inherit; border-radius: var(--ed-radius); padding: .45em .9em; line-height: 1.3; }
:where(.ed-save, .ed-compare-toggle)[aria-pressed="true"] { background: var(--ed-soft); font-weight: 700; }
.ed-save::before, .ed-compare-toggle::before { content: ""; display: inline-block; flex: 0 0 auto; width: 1.05em; height: 1.05em; margin-right: .45em; vertical-align: -.15em; background: currentColor; -webkit-mask: var(--ed-icon) center / contain no-repeat; mask: var(--ed-icon) center / contain no-repeat; }
.ed-save { --ed-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linejoin='round'%3E%3Cpath d='M6.5 3.5h11v17l-5.5-4-5.5 4z'/%3E%3C/svg%3E"); }
.ed-save[aria-pressed="true"] { --ed-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='black' stroke='black' stroke-width='2' stroke-linejoin='round'%3E%3Cpath d='M6.5 3.5h11v17l-5.5-4-5.5 4z'/%3E%3C/svg%3E"); }
.ed-compare-toggle { --ed-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round'%3E%3Crect x='3.5' y='4' width='7' height='16' rx='1'/%3E%3Crect x='13.5' y='4' width='7' height='16' rx='1'/%3E%3C/svg%3E"); }
.ed-compare-toggle[aria-pressed="true"] { --ed-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12.5l4.5 4.5L19 7.5'/%3E%3C/svg%3E"); }
.ed-listing-tools .ed-tools-row > * { margin: 0; }
.ed-card-actions { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 10px; }

/* Compare tray */
.ed-compare-tray { position: fixed; z-index: 9990; left: 50%; bottom: 16px; transform: translateX(-50%); display: flex; gap: 14px; align-items: center; padding: 10px 16px; border-radius: 999px; background: #1d2327; color: #fff; box-shadow: 0 6px 24px rgba(0, 0, 0, .25); font-size: 15px; }
.ed-compare-tray[hidden] { display: none; }
.ed-compare-tray a { color: #fff; font-weight: 700; }
.ed-compare-tray a[aria-disabled="true"] { opacity: .5; cursor: not-allowed; }
.ed-compare-clear { font: inherit; background: none; border: 0; color: #fff; text-decoration: underline; cursor: pointer; }

/* Compare page */
.ed-compare-scroll { overflow-x: auto; -webkit-overflow-scrolling: touch; }
.ed-compare-table { border-collapse: collapse; width: 100%; min-width: 560px; }
.ed-compare-table th, .ed-compare-table td { border-bottom: 1px solid var(--ed-line); padding: 12px 14px; text-align: left; vertical-align: top; }
.ed-compare-table thead th { font-size: 1.1em; }
.ed-compare-table tbody th { width: 22%; font-weight: 600; }
.ed-compare-table .ed-facts-source { margin: 0; }
.ed-compare-note { font-size: .9em; opacity: .85; }
.ed-muted { opacity: .7; }

/* Shortlist */
.ed-shortlist-share { display: flex; flex-wrap: wrap; gap: 8px 14px; align-items: center; margin: 0 0 1.2em; }
.ed-share-link input { min-width: 280px; max-width: 100%; }
.ed-share-link[hidden] { display: none; }

/* Alerts */
.ed-alert { border: 1px solid var(--ed-line); border-radius: var(--ed-radius); padding: 18px 20px; margin: 1.5em 0; background: var(--ed-soft); }
.ed-alert-title { font-weight: 700; font-size: 1.1em; margin: 0 0 4px; }
.ed-alert-text { margin: 0 0 10px; opacity: .85; }
.ed-alert-row { display: flex; flex-wrap: wrap; gap: 8px; margin: 0; }
.ed-alert-row input[type="email"] { flex: 1 1 240px; min-width: 0; max-width: 520px; }
.ed-alert-privacy { margin: 10px 0 0; font-size: .85em; opacity: .85; }
.ed-compare-remove { font: inherit; font-size: .8em; font-weight: 400; background: none; border: 0; padding: 0; margin-left: .4em; text-decoration: underline; cursor: pointer; color: inherit; opacity: .8; }
.ed-alert-msg { font-weight: 700; }
.ed-hp { position: absolute !important; left: -9999px !important; }

/* Questions and answers */
.ed-faq { margin: 0 0 1.5em; }
.ed-faq-item { border-bottom: 1px solid var(--ed-line); padding: 12px 0; }
.ed-faq-item summary { cursor: pointer; font-weight: 700; }
.ed-faq-item div[itemprop="text"] p { margin: .5em 0 0; }
.ed-faq-note { font-size: .85em; opacity: .85; }
.ed-faq-fields .ed-faq-pair { border-top: 1px solid var(--ed-line); padding-top: 8px; }

/* Duplicate warning on submit form */
.ed-dupes { border: 1px solid #dba617; background: #fcf9e8; border-radius: var(--ed-radius); padding: 12px 16px; margin: 12px 0; color: #1d2327; }
.ed-dupes[hidden] { display: none; }
.ed-dupes-title { font-weight: 700; margin: 0 0 4px; }
.ed-dupes ul { margin: 6px 0 0 18px; }

.screen-reader-text { border: 0; clip: rect(1px, 1px, 1px, 1px); clip-path: inset(50%); height: 1px; margin: -1px; overflow: hidden; padding: 0; position: absolute; width: 1px; word-wrap: normal !important; }
.ed-shortlist-link[hidden], .ed-listing-tools [hidden] { display: none !important; }

/* touch targets and compare on small screens */
.ed-calendar > a, .ed-calendar-feed a { display: inline-block; padding: 8px 0; }
.ed-compare-remove { padding: 10px 6px; margin-left: .2em; }
.ed-compare-table th[scope="row"] { position: sticky; left: 0; z-index: 1; background: var(--ed-surface, #fff); }
@media (max-width: 600px) {
 .ed-compare-table th[scope="row"] { min-width: 104px; max-width: 120px; }
 .ed-compare-table td, .ed-compare-table thead th { min-width: 168px; }
}

.ed-shortlist .ed-shortlist-empty, .ed-shortlist-empty { padding: 22px 24px; border: 1px dashed currentColor; border-color: color-mix(in srgb, currentColor 30%, transparent); border-left-width: 1px; border-radius: 0; background: transparent; box-shadow: none; }
.ed-shortlist-empty p { margin: 0 0 12px; }
.ed-shortlist-empty p:last-child { margin: 0; }
.ed-empty-cta { font-weight: 700; color: var(--ed-accent, inherit); text-decoration: underline; }
.ed-shortlist-guest { margin: 0 0 20px; }
.ed-shortlist-guest a { color: var(--ed-accent, inherit); font-weight: 700; text-decoration: underline; }
.ed-compare-hint { display: none; font-size: .9em; opacity: .8; margin: 0 0 8px; }
.ed-compare-scroll.is-overflowing .ed-compare-hint, .ed-compare-page.is-overflowing .ed-compare-hint { display: block; }
.ed-compare-page.is-overflowing:not(.at-end) .ed-compare-scroll { -webkit-mask-image: linear-gradient(to right, #000 82%, rgba(0,0,0,.25)); mask-image: linear-gradient(to right, #000 82%, rgba(0,0,0,.25)); }
