/* ==========================================================================
   SmallSat Symposium 2027 — "Mission Control" design system
   Child theme of satnews-events. Every class is sss- prefixed; colors only via tokens.
   Loads after the parent stylesheet (handle satnews-events) and inside the block editor.
   ========================================================================== */

/* --------------------------------------------------------------------------
   1. Tokens
   -------------------------------------------------------------------------- */
:root {
	--sss-void: #07080b;
	--sss-deck: #0e1016;
	--sss-panel: #151821;
	--sss-line: #1e222c;
	--sss-line-2: #2a2f3b;
	--sss-line-3: #3a3f4c;          /* ghost button border */
	--sss-ink: #eef0f3;
	--sss-ink-2: #c3c7d0;
	--sss-mut: #8b91a0;
	--sss-red: oklch(0.63 0.21 29);
	--sss-red-2: oklch(0.57 0.21 29);
	--sss-red-surface: oklch(0.58 0.21 29); /* same hue, deeper: Chrome renders it #db2e23, 4.7:1 with white text (WCAG AA) */
	--sss-red-soft: oklch(0.45 0.12 29);   /* dusky red for subtle agenda ribbons (Market Brief) */
	--sss-tile: #f3f4f6;
	--sss-tile-ink: #333333;        /* text on light tiles */
	--sss-tbd: #f2b8ad;
	--sss-tbd-line: #6b3a33;
	--sss-white: #ffffff;
	--sss-black: #000000;
	--sss-slot-a: #10131a;
	--sss-slot-b: #141722;
	--sss-display: Archivo, 'Arial Narrow', sans-serif;
	--sss-mono: 'JetBrains Mono', ui-monospace, monospace;
	--sss-wide: 1320px;
	--sss-gutter: 40px;
	--sss-nav-h: 96px;
	--sss-tel-h: 36px;
	--sss-logo-h: 56px;
	--sss-section-y: 96px;
	--sss-ease: .18s ease;
}
/* The parent theme's blocks (agenda, exhibitor directory, speaker grids) read its palette slugs.
   Alias them to Mission Control tokens so every parent block inherits the dark palette. */
:root {
	--wp--preset--color--base: var(--sss-void);
	--wp--preset--color--base-2: var(--sss-panel);
	--wp--preset--color--contrast: var(--sss-ink);
	--wp--preset--color--contrast-2: var(--sss-ink-2);
	--wp--preset--color--border: var(--sss-line);
	--wp--preset--color--primary: var(--sss-red);
	--wp--preset--color--accent: var(--sss-red);
	--wp--preset--color--highlight: var(--sss-panel);
	--wp--preset--color--success: var(--sss-mut);
	--wp--preset--color--danger: var(--sss-red);
}
@supports not (color: oklch(0 0 0)) {
	:root { --sss-red: #e0402f; --sss-red-2: #c7361f; --sss-red-surface: #db2e23; --sss-red-soft: #7a3a33; }
}

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

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

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

h1, h2, h3, h4, .wp-block-heading {
	font-family: var(--sss-display);
	font-stretch: 72%;
	text-transform: uppercase;
	line-height: .92;
	letter-spacing: -.005em;
	color: var(--sss-ink);
	margin: 0;
}
h1 { font-weight: 800; font-size: clamp(64px, 8vw, 120px); }
h2 { font-weight: 700; font-size: clamp(40px, 4.4vw, 56px); }
h3 { font-weight: 700; font-size: 28px; font-stretch: 80%; }
h4 { font-weight: 700; font-size: 19px; font-stretch: 80%; }

/* Box model: every sss- component and its descendants use border-box (WordPress core does not set it globally). */
[class*="sss-"], [class*="sss-"] *, [class*="sss-"] *::before, [class*="sss-"] *::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; }
.sss-main .entry-content > * { margin-block: 0; }
[class*="sss-"] > * { margin-block-start: 0; margin-block-end: 0; }
[class*="sss-"] > .wp-block-image { margin: 0; }
.wp-block-template-part { display: contents; }                   /* lets .sss-nav stick to the viewport */
.wp-block-image img { display: block; height: auto; max-width: 100%; }
.wp-block-image figcaption { color: var(--sss-mut); font-size: 13px; margin: 8px 0 0; }
main.sss-main { min-height: 0; }

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

/* Utilities */
.sss-w { max-width: var(--sss-wide); margin-left: auto; margin-right: auto; padding-left: var(--sss-gutter); padding-right: var(--sss-gutter); }
.sss-mono { font-family: var(--sss-mono); font-size: 12px; letter-spacing: .08em; text-transform: uppercase; font-weight: 400; }
.sss-red { color: var(--sss-red); }
.sss-mut { color: var(--sss-mut); }
.sss-ink2 { color: var(--sss-ink-2); }
.sss-small { font-size: 15px; }
.sss-lede { font-size: 19px; color: var(--sss-ink-2); }
.sss-tbd { font-family: var(--sss-mono); font-size: 11px; letter-spacing: .06em; text-transform: uppercase; color: var(--sss-tbd); border: 1px dashed var(--sss-tbd-line); padding: 2px 6px; white-space: nowrap; font-weight: 400; font-stretch: 100%; vertical-align: middle; }
.sss-visually-hidden { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }

/* --------------------------------------------------------------------------
   3. Telemetry bar
   -------------------------------------------------------------------------- */
.sss-tel { border-bottom: 1px solid var(--sss-line); color: var(--sss-mut); background: var(--sss-void); font-family: var(--sss-mono); font-size: 12px; letter-spacing: .08em; text-transform: uppercase; }
.sss-tel .sss-w { display: flex; gap: 28px; height: var(--sss-tel-h); align-items: center; overflow: hidden; }
.sss-tel .sss-w > * { white-space: nowrap; flex: 0 0 auto; }
.sss-tel b { color: var(--sss-ink); font-weight: 500; }
.sss-tel__end { margin-left: auto; }
.sss-tel__dot { width: 7px; height: 7px; border-radius: 50%; background: var(--sss-red); box-shadow: 0 0 8px var(--sss-red); animation: sss-blink 2s infinite; }
@keyframes sss-blink { 50% { opacity: .35; } }
@media (prefers-reduced-motion: reduce) { .sss-tel__dot { animation: none; } }

/* --------------------------------------------------------------------------
   4. Header / navigation (parts/header.html)
   -------------------------------------------------------------------------- */
/* The blur lives on a pseudo-element: backdrop-filter on .sss-nav itself would make it the containing
   block of the navigation overlay (position: fixed) and trap the mobile menu inside the 72px header. */
.sss-nav { position: sticky; top: 0; z-index: 30; border-bottom: 1px solid var(--sss-line); isolation: isolate; }
.sss-nav::before { content: ""; position: absolute; inset: 0; z-index: -1; background: rgba(7, 8, 11, .9); -webkit-backdrop-filter: blur(10px); backdrop-filter: blur(10px); }
.sss-nav .sss-nav__in { display: flex; align-items: center; gap: 36px; height: var(--sss-nav-h); }
.sss-nav__logo { flex: 0 0 auto; line-height: 0; }
.sss-nav__logo .custom-logo-link { display: flex; align-items: center; min-height: 44px; }
.sss-nav__logo { display: flex; align-items: center; gap: 24px; }
.sss-nav__live { display: none; align-items: center; gap: 10px; color: var(--sss-mut); white-space: nowrap; font-variant-numeric: tabular-nums; animation: sss-fade .3s ease; }
.sss-nav__live b { color: var(--sss-ink); font-weight: 500; }
.sss-nav__live.is-on { display: inline-flex; }
@keyframes sss-fade { from { opacity: 0; } to { opacity: 1; } }
@media (max-width: 1100px) { .sss-nav__live { display: none !important; } }
.sss-nav .wp-block-site-logo img, .sss-nav .wp-block-site-logo.is-default-size img { height: var(--sss-logo-h); width: auto; max-width: none; display: block; }

.sss-nav .wp-block-navigation { margin-left: auto; font-size: 15px; flex: 0 1 auto; min-width: 0; }
.sss-nav .wp-block-navigation__container { display: flex; gap: 4px; flex-wrap: nowrap; justify-content: flex-end; list-style: none; margin: 0; padding: 0; }
.sss-nav .wp-block-navigation-item { display: flex; align-items: center; height: var(--sss-nav-h); margin: 0; }
.sss-nav .wp-block-navigation-item__content { display: flex; align-items: center; height: 100%; padding: 0 12px; position: relative; color: var(--sss-ink-2); white-space: nowrap; text-decoration: none; }
.sss-nav .wp-block-navigation-item__content:hover { color: var(--sss-red); }
.sss-nav .current-menu-item > .wp-block-navigation-item__content { color: var(--sss-ink); }
.sss-nav .current-menu-item > .wp-block-navigation-item__content::after { content: ""; position: absolute; left: 12px; right: 12px; bottom: -1px; height: 2px; background: var(--sss-red); }
.sss-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. */
.sss-nav .wp-block-navigation .has-child > .wp-block-navigation-submenu__toggle { background: none; border: 0; font: inherit; cursor: pointer; padding: 0 4px 0 12px; } /* core zeroes the left padding of the toggle; keep the same 12px rhythm as the links, with the chevron in the remaining space */
.sss-nav .has-child .wp-block-navigation-submenu__toggle[aria-expanded="true"] { color: var(--sss-ink); }
.sss-nav .wp-block-navigation .has-child > .wp-block-navigation__submenu-icon { color: var(--sss-mut); margin: 0 12px 0 0; }
.sss-nav .has-child .wp-block-navigation__submenu-container { background: var(--sss-void); border: 1px solid var(--sss-line-2); border-radius: 0; box-shadow: 0 16px 40px rgba(0, 0, 0, .5); padding: 8px 0; min-width: 220px; }
.sss-nav .has-child .wp-block-navigation__submenu-container .wp-block-navigation-item { display: block; height: auto; }
.sss-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; }
.sss-nav .has-child .wp-block-navigation__submenu-container .wp-block-navigation-item__content:hover { color: var(--sss-red); background: var(--sss-deck); }
.sss-nav .has-child .wp-block-navigation__submenu-container .current-menu-item > .wp-block-navigation-item__content { color: var(--sss-red); }
.sss-nav .has-child .wp-block-navigation__submenu-container .current-menu-item > .wp-block-navigation-item__content::after { display: none; }

.sss-nav__cta { flex: 0 0 auto; margin: 0; }
.sss-nav__cta .wp-block-button__link { padding: 12px 22px; }

/* Hamburger (core navigation overlay) — shown under 900px instead of core's 600px */
.sss-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(--sss-ink); background: none; border: 0; cursor: pointer; }
.sss-nav .wp-block-navigation__responsive-container-open svg { width: 26px; height: 26px; }
.sss-nav .wp-block-navigation__responsive-container-open:hover { color: var(--sss-red); }
.sss-nav .wp-block-navigation__responsive-container.is-menu-open { background: var(--sss-void); color: var(--sss-ink); padding: 0; }
.sss-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-dialog { min-height: 100%; }
.sss-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-close { max-width: none; margin: 0; padding: 0 20px; }
.sss-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(--sss-ink); background: none; border: 0; cursor: pointer; padding: 0; z-index: 2; }
.sss-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-close svg { width: 28px; height: 28px; }
.sss-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content { padding: 112px 0 40px; display: block; }
.sss-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(--sss-line); }
.sss-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item { height: auto; display: block; border-bottom: 1px solid var(--sss-line); }
.sss-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: 20px 0; font-family: var(--sss-display); font-stretch: 72%; font-weight: 700; font-size: 40px; line-height: 1; text-transform: uppercase; color: var(--sss-ink); }
.sss-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(--sss-mono); font-size: 16px; font-weight: 400; color: var(--sss-red); font-stretch: 100%; }
.sss-nav .wp-block-navigation__responsive-container.is-menu-open .current-menu-item > .wp-block-navigation-item__content { color: var(--sss-red); }
/* In the mobile overlay the "More" group is flattened: no toggle, its links listed like the others. */
.sss-nav .wp-block-navigation__responsive-container.is-menu-open .sss-nav__more > .wp-block-navigation-submenu__toggle, .sss-nav .wp-block-navigation__responsive-container.is-menu-open .sss-nav__more > .wp-block-navigation__submenu-icon { display: none; }
.sss-nav .wp-block-navigation__responsive-container.is-menu-open li.sss-nav__more { border-bottom: 0; }
.sss-nav .wp-block-navigation__responsive-container.is-menu-open .sss-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; }
.sss-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content .wp-block-navigation__container .sss-nav__more .wp-block-navigation__submenu-container .wp-block-navigation-item__content { padding: 14px 0; } /* second tier: smaller type, same edges as the primary items */
.sss-nav .wp-block-navigation__responsive-container.is-menu-open::before { content: "Menu"; position: absolute; left: 20px; top: 27px; font-family: var(--sss-mono); font-size: 12px; letter-spacing: .08em; text-transform: uppercase; color: var(--sss-mut); }

/* --------------------------------------------------------------------------
   5. Buttons
   theme.json gives .wp-block-button__link the primary look; these cover raw anchors and variations.
   -------------------------------------------------------------------------- */
.sss-btn, .wp-block-button__link, .wp-element-button {
	display: inline-flex; align-items: center; justify-content: center; gap: 10px;
	background: var(--sss-red-surface); color: var(--sss-white); padding: 12px 22px;
	font-family: var(--sss-display); font-weight: 600; font-size: 15px; line-height: 1.4; font-stretch: 100%;
	border: 0; border-radius: 0; box-shadow: none; cursor: pointer; text-decoration: none; text-transform: none; letter-spacing: 0;
	transition: background var(--sss-ease), border-color var(--sss-ease), color var(--sss-ease);
}
.sss-btn:hover, .wp-block-button__link:hover, .wp-element-button:hover { background: var(--sss-red-2); color: var(--sss-white); }
.sss-btn--ghost, .is-style-sss-ghost .wp-block-button__link { background: transparent; border: 1px solid var(--sss-line-3); color: var(--sss-ink); padding: 11px 21px; }
.sss-btn--ghost:hover, .is-style-sss-ghost .wp-block-button__link:hover { background: transparent; border-color: var(--sss-ink); color: var(--sss-ink); }
.is-style-sss-void .wp-block-button__link { background: var(--sss-void); color: var(--sss-white); }
.is-style-sss-void .wp-block-button__link:hover { background: var(--sss-black); }
.sss-btn--lg, .sss-btn--lg .wp-block-button__link { padding: 16px 28px; font-size: 16px; }
.sss-btn--lg.is-style-sss-ghost .wp-block-button__link, .sss-btn--lg.sss-btn--ghost { padding: 15px 27px; }
.sss-btn--block { width: 100%; }
.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(--sss-red); outline-offset: 2px; }
.is-style-sss-ghost .wp-block-button__link:focus-visible { outline-color: var(--sss-ink); }

/* --------------------------------------------------------------------------
   6. Sections and surfaces
   -------------------------------------------------------------------------- */
.sss-section { padding: var(--sss-section-y) 0; border-bottom: 1px solid var(--sss-line); }
.sss-section--last, .sss-section.sss-section--last { border-bottom: 0; }
.sss-deck, .is-style-sss-deck { background: var(--sss-deck); }
.sss-sh { display: flex; justify-content: space-between; align-items: flex-end; gap: 24px; margin-bottom: 44px; }
.sss-sh > .sss-mono, .sss-sh > p { color: var(--sss-red); }
.sss-sh > p.sss-mut, .sss-sh > .sss-mono.sss-mut { color: var(--sss-mut); }
.sss-sh a { color: var(--sss-red); text-decoration: none; display: inline-block; padding: 14px 0; margin: -14px 0; }
.sss-sh a:hover { color: var(--sss-ink); }
.sss-kicker { color: var(--sss-red); }
.sss-kicker.sss-mut { color: var(--sss-mut); }
.sss-h2--after-kicker { margin: 16px 0 28px; }
.sss-panel { border: 1px solid var(--sss-line); background: var(--sss-void); padding: 28px; }
.sss-panel + .sss-panel { margin-top: 16px; }
.sss-panel > .sss-mono + p { margin: 10px 0 16px; font-size: 15px; color: var(--sss-ink-2); }

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

/* Hairline grids: line-colored background + 1px gaps, void cells */
.sss-cells { display: grid; grid-template-columns: repeat(var(--cols, 4), minmax(0, 1fr)); gap: 1px; background: var(--sss-line); border: 1px solid var(--sss-line); }
.sss-cells > * { background: var(--sss-void); padding: 28px; min-width: 0; }
/* column-count modifiers (no inline styles in block markup) */
.sss-cells--2 { --cols: 2; }
.sss-cells--3 { --cols: 3; }
.sss-cells--4 { --cols: 4; }
.sss-cells--plain { background: transparent; border: 0; gap: 40px; }
.sss-cells--plain > * { padding: 0; }
.sss-feature { outline: 1px solid var(--sss-red); outline-offset: -1px; background: var(--sss-panel) !important; }

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

/* Placeholder slot for missing imagery/embeds */
.sss-slot { background: repeating-linear-gradient(135deg, var(--sss-slot-a) 0 10px, var(--sss-slot-b) 10px 20px); border: 1px solid var(--sss-line); display: flex; align-items: center; justify-content: center; text-align: center; padding: 20px; color: var(--sss-mut); font-family: var(--sss-mono); font-size: 12px; letter-spacing: .08em; text-transform: uppercase; line-height: 1.6; }
.sss-slot--43 { aspect-ratio: 4 / 3; }
.sss-slot--11 { aspect-ratio: 1; }
.sss-slot--1610 { aspect-ratio: 16 / 10; margin-bottom: 20px; }
/* 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.sss .wp-block-post-featured-image { background: var(--sss-white); width: 320px; max-width: 100%; height: 200px; display: flex; align-items: center; justify-content: center; padding: 20px; box-sizing: border-box; border-radius: 0; margin: 0; }
body.sss .wp-block-post-featured-image img { width: 100% !important; height: 100% !important; object-fit: contain !important; border-radius: 0 !important; display: block; }
/* Partner Presentations page: closing call to action under the three steps */
.sss-pp__cta { margin-top: 40px; }
.sss-pp__contact { margin-top: 20px; }
.sss-pp__contact a { color: var(--sss-red); text-decoration: none; }
/* Map embed (Travel & Venue): wraps the Google Maps iframe */
.sss-map { border: 1px solid var(--sss-line); background: var(--sss-panel); }
.sss-map iframe { display: block; width: 100%; height: 360px; border: 0; }

/* --------------------------------------------------------------------------
   7. Home: hero
   -------------------------------------------------------------------------- */
.sss-hero { position: relative; border-bottom: 1px solid var(--sss-line); overflow: hidden; }
.sss-hero .sss-hero__in { display: grid; grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); min-height: 660px; }
.sss-hero__l { padding: 80px 48px 64px 0; display: flex; flex-direction: column; border-right: 1px solid var(--sss-line); }
.sss-hero__kicker { color: var(--sss-red); margin-bottom: 24px; }
.sss-hero h1 { font-size: clamp(64px, 8.4vw, 128px); line-height: .86; font-weight: 800; }
.sss-tagline { font-family: var(--sss-display); font-stretch: 72%; text-transform: uppercase; font-weight: 600; font-size: clamp(28px, 2.8vw, 40px); line-height: 1; margin-top: 20px; color: var(--sss-red); }
.sss-hero__lede { max-width: 540px; color: var(--sss-ink-2); font-size: 19px; margin: 28px 0 36px; }
.sss-hero__cta { margin-top: auto; }
.sss-facts { display: flex; gap: 40px; flex-wrap: wrap; margin-top: 40px; padding-top: 24px; border-top: 1px solid var(--sss-line); }
.sss-fact__k { color: var(--sss-mut); }
.sss-fact__v { display: block; font-size: 22px; font-stretch: 80%; font-weight: 600; text-transform: uppercase; line-height: 1.2; }
.sss-hero__r { position: relative; min-height: 320px; overflow: hidden; }
.sss-hero__r .wp-block-image { position: absolute; inset: 0; margin: 0; }
.sss-hero__r .wp-block-image img { width: 100%; height: 100%; object-fit: cover; object-position: center; }
.sss-hero__r::after { content: ""; position: absolute; inset: 0; background: linear-gradient(90deg, var(--sss-void) 0, transparent 30%); pointer-events: none; }
.sss-readout { position: absolute; left: 40px; right: 40px; top: 48px; width: max-content; max-width: calc(100% - 80px); margin: 0 auto; z-index: 2; background: rgba(7, 8, 11, .82); border: 1px solid var(--sss-line); border-top: 2px solid var(--sss-red); padding: 18px 22px 16px; min-width: 300px; }
.sss-readout__k { display: flex; align-items: center; gap: 10px; }
.sss-hero__r .sss-readout { animation: sss-drift 9s ease-in-out infinite; }
@keyframes sss-drift { 0%, 100% { transform: translate(0, 0); } 50% { transform: translate(-4px, 8px); } }
@media (prefers-reduced-motion: reduce) { .sss-hero__r .sss-readout { animation: none; } }
.sss-cd { display: grid; grid-template-columns: repeat(4, 1fr); gap: 14px; margin: 12px 0 8px; font-family: var(--sss-mono); }
.sss-cd b { display: block; font-size: 40px; font-weight: 500; line-height: 1; font-variant-numeric: tabular-nums; letter-spacing: -.02em; }
/* compact in-flow variant (used under the tagline on small screens) */
.sss-readout--strip { display: none; position: static; min-width: 0; margin: 24px 0 0; padding: 14px 16px 12px; animation: none; }
.sss-readout--strip .sss-cd { grid-template-columns: repeat(4, auto); justify-content: start; gap: 22px; margin: 8px 0 6px; }
.sss-readout--strip .sss-cd b { font-size: 28px; }
.sss-cd small { display: block; font-size: 10px; color: var(--sss-mut); letter-spacing: .1em; text-transform: uppercase; margin-top: 4px; }
/* Countdown failover: the "Live now · Day 2 of 3" and after-event panels share the readout box */
.sss-state { margin: 12px 0 4px; }
.sss-state b { display: block; font-family: var(--sss-display); font-size: 40px; font-weight: 700; font-stretch: 72%; text-transform: uppercase; line-height: 1; letter-spacing: -.005em; }
.sss-state small { display: block; font-family: var(--sss-mono); font-size: 11px; color: var(--sss-mut); letter-spacing: .1em; text-transform: uppercase; margin-top: 8px; }
.sss-readout--strip .sss-state b { font-size: 28px; }
/* Early-bird failover: after the deadline (body.sss-early-closed) the early prices, table columns and sentences disappear */
.sss-early-closed .sss-early { display: none !important; }
.sss-early-closed .sss-price { grid-template-columns: 1fr; }
.sss-early-closed .sss-cmp--rates th:nth-child(3), .sss-early-closed .sss-cmp--rates td:nth-child(3), .sss-early-closed .sss-cmp--rates th:nth-child(5), .sss-early-closed .sss-cmp--rates td:nth-child(5) { display: none; }

/* Stats strip */
.sss-stats { border-bottom: 1px solid var(--sss-line); }
.sss-stats .sss-stats__in { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); }
.sss-stat { padding: 40px 0 40px 24px; border-left: 1px solid var(--sss-line); }
.sss-stat:first-child { border-left: 0; padding-left: 0; }
.sss-stat__n { font-size: 56px; font-stretch: 75%; font-weight: 700; line-height: 1; text-transform: uppercase; }
.sss-stat .sss-mono { color: var(--sss-mut); margin-top: 12px; }

/* Participate paths (hairline cells, whole cell clickable) */
.sss-path { position: relative; min-height: 240px; display: flex; flex-direction: column; transition: background var(--sss-ease); }
.sss-path:hover, .sss-path:focus-within { background: var(--sss-deck); }
.sss-path > .sss-mono { color: var(--sss-mut); }
.sss-path h3 { margin: 14px 0 10px; } /* title a fixed 14px under the kicker on every card, so titles align across a row */
.sss-path p:not(.sss-mono):not(.sss-path__ar) { color: var(--sss-mut); font-size: 15px; }
.sss-path__ar { margin-top: auto !important; padding-top: 16px; font-family: var(--sss-mono); font-size: 13px; letter-spacing: .04em; } /* the link absorbs spare height and sits level at the bottom */
.sss-path__ar a { color: var(--sss-red); text-decoration: none; }
.sss-path__ar a::after { content: ""; position: absolute; inset: 0; }
.sss-path__ar a:focus-visible { outline: 0; }
.sss-path:focus-within { outline: 2px solid var(--sss-red); outline-offset: -2px; }

/* What to expect (four plain columns) */
.sss-x4 { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 40px; }
.sss-x4 > * > .sss-mono { color: var(--sss-red); }
.sss-x4 h3 { margin: 14px 0 10px; font-size: 32px; }
.sss-x4 p:not(.sss-mono) { color: var(--sss-mut); font-size: 15px; }

/* Agenda at a glance (shortcode) */
.sss-day { padding: 28px; }
.sss-day__hd { display: flex; justify-content: space-between; align-items: baseline; gap: 16px; border-bottom: 1px solid var(--sss-line); padding-bottom: 16px; margin-bottom: 8px; }
.sss-day__hd b { font-size: 30px; font-stretch: 75%; text-transform: uppercase; font-weight: 700; line-height: 1; }
.sss-day ul { list-style: none; margin: 0; padding: 0; }
.sss-day li { display: grid; grid-template-columns: 64px minmax(0, 1fr); padding: 12px 0; border-bottom: 1px dashed var(--sss-line); font-size: 15px; }
.sss-day li:last-child { border-bottom: 0; }
.sss-day li span { font-family: var(--sss-mono); font-size: 12px; color: var(--sss-mut); padding-top: 3px; }

/* Photo mosaic */
.sss-mos { display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); grid-auto-rows: 180px; gap: 8px; }
.sss-mos > .wp-block-image { margin: 0; background: var(--sss-panel); overflow: hidden; }
.sss-mos > .wp-block-image img { width: 100%; height: 100%; object-fit: cover; }
.sss-mos > :nth-child(1) { grid-column: span 3; grid-row: span 2; }
.sss-mos > :nth-child(n+2) { grid-column: span 3; }
.sss-mos > :nth-child(n+4) { grid-column: span 2; }
.sss-mos > :nth-child(2) img { object-position: center 20%; } /* panel photo: faces sit high in the frame */

/* Venue split image */
.sss-split__img { aspect-ratio: 4 / 3; background: var(--sss-panel); overflow: hidden; }
.sss-split__img .wp-block-image { height: 100%; margin: 0; } /* the figure must fill the frame or a band of panel colour shows under the photo */
.sss-split__img img { display: block; width: 100%; height: 100%; object-fit: cover; }
.sss-split .wp-block-buttons { margin-top: 32px; }

/* --------------------------------------------------------------------------
   8. Interior page header
   -------------------------------------------------------------------------- */
.sss-phead { position: relative; border-bottom: 1px solid var(--sss-line); overflow: hidden; }
.sss-phead__bg { position: absolute; right: 0; top: 0; bottom: 0; width: 48%; margin: 0; opacity: .55; -webkit-mask-image: linear-gradient(90deg, transparent, #000 60%); mask-image: linear-gradient(90deg, transparent, #000 60%); }
.sss-phead__bg img { width: 100%; height: 100%; object-fit: cover; }
.sss-phead .sss-phead__in { position: relative; padding-top: 72px; padding-bottom: 64px; }
.sss-crumb, .sss-crumb a { color: var(--sss-mut); text-decoration: none; }
.sss-crumb a:hover { color: var(--sss-red); }
.sss-phead h1 { margin: 18px 0 22px; }
.sss-phead__lede { max-width: 620px; color: var(--sss-ink-2); font-size: 19px; }
.sss-phead .wp-block-buttons { margin-top: 32px; }
.sss-jump { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 32px !important; }
.sss-jump a { text-decoration: none; display: inline-flex; align-items: center; min-height: 44px; font-family: var(--sss-mono); font-size: 12px; letter-spacing: .08em; text-transform: uppercase; border: 1px solid var(--sss-line-2); padding: 8px 14px; color: var(--sss-ink); }
.sss-jump a:hover { border-color: var(--sss-ink); }

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

/* --------------------------------------------------------------------------
   10. Speaking
   -------------------------------------------------------------------------- */
.sss-step__n { font-family: var(--sss-mono); color: var(--sss-red); font-size: 13px; letter-spacing: .06em; text-transform: uppercase; }
.sss-step h3 { margin: 40px 0 10px; font-size: 26px; }
.sss-step p:not(.sss-step__n) { color: var(--sss-mut); font-size: 15px; }
.sss-topics { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 48px; }
.sss-topic { display: flex; justify-content: space-between; align-items: baseline; gap: 16px; padding: 18px 0; border-bottom: 1px solid var(--sss-line); font-size: 19px; }
.sss-topic .sss-mono { color: var(--sss-mut); white-space: nowrap; }

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

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

/* --------------------------------------------------------------------------
   13. Register: pass cards + comparison table
   -------------------------------------------------------------------------- */
.sss-pass { padding: 32px; display: flex; flex-direction: column; min-height: 520px; }
.sss-pass > .sss-mono { color: var(--sss-mut); }
.sss-pass.sss-feature > .sss-mono { color: var(--sss-red); }
.sss-pass h3 { margin: 14px 0 8px; }
.sss-pass__lede { color: var(--sss-mut); font-size: 15px; }
.sss-price { display: grid; grid-template-columns: 1fr 1fr; border: 1px solid var(--sss-line); margin: 24px 0; }
.sss-price > * { padding: 14px 16px; }
.sss-price > * + * { border-left: 1px solid var(--sss-line); }
.sss-price__k { color: var(--sss-mut); }
.sss-price__v { font-family: var(--sss-mono); font-size: 28px; font-weight: 500; margin-top: 4px; line-height: 1.2; }
.sss-pass ul { list-style: none; padding: 0; margin: 0 0 28px; color: var(--sss-ink-2); font-size: 15px; }
.sss-pass li { padding: 9px 0; border-top: 1px solid var(--sss-line); display: flex; gap: 10px; }
.sss-pass li::before { content: "✓"; color: var(--sss-red); }
.sss-pass li.sss-no { color: var(--sss-mut); }
.sss-pass li.sss-no::before { content: "–"; color: var(--sss-mut); }
.sss-pass .wp-block-buttons { margin-top: auto; }
.sss-pass .wp-block-button, .sss-pass .wp-block-button__link { width: 100%; }
.sss-note { color: var(--sss-mut); margin-top: 24px !important; font-size: 15px; }

.sss-cmp { margin: 0; }
.sss-cmp table { width: 100%; border-collapse: collapse; font-size: 15px; border: 0; }
.sss-cmp thead, .sss-cmp tbody, .sss-cmp tfoot, .sss-cmp tr { border: 0; }
.sss-cmp th, .sss-cmp td { padding: 16px; border: 0; border-bottom: 1px solid var(--sss-line); text-align: left; }
.sss-cmp th { font-family: var(--sss-mono); font-size: 11px; letter-spacing: .08em; text-transform: uppercase; color: var(--sss-mut); font-weight: 400; }
.sss-cmp td + td, .sss-cmp th + th { text-align: center; }
.sss-cmp td .sss-red { color: var(--sss-red); }
.sss-cmp + .sss-split { margin-top: 56px; }
.sss-docs { padding: 0; margin: 12px 0 20px; list-style: none; color: var(--sss-ink-2); font-size: 15px; }
.sss-docs li { padding: 10px 0; border-top: 1px solid var(--sss-line); }

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

/* --------------------------------------------------------------------------
   15. Sponsor wall — logos always on light tiles
   -------------------------------------------------------------------------- */
.sss-spw { display: grid; grid-template-columns: repeat(var(--cols, 6), minmax(0, 1fr)); gap: 1px; background: var(--sss-line); border: 1px solid var(--sss-line); }
body.sss .sss-sp, .sss-sp { background: var(--sss-white); height: 110px; display: flex; align-items: center; justify-content: center; padding: 14px 18px; color: var(--sss-tile-ink); font-size: 13px; text-align: center; line-height: 1.25; }
body.sss .sss-sp:hover, body.sss .sss-sp:focus-visible { color: var(--sss-tile-ink); outline-offset: -3px; }
.sss-sp img { max-width: 100%; max-height: 100%; width: auto; height: auto; object-fit: contain; }
.sss-sp__name { font-weight: 600; font-stretch: 85%; letter-spacing: -.005em; }

/* --------------------------------------------------------------------------
   16. CTA band + footer (parts/footer.html)
   -------------------------------------------------------------------------- */
.sss-cta { background: var(--sss-red-surface); color: var(--sss-white); }
.sss-cta .sss-cta__in { display: flex; justify-content: space-between; align-items: center; gap: 32px; padding-top: 56px; padding-bottom: 56px; }
.sss-cta h2 { font-size: 64px; color: var(--sss-white); }
.sss-cta .is-style-sss-ghost .wp-block-button__link { border-color: rgba(255, 255, 255, .6); color: var(--sss-white); }
.sss-cta .is-style-sss-ghost .wp-block-button__link:hover { border-color: var(--sss-white); }
.sss-cta .wp-block-button__link:focus-visible { outline-color: var(--sss-white); }
.sss-foot { padding: 64px 0 40px; color: var(--sss-mut); font-size: 14px; }
.sss-foot__cols { display: grid; grid-template-columns: 2fr 1fr 1fr 1fr; gap: 40px; padding-bottom: 48px; border-bottom: 1px solid var(--sss-line); }
.sss-foot__logo { line-height: 0; }
.sss-foot .wp-block-site-logo img, .sss-foot .wp-block-site-logo.is-default-size img { height: 48px; width: auto; max-width: none; display: block; }
.sss-foot__addr { margin-top: 18px !important; max-width: 320px; }
.sss-foot__h { font-family: var(--sss-mono); font-size: 11px; letter-spacing: .1em; text-transform: uppercase; color: var(--sss-mut); font-weight: 400; font-stretch: 100%; line-height: 1.4; margin: 0 0 14px; }
.sss-foot__nav .wp-block-navigation__container { display: flex; flex-direction: column; gap: 0; list-style: none; margin: 0; padding: 0; }
.sss-foot__nav .wp-block-navigation-item { margin: 0; }
.sss-foot__nav .wp-block-navigation-item__content { display: flex; align-items: center; min-height: 44px; color: var(--sss-ink-2); padding: 0; text-decoration: none; }
.sss-foot__nav .wp-block-navigation-item__content:hover { color: var(--sss-red); }
.sss-foot__bot { display: flex; justify-content: space-between; gap: 24px; padding-top: 24px; flex-wrap: wrap; }
.sss-foot__bot a { color: var(--sss-mut); text-decoration: none; }
.sss-foot__bot a:hover { color: var(--sss-red); }

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

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

/* --------------------------------------------------------------------------
   18. Parent-theme blocks on dark (archives, single sponsor/speaker/session)
   -------------------------------------------------------------------------- */
body.sss .is-style-satnews-card, body.sss .is-style-satnews-bordered, body.sss .is-style-satnews-highlight { background: var(--sss-deck); border-color: var(--sss-line); border-radius: 0; box-shadow: none; }
body.sss .wp-block-post-terms.is-style-satnews-pill a { background: var(--sss-panel); color: var(--sss-ink-2); border-radius: 0; }
body.sss .wp-block-heading.is-style-satnews-section-heading { border-color: var(--sss-line); }
body.sss main.wp-block-group:not(.sss-main) { max-width: var(--sss-wide); margin-inline: auto; padding: 64px var(--sss-gutter); }
body.sss main.wp-block-group:not(.sss-main) > * { max-width: none; }
body.sss .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: 1px; background: var(--sss-line); border: 1px solid var(--sss-line); list-style: none; margin: 0; padding: 0; }
body.sss .satnews-exhibitor-card { background: var(--sss-void); padding: 0; border: 0; border-radius: 0; box-shadow: none; margin: 0; }
body.sss .satnews-exhibitor-card__logo { display: flex; align-items: center; justify-content: center; height: 130px; padding: 0; background: var(--sss-white); color: var(--sss-tile-ink); text-decoration: none; font-size: 13px; text-align: center; overflow: hidden; }
body.sss .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.sss .satnews-exhibitor-card__logo-placeholder { font-weight: 600; font-stretch: 85%; color: var(--sss-tile-ink); }
body.sss .satnews-exhibitor-card__body { padding: 18px 20px 22px; }
body.sss .satnews-exhibitor-card__name { font-size: 19px; font-stretch: 80%; text-transform: uppercase; font-weight: 700; margin: 0 0 8px; }
body.sss .satnews-exhibitor-card__name a { color: var(--sss-ink); text-decoration: none; }
body.sss .satnews-exhibitor-card__name a:hover { color: var(--sss-red); }
body.sss .satnews-exhibitor-card__booth, body.sss .satnews-exhibitor-card__meeting { margin: 0; color: var(--sss-mut); font-size: 14px; }
body.sss .satnews-exhibitor-card__booth-label { font-family: var(--sss-mono); font-size: 11px; letter-spacing: .08em; text-transform: uppercase; margin-right: 6px; }
body.sss .satnews-exhibitor-card__booth-number { color: var(--sss-ink); font-family: var(--sss-mono); font-size: 15px; }
/* Floor-plan pin card: wide enough for a company name and the link on one line */
body.sss .satnews-exhibitor-directory__pin-card { min-width: 260px; max-width: 320px; background: var(--sss-void); color: var(--sss-ink); border: 1px solid var(--sss-line-2); border-radius: 0; box-shadow: 0 16px 40px rgba(0, 0, 0, .5); }
body.sss .satnews-exhibitor-directory__pin-card-name { white-space: normal; overflow: visible; text-overflow: clip; font-weight: 700; }
body.sss .satnews-exhibitor-directory__pin-card-cta { white-space: nowrap; color: var(--sss-red); }
body.sss .satnews-exhibitor-directory__sort-toggle { display: flex; gap: 8px; justify-content: flex-end; margin-bottom: 24px; }
body.sss .satnews-exhibitor-directory__sort-btn { font-family: var(--sss-mono); font-size: 11px; letter-spacing: .08em; text-transform: uppercase; background: none; border: 1px solid var(--sss-line-2); color: var(--sss-ink-2); padding: 8px 12px; cursor: pointer; border-radius: 0; }
body.sss .satnews-exhibitor-directory__sort-btn[aria-pressed="true"], body.sss .satnews-exhibitor-directory__sort-btn.is-active { border-color: var(--sss-ink); color: var(--sss-ink); background: var(--sss-panel); }
body.sss .satnews-exhibitor-directory__group-heading { font-size: 28px; margin: 40px 0 16px; }
body.sss .satnews-exhibitor-directory__count { color: var(--sss-mut); font-family: var(--sss-mono); font-size: 12px; letter-spacing: .08em; text-transform: uppercase; }


/* --------------------------------------------------------------------------
   18b. Parent agenda block (satnews/agenda) — the Silicon Valley Space Week layout in Mission Control
   -------------------------------------------------------------------------- */
.sss-agenda-block { padding: 48px 0 96px; }
.sss-agenda-block .satnews-agenda { --satnews-card-radius: 0; --satnews-card-padding: 24px 28px; --satnews-card-gap: 28px; --satnews-card-border: var(--sss-line); --satnews-card-bg: var(--sss-void); --satnews-card-bg-alt: var(--sss-panel); --satnews-format-accent: var(--sss-line-2); font-size: 15px; }
/* header: day tabs + filter */
.satnews-agenda__header { margin: 0 0 32px; padding-bottom: 0; border-bottom: 1px solid var(--sss-line); }
.satnews-agenda__day-tab { font-family: var(--sss-mono); font-size: 12px; font-weight: 400; letter-spacing: .08em; color: var(--sss-mut); padding: 16px 16px 14px; border-bottom: 2px solid transparent; margin-bottom: -1px; }
.satnews-agenda__day-tab:hover { color: var(--sss-ink); }
.satnews-agenda__day-tab.is-active { color: var(--sss-ink); border-bottom-color: var(--sss-red); }
.satnews-agenda__filter-button { font-family: var(--sss-mono); font-size: 11px; font-weight: 400; letter-spacing: .08em; text-transform: uppercase; color: var(--sss-ink-2); border: 1px solid var(--sss-line-2); border-radius: 0; padding: 10px 14px; min-height: 40px; }
.satnews-agenda__filter-button:hover, .satnews-agenda__filter-disclosure[open] .satnews-agenda__filter-button { background: var(--sss-panel); border-color: var(--sss-ink); color: var(--sss-ink); }
.satnews-agenda__filter-button::after { color: var(--sss-red); }
.satnews-agenda__filter-badge { color: var(--sss-red); font-weight: 500; }
.satnews-agenda__filter-panel { background: var(--sss-deck); border: 1px solid var(--sss-line-2); border-radius: 0; box-shadow: none; padding: 20px 22px; gap: 18px; }
.satnews-agenda__filter-label { font-family: var(--sss-mono); font-size: 11px; letter-spacing: .08em; font-weight: 400; color: var(--sss-red); }
.satnews-chip { font-family: var(--sss-mono); font-size: 11px; font-weight: 400; letter-spacing: .08em; text-transform: uppercase; background: none; border: 1px solid var(--sss-line-2); color: var(--sss-ink-2); border-radius: 0; padding: 8px 12px; }
.satnews-chip:hover { background: none; border-color: var(--sss-ink); color: var(--sss-ink); }
.satnews-chip.is-active { background: var(--sss-panel); border-color: var(--sss-ink); color: var(--sss-ink); }
/* view toggle */
.satnews-agenda__view-toggle { background: none; border: 1px solid var(--sss-line-2); border-radius: 0; padding: 0; margin-bottom: 40px; }
.satnews-agenda__view-button { font-family: var(--sss-mono); font-size: 11px; font-weight: 400; letter-spacing: .08em; text-transform: uppercase; color: var(--sss-mut); border-radius: 0; padding: 10px 18px; min-height: 40px; }
.satnews-agenda__view-button + .satnews-agenda__view-button { border-left: 1px solid var(--sss-line-2); }
.satnews-agenda__view-button:hover { color: var(--sss-ink); }
.satnews-agenda__view-button.is-active { background: var(--sss-red-surface); color: var(--sss-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(--sss-line-2); }
.satnews-agenda__day-title { font-size: 48px; font-weight: 700; font-stretch: 72%; text-transform: uppercase; line-height: .92; letter-spacing: -.005em; }
.satnews-agenda__day-count { font-family: var(--sss-mono); font-size: 12px; letter-spacing: .08em; text-transform: uppercase; color: var(--sss-red); padding-bottom: 4px; }
.satnews-agenda__day-toggle-icon { color: var(--sss-mut); padding-bottom: 4px; }
.satnews-agenda__entries { gap: 12px; }
/* cards */
.satnews-agenda-card { grid-template-columns: 120px minmax(0, 1fr) 180px; border-radius: 0; box-shadow: none; transition: background var(--sss-ease); }
.satnews-agenda-card:hover { box-shadow: none; background: var(--sss-deck); }
/* 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(--sss-red); }
.satnews-agenda-card[data-format="market-brief"] { --satnews-format-color: var(--sss-red-soft); }
.satnews-agenda-card[data-format="tech-brief"] { --satnews-format-color: var(--sss-ink-2); }
.satnews-agenda-card[data-format="partner-presentation"] { --satnews-format-color: var(--sss-mut); }
.satnews-agenda-card[data-format="networking"], .satnews-agenda-card[data-format="break"] { --satnews-format-color: var(--sss-line-2); }
.satnews-agenda-card--type-interlude { background: var(--sss-deck); border-left-color: var(--sss-line-2); }
.satnews-agenda-card--type-interlude:hover { background: var(--sss-deck); }
.satnews-agenda-card--type-mission_briefing { border-left-color: var(--sss-red); }
.satnews-agenda-card__time { font-family: var(--sss-mono); }
.satnews-agenda-card__time-start { font-size: 18px; font-weight: 500; color: var(--sss-ink); }
.satnews-agenda-card__time-end { font-size: 12px; color: var(--sss-mut); letter-spacing: .04em; margin-top: 4px; }
.satnews-agenda-card__type { font-family: var(--sss-mono); font-size: 11px; font-weight: 400; letter-spacing: .08em; color: var(--sss-red); margin-bottom: 8px; }
.satnews-agenda-card__title { font-family: var(--sss-display); font-size: 24px; font-weight: 700; font-stretch: 72%; text-transform: uppercase; line-height: 1; letter-spacing: -.005em; color: var(--sss-ink); margin: 0 0 14px; }
.satnews-agenda-card__title a:hover { text-decoration: none; color: var(--sss-red); }
.satnews-agenda-card__meta { font-family: var(--sss-mono); font-size: 12px; letter-spacing: .04em; color: var(--sss-mut); gap: 8px 16px; margin-bottom: 14px; }
.satnews-agenda-card__format-pill { font-family: var(--sss-mono); font-size: 11px; font-weight: 400; letter-spacing: .08em; background: none; color: var(--sss-ink-2); border: 1px solid var(--satnews-format-color, var(--sss-line-2)); border-radius: 0; padding: 4px 8px; }
.satnews-agenda-card[data-format="keynote"] .satnews-agenda-card__format-pill { border-color: var(--sss-red); color: var(--sss-red); }
/* 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(--sss-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; font-stretch: 100%; text-transform: none; letter-spacing: 0; line-height: 1.3; color: var(--sss-ink-2); }
.satnews-agenda-card[data-format="partner-presentation"] .satnews-agenda-card__time-start { font-size: 14px; font-weight: 400; color: var(--sss-mut); }
.satnews-agenda-card[data-format="partner-presentation"] .satnews-agenda-card__type { color: var(--sss-mut); }
.satnews-agenda-card[data-format="partner-presentation"] .satnews-agenda-card__format-pill { border-color: var(--sss-line-2); color: var(--sss-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(--sss-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(--sss-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: 0; background: var(--sss-panel); }
.satnews-agenda-card__speaker-photo-placeholder { font-family: var(--sss-display); font-stretch: 75%; font-weight: 700; font-size: 22px; color: var(--sss-ink); letter-spacing: -.02em; }
.satnews-agenda-card__speaker-info { gap: 4px; }
.satnews-agenda-card__speaker-name { font-size: 15px; font-weight: 600; color: var(--sss-ink); line-height: 1.3; }
.satnews-agenda-card__speaker-link:hover .satnews-agenda-card__speaker-name { color: var(--sss-red); }
.satnews-agenda-card__speaker-role, .satnews-agenda-card__speaker-role[data-role] { font-family: var(--sss-mono); font-size: 10px; font-weight: 400; letter-spacing: .08em; background: none; border: 1px solid var(--sss-line-2); color: var(--sss-ink-2); border-radius: 0; padding: 2px 6px; }
.satnews-agenda-card__speaker-role[data-role="keynote"], .satnews-agenda-card__speaker-role[data-role="moderator"] { border-color: var(--sss-red); color: var(--sss-red); }
.satnews-agenda-card__speaker-title-at, .satnews-agenda-card__speaker-company { font-size: 13px; color: var(--sss-mut); font-weight: 400; }
.satnews-agenda-card__speaker-company { color: var(--sss-ink-2); }
.satnews-agenda-card__presenter { color: var(--sss-ink); }
.satnews-agenda-card__presenter-title-at { color: var(--sss-mut); }
.satnews-agenda-card__qa-slot { background: var(--sss-panel); border-radius: 0; font-family: var(--sss-mono); font-size: 12px; }
.satnews-agenda-card__qa-eyebrow { color: var(--sss-red); }
.satnews-agenda-card__briefing-toggle { color: var(--sss-red); font-family: var(--sss-mono); font-size: 12px; letter-spacing: .06em; text-transform: uppercase; }
.satnews-agenda-card__paper-link { border-radius: 0; background: var(--sss-panel); }
.satnews-agenda-card__paper-link:hover { background: var(--sss-line-2); }
/* sponsor column: logos on light tiles */
.satnews-agenda-card__sponsor-eyebrow { font-family: var(--sss-mono); font-size: 11px; font-weight: 400; letter-spacing: .08em; color: var(--sss-mut); }
.satnews-agenda-card__sponsor-link { display: inline-flex; align-items: center; justify-content: center; background: var(--sss-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(--sss-ease), opacity var(--sss-ease); }
.satnews-agenda-card__sponsor-link:hover .satnews-agenda-card__sponsor-logo { filter: none; opacity: 1; }
.satnews-agenda-card__sponsor-name { color: var(--sss-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; font-stretch: 80%; color: var(--sss-ink-2); font-size: 20px; }
.satnews-agenda-card--type-announcement { background: var(--sss-panel); border: 1px solid var(--sss-line); border-left: 4px solid var(--sss-mut); border-radius: 0; padding: 16px 24px; }
.satnews-agenda-card__announcement-icon { display: none; }
.satnews-agenda-card__announcement-title { font-family: var(--sss-display); font-size: 20px; font-weight: 700; font-stretch: 75%; text-transform: uppercase; color: var(--sss-ink); line-height: 1; }
.satnews-agenda-card__announcement-text { color: var(--sss-mut); font-size: 14px; }
.satnews-agenda-card__announcement-time { font-family: var(--sss-mono); font-size: 14px; font-weight: 500; color: var(--sss-ink); }
/* swimlane */
.satnews-agenda__lane-header { background: var(--sss-deck); font-family: var(--sss-mono); font-size: 11px; letter-spacing: .08em; font-weight: 400; color: var(--sss-mut); border-bottom: 1px solid var(--sss-line-2); }
.satnews-agenda__time-marker { font-family: var(--sss-mono); font-size: 12px; font-weight: 400; color: var(--sss-mut); border-right: 1px dashed var(--sss-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(--sss-mono); font-size: 12px; letter-spacing: .08em; text-transform: uppercase; color: var(--sss-mut); }
@keyframes satnews-agenda-focus-pulse { 0% { box-shadow: 0 0 0 2px var(--sss-red); } 100% { box-shadow: 0 0 0 0 transparent; } }
/* editor + mobile */
@media (max-width: 782px) {
	.sss-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(--sss-line); }
	.satnews-agenda__filter-panel { background: var(--sss-deck); }
	.satnews-agenda__day-tab { min-height: 44px; }
}

/* --------------------------------------------------------------------------
   19. Editor canvas
   -------------------------------------------------------------------------- */
.editor-styles-wrapper { background: var(--sss-void); color: var(--sss-ink); }
.editor-styles-wrapper .sss-nav { position: static; }
.editor-styles-wrapper .sss-hero__in, .editor-styles-wrapper .sss-stats__in { min-height: 0; }

/* --------------------------------------------------------------------------
   20. Print (light, readable agenda)
   -------------------------------------------------------------------------- */
@media print {
	:root { --sss-void: #fff; --sss-deck: #fff; --sss-panel: #f3f4f6; --sss-line: #cfd3db; --sss-line-2: #b7bcc7; --sss-ink: #111; --sss-ink-2: #222; --sss-mut: #555; }
	body { background: #fff !important; color: #111 !important; font-size: 12pt; }
	.sss-tel, .sss-nav, .sss-cta, .sss-foot, .sss-bar, .sss-agenda__side, .sss-star, .sss-phead__bg, .sss-hero__r, .wp-block-buttons, .sss-jump, .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; }
	.sss-section, .sss-phead .sss-phead__in { padding: 24px 0; }
	.sss-phead h1 { font-size: 36pt; }
	.sss-agenda__body { display: block; padding-bottom: 0; }
	[data-day-panel][hidden] { display: block !important; }
	.sss-sess[hidden] { display: grid !important; }
	.sss-sess { grid-template-columns: 90px 1fr 140px; page-break-inside: avoid; padding: 10px 0; }
	.sss-sess h3 { font-size: 14pt; }
	.sss-dayhd { padding: 28px 0 8px; page-break-after: avoid; }
	.sss-dayhd h2 { font-size: 24pt; }
	.sss-type { border-color: #999; color: #333; }
	a { color: inherit; text-decoration: none; }
}

/* --------------------------------------------------------------------------
   21. Responsive
   -------------------------------------------------------------------------- */
@media (max-width: 1100px) {
	.sss-hide-md { display: none; }
	.sss-sess { grid-template-columns: 110px minmax(0, 1fr) 150px 44px; gap: 16px; }
	.sss-agenda__body { grid-template-columns: minmax(0, 1fr) 260px; gap: 40px; }
	.sss-faq { grid-template-columns: 200px minmax(0, 1fr); gap: 40px; }
}
@media (max-width: 900px) {
	:root { --sss-gutter: 20px; --sss-nav-h: 72px; --sss-logo-h: 40px; --sss-section-y: 64px; }
	.sss-nav .sss-nav__in { gap: 16px; }
	.sss-nav .wp-block-navigation__responsive-container-open { display: flex; }
	.sss-nav .wp-block-navigation .wp-block-navigation__responsive-container:not(.is-menu-open) { display: none; }
	.sss-nav__cta { margin-left: auto; }
	.sss-nav__cta .wp-block-button__link { padding: 12px 16px; font-size: 14px; min-height: 44px; }
	.sss-hero .sss-hero__in { grid-template-columns: 1fr; min-height: 0; }
	.sss-hero__l { border-right: 0; padding: 56px 0 48px; }
	.sss-hero__r { min-height: 300px; }
	.sss-hero__r::after { background: linear-gradient(180deg, var(--sss-void) 0, transparent 30%); }
	.sss-hero__r .sss-readout { display: none; }
	.sss-hero__l .sss-readout--strip:not([hidden]) { display: block; }
	.sss-stats .sss-stats__in, .sss-cells, .sss-x4, .sss-topics { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.sss-stat:nth-child(odd) { border-left: 0; padding-left: 0; }
	.sss-stat:nth-child(n+3) { border-top: 1px solid var(--sss-line); }
	.sss-split { grid-template-columns: 1fr; gap: 32px; }
	.sss-spw { grid-template-columns: repeat(3, minmax(0, 1fr)); } /* the shortcode sets --cols inline, so set the columns directly */
	.sss-mos { grid-auto-rows: 140px; }
	.sss-sess__meta { grid-column: 2; }
	.sss-agenda__body { grid-template-columns: 1fr; gap: 0; }
	.sss-side { position: static; padding-top: 40px; }
	.sss-bar .sss-w { flex-wrap: wrap; padding-top: 12px; padding-bottom: 12px; gap: 12px; }
	.sss-chips { margin-left: 0; }
	.sss-chips button { min-height: 44px; padding: 8px 14px; }
	.sss-star { width: 44px; height: 44px; }
	.sss-sess { grid-template-columns: 80px minmax(0, 1fr) 44px; }
	.sss-days button { padding: 8px 14px; }
	.sss-days button b { font-size: 16px; }
	.sss-dayhd { padding-top: 40px; }
	.sss-dayhd h2 { font-size: 40px; }
	.sss-faq { grid-template-columns: 1fr; gap: 24px; padding-top: 48px; padding-bottom: 64px; }
	.sss-cats { position: static; flex-direction: row; flex-wrap: wrap; border-left: 0; gap: 8px; }
	.sss-cats a { display: inline-flex; align-items: center; min-height: 44px; padding: 8px 14px; border: 1px solid var(--sss-line-2); font-family: var(--sss-mono); font-size: 12px; letter-spacing: .08em; text-transform: uppercase; }
	.sss-foot__cols { grid-template-columns: 1fr 1fr; }
	.sss-crumb a, .sss-foot__bot a { display: inline-block; padding: 12px 0; margin: -12px 0; }
	.sss-foot__brand { grid-column: span 2; }
	.sss-cta .sss-cta__in { flex-direction: column; align-items: flex-start; padding-top: 48px; padding-bottom: 48px; }
	.sss-cta h2 { font-size: 44px; }
	.sss-sh { flex-direction: column; align-items: flex-start; gap: 12px; margin-bottom: 32px; }
	.sss-pk, .sss-pass { min-height: 0; }
	.sss-form__grid { grid-template-columns: 1fr; }
	.sss-form__grid > .sss-form__full { grid-column: auto; }
	.sss-phead__bg { width: 70%; opacity: .35; }
	.sss-phead .sss-phead__in { padding-top: 48px; padding-bottom: 48px; }
	.sss-faq__item > :not(summary), .wp-block-details > :not(summary) { padding-right: 0; }
	.sss-kv { grid-template-columns: 120px minmax(0, 1fr); }
}
@media (max-width: 600px) {
	.sss-spw { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 560px) {
	.sss-cells, .sss-stats .sss-stats__in, .sss-x4, .sss-topics, .sss-foot__cols { grid-template-columns: 1fr; }
	.sss-foot__brand { grid-column: auto; }
	.sss-stat { border-left: 0; padding-left: 0; }
	.sss-stat + .sss-stat { border-top: 1px solid var(--sss-line); }
	.sss-mos { grid-template-columns: repeat(2, minmax(0, 1fr)); grid-auto-rows: 120px; }
	.sss-mos > * { grid-column: span 1 !important; grid-row: span 1 !important; }
	.sss-mos > :nth-child(1) { grid-column: span 2 !important; grid-row: span 2 !important; }
	.sss-mos > :last-child { grid-column: span 2 !important; } /* six tiles in two columns: the last one spans the row instead of sitting alone */
	.sss-mos > :nth-child(2):nth-last-child(2) { grid-column: span 2 !important; } /* three-tile mosaic: every tile full width */
	.sss-phead h1 { font-size: clamp(40px, 13vw, 64px); } /* long single words ("Presentations") must fit a 350px column */
	.sss-facts { gap: 20px 28px; }
	.sss-sess { grid-template-columns: 64px minmax(0, 1fr) 44px; gap: 12px; }
	.sss-sess__t small { display: none; }
	.sss-sess h3 { font-size: 21px; }
	.sss-price__v { font-size: 22px; }
	.sss-cmp th, .sss-cmp td { padding: 12px 8px; font-size: 14px; }
	.sss-day { padding: 20px; }
	.sss-cells > * { padding: 22px 20px; }
	.sss-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item__content { font-size: 32px; padding: 16px 0; }
	.sss-cta h2 { font-size: 40px; }
	.sss-why__n { font-size: 52px; }
}
