/* ==========================================================================
   SmallSat Europe 2027 — "Master draft" design system (light, purple + yellow)
   Child theme of satnews-events. Every class is sse- prefixed; colors only via tokens.
   Loads after the parent stylesheet (handle satnews-events) and inside the block editor.
   Structure mirrors the SmallSat Symposium 2027 child (smallsat.css): same section numbers,
   same component names (sss- → sse-), retokened for a light page.

   NOTE: smallsateurope.com's legacy content uses sse-tl-*, sse-wh-*, sse-ac-*, sse-agenda-card,
   sse-intro-line, sse-done, sse-active. Never reuse those names here.
   ========================================================================== */

/* --------------------------------------------------------------------------
   1. Tokens
   -------------------------------------------------------------------------- */
:root {
	--sse-bg: #ffffff;              /* page */
	--sse-mist: #f7f5fb;            /* alternate surface, reading pages */
	--sse-haze: #efeaf7;            /* hover / pressed surface */
	--sse-panel: #ffffff;           /* raised cell on mist */
	--sse-line: #e6e0f2;            /* hairline */
	--sse-line-2: #d9d2ea;          /* card + grid borders (design default) */
	--sse-line-3: #b9a7d8;          /* strong border */
	--sse-ink: #1a1526;
	--sse-ink-2: #4b4363;
	--sse-mut: #6b6283;             /* body muted, 5.7:1 on white */
	--sse-label: #716791;           /* mono kickers; the design's #8a7fa8 darkened for AA (5.2:1) */
	--sse-accent: #3b1d7a;          /* SmallSat Europe purple */
	--sse-accent-2: #2e1563;        /* hover */
	--sse-yellow: #f5c518;          /* brand yellow: primary CTA on dark, "you are here" */
	--sse-yellow-2: #e3b30c;
	--sse-night: #1b0f36;           /* telemetry bar, hero tint, footer */
	--sse-night-2: #2a1545;
	--sse-lilac: #d8c4ff;           /* labels on purple/night */
	--sse-lilac-2: #b9a7d8;         /* muted text on night */
	--sse-lilac-3: #e9e2f3;         /* body text on night */
	--sse-tile: #ffffff;            /* sponsor/exhibitor logo tiles: always light */
	--sse-tile-ink: #333333;
	--sse-tbd: #7a4b00;             /* TBD / confirm chips */
	--sse-tbd-bg: #fff6d6;
	--sse-tbd-line: #d9a400;
	--sse-li: #0a66c2;              /* LinkedIn badge */
	--sse-white: #ffffff;
	--sse-black: #000000;
	--sse-slot-a: #f3f0fa;
	--sse-slot-b: #ebe5f6;
	--sse-hero-tint: linear-gradient(90deg, rgba(27, 15, 54, .9) 0%, rgba(27, 15, 54, .62) 42%, rgba(27, 15, 54, .12) 100%), linear-gradient(180deg, rgba(27, 15, 54, .5) 0%, rgba(27, 15, 54, 0) 22%);
	--sse-photo-tint: linear-gradient(180deg, rgba(27, 15, 54, 0) 25%, rgba(27, 15, 54, .72) 55%, rgba(27, 15, 54, .92) 100%); /* canvas: transparent 30% → .9; deepened mid-stop so the yellow kicker holds on light photos */
	--sse-grid-80: linear-gradient(rgba(255, 255, 255, .1) 1px, transparent 1px), linear-gradient(90deg, rgba(255, 255, 255, .1) 1px, transparent 1px);
	--sse-display: 'Space Grotesk', 'Helvetica Neue', Arial, sans-serif;
	--sse-mono: 'JetBrains Mono', ui-monospace, Menlo, monospace;
	--sse-wide: 1280px;
	--sse-gutter: 56px;
	--sse-radius: 4px;
	--sse-nav-h: 96px;
	--sse-tel-h: 36px;
	--sse-logo-h: 52px;
	--sse-section-y: 64px;
	--sse-glow: rgba(245, 197, 24, .55);   /* floor plan: lit booth halo */
	--sse-glow-2: rgba(245, 197, 24, .25);
	--sse-shade: rgba(27, 15, 54, .16);    /* floor plan: shadow under the hall sheet */
	--sse-shadow: 0 4px 12px rgba(27, 15, 54, .12);
	--sse-shadow-lg: 0 16px 40px rgba(27, 15, 54, .16);
	--sse-ease: .18s ease;
}
/* The parent theme's blocks (agenda, exhibitor directory, speaker grids) read its palette slugs.
   Alias them to SmallSat Europe tokens so every parent block inherits the light palette. */
:root {
	--wp--preset--color--base: var(--sse-bg);
	--wp--preset--color--base-2: var(--sse-mist);
	--wp--preset--color--contrast: var(--sse-ink);
	--wp--preset--color--contrast-2: var(--sse-ink-2);
	--wp--preset--color--border: var(--sse-line-2);
	--wp--preset--color--primary: var(--sse-accent);
	--wp--preset--color--accent: var(--sse-accent);
	--wp--preset--color--highlight: var(--sse-haze);
	--wp--preset--color--success: var(--sse-mut);
	--wp--preset--color--danger: #b42318;
}

/* --------------------------------------------------------------------------
   2. Base
   -------------------------------------------------------------------------- */
body {
	background: var(--sse-bg);
	color: var(--sse-ink);
	font-family: var(--sse-display);
	font-size: 16px;
	line-height: 1.55;
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
}
html { scroll-behavior: smooth; scroll-padding-top: calc(var(--sse-nav-h) + 24px); }
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } }

a { color: inherit; text-decoration: none; transition: color var(--sse-ease); }
a:hover { color: var(--sse-accent); }
p a, li a, dd a, td a, .sse-prose a { color: var(--sse-accent); text-decoration: underline; text-underline-offset: 3px; }
p a:hover, li a:hover, dd a:hover, td a:hover, .sse-prose a:hover { color: var(--sse-ink); }

body.sse :focus-visible, .sse-nav :focus-visible { outline: 2px solid var(--sse-accent); outline-offset: 2px; }

h1, h2, h3, h4, .wp-block-heading {
	font-family: var(--sse-display);
	font-weight: 700;
	line-height: 1;
	letter-spacing: -.03em;
	color: var(--sse-ink);
	text-wrap: balance;
	margin: 0;
}
h1 { font-size: clamp(44px, 6vw, 72px); letter-spacing: -.04em; }
h2 { font-size: clamp(30px, 3.2vw, 40px); }
h3 { font-size: 26px; line-height: 1.05; }
h4 { font-size: 19px; line-height: 1.2; letter-spacing: -.01em; }

/* Box model: every sse- component and its descendants use border-box (WordPress core does not set it globally). */
[class*="sse-"], [class*="sse-"] *, [class*="sse-"] *::before, [class*="sse-"] *::after, .wp-block-button__link { box-sizing: border-box; }

/* Block layout resets: our components set their own rhythm, so neutralise flow-layout gaps. */
body .wp-site-blocks > * + *, body .wp-site-blocks > * { margin-block-start: 0; margin-block-end: 0; }
.sse-main .entry-content > * { margin-block: 0; }
[class*="sse-"] > * { margin-block-start: 0; margin-block-end: 0; }
[class*="sse-"] > .wp-block-image { margin: 0; }
.wp-block-template-part { display: contents; }                   /* lets .sse-nav stick to the viewport */
.wp-block-image img { display: block; height: auto; max-width: 100%; }
.wp-block-image figcaption { color: var(--sse-mut); font-size: 13px; margin: 8px 0 0; }
main.sse-main { min-height: 0; }

/* Skip link (core prints it for block themes) — on-token when focused */
.skip-link.screen-reader-text:focus { background: var(--sse-accent); color: var(--sse-white); font-family: var(--sse-display); font-weight: 600; font-size: 15px; padding: 12px 22px; top: 8px; left: 8px; z-index: 100001; outline: 2px solid var(--sse-yellow); outline-offset: 2px; text-decoration: none; box-shadow: none; border-radius: var(--sse-radius); }

/* Utilities */
.sse-w { max-width: var(--sse-wide); margin-left: auto; margin-right: auto; padding-left: var(--sse-gutter); padding-right: var(--sse-gutter); }
.sse-mono, .sse-kicker { font-family: var(--sse-mono); font-size: 12px; letter-spacing: .04em; text-transform: uppercase; font-weight: 500; line-height: 1.5; }
.sse-kicker { color: var(--sse-label); }
.sse-accent, .sse-red { color: var(--sse-accent); }  /* .sse-red: name kept from the SSS fork (inc/agenda.php); it means "accent" here */
.sse-mut { color: var(--sse-mut); }
.sse-ink2 { color: var(--sse-ink-2); }
.sse-small { font-size: 14px; }
.sse-lede { font-size: 18px; color: var(--sse-ink-2); line-height: 1.55; }
.sse-tbd { font-family: var(--sse-mono); font-size: 10.5px; letter-spacing: .06em; text-transform: uppercase; color: var(--sse-tbd); background: var(--sse-tbd-bg); border: 1px dashed var(--sse-tbd-line); border-radius: 3px; padding: 2px 6px; white-space: nowrap; font-weight: 500; vertical-align: middle; line-height: 1.4; }
.sse-visually-hidden { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }

/* --------------------------------------------------------------------------
   3. Telemetry bar (night strip above the header; inc/chrome.php)
   -------------------------------------------------------------------------- */
.sse-tel { background: var(--sse-night); color: var(--sse-lilac-2); font-family: var(--sse-mono); font-size: 12px; letter-spacing: .06em; text-transform: uppercase; }
.sse-tel .sse-w { display: flex; gap: 28px; height: var(--sse-tel-h); align-items: center; overflow: hidden; }
.sse-tel .sse-w > * { white-space: nowrap; flex: 0 0 auto; }
.sse-tel b { color: var(--sse-white); font-weight: 500; }
.sse-tel [data-sse-phase="before"] b { color: var(--sse-yellow); }
.sse-tel__end { margin-left: auto; }
.sse-tel__dot { width: 7px; height: 7px; border-radius: 50%; background: var(--sse-yellow); box-shadow: 0 0 8px var(--sse-yellow); animation: sse-blink 2s infinite; }
@keyframes sse-blink { 50% { opacity: .35; } }
@media (prefers-reduced-motion: reduce) { .sse-tel__dot { animation: none; } }

/* --------------------------------------------------------------------------
   4. Header / navigation (parts/header.html)
   -------------------------------------------------------------------------- */
/* The blur lives on a pseudo-element: backdrop-filter on .sse-nav itself would make it the containing
   block of the navigation overlay (position: fixed) and trap the mobile menu inside the header. */
.sse-nav { position: sticky; top: 0; z-index: 30; border-bottom: 1px solid var(--sse-line); isolation: isolate; }
.sse-nav::before { content: ""; position: absolute; inset: 0; z-index: -1; background: rgba(255, 255, 255, .94); -webkit-backdrop-filter: blur(10px); backdrop-filter: blur(10px); }
.sse-nav .sse-nav__in { display: flex; align-items: center; gap: 28px; height: var(--sse-nav-h); }
.sse-nav__brand { display: flex; align-items: center; gap: 14px; flex: 0 0 auto; }
.sse-nav__logo { flex: 0 0 auto; line-height: 0; display: flex; align-items: center; gap: 24px; }
.sse-nav__logo .custom-logo-link { display: flex; align-items: center; min-height: 44px; }
.sse-nav .wp-block-site-logo img, .sse-nav .wp-block-site-logo.is-default-size img { height: var(--sse-logo-h); width: auto; max-width: none; display: block; }
.sse-nav__name { font-weight: 700; font-size: 18px; letter-spacing: -.01em; line-height: 1.1; white-space: nowrap; }
.sse-nav__name a { color: var(--sse-ink); text-decoration: none; display: inline-block; padding: 12px 0; margin: -12px 0; } /* 44px tap target; inline-block keeps the space before the year */
.sse-nav__name span, .sse-nav__name b { color: var(--sse-accent); font-weight: 700; }
.sse-nav__live { display: none; align-items: center; gap: 10px; color: var(--sse-mut); white-space: nowrap; font-variant-numeric: tabular-nums; animation: sse-fade .3s ease; }
.sse-nav__live b { color: var(--sse-ink); font-weight: 500; }
.sse-nav__live .sse-tel__dot { background: var(--sse-accent); box-shadow: none; }
.sse-nav__live.is-on { display: inline-flex; }
@keyframes sse-fade { from { opacity: 0; } to { opacity: 1; } }
@media (max-width: 1280px) { .sse-nav__live { display: none !important; } }

.sse-nav .wp-block-navigation { margin-left: auto; font-size: 15px; font-weight: 500; flex: 0 1 auto; min-width: 0; }
.sse-nav .wp-block-navigation__container { display: flex; gap: 2px; flex-wrap: nowrap; justify-content: flex-end; list-style: none; margin: 0; padding: 0; }
.sse-nav .wp-block-navigation-item { display: flex; align-items: center; height: var(--sse-nav-h); margin: 0; }
.sse-nav .wp-block-navigation-item__content { display: flex; align-items: center; height: 100%; padding: 0 11px; position: relative; color: var(--sse-ink-2); white-space: nowrap; text-decoration: none; }
.sse-nav .wp-block-navigation-item__content:hover { color: var(--sse-accent); }
.sse-nav :is(.current-menu-item, .current-menu-ancestor) > .wp-block-navigation-item__content { color: var(--sse-ink); }
.sse-nav :is(.current-menu-item, .current-menu-ancestor) > .wp-block-navigation-item__content::after { content: ""; position: absolute; left: 11px; right: 11px; bottom: -1px; height: 2px; background: var(--sse-accent); }
.sse-nav .current-menu-ancestor > .wp-block-navigation-submenu__toggle { position: relative; height: 100%; display: flex; align-items: center; }
.sse-nav .current-menu-ancestor > .wp-block-navigation-submenu__toggle::after { right: -16px; } /* reach under the chevron */
.sse-nav .wp-block-navigation-item__content:focus-visible { outline-offset: -4px; }
/* "More" dropdown: core navigation-submenu, opened on click (parts/header.html). Core positions the panel; this skins it. */
.sse-nav .wp-block-navigation .has-child > .wp-block-navigation-submenu__toggle { background: none; border: 0; font: inherit; cursor: pointer; padding: 0 4px 0 11px; color: var(--sse-ink-2); }
.sse-nav .has-child .wp-block-navigation-submenu__toggle[aria-expanded="true"] { color: var(--sse-ink); }
.sse-nav .wp-block-navigation .has-child > .wp-block-navigation__submenu-icon { color: var(--sse-mut); margin: 0 11px 0 4px; }
.sse-nav .wp-block-navigation .has-child > .wp-block-navigation__submenu-icon svg { width: 12px; height: 12px; stroke: currentColor; }
.sse-nav .has-child .wp-block-navigation__submenu-container { background: var(--sse-bg); border: 1px solid var(--sse-line-2); border-radius: var(--sse-radius); box-shadow: var(--sse-shadow-lg); padding: 8px 0; min-width: 220px; }
.sse-nav .has-child .wp-block-navigation__submenu-container .wp-block-navigation-item { display: block; height: auto; }
.sse-nav .wp-block-navigation .has-child .wp-block-navigation__submenu-container > .wp-block-navigation-item > .wp-block-navigation-item__content { height: auto; padding: 12px 18px; font-size: 15px; }
.sse-nav .has-child .wp-block-navigation__submenu-container .wp-block-navigation-item__content:hover { color: var(--sse-accent); background: var(--sse-mist); }
.sse-nav .has-child .wp-block-navigation__submenu-container .current-menu-item > .wp-block-navigation-item__content { color: var(--sse-accent); }
.sse-nav .has-child .wp-block-navigation__submenu-container .current-menu-item > .wp-block-navigation-item__content::after { display: none; }

.sse-nav__cta { flex: 0 0 auto; margin: 0; gap: 10px; flex-wrap: nowrap; }
.sse-nav__cta .wp-block-button__link { padding: 10px 18px; font-size: 14px; }

/* Hamburger (core navigation overlay) — shown under 1100px instead of core's 600px */
.sse-nav .wp-block-navigation__responsive-container-open { display: none; width: 44px; height: 44px; align-items: center; justify-content: center; margin: 0 -8px 0 0; padding: 0; color: var(--sse-ink); background: none; border: 0; cursor: pointer; }
.sse-nav .wp-block-navigation__responsive-container-open svg { width: 26px; height: 26px; }
.sse-nav .wp-block-navigation__responsive-container-open:hover { color: var(--sse-accent); }
.sse-nav .wp-block-navigation__responsive-container.is-menu-open { background: var(--sse-bg); color: var(--sse-ink); padding: 0; }
.sse-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-dialog { min-height: 100%; }
.sse-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-close { max-width: none; margin: 0; padding: 0 20px; }
.sse-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-close { position: absolute; top: 14px; right: 12px; width: 44px; height: 44px; display: flex; align-items: center; justify-content: center; color: var(--sse-ink); background: none; border: 0; cursor: pointer; padding: 0; z-index: 2; }
.sse-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-close svg { width: 28px; height: 28px; }
.sse-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content { padding: 96px 0 40px; display: block; }
.sse-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__container { flex-direction: column; align-items: stretch; gap: 0; border-top: 1px solid var(--sse-line); }
.sse-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item { height: auto; display: block; border-bottom: 1px solid var(--sse-line); }
.sse-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item__content { display: flex; justify-content: space-between; align-items: center; height: auto; padding: 18px 0; font-family: var(--sse-display); font-weight: 700; font-size: 30px; line-height: 1.05; letter-spacing: -.03em; color: var(--sse-ink); }
.sse-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item__content::after { content: "→"; position: static; height: auto; background: none; font-family: var(--sse-mono); font-size: 16px; font-weight: 400; color: var(--sse-accent); }
.sse-nav .wp-block-navigation__responsive-container.is-menu-open .current-menu-item > .wp-block-navigation-item__content { color: var(--sse-accent); }
/* In the mobile overlay the "More" group is flattened: no toggle, its links listed like the others. */
.sse-nav .wp-block-navigation__responsive-container.is-menu-open .sse-nav__more > .wp-block-navigation-submenu__toggle, .sse-nav .wp-block-navigation__responsive-container.is-menu-open .sse-nav__more > .wp-block-navigation__submenu-icon { display: none; }
.sse-nav .wp-block-navigation__responsive-container.is-menu-open li.sse-nav__more { border-bottom: 0; }
.sse-nav .wp-block-navigation__responsive-container.is-menu-open .sse-nav__more .wp-block-navigation__submenu-container { position: static; display: block; opacity: 1; visibility: visible; background: none; border: 0; box-shadow: none; padding: 0; min-width: 0; }
.sse-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content .wp-block-navigation__container .sse-nav__more .wp-block-navigation__submenu-container .wp-block-navigation-item__content { padding: 14px 0; font-size: 20px; }
.sse-nav .wp-block-navigation__responsive-container.is-menu-open::before { content: "Menu"; position: absolute; left: 20px; top: 27px; font-family: var(--sse-mono); font-size: 12px; letter-spacing: .06em; text-transform: uppercase; color: var(--sse-label); }

/* --------------------------------------------------------------------------
   5. Buttons
   theme.json gives .wp-block-button__link the primary look; these cover raw anchors and variations.
   Primary = purple. On dark/photo: is-style-sse-accent (yellow) + is-style-sse-light (glass ghost).
   -------------------------------------------------------------------------- */
.sse-btn, .wp-block-button__link, .wp-element-button {
	display: inline-flex; align-items: center; justify-content: center; gap: 10px;
	background: var(--sse-accent); color: var(--sse-white); padding: 14px 22px;
	font-family: var(--sse-display); font-weight: 600; font-size: 15px; line-height: 1.3;
	border: 0; border-radius: var(--sse-radius); box-shadow: none; cursor: pointer; text-decoration: none; text-transform: none; letter-spacing: 0;
	transition: background var(--sse-ease), border-color var(--sse-ease), color var(--sse-ease);
}
.sse-btn:hover, .wp-block-button__link:hover, .wp-element-button:hover { background: var(--sse-accent-2); color: var(--sse-white); }
.sse-btn.sse-btn--ghost, .is-style-sse-ghost .wp-block-button__link { background: transparent; border: 1.5px solid var(--sse-accent); color: var(--sse-accent); padding: 12.5px 20.5px; }
.sse-btn.sse-btn--ghost:hover, .is-style-sse-ghost .wp-block-button__link:hover { background: var(--sse-haze); border-color: var(--sse-accent); color: var(--sse-accent); }
.sse-btn.sse-btn--quiet, .sse-btn--quiet .wp-block-button__link { background: transparent; border: 1.5px solid var(--sse-line-2); color: var(--sse-ink); padding: 12.5px 20.5px; }
.sse-btn.sse-btn--quiet:hover, .sse-btn--quiet .wp-block-button__link:hover { background: transparent; border-color: var(--sse-ink); color: var(--sse-ink); }
.sse-btn.sse-btn--accent, .is-style-sse-accent .wp-block-button__link { background: var(--sse-yellow); color: var(--sse-ink); }
.sse-btn.sse-btn--accent:hover, .is-style-sse-accent .wp-block-button__link:hover { background: var(--sse-yellow-2); color: var(--sse-ink); }
.sse-btn.sse-btn--light, .is-style-sse-light .wp-block-button__link { background: rgba(255, 255, 255, .12); border: 1.5px solid rgba(255, 255, 255, .4); color: var(--sse-white); padding: 12.5px 20.5px; }
.sse-btn.sse-btn--light:hover, .is-style-sse-light .wp-block-button__link:hover { background: rgba(255, 255, 255, .2); border-color: var(--sse-white); color: var(--sse-white); }
.sse-btn.sse-btn--lg, .sse-btn--lg .wp-block-button__link { padding: 16px 26px; font-size: 15px; }
.sse-btn--lg.is-style-sse-ghost .wp-block-button__link, .sse-btn--lg.is-style-sse-light .wp-block-button__link, .sse-btn--lg.sse-btn--quiet .wp-block-button__link { padding: 14.5px 24.5px; }
.sse-btn--caps .wp-block-button__link { font-size: 14px; letter-spacing: .04em; text-transform: uppercase; padding: 14px 26px; }
.sse-btn--block { width: 100%; }
.sse-btn[disabled], .sse-btn:disabled { opacity: .55; cursor: not-allowed; }
.wp-block-buttons { display: flex; flex-wrap: wrap; gap: 12px; }
.wp-block-buttons > .wp-block-button { margin: 0; }
.wp-block-button__link:focus-visible { outline: 2px solid var(--sse-accent); outline-offset: 2px; }
.is-style-sse-accent .wp-block-button__link:focus-visible, .is-style-sse-light .wp-block-button__link:focus-visible { outline-color: var(--sse-yellow); }
/* Placeholder URLs: a button or link pointing at a TBD anchor carries a dashed chip until the Customizer URL is set. */
/* (Card headings use ::after as the stretched link, so their chip goes on the card's kicker instead.) */
:is(.wp-block-button__link, .sse-btn, p a, li a)[href="#register-tbd"]::after, :is(.wp-block-button__link, .sse-btn, p a, li a)[href="#matchmaking-tbd"]::after,
:is(.sse-card, .sse-pcard):has(h3 a[href$="-tbd"]) .sse-card__k::after { content: "URL TBD"; font-family: var(--sse-mono); font-size: 9.5px; font-weight: 500; letter-spacing: .06em; line-height: 1.3; text-transform: uppercase; border: 1px dashed currentColor; border-radius: 3px; padding: 1px 5px; margin-left: 8px; opacity: .85; white-space: nowrap; }

/* --------------------------------------------------------------------------
   6. Sections and surfaces
   -------------------------------------------------------------------------- */
.sse-section { padding: var(--sse-section-y) 0; border-bottom: 1px solid var(--sse-line-2); }
.sse-section--last, .sse-section.sse-section--last { border-bottom: 0; }
.sse-section--flush { padding-bottom: 0; border-bottom: 0; }
.sse-section--open { border-bottom: 0; }
.sse-mist, .is-style-sse-mist { background: var(--sse-mist); }
.sse-paper { background: var(--sse-bg); }
.sse-night, .is-style-sse-night { background: var(--sse-night); color: var(--sse-lilac-3); }
.sse-night :is(h1, h2, h3, h4) { color: var(--sse-white); }
.sse-night .sse-kicker { color: var(--sse-lilac); }
/* Section header (interior, SSS shape): H2 left, mono label or link right */
.sse-sh { display: flex; justify-content: space-between; align-items: flex-end; gap: 24px; margin-bottom: 40px; }
.sse-cells + .sse-sh, .sse-cells + .sse-mh { margin-top: 64px; } /* a section header straight after a cell grid needs air */
.sse-lede + .sse-cells { margin-top: 36px; } /* an intro paragraph straight before a cell grid needs air too */
.sse-sh > .sse-mono, .sse-sh > p { color: var(--sse-label); }
.sse-sh a { color: var(--sse-accent); text-decoration: none; display: inline-block; padding: 14px 0; margin: -14px 0; }
.sse-sh a:hover { color: var(--sse-ink); }
/* Module header (homepage shape): kicker over H2 left, "→" link right */
.sse-mh { display: flex; justify-content: space-between; align-items: flex-end; gap: 24px; margin-bottom: 28px; }
.sse-mh__l { display: flex; flex-direction: column; gap: 10px; min-width: 0; }
.sse-mh__l > * { margin: 0; }
.sse-mh__more { flex: 0 0 auto; font-size: 14px; font-weight: 600; }
.sse-mh__more a { color: var(--sse-accent); text-decoration: none; display: inline-block; padding: 12px 0; margin: -12px 0; }
.sse-mh__more a:hover { color: var(--sse-ink); }
.sse-kicker.sse-mut { color: var(--sse-mut); }
.sse-h2--after-kicker { margin: 14px 0 24px; }
.sse-panel { border: 1px solid var(--sse-line-2); background: var(--sse-panel); padding: 28px; border-radius: var(--sse-radius); }
.sse-panel + .sse-panel { margin-top: 16px; }
.sse-panel > .sse-mono + p { margin: 10px 0 16px; font-size: 15px; color: var(--sse-ink-2); }
.sse-panel > .sse-kicker + p { margin: 12px 0 0; color: var(--sse-ink-2); }
.sse-panel .wp-block-buttons { margin-top: 24px; }

/* Key / value list (group of paired paragraphs) */
.sse-kv { display: grid; grid-template-columns: 150px minmax(0, 1fr); gap: 14px 0; border-top: 1px solid var(--sse-line-2); padding-top: 22px; }
.sse-kv > .sse-kv__k { color: var(--sse-label); }
.sse-kv > .sse-kv__v { color: var(--sse-ink); }

/* Hairline grids: line-colored background + 1px gaps, white cells */
.sse-cells { display: grid; grid-template-columns: repeat(var(--cols, 4), minmax(0, 1fr)); gap: 1px; background: var(--sse-line-2); border: 1px solid var(--sse-line-2); }
.sse-cells > * { background: var(--sse-bg); padding: 28px; min-width: 0; }
.sse-cells--2 { --cols: 2; }
.sse-cells--3 { --cols: 3; }
.sse-cells--4 { --cols: 4; }
.sse-cells--6 { --cols: 6; }
.sse-cells--plain { background: transparent; border: 0; gap: 40px; }
.sse-cells--plain > * { padding: 0; }
.sse-feature { outline: 2px solid var(--sse-accent); outline-offset: -2px; background: var(--sse-bg) !important; }

/* Split (two columns) */
.sse-split { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 48px; align-items: center; }
.sse-split--top { align-items: start; }

/* Placeholder slot for missing imagery/embeds */
.sse-slot { background: repeating-linear-gradient(135deg, var(--sse-slot-a) 0 8px, var(--sse-slot-b) 8px 16px); border-radius: var(--sse-radius); display: flex; align-items: center; justify-content: center; text-align: center; padding: 20px; color: var(--sse-label); font-family: var(--sse-mono); font-size: 11px; letter-spacing: .06em; text-transform: uppercase; line-height: 1.6; }
.sse-slot--43 { aspect-ratio: 4 / 3; }
.sse-slot--11 { aspect-ratio: 1; }
.sse-slot--1610 { aspect-ratio: 16 / 10; margin-bottom: 20px; }
/* Photos in grids: cover-cropped, 4px corners */
.sse-photo, .sse-photo img { border-radius: var(--sse-radius); }
.sse-photo img { width: 100%; height: 100%; object-fit: cover; }
/* Sponsor logos outside the directory (single sponsor page, sponsor archive): a white frame, logo letterboxed in colour.
   The parent sets object-fit: cover and an 8px radius inline on the image, hence the !important overrides. */
body.sse .wp-block-post-featured-image { background: var(--sse-tile); border: 1px solid var(--sse-line-2); width: 320px; max-width: 100%; height: 200px; display: flex; align-items: center; justify-content: center; padding: 20px; box-sizing: border-box; border-radius: var(--sse-radius); margin: 0; }
body.sse .wp-block-post-featured-image img { width: 100% !important; height: 100% !important; object-fit: contain !important; border-radius: 0 !important; display: block; }
/* Map embed (Travel & Venue): wraps the Google Maps iframe */
.sse-map { border: 1px solid var(--sse-line-2); background: var(--sse-mist); border-radius: var(--sse-radius); overflow: hidden; }
.sse-map iframe { display: block; width: 100%; height: 360px; border: 0; }
/* Stretched link: a card's heading link covers the whole card (one tab stop, whole card clickable) */
.sse-card, .sse-pcard { position: relative; }
.sse-card h3 a::after, .sse-pcard h3 a::after { content: ""; position: absolute; inset: 0; z-index: 1; }
.sse-card h3 a, .sse-pcard h3 a { color: inherit; text-decoration: none; }
.sse-card h3 a:focus-visible { outline: none; }
.sse-card:focus-within, .sse-pcard:focus-within { outline: 2px solid var(--sse-accent); outline-offset: 4px; border-radius: var(--sse-radius); }

/* --------------------------------------------------------------------------
   7. Home (patterns/home-*.php): hero, road to Amsterdam, tracks, exhibition,
      speakers, LinkedIn bar, photo duo, plan your trip, sponsors + news
   -------------------------------------------------------------------------- */
/* 7a. Hero: full-frame 2026 show-floor photo, night tint + 80px grid, show name H1, tagline at ~1/3 size */
.sse-hero { position: relative; margin: 0 auto; width: calc(100% - 48px); max-width: calc(var(--sse-wide) - 48px); border-radius: var(--sse-radius); overflow: hidden; background: var(--sse-night-2); color: var(--sse-white); isolation: isolate; }
.sse-hero__img { position: absolute !important; inset: 0; margin: 0 !important; z-index: -2; }
.sse-hero__img img { width: 100%; height: 100%; object-fit: cover; object-position: center top; }
.sse-hero::before { content: ""; position: absolute; inset: 0; z-index: -1; background: var(--sse-hero-tint); }
.sse-hero::after { content: ""; position: absolute; inset: 0; z-index: -1; background-image: var(--sse-grid-80); background-size: 80px 80px; pointer-events: none; }
.sse-hero .sse-hero__in { position: relative; min-height: clamp(560px, calc(100svh - var(--sse-nav-h) - var(--sse-tel-h) - 24px), 760px); display: flex; flex-direction: column; justify-content: space-between; gap: 48px; padding: 40px; }
.sse-hero__fig { display: flex; justify-content: space-between; gap: 24px; color: var(--sse-lilac); }
.sse-hero__fig > * { margin: 0; }
.sse-hero__grid { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 48px; align-items: end; }
.sse-hero__copy { display: flex; flex-direction: column; gap: 20px; max-width: 820px; }
.sse-hero__copy > * { margin: 0; }
.sse-hero__kicker { font-family: var(--sse-mono); font-size: 13px; font-weight: 500; letter-spacing: .04em; text-transform: uppercase; color: var(--sse-yellow); display: flex; flex-wrap: wrap; gap: 6px 16px; }
.sse-hero__kicker .sse-sep { color: var(--sse-lilac-2); }
.sse-hero h1 { color: var(--sse-white); font-size: clamp(48px, 6.6vw, 92px); line-height: .95; letter-spacing: -.04em; }
.sse-hero h1 span { color: var(--sse-lilac); }
.sse-hero__tag { font-size: clamp(22px, 2.3vw, 31px); line-height: 1.15; font-weight: 500; letter-spacing: -.02em; color: var(--sse-yellow); }
.sse-hero__lede { max-width: 560px; font-size: 17px; line-height: 1.55; color: var(--sse-lilac-3); }
.sse-hero .wp-block-buttons { margin-top: 4px; }
.sse-hero__stats { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1px; background: rgba(255, 255, 255, .15); border: 1px solid rgba(255, 255, 255, .15); min-width: 340px; }
.sse-hero__stats > * { padding: 20px 24px; background: rgba(27, 15, 54, .75); }
.sse-stat__k { font-family: var(--sse-mono); font-size: 11px; font-weight: 500; letter-spacing: .04em; text-transform: uppercase; color: var(--sse-lilac-2); margin: 0 0 8px; }
.sse-stat__v { font-size: 36px; line-height: 1; font-weight: 700; letter-spacing: -.03em; color: var(--sse-white); margin: 0; font-variant-numeric: tabular-nums; }
.sse-hero__stats-note { grid-column: 1 / -1; padding: 10px 24px !important; font-family: var(--sse-mono); font-size: 10.5px; letter-spacing: .04em; text-transform: uppercase; color: var(--sse-lilac-2); }

/* 7b. Road to Amsterdam: key-dates timeline. Editors set is-past / is-now / is-event on the items;
   sse.js adds is-past to items whose <time datetime> has gone by and draws the progress line to the "now" dot. */
.sse-road { padding-top: 48px; }
.sse-road__hd { display: flex; justify-content: space-between; align-items: baseline; gap: 16px; margin-bottom: 22px; }
.sse-road__hd > * { margin: 0; }
.sse-road__hd .sse-road__count { color: var(--sse-accent); }
.sse-road__list { --n: 8; --progress: 0px; position: relative; display: grid; grid-template-columns: repeat(var(--n), minmax(0, 1fr)); gap: 16px; list-style: none; margin: 0; padding: 0; }
.sse-road__list--9 { --n: 9; gap: 12px; }
.sse-road__list--10 { --n: 10; gap: 10px; }
.sse-road__list::before { content: ""; position: absolute; left: 0; right: 0; top: 8px; height: 2px; background: var(--sse-line-2); }
.sse-road__list::after { content: ""; position: absolute; left: 0; top: 8px; height: 2px; width: var(--progress); background: var(--sse-accent); transition: width 2.8s cubic-bezier(.2, .7, .2, 1) .6s; }
/* Scroll reveal: sse.js arms the list (items hidden) and adds is-in when it enters the viewport; each item rises in
   turn (--i set by sse.js) and the progress line draws to the "you are here" dot. Nothing is hidden without JS. */
.sse-road__list.is-armed .sse-road__i { opacity: 0; transform: translateY(16px); transition: opacity 1.2s ease, transform 1.2s cubic-bezier(.2, .7, .2, 1); transition-delay: calc(var(--i, 0) * 170ms); }
.sse-road__list.is-armed.is-in .sse-road__i { opacity: 1; transform: none; }
.sse-road__list.is-armed .sse-road__i.is-now::before { transform: scale(.6); transition: transform .9s cubic-bezier(.3, 1.4, .5, 1) calc(var(--i, 0) * 170ms + .5s); }
.sse-road__list.is-armed.is-in .sse-road__i.is-now::before { transform: none; }
/* "You are here" pulses: the yellow halo breathes outwards every 2.6 s (starts once the dot has popped in) */
@keyframes sse-road-pulse {
	0%   { box-shadow: 0 0 0 1.5px var(--sse-accent), 0 0 0 6px rgba(245, 197, 24, .35); }
	55%  { box-shadow: 0 0 0 1.5px var(--sse-accent), 0 0 0 14px rgba(245, 197, 24, 0); }
	100% { box-shadow: 0 0 0 1.5px var(--sse-accent), 0 0 0 6px rgba(245, 197, 24, 0); }
}
.sse-road__i.is-now::before { animation: sse-road-pulse 2.6s ease-out 1.6s infinite; }
@media (prefers-reduced-motion: reduce) { .sse-road__i.is-now::before { animation: none; } }
.sse-road__i { position: relative; display: flex; flex-direction: column; gap: 8px; margin: 0; min-width: 0; }
.sse-road__i > * { margin: 0; }
.sse-road__i::before { content: ""; display: block; width: 18px; height: 18px; border-radius: 50%; background: var(--sse-bg); border: 3px solid var(--sse-bg); box-shadow: 0 0 0 1.5px var(--sse-accent); position: relative; z-index: 1; flex: 0 0 auto; }
.sse-road__d { font-family: var(--sse-mono); font-size: 11px; font-weight: 500; letter-spacing: .02em; text-transform: uppercase; color: var(--sse-label); margin-top: 6px !important; }
.sse-road__t { font-weight: 700; font-size: 15px; line-height: 1.2; color: var(--sse-ink); }
.sse-road__b { font-size: 13px; line-height: 1.45; color: var(--sse-mut); }
.sse-road__i.is-past::before { background: var(--sse-line-3); }
.sse-road__i.is-past .sse-road__t { color: var(--sse-ink-2); }
.sse-road__i.is-now::before { background: var(--sse-yellow); box-shadow: 0 0 0 1.5px var(--sse-accent), 0 0 0 6px rgba(245, 197, 24, .35); }
.sse-road__i.is-now .sse-road__d { align-self: flex-start; justify-self: start; background: var(--sse-yellow); color: var(--sse-ink); font-weight: 600; font-size: 10px; letter-spacing: .06em; padding: 3px 6px; border-radius: 3px; }
.sse-road__i.is-event::before { background: var(--sse-accent); }
.sse-road__i.is-event .sse-road__d { color: var(--sse-accent); }

/* 7c. Tracks: three photo cards */
.sse-tracks { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 24px; }
.sse-card { display: flex; flex-direction: column; gap: 14px; min-width: 0; }
.sse-card > * { margin: 0; }
.sse-card .wp-block-image { aspect-ratio: 4 / 3; overflow: hidden; border-radius: var(--sse-radius); background: var(--sse-line-2); }
.sse-card .wp-block-image img { width: 100%; height: 100%; object-fit: cover; transition: transform .5s ease; }
.sse-card:hover .wp-block-image img { transform: scale(1.03); }
@media (prefers-reduced-motion: reduce) { .sse-card:hover .wp-block-image img { transform: none; } }
.sse-card__k { font-family: var(--sse-mono); font-size: 12px; font-weight: 500; letter-spacing: .04em; text-transform: uppercase; color: var(--sse-accent); }
.sse-card h3 { font-size: 26px; line-height: 1.05; }
.sse-card__b { font-size: 15px; line-height: 1.5; color: var(--sse-ink-2); }
.sse-card__go { font-size: 14px; font-weight: 600; color: var(--sse-accent); }
.sse-trip .sse-card .wp-block-image { aspect-ratio: 16 / 10; }
.sse-trip .sse-card h3 { font-size: 24px; line-height: 1.1; }
.sse-trip { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 24px; }

/* 7d. Exhibition split: copy + buttons + live logo wall left, show-floor photo right */
.sse-band { border-top: 1px solid var(--sse-line-2); border-bottom: 1px solid var(--sse-line-2); background: var(--sse-bg); }
.sse-band + .sse-band { border-top: 0; }
.sse-section + .sse-band { border-top: 0; }
/* The photo bleeds to the right edge of the viewport; the copy column lines up with the page container. */
.sse-expo { display: grid; grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); }
.sse-expo__copy { padding: 48px var(--sse-gutter) 48px max(var(--sse-gutter), calc((100vw - var(--sse-wide)) / 2 + var(--sse-gutter))); display: flex; flex-direction: column; gap: 20px; border-right: 1px solid var(--sse-line-2); min-width: 0; }
.sse-expo__copy > * { margin: 0; }
.sse-expo__copy > p:not(.sse-kicker) { font-size: 16px; line-height: 1.55; color: var(--sse-ink-2); max-width: 520px; } /* core adds .wp-block-paragraph to every p, so :not([class]) never matches */
.sse-expo__copy .sse-spw { margin-top: 8px; }
.sse-expo__copy .sse-sp { height: 64px; padding: 0 10px; }
.sse-expo__copy .sse-sp img { max-height: 30px; }
.sse-expo__photo { position: relative; min-height: 320px; margin: 0 !important; }
.sse-expo__photo img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.sse-expo__photo figcaption { position: absolute; left: 24px; bottom: 24px; margin: 0; background: var(--sse-bg); border: 1px solid var(--sse-line-2); padding: 14px 18px; font-family: var(--sse-mono); font-size: 12px; font-weight: 500; line-height: 1.6; text-transform: uppercase; color: var(--sse-ink); }
.sse-expo__photo figcaption span { color: var(--sse-label); }

/* 7e. Speakers: hairline grid, last cell is the purple count */
.sse-spk { display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); gap: 1px; background: var(--sse-line-2); border: 1px solid var(--sse-line-2); }
.sse-spk > * { background: var(--sse-bg); padding: 16px; display: flex; flex-direction: column; gap: 12px; min-width: 0; }
.sse-spk > * > * { margin: 0; }
.sse-spk .wp-block-image, .sse-spk .sse-slot { aspect-ratio: 1; border-radius: 0; overflow: hidden; }
.sse-spk .wp-block-image img { width: 100%; height: 100%; object-fit: cover; }
.sse-spk__n { font-weight: 700; font-size: 14px; line-height: 1.25; }
.sse-spk__o { font-size: 12px; color: var(--sse-mut); margin-top: -8px !important; }
.sse-spk > .sse-spk__more { background: var(--sse-accent); color: var(--sse-white); justify-content: flex-end; gap: 8px; }
.sse-spk__more .sse-stat__v { font-size: 40px; }
.sse-spk__more p:not(.sse-stat__v) { font-size: 13px; color: var(--sse-lilac); }
.sse-spk__more a { color: inherit; }

/* 7f. LinkedIn bar: Taggbox (Tagembed) feed in a white module.
   The widget mounts into the page DOM (#tag_main__root inside .tagembed-widget), not an iframe, so the overrides
   below reach its cards. Its class names are build-hashed: set the base look (white card, 1px #d9d2ea border, 4px
   radius, square image, round avatar, 5-line clamp) in the Taggbox dashboard theme and keep the selectors here to
   stable hooks. .sse-post / .sse-li__arrow are the target card look from the reference. Tune on production: the
   widget is domain-locked to smallsateurope.com and does not render on other hosts. */
.sse-li__feed #tag_main__root { font-family: var(--sse-display); color: var(--sse-ink); }
.sse-li__feed #tag_main__root a { color: inherit; }
.sse-li__feed #tag_main__root button { font-family: var(--sse-display); }
.sse-li { background: var(--sse-bg); }
.sse-li__feed { position: relative; min-height: 420px; }
.sse-li__feed.is-empty, .sse-li__feed--off { min-height: 0; } /* widget blocked or not rendered: no empty 420px gap */
.sse-li__feed.is-empty { display: none; }
.sse-slot--feed { aspect-ratio: auto; min-height: 220px; gap: 10px; flex-wrap: wrap; }
.sse-li__feed .tagembed-widget { width: 100%; }
.sse-li__feed iframe { width: 100%; border: 0; }
.sse-li:has(.sse-li__feed) .sse-li__static { display: none; }
.sse-li__track { position: relative; }
.sse-li__static { --per: 5; display: grid; grid-auto-flow: column; grid-auto-columns: calc((100% - (var(--per) - 1) * 16px) / var(--per)); gap: 16px; overflow-x: auto; scroll-snap-type: x mandatory; scrollbar-width: none; }
.sse-li__static::-webkit-scrollbar { display: none; }
.sse-li__static > * { scroll-snap-align: start; }
.sse-post { display: flex; flex-direction: column; background: var(--sse-bg); border: 1px solid var(--sse-line-2); border-radius: var(--sse-radius); overflow: hidden; min-width: 0; color: var(--sse-ink); text-decoration: none; }
.sse-post:hover { color: var(--sse-ink); border-color: var(--sse-line-3); box-shadow: var(--sse-shadow); }
.sse-post__img { aspect-ratio: 1; background: var(--sse-night) center / cover no-repeat; }
.sse-post__body { position: relative; padding: 34px 16px 18px; display: flex; flex-direction: column; align-items: center; gap: 4px; text-align: center; }
.sse-post__av { position: absolute; top: -24px; left: 50%; margin-left: -24px; width: 48px; height: 48px; border-radius: 50%; border: 3px solid var(--sse-bg); background: var(--sse-accent); color: var(--sse-white); font: 700 15px/42px var(--sse-display); text-align: center; }
.sse-post__n { font-weight: 700; font-size: 14px; }
.sse-post__h { font-family: var(--sse-mono); font-size: 10px; font-weight: 500; text-transform: uppercase; color: var(--sse-label); }
.sse-post__in { display: inline-block; width: 18px; height: 18px; border-radius: 3px; background: var(--sse-li); color: var(--sse-white); font: 700 11px/18px Arial, sans-serif; text-align: center; margin: 6px 0; }
.sse-post__t { font-size: 13px; line-height: 1.5; color: var(--sse-ink-2); text-align: left; display: -webkit-box; -webkit-line-clamp: 5; -webkit-box-orient: vertical; overflow: hidden; }
.sse-li__arrow { position: absolute; top: 90px; width: 40px; height: 40px; border-radius: 50%; background: var(--sse-bg); border: 1px solid var(--sse-line-2); box-shadow: var(--sse-shadow); display: flex; align-items: center; justify-content: center; font: 500 20px/1 var(--sse-display); color: var(--sse-accent); cursor: pointer; z-index: 2; padding: 0; }
.sse-li__arrow--prev { left: -20px; }
.sse-li__arrow--next { right: -20px; }
.sse-li__arrow:hover { border-color: var(--sse-accent); }
.sse-li__cta { display: flex; justify-content: center; margin-top: 28px; }

/* 7g. Photo duo (matchmaking + SGAC forum): full-bleed photos, night gradient, yellow kicker */
.sse-duo { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 24px; }
.sse-quad { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 24px; } /* last-year photo cards */
.sse-quad .sse-pcard { aspect-ratio: 3 / 4; padding: 24px; }
.sse-quad .sse-pcard h3 { font-size: 22px; }
.sse-quad .sse-pcard__b { font-size: 13px; }
.sse-pcard { aspect-ratio: 16 / 10; border-radius: var(--sse-radius); overflow: hidden; display: flex; flex-direction: column; justify-content: flex-end; padding: 32px; color: var(--sse-white); background: var(--sse-night-2); isolation: isolate; min-width: 0; }
.sse-pcard > * { margin: 0; }
.sse-pcard > .wp-block-image { position: absolute; inset: 0; z-index: -2; margin: 0; }
.sse-pcard > .wp-block-image img { width: 100%; height: 100%; object-fit: cover; }
.sse-pcard::before { content: ""; position: absolute; inset: 0; z-index: -1; background: var(--sse-photo-tint); }
.sse-pcard .sse-card__k { color: var(--sse-yellow); }
.sse-pcard h3 { color: var(--sse-white); font-size: 30px; line-height: 1.05; margin-top: 10px; }
.sse-pcard__b { font-size: 14px; line-height: 1.5; color: var(--sse-lilac-3); margin-top: 10px !important; max-width: 440px; }

/* 7h. Sponsors + news split */
.sse-sn { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); max-width: var(--sse-wide); margin: 0 auto; }
.sse-sn--solo { grid-template-columns: minmax(0, 1fr); display: block; }
.sse-sn > * { padding: 48px var(--sse-gutter); display: flex; flex-direction: column; gap: 16px; min-width: 0; }
.sse-sn > * > * { margin: 0; }
.sse-sn > * + * { border-left: 1px solid var(--sse-line-2); }
.sse-sn h3 { font-size: 28px; }
.sse-sn .sse-sp { height: 56px; padding: 0 10px; }
.sse-news, .sse-sn .wp-block-latest-posts { list-style: none; margin: 0; padding: 0; border-top: 1px solid var(--sse-line-2); }
.sse-news li, .sse-sn .wp-block-latest-posts li { display: grid; grid-template-columns: 96px minmax(0, 1fr); gap: 16px; padding: 14px 0; border-bottom: 1px solid var(--sse-line-2); margin: 0; font-size: 15px; }
.sse-sn .wp-block-latest-posts__post-date { grid-row: 1; grid-column: 1; font-family: var(--sse-mono); font-size: 12px; font-weight: 500; text-transform: uppercase; color: var(--sse-label); padding-top: 3px; margin: 0; }
.sse-sn .wp-block-latest-posts__post-title { grid-row: 1; grid-column: 2; font-weight: 500; color: var(--sse-ink); text-decoration: none; display: inline-flex; align-items: center; min-height: 44px; margin: -11px 0; }
.sse-sn .wp-block-latest-posts__post-title:hover { color: var(--sse-accent); }

/* --------------------------------------------------------------------------
   8. Interior page header (patterns/page-header.php)
   White band, photo bleeding in from the right under a soft mask, mono breadcrumb, H1, lede.
   -------------------------------------------------------------------------- */
.sse-phead { position: relative; border-bottom: 1px solid var(--sse-line-2); overflow: hidden; background: var(--sse-bg); }
.sse-phead__bg { position: absolute !important; right: 0; top: 0; bottom: 0; width: 48%; margin: 0 !important; -webkit-mask-image: linear-gradient(90deg, transparent, #000 55%); mask-image: linear-gradient(90deg, transparent, #000 55%); }
.sse-phead__bg img { width: 100%; height: 100%; object-fit: cover; }
.sse-phead::after { content: ""; position: absolute; inset: 0; background-image: linear-gradient(var(--sse-line) 1px, transparent 1px), linear-gradient(90deg, var(--sse-line) 1px, transparent 1px); background-size: 80px 80px; opacity: .55; pointer-events: none; -webkit-mask-image: linear-gradient(90deg, #000 30%, transparent 60%); mask-image: linear-gradient(90deg, #000 30%, transparent 60%); }
.sse-phead .sse-phead__in { position: relative; z-index: 1; padding-top: 72px; padding-bottom: 64px; }
.sse-crumb, .sse-crumb a { color: var(--sse-label); text-decoration: none; }
.sse-crumb a:hover { color: var(--sse-accent); }
.sse-phead h1 { margin: 16px 0 20px; max-width: 760px; }
.sse-phead__lede { max-width: 620px; color: var(--sse-ink-2); font-size: 18px; }
.sse-phead .wp-block-buttons { margin-top: 32px; }
.sse-jump { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 32px !important; }
.sse-jump a { text-decoration: none; display: inline-flex; align-items: center; min-height: 44px; font-family: var(--sse-mono); font-size: 12px; font-weight: 500; letter-spacing: .04em; text-transform: uppercase; border: 1px solid var(--sse-line-2); border-radius: var(--sse-radius); padding: 8px 14px; color: var(--sse-ink); background: var(--sse-bg); }
.sse-jump a:hover { border-color: var(--sse-accent); color: var(--sse-accent); }

/* --------------------------------------------------------------------------
   8b. Interior cells, splits and section buttons (the interior recipe, README §7)
   -------------------------------------------------------------------------- */
.sse-cell { display: flex; flex-direction: column; gap: 10px; }
.sse-cell > * { margin: 0; }
.sse-cell h3 { margin-top: 6px; }
.sse-cell > p:not(.sse-kicker):not(.sse-cell__go) { color: var(--sse-ink-2); font-size: 15px; line-height: 1.5; }
.sse-cell__go { margin-top: auto !important; padding-top: 10px; font-size: 14px; font-weight: 600; }
.sse-cell__go a { color: var(--sse-accent); text-decoration: none; display: inline-flex; align-items: center; min-height: 44px; margin: -12px 0; }
.sse-cell__go a:hover { color: var(--sse-ink); }
.sse-split__text > * { margin: 0; }
.sse-split__text > * + * { margin-top: 16px; }
.sse-split__text .sse-kv { margin-top: 28px; }
.sse-split__text .wp-block-buttons { margin-top: 24px; }
.sse-section__btns { margin-top: 32px; }
.sse-lede.wp-block-paragraph { max-width: 640px; }
/* Any link to a "-tbd" anchor carries the dashed URL chip (register, matchmaking, SGAC application …) */
:is(.wp-block-button__link, .sse-btn, p a, li a)[href$="-tbd"]::after { content: "URL TBD"; font-family: var(--sse-mono); font-size: 9.5px; font-weight: 500; letter-spacing: .06em; line-height: 1.3; text-transform: uppercase; border: 1px dashed currentColor; border-radius: 3px; padding: 1px 5px; margin-left: 8px; opacity: .85; white-space: nowrap; }

/* --------------------------------------------------------------------------
   8c. Plain page header (posts page, archives, single posts, search, 404) and archive lists
   -------------------------------------------------------------------------- */
.sse-phead--plain .sse-phead__in { padding-top: 56px; padding-bottom: 44px; }
.sse-phead--plain h1 { margin-bottom: 0; }
.sse-phead--plain .sse-phead__lede, .sse-phead--plain .wp-block-term-description { margin-top: 16px; }
.sse-phead--plain .wp-block-term-description p { color: var(--sse-ink-2); font-size: 18px; max-width: 620px; margin: 0; }
.sse-phead__date, .sse-phead--plain .wp-block-post-date { font-family: var(--sse-mono); font-size: 12px; font-weight: 500; letter-spacing: .04em; text-transform: uppercase; color: var(--sse-label); margin-top: 18px !important; }
.sse-phead--plain .sse-search, .sse-phead--plain .wp-block-buttons { margin-top: 28px; max-width: 560px; }
.sse-news.wp-block-post-template { display: block; list-style: none; margin: 0; padding: 0; border-top: 1px solid var(--sse-line-2); }
.sse-news .wp-block-post { display: grid; grid-template-columns: 140px minmax(0, 1fr); gap: 6px 24px; padding: 22px 0; margin: 0; border-bottom: 1px solid var(--sse-line-2); }
.sse-news .wp-block-post > * { margin: 0; }
.sse-news .wp-block-post-date { grid-row: 1 / span 2; font-family: var(--sse-mono); font-size: 12px; font-weight: 500; letter-spacing: .04em; text-transform: uppercase; color: var(--sse-label); padding-top: 5px; }
.sse-news .wp-block-post-title { font-size: 22px; line-height: 1.15; }
.sse-news .wp-block-post-title a { color: var(--sse-ink); text-decoration: none; }
.sse-news .wp-block-post-title a:hover { color: var(--sse-accent); }
.sse-news .wp-block-post-excerpt { grid-column: 2; color: var(--sse-ink-2); font-size: 15px; line-height: 1.5; }
.sse-news .wp-block-post-excerpt p { margin: 0; }
.sse-news .wp-block-post-excerpt__more-text { margin-top: 6px; }
.sse-news .wp-block-post-excerpt__more-link { color: var(--sse-accent); text-decoration: none; font-weight: 600; }
.sse-pagination { margin-top: 32px; font-family: var(--sse-mono); font-size: 12px; font-weight: 500; letter-spacing: .04em; text-transform: uppercase; }
.sse-pagination a, .sse-pagination .page-numbers { color: var(--sse-accent); text-decoration: none; display: inline-flex; align-items: center; min-height: 44px; padding: 0 6px; }
.sse-pagination .page-numbers.current { color: var(--sse-ink); }
.sse-prose { max-width: 760px; }
.sse-prose > * + *, .sse-prose .entry-content > * + * { margin-top: 1.1em; }
.sse-prose .entry-content > * { margin-block: 0; }
.sse-prose h2 { margin-top: 1.6em; font-size: 30px; }
.sse-prose h3 { margin-top: 1.4em; }
.sse-prose p, .sse-prose li { font-size: 17px; line-height: 1.6; color: var(--sse-ink-2); }
.sse-prose img { max-width: 100%; height: auto; border-radius: var(--sse-radius); }
.sse-prose blockquote { border-left: 2px solid var(--sse-accent); padding-left: 20px; margin-left: 0; color: var(--sse-ink); }
.sse-prose .wp-block-post-featured-image { margin-bottom: 28px; }
.sse-prose .wp-block-post-featured-image img { width: 100%; height: auto; border-radius: var(--sse-radius); }
.sse-back { font-size: 14px; font-weight: 600; margin-top: 40px !important; }
.sse-back a { color: var(--sse-accent); text-decoration: none; display: inline-flex; align-items: center; min-height: 44px; }
.sse-why--compact > * { padding: 24px 20px; }
.sse-why--compact .sse-why__n { font-size: clamp(26px, 2.2vw, 34px); letter-spacing: -.03em; overflow-wrap: anywhere; }
/* core/search block in the Europe skin */
.sse-search .wp-block-search__inside-wrapper { display: flex; gap: 8px; border: 0; }
.sse-search .wp-block-search__input { flex: 1 1 auto; font: inherit; font-size: 16px; background: var(--sse-bg); border: 1px solid var(--sse-line-2); border-radius: var(--sse-radius); padding: 12px 14px; color: var(--sse-ink); min-height: 48px; }
.sse-search .wp-block-search__input:focus { outline: none; border-color: var(--sse-accent); }
.sse-search .wp-block-search__button { margin: 0; background: var(--sse-accent); color: var(--sse-white); border: 0; border-radius: var(--sse-radius); padding: 12px 22px; font-family: var(--sse-display); font-weight: 600; font-size: 15px; cursor: pointer; }
.sse-search .wp-block-search__button:hover { background: var(--sse-accent-2); }

/* --------------------------------------------------------------------------
   9. Exhibit
   -------------------------------------------------------------------------- */
.sse-why > * { padding: 32px; }
.sse-why__n { font-size: 64px; font-weight: 700; line-height: 1; }
.sse-why p:not(.sse-why__n) { color: var(--sse-mut); margin-top: 10px; font-size: 15px; }
.sse-pk { display: flex; flex-direction: column; padding: 32px; min-height: 440px; }
.sse-pk > .sse-mono { color: var(--sse-mut); }
.sse-pk.sse-feature > .sse-mono { color: var(--sse-accent); }
.sse-pk h3 { margin: 14px 0 12px; }
.sse-pk__lede { color: var(--sse-mut); font-size: 15px; }
.sse-pk ul { list-style: none; padding: 0; margin: 20px 0 28px; color: var(--sse-ink-2); font-size: 15px; }
.sse-pk li { padding: 10px 0; border-top: 1px solid var(--sse-line); display: flex; gap: 10px; }
.sse-pk li::before { content: "+"; color: var(--sse-accent); font-family: var(--sse-mono); }
.sse-pk .wp-block-buttons { margin-top: auto; }

/* --------------------------------------------------------------------------
   10. Speaking
   -------------------------------------------------------------------------- */
.sse-step__n { font-family: var(--sse-mono); color: var(--sse-accent); font-size: 13px; letter-spacing: .06em; text-transform: uppercase; }
.sse-step h3 { margin: 14px 0 10px; font-size: 26px; }
.sse-step p:not(.sse-step__n) { color: var(--sse-mut); font-size: 15px; }
/* Paper submission (Technical Program): focus areas in two numbered columns, key-dates table */
.sse-focus { list-style: none; margin: 0 0 56px; padding: 0; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 40px; counter-reset: focus; }
.sse-focus li { counter-increment: focus; position: relative; margin: 0; padding: 14px 0 14px 44px; border-top: 1px solid var(--sse-line); color: var(--sse-ink-2); font-size: 15px; line-height: 1.5; }
.sse-focus li::before { content: counter(focus, decimal-leading-zero); position: absolute; left: 0; top: 16px; font-family: var(--sse-mono); font-size: 12px; letter-spacing: .06em; color: var(--sse-accent); }
.sse-focus li strong { display: block; color: var(--sse-ink); }
.sse-dates { margin: 0; }
.sse-fees { margin: 4px 0 0; padding-left: 18px; color: var(--sse-ink-2); font-size: 15px; line-height: 1.5; }
.sse-fees li { margin: 0 0 8px; padding-left: 4px; }
.sse-fees li::marker { color: var(--sse-accent); }
.sse-dates table { width: 100%; border-collapse: collapse; font-size: 15px; border: 0; }
.sse-dates th, .sse-dates td { border-left: 0; border-right: 0; border-top: 0; }
.sse-dates th { text-align: left; padding: 0 0 8px; border-bottom: 1px solid var(--sse-line-2); font-family: var(--sse-mono); font-size: 11px; letter-spacing: .08em; text-transform: uppercase; font-weight: 500; color: var(--sse-label); }
.sse-dates td { padding: 10px 0; border-bottom: 1px solid var(--sse-line); color: var(--sse-ink-2); }
.sse-dates th:last-child, .sse-dates td:last-child { text-align: right; white-space: nowrap; }
.sse-dates td:last-child { font-family: var(--sse-mono); font-size: 13px; color: var(--sse-ink); }
@media (max-width: 760px) { .sse-focus { grid-template-columns: 1fr; } }
.sse-topics { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 48px; }
.sse-topic { display: flex; justify-content: space-between; align-items: baseline; gap: 16px; padding: 18px 0; border-bottom: 1px solid var(--sse-line); font-size: 19px; }
.sse-topic .sse-mono { color: var(--sse-mut); white-space: nowrap; }

/* --------------------------------------------------------------------------
   11. Venue
   -------------------------------------------------------------------------- */
.sse-air__c { font-family: var(--sse-mono); font-size: 44px; line-height: 1; }
.sse-air h3 { margin-top: 18px; font-size: 22px; }
.sse-air p:not(.sse-air__c) { color: var(--sse-mut); font-size: 15px; margin-top: 10px; }
.sse-hotel h3 { font-size: 24px; }
.sse-hotel__meta { color: var(--sse-mut); font-size: 15px; margin: 8px 0 18px; }
.sse-hotel .sse-slot { margin-bottom: 20px; }

/* --------------------------------------------------------------------------
   12. FAQ
   -------------------------------------------------------------------------- */
.sse-faq { display: grid; grid-template-columns: 240px minmax(0, 1fr); gap: 64px; padding-top: 72px; padding-bottom: 96px; }
.sse-cats { position: sticky; top: calc(var(--sse-nav-h) + 48px); display: flex; flex-direction: column; border-left: 1px solid var(--sse-line-2); list-style: none; margin: 0; padding: 0; }
.sse-cats li { margin: 0; }
.sse-cats a { display: block; padding: 10px 18px; color: var(--sse-mut); font-size: 15px; text-decoration: none; }
.sse-cats a:hover { color: var(--sse-ink); }
.sse-faq__q { margin-bottom: 40px !important; font-size: 18px !important; padding: 16px 18px !important; }
.sse-faq__grp { margin-bottom: 56px; }
.sse-faq__grp h2 { font-size: 36px; margin-bottom: 12px; }
.sse-faq__grp[hidden] { display: none; }
.sse-faq__item, details.wp-block-details { border-bottom: 1px solid var(--sse-line); }
.sse-faq__item summary, .wp-block-details summary { list-style: none; cursor: pointer; display: flex; justify-content: space-between; align-items: flex-start; gap: 24px; padding: 22px 0; font-size: 19px; font-weight: 500; line-height: 1.35; color: var(--sse-ink); }
.sse-faq__item summary::-webkit-details-marker, .wp-block-details summary::-webkit-details-marker { display: none; }
.sse-faq__item summary::after, .wp-block-details summary::after { content: "+"; font-family: var(--sse-mono); color: var(--sse-accent); font-size: 20px; line-height: 1.3; flex: 0 0 auto; }
.sse-faq__item[open] summary::after, .wp-block-details[open] summary::after { content: "–"; }
.sse-faq__item > :not(summary), .wp-block-details > :not(summary) { color: var(--sse-ink-2); padding: 0 60px 24px 0; max-width: 760px; }
.sse-faq__item[hidden] { display: none; }
.sse-faq__none { display: none; color: var(--sse-mut); padding: 0 0 24px; }
.sse-faq__none.is-on { display: block; }

/* --------------------------------------------------------------------------
   13. Register: inclusions list + price table (patterns/pass-included.php), notes (patterns/pass-notes.php)
   -------------------------------------------------------------------------- */
.sse-incl { list-style: none; padding: 0; margin: 0; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 40px; color: var(--sse-ink-2); font-size: 16px; }
.sse-incl li { margin: 0; padding: 14px 0; border-top: 1px solid var(--sse-line); display: flex; gap: 12px; }
.sse-incl li::before { content: "✓"; color: var(--sse-accent); flex: none; }
.sse-prices { margin: 0; }
.sse-prices table { width: 100%; border-collapse: collapse; font-size: 15px; border: 0; }
.sse-prices thead, .sse-prices tbody, .sse-prices tr { border: 0; }
.sse-prices th, .sse-prices td { padding: 16px; border: 0; border-bottom: 1px solid var(--sse-line); text-align: left; vertical-align: top; }
.sse-prices th { font-family: var(--sse-mono); font-size: 11px; letter-spacing: .08em; text-transform: uppercase; color: var(--sse-mut); font-weight: 400; }
.sse-prices th small { display: block; font-size: 11px; margin-top: 3px; }
.sse-prices th + th, .sse-prices td + td { text-align: right; white-space: nowrap; width: 1%; }
.sse-prices td:first-child { font-weight: 500; }
.sse-prices td + td { font-family: var(--sse-mono); font-size: 17px; }
.sse-prices__who { display: block; font-weight: 400; color: var(--sse-mut); font-size: 13px; margin-top: 2px; }
/* sse.js adds is-past to a tier column whose last day ([data-date] in its header) has gone; the first column still open is the current tier */
.sse-prices th + th:not(.is-past), .sse-prices th + th:not(.is-past) small, .sse-prices td + td:not(.is-past) { color: var(--sse-accent); }
.sse-prices th + th:not(.is-past) ~ th:not(.is-past), .sse-prices th + th:not(.is-past) ~ th:not(.is-past) small { color: var(--sse-mut); }
.sse-prices td + td:not(.is-past) ~ td:not(.is-past) { color: inherit; }
.sse-prices .is-past { color: var(--sse-mut); }
.sse-prices td.is-past { text-decoration: line-through; }
.sse-prices + .wp-block-buttons { margin-top: 32px; }
.sse-note { color: var(--sse-mut); margin-top: 24px !important; font-size: 15px; }

.sse-docs { padding: 0; margin: 12px 0 20px; list-style: none; color: var(--sse-ink-2); font-size: 15px; }
.sse-docs li { padding: 10px 0; border-top: 1px solid var(--sse-line); }

/* --------------------------------------------------------------------------
   14. Agenda (shortcode [sse_agenda])
   -------------------------------------------------------------------------- */
.sse-bar { position: sticky; top: calc(var(--sse-nav-h) + 1px); z-index: 10; background: var(--sse-mist); border-bottom: 1px solid var(--sse-line); }
.sse-bar .sse-w { display: flex; align-items: center; gap: 24px; min-height: 72px; }
.sse-days { display: flex; border: 1px solid var(--sse-line-2); }
.sse-days button { font: inherit; background: none; border: 0; color: var(--sse-mut); padding: 10px 20px; cursor: pointer; border-left: 1px solid var(--sse-line-2); text-align: left; transition: background var(--sse-ease), color var(--sse-ease); }
.sse-days button:first-child { border-left: 0; }
.sse-days button b { display: block; color: var(--sse-ink); font-size: 17px; line-height: 1.1; font-weight: 700; letter-spacing: -.01em; }
.sse-days button:hover { color: var(--sse-ink); }
.sse-days button[aria-selected="true"] { background: var(--sse-accent); color: var(--sse-white); }
.sse-days button[aria-selected="true"] b { color: var(--sse-white); }
.sse-days button:focus-visible { outline-offset: -3px; }
.sse-chips { display: flex; gap: 8px; margin-left: auto; flex-wrap: wrap; }
.sse-chips button { font-family: var(--sse-mono); font-size: 11px; letter-spacing: .08em; text-transform: uppercase; background: none; border: 1px solid var(--sse-line-2); color: var(--sse-ink-2); padding: 8px 12px; cursor: pointer; transition: border-color var(--sse-ease), background var(--sse-ease); }
.sse-chips button:hover { border-color: var(--sse-ink); }
.sse-chips button[aria-pressed="true"] { border-color: var(--sse-ink); color: var(--sse-ink); background: var(--sse-haze); }
.sse-agenda__body { display: grid; grid-template-columns: minmax(0, 1fr) 300px; gap: 56px; padding-bottom: 96px; }
.sse-dayhd { display: flex; justify-content: space-between; align-items: flex-end; gap: 16px; padding: 56px 0 20px; border-bottom: 1px solid var(--sse-line-2); }
.sse-dayhd h2 { font-size: 48px; }
.sse-sess { display: grid; grid-template-columns: 140px minmax(0, 1fr) 180px 44px; gap: 24px; padding: 26px 0; border-bottom: 1px solid var(--sse-line); align-items: start; }
.sse-sess[hidden] { display: none; }
.sse-sess__t { font-family: var(--sse-mono); font-size: 14px; font-variant-numeric: tabular-nums; }
.sse-sess__t small { display: block; color: var(--sse-mut); font-size: 12px; margin-top: 4px; }
.sse-sess h3 { font-size: 26px; text-transform: none; letter-spacing: -.01em; line-height: 1.1; font-weight: 600; }
.sse-sess__main p { color: var(--sse-mut); font-size: 15px; margin-top: 8px; max-width: 640px; }
.sse-type { font-family: var(--sse-mono); font-size: 11px; letter-spacing: .08em; text-transform: uppercase; border: 1px solid var(--sse-line-2); padding: 4px 8px; display: inline-block; color: var(--sse-ink-2); }
.sse-type--keynote { border-color: var(--sse-accent); color: var(--sse-accent); }
.sse-sess__rm { color: var(--sse-mut); font-size: 14px; margin-top: 8px; }
.sse-star { width: 40px; height: 40px; border: 1px solid var(--sse-line-2); background: none; color: var(--sse-mut); cursor: pointer; font-size: 18px; line-height: 1; padding: 0; transition: border-color var(--sse-ease), background var(--sse-ease); }
.sse-star:hover { border-color: var(--sse-ink); color: var(--sse-ink); }
.sse-star[aria-pressed="true"] { background: var(--sse-accent); border-color: var(--sse-accent); color: var(--sse-white); }
.sse-side { position: sticky; top: calc(var(--sse-nav-h) + 98px); padding-top: 56px; }
.sse-mine { margin: 14px 0 20px; color: var(--sse-mut); font-size: 15px; }
.sse-mine__i { padding: 8px 0; border-top: 1px solid var(--sse-line); color: var(--sse-ink); }
.sse-mine__i:first-child { border-top: 0; padding-top: 0; }
.sse-mine__i .sse-mono { color: var(--sse-mut); }
.sse-agenda__empty { padding: 96px 0; }

/* --------------------------------------------------------------------------
   15. Sponsor wall — logos always on light tiles
   -------------------------------------------------------------------------- */
.sse-spw { display: grid; grid-template-columns: repeat(var(--cols, 6), minmax(0, 1fr)); gap: 1px; background: var(--sse-line); border: 1px solid var(--sse-line); }
body.sse .sse-sp, .sse-sp { background: var(--sse-white); height: 110px; display: flex; align-items: center; justify-content: center; padding: 14px 18px; color: var(--sse-tile-ink); font-size: 13px; text-align: center; line-height: 1.25; }
body.sse .sse-sp:hover, body.sse .sse-sp:focus-visible { color: var(--sse-tile-ink); outline-offset: -3px; }
.sse-sp img { max-width: 100%; max-height: 100%; width: auto; height: auto; object-fit: contain; }
.sse-sp__name { font-weight: 600; letter-spacing: -.005em; }
.sse-spw > .sse-sp--more, body.sse .sse-spw > .sse-sp--more { background: var(--sse-accent); color: var(--sse-white); font-family: var(--sse-mono); font-size: 11px; font-weight: 500; letter-spacing: .04em; text-transform: uppercase; text-decoration: none; }
.sse-spw > .sse-sp--more:hover { background: var(--sse-accent-2); color: var(--sse-white); }
.sse-sp--slot { font-family: var(--sse-mono); font-size: 10px; letter-spacing: .04em; text-transform: uppercase; color: var(--sse-label) !important; }

/* --------------------------------------------------------------------------
   17. Forms (static markup now; extend selectors for a form plugin later)
   -------------------------------------------------------------------------- */
body.sse input:not([type="radio"]):not([type="checkbox"]):not([type="submit"]):not([type="button"]), body.sse select, body.sse textarea,
.sse-form input:not([type="radio"]):not([type="checkbox"]):not([type="submit"]), .sse-form select, .sse-form textarea, .sse-faq__q {
	font: inherit; font-size: 16px; background: var(--sse-bg); border: 1px solid var(--sse-line-2); color: var(--sse-ink); padding: 12px 14px; width: 100%; border-radius: var(--sse-radius); box-shadow: none; -webkit-appearance: none; appearance: none;
}
body.sse select, .sse-form select { background-image: linear-gradient(45deg, transparent 50%, var(--sse-mut) 50%), linear-gradient(135deg, var(--sse-mut) 50%, transparent 50%); background-position: calc(100% - 20px) 50%, calc(100% - 15px) 50%; background-size: 5px 5px; background-repeat: no-repeat; padding-right: 36px; }
body.sse input:focus, body.sse select:focus, body.sse textarea:focus, .sse-form :is(input, select, textarea):focus, .sse-faq__q:focus { outline: none; border-color: var(--sse-accent); }
body.sse label, .sse-form label { display: block; font-size: 14px; color: var(--sse-mut); margin-bottom: 6px; }
.sse-form__grid { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
.sse-form__grid > .sse-form__full { grid-column: span 2; }
.sse-form .sse-btn, .sse-form button { margin-top: 20px; }
.sse-form__msg { margin-top: 16px; font-size: 15px; color: var(--sse-ink-2); }
.sse-form__msg[hidden] { display: none; }
::placeholder { color: var(--sse-mut); opacity: 1; }

/* Contact Form 7 output inside .sse-form (form templates live in inc/forms.php) */
.sse-form .wpcf7 form { margin: 0; }
.sse-form .wpcf7 label { display: block; }
.sse-form .wpcf7-form-control-wrap { display: block; margin-top: 6px; }
.sse-form .wpcf7 .sse-form__req { color: var(--sse-accent); margin-left: 2px; }
.sse-form .wpcf7 input:not([type="radio"]):not([type="checkbox"]):not([type="submit"]):not([type="file"]), .sse-form .wpcf7 select, .sse-form .wpcf7 textarea { font: inherit; font-size: 16px; background-color: var(--sse-bg); border: 1px solid var(--sse-line-2); color: var(--sse-ink); padding: 12px 14px; width: 100%; border-radius: var(--sse-radius); box-shadow: none; -webkit-appearance: none; appearance: none; }
.sse-form .wpcf7 input[type="file"] { width: 100%; font: inherit; font-size: 14px; color: var(--sse-mut); border: 1px dashed var(--sse-line-2); padding: 10px 12px; background: var(--sse-bg); }
.sse-form .wpcf7 input[type="file"]::file-selector-button { font: inherit; font-size: 13px; background: none; border: 1px solid var(--sse-line-2); color: var(--sse-ink); padding: 6px 12px; margin-right: 12px; cursor: pointer; border-radius: var(--sse-radius); }
.sse-form .wpcf7 .wpcf7-submit { display: inline-flex; align-items: center; gap: 10px; margin-top: 20px; background: var(--sse-accent); color: var(--sse-white); padding: 12px 22px; font-family: var(--sse-display); font-weight: 600; font-size: 15px; line-height: 1.4; border: 0; border-radius: var(--sse-radius); cursor: pointer; transition: background var(--sse-ease); }
.sse-form .wpcf7 .wpcf7-submit:hover { background: var(--sse-accent-2); }
.sse-form .wpcf7 .wpcf7-submit:disabled { opacity: .6; cursor: progress; }
.sse-form .wpcf7 .wpcf7-spinner { background: var(--sse-mut); margin: 0 0 0 12px; }
.sse-form .wpcf7 .wpcf7-not-valid-tip { font-family: var(--sse-mono); font-size: 11px; letter-spacing: .04em; color: var(--sse-accent); margin-top: 6px; }
.sse-form .wpcf7 .wpcf7-not-valid { border-color: var(--sse-accent); }
.sse-form .wpcf7 form .wpcf7-response-output { margin: 20px 0 0; padding: 12px 14px; border: 1px solid var(--sse-line-2); color: var(--sse-ink-2); font-size: 15px; }
.sse-form .wpcf7 form.sent .wpcf7-response-output { border-color: var(--sse-ink); color: var(--sse-ink); }
.sse-form .wpcf7 form.invalid .wpcf7-response-output, .sse-form .wpcf7 form.unaccepted .wpcf7-response-output, .sse-form .wpcf7 form.failed .wpcf7-response-output, .sse-form .wpcf7 form.aborted .wpcf7-response-output, .sse-form .wpcf7 form.spam .wpcf7-response-output { border-color: var(--sse-accent); }
.sse-form .wpcf7 .wpcf7-list-item { margin: 0 16px 0 0; }
.sse-form .wpcf7 .wpcf7-list-item label { display: inline-flex; gap: 8px; align-items: center; color: var(--sse-ink-2); }

/* --------------------------------------------------------------------------
   18. Parent-theme blocks on dark (archives, single sponsor/speaker/session)
   -------------------------------------------------------------------------- */
body.sse .is-style-satnews-card, body.sse .is-style-satnews-bordered, body.sse .is-style-satnews-highlight { background: var(--sse-mist); border-color: var(--sse-line); border-radius: var(--sse-radius); box-shadow: none; }
body.sse .wp-block-post-terms.is-style-satnews-pill a { background: var(--sse-haze); color: var(--sse-ink-2); border-radius: var(--sse-radius); }
body.sse .wp-block-heading.is-style-satnews-section-heading { border-color: var(--sse-line); }
body.sse main.wp-block-group:not(.sse-main) { max-width: var(--sse-wide); margin-inline: auto; padding: 64px var(--sse-gutter); }
body.sse main.wp-block-group:not(.sse-main) > * { max-width: none; }
/* Hairline grid drawn with cell borders (not a line-coloured background), so an incomplete last row stays white. */
body.sse .satnews-exhibitor-directory__grid { /* no display here: the parent shows one of the two pre-sorted grids and hides the other */ grid-template-columns: repeat(auto-fill, minmax(240px, 1fr)); gap: 0; background: transparent; border: 0; border-top: 1px solid var(--sse-line-2); border-left: 1px solid var(--sse-line-2); list-style: none; margin: 0; padding: 0; }
body.sse .satnews-exhibitor-card { background: var(--sse-bg); padding: 0; border: 0; border-right: 1px solid var(--sse-line-2); border-bottom: 1px solid var(--sse-line-2); border-radius: 0; box-shadow: none; margin: 0; }
/* Single sponsor (templates/single-sponsor.html) and single session */
.sse-terms { font-family: var(--sse-mono); font-size: 12px; letter-spacing: .04em; text-transform: uppercase; margin-top: 16px !important; }
.sse-terms a { color: var(--sse-accent); text-decoration: none; }
.sse-terms .wp-block-post-terms__separator { color: var(--sse-mut); }
.sse-sponsor { grid-template-columns: 320px minmax(0, 1fr); }
.sse-sponsor__side > * + * { margin-top: 24px; }
.sse-sponsor__side .sse-kv { grid-template-columns: 130px minmax(0, 1fr); }
.sse-sponsor__side .sse-kv > p:empty { display: none; }
.sse-sponsor__side .sse-kv > .sse-kv__k:has(+ .sse-kv__v:empty) { display: none; } /* hide the label too when the field is blank */
.sse-sponsor__side .sse-fp__link, .sse-sponsor__side .wp-block-shortcode a { color: var(--sse-accent); font-weight: 600; font-size: 14px; text-decoration: none; display: inline-flex; align-items: center; min-height: 44px; }
.sse-session__meta { gap: 10px 20px !important; margin-top: 18px; }
.sse-session__meta > * { margin: 0 !important; }
.sse-session__meta .sse-mono { color: var(--sse-label); }
.sse-session__meta .sse-mono:empty { display: none; }
.sse-session__people { margin-top: 40px; max-width: 760px; }
.sse-session__people > * + * { margin-top: 32px; }
.sse-session__nav { margin-top: 48px; padding-top: 24px; border-top: 1px solid var(--sse-line-2); font-size: 14px; font-weight: 600; }
.sse-session__nav a { color: var(--sse-accent); text-decoration: none; display: inline-flex; align-items: center; min-height: 44px; }
.sse-directory .satnews-exhibitor-directory { margin: 0; }
@media (max-width: 900px) { .sse-sponsor { grid-template-columns: 1fr; } }
body.sse .satnews-exhibitor-card__logo { display: flex; align-items: center; justify-content: center; height: 130px; padding: 0; background: var(--sse-white); color: var(--sse-tile-ink); text-decoration: none; font-size: 13px; text-align: center; overflow: hidden; }
body.sse .satnews-exhibitor-card__logo img { width: 100%; height: 100%; max-height: none; object-fit: contain; padding: 14px; box-sizing: border-box; display: block; filter: none; opacity: 1; } /* colour, fills the frame, letterboxed never cropped */
body.sse .satnews-exhibitor-card__logo-placeholder { font-weight: 600; color: var(--sse-tile-ink); }
body.sse .satnews-exhibitor-card__body { padding: 18px 20px 22px; }
body.sse .satnews-exhibitor-card__name { font-size: 19px; font-weight: 700; margin: 0 0 8px; }
body.sse .satnews-exhibitor-card__name a { color: var(--sse-ink); text-decoration: none; }
body.sse .satnews-exhibitor-card__name a:hover { color: var(--sse-accent); }
body.sse .satnews-exhibitor-card__booth, body.sse .satnews-exhibitor-card__meeting { margin: 0; color: var(--sse-mut); font-size: 14px; }
body.sse .satnews-exhibitor-card__booth-label { font-family: var(--sse-mono); font-size: 11px; letter-spacing: .08em; text-transform: uppercase; margin-right: 6px; }
body.sse .satnews-exhibitor-card__booth-number { color: var(--sse-ink); font-family: var(--sse-mono); font-size: 15px; }
/* Floor-plan pin card: wide enough for a company name and the link on one line */
body.sse .satnews-exhibitor-directory__pin-card { min-width: 260px; max-width: 320px; background: var(--sse-bg); color: var(--sse-ink); border: 1px solid var(--sse-line-2); border-radius: var(--sse-radius); box-shadow: 0 16px 40px rgba(27, 15, 54, .16); }
body.sse .satnews-exhibitor-directory__pin-card-name { white-space: normal; overflow: visible; text-overflow: clip; font-weight: 700; }
body.sse .satnews-exhibitor-directory__pin-card-cta { white-space: nowrap; color: var(--sse-accent); }
body.sse .satnews-exhibitor-directory__sort-toggle { display: flex; gap: 8px; justify-content: flex-end; margin-bottom: 24px; }
body.sse .satnews-exhibitor-directory__sort-btn { font-family: var(--sse-mono); font-size: 11px; letter-spacing: .08em; text-transform: uppercase; background: none; border: 1px solid var(--sse-line-2); color: var(--sse-ink-2); padding: 8px 12px; cursor: pointer; border-radius: var(--sse-radius); }
body.sse .satnews-exhibitor-directory__sort-btn[aria-pressed="true"], body.sse .satnews-exhibitor-directory__sort-btn.is-active { border-color: var(--sse-ink); color: var(--sse-ink); background: var(--sse-haze); }
body.sse .satnews-exhibitor-directory__group-heading { font-size: 28px; margin: 40px 0 16px; }
body.sse .satnews-exhibitor-directory__count { color: var(--sse-mut); font-family: var(--sse-mono); font-size: 12px; letter-spacing: .08em; text-transform: uppercase; }


/* --------------------------------------------------------------------------
   18c. Floor plan: inline map.svg (shared blank map) filled by booth number; click a stand to light it; zoom + pan
   The SVG's own <style> sets --sse-ink/--sse-muted/--sse-booth/--sse-stroke/--sse-feature/--sse-taken/--sse-taken-ink
   on #sse-floor, so they are re-pointed here at the site tokens via .sse-fp aliases (no self-reference).
   Backdrop: a soft lilac wash with the hall drawn as a white sheet that casts a shadow, so the only lines are the plan's.
   -------------------------------------------------------------------------- */
.sse-fp { position: relative; margin-top: 8px; --sse-fp-ink: var(--sse-ink); --sse-fp-mut: var(--sse-label); --sse-fp-stroke: var(--sse-line-3); --sse-fp-feature: var(--sse-haze); --sse-fp-taken: var(--sse-accent); }
.sse-fp__bar { display: flex; justify-content: space-between; align-items: baseline; gap: 8px 24px; flex-wrap: wrap; margin-bottom: 12px; }
.sse-fp__bar p { margin: 0; }
.sse-fp__hint { color: var(--sse-label); }
@media (min-width: 1000px) { .sse-fp__pan { display: none; } } /* the plan fits without panning from ~1000px up */
.sse-fp__frame { position: relative; }
.sse-fp__scroll { overflow: auto; border: 1px solid var(--sse-line-2); border-radius: var(--sse-radius); background: radial-gradient(120% 90% at 18% 0%, var(--sse-haze) 0%, transparent 55%), radial-gradient(90% 80% at 100% 100%, var(--sse-slot-b) 0%, transparent 60%), var(--sse-mist); -webkit-overflow-scrolling: touch; scrollbar-width: thin; touch-action: pan-x pan-y; }
.sse-fp__scroll:focus-visible { outline: 2px solid var(--sse-accent); outline-offset: 2px; }
.sse-fp.is-zoomed .sse-fp__scroll { cursor: grab; }
.sse-fp__scroll.is-dragging { cursor: grabbing; user-select: none; }
.sse-fp__scroll.is-dragging #sse-floor .booth { cursor: grabbing; }
.sse-fp__stage { position: relative; min-width: 900px; padding: 22px 24px; }
.sse-fp #sse-floor { display: block; width: 100%; height: auto; overflow: visible; --sse-ink: var(--sse-fp-ink); --sse-muted: var(--sse-fp-mut); --sse-booth: var(--sse-white); --sse-stroke: var(--sse-fp-stroke); --sse-feature: var(--sse-fp-feature); --sse-taken: var(--sse-fp-taken); --sse-taken-ink: var(--sse-white); }
.sse-fp #sse-floor .hallwall { fill: var(--sse-white); stroke: var(--sse-ink); filter: drop-shadow(0 10px 22px var(--sse-shade)); }
.sse-fp #sse-floor [fill="#c9c7c0"] { fill: var(--sse-line-3); }   /* structural columns */
.sse-fp #sse-floor [fill="#dedcd4"] { fill: var(--sse-line-2); }   /* seating tables */
.sse-fp #sse-floor [fill="#2b3990"] { fill: var(--sse-accent); }   /* entrance marker */
.sse-fp #sse-floor [stroke="#2b3990"] { stroke: var(--sse-accent); }
.sse-fp #sse-floor .booth .num { font-family: var(--sse-mono); font-weight: 500; }
.sse-fp #sse-floor .feature .name { fill: var(--sse-mut); }
.sse-fp #sse-floor .booth.taken .name { font-weight: 600; }
.sse-fp--no-logos #sse-floor image { display: none; }
.sse-fp #sse-floor .feature[data-id^="FT-B2B"] > rect:first-of-type { fill: var(--sse-night) !important; } /* the generator hard-codes the sales-kit purple on the sponsored B2B zone; keep it on-token and distinct from stands */
.sse-fp #sse-floor .booth { cursor: pointer; }
.sse-fp #sse-floor .booth rect, .sse-fp #sse-floor .booth path, .sse-fp #sse-floor .feature { transition: fill var(--sse-ease), stroke var(--sse-ease), filter var(--sse-ease), opacity .25s ease; }
.sse-fp #sse-floor .booth:hover rect, .sse-fp #sse-floor .booth:hover path { fill: var(--sse-haze); }
.sse-fp #sse-floor .booth.taken:hover rect, .sse-fp #sse-floor .booth.taken:hover path { fill: var(--sse-accent); filter: brightness(1.2); }
.sse-fp #sse-floor a:focus-visible rect, .sse-fp #sse-floor a:focus-visible path, .sse-fp #sse-floor .booth.is-hint rect, .sse-fp #sse-floor .booth.is-hint path { stroke: var(--sse-yellow); stroke-width: 2; filter: drop-shadow(0 0 4px var(--sse-glow)); }
.sse-fp #sse-floor a:focus { outline: none; }
/* Selected: thick yellow ring, wide halo, and the rest of the hall steps back */
.sse-fp.is-focus #sse-floor .booth:not(.is-lit) rect, .sse-fp.is-focus #sse-floor .booth:not(.is-lit) path, .sse-fp.is-focus #sse-floor .booth:not(.is-lit) text { opacity: .45; }
.sse-fp.is-focus #sse-floor .feature { opacity: .55; }
.sse-fp #sse-floor .booth.is-lit rect, .sse-fp #sse-floor .booth.is-lit path { stroke: var(--sse-yellow); stroke-width: 3.2; filter: drop-shadow(0 0 3px var(--sse-yellow)) drop-shadow(0 0 10px var(--sse-yellow)) drop-shadow(0 0 26px var(--sse-glow)); animation: sse-fp-glow 1.1s ease-in-out infinite alternate; }
.sse-fp #sse-floor .booth.is-lit:not(.taken) rect, .sse-fp #sse-floor .booth.is-lit:not(.taken) path { fill: var(--sse-yellow); }
.sse-fp #sse-floor .booth.is-lit.taken:hover rect, .sse-fp #sse-floor .booth.is-lit.taken:hover path { filter: drop-shadow(0 0 3px var(--sse-yellow)) drop-shadow(0 0 10px var(--sse-yellow)) drop-shadow(0 0 26px var(--sse-glow)) brightness(1.2); }
@keyframes sse-fp-glow {
	from { filter: drop-shadow(0 0 2px var(--sse-yellow)) drop-shadow(0 0 6px var(--sse-yellow)) drop-shadow(0 0 14px var(--sse-glow-2)); }
	to   { filter: drop-shadow(0 0 4px var(--sse-yellow)) drop-shadow(0 0 14px var(--sse-yellow)) drop-shadow(0 0 34px var(--sse-glow)); }
}
/* Zoom toolbar floats over the top-right corner of the frame */
.sse-fp__zoom { position: absolute; top: 12px; right: 12px; z-index: 2; display: inline-flex; align-items: stretch; background: var(--sse-bg); border: 1px solid var(--sse-line-2); border-radius: var(--sse-radius); box-shadow: var(--sse-shadow); overflow: hidden; }
.sse-fp__zoom-btn { width: 44px; min-height: 44px; border: 0; background: none; color: var(--sse-ink); font-family: var(--sse-mono); font-size: 18px; line-height: 1; cursor: pointer; }
.sse-fp__zoom-btn--fit { width: auto; padding: 0 12px; font-size: 11px; letter-spacing: .08em; text-transform: uppercase; border-left: 1px solid var(--sse-line); }
.sse-fp__zoom-btn:hover:not(:disabled), .sse-fp__zoom-btn:focus-visible { background: var(--sse-haze); outline: none; }
.sse-fp__zoom-btn:disabled { color: var(--sse-line-3); cursor: default; }
.sse-fp__zoom-level { display: inline-flex; align-items: center; justify-content: center; min-width: 52px; color: var(--sse-label); border-left: 1px solid var(--sse-line); border-right: 1px solid var(--sse-line); }
.sse-fp__card { position: absolute; z-index: 3; width: 290px; max-width: calc(100% - 8px); background: var(--sse-bg); color: var(--sse-ink); border: 1px solid var(--sse-line-2); border-radius: var(--sse-radius); box-shadow: var(--sse-shadow-lg); padding: 14px 16px 12px; text-align: left; }
.sse-fp__card[hidden] { display: none; }
.sse-fp__card::after { content: ""; position: absolute; left: var(--sse-fp-caret, 50%); bottom: -6px; width: 10px; height: 10px; background: var(--sse-bg); border-right: 1px solid var(--sse-line-2); border-bottom: 1px solid var(--sse-line-2); transform: translateX(-50%) rotate(45deg); }
.sse-fp__card.is-below::after { bottom: auto; top: -6px; border-right: 0; border-bottom: 0; border-left: 1px solid var(--sse-line-2); border-top: 1px solid var(--sse-line-2); }
.sse-fp__card > p { margin: 0; }
.sse-fp__close { position: absolute; top: 4px; right: 4px; width: 36px; height: 36px; border: 0; background: none; color: var(--sse-mut); font-size: 22px; line-height: 1; cursor: pointer; border-radius: var(--sse-radius); }
.sse-fp__close:hover, .sse-fp__close:focus-visible { background: var(--sse-haze); color: var(--sse-ink); outline: none; }
.sse-fp__stand { color: var(--sse-label); margin: 0 32px 6px 0 !important; }
.sse-fp__logo { display: block; height: 40px; width: auto; max-width: 170px; object-fit: contain; object-position: left; margin-bottom: 10px; }
.sse-fp__name { font-size: 17px; font-weight: 700; line-height: 1.25; margin-right: 24px !important; }
.sse-fp__name a { color: var(--sse-ink); text-decoration: none; }
.sse-fp__name a:hover { color: var(--sse-accent); }
.sse-fp__meta { color: var(--sse-mut); font-size: 14px; margin-top: 4px !important; }
.sse-fp__cta { margin-top: 4px !important; }
.sse-fp__cta a, .sse-fp__show, .sse-fp__link { color: var(--sse-accent); font-weight: 600; font-size: 14px; text-decoration: none; display: inline-flex; align-items: center; min-height: 44px; }
.sse-fp__cta a:hover, .sse-fp__show:hover, .sse-fp__link:hover { color: var(--sse-accent-2); text-decoration: underline; text-underline-offset: 3px; }
.sse-fp__show { border: 0; background: none; padding: 0; margin: 2px 0 -8px; font-family: inherit; cursor: pointer; }
.sse-fp__show::before { content: "◎"; margin-right: 6px; font-size: 13px; }
.sse-fp__list { list-style: none; margin: 4px 0 0; padding: 0; }
.sse-fp__list li + li { border-top: 1px solid var(--sse-line); }
.sse-fp__list a { display: flex; align-items: center; gap: 10px; min-height: 44px; color: var(--sse-ink); text-decoration: none; font-weight: 600; font-size: 15px; }
.sse-fp__list a:hover { color: var(--sse-accent); }
.sse-fp__list-logo { width: 36px; height: 36px; object-fit: contain; flex: 0 0 auto; }
/* Grouped stand (pavilion / host + sub-units 300a, 300b): the parent's card, then its members */
.sse-fp__sub { color: var(--sse-label); margin-top: 14px !important; }
.sse-fp__list--sub { max-height: 216px; overflow-y: auto; overscroll-behavior: contain; }
.sse-fp__list--sub a { font-size: 14px; min-height: 40px; }
.sse-fp__sublabel { margin-left: auto; padding-left: 10px; color: var(--sse-mut); font-size: 12px; flex: 0 0 auto; text-transform: none; }
.sse-fp__list li.is-current a { color: var(--sse-accent); }
body.sse .satnews-exhibitor-card .sse-exh-card__group { display: block; color: var(--sse-mut); font-size: 13px; font-family: var(--sse-sans); letter-spacing: 0; text-transform: none; margin-top: 2px; }
body.sse .satnews-exhibitor-card .sse-exh-card__group a { color: var(--sse-accent); text-decoration: none; font-weight: 600; }
.sse-group { margin: 12px 0 0; font-size: 14px; color: var(--sse-mut); }
.sse-group a { color: var(--sse-accent); font-weight: 600; text-decoration: none; }
.sse-group a:hover { text-decoration: underline; text-underline-offset: 3px; }
.sse-group__k { color: var(--sse-label); margin: 0 0 2px; }
.sse-group__list { list-style: none; margin: 0; padding: 0; }
.sse-group__list li { display: flex; justify-content: space-between; gap: 12px; padding: 8px 0; border-top: 1px solid var(--sse-line); }
.sse-group__list .sse-mono { color: var(--sse-mut); font-size: 12px; text-transform: none; }
.sse-fp__legend { display: flex; flex-wrap: wrap; gap: 6px 22px; margin: 12px 0 0; font-size: 13px; color: var(--sse-mut); }
.sse-fp__legend span::before { content: ""; display: inline-block; width: 12px; height: 12px; border-radius: 2px; margin-right: 8px; vertical-align: -1px; border: 1px solid var(--sse-line-3); background: var(--sse-white); }
.sse-fp__legend--taken::before { background: var(--sse-accent) !important; border-color: var(--sse-accent) !important; }
.sse-fp__legend--lit::before { background: var(--sse-yellow) !important; border-color: var(--sse-yellow) !important; box-shadow: 0 0 6px var(--sse-glow); }
.sse-fp__missing { margin-top: 12px; white-space: normal; line-height: 1.6; display: inline-block; }
.sse-fp__noscript, .sse-fp__unavailable { margin: 12px 0 0; color: var(--sse-mut); font-size: 14px; }
.sse-split--floor { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: end; gap: 24px 48px; margin-bottom: 28px; }
.sse-split--floor .sse-split__text > p:last-child { margin-bottom: 0; }
.sse-split--floor .wp-block-buttons { margin: 0; }
.sse-directory .sse-fp { margin: 0 0 40px; }
/* Pale logos (white on transparency) get a night tile wherever a logo is shown */
body.sse .sse-logo-dark .satnews-exhibitor-card__logo, .sse-sp--dark, .sse-fp__logo--dark, .sse-fp__list-logo--dark { background: var(--sse-night) !important; }
.sse-fp__logo--dark { padding: 6px 8px; border-radius: 3px; }
.sse-fp__list-logo--dark { padding: 4px; border-radius: 3px; }
.sse-sponsor__side .wp-block-post-featured-image.sse-logo-dark img { background: var(--sse-night); }
/* Sponsor profile body (imported from FileMaker): description paragraphs, then the website line */
.sse-prose .company-website { margin-top: 24px; padding-top: 16px; border-top: 1px solid var(--sse-line); font-size: 15px; color: var(--sse-mut); }
.sse-prose .company-website strong { font-family: var(--sse-mono); font-size: 11px; letter-spacing: .08em; text-transform: uppercase; font-weight: 500; color: var(--sse-label); margin-right: 8px; }
.sse-prose .company-website a { color: var(--sse-accent); font-weight: 600; text-decoration: none; overflow-wrap: anywhere; }
.sse-prose .company-website a:hover { text-decoration: underline; text-underline-offset: 3px; }
@media (max-width: 900px) { .sse-split--floor { grid-template-columns: 1fr; align-items: start; } }
@media (max-width: 700px) {
	.sse-fp__stage { padding: 12px; }
	.sse-fp__zoom { top: 8px; right: 8px; }
	.sse-fp__zoom-level { min-width: 44px; }
	.sse-fp__card.is-static { position: static; width: auto; max-width: none; margin-top: 12px; visibility: visible !important; }
	.sse-fp__card.is-static::after { display: none; }
}
@media (prefers-reduced-motion: reduce) { .sse-fp #sse-floor .booth.is-lit rect, .sse-fp #sse-floor .booth.is-lit path { animation: none; } }
@media print {
	.sse-fp__card, .sse-fp__show, .sse-fp__hint, .sse-fp__noscript, .sse-fp__zoom { display: none !important; }
	.sse-fp__scroll { overflow: visible; border: 0; background: none; height: auto !important; }
	.sse-fp__stage { min-width: 0; padding: 0; width: auto !important; }
}


/* --------------------------------------------------------------------------
   18b. Parent agenda block (satnews/agenda) — the Silicon Valley Space Week layout in Mission Control
   -------------------------------------------------------------------------- */
.sse-agenda-block { padding: 48px 0 40px; }
.sse-agenda-block--one-track .satnews-agenda-card__group { display: none; } /* the page is the track */
.sse-agenda-block .satnews-agenda { --satnews-card-radius: 0; --satnews-card-padding: 24px 28px; --satnews-card-gap: 28px; --satnews-card-border: var(--sse-line); --satnews-card-bg: var(--sse-bg); --satnews-card-bg-alt: var(--sse-panel); --satnews-format-accent: var(--sse-line-2); font-size: 15px; }
/* header: day tabs + filter */
.satnews-agenda__header { margin: 0 0 32px; padding-bottom: 0; border-bottom: 1px solid var(--sse-line); }
.satnews-agenda__day-tab { font-family: var(--sse-mono); font-size: 12px; font-weight: 400; letter-spacing: .08em; color: var(--sse-mut); padding: 16px 16px 14px; border-bottom: 2px solid transparent; margin-bottom: -1px; }
.satnews-agenda__day-tab:hover { color: var(--sse-ink); }
.satnews-agenda__day-tab.is-active { color: var(--sse-ink); border-bottom-color: var(--sse-accent); }
.satnews-agenda__filter-button { font-family: var(--sse-mono); font-size: 11px; font-weight: 400; letter-spacing: .08em; text-transform: uppercase; color: var(--sse-ink-2); border: 1px solid var(--sse-line-2); border-radius: var(--sse-radius); padding: 10px 14px; min-height: 40px; }
.satnews-agenda__filter-button:hover, .satnews-agenda__filter-disclosure[open] .satnews-agenda__filter-button { background: var(--sse-haze); border-color: var(--sse-ink); color: var(--sse-ink); }
.satnews-agenda__filter-button::after { color: var(--sse-accent); }
.satnews-agenda__filter-badge { color: var(--sse-accent); font-weight: 500; }
.satnews-agenda__filter-panel { background: var(--sse-mist); border: 1px solid var(--sse-line-2); border-radius: var(--sse-radius); box-shadow: none; padding: 20px 22px; gap: 18px; }
.satnews-agenda__filter-label { font-family: var(--sse-mono); font-size: 11px; letter-spacing: .08em; font-weight: 400; color: var(--sse-accent); }
.satnews-chip { font-family: var(--sse-mono); font-size: 11px; font-weight: 400; letter-spacing: .08em; text-transform: uppercase; background: none; border: 1px solid var(--sse-line-2); color: var(--sse-ink-2); border-radius: var(--sse-radius); padding: 8px 12px; }
.satnews-chip:hover { background: none; border-color: var(--sse-ink); color: var(--sse-ink); }
.satnews-chip.is-active { background: var(--sse-haze); border-color: var(--sse-ink); color: var(--sse-ink); }
/* view toggle */
.satnews-agenda__view-toggle { background: none; border: 1px solid var(--sse-line-2); border-radius: var(--sse-radius); padding: 0; margin-bottom: 40px; }
.satnews-agenda__view-button { font-family: var(--sse-mono); font-size: 11px; font-weight: 400; letter-spacing: .08em; text-transform: uppercase; color: var(--sse-mut); border-radius: var(--sse-radius); padding: 10px 18px; min-height: 40px; }
.satnews-agenda__view-button + .satnews-agenda__view-button { border-left: 1px solid var(--sse-line-2); }
.satnews-agenda__view-button:hover { color: var(--sse-ink); }
.satnews-agenda__view-button.is-active { background: var(--sse-accent); color: var(--sse-white); box-shadow: none; }
/* days */
.satnews-agenda__days { gap: 64px; }
.satnews-agenda__day-header { align-items: flex-end; gap: 16px; margin-bottom: 24px; padding-bottom: 18px; border-bottom: 1px solid var(--sse-line-2); }
.satnews-agenda__day-title { font-size: 48px; font-weight: 700; line-height: 1; letter-spacing: -.03em; }
.satnews-agenda__day-count { font-family: var(--sse-mono); font-size: 12px; letter-spacing: .08em; text-transform: uppercase; color: var(--sse-accent); padding-bottom: 4px; }
.satnews-agenda__day-toggle-icon { color: var(--sse-mut); padding-bottom: 4px; }
.satnews-agenda__entries { gap: 12px; }
/* cards */
.satnews-agenda-card { grid-template-columns: 120px minmax(0, 1fr) 180px; border-radius: 0 var(--sse-radius) var(--sse-radius) 0; box-shadow: none; transition: background var(--sse-ease); }
.satnews-agenda-card:hover { box-shadow: none; background: var(--sse-mist); }
/* Ribbon + pill colour per format: strong red for keynotes, subtle steps for everything else.
   (Editors can still override any format in Sessions → Formats → Accent color.) */
.satnews-agenda-card[data-format="keynote"] { --satnews-format-color: var(--sse-accent); }
.satnews-agenda-card[data-format="market-brief"] { --satnews-format-color: var(--sse-lilac-2); }
.satnews-agenda-card[data-format="tech-brief"] { --satnews-format-color: var(--sse-ink-2); }
.satnews-agenda-card[data-format="partner-presentation"] { --satnews-format-color: var(--sse-mut); }
.satnews-agenda-card[data-format="networking"], .satnews-agenda-card[data-format="break"] { --satnews-format-color: var(--sse-line-2); }
.satnews-agenda-card--type-interlude { background: var(--sse-mist); border-left-color: var(--sse-line-2); }
.satnews-agenda-card--type-interlude:hover { background: var(--sse-mist); }
.satnews-agenda-card--type-mission_briefing { border-left-color: var(--sse-accent); }
.satnews-agenda-card__time { font-family: var(--sse-mono); }
.satnews-agenda-card__time-start { font-size: 18px; font-weight: 500; color: var(--sse-ink); }
.satnews-agenda-card__time-end { font-size: 12px; color: var(--sse-mut); letter-spacing: .04em; margin-top: 4px; }
.satnews-agenda-card__type { font-family: var(--sse-mono); font-size: 11px; font-weight: 400; letter-spacing: .08em; color: var(--sse-accent); margin-bottom: 8px; }
.satnews-agenda-card__title { font-family: var(--sse-display); font-size: 24px; font-weight: 700; line-height: 1.05; letter-spacing: -.02em; color: var(--sse-ink); margin: 0 0 14px; }
.satnews-agenda-card__title a:hover { text-decoration: none; color: var(--sse-accent); }
.satnews-agenda-card__meta { font-family: var(--sse-mono); font-size: 12px; letter-spacing: .04em; color: var(--sse-mut); gap: 8px 16px; margin-bottom: 14px; }
.satnews-agenda-card__format-pill { font-family: var(--sse-mono); font-size: 11px; font-weight: 400; letter-spacing: .08em; background: none; color: var(--sse-ink-2); border: 1px solid var(--satnews-format-color, var(--sse-line-2)); border-radius: var(--sse-radius); padding: 4px 8px; }
.satnews-agenda-card[data-format="keynote"] .satnews-agenda-card__format-pill { border-color: var(--sse-accent); color: var(--sse-accent); }
/* Partner presentations: a quieter row, as on svspaceweek.com. Dimmed, compact, plain-weight sentence-case title, grey accent and pill,
   no excerpt or speaker grid (the "Presented by" sponsor tile stays). Hover or focus restores full contrast. */
.satnews-agenda-card[data-format="partner-presentation"] { --satnews-format-color: var(--sse-line-2); background: transparent; opacity: .72; padding: 14px 20px; }
.satnews-agenda-card[data-format="partner-presentation"]:hover, .satnews-agenda-card[data-format="partner-presentation"]:focus-within { background: transparent; opacity: 1; }
.satnews-agenda-card[data-format="partner-presentation"] .satnews-agenda-card__title { font-size: 17px; font-weight: 500; text-transform: none; letter-spacing: 0; line-height: 1.3; color: var(--sse-ink-2); }
.satnews-agenda-card[data-format="partner-presentation"] .satnews-agenda-card__time-start { font-size: 14px; font-weight: 400; color: var(--sse-mut); }
.satnews-agenda-card[data-format="partner-presentation"] .satnews-agenda-card__type { color: var(--sse-mut); }
.satnews-agenda-card[data-format="partner-presentation"] .satnews-agenda-card__format-pill { border-color: var(--sse-line-2); color: var(--sse-mut); }
.satnews-agenda-card[data-format="partner-presentation"] .satnews-agenda-card__meta { margin-bottom: 0; }
.satnews-agenda-card[data-format="partner-presentation"] .satnews-agenda-card__excerpt, .satnews-agenda-card[data-format="partner-presentation"] .satnews-agenda-card__speakers { display: none; }
.satnews-agenda-card__excerpt { font-size: 15px; line-height: 1.55; color: var(--sse-mut); max-width: 640px; margin: 0 0 18px; }
.satnews-agenda-card__speakers { gap: 18px 28px; margin-top: 4px; padding-top: 18px; border-top: 1px solid var(--sse-line); }
.satnews-agenda-card__speaker { min-width: 200px; max-width: 240px; }
.satnews-agenda-card__speaker-link, .satnews-agenda-card__speaker:not(:has(.satnews-agenda-card__speaker-link)) { grid-template-columns: 56px 1fr; gap: 14px; }
.satnews-agenda-card__speaker-photo { border-radius: var(--sse-radius); background: var(--sse-haze); }
.satnews-agenda-card__speaker-photo-placeholder { font-family: var(--sse-display); font-weight: 700; font-size: 22px; color: var(--sse-ink); letter-spacing: -.02em; }
.satnews-agenda-card__speaker-info { gap: 4px; }
.satnews-agenda-card__speaker-name { font-size: 15px; font-weight: 600; color: var(--sse-ink); line-height: 1.3; }
.satnews-agenda-card__speaker-link:hover .satnews-agenda-card__speaker-name { color: var(--sse-accent); }
.satnews-agenda-card__speaker-role, .satnews-agenda-card__speaker-role[data-role] { font-family: var(--sse-mono); font-size: 10px; font-weight: 400; letter-spacing: .08em; background: none; border: 1px solid var(--sse-line-2); color: var(--sse-ink-2); border-radius: var(--sse-radius); padding: 2px 6px; }
.satnews-agenda-card__speaker-role[data-role="keynote"], .satnews-agenda-card__speaker-role[data-role="moderator"] { border-color: var(--sse-accent); color: var(--sse-accent); }
.satnews-agenda-card__speaker-title-at, .satnews-agenda-card__speaker-company { font-size: 13px; color: var(--sse-mut); font-weight: 400; }
.satnews-agenda-card__speaker-company { color: var(--sse-ink-2); }
.satnews-agenda-card__presenter { color: var(--sse-ink); }
.satnews-agenda-card__presenter-title-at { color: var(--sse-mut); }
.satnews-agenda-card__qa-slot { background: var(--sse-haze); border-radius: var(--sse-radius); font-family: var(--sse-mono); font-size: 12px; }
.satnews-agenda-card__qa-eyebrow { color: var(--sse-accent); }
.satnews-agenda-card__briefing-toggle { color: var(--sse-accent); font-family: var(--sse-mono); font-size: 12px; letter-spacing: .06em; text-transform: uppercase; }
.satnews-agenda-card__paper-link { border-radius: var(--sse-radius); background: var(--sse-haze); }
.satnews-agenda-card__paper-link:hover { background: var(--sse-line-2); }
/* sponsor column: logos on light tiles */
.satnews-agenda-card__sponsor-eyebrow { font-family: var(--sse-mono); font-size: 11px; font-weight: 400; letter-spacing: .08em; color: var(--sse-mut); }
.satnews-agenda-card__sponsor-link { display: inline-flex; align-items: center; justify-content: center; background: var(--sse-tile); padding: 12px 16px; min-width: 120px; min-height: 56px; }
.satnews-agenda-card__sponsor-logo { max-height: 40px; filter: grayscale(1); opacity: .85; transition: filter var(--sse-ease), opacity var(--sse-ease); }
.satnews-agenda-card__sponsor-link:hover .satnews-agenda-card__sponsor-logo { filter: none; opacity: 1; }
.satnews-agenda-card__sponsor-name { color: var(--sse-tile-ink); font-size: 13px; }
/* interlude + announcement */
.satnews-agenda-card--interlude { grid-template-columns: 120px minmax(0, 1fr) 180px; }
.satnews-agenda-card--interlude .satnews-agenda-card__title { font-style: normal; font-weight: 600; color: var(--sse-ink-2); font-size: 20px; }
.satnews-agenda-card--type-announcement { background: var(--sse-haze); border: 1px solid var(--sse-line); border-left: 4px solid var(--sse-mut); border-radius: var(--sse-radius); padding: 16px 24px; }
.satnews-agenda-card__announcement-icon { display: none; }
.satnews-agenda-card__announcement-title { font-family: var(--sse-display); font-size: 20px; font-weight: 700; color: var(--sse-ink); line-height: 1; }
.satnews-agenda-card__announcement-text { color: var(--sse-mut); font-size: 14px; }
.satnews-agenda-card__announcement-time { font-family: var(--sse-mono); font-size: 14px; font-weight: 500; color: var(--sse-ink); }
/* swimlane */
.satnews-agenda__lane-header { background: var(--sse-mist); font-family: var(--sse-mono); font-size: 11px; letter-spacing: .08em; font-weight: 400; color: var(--sse-mut); border-bottom: 1px solid var(--sse-line-2); }
.satnews-agenda__time-marker { font-family: var(--sse-mono); font-size: 12px; font-weight: 400; color: var(--sse-mut); border-right: 1px dashed var(--sse-line-2); }
.satnews-agenda-card--swimlane { padding: 16px; }
.satnews-agenda-card--swimlane .satnews-agenda-card__title { font-size: 18px; }
.satnews-agenda__empty { font-style: normal; font-family: var(--sse-mono); font-size: 12px; letter-spacing: .08em; text-transform: uppercase; color: var(--sse-mut); }
@keyframes satnews-agenda-focus-pulse { 0% { box-shadow: 0 0 0 2px var(--sse-accent); } 100% { box-shadow: 0 0 0 0 transparent; } }
/* editor + mobile */
@media (max-width: 782px) {
	.sse-agenda-block { padding: 24px 0 64px; }
	.satnews-agenda__day-title { font-size: 36px; }
	.satnews-agenda-card, .satnews-agenda-card--interlude { grid-template-columns: 1fr; padding: 18px 20px; gap: 14px; }
	.satnews-agenda-card--type-announcement { grid-template-columns: minmax(0, 1fr) auto; padding: 14px 18px; }
	.satnews-agenda-card__excerpt { max-width: none; }
	.satnews-agenda-card__speaker { min-width: 0; max-width: none; width: 100%; }
	.satnews-agenda-card__title { font-size: 22px; }
	.satnews-agenda-card__time-start { font-size: 16px; }
	.satnews-agenda-card__sponsor { border-top: 1px solid var(--sse-line); }
	.satnews-agenda__filter-panel { background: var(--sse-mist); }
	.satnews-agenda__day-tab { min-height: 44px; }
}

/* --------------------------------------------------------------------------
   16. CTA band (mailing list until registration opens) + footer (parts/footer.html)
   -------------------------------------------------------------------------- */
.sse-cta { background: var(--sse-accent); color: var(--sse-white); }
.sse-cta .sse-cta__in { display: flex; justify-content: space-between; align-items: center; gap: 32px; padding-top: 40px; padding-bottom: 40px; }
.sse-cta__l { display: flex; flex-direction: column; gap: 6px; min-width: 0; }
.sse-cta__l > * { margin: 0; }
.sse-cta .sse-kicker { color: var(--sse-lilac); }
.sse-cta h2 { font-size: 26px; line-height: 1.1; color: var(--sse-white); max-width: 640px; }
.sse-cta .wp-block-button__link:focus-visible, .sse-cta :focus-visible { outline-color: var(--sse-yellow); }
/* Footer band signup: the "mailing" Contact Form 7 form (inc/forms.php), one field + Subscribe */
.sse-ml { flex: 0 1 auto; width: 100%; max-width: 620px; min-width: 0; } /* no flex-basis: the band stacks into a column on phones */
.sse-ml .wpcf7 form, .sse-ml form { margin: 0; }
.sse-ml .sse-ml__row, .sse-ml .sse-ml__row > p { display: flex; gap: 8px; align-items: flex-start; flex-wrap: wrap; margin: 0; } /* CF7 wraps the row in a <p> and adds <br>s */
.sse-ml br { display: none; }
.sse-ml .wpcf7-form-control-wrap { display: block; flex: 1 1 180px; min-width: 0; }
.sse-ml input[type="email"], .sse-ml input[type="text"] { font: inherit; font-size: 15px; width: 100%; min-height: 44px; padding: 10px 14px; border: 1px solid transparent; border-radius: var(--sse-radius); background: var(--sse-white); color: var(--sse-ink); }
.sse-ml input:focus { outline: 2px solid var(--sse-yellow); outline-offset: 2px; }
.sse-ml .sse-ml__note { margin: 8px 0 0; font-size: 12px; color: var(--sse-lilac); }
.sse-ml input.wpcf7-not-valid { border-color: var(--sse-yellow); }
.sse-ml .wpcf7-submit, .sse-ml .sse-btn { min-height: 44px; margin: 0; }
.sse-ml .wpcf7-submit:disabled { opacity: .7; cursor: progress; }
.sse-ml .wpcf7-spinner { background: var(--sse-white); margin: 12px 0 0 8px; }
.sse-ml .wpcf7-not-valid-tip { font-family: var(--sse-mono); font-size: 11px; letter-spacing: .04em; color: var(--sse-yellow); margin-top: 6px; }
.sse-ml .wpcf7 form .wpcf7-response-output { margin: 10px 0 0; padding: 8px 12px; border: 1px solid rgba(255, 255, 255, .45); color: var(--sse-white); font-size: 14px; max-width: 420px; }

.sse-foot { background: var(--sse-night); color: var(--sse-lilac-2); padding: 64px 0 32px; font-size: 14px; }
.sse-foot__cols { display: grid; grid-template-columns: 2fr 1fr 1fr 1fr; gap: 40px; padding-bottom: 48px; border-bottom: 1px solid rgba(255, 255, 255, .12); }
.sse-foot__brand > * { margin: 0; }
.sse-foot__logo { display: block; line-height: 0; }
.sse-foot__logo img { height: 48px; width: auto; display: block; }
.sse-foot__addr { margin-top: 18px !important; max-width: 320px; line-height: 1.6; }
.sse-foot__h { font-family: var(--sse-mono); font-size: 11px; letter-spacing: .08em; text-transform: uppercase; color: var(--sse-lilac); font-weight: 500; line-height: 1.4; margin: 0 0 14px; }
.sse-foot__nav .wp-block-navigation__container { display: flex; flex-direction: column; align-items: flex-start; gap: 0; list-style: none; margin: 0; padding: 0; }
.sse-foot__nav .wp-block-navigation-item { margin: 0; }
.sse-foot__nav .wp-block-navigation-item__content { display: flex; align-items: center; min-height: 44px; color: var(--sse-lilac-3); padding: 0; text-decoration: none; }
.sse-foot__nav .wp-block-navigation-item__content:hover { color: var(--sse-yellow); }
.sse-foot__bot { display: flex; justify-content: space-between; gap: 24px; padding-top: 24px; flex-wrap: wrap; }
.sse-foot__bot > * { margin: 0; }
.sse-foot__bot a { color: var(--sse-lilac-2); text-decoration: none; }
.sse-foot__bot a:hover { color: var(--sse-yellow); }
.sse-foot :focus-visible { outline-color: var(--sse-yellow); }

/* --------------------------------------------------------------------------
   19. Editor canvas
   -------------------------------------------------------------------------- */
.editor-styles-wrapper { background: var(--sse-bg); color: var(--sse-ink); }
/* Pattern sections are full-bleed with their own .sse-w container: free them from the editor's 760px content column. */
.editor-styles-wrapper .is-root-container > :where(.sse-section, .sse-hero, .sse-road, .sse-band, .sse-phead, .sse-agenda-block, .sse-mist, .sse-cta, .sse-foot, .sse-faq-wrap) { max-width: none !important; margin-left: 0 !important; margin-right: 0 !important; }
.editor-styles-wrapper .sse-nav { position: static; }
.editor-styles-wrapper .sse-hero .sse-hero__in { min-height: 0; }
.editor-styles-wrapper .sse-hero__img { position: absolute !important; }

/* --------------------------------------------------------------------------
   20. Print (readable agenda)
   -------------------------------------------------------------------------- */
@media print {
	:root { --sse-line: #cfd3db; --sse-line-2: #b7bcc7; --sse-ink: #111; --sse-ink-2: #222; --sse-mut: #555; --sse-label: #555; }
	body { background: #fff !important; color: #111 !important; font-size: 12pt; }
	.sse-tel, .sse-nav, .sse-cta, .sse-foot, .sse-bar, .sse-agenda__side, .sse-star, .sse-phead__bg, .sse-phead::after, .wp-block-buttons, .sse-jump, .sse-li, .satnews-agenda__header, .satnews-agenda__view-toggle, .satnews-agenda__day-toggle-icon { display: none !important; }
	.satnews-agenda__day.is-collapsed .satnews-agenda__entries, .satnews-agenda__day.is-hidden, .satnews-agenda-card.is-hidden { display: flex !important; }
	.satnews-agenda-card { display: grid !important; page-break-inside: avoid; border-left-width: 2px; }
	.satnews-agenda__days { gap: 24px; }
	.sse-section, .sse-phead .sse-phead__in { padding: 24px 0; }
	.sse-phead h1 { font-size: 36pt; }
	.sse-agenda__body { display: block; padding-bottom: 0; }
	[data-day-panel][hidden] { display: block !important; }
	.sse-sess[hidden] { display: grid !important; }
	.sse-sess { grid-template-columns: 90px 1fr 140px; page-break-inside: avoid; padding: 10px 0; }
	.sse-sess h3 { font-size: 14pt; }
	.sse-dayhd { padding: 28px 0 8px; page-break-after: avoid; }
	.sse-dayhd h2 { font-size: 24pt; }
	.sse-type { border-color: #999; color: #333; }
	a { color: inherit; text-decoration: none; }
}

/* --------------------------------------------------------------------------
   21. Responsive — breakpoints 1280 / 1100 / 900 / 560 (review at 1440, 1024, 390)
   -------------------------------------------------------------------------- */
@media (max-width: 1280px) {
	.sse-nav .wp-block-navigation-item__content { padding: 0 8px; }
	.sse-nav .current-menu-item > .wp-block-navigation-item__content::after { left: 8px; right: 8px; }
	.sse-nav__name { display: none; } /* the symbol carries the brand once the nav gets tight */
	.sse-road__list { --n: 4; row-gap: 36px; }
	.sse-road__list--9 { --n: 3; }
	.sse-road__list--10 { --n: 5; }
	.sse-road__list::before, .sse-road__list::after { display: none; }
	/* tablets (rows of five): each item draws its own segment to the next dot, purple once that step is past; the last
	   item in a row draws none. Only the ten-step list is laid out this way. */
	.sse-road__list--10 .sse-road__i::after { content: ""; position: absolute; left: 18px; top: 8px; height: 2px; width: calc(100% - 18px + 10px); background: var(--sse-line-2); }
	.sse-road__list--10 .sse-road__i.is-past::after { background: var(--sse-accent); }
	.sse-road__list--10 .sse-road__i:nth-child(5n)::after { display: none; }
}
@media (max-width: 1100px) {
	:root { --sse-gutter: 40px; }
	.sse-hide-md { display: none; }
	.sse-nav .wp-block-navigation__responsive-container-open { display: flex; }
	.sse-nav .wp-block-navigation .wp-block-navigation__responsive-container:not(.is-menu-open) { display: none; }
	.sse-nav .wp-block-navigation { order: 3; margin-left: 0; flex: 0 0 auto; } /* only the hamburger remains: never let it shrink below 44px */
	.sse-nav__cta { margin-left: auto; }
	.sse-nav__name { display: block; }
	.sse-sess { grid-template-columns: 110px minmax(0, 1fr) 150px 44px; gap: 16px; }
	.sse-agenda__body { grid-template-columns: minmax(0, 1fr) 260px; gap: 40px; }
	.sse-faq { grid-template-columns: 200px minmax(0, 1fr); gap: 40px; }
	.sse-hero__grid { grid-template-columns: 1fr; }
	.sse-hero__stats { grid-template-columns: repeat(4, minmax(0, 1fr)); min-width: 0; }
	.sse-spk { grid-template-columns: repeat(3, minmax(0, 1fr)); }
	.sse-li__static { --per: 3; }
	.sse-expo { grid-template-columns: 1fr; }
	.sse-expo__copy { border-right: 0; }
	.sse-expo__photo { min-height: 360px; }
	.sse-spw { grid-template-columns: repeat(4, minmax(0, 1fr)); }
}
@media (max-width: 900px) {
	:root { --sse-gutter: 20px; --sse-nav-h: 72px; --sse-logo-h: 40px; --sse-section-y: 48px; }
	.sse-nav .sse-nav__in { gap: 12px; }
	.sse-nav__cta .wp-block-button:not(:last-child) { display: none; } /* keep Register; Exhibit lives in the menu */
	.sse-nav__cta .wp-block-button__link { padding: 11px 16px; min-height: 44px; }
	.sse-hero { width: calc(100% - 24px); }
	.sse-hero .sse-hero__in { padding: 28px 20px; gap: 32px; }
	.sse-hero__fig > :last-child { display: none; }
	.sse-hero__stats { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.sse-hero::before { background: linear-gradient(180deg, rgba(27, 15, 54, .55) 0%, rgba(27, 15, 54, .82) 55%, rgba(27, 15, 54, .94) 100%); }
	.sse-cells, .sse-x4, .sse-topics { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.sse-split { grid-template-columns: 1fr; gap: 32px; }
	.sse-incl { grid-template-columns: 1fr; }
	.sse-tracks, .sse-trip { grid-template-columns: 1fr; gap: 32px; }
	.sse-road__list { --n: 2; }
	.sse-road__list--9 { --n: 3; }
	.sse-road__list--10 { --n: 5; }
	.sse-duo, .sse-sn { grid-template-columns: 1fr; }
	.sse-quad { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.sse-sn > * + * { border-left: 0; border-top: 1px solid var(--sse-line-2); }
	.sse-pcard { aspect-ratio: 4 / 5; padding: 24px; }
	.sse-spw, .sse-expo__copy .sse-spw { grid-template-columns: repeat(3, minmax(0, 1fr)); } /* the shortcode sets --cols inline, so set the columns directly */
	.sse-li__static { --per: 2.15; }
	.sse-li__arrow { display: none; }
	.sse-sess__meta { grid-column: 2; }
	.sse-agenda__body { grid-template-columns: 1fr; gap: 0; }
	.sse-side { position: static; padding-top: 40px; }
	.sse-bar .sse-w { flex-wrap: wrap; padding-top: 12px; padding-bottom: 12px; gap: 12px; }
	.sse-chips { margin-left: 0; }
	.sse-chips button { min-height: 44px; padding: 8px 14px; }
	.sse-star { width: 44px; height: 44px; }
	.sse-sess { grid-template-columns: 80px minmax(0, 1fr) 44px; }
	.sse-days button { padding: 8px 14px; }
	.sse-days button b { font-size: 16px; }
	.sse-faq { grid-template-columns: 1fr; gap: 32px; padding-top: 48px; }
	.sse-cats { position: static; flex-direction: row; flex-wrap: wrap; border-left: 0; gap: 8px; }
	.sse-cats a { border: 1px solid var(--sse-line-2); border-radius: var(--sse-radius); min-height: 44px; display: flex; align-items: center; }
	.sse-cta .sse-cta__in { flex-direction: column; align-items: flex-start; }
	.sse-ml { width: 100%; }
	.sse-ml input[type="email"] { flex: 1 1 200px; width: auto; }
	.sse-sh, .sse-mh { flex-direction: column; align-items: flex-start; gap: 12px; }
	.sse-pk { min-height: 0; }
	.sse-form__grid { grid-template-columns: 1fr; }
	.sse-form__grid > .sse-form__full { grid-column: auto; }
	.sse-phead__bg { width: 70%; opacity: .35; }
	.sse-phead .sse-phead__in { padding-top: 48px; padding-bottom: 48px; }
	.sse-faq__item > :not(summary), .wp-block-details > :not(summary) { padding-right: 0; }
	.sse-kv { grid-template-columns: 120px minmax(0, 1fr); }
	.sse-foot__cols { grid-template-columns: repeat(3, minmax(0, 1fr)); }
	.sse-foot__brand { grid-column: 1 / -1; }
}
@media (max-width: 560px) {
	.sse-tel .sse-w { gap: 16px; }
	/* Header row budget at 390px: 20 + symbol 40 + 10 + name ≤153 + 8 + Register ≈80 + 8 + hamburger 44 + 20 = 383.
	   The brand may also shrink with an ellipsis so the row can never overflow the viewport. */
	.sse-nav .sse-nav__in { gap: 8px; }
	.sse-nav__brand { gap: 10px; flex: 0 1 auto; min-width: 0; }
	.sse-nav__name { font-size: 15px; min-width: 0; overflow: hidden; text-overflow: ellipsis; }
	.sse-nav__name a { padding: 14px 0; margin: -14px 0; } /* 44px tap target at the smaller size */
	.sse-nav__cta .wp-block-button__link { padding: 11px 14px; }
	.sse-nav .wp-block-navigation__responsive-container-open { margin-right: 0; }
	.sse-hero h1 { font-size: clamp(42px, 12.5vw, 56px); }
	.sse-hero__kicker { font-size: 12px; }
	.sse-hero .wp-block-buttons { flex-direction: column; align-items: stretch; }
	.sse-hero .wp-block-button__link { width: 100%; }
	.sse-stat__v { font-size: 30px; }
	.sse-hero__stats > * { padding: 16px; }
	.sse-road__list { --n: 1; row-gap: 24px; }
	/* phones: a vertical connection line down the dots (centres sit 13px below each item's top); sse.js adds is-vertical and sets --progress as a height */
	.sse-road__list.is-vertical::before { display: block; left: 8px; right: auto; top: 13px; bottom: 13px; width: 2px; height: auto; }
	.sse-road__list.is-vertical::after { display: block; left: 8px; top: 13px; width: 2px; height: var(--progress); transition: height 2.8s cubic-bezier(.2, .7, .2, 1) .6s; }
	.sse-road__list--10 .sse-road__i::after { display: none; }
	.sse-prices th, .sse-prices td { padding: 12px 8px; font-size: 14px; }
	.sse-prices th + th { white-space: normal; width: auto; }
	.sse-prices td + td { font-size: 15px; }
	.sse-road__i { display: grid; grid-template-columns: 18px minmax(0, 1fr); column-gap: 14px; row-gap: 4px; }
	.sse-road__i::before { grid-row: 1 / span 3; margin-top: 4px; }
	.sse-road__i > * { grid-column: 2; }
	.sse-road__d { margin-top: 0 !important; }
	.sse-cells, .sse-x4, .sse-topics, .sse-foot__cols { grid-template-columns: 1fr; }
	.sse-spk { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.sse-quad { grid-template-columns: 1fr; }
	.sse-quad .sse-pcard { aspect-ratio: 16 / 10; }
	.sse-spw, .sse-expo__copy .sse-spw { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.sse-li__static { --per: 1.15; }
	.sse-phead h1 { font-size: clamp(38px, 11vw, 56px); }
	.sse-sess { grid-template-columns: 64px minmax(0, 1fr) 44px; gap: 12px; }
	.sse-sess__t small { display: none; }
	.sse-sess h3 { font-size: 21px; }
	.sse-cells > * { padding: 22px 20px; }
	.sse-why__n { font-size: 52px; }
	.sse-news li, .sse-sn .wp-block-latest-posts li { grid-template-columns: 1fr; gap: 4px; }
	.sse-sn .wp-block-latest-posts__post-title { grid-row: 2; grid-column: 1; }
}
