/* NexDemo Polish: summit (Stackline Summit, developer conference, Berlin).
   Loaded after the plugin CSS, the site's Additional CSS (again, in @layer nexdemo) and common.css.
   Identity kept: indigo #4F46E5, ink #0B1020, Plus Jakarta Sans display, white / slate #F5F7FB, square hard-bordered controls.
   Fixes, one line each:
    1. Canvas: inner pages use the home page's slate #F5F7FB (listing pages white) instead of the plugin grey; line and ink colours match home.
    2. One visual system: plugin cards, chips, pills, toggles, buttons and search bar lose their rounding and shadows (square, 1px rules).
    3. Archive / search / what's-new hero: dark strip above the photo removed; photo sits under the home page's ink + grid treatment.
    4. List view (archive, search, what's-new): results fill the width as two columns instead of a 920px column with a blank right third.
    5. Empty search state: square, flat, centred.
    6. Pagination: square, ink for the current page.
    7. Header: only one top-level item is marked current; on home, header and footer line up with the 1240px column.
    8. Home "Find a session": form controls match the theme buttons, one tidy row on desktop; results in two columns.
    9. Home agenda box: gap above "Open the calendar".
   10. Listing page: dead-end "Log in to build your own agenda" line hidden; hero, chips, tabs, buttons, gallery and related cards squared;
       long title no longer breaks mid-phrase; fact chips wrap on phones; speaker bios no longer cut mid-sentence.
   11. Calendar: shell, toolbar and controls squared; dead-end "+ Add event" hidden (submissions are off on this demo).
   12. Map: side panel, search and row thumbnails squared.
   13. Read-only notice (login / submit): square card and brand heading weight.
   14. About: readable measure; the settings list is set as a ruled spec box like the home agenda.
   15. Listing page on phones: sticky action bar sits on the bottom edge (plugin reserved space for a tab bar it hides there).
   16. 404 (theme template): header and footer line up with the content column; header links fit on narrow phones.
   Not fixed here (content, data or plugin): see content-todo-summit.md. */

/* ---------- 1. Canvas and tokens ----------
   Defect: inner pages sat on the plugin grey rgb(247,248,251) with cool default lines, next to a home page built on #F5F7FB / #E3E7EF. */
html:root {
  --nd-canvas: #F5F7FB;
  --nd-line: #E3E7EF;
  --nd-line-strong: #C9D0DD;
  --nd-ink: #0B1020;
  --nd-radius: 0px; --nd-radius-xs: 0px; --nd-radius-sm: 0px; --nd-radius-lg: 0px; --nd-radius-xl: 0px;
  --nexdirectory-radius: 0px; --nexdirectory-radius-lg: 0px; --nexdirectory-btn-radius: 0px; --nexdirectory-input-radius: 0px;
  --nd-btn-radius: 0px;
  --nd-shadow-1: none; --nd-shadow-2: none; --nd-shadow-3: none; --nd-shadow-4: none;
}
html body.nexdirectory-plugin-page:not(.home):not(.single-nexdirectory_event) { background-color: #F5F7FB; }
html body.single-nexdirectory_event { background-color: #fff; }

/* ---------- 2. One visual system: square, flat plugin components ----------
   Defect: rounded, shadowed plugin cards, pills and chips next to the theme's square hard-bordered buttons and agenda box. */
html body .nxd-ui .nd-ecard,
html body .nxd-ui .nd-ecard__media,
html body .nxd-ui .nd-ecard__link::after,
html body .nxd-ui .nd-ecard__save,
html body .nxd-ui .nd-ecard__datebadge,
html body .nxd-ui .nd-ecard__dateblock,
html body .nxd-ui .nd-ecard__pill,
html body .nxd-ui .nd-ecard__price.is-free,
html body .nxd-ui .nd-qchip,
html body .nxd-ui .nd-chip,
html body .nxd-ui .nd-rail__arrow,
html body .nxd-ui .nd-viewtoggle,
html body .nxd-ui .nd-viewtoggle button,
html body .nxd-ui .nd-menu__panel,
html body .nxd-ui .nd-searchbar,
html body .nxd-ui .nd-searchbar__field,
html body .nxd-ui .nd-searchbar__locate,
html body .nxd-ui .nd-searchbar__go,
html body .nxd-ui .nd-btn,
html body .ndn-footer .ndn-footer__top-btn { border-radius: 0; }
html body .nxd-ui .nd-ecard,
html body .nxd-ui .nd-ecard__datebadge,
html body .nxd-ui .nd-ecard__pill,
html body .nxd-ui .nd-searchbar,
html body .nxd-ui .nd-searchbar__go,
html body .nxd-ui .nd-btn,
html body .nexdirectory-widget-block .nd-ecard__save { box-shadow: none; }

/* cards: 1px rule, ink rule on hover (no lift, no shadow) */
html body .nxd-ui .nd-ecard--horizontal,
html body .nxd-ui .nd-ecard--classic { border: 1px solid var(--nd-line-strong); background: #fff; }
@media (hover: hover) {
  html body .nxd-ui .nd-ecard--horizontal:hover,
  html body .nxd-ui .nd-ecard--classic:hover,
  html body .nxd-ui .nd-ecard--poster:hover { transform: none; box-shadow: none; border-color: #0B1020; }
}
html body .nxd-ui .nd-ecard--horizontal { padding: 0; gap: 0; overflow: hidden; align-self: stretch; }
html body .nxd-ui .nd-ecard--horizontal .nd-ecard__media { align-self: stretch; aspect-ratio: auto; min-height: 132px; }
html body .nxd-ui .nd-ecard--horizontal .nd-ecard__body { padding: 16px 56px 16px 20px; }
html body .nxd-ui .nd-ecard--horizontal .nd-ecard__save { top: 0; right: 0; background: #fff; border-left: 1px solid var(--nd-line); border-bottom: 1px solid var(--nd-line); }
html body .nxd-ui .nd-ecard__save:hover,
html body .nxd-ui .nd-ecard__save:active { transform: none; }
html body .nxd-ui .nd-ecard__when { font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace; font-size: 12.5px; letter-spacing: .02em; text-transform: uppercase; }
html body .nxd-ui .nd-ecard__title,
html body .nxd-ui .nd-ecard__title a { font-family: "Plus Jakarta Sans", Inter, system-ui, sans-serif; font-weight: 700; letter-spacing: -.015em; }
html body .nxd-ui .nd-ecard__price.is-free { border: 1px solid currentColor; background: transparent; height: 22px; padding: 0 7px; font-size: 12px; text-transform: uppercase; letter-spacing: .04em; }
html body .nxd-ui .nd-ecard--poster .nd-ecard__price.is-free { border-color: rgba(255,255,255,.7); }
html body .nxd-ui .nd-ecard--classic { overflow: hidden; }
html body .nxd-ui .nd-ecard--classic .nd-ecard__body { padding: 14px 16px 16px; }

/* quick-filter chips, view toggle, sort */
html body .nxd-ui .nd-qchip { border-color: var(--nd-line-strong); font-weight: 500; }
html body .nxd-ui .nd-qchip:hover { border-color: #0B1020; }
html body .nxd-ui .nd-viewtoggle { padding: 0; border-color: var(--nd-line-strong); overflow: hidden; }

/* ---------- 3. Archive hero ----------
   Defect: the parallax script shifts the photo down (inline transform, hence !important) and leaves a dark strip under the header;
   the photo competes with the white text. */
html body .nd-discover__hero-media img { transform: none !important; opacity: .55; }
html body .nd-discover__hero-media { background: #0B1020; }
html body .nd-discover__hero-media::after {
  background:
    linear-gradient(rgba(255,255,255,.05) 1px, transparent 1px) 0 0 / 64px 64px,
    linear-gradient(90deg, rgba(255,255,255,.05) 1px, transparent 1px) 0 0 / 64px 64px,
    linear-gradient(90deg, rgba(11,16,32,.94) 0%, rgba(11,16,32,.82) 45%, rgba(11,16,32,.55) 100%);
}
html body .nd-discover__hero.has-image { border-bottom: 2px solid #0B1020; }
html body .nd-discover__hero .nd-discover__title { font-family: "Plus Jakarta Sans", Inter, system-ui, sans-serif; font-weight: 700; letter-spacing: -.03em; }
html body .nd-discover__hero .nd-searchbar { border: 0; padding: 0; }
html body .nd-discover__hero .nd-searchbar__go { margin: 0; align-self: stretch; height: auto; }

/* ---------- 4. List view fills the width ----------
   Defect: the plugin caps list view at 920px, so the right third of archive / search / what's-new was blank at desktop widths. */
html body .nd-discover[data-view="list"] #nexdirectory-archive-results { max-width: none; }
@media (min-width: 1100px) {
  html body #nexdirectory-archive-results .nd-results--horizontal { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; gap: 16px !important; }
}

/* ---------- 5. Empty search state ----------
   Defect: rounded gradient card with a soft shadow, sitting off-centre inside the old 920px column. */
html body #nexdirectory-archive-results > .nexdirectory-grid > .nexdirectory-search-recovery,
html body .nexdirectory-empty-state { border-radius: 0 !important; box-shadow: none !important; border: 2px solid #0B1020 !important; background: #fff !important; }
html body .nexdirectory-search-recovery::before,
html body .nexdirectory-search-recovery::after { display: none; }
html body .nexdirectory-search-recovery__icon,
html body .nexdirectory-search-recovery__button,
html body .nexdirectory-search-recovery__category { border-radius: 0; box-shadow: none; }
html body #nexdirectory-archive-results .nd-results--horizontal > .nexdirectory-search-recovery { grid-column: 1 / -1; max-width: 920px; width: 100%; margin-inline: auto; }

/* ---------- 6. Pagination and "Back to top" ----------
   Defect: rounded shadowed page buttons. */
html body.nexdirectory-plugin-page .nexdirectory-pagination .page-numbers { border-radius: 0; box-shadow: none; border-color: var(--nd-line-strong); }
html body.nexdirectory-plugin-page .nexdirectory-pagination ul.page-numbers { border: 0; background: transparent; }
html body.nexdirectory-plugin-page .nexdirectory-pagination .page-numbers:hover { transform: none; border-color: #0B1020; color: #0B1020; }
html body.nexdirectory-plugin-page .nexdirectory-pagination .page-numbers.current { border-color: #0B1020; background: #0B1020; color: #fff; }

/* ---------- 7. Header ----------
   Defect: "Explore events" and "Programme" were both underlined as the current page (both menus contain the same link). */
html body .ndn .ndn-menu__item:has(.ndn-trigger.is-current) ~ .ndn-menu__item .ndn-trigger.is-current::after { transform: scaleX(0); }
html body .ndn .ndn-trigger::after { border-radius: 0; }
/* Defect: on the home and About pages the logo and footer started at 54px while every section starts at the 1240px column edge. */
@media (min-width: 1024px) {
  html body.home .ndn, html body:has(.sl-about) .ndn { --ndn-pad: max(clamp(16px, 4vw, 48px), calc((100vw - var(--ndn-sbw, 0px) - 1240px) / 2)); }
  html body.home .ndn-footer, html body:has(.sl-about) .ndn-footer { --ndn-fpad: max(clamp(16px, 4vw, 48px), calc((100vw - var(--ndn-sbw, 0px) - 1240px) / 2)); }
}

/* ---------- 8. Home "Find a session" ----------
   Defect: rounded card, pill Search button and unstyled date input next to square theme buttons; six results as mostly blank full-width rows. */
html body .sl-section .nexdirectory-widget-search-block .nexdirectory-widget-search-form { border: 2px solid #0B1020; border-radius: 0; box-shadow: none; padding: 16px; gap: 12px; }
html body .sl-section .nexdirectory-widget-search-block :is(input, select) { border-radius: 0; min-height: 50px; font-size: 16px; color: #0B1020; background-color: #fff; border-color: var(--nd-line-strong); }
html body .sl-section .nexdirectory-widget-search-block :is(input, select):focus { outline: 2px solid #4F46E5; outline-offset: 0; border-color: #4F46E5; }
html body .sl-section .nexdirectory-widget-search-block input[type="date"] { font-family: Inter, system-ui, sans-serif; -webkit-appearance: none; appearance: none; }
html body .sl-section .nexdirectory-widget-search-block .nexdirectory-widget-search-actions .nexdirectory-btn { border-radius: 0; min-height: 50px; padding: 0 26px; border: 2px solid #4F46E5; font: 600 16px/1.2 Inter, system-ui, sans-serif; box-shadow: none; }
html body .sl-section .nexdirectory-widget-search-block .nexdirectory-widget-search-actions .nexdirectory-btn:hover { background: #4338CA; border-color: #4338CA; }
html body .sl-section .nexdirectory-widget-search-block .nexdirectory-widget-search-actions .nexdirectory-btn-secondary:hover { background: #fff; }
html body .sl-section .nexdirectory-widget-block .nexdirectory-widget-count { font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace; font-size: 13px; letter-spacing: .06em; text-transform: uppercase; }
@media (min-width: 1100px) {
  html body .sl-section .nexdirectory-widget-search-block .nexdirectory-widget-search-form { grid-template-columns: minmax(0, 1fr) auto; align-items: end; }
  html body .sl-section .nexdirectory-widget-search-block .nexdirectory-widget-search-fields { grid-template-columns: minmax(0, 2fr) repeat(4, minmax(0, 1fr)); }
  html body .sl-section .nexdirectory-widget-search-block .nexdirectory-widget-search-fields > input[type="text"]:first-of-type { grid-column: auto; }
  html body .sl-section .nexdirectory-widget-block .nd-results--horizontal { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; }
}
@media (max-width: 640px) {
  html body .sl-section .nexdirectory-widget-search-block .nexdirectory-widget-search-fields { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  html body .sl-section .nexdirectory-widget-search-block .nexdirectory-widget-search-actions .nexdirectory-btn { flex: 1 1 0; }
}

/* ---------- 9. Home agenda box ----------
   Defect: "Open the calendar" touched the bottom-left corner of the agenda box. */
html body .sl-week .sl-days { margin-bottom: 28px; }
/* ---------- 10. Listing page ---------- */
/* Dead end: accounts are off on this demo, so "Log in to build your own agenda and keep session notes." leads nowhere. */
html body .nds-agenda__hint { display: none; }
/* Defect: rounded date block, pills, tabs, buttons, gallery tiles and related cards against the square brand. */
html body .nds-dateblock,
html body .nds-keyfacts li,
html body .nds-iconbtn,
html body .nds-floatbtn,
html body .nds-tab,
html body .nds-cta,
html body .nds-btn-quiet,
html body .nds-venue__expandlabel,
html body .nds-gallery__item,
html body .nds-img,
html body .nds-relcard__img,
html body .nds-relcard__fallback,
html body .nds-speaker__photo,
html body .nds-venue,
html body .nds-venue__map,
html body .nds-countdown,
html body .nds-sticky__cta,
html body .nds-appbar__btn,
html body .nds-row__icon,
html body .nds .nds-body { border-radius: 0; }
html body .nds-floatbtn { box-shadow: none; }
html body .nds { --nds-radius: 0px; }
html body .nds .nds-cta.nd-btn--lg { border-radius: 0; }
html body .nds-cta { box-shadow: none; }
html body .nds-conf-hero__media { box-shadow: none; }
/* Defect: the long session title broke as "Main Stage, Day / 1: Shipping in the / Age of Agents" in the half-width hero column. */
@media (min-width: 1024px) {
  html body .nds-titleblock--conf .nds-title { font-size: clamp(34px, 14px + 2.2vw, 48px); }
}
/* Defect: on phones the fact chips were a clipped, side-scrolling row ("Halle Nord, Ma"). */
@media (max-width: 767px) {
  html body .nds-keyfacts { flex-wrap: wrap; overflow: visible; margin-inline: 0; padding-inline: 0; }
}
html body .nds-keyfacts li { box-shadow: none; border: 1px solid var(--nd-line-strong); }
html body .nds-iconbtn { border: 1px solid var(--nd-line-strong); }
html body .nds-title, html body .nds-h2 { font-family: "Plus Jakarta Sans", Inter, system-ui, sans-serif; letter-spacing: -.025em; }
/* Defect: speaker bios were clamped to three lines and ended mid-sentence. */
html body .nds-speaker__bio { display: block; -webkit-line-clamp: unset; overflow: visible; }

/* ---------- 11. Calendar ---------- */
/* Dead end: submissions are off on this demo, so "+ Add event" leads to the "Posting is off" notice. */
html body .nd-cal2__headactions > a.nd-btn--primary[href$="/submit/"] { display: none; }
/* Defect: rounded shell, toolbar and pill controls. */
html body .nd-cal2__shell,
html body .nd-cal2__toolbar,
html body .nd-cal2__iconbtn,
html body .nd-cal2__today,
html body .nd-cal__day,
html body .nd-cal__pill,
html body .nd-cal-subscribe__option,
html body .nd-cal2__wday,
html body .nd-cal2__aday-num,
html body .nd-cal2__adate { border-radius: 0; }
html body .nd-cal2__shell { border: 1px solid var(--nd-line-strong); box-shadow: none; }
html body .nd-cal2__title { font-family: "Plus Jakarta Sans", Inter, system-ui, sans-serif; font-weight: 700; letter-spacing: -.03em; }

/* ---------- 12. Map ---------- */
/* Defect: rounded floating panel, search field and thumbnails. */
html body .nd-mapx__panel,
html body .nd-mapx__search,
html body .nd-mapx__area,
html body .nd-mapx select,
html body .nd-mcard,
html body .nd-mcard__media { border-radius: 0; }

/* ---------- 13. Read-only notice (login) ---------- */
/* Defect: rounded card with a thin heading, unlike the heavy square brand styling. */
html body .nexdemo-ro__card { border-radius: 0; border: 2px solid #0B1020; background: #fff; }
html body .nexdemo-ro__h { font-family: "Plus Jakarta Sans", Inter, system-ui, sans-serif; font-weight: 700; letter-spacing: -.03em; color: #0B1020; }
html body .nexdemo-ro__eyebrow { font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace; color: #4F46E5; }
html body .nexdemo-ro .nd-btn { border-radius: 0; box-shadow: none; }

/* ---------- 14. About ---------- */
/* Defect: a bare bullet list running the full 1240px width. */
/* (WordPress centres constrained children with margin auto !important, so the left alignment needs it too) */
html body .sl-about.sl-about > p:not(.sl-kicker) { max-width: 68ch; margin-left: max(0px, calc((100% - 1240px) / 2)) !important; margin-right: auto !important; }
html body .sl-about.sl-about > ul { list-style: none; margin-top: 20px; margin-bottom: 28px; padding: 0; max-width: 860px; margin-left: max(0px, calc((100% - 1240px) / 2)) !important; margin-right: auto !important; border: 2px solid #0B1020; background: #fff; }
html body .sl-about.sl-about > ul li { margin: 0; padding: 14px 20px; border-bottom: 1px solid #E3E7EF; font-size: 16px; line-height: 1.5; color: #0B1020; }
html body .sl-about.sl-about > ul li:last-child { border-bottom: 0; }

/* ---------- 15. Listing page on phones: sticky action bar ----------
   Defect (plugin): the tab bar is hidden on listing pages but its 64px is still reserved, so the sticky
   action bar floated above the bottom edge with page content showing underneath. */
@media (max-width: 767px) {
  html.ndn-has-tabbar:has(.nds) { --nd-bottom-stack: var(--nd-safe-bottom, 0px); }
}

/* ---------- 16. 404 (theme template) ---------- */
/* Defect: the mini header and footer started at the page edge while the 404 content starts at the 1240px column. */
html body.error404 .sl-mini-header > .sl-mini-nav,
html body.error404 .sl-mini > .sl-mini-footer { box-sizing: border-box; padding-inline: max(0px, calc((100vw - 1240px) / 2 - clamp(16px, 4vw, 48px))); }
/* Defect: on narrow phones the three header links crowd the logo. */
@media (max-width: 480px) {
  html body.error404 .sl-mini-nav nav { gap: 16px; font-size: 14px; }
  html body.error404 .sl-mini-nav img { height: 28px; }
}
