/* Hallmark · shape: kept · genre: modern-minimal · theme: Vantage (by request) · redesign: restyle
 * hero: kept · nav: kept, the search-led bar restyled with the threat level as a status chip · footer: kept, the wordmark set large over the links · imagery: none, the data is the picture · signature: the owner layouts in Vantage, lime only for exploited, live or the one primary action · vantage: terrain/steel
 * axes: dark/grotesk-sans/chromatic-lime · posture: restrained · contrast: pass · fold: pass · job: open the CVE feed · v2.0.0 */
/* Hallmark · pre-emit critique: P3 H4 E4 S3 R5 V3 · weakest: S, the owner keeps every layout, so the theme speaks through type, colour, rules and frames only */
/*
 * CyberAlert.io page sections, in the Vantage theme: blue-black paper, steel ink, Geologica, hairline frames
 * drawn at their corners, lime only for exploited, live or the one primary action.
 * Uses the tokens and component classes from the CyberAlert Child theme (tokens.css).
 * Divi's generated CSS (.et-db #et-boc .et-l …) scopes paddings and link colours very specifically on
 * custom post type and taxonomy pages, so section paddings and link colours carry !important where it wins.
 */

/* ─── shared ─────────────────────────────────────────────────────────────── */
.ca-section { padding: var(--space-2xl) var(--gutter); border-bottom: var(--rule-hair) solid var(--color-rule); }
.ca-section h1, .ca-section h2, .ca-page-head h1, .ca-card h3, .ca-contact-pitch h2 { padding: 0; }
.ca-section h2 { margin: 0; font-size: var(--text-section); line-height: 1.05; color: var(--color-ink); text-wrap: balance; }
.ca-section > .label, .ca-section-head .label { margin-bottom: var(--space-sm); }

.label.tone-acc, .label.tone-crit, .label.tone-high, .label.tone-info { color: var(--color-muted); }

.ca-muted { color: var(--color-muted); font-size: var(--text-xs); }
.ca-flex, .ca-spacer { flex: 1; }
.ca-empty { margin: 0; padding: var(--space-lg) 0; color: var(--color-muted); font-size: var(--text-sm); }
.ca-vrule { display: inline-block; width: 1px; height: 12px; background: var(--color-rule); }
.ca-vrule.tall { height: 32px; }

a.btn { text-decoration: none; }
a.btn, a.btn:hover { color: var(--color-ink); }
a.btn.primary, a.btn.primary:hover { color: var(--color-accent-ink); }
a.tab { display: inline-flex; text-decoration: none; }
a.tab, a.tab:hover, a.tab.active { color: var(--color-muted); }
a.tab:hover, a.tab.active { color: var(--color-ink); }

/* Lists inside Divi's content area get bullets and padding; ours don't. */
#main-content .ca-conf-list,
#main-content .ca-checks,
#main-content .ca-refs { list-style: none; margin: 0; padding: 0; line-height: inherit; }

/* ─── inner page header ───────────────────────────────────────────────── */
.ca-page-head { position: relative; padding: var(--space-2xl) var(--gutter) var(--space-xl); border-bottom: var(--rule-hair) solid var(--color-rule); }
.ca-eyebrow { display: none; }
.ca-page-head-row { display: flex; align-items: flex-end; justify-content: space-between; gap: var(--space-lg); }
.ca-page-head h1 { margin: 0; font-size: var(--text-display-s); line-height: 1; color: var(--color-ink); }
.ca-page-head p { max-width: 60ch; margin: var(--space-md) 0 0; padding: 0; font-size: var(--text-lead); line-height: 1.45; color: var(--color-ink-2); }
.ca-page-actions { display: flex; gap: var(--space-xs); flex-shrink: 0; }
.ca-filter-tabs { display: flex; flex-wrap: wrap; gap: var(--space-2xs); margin-top: var(--space-lg); }
.ca-tab-gap { width: var(--space-md); }

/* ─── home: most urgent ([ca_urgent_cve], not on the page now) ───────── */
.ca-urgent { padding: var(--space-2xl) var(--gutter); }
.ca-urgent-grid { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: var(--space-2xl); align-items: end; }
.ca-urgent-main { max-width: 820px; }
.ca-urgent-eyebrow { display: flex; align-items: center; gap: var(--space-sm); margin-bottom: var(--space-lg); }
.ca-urgent-eyebrow .label { margin: 0; }
.ca-urgent-eyebrow time { font-size: var(--text-sm); color: var(--color-muted); }
.ca-urgent-id { margin-bottom: var(--space-sm); font-size: var(--text-sm); color: var(--color-muted); }
.ca-urgent-title { margin: 0; font-size: var(--text-display-s); line-height: 1.02; color: var(--color-ink); overflow-wrap: break-word; }
.ca-urgent-title span { color: var(--color-muted); }
.ca-urgent.is-empty h1 { margin: var(--space-sm) 0 0; font-size: var(--text-section); }
.ca-facts { display: flex; flex-wrap: wrap; align-items: center; gap: var(--space-lg); margin-top: var(--space-xl); padding-top: var(--space-lg); border-top: var(--rule-hair) solid var(--color-rule); }
.ca-fact .label { margin-bottom: var(--space-xs); }
.ca-fact-value { font-size: var(--text-lg); font-weight: 400; color: var(--color-ink); }
.ca-fact-value.tone-crit { color: var(--color-crit); }
.ca-fact-value.tone-high { color: var(--color-high); }
.ca-fact-value.tone-med { color: var(--color-med); }
.ca-fact-value.tone-low { color: var(--color-low); }
.ca-urgent-actions { display: flex; flex-direction: column; gap: var(--space-sm); flex-shrink: 0; }
.ca-urgent-actions .btn { min-width: 200px; }

/* ─── home: where defenders gather ─────────────────────────────────── */
.ca-section-head { display: flex; align-items: baseline; justify-content: space-between; gap: var(--space-xl); margin-bottom: var(--space-xl); }
.ca-see-all { font-size: var(--text-sm); white-space: nowrap; }
.ca-gather-grid { display: grid; grid-template-columns: minmax(0, 1fr) 360px; gap: var(--space-2xl); align-items: start; }
.ca-map-card { padding: var(--space-lg); }
.ca-next > .label { margin-bottom: var(--space-md); }

/* The whole row opens the event page, not just the name. */
.ca-conf-row { position: relative; cursor: pointer; transition: background-color var(--dur-short) var(--ease-out); }
.ca-conf-name::after { content: ''; position: absolute; inset: 0; }
.ca-conf-row:hover, .ca-conf-row.is-active { background: var(--color-paper-2); }
.ca-conf-date .m, .ca-conf-date .d { display: block; font-variant-numeric: tabular-nums; }
.ca-conf-name { font-size: var(--text-md); font-weight: 400; letter-spacing: 0; color: var(--color-ink); text-decoration: none; }
.ca-conf-name:hover { color: var(--color-ink); text-decoration: underline; text-decoration-color: var(--color-rule-2); }
.ca-conf-name:focus-visible { outline: 2px solid var(--color-focus); outline-offset: 2px; }
.ca-conf-place { margin-top: var(--space-2xs); font-size: var(--text-sm); color: var(--color-muted); }

.ca-conf-list.is-home .ca-conf-row { display: grid; grid-template-columns: 56px minmax(0, 1fr); gap: var(--space-md); padding: var(--space-md) var(--space-2xs); border-top: var(--rule-hair) solid var(--color-rule); }
.is-home .ca-conf-date .m { padding-top: var(--space-3xs); font-size: var(--text-sm); color: var(--color-ink); }
.is-home .ca-conf-date .d { margin-top: var(--space-3xs); font-size: var(--text-sm); color: var(--color-muted); }

.ca-conf-list.is-atlas .ca-conf-row { display: grid; grid-template-columns: 44px minmax(0, 1fr) auto; gap: var(--space-sm); align-items: center; padding: var(--space-sm) var(--space-md); border-bottom: var(--rule-hair) solid var(--color-rule-soft); }
.is-atlas .ca-conf-date { display: flex; flex-direction: column-reverse; text-align: center; line-height: 1.2; }
.is-atlas .ca-conf-date .d { font-size: var(--text-md); font-weight: 400; color: var(--color-ink); }
.is-atlas .ca-conf-date .m { font-size: var(--text-2xs); color: var(--color-muted); }
.is-atlas .ca-conf-name { font-size: var(--text-sm); }
.is-atlas .ca-conf-place { display: flex; align-items: center; gap: var(--space-xs); margin-top: var(--space-3xs); font-size: var(--text-xs); }
.ca-tier-dot { display: none; }
.is-atlas .chip { font-size: var(--text-2xs); }

/* ─── world map: land as points, events as steel points, the live ones lime ─── */
.ca-map { position: relative; width: 100%; height: var(--ca-map-h, 400px); }
.ca-map-svg { position: absolute; inset: 0; width: 100%; height: 100%; overflow: visible; }
.ca-map-svg > rect { display: none; }
.ca-map-dots { fill: none; stroke: var(--point-lo); stroke-width: 0.46; stroke-linecap: round; }
.ca-pin { cursor: pointer; outline: none; }
.ca-pin .halo { fill: none; stroke: var(--point-hi); stroke-width: 0.12; opacity: 0; transition: opacity var(--dur-short) var(--ease-out); }
.ca-pin .core { fill: var(--point-mid); animation: none !important; transition: fill var(--dur-short) var(--ease-out); }
.ca-pin.is-major .core { fill: var(--point-hi); }
.ca-pin:hover .halo, .ca-pin:focus-visible .halo, .ca-pin.is-active .halo { opacity: 1; }
.ca-pin:hover .core, .ca-pin:focus-visible .core, .ca-pin.is-active .core { fill: var(--color-ink); }
.ca-pin:focus-visible .halo { stroke: var(--color-focus); stroke-width: 0.25; }
.ca-map-tip { position: absolute; z-index: var(--z-tooltip); width: 260px; padding: var(--space-md); background: var(--color-paper-2); border: var(--rule-hair) solid var(--color-field-edge); border-radius: var(--radius-card); }
.ca-map-tip[hidden] { display: none; }
.ca-map-tip .t-name { font-size: var(--text-md); font-weight: 400; color: var(--color-ink); }
.ca-map-tip .t-meta { margin-top: var(--space-2xs); font-size: var(--text-sm); color: var(--color-muted); }
.ca-map-tip .t-tags { display: flex; flex-wrap: wrap; gap: var(--space-2xs); margin-top: var(--space-sm); }
.ca-map-tip .chip { font-size: var(--text-2xs); }
.ca-map-tip .lnk { display: inline-block; margin-top: var(--space-sm); font-size: var(--text-sm); }

/* ─── home: network health (old block, not on the page now) ─────────── */
.ca-health { padding: var(--space-2xl) var(--gutter); border-bottom: 0; }
.ca-health h2 { margin: 0 0 var(--space-xl); }
.ca-bigstats { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); }
.ca-bigstat { display: flex; flex-direction: column; justify-content: center; gap: var(--space-sm); min-height: 200px; padding: var(--space-xl) var(--space-lg); border-left: var(--rule-hair) solid var(--color-rule); }
.ca-bigstat:first-child { padding-left: 0; border-left: 0; }
.ca-bigstat-label { display: flex; align-items: center; gap: var(--space-sm); }
.ca-bigstat .stat-num { margin-top: var(--space-2xs); font-size: var(--text-display); font-weight: 200; line-height: 1; letter-spacing: -0.04em; }
.ca-bigstat-sub { margin-top: var(--space-xs); font-size: var(--text-sm); color: var(--color-muted); }

/* ─── CVE feed (an app screen: dense, controls 36 to 40px) ─────────── */
.ca-feed-heat { margin: var(--space-xl) var(--gutter) 0; }
.ca-card-h { flex-wrap: wrap; }
.ca-card-h .ca-muted { font-size: var(--text-sm); }
/* top vendors × days, weeks or months: steel, brighter for more CVEs */
.ca-vt { display: grid; gap: var(--space-2xs); padding: var(--space-lg); overflow-x: auto; }
.ca-vt-row { display: grid; grid-template-columns: 150px repeat(var(--cols), minmax(30px, 1fr)) 52px; gap: var(--space-2xs); align-items: center; min-width: calc(206px + var(--cols) * 34px); }
.ca-vt-head span { font-size: var(--text-2xs); text-align: center; white-space: nowrap; color: var(--color-muted); }
.ca-vt-head span:first-child { text-align: left; }
#main-content a.ca-vt-vendor { overflow: clip; font-size: var(--text-sm); color: var(--color-ink-2); text-decoration: none; text-overflow: ellipsis; white-space: nowrap; }
#main-content a.ca-vt-vendor:hover, #main-content a.ca-vt-vendor.is-active { color: var(--color-ink); text-decoration: underline; text-decoration-color: var(--color-accent); }
.ca-vt-cell { display: flex; align-items: center; justify-content: center; height: 28px; font-size: var(--text-xs); color: var(--color-ink); background: color-mix(in oklch, var(--point-mid) var(--mix, 40%), var(--color-paper-2)); border-radius: 2px; cursor: default; }
.ca-vt-cell.is-empty { background: var(--color-paper-2); }
.ca-vt-total { font-size: var(--text-sm); text-align: right; color: var(--color-ink-2); }

.ca-feed-body { display: grid; grid-template-columns: 240px minmax(0, 1fr); margin-top: var(--space-xl); border-top: var(--rule-hair) solid var(--color-rule); }
.ca-facets { padding: var(--space-lg) var(--space-lg) var(--space-lg) var(--gutter); border-right: var(--rule-hair) solid var(--color-rule); }
.ca-facets-drawer > summary { display: none; }
.ca-facets fieldset { min-width: 0; margin: 0 0 var(--space-lg); padding: 0; border: 0; }
.ca-facets legend { margin-bottom: var(--space-xs); padding: 0; }
.ca-facets label { display: flex; align-items: center; gap: var(--space-xs); min-height: 32px; padding: 0; font-size: var(--text-sm); color: var(--color-ink-2); cursor: pointer; }
.ca-facets input[type="checkbox"] { width: 16px; height: 16px; margin: 0; accent-color: var(--color-accent); }
.ca-facets label[hidden] { display: none; }
.ca-facets input[type="search"] { width: 100%; height: 44px; padding: 0 var(--space-sm); font: 300 var(--text-sm) var(--font-body); color: var(--color-ink); caret-color: var(--color-accent); background: var(--color-paper-2); border: var(--rule-hair) solid var(--color-field-edge); border-radius: var(--radius-card); outline: 2px solid transparent; outline-offset: -1px; }
.ca-facets input[type="search"]:focus { outline-color: var(--color-focus); }
.ca-facets input[type="search"]::placeholder { color: var(--color-muted); }
.ca-facets .ca-feed-q { display: block; margin-bottom: var(--space-lg); padding: 0; }
.ca-facets .ca-vendor-search { margin-bottom: var(--space-xs); }
.ca-vendor-none { margin: var(--space-xs) 0; font-size: var(--text-sm); }
button.ca-vendor-more { min-height: 32px; padding: 0; font: 400 var(--text-sm) var(--font-body); color: var(--color-ink); text-decoration: underline; text-decoration-color: var(--color-rule-2); text-underline-offset: 0.2em; background: none; border: 0; cursor: pointer; }
button.ca-vendor-more:hover { text-decoration-color: var(--color-accent); }
button.ca-vendor-more:focus-visible { outline: 2px solid var(--color-focus); outline-offset: 2px; }
.ca-newly { display: grid; gap: var(--space-3xs); margin-top: var(--space-sm); }
.ca-newly .label { margin-bottom: var(--space-2xs); font-size: var(--text-xs); }
#main-content a.ca-newly-link { display: flex; align-items: center; gap: var(--space-xs); min-height: 32px; padding: 0 var(--space-xs); margin: 0 calc(-1 * var(--space-xs)); font-size: var(--text-sm); color: var(--color-ink-2); text-decoration: none; border-radius: var(--radius-card); }
#main-content a.ca-newly-link span:first-child { flex: 1; }
#main-content a.ca-newly-link:hover { background: var(--color-paper-2); }
#main-content a.ca-newly-link.is-active { color: var(--color-ink); background: var(--color-accent-soft); }
.ca-more > summary { min-height: 32px; padding: var(--space-2xs) 0; font-size: var(--text-sm); cursor: pointer; list-style: none; }
.ca-more > summary::-webkit-details-marker { display: none; }
.ca-more[open] > summary { display: none; }

.ca-toolbar { display: flex; flex-wrap: wrap; align-items: center; gap: var(--space-sm); padding: var(--space-md) var(--gutter) var(--space-md) var(--space-lg); border-bottom: var(--rule-hair) solid var(--color-rule); }
.ca-results { font-size: var(--text-sm); color: var(--color-muted); }
.ca-results .stat-num { color: var(--color-ink); }
a.ca-chip-remove { color: var(--color-ink-2); text-decoration: none; }
a.ca-chip-remove:hover { color: var(--color-ink); border-color: var(--color-field-edge); }
.ca-sorts { display: inline-flex; flex-wrap: wrap; align-items: center; gap: var(--space-2xs); }
/* the list: score, headline with its meta line, flags */
#main-content .ca-cve-row { display: grid; grid-template-columns: 64px minmax(0, 1fr) auto; gap: var(--space-2xs) var(--space-md); align-items: center; padding: var(--space-md) var(--gutter) var(--space-md) var(--space-lg); color: inherit; text-decoration: none; border-bottom: var(--rule-hair) solid var(--color-rule-soft); transition: background-color var(--dur-short) var(--ease-out); }
#main-content .ca-cve-row:hover { color: inherit; background: var(--color-paper-2); }
#main-content .ca-cve-row:focus-visible { outline: 2px solid var(--color-focus); outline-offset: -2px; }
.ca-cve-score .sev { min-width: 52px; justify-content: center; }
.ca-cve-main { display: grid; gap: var(--space-2xs); min-width: 0; }
.ca-cve-headline { font-size: var(--text-md); line-height: 1.4; color: var(--color-ink-2); overflow-wrap: break-word; }
.ca-cve-headline b { font-weight: 400; color: var(--color-ink); }
.ca-cve-meta { overflow: clip; font-size: var(--text-xs); color: var(--color-muted); text-overflow: ellipsis; white-space: nowrap; }
.ca-cve-meta span + span { margin-left: var(--space-sm); padding-left: var(--space-sm); border-left: var(--rule-hair) solid var(--color-rule-2); }
.ca-cve-flags { display: flex; flex-direction: column; align-items: flex-end; gap: var(--space-xs); }
.ca-epss { padding: var(--space-3xs) var(--space-xs); font-size: var(--text-xs); white-space: nowrap; color: var(--color-muted); border: var(--rule-hair) solid var(--color-rule-2); border-radius: var(--radius-card); }
.ca-epss.is-high { color: var(--color-ink); border-color: var(--color-field-edge); }
/* exploited: the found signal, lime */
.ca-kev { display: inline-flex; align-items: center; font-size: var(--text-xs); font-weight: 400; color: var(--color-accent); }
.ca-none { font-size: var(--text-xs); color: var(--color-muted); }
.ca-cve-age { font-size: var(--text-xs); color: var(--color-muted); }
.ca-pager { display: flex; align-items: center; justify-content: center; gap: var(--space-md); padding: var(--space-lg); }

/* single CVE page (old list of details) */
.ca-cve-details { display: grid; grid-template-columns: repeat(auto-fill, minmax(180px, 1fr)); margin: 0 0 var(--space-xl); border-top: var(--rule-hair) solid var(--color-rule); }
.ca-cve-details > div { padding: var(--space-md) 0; border-bottom: var(--rule-hair) solid var(--color-rule); }
.ca-cve-details dt { margin-bottom: var(--space-xs); }
.ca-cve-details dd { margin: 0; font-size: var(--text-md); color: var(--color-ink); }
.ca-refs-title { margin-top: var(--space-xl); font-size: var(--text-title); }
#main-content .ca-refs li { padding: var(--space-xs) 0; border-top: var(--rule-hair) solid var(--color-rule-soft); font-size: var(--text-md); }

/* ─── conferences page (an app screen): filters, full-width map, timeline, list ─── */
.ca-atlas-band { position: relative; border-bottom: var(--rule-hair) solid var(--color-rule); }
.ca-atlas-band:last-child { border-bottom: 0; }
.ca-atlas-map-inner { position: relative; max-width: var(--container); margin: 0 auto; padding: var(--space-xl) var(--gutter); }
.ca-map.is-fit { height: auto; aspect-ratio: 100 / var(--ca-map-ratio, 38.5); }
.ca-legend { display: flex; flex-wrap: wrap; align-items: center; gap: var(--space-xs) var(--space-lg); margin-top: var(--space-md); font-size: var(--text-sm); color: var(--color-muted); }
.ca-legend > span { display: flex; align-items: center; gap: var(--space-xs); }
.ca-legend-dot { width: 6px; height: 6px; border-radius: 50%; background: var(--point-mid); }
.ca-legend-dot.is-major { width: 8px; height: 8px; background: var(--point-hi); }
.ca-legend-count { display: inline-grid; place-items: center; width: 16px; height: 16px; line-height: 1; border-radius: 50%; font-size: var(--text-2xs); font-weight: 400; color: var(--color-paper); background: var(--color-ink-2); }
.ca-pin-count circle { fill: var(--color-ink-2); }
.ca-pin-count text { fill: var(--color-paper); font-family: var(--font-body); font-weight: 400; text-anchor: middle; dominant-baseline: central; pointer-events: none; }
.ca-map-tip .t-item + .t-item { margin-top: var(--space-sm); padding-top: var(--space-sm); border-top: var(--rule-hair) solid var(--color-rule); }
/* tabs with counts; a tab that would show nothing fades */
.ca-filter-tabs .tab .n { margin-left: var(--space-2xs); font-size: var(--text-xs); color: var(--color-muted); }
.ca-filter-tabs .tab.active .n { color: var(--color-ink-2); }
.ca-filter-tabs .tab.is-empty { opacity: 0.55; }
.ca-tab-set { display: contents; }
.ca-tab-set + .ca-tab-set::before { content: ''; width: 1px; margin: var(--space-2xs) var(--space-xs); background: var(--color-rule); }
/* timeline: a lane per region, a bar per event */
.ca-timeline { max-width: var(--container); margin: 0 auto; padding: var(--space-xl) var(--gutter) var(--space-2xl); }
.ca-band-head { display: flex; flex-wrap: wrap; align-items: center; gap: var(--space-xs) var(--space-sm); margin-bottom: var(--space-md); }
.ca-tl-key { display: inline-flex; align-items: center; gap: var(--space-xs); font-size: var(--text-sm); color: var(--color-muted); }
.ca-tl-key i { width: 14px; height: 6px; border-radius: 1px; background: var(--point-lo); }
.ca-tl-key i:not(:first-child) { margin-left: var(--space-xs); }
.ca-tl-key i.is-major { background: var(--point-hi); }
.ca-tl { --tl-name: 240px; --tl-gap: var(--space-md); }
.ca-tl-scale { padding-left: calc(var(--tl-name) + var(--tl-gap)); }
.ca-tl-axis { position: relative; height: 20px; }
.ca-tl-month { position: absolute; top: 0; padding-left: var(--space-2xs); font-size: var(--text-2xs); color: var(--color-muted); white-space: nowrap; }
.ca-tl-month .y { color: var(--color-muted); }
.ca-tl-body { position: relative; }
.ca-tl-grid { position: absolute; top: 0; bottom: 0; left: calc(var(--tl-name) + var(--tl-gap)); right: 0; pointer-events: none; }
.ca-tl-line { position: absolute; top: 0; bottom: 0; width: 1px; background: var(--color-rule-soft); }
.ca-tl-today { position: absolute; top: -20px; bottom: 0; border-left: var(--rule-hair) solid var(--color-accent); }
.ca-tl-today .mono { position: absolute; bottom: -20px; left: -14px; font-size: var(--text-2xs); color: var(--color-accent); }
.ca-tl-lane { position: relative; padding: var(--space-2xs) 0 var(--space-xs); border-top: var(--rule-hair) solid var(--color-rule); }
.ca-tl-lane-name { padding: var(--space-xs) 0 var(--space-2xs); font-size: var(--text-sm); color: var(--color-muted); }
.ca-tl-row { display: grid; grid-template-columns: var(--tl-name) minmax(0, 1fr); gap: var(--tl-gap); align-items: center; min-height: 28px; }
#main-content .ca-tl-name { overflow: clip; font-size: var(--text-sm); color: var(--color-ink-2); text-decoration: none; text-overflow: ellipsis; white-space: nowrap; }
#main-content .ca-tl-row.is-major .ca-tl-name { color: var(--color-ink); }
#main-content .ca-tl-row:hover .ca-tl-name { text-decoration: underline; text-decoration-color: var(--color-rule-2); }
.ca-tl-track { position: relative; height: 8px; }
.ca-tl-bar { position: absolute; top: 0; height: 100%; min-width: 6px; border-radius: 1px; background: var(--point-lo); transition: background-color var(--dur-short) var(--ease-out); }
.ca-tl-row.is-major .ca-tl-bar { background: var(--point-hi); }
.ca-tl-row:hover .ca-tl-bar { background: var(--color-ink); }
/* the list: two columns of events with countdown, delegates and focus */
.ca-atlas-list-head { display: flex; flex-wrap: wrap; align-items: center; gap: var(--space-sm); max-width: var(--container); margin: 0 auto; padding: var(--space-lg) var(--gutter); }
#main-content .ca-conferences .ca-conf-list.is-atlas { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: var(--gap-columns); max-width: var(--container); margin: 0 auto; padding: 0 var(--gutter) var(--space-2xl); }
.ca-conferences .ca-conf-list.is-atlas .ca-conf-row { grid-template-columns: 48px minmax(0, 1fr) auto; align-items: start; padding: var(--space-md) var(--space-2xs); border-top: var(--rule-hair) solid var(--color-rule); border-bottom: 0; }
.ca-conferences .is-atlas .ca-conf-date { padding-top: var(--space-3xs); }
.ca-conferences .is-atlas .ca-conf-date .d { font-size: var(--text-lg); font-weight: 300; }
.ca-conferences .is-atlas .ca-conf-name { font-size: var(--text-md); }
.ca-conferences .is-atlas .ca-conf-place { font-size: var(--text-sm); }
.ca-conf-tags { display: flex; flex-wrap: wrap; gap: var(--space-2xs); margin-top: var(--space-xs); }
.ca-conf-tags .chip { font-size: var(--text-2xs); }
.ca-conferences .ca-region-empty { padding: var(--space-lg) var(--gutter); }

/* ─── contact ([ca_contact], not on the page now) ───────────────────── */
.ca-contact { padding: var(--space-lg); }
.ca-contact-card { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.2fr); gap: var(--space-2xl); padding: var(--space-xl); }
.ca-contact-pitch h2 { margin: var(--space-sm) 0; font-size: var(--text-section); line-height: 1.05; color: var(--color-ink); }
.ca-contact-pitch p { padding: 0; font-size: var(--text-md); color: var(--color-ink-2); }
#main-content .ca-checks { display: grid; gap: var(--space-sm); margin-top: var(--space-lg); }
.ca-checks li { display: flex; align-items: flex-start; gap: var(--space-sm); font-size: var(--text-md); color: var(--color-ink-2); }
.ca-checks svg { flex-shrink: 0; margin-top: var(--space-2xs); color: var(--color-ink); }
.ca-form { position: relative; display: grid; gap: var(--space-md); }
.ca-form-row { display: grid; gap: var(--space-xs); min-width: 0; margin: 0; padding: 0; border: 0; }
.ca-form label, .ca-form legend { padding: 0; font-size: var(--text-sm); font-weight: 400; color: var(--color-ink-2); }
.ca-form legend { margin-bottom: var(--space-xs); }
.ca-form input[type="text"], .ca-form input[type="email"], .ca-form textarea { width: 100%; min-height: 48px; padding: var(--space-sm) var(--space-md); font: 300 var(--text-md) var(--font-body); color: var(--color-ink); caret-color: var(--color-accent); background: var(--color-paper-2); border: var(--rule-hair) solid var(--color-field-edge); border-radius: var(--radius-card); outline: 2px solid transparent; outline-offset: -1px; }
.ca-form input:focus, .ca-form textarea:focus { outline-color: var(--color-focus); }
.ca-pills { display: flex; flex-wrap: wrap; gap: var(--space-xs); }
.ca-pill { position: relative; }
.ca-pill input { position: absolute; width: 1px; height: 1px; opacity: 0; pointer-events: none; }
.ca-pill span { display: inline-flex; align-items: center; min-height: 40px; padding: 0 var(--space-md); font-size: var(--text-sm); color: var(--color-ink-2); background: transparent; border: var(--rule-hair) solid var(--color-rule-2); border-radius: var(--radius-pill); cursor: pointer; transition: background-color var(--dur-short) var(--ease-out), color var(--dur-short) var(--ease-out); }
.ca-pill span:hover { color: var(--color-ink); background: var(--color-paper-3); }
.ca-pill input:checked + span { color: var(--color-ink); background: var(--color-paper-3); border-color: var(--color-field-edge); }
.ca-pill input:focus-visible + span { outline: 2px solid var(--color-focus); outline-offset: 2px; }
.ca-form-foot { display: flex; flex-wrap: wrap; align-items: center; gap: var(--space-md); }
.ca-form-foot .ca-muted { font-size: var(--text-sm); }
.ca-hp { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: clip; }
.ca-notice { margin: 0; padding: var(--space-sm) var(--space-md); font-size: var(--text-sm); border: var(--rule-hair) solid; border-radius: var(--radius-card); }
.ca-notice.tone-low { color: var(--color-ink); border-color: var(--color-accent-line); }
.ca-notice.tone-high { color: var(--color-high); border-color: var(--color-high); }

/* ─── pages built from Divi modules ─────────────────────────────────
   Sections, rows, columns and modules carry these classes in Advanced → CSS Class,
   so their text stays editable in the Divi builder while the look comes from here.
   Every row sits in one centred container, 1440px at most. */
body .et_pb_section.ca-dsec { padding: 0 !important; background-color: var(--color-paper) !important; border-bottom: var(--rule-hair) solid var(--color-rule); }
body .et_pb_section.ca-dsec.is-last { border-bottom: 0; }
body .ca-dsec .et_pb_row { width: 100%; max-width: var(--container); margin: 0 auto; }
body .ca-dsec .et_pb_row.ca-drow { padding: calc(var(--section-gap) / 2) var(--gutter); column-gap: var(--gap-columns); row-gap: var(--space-xl); }
body .ca-dsec .et_pb_row.ca-drow-flush { max-width: none; padding: 0; }
body .ca-dsec .et_pb_row.ca-rowhead { padding-bottom: 0; align-items: flex-end; }
body .ca-dsec .et_pb_row.ca-rowhead + .et_pb_row { padding-top: var(--space-2xl); }
/* the heading row's own padding sets the space to the content; Divi's section gap would add 60px */
body .et_pb_section.ca-dsec:has(> .ca-rowhead) { row-gap: 0; }
body .ca-dsec .et_pb_row.ca-pagehead { padding: var(--space-3xl) var(--gutter) var(--space-xl); align-items: flex-end; }
body .ca-dsec .et_pb_column,
body .ca-dsec .et_pb_module { margin-bottom: 0; }
body .ca-dsec .et_pb_text { color: var(--color-ink-2); }
body .ca-dsec .et_pb_text p { padding-bottom: 0; }
body .ca-dsec .ca-section { border-bottom: 0; }

body .ca-dsec .et_pb_text.label { margin-bottom: var(--space-sm); }
body .ca-dsec .et_pb_text.ca-section-label { font-size: var(--text-sm); }
body .ca-dsec .ca-col-end { align-items: flex-end; justify-content: flex-end; }
body .ca-dsec .ca-actions { flex-direction: row !important; flex-wrap: wrap; align-items: flex-end; gap: var(--space-xs); }
body .ca-dsec .ca-actions .et_pb_button_module_wrapper { width: auto; }
body .ca-dsec .ca-see-all-text { font-size: var(--text-md); white-space: nowrap; }
body .ca-dsec .ca-see-all-text a { color: var(--color-ink) !important; text-decoration: underline; text-decoration-color: var(--color-rule-2); text-underline-offset: 0.2em; }
body .ca-dsec .ca-see-all-text a:hover { text-decoration-color: var(--color-accent); }
body .ca-dsec .et_pb_heading .et_pb_module_header { margin: 0; padding: 0; font-weight: var(--display-weight); color: var(--color-ink); }
body .ca-dsec .ca-h1 .et_pb_module_header { font-size: var(--text-display-s); line-height: 1; letter-spacing: var(--tracking-display); }
body .ca-dsec .ca-h2 .et_pb_module_header { font-size: var(--text-section); line-height: 1.02; letter-spacing: var(--tracking-display); }
body .ca-dsec .ca-h3 .et_pb_module_header { margin: 0 0 var(--space-md); font-size: var(--text-2xl); line-height: 1.1; letter-spacing: -0.025em; }
body .ca-dsec .ca-eyebrow,
body .ca-dsec .ca-contact-pitch .ca-section-label,
body .ca-dsec .ca-apply-pitch .ca-section-label,
body .ca-dsec .ca-rowhead .ca-section-label { display: none; }
body .ca-dsec .ca-desc { max-width: 60ch; margin-top: var(--space-md); font-size: var(--text-lead); line-height: 1.45; color: var(--color-ink-2); }
body .ca-dsec .et_pb_button_module_wrapper { margin: 0; }

/* home: map and next-up list */
body .ca-dsec .ca-map-card { align-self: flex-start; }
body .ca-dsec .ca-next-label { margin-bottom: var(--space-md); }

/* contact: pitch beside Divi's contact form */
body .ca-dsec .et_pb_row.ca-contact-row { align-self: stretch; }
body .ca-dsec .ca-checklist p { font-size: var(--text-md); color: var(--color-ink-2); }
body .ca-dsec .ca-checklist ul { display: grid; gap: var(--space-sm); margin: var(--space-lg) 0 0; padding: 0; list-style: none; line-height: 1.55; }
body .ca-dsec .ca-checklist li { display: flex; gap: var(--space-sm); padding-top: var(--space-sm); font-size: var(--text-md); color: var(--color-ink-2); border-top: var(--rule-hair) solid var(--color-rule); }
body .ca-dsec .ca-checklist li::before { content: ''; flex: 0 0 16px; height: 16px; margin-top: var(--space-2xs); background: var(--color-muted); -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12.5l4.5 4.5L19 7.5'/%3E%3C/svg%3E") center / contain no-repeat; mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12.5l4.5 4.5L19 7.5'/%3E%3C/svg%3E") center / contain no-repeat; }
body .ca-form .et_pb_contact_main_title:empty { display: none; }
body .ca-form .et_pb_contact_field { margin-bottom: var(--space-sm); }
body .ca-form .et_pb_contact_field label, body .ca-form .et_pb_contact_form_label { font-size: var(--text-sm); color: var(--color-ink-2); }
body .ca-form .et_pb_contact_captcha_question, body .ca-form .et-pb-contact-message { color: var(--color-ink-2); }
body .ca-form input::placeholder, body .ca-form textarea::placeholder { color: var(--color-muted); }

/* conferences: filter bar above the map */
.ca-filter-bar { max-width: var(--container); margin: 0 auto; padding: var(--space-md) var(--gutter); }
.ca-filter-bar .ca-filter-tabs { margin-top: 0; }

@media (max-width: 980px) {
  body .ca-dsec .ca-col-end { align-items: flex-start; }
  body .ca-dsec .ca-actions { justify-content: flex-start; }
}
@media (max-width: 767px) {
  body .ca-dsec .et_pb_row.ca-drow { padding-block: var(--space-2xl); }
  body .ca-dsec .et_pb_row.ca-rowhead { padding-bottom: 0; }
  body .ca-dsec .et_pb_row.ca-rowhead + .et_pb_row { padding-top: var(--space-xl); }
  body .ca-dsec .et_pb_row.ca-pagehead { padding: var(--space-2xl) var(--gutter) var(--space-lg); }
}

/* ─── CVE pages (Divi Theme Builder template "CVE pages") ──────────── */
body .ca-dsec .et_pb_row.ca-cve-hero-row { padding: var(--space-xl) var(--gutter) var(--space-3xl) !important; }
body .ca-dsec .et_pb_row.ca-cve-facts-row { padding: var(--space-3xl) var(--gutter) 0 !important; }
body .ca-dsec .et_pb_row.ca-cve-body-row { padding: var(--section-gap-s) var(--gutter) var(--space-3xl) !important; }

.ca-crumbs { display: flex; flex-wrap: wrap; align-items: center; gap: var(--space-xs); margin-bottom: var(--space-2xl); font-size: var(--text-sm); color: var(--color-muted); }
.ca-crumbs a { color: var(--color-muted) !important; text-decoration: none; }
.ca-crumbs a:hover { color: var(--color-ink) !important; text-decoration: underline; }
.ca-crumbs [aria-current] { color: var(--color-ink-2); }
.ca-cve-hero-grid { display: grid; grid-template-columns: minmax(0, 1fr) 320px; gap: var(--space-2xl); align-items: end; }
.ca-badges { display: flex; flex-wrap: wrap; gap: var(--space-xs); margin-bottom: var(--space-lg); }
.ca-badge { display: inline-flex; align-items: center; gap: var(--space-xs); padding: var(--space-3xs) var(--space-sm); font-size: var(--text-xs); font-weight: 400; line-height: 1.4; letter-spacing: 0; text-transform: none; border: var(--rule-hair) solid currentColor; border-radius: var(--radius-pill); }
.ca-badge.tone-crit { color: var(--color-crit); }
.ca-badge.tone-high { color: var(--color-high); }
.ca-badge.tone-med { color: var(--color-med); }
.ca-badge.tone-low { color: var(--color-low); }
.ca-badge.tone-info { color: var(--color-info); }
.ca-badge.tone-acc { color: var(--color-accent); }
.ca-badge.is-solid.tone-crit { background: var(--color-crit-bg); }
.ca-badge.is-solid.tone-high { background: var(--color-high-bg); }
.ca-badge.is-solid.tone-med { background: var(--color-med-bg); }
.ca-badge.is-solid.tone-low { background: var(--color-low-bg); }
.ca-badge.is-solid.tone-info { background: var(--color-info-bg); }
.ca-badge.is-solid.tone-acc { background: var(--color-accent-soft); }
.ca-badge-dot { display: none; }
.ca-cve-hero-id { margin-bottom: var(--space-sm); font-size: var(--text-sm); color: var(--color-muted); }
.ca-cve-title { max-width: 22ch; margin: 0; padding: 0; font-size: var(--text-display-s); line-height: 1.02; color: var(--color-ink); overflow-wrap: break-word; }
.ca-cve-title span { color: var(--color-muted); }
.ca-cve-title.is-sentence { max-width: 30ch; font-size: var(--text-2xl); line-height: 1.12; }
.ca-cve-lede { max-width: 60ch; margin: var(--space-lg) 0 0; padding: 0; font-size: var(--text-lead); line-height: 1.45; color: var(--color-ink-2); }
.ca-cve-dates { display: flex; flex-wrap: wrap; gap: var(--space-xs) var(--space-lg); margin-top: var(--space-lg); font-size: var(--text-sm); color: var(--color-muted); }
.ca-cve-dates time, .ca-cve-dates b { font-weight: 400; color: var(--color-ink-2); }
.ca-cve-actions { display: flex; flex-direction: column; gap: var(--space-sm); }
.ca-cve-actions .btn { min-height: 48px; }

/* the facts: four measured figures parted by hairlines, the frame drawn at its corners */
.ca-cve-facts { position: relative; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); padding: var(--space-lg) 0; }
.ca-cve-facts::before { content: ""; position: absolute; inset: 0; pointer-events: none; border: var(--rule-hair) solid var(--color-rule-2); -webkit-mask: conic-gradient(at var(--tick) var(--tick), transparent 75%, var(--color-ink) 0) 0 0 / calc(100% - var(--tick)) calc(100% - var(--tick)); mask: conic-gradient(at var(--tick) var(--tick), transparent 75%, var(--color-ink) 0) 0 0 / calc(100% - var(--tick)) calc(100% - var(--tick)); }
.ca-cve-fact { padding: var(--space-xs) var(--space-lg); border-left: var(--rule-hair) solid var(--color-rule); }
.ca-cve-fact:first-child { border-left: 0; }
.ca-cve-fact .label { margin-bottom: var(--space-sm); }
.ca-cve-fact-value { font-size: var(--text-xl); font-weight: 300; color: var(--color-ink); }
.ca-cve-fact-value.is-big { font-size: var(--text-3xl); font-weight: 200; line-height: 1; letter-spacing: -0.03em; }
.ca-cve-fact-value.tone-crit { color: var(--color-crit); }
.ca-cve-fact-value.tone-high { color: var(--color-high); }
.ca-cve-fact-value.tone-med { color: var(--color-med); }
.ca-cve-fact-value.tone-low { color: var(--color-low); }
.ca-cve-fact-note { margin-top: var(--space-xs); font-size: var(--text-sm); color: var(--color-muted); overflow-wrap: break-word; }
.ca-cve-fact-value.is-big + .ca-cve-fact-note { margin-top: var(--space-sm); }

body .ca-dsec .ca-cve-content { max-width: 68ch; margin-bottom: var(--space-xl); }
body .ca-dsec .ca-cve-content p { padding-bottom: var(--space-md); font-size: var(--text-body); line-height: 1.65; color: var(--color-ink-2); }
body .ca-dsec .ca-cve-content a { color: var(--color-ink) !important; text-decoration: underline; text-decoration-color: var(--color-rule-2); }
body .ca-dsec .ca-cve-content a:hover { text-decoration-color: var(--color-accent); }
body .ca-dsec .ca-cve-main > .et_pb_text.label:not(:first-child) { margin-top: var(--space-2xl); }
body .ca-dsec .ca-cve-main > .et_pb_text.label { margin-bottom: var(--space-md); font-size: var(--text-title); line-height: 1.2; color: var(--color-ink); }
body .ca-dsec .ca-todo { margin-bottom: var(--space-2xl); padding: var(--space-lg) 0; border-top: var(--rule-hair) solid var(--color-rule); border-bottom: var(--rule-hair) solid var(--color-rule); }
body .ca-dsec .ca-todo .ca-todo-title { margin-bottom: var(--space-md); font-size: var(--text-title); color: var(--color-ink); }
#main-content .ca-steps { display: grid; gap: var(--space-sm); margin: 0; padding: 0; list-style: none; }
.ca-steps li { display: grid; grid-template-columns: 28px minmax(0, 1fr); gap: var(--space-sm); font-size: var(--text-md); color: var(--color-ink-2); }
.ca-steps .mono { padding-top: var(--space-3xs); font-size: var(--text-sm); color: var(--color-muted); }
.ca-deadline { display: flex; flex-wrap: wrap; align-items: center; gap: var(--space-sm); margin-top: var(--space-lg); padding-top: var(--space-md); font-size: var(--text-sm); color: var(--color-muted); border-top: var(--rule-hair) solid var(--color-rule-soft); }
.ca-deadline .mono { font-size: var(--text-sm); color: var(--color-high); }
.ca-deadline time { color: var(--color-ink); }
body .ca-dsec .ca-refs-label { margin-bottom: var(--space-sm); }
#main-content .ca-ref-list { margin: 0; padding: 0; list-style: none; }
.ca-ref-list li { border-top: var(--rule-hair) solid var(--color-rule); }
.ca-ref-list li:last-child { border-bottom: var(--rule-hair) solid var(--color-rule); }
.ca-ref-list a { display: grid; grid-template-columns: 180px minmax(0, 1fr) auto; gap: var(--space-md); align-items: center; min-height: 48px; padding: var(--space-sm) var(--space-2xs); color: var(--color-ink) !important; text-decoration: none; transition: background-color var(--dur-short) var(--ease-out); }
.ca-ref-list a:hover { color: var(--color-ink) !important; background: var(--color-paper-2); }
.ca-ref-list a:focus-visible { outline: 2px solid var(--color-focus); outline-offset: -2px; }
.ca-ref-label { font-size: var(--text-sm); font-weight: 400; }
.ca-ref-host { overflow: clip; font-size: var(--text-sm); color: var(--color-muted); text-overflow: ellipsis; white-space: nowrap; }
.ca-ref-arrow { flex-shrink: 0; color: var(--color-muted); }
.ca-ref-list a:hover .ca-ref-arrow { color: var(--color-ink); }

body .ca-dsec .ca-cve-aside { gap: var(--space-xl); }
body .ca-dsec .ca-side-card { row-gap: 0; overflow: clip; border-top: var(--rule-hair) solid var(--color-rule-2); }
body .ca-dsec .ca-side-card .ca-side-title { padding: var(--space-md) 0 var(--space-sm); font-size: var(--text-md); font-weight: 400; letter-spacing: 0; text-transform: none; color: var(--color-ink); }
.ca-side-card .ca-empty { padding: var(--space-sm) 0; }
#main-content .ca-timeline { margin: 0; padding: 0 0 var(--space-sm); list-style: none; }
.ca-timeline li { display: grid; grid-template-columns: 96px minmax(0, 1fr); gap: var(--space-sm); padding: var(--space-xs) 0; font-size: var(--text-sm); color: var(--color-ink-2); border-top: var(--rule-hair) solid var(--color-rule-soft); }
.ca-timeline time { padding-top: var(--space-3xs); font-size: var(--text-xs); color: var(--color-muted); }
.ca-timeline .tone-crit { color: var(--color-crit); }
.ca-timeline .tone-high { color: var(--color-high); }
.ca-related { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: var(--space-2xs) var(--space-sm); padding: var(--space-sm) 0; color: var(--color-ink-2) !important; text-decoration: none; border-top: var(--rule-hair) solid var(--color-rule-soft); }
.ca-related:hover { color: var(--color-ink-2) !important; background: var(--color-paper-2); }
.ca-related .mono { font-size: var(--text-xs); }
.ca-related-name { grid-column: 1 / -1; font-size: var(--text-sm); color: var(--color-ink); }
.ca-vendor-card { padding: var(--space-md) 0 0; border-top: var(--rule-hair) solid var(--color-rule-2); }
.ca-vendor-card .label { margin-bottom: var(--space-xs); }
.ca-vendor-head { display: flex; align-items: baseline; justify-content: space-between; gap: var(--space-xs); }
.ca-vendor-head b { font-size: var(--text-title); font-weight: 300; color: var(--color-ink); }
.ca-vendor-head .mono { font-size: var(--text-sm); color: var(--color-muted); }
.ca-vendor-bar { display: flex; gap: var(--space-3xs); height: 4px; margin-top: var(--space-sm); overflow: clip; border-radius: 1px; }
.ca-vendor-bar .sev-crit { background: var(--color-crit); }
.ca-vendor-bar .sev-high { background: var(--color-high); }
.ca-vendor-bar .sev-med { background: var(--color-med); }
.ca-vendor-bar .sev-low { background: var(--color-low); }
.ca-vendor-bar .sev-info { background: var(--color-info); }
.ca-vendor-card .lnk { display: inline-block; margin-top: var(--space-sm); }

@media (max-width: 980px) {
  .ca-cve-hero-grid { grid-template-columns: minmax(0, 1fr); gap: var(--space-lg); }
  .ca-cve-actions { flex-direction: row; flex-wrap: wrap; }
  .ca-cve-facts { grid-template-columns: repeat(2, minmax(0, 1fr)); row-gap: var(--space-lg); }
  .ca-cve-fact:nth-child(3) { border-left: 0; }
}
@media (max-width: 767px) {
  body .ca-dsec .et_pb_row.ca-cve-hero-row { padding: var(--space-lg) var(--gutter) var(--space-xl) !important; }
  body .ca-dsec .et_pb_row.ca-cve-facts-row { padding: var(--space-xl) var(--gutter) 0 !important; }
  body .ca-dsec .et_pb_row.ca-cve-body-row { padding: var(--space-xl) var(--gutter) var(--space-2xl) !important; }
  .ca-crumbs { margin-bottom: var(--space-lg); }
  .ca-cve-actions { flex-direction: column; }
  .ca-cve-fact { padding: var(--space-xs) var(--space-md); }
  .ca-ref-list a,
  body .ca-news-sources .ca-ref-list a { grid-template-columns: minmax(0, 1fr) auto; }
  .ca-ref-host { display: none; }
}

/* ─── News (page "News", Theme Builder templates "News categories" and "News articles") ─── */
/* Category tabs: the "News categories" menu in a Divi Menu module. */
body .ca-newstabs.et_pb_menu { margin-top: var(--space-lg); background: transparent !important; }
body .ca-newstabs .et_pb_menu__wrap { justify-content: flex-start; }
body .ca-newstabs .et_pb_menu__menu { display: flex !important; max-width: 100%; }
body .ca-newstabs .et_mobile_nav_menu { display: none !important; }
body .ca-newstabs .et-menu { display: flex; flex-wrap: wrap; gap: var(--space-2xs); margin: 0; }
body .ca-newstabs .et-menu > li { padding: 0; }
body .ca-newstabs .et-menu > li > a { display: inline-flex; align-items: center; min-height: 36px; padding: 0 var(--space-md); font: 400 var(--text-sm)/1 var(--font-body); color: var(--color-muted) !important; white-space: nowrap; border: var(--rule-hair) solid transparent; border-radius: var(--radius-pill); transition: color var(--dur-short) var(--ease-out), background-color var(--dur-short) var(--ease-out); }
body .ca-newstabs .et-menu > li > a:hover { color: var(--color-ink) !important; opacity: 1; }
body .ca-newstabs .et-menu > li > a:focus-visible { outline: 2px solid var(--color-focus); outline-offset: 2px; }
body .ca-newstabs .et-menu > li.current-menu-item > a { color: var(--color-ink) !important; background: var(--color-paper-3); border-color: var(--color-rule-2); }

/* Every news list (Divi Blog modules with the class ca-news): category first, then the date. */
body .ca-news .et_pb_post { position: relative; }
body .ca-news .entry-title a { color: var(--color-ink) !important; text-decoration: none; }
body .ca-news .entry-title a::after { content: ''; position: absolute; inset: 0; }
body .ca-news .entry-title a:focus-visible { outline: 2px solid var(--color-focus); outline-offset: 2px; }
body .ca-news .post-meta { display: flex; flex-wrap: wrap; align-items: center; gap: var(--space-xs) var(--space-sm); margin: 0; padding: 0; font-size: 0; line-height: 1; }
body .ca-news .post-meta .published { font-size: var(--text-sm); color: var(--color-muted); }
body .ca-news .post-meta .entry-categories { display: inline-flex; flex-wrap: wrap; gap: var(--space-2xs); order: -1; }
body .ca-news .post-meta .entry-categories a,
body .ca-article-title .et_pb_title_meta_container a { position: relative; z-index: var(--z-base); display: inline-flex; padding: var(--space-3xs) var(--space-sm); font-size: var(--text-xs); font-weight: 400; line-height: 1.4; color: var(--color-ink-2) !important; text-decoration: none; background: transparent; border: var(--rule-hair) solid var(--color-rule-2); border-radius: var(--radius-pill); }
body .ca-news .post-meta .entry-categories a:hover,
body .ca-article-title .et_pb_title_meta_container a:hover { color: var(--color-ink) !important; border-color: var(--color-field-edge); }

/* Posts without a featured image get a quiet well with the category name instead. */
body .ca-news article.et_pb_no_thumb::before {
  content: var(--ca-cat-label, 'News'); display: flex; align-items: flex-end; padding: var(--space-md);
  font: 300 var(--text-xl)/1.1 var(--font-display); font-variation-settings: "SHRP" 100; letter-spacing: -0.02em; color: var(--color-muted);
  background: var(--color-paper-2);
  border-radius: var(--radius-card);
}
.ca-news .category-ransomware { --ca-cat-label: 'Ransomware'; }
.ca-news .category-supply-chain { --ca-cat-label: 'Supply chain'; }
.ca-news .category-apt { --ca-cat-label: 'APT'; }
.ca-news .category-advisory { --ca-cat-label: 'Advisory'; }
.ca-news .category-policy { --ca-cat-label: 'Policy'; }
.ca-news .category-legal { --ca-cat-label: 'Legal'; }
.ca-news .category-report { --ca-cat-label: 'Report'; }

/* Lead story: image (or panel) left, text right. The row padding sets the spacing, not the section's row gap. */
body .et_pb_section.ca-dsec:has(> .ca-news-lead) { row-gap: 0; }
body .ca-dsec .et_pb_row.ca-news-lead { padding: var(--space-xl) var(--gutter) 0; }
body .ca-news-featured .et_pb_blog_posts { margin: 0; }
body .ca-news-featured article.et_pb_post { display: grid; grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); grid-template-rows: auto auto 1fr; column-gap: var(--space-2xl); margin: 0; padding: 0; background: transparent; border: 0; }
body .ca-news-featured article.et_pb_no_thumb::before,
body .ca-news-featured .entry-featured-image-url { grid-column: 1; grid-row: 1 / 4; min-height: 440px; margin: 0; }
body .ca-news-featured .entry-featured-image-url { padding: 0; }
body .ca-news-featured .entry-featured-image-url img { width: 100%; height: 100%; object-fit: cover; border-radius: var(--radius-card); filter: saturate(0.8) contrast(1.06); }
body .ca-news-featured .post-meta { grid-column: 2; grid-row: 1; align-self: end; padding: 0 0 var(--space-md); }
body .ca-news-featured .published::after { content: ' UTC'; }
body .ca-news-featured .entry-title { grid-column: 2; grid-row: 2; margin: 0; padding: 0; font-size: var(--text-2xl); font-weight: 300; line-height: 1.1; letter-spacing: -0.025em; }
body .ca-news-featured .post-content { display: flex; flex-direction: column; grid-column: 2; grid-row: 3; padding: var(--space-md) 0 0; }
body .ca-news-featured .post-content-inner p { padding: 0; font-size: var(--text-md); line-height: 1.6; color: var(--color-ink-2); }
body .ca-news-featured .more-link { position: relative; z-index: var(--z-base); align-self: flex-start; margin-top: var(--space-lg); font-size: var(--text-md); color: var(--color-ink) !important; text-decoration: underline; text-decoration-color: var(--color-rule-2); text-underline-offset: 0.2em; }
body .ca-news-featured .more-link::first-letter { text-transform: uppercase; }
body .ca-news-featured .more-link:hover { text-decoration-color: var(--color-accent); }

/* Story cards: three columns. */
body .ca-dsec .et_pb_row.ca-news-list { padding: var(--space-2xl) var(--gutter) var(--space-3xl); }
body .ca-news-grid .et_pb_blog_posts { display: grid !important; grid-template-columns: repeat(3, minmax(0, 1fr)) !important; gap: var(--space-2xl) var(--gap-columns) !important; margin: 0; }
body .ca-news-grid article.et_pb_post { display: flex; flex-direction: column; margin: 0; padding: 0; background: transparent; border: 0; }
body .ca-news-grid article.et_pb_no_thumb::before { order: -2; aspect-ratio: 1200 / 630; margin-bottom: var(--space-md); }
body .ca-news-grid .et_pb_image_container { order: -2; margin: 0 0 var(--space-md); }
body .ca-news-grid .entry-featured-image-url { display: block; margin: 0; }
body .ca-news-grid .entry-featured-image-url img { width: 100%; height: 200px; object-fit: cover; border-radius: var(--radius-card); filter: saturate(0.8) contrast(1.06); }
body .ca-news-grid .post-meta { order: -1; margin-bottom: var(--space-sm); }
body .ca-news-grid .entry-title { margin: 0; padding: 0; font-size: var(--text-title); font-weight: 300; line-height: 1.2; letter-spacing: -0.015em; }
body .ca-news-grid article.et_pb_post:hover .entry-title a { text-decoration: underline; text-decoration-color: var(--color-rule-2); }
body .ca-news-grid .post-content-inner p { display: block; margin-top: var(--space-xs); padding: 0; font-size: var(--text-sm); line-height: 1.55; color: var(--color-muted); }

/* Images the site draws for written stories (includes/news-cover.php): shown whole, in their own colours. */
body .ca-news .ca-drawn-cover img { filter: none; }
body .ca-news-featured .ca-drawn-cover .entry-featured-image-url { align-self: start; min-height: 0; }
body .ca-news .ca-drawn-cover .entry-featured-image-url img { height: auto; aspect-ratio: 1200 / 630; }
body.ca-drawn-cover .ca-article-title .et_pb_title_featured_container img { filter: none; }

/* Older / newer entries */
body .ca-news .pagination { display: flex; justify-content: space-between; gap: var(--space-sm); margin-top: var(--space-2xl); padding: 0; }
body .ca-news .pagination::before, body .ca-news .pagination::after { display: none; }
body .ca-news .pagination .alignleft, body .ca-news .pagination .alignright { float: none; }
body .ca-news .pagination a { display: inline-flex; align-items: center; min-height: 44px; padding: 0 var(--space-lg); font-size: var(--text-md); color: var(--color-ink) !important; text-decoration: none; background: transparent; border: 0; border-radius: var(--radius-pill); box-shadow: inset 0 0 0 var(--rule-hair) var(--color-rule-2); }
body .ca-news .pagination a:hover { background: var(--color-paper-3); }

/* "Latest news" list in the article sidebar */
body .ca-news-mini .et_pb_blog_posts { margin: 0; }
body .ca-news-mini article.et_pb_post { display: flex; flex-direction: column; gap: var(--space-xs); margin: 0; padding: var(--space-sm) 0; border-top: var(--rule-hair) solid var(--color-rule-soft); transition: background-color var(--dur-short) var(--ease-out); }
body .ca-news-mini article.et_pb_post:hover { background: var(--color-paper-2); }
body .ca-news-mini .entry-title { margin: 0; padding: 0; font-size: var(--text-md); font-weight: 400; line-height: 1.35; letter-spacing: 0; }
body .ca-news-mini .post-meta { order: 1; }
body .ca-news-mini .post-meta .entry-categories a { padding: 0 var(--space-xs); font-size: var(--text-2xs); }
body .ca-news-mini .post-content { display: none; }

/* category archive title (Divi Post Title module) */
body .ca-archive-title .entry-title { margin: 0; padding: 0; font-size: var(--text-display-s); font-weight: 300; line-height: 1; letter-spacing: var(--tracking-display); color: var(--color-ink); }

/* Article page */
body .ca-dsec .et_pb_row.ca-article-head { padding: var(--space-xl) var(--gutter) var(--space-2xl) !important; }
body .ca-dsec .ca-back p { font-size: var(--text-sm); }
body .ca-dsec .ca-back a { color: var(--color-muted) !important; text-decoration: none; }
body .ca-dsec .ca-back a:hover { color: var(--color-ink) !important; text-decoration: underline; }
body .ca-article-title .et_pb_title_container { display: flex; flex-direction: column; }
body .ca-article-title .et_pb_title_meta_container { display: flex; flex-wrap: wrap; align-items: center; gap: var(--space-sm); order: -1; margin: 0 0 var(--space-lg); padding: 0; font-size: 0; line-height: 1; }
body .ca-article-title .et_pb_title_meta_container a { order: -1; }
body .ca-article-title .et_pb_title_meta_container .published { font-size: var(--text-sm); color: var(--color-muted); }
body .ca-article-title .et_pb_title_meta_container .published::after { content: ' UTC'; }
body .ca-article-title .entry-title { max-width: 22ch; margin: 0; padding: 0; font-size: var(--text-display-s); font-weight: 300; line-height: 1.02; letter-spacing: var(--tracking-display); color: var(--color-ink); }
body .ca-article-title .et_pb_title_featured_container { margin-top: var(--space-2xl); }
body .ca-article-title .et_pb_title_featured_container img { width: 100%; max-height: 560px; object-fit: cover; border-radius: var(--radius-card); filter: saturate(0.8) contrast(1.06); }
body .ca-dsec .et_pb_row.ca-article-row { padding: var(--space-2xl) var(--gutter) var(--space-3xl) !important; }
body .ca-dsec .ca-article-content { max-width: 68ch; }
body .ca-dsec .ca-article-content p { padding-bottom: var(--space-md); font-size: var(--text-body); line-height: 1.7; color: var(--color-ink-2); }
body .ca-dsec .ca-article-content h2,
body .ca-dsec .ca-article-content h3 { margin: var(--space-xl) 0 var(--space-sm); padding: 0; line-height: 1.15; color: var(--color-ink); }
body .ca-dsec .ca-article-content h2 { font-size: var(--text-2xl); }
body .ca-dsec .ca-article-content h3 { font-size: var(--text-title); }
body .ca-dsec .ca-article-content ul { margin: 0 0 var(--space-md); padding: 0; list-style: none; }
body .ca-dsec .ca-article-content ul li { position: relative; padding: 0 0 var(--space-xs) var(--space-lg); font-size: var(--text-body); line-height: 1.6; color: var(--color-ink-2); }
body .ca-dsec .ca-article-content ul li::before { content: ''; position: absolute; top: 0.75em; left: var(--space-2xs); width: 8px; height: 1px; background: var(--color-muted); }
body .ca-dsec .ca-article-content a { color: var(--color-ink) !important; text-decoration: underline; text-decoration-color: var(--color-rule-2); }
body .ca-dsec .ca-article-content a:hover { text-decoration-color: var(--color-accent); }
/* The original reports behind a story written from the desk inbox ([ca_news_sources]). */
body .ca-dsec .ca-news-sources { max-width: 68ch; margin-top: var(--space-2xl); }
body .ca-dsec .ca-news-sources .ca-event-chips { margin-bottom: var(--space-xl); }
.ca-news-sources .ca-ref-list a { grid-template-columns: minmax(0, 1fr) auto auto; }
body .ca-dsec .ca-article-aside { gap: var(--space-xl); }
body .ca-dsec .ca-tip-text p { padding: 0 0 var(--space-md); font-size: var(--text-sm); line-height: 1.55; color: var(--color-muted); }
body .ca-dsec .ca-tip-card .et_pb_button_module_wrapper { padding: 0 0 var(--space-md); }

@media (max-width: 980px) {
  body .ca-news-grid .et_pb_blog_posts { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; }
  body .ca-news-featured article.et_pb_post { grid-template-columns: minmax(0, 1fr); grid-template-rows: auto auto auto 1fr; }
  body .ca-news-featured article.et_pb_no_thumb::before,
  body .ca-news-featured .entry-featured-image-url { grid-column: 1; grid-row: 1; min-height: 280px; margin-bottom: var(--space-lg); }
  body .ca-news-featured .post-meta { grid-column: 1; grid-row: 2; }
  body .ca-news-featured .entry-title { grid-column: 1; grid-row: 3; }
  body .ca-news-featured .post-content { grid-column: 1; grid-row: 4; }
}
@media (max-width: 767px) {
  body .ca-dsec .et_pb_row.ca-news-lead { padding: var(--space-lg) var(--gutter) 0; }
  body .ca-dsec .et_pb_row.ca-news-list { padding: var(--space-xl) var(--gutter) var(--space-2xl); }
  body .ca-news-grid .et_pb_blog_posts { grid-template-columns: minmax(0, 1fr) !important; gap: var(--space-xl) !important; }
  body .ca-news-grid article.et_pb_no_thumb::before { height: 140px; }
  body .ca-dsec .et_pb_row.ca-article-head { padding: var(--space-lg) var(--gutter) var(--space-xl) !important; }
  body .ca-dsec .et_pb_row.ca-article-row { padding: var(--space-xl) var(--gutter) var(--space-2xl) !important; }
}

/* ─── Home conferences: live heading, region tabs, spotlight and the list after it ─── */
.ca-live-heading { max-width: 24ch; text-wrap: balance; margin: 0; padding: 0; font-size: var(--text-section); font-weight: var(--display-weight); line-height: 1.02; letter-spacing: var(--tracking-display); color: var(--color-ink); }
.ca-region-tabs { display: flex; flex-wrap: wrap; gap: var(--space-2xs); margin-bottom: var(--space-md); }
.ca-region-tabs .tab { min-height: 44px; }
.ca-region-tabs .tab .mono { font-size: var(--text-xs); color: var(--color-muted); }
.ca-region-tabs .tab.active .mono { color: var(--color-ink-2); }
.ca-pin.is-out { opacity: 0.12; pointer-events: none; }
/* Cards and rows the region tabs hide (their own display rules would otherwise win over [hidden]). */
.ca-map-scope [hidden] { display: none !important; }
body .ca-dsec .ca-next { row-gap: 0; }
.ca-spotlights { margin-bottom: var(--space-lg); }
.ca-spotlight { position: relative; display: grid; gap: var(--space-sm); padding: var(--space-lg); }
.ca-spotlight::before { content: ""; position: absolute; inset: 0; pointer-events: none; border: var(--rule-hair) solid var(--color-rule-2); -webkit-mask: conic-gradient(at var(--tick) var(--tick), transparent 75%, var(--color-ink) 0) 0 0 / calc(100% - var(--tick)) calc(100% - var(--tick)); mask: conic-gradient(at var(--tick) var(--tick), transparent 75%, var(--color-ink) 0) 0 0 / calc(100% - var(--tick)) calc(100% - var(--tick)); }
.ca-spotlight.is-empty .ca-empty { padding: var(--space-2xs) 0; }
.ca-spot-head { display: flex; align-items: center; justify-content: space-between; gap: var(--space-sm); }
.ca-spot-head .label { font-size: var(--text-sm); color: var(--color-muted); }
.ca-spot-when { font-size: var(--text-sm); color: var(--color-ink); }
.ca-spot-when.is-live { color: var(--color-accent); }
.ca-spotlight:has(.ca-spot-when.is-live) .ca-spot-head .label { color: var(--color-accent); }
.ca-spot-name { margin: 0; padding: 0; font-size: var(--text-title); font-weight: 300; line-height: 1.15; letter-spacing: -0.02em; }
.ca-spot-name a { color: var(--color-ink) !important; text-decoration: none; }
.ca-spot-name a:hover { text-decoration: underline; text-decoration-color: var(--color-rule-2); }
.ca-spot-meta { margin: 0; padding: 0; font-size: var(--text-sm); color: var(--color-muted); }
.ca-spot-venue { margin: 0; padding: 0; font-size: var(--text-sm); color: var(--color-ink-2); }
#main-content .ca-spot-facts { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); margin: 0; padding: var(--space-sm) 0; border-top: var(--rule-hair) solid var(--color-rule); border-bottom: var(--rule-hair) solid var(--color-rule); }
.ca-spot-facts div { padding: 0 var(--space-md); border-left: var(--rule-hair) solid var(--color-rule); }
.ca-spot-facts div:first-child { padding-left: 0; border-left: 0; }
.ca-spot-facts dt { font-size: var(--text-xs); font-weight: 400; letter-spacing: 0; text-transform: none; color: var(--color-muted); }
.ca-spot-facts dd { margin: var(--space-2xs) 0 0; font-size: var(--text-lg); font-weight: 300; color: var(--color-ink); }
.ca-spot-chips { display: flex; flex-wrap: wrap; gap: var(--space-2xs); }
.ca-spot-actions { display: flex; flex-wrap: wrap; gap: var(--space-xs); }
.ca-spot-actions .btn { flex: 1 1 auto; }
/* the list after the spotlight: countdown and delegates under each event */
.ca-conf-extra { display: flex; flex-wrap: wrap; gap: var(--space-2xs) var(--space-sm); margin-top: var(--space-xs); font-size: var(--text-sm); color: var(--color-muted); }
.ca-live-now { display: inline-flex; align-items: center; gap: var(--space-xs); color: var(--color-accent); }
.ca-live-now .ca-dot { display: none; }
.ca-region-empty { padding: var(--space-md) var(--space-2xs); }

/* ─── Home: the signal right now (figures counted from the CVE feed) ─── */
.ca-sr-only { position: absolute !important; width: 1px; height: 1px; margin: -1px; padding: 0; overflow: hidden; clip-path: inset(50%); white-space: nowrap; border: 0; }
.ca-stat-grid { display: grid; grid-template-columns: minmax(0, 1.4fr) minmax(0, 1fr) minmax(0, 1fr); }
.ca-stat-tile { position: relative; display: flex; flex-direction: column; gap: var(--space-sm); min-width: 0; padding: var(--space-xs) var(--space-xl); border-left: var(--rule-hair) solid var(--color-rule); }
.ca-stat-tile:first-child { padding-left: 0; border-left: 0; }
.ca-stat-tile:last-child { padding-right: 0; }
.ca-stat-k { display: flex; align-items: flex-start; gap: var(--space-sm); font-size: var(--text-sm); font-weight: 400; line-height: 1.4; letter-spacing: 0; text-transform: none; color: var(--color-muted); }
.ca-stat-k .ca-dot { display: none; }
.ca-stat-v { margin-top: var(--space-2xs); font-size: var(--text-display); font-weight: 200; line-height: 1; letter-spacing: -0.04em; color: var(--color-ink); font-variant-numeric: tabular-nums; }
.ca-stat-tile.is-kev .ca-stat-v { color: var(--color-accent); }
.ca-stat-d { font-size: var(--text-sm); color: var(--color-ink-2); }
#main-content .ca-stat-note { margin: 0; padding: 0; font-size: var(--text-sm); line-height: 1.55; color: var(--color-muted); }
#main-content .ca-stat-tile .lnk { margin-top: auto; padding-top: var(--space-md); font-size: var(--text-md); }
/* 14 daily bars: the earlier week recedes, the last 7 days in steel */
.ca-trend { display: block; width: 100%; height: auto; margin-top: var(--space-md); overflow: visible; }
.ca-trend .base { stroke: var(--color-rule-2); stroke-width: 1; }
.ca-trend .hit { fill: transparent; }
.ca-trend .mark { fill: var(--point-lo); transition: fill var(--dur-short) var(--ease-out); }
.ca-trend .is-current .mark { fill: var(--point-mid); }
.ca-trend .ca-bar:hover .mark { fill: var(--color-ink); }
.ca-trend-axis { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: var(--space-xs) var(--space-sm); font-size: var(--text-xs); color: var(--color-muted); }
.ca-trend-key { display: inline-flex; align-items: center; gap: var(--space-xs); }
.ca-trend-key i { width: 8px; height: 8px; border-radius: 1px; background: var(--point-lo); }
.ca-trend-key i.is-current { margin-left: var(--space-xs); background: var(--point-mid); }
/* most affected vendors: one thin bar per vendor, scaled to the top one */
#main-content .ca-vendor-list { display: grid; grid-template-columns: minmax(0, 1fr); gap: var(--space-md); margin: var(--space-sm) 0 0; padding: 0; list-style: none; }
#main-content .ca-vendor-list li { min-width: 0; margin: 0; padding: 0; }
#main-content .ca-vendor-list a { display: grid; grid-template-columns: minmax(0, 1fr); gap: var(--space-xs); color: var(--color-ink-2) !important; text-decoration: none; }
#main-content .ca-vendor-list a:focus-visible { outline: 2px solid var(--color-focus); outline-offset: 2px; }
.ca-vendor-row { display: flex; align-items: baseline; justify-content: space-between; gap: var(--space-sm); min-width: 0; }
.ca-vendor-row .name { overflow: clip; font-size: var(--text-md); font-weight: 400; color: var(--color-ink); text-overflow: ellipsis; white-space: nowrap; }
.ca-vendor-row .n { flex-shrink: 0; font-size: var(--text-sm); color: var(--color-muted); font-variant-numeric: tabular-nums; }
.ca-vendor-track { display: block; height: 2px; overflow: clip; background: var(--color-rule); }
.ca-vendor-track span { display: block; height: 100%; background: var(--point-mid); transition: background-color var(--dur-short) var(--ease-out); }
#main-content .ca-vendor-list a:hover .name { text-decoration: underline; text-decoration-color: var(--color-rule-2); }
.ca-vendor-list a:hover .ca-vendor-track span { background: var(--color-ink); }
#main-content .ca-feed-fresh { display: flex; align-items: center; gap: var(--space-sm); margin: var(--space-xl) 0 0; padding: var(--space-md) 0 0; font-size: var(--text-sm); line-height: 1.5; color: var(--color-muted); border-top: var(--rule-hair) solid var(--color-rule); }
.ca-feed-fresh .ca-dot { display: none; }
@media (min-width: 981px) and (max-width: 1279px) {
  /* labels wrap to two lines in the narrow tiles here; keep the numbers level */
  .ca-stat-k { min-height: 2lh; }
}
@media (max-width: 980px) {
  .ca-stat-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); row-gap: var(--space-xl); }
  .ca-stat-tile.is-wide { grid-column: 1 / -1; padding: 0; border-left: 0; }
  .ca-stat-tile:nth-child(2) { padding-left: 0; border-left: 0; }
}
@media (max-width: 767px) {
  .ca-stat-grid { grid-template-columns: minmax(0, 1fr); }
  .ca-stat-tile, .ca-stat-tile:nth-child(2) { padding: var(--space-lg) 0 0; border-left: 0; border-top: var(--rule-hair) solid var(--color-rule); }
  .ca-stat-tile.is-wide { padding-top: 0; border-top: 0; }
  .ca-trend-key { order: 3; flex-basis: 100%; }
  #main-content .ca-feed-fresh { align-items: flex-start; }
}

/* ─── Home hero: the tagline over the rail of the latest critical CVEs ─── */
body .et_pb_section.ca-hero-sec { position: relative; row-gap: 0; overflow: clip; background: var(--color-paper) !important; }
body .et_pb_section.ca-hero-sec > .et_pb_row { position: relative; }
body .ca-dsec .et_pb_row.ca-hero-row { padding: var(--space-3xl) var(--gutter) var(--space-2xl); }
body .ca-dsec .ca-hero-col { row-gap: 0; }
body .ca-dsec .ca-hero-title .et_pb_module_header { max-width: 12ch; font-size: var(--text-display); line-height: 1; letter-spacing: var(--tracking-display); }
body .ca-dsec .ca-hero-sub { margin-top: var(--space-lg); }
body .ca-dsec .ca-hero-sub p { max-width: 44ch; font-size: var(--text-lead); line-height: 1.45; color: var(--color-ink-2); }
body .ca-dsec .ca-hero-actions { flex-direction: row !important; flex-wrap: wrap; gap: var(--space-sm); margin-top: var(--space-xl); }
body .ca-dsec .ca-hero-actions .et_pb_button_module_wrapper { width: auto; margin: 0; }
body .ca-dsec .et_pb_row.ca-hero-carousel-row { padding: 0 0 var(--space-2xl); }

/* the rail of the latest critical CVEs; its edge cuts the next card */
.ca-carousel { display: grid; gap: var(--space-lg); }
.ca-carousel-head { display: flex; flex-wrap: wrap; align-items: flex-end; justify-content: space-between; gap: var(--space-sm) var(--space-lg); max-width: var(--container); margin: 0 auto; padding: 0 var(--gutter); width: 100%; }
.ca-carousel-title { display: flex; flex-wrap: wrap; align-items: baseline; gap: var(--space-xs) var(--space-md); }
.ca-carousel-title .ca-dot { display: none; }
.ca-carousel-title .label { font-size: var(--text-title); line-height: 1.2; color: var(--color-ink); }
.ca-carousel-title .mono { font-size: var(--text-sm); color: var(--color-muted); }
.ca-carousel-nav { display: flex; align-items: center; gap: var(--space-xs); }
.ca-carousel-nav .lnk { margin-left: var(--space-sm); font-size: var(--text-md); }
.ca-carousel-btn { display: inline-flex; align-items: center; justify-content: center; width: 44px; height: 44px; padding: 0; color: var(--color-ink); background: transparent; border: 0; border-radius: var(--radius-pill); box-shadow: inset 0 0 0 var(--rule-hair) var(--color-rule-2); cursor: pointer; transition: background-color var(--dur-short) var(--ease-out), opacity var(--dur-short) var(--ease-out); }
.ca-carousel-btn:hover:not(:disabled) { background: var(--color-paper-3); }
.ca-carousel-btn:active:not(:disabled) { transform: translateY(1px); }
.ca-carousel-btn:disabled { opacity: 0.55; color: var(--color-muted); background: transparent; cursor: not-allowed; }
.ca-carousel-btn:focus-visible { outline: 2px solid var(--color-focus); outline-offset: 2px; }
#main-content .ca-carousel-track { display: grid; grid-auto-flow: column; grid-auto-columns: 320px; gap: var(--space-md); margin: 0; padding: var(--space-2xs) max(var(--gutter), calc((100% - var(--container)) / 2 + var(--gutter))) var(--space-xs); list-style: none; overflow-x: auto; overscroll-behavior-x: contain; scroll-snap-type: x mandatory; scroll-padding-inline: max(var(--gutter), calc((100% - var(--container)) / 2 + var(--gutter))); scrollbar-width: none; }
.ca-carousel-track::-webkit-scrollbar { display: none; }
.ca-carousel-track:focus-visible { outline: 2px solid var(--color-focus); outline-offset: -2px; }
.ca-carousel-item { display: flex; scroll-snap-align: start; }
/* A card: CVSS in the severity colour, flags, the affected vendor and product, the flaw, ID and age. */
.ca-cve-card { --tone: var(--color-crit); display: flex; flex-direction: column; gap: var(--space-sm); width: 100%; padding: var(--space-lg); color: inherit; text-decoration: none; background: transparent; border: var(--rule-hair) solid var(--color-rule); border-radius: var(--radius-card); transition: background-color var(--dur-short) var(--ease-out), border-color var(--dur-short) var(--ease-out); }
.ca-cve-card:hover { color: inherit; background: var(--color-paper-2); border-color: var(--color-rule-2); }
.ca-cve-card:focus-visible { outline: 2px solid var(--color-focus); outline-offset: 2px; }
.ca-cve-card.tone-high { --tone: var(--color-high); }
.ca-cve-card.tone-med { --tone: var(--color-med); }
.ca-cve-card.tone-low { --tone: var(--color-low); }
.ca-cve-card.tone-info { --tone: var(--color-info); }
.ca-cve-card-top { display: flex; align-items: flex-start; justify-content: space-between; gap: var(--space-sm); }
.ca-cvss { display: grid; gap: var(--space-2xs); line-height: 1; }
.ca-cvss b { font-size: var(--text-3xl); font-weight: 200; letter-spacing: -0.04em; color: var(--tone); font-variant-numeric: tabular-nums; }
.ca-cvss span { font-size: var(--text-xs); font-weight: 400; letter-spacing: 0; color: var(--color-muted); }
.ca-cve-card-flags { display: flex; flex-direction: column; align-items: flex-end; gap: var(--space-xs); }
.ca-cve-card-what { display: grid; gap: var(--space-2xs); margin-top: var(--space-xs); min-width: 0; }
.ca-cve-card-vendor { overflow: clip; font-size: var(--text-sm); font-weight: 400; line-height: 1.3; letter-spacing: 0; text-transform: none; color: var(--color-muted); text-overflow: ellipsis; white-space: nowrap; }
.ca-cve-card-product { display: block; font-size: var(--text-lg); font-weight: 400; line-height: 1.25; letter-spacing: -0.01em; color: var(--color-ink); }
.ca-cve-card-product.is-unknown { font-size: var(--text-md); color: var(--color-muted); }
.ca-cve-card-flaw { display: block; font-size: var(--text-sm); line-height: 1.5; color: var(--color-ink-2); }
.ca-cve-card-foot { display: flex; justify-content: space-between; gap: var(--space-sm); margin-top: auto; padding-top: var(--space-sm); font-size: var(--text-xs); color: var(--color-muted); border-top: var(--rule-hair) solid var(--color-rule); }
.ca-cve-card-foot span { overflow: clip; text-overflow: ellipsis; white-space: nowrap; }

@media (max-width: 767px) {
  body .ca-dsec .et_pb_row.ca-hero-row { padding: var(--space-2xl) var(--gutter) var(--space-xl); }
  body .ca-dsec .et_pb_row.ca-hero-carousel-row { padding-bottom: var(--space-xl); }
  .ca-carousel-btn { display: none; }
  .ca-carousel-nav .lnk { margin-left: 0; }
  #main-content .ca-carousel-track { grid-auto-columns: 82%; }
}

/* ─── Event pages (Divi Theme Builder template "Conference pages") ─────
   Hero, facts and side cards reuse the CVE page classes above. */
body .ca-dsec .ca-event-focus { margin-bottom: var(--space-xl); }
.ca-event-chips { display: flex; flex-wrap: wrap; gap: var(--space-xs); }
.ca-event-chips .chip { font-size: var(--text-sm); }
.ca-event-tier { padding: var(--space-md) 0; border-top: var(--rule-hair) solid var(--color-rule); }
.ca-event-tier .label { margin-bottom: var(--space-sm); color: var(--color-ink-2); }
.ca-event-tier .label .mono { margin-left: var(--space-xs); color: var(--color-muted); }
#main-content .ca-event-names { display: flex; flex-wrap: wrap; gap: var(--space-xs); margin: 0; padding: 0; list-style: none; }
.ca-event-names li { padding: var(--space-2xs) var(--space-sm); font-size: var(--text-sm); line-height: 1.3; color: var(--color-ink-2); border: var(--rule-hair) solid var(--color-rule); border-radius: var(--radius-card); }
/* Sponsors that are CyberAlert.io partners link to their partner page. */
.ca-event-names li.is-partner { padding: 0; border-color: var(--color-field-edge); }
.ca-event-names li.is-partner a { display: block; padding: var(--space-2xs) var(--space-sm); color: var(--color-ink) !important; text-decoration: underline; text-decoration-color: var(--color-rule-2); }
.ca-event-names li.is-partner a:hover { background: var(--color-paper-2); text-decoration-color: var(--color-accent); }
.ca-event-partners-foot { margin-top: var(--space-2xs); padding: var(--space-md) 0 0; font-size: var(--text-sm); color: var(--color-muted); border-top: var(--rule-hair) solid var(--color-rule); }
.ca-event-empty { padding: var(--space-md) 0; color: var(--color-muted); border-top: var(--rule-hair) solid var(--color-rule); }
#main-content .ca-event-contact { margin: 0; padding: 0 0 var(--space-xs); }
.ca-event-contact > div { display: grid; grid-template-columns: 96px minmax(0, 1fr); gap: var(--space-sm); padding: var(--space-xs) 0; font-size: var(--text-sm); border-top: var(--rule-hair) solid var(--color-rule-soft); }
.ca-event-contact dt { padding-top: var(--space-3xs); font-size: var(--text-xs); color: var(--color-muted); }
.ca-event-contact dd { margin: 0; color: var(--color-ink); overflow-wrap: break-word; }
.ca-event-contact a { color: var(--color-ink) !important; text-decoration: underline; text-decoration-color: var(--color-rule-2); }
.ca-event-contact a:hover { text-decoration-color: var(--color-accent); }
#main-content .ca-event-sources { margin: 0; padding: 0; list-style: none; }
.ca-event-sources li { padding: var(--space-xs) 0; font-size: var(--text-sm); border-top: var(--rule-hair) solid var(--color-rule-soft); }
.ca-event-sources a { color: var(--color-ink-2) !important; text-decoration: none; }
.ca-event-sources a:hover { color: var(--color-ink) !important; text-decoration: underline; }
.ca-event-checked { padding: var(--space-xs) 0 var(--space-md); font-size: var(--text-xs); color: var(--color-muted); }
.ca-side-card .ca-conf-list .ca-conf-row:last-child { border-bottom: 0; }

/* ─── Search results and 404 (Theme Builder templates) ──────────────── */
/* Large search field: a Divi Search module with the class ca-search-big */
body .ca-search-big.et_pb_search { max-width: 640px; margin-top: var(--space-xl); overflow: visible; background: transparent; border: 0; }
body .ca-search-big .et_pb_searchform > div { position: relative; }
body .ca-search-big .et_pb_searchform > div::before {
  content: ''; position: absolute; top: 50%; left: var(--space-md); width: 18px; height: 18px; transform: translateY(-50%); background: var(--color-muted);
  -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.6' stroke-linecap='round'%3E%3Cpath d='M11 4a7 7 0 100 14 7 7 0 000-14zM21 21l-5-5'/%3E%3C/svg%3E") center / contain no-repeat;
  mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.6' stroke-linecap='round'%3E%3Cpath d='M11 4a7 7 0 100 14 7 7 0 000-14zM21 21l-5-5'/%3E%3C/svg%3E") center / contain no-repeat;
}
body .ca-search-big input.et_pb_s,
body #page-container .et-l .ca-search-big .et_pb_searchform input.et_pb_s { width: 100%; height: 52px; padding: 0 var(--space-md) 0 48px !important; font: 300 var(--text-md)/1.4 var(--font-body); color: var(--color-ink); caret-color: var(--color-accent); background: var(--color-paper-2); border: var(--rule-hair) solid var(--color-field-edge); border-radius: var(--radius-pill); outline: 2px solid transparent; outline-offset: 1px; }
body .ca-search-big input.et_pb_s:focus { outline-color: var(--color-focus); }
body .ca-search-big input.et_pb_s::placeholder { color: var(--color-muted); opacity: 1; }
body .ca-search-big .et_pb_searchsubmit { display: none; }
body .ca-dsec .et_pb_row.ca-searchhead { padding-bottom: var(--space-xl); }

/* Results: a row per result, labelled by content type */
body .ca-dsec .et_pb_row.ca-results-row { padding: var(--space-xl) var(--gutter) var(--space-3xl); }
body .ca-results { max-width: 920px; }
body .ca-results .et_pb_blog_posts { margin: 0; border-top: var(--rule-hair) solid var(--color-rule); }
body .ca-results article.et_pb_post { display: flex; flex-direction: column; gap: var(--space-xs); margin: 0; padding: var(--space-lg) 0; border-bottom: var(--rule-hair) solid var(--color-rule); transition: background-color var(--dur-short) var(--ease-out); }
body .ca-results article.et_pb_post:hover { background: var(--color-paper-2); }
body .ca-results .post-meta { order: -1; }
body .ca-results .post-meta::before { content: var(--ca-type, 'Page'); order: -2; font-size: var(--text-sm); font-weight: 400; letter-spacing: 0; text-transform: none; color: var(--ca-type-c, var(--color-muted)); }
.ca-results .type-post { --ca-type: 'News'; }
.ca-results .type-cve { --ca-type: 'CVE'; --ca-type-c: var(--color-crit); }
.ca-results .type-conference { --ca-type: 'Event'; }
.ca-results .type-partner { --ca-type: 'Partner'; }
body .ca-results .entry-title { margin: 0; padding: 0; font-size: var(--text-title); font-weight: 300; line-height: 1.2; }
body .ca-results .post-content-inner p { display: block; padding: 0; font-size: var(--text-sm); line-height: 1.55; color: var(--color-muted); }
/* Divi's "No Results Found" block */
body .ca-results .entry { padding: var(--space-xl) 0; border-top: var(--rule-hair) solid var(--color-rule); }
body .ca-results .not-found-title { margin: 0 0 var(--space-xs); padding: 0; font-size: var(--text-title); font-weight: 300; color: var(--color-ink); }
body .ca-results .entry p { padding: 0; font-size: var(--text-md); color: var(--color-ink-2); }

/* 404 */
body .ca-dsec .et_pb_row.ca-404 { padding: var(--space-4xl) var(--gutter) var(--space-3xl); }
body .ca-dsec .ca-404-links { flex-direction: row !important; flex-wrap: wrap; gap: var(--space-xs); margin-top: var(--space-xl); }
body .ca-dsec .ca-404-links .et_pb_button_module_wrapper { width: auto; margin: 0; }

@media (max-width: 767px) {
  body .ca-dsec .et_pb_row.ca-results-row { padding: var(--space-lg) var(--gutter) var(--space-2xl); }
  body .ca-dsec .et_pb_row.ca-404 { padding: var(--space-2xl) var(--gutter); }
  body .ca-search-big.et_pb_search { margin-top: var(--space-lg); }
}

/* ─── Partners page ──────────────────────────────────────────────────── */
body .ca-dsec .et_pb_row.ca-partners-hero { padding: var(--space-3xl) var(--gutter) var(--space-2xl); column-gap: var(--space-2xl); align-items: flex-end; }
body .ca-dsec .ca-partners-hero > .et_pb_column { width: auto; max-width: none; }
body .ca-dsec .ca-partners-hero > .ca-partners-intro { flex: 1.4 1 0; }
body .ca-dsec .ca-partners-hero > .ca-statgrid { flex: 1 1 0; }
body .ca-dsec .ca-partners-h1 .et_pb_module_header { font-size: var(--text-display-s); line-height: 1; }
body .ca-dsec .ca-partners-lede { margin-top: var(--space-md); font-size: var(--text-lead); line-height: 1.5; }

/* the counts: four figures in a frame drawn at its corners */
body .ca-dsec .ca-statgrid { position: relative; display: grid !important; grid-template-columns: repeat(2, minmax(0, 1fr)); padding: var(--space-md) 0; }
body .ca-dsec .ca-statgrid::before { content: ""; position: absolute; inset: 0; pointer-events: none; border: var(--rule-hair) solid var(--color-rule-2); -webkit-mask: conic-gradient(at var(--tick) var(--tick), transparent 75%, var(--color-ink) 0) 0 0 / calc(100% - var(--tick)) calc(100% - var(--tick)); mask: conic-gradient(at var(--tick) var(--tick), transparent 75%, var(--color-ink) 0) 0 0 / calc(100% - var(--tick)) calc(100% - var(--tick)); }
body .ca-dsec .ca-statbox { gap: 0; padding: var(--space-sm) var(--space-lg); }
body .ca-dsec .ca-statbox:nth-child(2n) { border-left: var(--rule-hair) solid var(--color-rule); }
body .ca-dsec .ca-statbox .ca-statbox-label { margin-bottom: var(--space-xs); }
body .ca-dsec .ca-statbox-value { font-size: var(--text-3xl); font-weight: 200; line-height: 1; letter-spacing: -0.03em; color: var(--color-ink); font-variant-numeric: tabular-nums; }

/* Tier walls: one row per tier, partners are Text modules (swap in a logo image to replace a tile). */
body .et_pb_section.ca-tiers-sec { row-gap: var(--space-2xl); padding: var(--space-2xl) 0 var(--space-xl) !important; border-bottom: 0; }
body .ca-dsec .et_pb_row.ca-tier { padding: 0 var(--gutter); }
body .ca-dsec .ca-tier .et_pb_column { row-gap: var(--space-md); }
.ca-tier-all { --cols: 4; --logo: 40px; --tile-pad: var(--space-lg) var(--space-md); }
body .ca-dsec .ca-tier-head { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: end; gap: var(--space-2xs) var(--space-md); }
body .ca-dsec .ca-tier-head .ca-tier-label { grid-column: 1; margin: 0; font-size: var(--text-title); color: var(--color-ink); }
body .ca-dsec .ca-tier-sub { grid-column: 1; font-size: var(--text-sm); color: var(--color-muted); }
body .ca-dsec .ca-tier-count { grid-column: 2; grid-row: 1 / 3; font-size: var(--text-sm); color: var(--color-muted); }
body .ca-dsec .ca-partner-wall { display: grid !important; grid-template-columns: repeat(var(--cols), minmax(0, 1fr)); gap: 0; border-top: var(--rule-hair) solid var(--color-rule); border-left: var(--rule-hair) solid var(--color-rule); }
/* A tile is a link to the partner's page. */
.ca-partner { display: flex; align-items: center; gap: var(--space-sm); min-width: 0; padding: var(--tile-pad, var(--space-sm) var(--space-md)); color: inherit; text-decoration: none; border-right: var(--rule-hair) solid var(--color-rule); border-bottom: var(--rule-hair) solid var(--color-rule); transition: background-color var(--dur-short) var(--ease-out); }
.ca-partner:hover { color: inherit; background: var(--color-paper-2); }
.ca-partner:hover .ca-pname { color: var(--color-ink); }
.ca-partner:focus-visible { outline: 2px solid var(--color-focus); outline-offset: -2px; }
.ca-plogo { display: flex; flex: 0 0 var(--logo, 40px); align-items: center; justify-content: center; height: var(--logo, 40px); font-size: var(--text-sm); font-weight: 400; letter-spacing: 0; color: var(--color-ink-2); background: var(--color-paper-3); border: 0; border-radius: var(--radius-card); }
/* Uploaded logos sit on a light plate so dark artwork stays visible. */
.ca-plogo.is-image { flex-basis: auto; max-width: calc(var(--logo, 40px) * 2.5); padding: var(--space-2xs) var(--space-xs); background: var(--color-logo-plate); }
.ca-plogo.is-image img { display: block; width: auto; max-width: 100%; height: calc(var(--logo, 40px) - 8px); object-fit: contain; }
.ca-pname, .ca-parea { display: block; min-width: 0; overflow: clip; text-overflow: ellipsis; white-space: nowrap; }
.ca-pname { font-size: var(--text-md); font-weight: 400; line-height: 1.3; color: var(--color-ink-2); }
.ca-parea { margin-top: var(--space-3xs); font-size: var(--text-sm); color: var(--color-muted); }
#apply { scroll-margin-top: var(--space-3xl); }

/* Solution area tabs ("Partner solutions" menu) on the Partners page and on each area's page. */
body .ca-dsec .et_pb_row.ca-solution-tabs-row { padding: 0 var(--gutter); }
body .ca-dsec .ca-solution-tabs-row .et_pb_column { row-gap: 0; }
body .ca-solutiontabs.et_pb_menu { margin-top: var(--space-sm); }
/* Solution area pages (Divi Theme Builder template "Partner solutions") */
body .ca-dsec .et_pb_row.ca-solution-row { --cols: 4; --logo: 40px; --tile-pad: var(--space-lg) var(--space-md); padding: var(--space-xl) var(--gutter) var(--space-3xl); }
body .ca-dsec .ca-solution-cta p { margin-top: var(--space-lg); font-size: var(--text-md); color: var(--color-ink-2); }
body .ca-dsec .ca-solution-cta a { color: var(--color-ink) !important; text-decoration: underline; text-decoration-color: var(--color-rule-2); }
body .ca-dsec .ca-solution-cta a:hover { text-decoration-color: var(--color-accent); }
/* Solution chips on partner pages link to their area. */
.ca-event-chips a.chip { color: var(--color-ink-2) !important; text-decoration: none; transition: border-color var(--dur-short) var(--ease-out), color var(--dur-short) var(--ease-out); }
.ca-event-chips a.chip:hover { color: var(--color-ink) !important; border-color: var(--color-field-edge); }

/* Partner pages (Divi Theme Builder template "Partner pages"); hero and side cards reuse the CVE/event classes. */
.ca-partner-title { --logo: 64px; display: flex; align-items: center; gap: var(--space-lg); }
.ca-partner-title .ca-plogo { font-size: var(--text-lg); }
.ca-partner-title .ca-cve-title { min-width: 0; }
.ca-partner-events { border-top: var(--rule-hair) solid var(--color-rule); }
.ca-partner-events .chip { font-size: var(--text-2xs); }
#main-content .ca-partner-more { margin: 0; padding: 0; list-style: none; }
.ca-partner-more .ca-partner { --logo: 32px; --tile-pad: var(--space-sm) 0; border-right: 0; border-bottom: 0; border-top: var(--rule-hair) solid var(--color-rule-soft); }

/* Application: pitch left, Divi Contact Form right */
body .ca-dsec .et_pb_row.ca-apply-row { align-self: stretch; padding: var(--section-gap-s) var(--gutter); column-gap: var(--space-2xl); }
body .ca-dsec .ca-apply-form-col { row-gap: var(--space-sm); }
body .ca-apply-form .et_pb_contact_form_label { display: block !important; margin: 0 0 var(--space-xs); padding: 0; font-size: var(--text-sm); font-weight: 400; letter-spacing: 0; text-transform: none; color: var(--color-ink-2); }
body .ca-apply-form input::placeholder,
body .ca-apply-form textarea::placeholder { color: transparent; }
body .ca-apply-form textarea { height: 120px; min-height: 120px; resize: vertical; }
body .ca-apply-form .et_pb_contact_field_options_title { display: none; }
body .ca-apply-form .et_pb_contact_field_options_list { display: flex; flex-wrap: wrap; gap: var(--space-xs); }
body .ca-apply-form .et_pb_contact_field_radio { position: relative; flex: 0 0 auto; width: auto !important; margin: 0; }
body .ca-apply-form .et_pb_contact_field_radio input { position: absolute; width: 1px !important; height: 1px; min-height: 0; padding: 0 !important; opacity: 0; }
body .ca-apply-form .et_pb_contact_field_radio label { display: inline-flex !important; align-items: center; width: auto !important; min-height: 40px; margin: 0; padding: 0 var(--space-md) !important; font-size: var(--text-sm); font-weight: 400; line-height: 1.2; color: var(--color-ink-2); background: transparent; border: var(--rule-hair) solid var(--color-rule-2); border-radius: var(--radius-pill); cursor: pointer; transition: color var(--dur-short) var(--ease-out), background-color var(--dur-short) var(--ease-out); }
body .ca-apply-form .et_pb_contact_field_radio label i { display: none !important; }
body .ca-apply-form .et_pb_contact_field_radio label:hover { color: var(--color-ink); background: var(--color-paper-3); }
body .ca-apply-form .et_pb_contact_field_radio input:checked + label { color: var(--color-ink); background: var(--color-paper-3); border-color: var(--color-field-edge); }
body .ca-apply-form .et_pb_contact_field_radio input:focus-visible + label { outline: 2px solid var(--color-focus); outline-offset: 2px; }
body .ca-apply-form .et_contact_bottom_container { display: flex; float: none; margin-left: 0 !important; flex-wrap: wrap; align-items: center; justify-content: flex-start; gap: var(--space-sm); }
body .ca-dsec .ca-form-note p { font-size: var(--text-sm); color: var(--color-muted); }

@media (max-width: 980px) {
  body .ca-dsec .ca-partners-hero > .ca-partners-intro,
  body .ca-dsec .ca-partners-hero > .ca-statgrid { flex: 1 1 100%; }
  body .ca-dsec .et_pb_row.ca-partners-hero { row-gap: var(--space-xl); }
  .ca-tier-all { --cols: 3; }
  body .ca-dsec .et_pb_row.ca-solution-row { --cols: 2; }
  body .ca-dsec .et_pb_row.ca-apply-row { row-gap: var(--space-xl); }
}
@media (max-width: 767px) {
  body .ca-dsec .et_pb_row.ca-partners-hero { padding: var(--space-2xl) var(--gutter) var(--space-xl); }
  body .et_pb_section.ca-tiers-sec { row-gap: var(--space-xl); padding: var(--space-xl) 0 var(--space-lg) !important; }
  .ca-tier-all { --cols: 2; --logo: 32px; --tile-pad: var(--space-md) var(--space-sm); }
  .ca-pname, .ca-parea { white-space: normal; }
  body .ca-dsec .et_pb_row.ca-solution-row { padding: var(--space-lg) var(--gutter) var(--space-2xl); }
  body .ca-dsec .et_pb_row.ca-apply-row { padding: var(--space-2xl) var(--gutter); }
}

/* ─── tablet (768–980px) ───────────────────────────────────────────── */
@media (max-width: 980px) {
  .ca-urgent-grid, .ca-gather-grid, .ca-atlas, .ca-feed-body, .ca-contact-card { grid-template-columns: minmax(0, 1fr); }
  .ca-urgent-grid { gap: var(--space-lg); }
  .ca-urgent-actions { flex-direction: row; flex-wrap: wrap; }
  .ca-tl { --tl-name: 180px; }
  #main-content .ca-conferences .ca-conf-list.is-atlas { grid-template-columns: minmax(0, 1fr); }
  .ca-facets { padding: var(--space-lg) var(--gutter); border-right: 0; border-bottom: var(--rule-hair) solid var(--color-rule); }
  .ca-facets-drawer > summary { display: flex; align-items: center; min-height: 44px; cursor: pointer; }
  .ca-facets-drawer[open] > summary { margin-bottom: var(--space-sm); }
  .ca-facets-drawer > fieldset { display: inline-block; vertical-align: top; width: 220px; margin-right: var(--space-lg); }
  .ca-toolbar, #main-content .ca-cve-row { padding-left: var(--gutter); }
  .ca-page-head-row { flex-direction: column; align-items: flex-start; }
}

/* ─── phone (≤767px) ───────────────────────────────────────────────── */
@media (max-width: 767px) {
  .ca-section-head { flex-direction: column; align-items: flex-start; gap: var(--space-sm); margin-bottom: var(--space-lg); }
  .ca-facts { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); align-items: start; gap: var(--space-lg); }
  .ca-facts .ca-vrule { display: none; }
  .ca-urgent-actions { flex-direction: column; }
  .ca-urgent-actions .btn { width: 100%; min-width: 0; }
  .ca-gather-grid { gap: var(--space-xl); }
  .ca-map-card { padding: 0; }
  .ca-map { height: 220px; }
  .ca-map-tip { position: fixed; left: var(--space-sm); right: var(--space-sm); bottom: 84px; width: auto; }
  .ca-bigstats { grid-template-columns: minmax(0, 1fr); }
  .ca-page-actions { flex-wrap: wrap; }
  .ca-feed-heat { margin-inline: var(--gutter); }
  .ca-facets-drawer > fieldset { display: block; width: auto; margin-right: 0; }
  #main-content .ca-cve-row { grid-template-columns: 56px minmax(0, 1fr); align-items: start; gap: var(--space-2xs) var(--space-sm); padding: var(--space-md) var(--gutter); }
  .ca-cve-flags { grid-column: 2; flex-direction: row; flex-wrap: wrap; align-items: center; justify-content: flex-start; }
  .ca-cve-meta { white-space: normal; }
  .ca-vt { padding: var(--space-md); }
  .ca-atlas-map-inner { padding: var(--space-md) var(--gutter); }
  /* pins and city counts stay finger-sized on the narrow map */
  .ca-map.is-fit .ca-pin circle, .ca-map.is-fit .ca-pin-count { transform-box: fill-box; transform-origin: center; }
  .ca-map.is-fit .ca-pin circle { transform: scale(1.8); }
  .ca-map.is-fit .ca-pin .ca-pin-count circle { transform: none; }
  .ca-map.is-fit .ca-pin-count { transform: translate(1px, -1px) scale(1.8); }
  /* the filter tabs become one row to swipe */
  .ca-conferences .ca-filter-bar { padding: var(--space-sm) 0; }
  .ca-conferences .ca-filter-tabs { flex-wrap: nowrap; overflow-x: auto; padding: 0 var(--gutter); scrollbar-width: none; }
  .ca-conferences .ca-filter-tabs::-webkit-scrollbar { display: none; }
  .ca-conferences .ca-filter-tabs .tab { flex-shrink: 0; white-space: nowrap; }
  .ca-timeline { padding: var(--space-lg) var(--gutter) var(--space-xl); }
  .ca-tl { --tl-name: 0px; --tl-gap: 0px; }
  .ca-tl-row { grid-template-columns: minmax(0, 1fr); gap: var(--space-2xs); padding: var(--space-2xs) 0; }
  .ca-tl-month .y { display: none; }
  .ca-atlas-list-head { padding: var(--space-sm) var(--gutter); }
  #main-content .ca-conferences .ca-conf-list.is-atlas { padding: 0 var(--gutter) var(--space-xl); }
  .ca-conferences .ca-conf-list.is-atlas .ca-conf-row { grid-template-columns: 44px minmax(0, 1fr); gap: var(--space-2xs) var(--space-sm); padding: var(--space-md) 0; }
  .ca-conferences .ca-conf-list.is-atlas .ca-conf-row > .chip { grid-column: 2; justify-self: start; }
  .ca-contact-card { gap: var(--space-xl); padding: var(--space-lg) 0; }
}

/* ─── home sections switched off on the desk ─── */
body.ca-hide-gather .et_pb_section.ca-sec-gather,
body.ca-hide-signal .et_pb_section.ca-sec-signal { display: none !important; }

/* ─── CVE pages: weakness, reference notes, more from the vendor ─── */
.ca-cve-weakness { display: flex; flex-wrap: wrap; align-items: center; gap: var(--space-xs) var(--space-sm); margin-top: var(--space-md); font-size: var(--text-sm); }
.ca-cve-weakness .label { font-size: var(--text-sm); color: var(--color-muted); }
#main-content .ca-cve-weakness a { padding: var(--space-3xs) var(--space-sm); color: var(--color-ink-2) !important; text-decoration: none; border: var(--rule-hair) solid var(--color-rule-2); border-radius: var(--radius-pill); }
#main-content .ca-cve-weakness a:hover { color: var(--color-ink) !important; border-color: var(--color-field-edge); }
.ca-ref-note { font-size: var(--text-sm); font-weight: 300; color: var(--color-muted); }
/* other CVEs in the same application, below the CVE */
.ca-same-head { display: flex; flex-wrap: wrap; align-items: flex-end; justify-content: space-between; gap: var(--space-sm) var(--space-lg); margin-bottom: var(--space-lg); }
.ca-same-head h2 { max-width: 26ch; margin: var(--space-xs) 0 0; padding: 0; font-size: var(--text-section); line-height: 1.05; color: var(--color-ink); overflow-wrap: break-word; }
.ca-same-head p { margin: var(--space-xs) 0 0; padding: 0; font-size: var(--text-sm); color: var(--color-muted); }
.ca-same-product .ca-cve-list { border-top: var(--rule-hair) solid var(--color-rule); }
#main-content .ca-same-product .ca-cve-row { padding-inline: 0; }
#main-content .ca-same-product .ca-cve-row:last-child, .ca-same-product .ca-cve-row:last-child { border-bottom: 0; }

@media (prefers-reduced-motion: reduce) {
  .ca-conf-row, .ca-pin .halo, .ca-pin .core, .ca-cve-row, .ca-ref-list a, .ca-cve-card, .ca-carousel-btn, .ca-partner, .ca-pill span, .ca-tl-bar, .ca-trend .mark, .ca-vendor-track span { transition: none; }
  .ca-carousel-btn:active:not(:disabled) { transform: none; }
}
