/* 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, .ed-faq-answer 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)); }
/* Inline sign-in on gated pages (EVS-23). Neutral layout only; each site's child theme brands it. */
.ed-auth{margin:0 0 2rem;width:100%;max-width:100%;box-sizing:border-box}
/* Page builders often put shortcodes in a flex column that sizes them to their content: fill the column instead. */
.brxe-shortcode:has(>.ed-auth),.brxe-shortcode:has(>.edr-form-wrap>.ed-auth){align-self:stretch;width:100%}
.ed-auth[hidden]{display:none}
.ed-auth .ed-auth-title{margin:0 0 .4rem}
.ed-auth .ed-auth-lead{margin:0 0 1.25rem}
.ed-auth .ed-auth-tabs{display:flex;gap:.25rem;margin:0 0 1.25rem;border-bottom:1px solid rgba(0,0,0,.15)}
.ed-auth .ed-auth-tabs[hidden]{display:none}
.ed-auth .ed-auth-tabs button.ed-auth-tab{appearance:none;-webkit-appearance:none;flex:0 1 auto;width:auto;min-width:0;margin:0 0 -1px;padding:.75rem 1rem;background:none;border:0;border-bottom:3px solid transparent;border-radius:0;box-shadow:none;color:inherit;font:inherit;font-weight:600;line-height:1.2;letter-spacing:normal;text-transform:none;white-space:nowrap;cursor:pointer;opacity:.7}
.ed-auth .ed-auth-tabs button.ed-auth-tab:hover{background:none;opacity:1}
.ed-auth .ed-auth-tabs button.ed-auth-tab[aria-selected="true"]{border-bottom-color:currentColor;opacity:1}
.ed-auth .ed-auth-tabs button.ed-auth-tab:focus-visible{outline:2px solid currentColor;outline-offset:2px}
.ed-auth--tabs .ed-auth-panel-title{display:none}
.ed-auth .ed-auth-panel+.ed-auth-panel{margin-top:2rem}
.ed-auth--tabs .ed-auth-panel+.ed-auth-panel{margin-top:0}
.ed-auth .ed-auth-panel[hidden]{display:none}
/* WooCommerce's own CSS boxes .woocommerce form.login/.register; here the block is the container, so no second box. */
.ed-auth .ed-auth-body form.ed-auth-form,.woocommerce .ed-auth-body form.ed-auth-form.login,.woocommerce .ed-auth-body form.ed-auth-form.register{margin:0!important;padding:0!important;border:0!important;border-radius:0!important;box-shadow:none!important;background:none!important}
/* Themes may pad any .woocommerce wrapper; the block's own body sits flush with its heading. */
.ed-auth>.ed-auth-body.woocommerce{padding:0!important;margin:0!important;border:0!important;background:none!important;box-shadow:none!important}
.ed-auth .form-row{margin:0 0 1rem}
.ed-auth .form-row label{display:block;margin:0 0 .35rem;font-weight:600}
.ed-auth .form-row input.input-text{width:100%;box-sizing:border-box}
.ed-auth .ed-auth-remember label{display:inline-flex;align-items:center;gap:.5rem;font-weight:400}
.ed-auth .ed-auth-switch,.ed-auth .lost_password,.ed-auth .ed-auth-note,.ed-auth .woocommerce-privacy-policy-text{font-size:.95em}
.ed-auth .woocommerce-privacy-policy-text p{margin:0 0 1rem}
.ed-auth .ed-auth-switch{margin:1rem 0 0}
.ed-auth .woocommerce-error,.ed-auth .woocommerce-message,.ed-auth .woocommerce-info{margin:0 0 1rem}
@media (max-width:600px){.ed-auth .ed-auth-tabs button.ed-auth-tab{flex:1 1 auto;padding:.75rem .4rem;font-size:max(15px,.95em)}.ed-auth .ed-auth-submit{width:100%}}

/* Page standard sections (EVS-56, ED_Quality). Neutral base, low specificity (:where) so each child theme brands it. */
:where(.ed-quality) { --ed-q-gap: clamp(28px, 4vw, 44px); display: flow-root; margin: var(--ed-q-gap) 0 0; }
:where(.ed-quality) > * + * { margin-top: var(--ed-q-gap); }
:where(.ed-q-block) { margin: 0; }
:where(.ed-q-title) { margin: 0 0 .7em; line-height: 1.2; }
:where(.ed-q-source) { font-size: .85em; opacity: .8; margin: .7em 0 0; }
:where(.ed-q-list) { margin: 0; padding-left: 1.2em; }
:where(.ed-q-list) li { margin: .25em 0; }
:where(.ed-q-list--chips) { list-style: none; padding: 0; display: flex; flex-wrap: wrap; gap: 8px; }
:where(.ed-q-list--chips) li { margin: 0; padding: 6px 12px; border: 1px solid var(--ed-line); border-radius: 999px; background: var(--ed-soft); font-size: .92em; line-height: 1.3; }
:where(.ed-q-dl) { margin: 0; display: grid; grid-template-columns: minmax(130px, max-content) 1fr; border-top: 1px solid var(--ed-line); }
:where(.ed-q-row) { display: contents; }
:where(.ed-q-dl) dt, :where(.ed-q-dl) dd { margin: 0; padding: 10px 12px 10px 0; border-bottom: 1px solid var(--ed-line); }
:where(.ed-q-dl) dt { font-weight: 700; }
@media (max-width: 600px) { :where(.ed-q-dl) { grid-template-columns: 1fr; } :where(.ed-q-dl) dt { border-bottom: 0; padding-bottom: 0; } }
:where(.ed-q-table-wrap) { overflow-x: auto; -webkit-overflow-scrolling: touch; border: 1px solid var(--ed-line); border-radius: var(--ed-radius); }
:where(.ed-q-table) { width: 100%; border-collapse: collapse; margin: 0; font-size: .95em; }
:where(.ed-q-table) th, :where(.ed-q-table) td { padding: 10px 12px; border-bottom: 1px solid var(--ed-line); text-align: left; vertical-align: top; }
:where(.ed-q-table) thead th { background: var(--ed-soft); font-size: .85em; text-transform: none; white-space: nowrap; }
:where(.ed-q-table) tbody tr:last-child > * { border-bottom: 0; }
:where(.ed-q-table) tbody th { font-weight: 700; min-width: 10em; }
:where(.ed-q-photos) { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
:where(.ed-q-photos--1) { grid-template-columns: 1fr; }
:where(.ed-q-figure) { margin: 0; display: flex; flex-direction: column; gap: 6px; min-width: 0; }
:where(.ed-q-figure--lead) { grid-column: 1 / -1; }
:where(.ed-q-photos--2) .ed-q-figure--lead { grid-column: auto; }
:where(.ed-q-figure) img { width: 100%; height: auto; aspect-ratio: 4 / 3; object-fit: cover; border-radius: var(--ed-radius); background: var(--ed-soft); display: block; }
:where(.ed-q-figure--lead) img { aspect-ratio: 16 / 9; }
:where(.ed-q-photos--2) .ed-q-figure--lead img { aspect-ratio: 4 / 3; }
:where(.ed-q-figure) figcaption { font-size: .85em; line-height: 1.35; }
:where(.ed-q-credit) { font-size: .85em; margin: .6em 0 0; }
/* An odd photo at the end spans both columns, at the height of one row (8:3). */
:where(.ed-q-photos--odd2) > .ed-q-figure:last-child { grid-column: 1 / -1; }
:where(.ed-q-photos--odd2) > .ed-q-figure:last-child img { aspect-ratio: 8 / 3; }
@media (min-width: 900px) {
 :where(.ed-q-photos--c3) { grid-template-columns: repeat(3, minmax(0, 1fr)); }
 :where(.ed-q-photos--c3.ed-q-photos--odd2) > .ed-q-figure:last-child { grid-column: auto; }
 :where(.ed-q-photos--c3.ed-q-photos--odd2) > .ed-q-figure:last-child img { aspect-ratio: 4 / 3; }
}
:where(.ed-q-table) td.ed-q-num { text-align: right; font-variant-numeric: tabular-nums; white-space: nowrap; }
:where(.ed-q-nil) { opacity: .5; }
:where(.ed-q-more-rooms) { margin: .8em 0 0; }
/* Small screens: each table row becomes a card with labelled values (td[data-label]); no sideways scrolling. */
@media (max-width: 600px) {
 :where(.ed-q-table-wrap:not(.ed-q-table-wrap--grid)) { overflow: visible; border: 0; border-radius: 0; }
 :where(.ed-q-table-wrap:not(.ed-q-table-wrap--grid) .ed-q-table) thead { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
 :where(.ed-q-table-wrap:not(.ed-q-table-wrap--grid) .ed-q-table), :where(.ed-q-table-wrap:not(.ed-q-table-wrap--grid) .ed-q-table) tbody, :where(.ed-q-table-wrap:not(.ed-q-table-wrap--grid) .ed-q-table) tr, :where(.ed-q-table-wrap:not(.ed-q-table-wrap--grid) .ed-q-table) th, :where(.ed-q-table-wrap:not(.ed-q-table-wrap--grid) .ed-q-table) td { display: block; width: auto; }
 :where(.ed-q-table-wrap:not(.ed-q-table-wrap--grid) .ed-q-table) tr { border: 1px solid var(--ed-line); border-radius: var(--ed-radius); padding: 10px 14px; margin: 0 0 10px; }
 :where(.ed-q-table-wrap:not(.ed-q-table-wrap--grid) .ed-q-table) tbody th { border: 0; padding: 0 0 6px; min-width: 0; font-size: 1.02em; }
 :where(.ed-q-table-wrap:not(.ed-q-table-wrap--grid) .ed-q-table) td { border: 0; padding: 3px 0; display: grid; grid-template-columns: minmax(96px, 38%) 1fr; gap: 10px; text-align: left; white-space: normal; }
 :where(.ed-q-table-wrap:not(.ed-q-table-wrap--grid) .ed-q-table) td.ed-q-num { text-align: left; }
 :where(.ed-q-table-wrap:not(.ed-q-table-wrap--grid) .ed-q-table) td::before { content: attr(data-label); font-weight: 700; font-size: .88em; opacity: .8; }
 :where(.ed-q-table-wrap:not(.ed-q-table-wrap--grid) .ed-q-table) td:empty { display: none; }
 :where(.ed-q-table-wrap:not(.ed-q-table-wrap--grid) .ed-q-table) tbody tr:last-child > * { border-bottom: 0; }
}
:where(.ed-q-table-wrap--grid) .ed-q-table tbody th { position: sticky; left: 0; background: inherit; z-index: 1; }
:where(.ed-q-table-wrap--grid) .ed-q-table { background: inherit; }
@media (max-width: 600px) { :where(.ed-q-table-wrap--grid) .ed-q-table th, :where(.ed-q-table-wrap--grid) .ed-q-table td { padding: 8px 10px; } :where(.ed-q-table-wrap--grid) .ed-q-table tbody th { min-width: 8em; max-width: 11em; } }
:where(.ed-edition--ended) { padding: 14px 16px; border: 1px solid var(--ed-line); border-left: 4px solid var(--ed-accent); border-radius: var(--ed-radius); background: var(--ed-soft); }
:where(.ed-edition--ended) p { margin: 0; }
:where(.ed-edition--ended) p + p { margin-top: .3em; font-size: .92em; opacity: .85; }
:where(.ed-map) { position: relative; height: clamp(260px, 42vw, 400px); border-radius: var(--ed-radius); overflow: hidden; background: var(--ed-soft); border: 1px solid var(--ed-line); z-index: 0; }
:where(.ed-map-placeholder) { position: absolute; inset: 0; display: grid; place-items: center; margin: 0; font-size: .9em; opacity: .7; }
:where(.ed-map.is-failed) { display: none; }
:where(.ed-map-address) { margin: .7em 0 0; }
:where(.ed-map-links) { display: flex; flex-wrap: wrap; gap: 6px 18px; margin: .5em 0 0; font-size: .92em; }
:where(.ed-q-count) { margin: 0 0 .8em; }
:where(.ed-quality) .ed-faq { margin: 0; }
:where(.ed-faq-item) summary { list-style-position: outside; }
:where(.ed-card-date--tba) { font-style: italic; }
:where(.ed-map-pin) { width: 26px; height: 26px; }
:where(.ed-map-pin) span { display: block; width: 22px; height: 22px; margin: 2px; border-radius: 50% 50% 50% 0; transform: rotate(-45deg); background: var(--ed-pin, var(--ed-accent, #2a6ad8)); border: 3px solid #fff; box-shadow: 0 1px 4px rgba(0,0,0,.45); box-sizing: border-box; }
:where(.ed-map) .leaflet-marker-icon:focus-visible { outline: 3px solid var(--ed-pin, #2a6ad8); outline-offset: 2px; border-radius: 50%; }
:where(.ed-q-list--check) { list-style: none; padding: 0; margin: 0; display: grid; grid-template-columns: 1fr; gap: 6px 24px; }
@media (min-width: 600px) { :where(.ed-q-list--check) { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
:where(.ed-q-list--check) li { position: relative; padding-left: 1.6em; margin: 0; line-height: 1.4; }
:where(.ed-q-list--check) li::before { content: ""; position: absolute; left: .15em; top: .3em; width: .45em; height: .8em; border: solid var(--ed-accent); border-width: 0 .16em .16em 0; transform: rotate(45deg); }
:where(.ed-q-list--chips) li { max-width: 100%; border-radius: 1.2em; overflow-wrap: anywhere; }
:where(.ed-q-more) { margin: 10px 0 0; }
:where(.ed-q-more) > summary { cursor: pointer; font-weight: 600; display: inline-block; padding: 4px 0; }
:where(.ed-q-more) > .ed-q-list { margin-top: 8px; }
:where(.ed-quality) .ed-q-table { width: 100%; }
:where(.ed-q-table) th.ed-q-num { text-align: right; }
:where(.ed-q-table) td.ed-q-num, :where(.ed-q-table) th.ed-q-num { font-variant-numeric: tabular-nums; }
:where(.ed-q-credit) { margin-top: .75em; }
:where(.ed-q-more) > summary { min-height: 44px; display: inline-flex; align-items: center; gap: .4em; list-style: none; }
:where(.ed-q-more) > summary::-webkit-details-marker { display: none; }
:where(.ed-q-more) > summary::after { content: ""; width: .5em; height: .5em; border: solid currentColor; border-width: 0 .14em .14em 0; transform: rotate(45deg) translateY(-.15em); }
:where(.ed-q-more[open]) > summary::after { transform: rotate(-135deg) translateY(-.1em); }
:where(.ed-q-list--chips) { row-gap: 8px; column-gap: 8px; }
:where(.ed-q-list--check) li::before { top: .22em; }
:where(.ed-map-pin) { width: 32px; height: 32px; }
:where(.ed-map-pin) span { width: 26px; height: 26px; margin: 1px 3px; }
:where(.ed-map-links) { margin-top: 14px; }

/* Opening photo mosaic (1.11.13): lead photo large, two or four beside it, "See all N photos" opens the full grid. */
:where(.ed-quality--lead) { margin: 0 0 var(--ed-q-gap); }
:where(.ed-q-mosaic) { display: grid; gap: 6px; border-radius: max(var(--ed-radius), 8px); overflow: hidden; grid-template-columns: 2fr 1fr; grid-auto-rows: 1fr; height: clamp(280px, 34vw, 440px); }
:where(.ed-q-mosaic--5) { grid-template-columns: 2fr 1fr 1fr; grid-template-rows: 1fr 1fr; }
:where(.ed-q-mosaic--3) { grid-template-rows: 1fr 1fr; }
:where(.ed-q-mosaic--2) { grid-template-rows: 1fr; }
:where(.ed-q-tile) { margin: 0; min-width: 0; min-height: 0; overflow: hidden; border-radius: 0; background: var(--ed-soft); }
:where(.ed-q-tile--lead) { grid-row: 1 / -1; }
:where(.ed-q-tile) img { width: 100%; height: 100%; object-fit: cover; display: block; border-radius: 0; }
:where(.ed-q-allphotos) > summary { position: relative; z-index: 2; display: flex; align-items: center; gap: .45em; width: max-content; min-height: 44px; margin: -60px 16px 16px auto; padding: 0 18px; border-radius: 999px; background: #fff; color: #1d2327; border: 1px solid var(--ed-line); box-shadow: 0 2px 10px rgba(0, 0, 0, .28); font-weight: 600; font-size: .92em; cursor: pointer; list-style: none; }
:where(.ed-q-allphotos) > summary::-webkit-details-marker { display: none; }
:where(.ed-q-allphotos) > summary::before { content: ""; width: 14px; height: 14px; background: linear-gradient(currentColor 0 0) 0 0 / 6px 6px no-repeat, linear-gradient(currentColor 0 0) 100% 0 / 6px 6px no-repeat, linear-gradient(currentColor 0 0) 0 100% / 6px 6px no-repeat, linear-gradient(currentColor 0 0) 100% 100% / 6px 6px no-repeat; }
:where(.ed-q-allphotos) > summary:focus-visible { outline: 2px solid var(--ed-accent); outline-offset: 2px; }
:where(.ed-q-allphotos[open]) > .ed-q-photos { margin-top: 4px; }
:where(.ed-q-gallery--mosaic) > .ed-q-credit { margin-top: .6em; }
:where(.ed-q-source, .ed-q-credit) { margin-top: .9em; }
:where(.ed-q-source) a + a { margin-left: .15em; }
@media (max-width: 600px) {
 :where(.ed-q-mosaic), :where(.ed-q-mosaic--5), :where(.ed-q-mosaic--3) { height: auto; grid-template-columns: 1fr 1fr; grid-template-rows: none; grid-auto-rows: auto; }
 :where(.ed-q-tile--lead) { grid-row: auto; grid-column: 1 / -1; aspect-ratio: 16 / 10; }
 :where(.ed-q-tile:not(.ed-q-tile--lead)) { aspect-ratio: 4 / 3; }
 :where(.ed-q-mosaic--5) > .ed-q-tile:nth-child(n+4) { display: none; }
 :where(.ed-q-mosaic--2) > .ed-q-tile:not(.ed-q-tile--lead) { display: none; }
 :where(.ed-q-allphotos) > summary { margin-top: -54px; margin-right: 10px; padding: 0 14px; }
 :where(.ed-q-all-lead) { display: none; }
}

:where(.ed-quality--lifted) { margin: 0 0 24px; min-width: 0; }
/* Software screenshots: show the whole screen, never crop the interface (1.11.15). */
:where(.ed-quality--vendor) .ed-q-tile { background: #f3f5f8; }
:where(.ed-quality--vendor) .ed-q-tile img { object-fit: contain; }
:where(.ed-quality--vendor) .ed-q-tile--lead img { object-fit: contain; }
/* Hub sections are appended after the archive's content area, which is full width on every site template:
   keep them in the page column (1.11.15). Sites can set --ed-hub-max to their container width. */
:where(.ed-quality--hub) { box-sizing: border-box; width: min(100% - 2 * clamp(16px, 4vw, 40px), var(--ed-hub-max, 1200px)); margin-inline: auto; margin-bottom: var(--ed-q-gap); }
