.ec-catalog{padding:var(--space-12) var(--space-8) var(--space-16);background:var(--white)}
.ec-inner{max-width:var(--container-wide);margin-inline:auto}
.ec-calendar{margin-bottom:var(--space-16);scroll-margin-top:var(--space-24)}
.ec-calendar-heading{display:flex;align-items:center;justify-content:space-between;gap:var(--space-6)}
.ec-calendar-heading h2{margin:0;font-size:var(--type-h3)}
.ec-calendar-actions{display:flex;align-items:center;justify-content:flex-end;gap:var(--space-4);flex-shrink:0}
.ch-site .ec-plan-download{gap:var(--space-2);padding:var(--space-2) var(--space-4);font-size:var(--type-caption);min-height:var(--control-target);white-space:nowrap}
.ec-plan-download[hidden],.ec-plan-download-status[hidden]{display:none}
.ec-plan-download svg{flex-shrink:0}
.ec-plan-download:disabled{cursor:progress;opacity:.65}
.ec-plan-download-status{margin:var(--space-3) 0 0;font-size:var(--type-caption);color:var(--text-muted)}
.ec-year-switch{display:flex;gap:var(--space-1);padding:var(--space-1);background:var(--paper);border-radius:var(--button-radius)}
.ec-year-switch a{display:flex;align-items:center;justify-content:center;min-height:var(--control-target);padding:var(--space-2) var(--space-6);border-radius:var(--button-radius);color:var(--text-muted);text-decoration:none;font-size:var(--type-caption)}
.ec-year-switch a[aria-current=true]{background:var(--ink);color:var(--white)}
.ec-calendar-intro{margin:var(--space-3) 0 var(--space-6);font-size:var(--type-caption);line-height:var(--leading-body);color:var(--text-muted)}
.ec-plan-mobile-hint{display:none}
.ec-plan-scroll{max-width:100%;overflow-x:auto;overscroll-behavior-inline:contain;border-radius:var(--radius-graphic);box-shadow:var(--shadow-soft);border:1px solid var(--line);scrollbar-width:thin;scrollbar-color:var(--input-border) var(--paper)}
.ec-plan{--plan-label:calc(var(--space-16) * 5);min-width:var(--container-content);background:var(--white)}
.ec-color-coral{--plan-color:var(--brand-coral)}
.ec-color-blue{--plan-color:var(--information)}
.ec-color-green{--plan-color:var(--success)}
.ec-color-amber{--plan-color:var(--warning)}
.ec-color-graphite{--plan-color:var(--ink)}
.ec-color-rose{--plan-color:var(--accent-text)}
.ec-color-grey{--plan-color:var(--text-muted)}
.ec-plan-head,.ec-plan-row{display:grid;grid-template-columns:var(--plan-label) minmax(0,1fr)}
.ec-plan-head{background:var(--paper);min-height:var(--space-16);align-items:stretch;font-size:var(--type-caption);font-weight:var(--weight-medium)}
.ec-plan-head>span{display:flex;align-items:center;padding:var(--space-4) var(--space-6);color:var(--text-muted);position:sticky;left:0;background:var(--paper);z-index:2}
.ec-plan-months,.ec-plan-lane{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));padding-inline:var(--space-2)}
.ec-plan-months>span{display:flex;align-items:center;justify-content:center;color:var(--text-muted)}
.ec-plan-months>span:nth-child(3n+1){color:var(--ink)}
.ec-plan-group+.ec-plan-group{border-top:1px solid var(--paper)}
.ec-plan-label{display:flex;align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-4);min-height:var(--space-16);position:sticky;left:0;z-index:2;background:var(--white)}
.ec-plan button{font-family:var(--font-body);cursor:pointer}
.ec-plan a{font-family:var(--font-body);text-decoration:none}
.ec-plan-name,.ec-plan-cycle-name{border:0;background:transparent;color:var(--ink);text-align:left;line-height:var(--leading-ui);font-size:var(--type-caption)}
.ec-plan-name{padding:var(--space-1) 0;font-weight:var(--weight-medium)}
.ec-plan-name small{display:block;color:var(--text-muted);font-size:var(--type-detail);font-weight:var(--weight-regular);margin-top:var(--space-1)}
.ec-plan-name:hover,.ec-plan-cycle-name:hover{color:var(--plan-color)}
.ec-plan-toggle{display:grid;place-items:center;flex:0 0 var(--space-8);height:var(--space-8);padding:0;border:0;border-radius:50%;background:color-mix(in srgb,var(--plan-color) 10%,var(--white));color:var(--plan-color)}
.ec-plan-toggle svg{transition:transform var(--duration) var(--ease)}
.ec-plan-toggle[aria-expanded=true] svg{transform:rotate(90deg)}
.ec-plan-dot{flex:0 0 var(--space-2);width:var(--space-2);height:var(--space-2);margin-inline:var(--space-3);border-radius:50%;background:var(--plan-color)}
.ec-plan-lane{align-items:center;gap:0;min-width:0;background:repeating-linear-gradient(90deg,transparent 0,transparent calc(25% - 1px),var(--paper) calc(25% - 1px),var(--paper) 25%)}
.ec-plan-bar{display:flex;align-items:center;justify-content:center;min-height:var(--space-8);min-width:0;margin:var(--space-2) var(--space-1);padding:var(--space-1);border:1px solid transparent;border-radius:var(--radius-control);background:color-mix(in srgb,var(--plan-color) 18%,var(--white));color:var(--ink);font-size:var(--type-detail);font-weight:var(--weight-medium);line-height:var(--leading-ui);transition:background var(--duration) var(--ease),box-shadow var(--duration) var(--ease)}
.ec-plan-marks{display:flex;flex-wrap:wrap;justify-content:center;gap:var(--space-2);flex-shrink:0}
.ec-plan-marks i{display:block;width:var(--space-1);height:var(--space-4);border-radius:var(--radius-control);background:var(--plan-color)}
.ec-plan-summary,.ec-plan-range{gap:var(--space-2);padding-inline:var(--space-2);font-size:var(--type-caption);flex-wrap:wrap}
.ec-plan-bar.is-planned{border:1px dashed var(--plan-color);background:color-mix(in srgb,var(--plan-color) 12%,var(--white));color:var(--ink)}
.ec-plan-bar:hover,.ec-plan-bar:focus-visible{background:color-mix(in srgb,var(--plan-color) 28%,var(--white));box-shadow:var(--shadow-soft)}
.ec-plan-children[hidden]{display:none}
.ec-plan-children{background:var(--paper);padding-block:var(--space-2)}
.ec-plan-cycle{background:var(--white)}
.ec-plan-cycle+.ec-plan-cycle{border-top:1px solid var(--paper)}
.ec-plan-cycle-label{padding-left:var(--space-8)}
.ec-plan-cycle-name{min-width:0;padding-block:var(--space-2)}
.ec-plan-cycle-name small{display:block;font-size:var(--type-detail);font-weight:var(--weight-medium);color:var(--plan-color);margin-bottom:var(--space-1)}
.ec-plan-cycle-name span{display:block;font-size:var(--type-caption);font-weight:var(--weight-medium);line-height:var(--leading-ui)}
.ec-plan-range{justify-content:flex-start;padding-inline:var(--space-4)}
.ec-plan-key{display:flex;align-items:center;flex-wrap:wrap;gap:var(--space-3) var(--space-6);margin:var(--space-4) 0 0;color:var(--text-muted);font-size:var(--type-detail);line-height:var(--leading-compact)}
.ec-plan-key>span{display:inline-flex;align-items:center;gap:var(--space-2)}
.ec-plan-key i{width:var(--space-4);height:var(--space-2);background:var(--input-border);border-radius:var(--radius-control)}
.ec-plan-key i.is-planned{background:transparent;border:1px dashed var(--input-border)}
.ec-plan-tooltip{position:fixed;z-index:30;width:calc(var(--space-16) * 5);max-width:calc(100vw - var(--space-8));padding:var(--space-6);border:1px solid var(--line);border-top:3px solid var(--plan-color,var(--brand-coral));border-radius:var(--radius-surface);background:var(--white);box-shadow:var(--shadow-float);color:var(--ink)}
.ec-plan-tooltip[hidden]{display:none}
.ec-plan-tooltip p{margin:0 0 var(--space-2);font-size:var(--type-detail);color:var(--text-muted);line-height:var(--leading-compact)}
.ec-plan-tooltip div{font-size:var(--type-caption);line-height:var(--leading-compact)}
.ec-plan-cycle-events[hidden]{display:none}
.ec-plan-cycle-events{padding-block:var(--space-2);background:var(--paper)}
.ec-plan-cycle-events ol{position:sticky;left:0;box-sizing:border-box;width:min(100%,calc(100vw - var(--space-12) - 2px));margin:0;padding:0 var(--space-6) 0 var(--space-12);list-style:none}
.ec-plan-cycle-events li+li{border-top:1px solid var(--line)}
.ec-plan-cycle-events a,.ec-plan-undated{display:grid;grid-template-columns:var(--space-24) minmax(0,1fr) auto;gap:var(--space-4);align-items:start;min-height:var(--control-target);padding-block:var(--space-3);color:var(--ink);font-size:var(--type-caption);line-height:var(--leading-compact)}
.ec-plan-cycle-events time,.ec-plan-undated>span:first-child{color:var(--text-muted);font-size:var(--type-detail)}
.ec-plan-cycle-events time small{display:block;font-size:inherit}
.ec-plan-cycle-events a>span:first-of-type{display:flex;align-items:baseline;justify-content:space-between;gap:var(--space-6)}
.ec-plan-event-speakers{flex:0 0 calc(var(--space-16) * 3);color:var(--text-muted);font-size:var(--type-detail);line-height:var(--leading-compact)}
.ec-plan-cycle-events a>span:last-child{color:var(--plan-color)}
.ec-plan-cycle-events a:hover>span:first-of-type{text-decoration:underline;text-underline-offset:var(--space-1)}
.ec-cycles{margin-top:var(--space-8);padding:var(--space-4) var(--space-6);background:var(--paper);border-radius:var(--radius-control)}
.ec-cycles>.sr-cycle-link:first-child{border:0}
.ec-browser,.ch-event-card{scroll-margin-top:var(--space-24)}
@container cogni (max-width:580px){
 .ec-calendar-heading{align-items:start;flex-direction:column;gap:var(--space-4)}
 .ec-calendar-heading h2{font-size:var(--type-h5)}
 .ec-calendar-actions{width:100%;justify-content:space-between;gap:var(--space-2);flex-wrap:wrap}
 .ec-calendar-actions .ec-year-switch a{padding-inline:var(--space-4)}
 .ec-plan-desktop-hint{display:none}
 .ec-plan-mobile-hint{display:inline}
 .ec-plan{--plan-label:calc(var(--space-16) * 3 + var(--space-4));min-width:calc(var(--space-16) * 14)}
 .ec-plan-scroll{border-radius:var(--radius-surface)}
 .ec-plan-label{gap:var(--space-1);padding:var(--space-3) var(--space-2)}
 .ec-plan-name{min-width:0;font-size:var(--type-caption);overflow-wrap:anywhere}
 .ec-plan-head>span{padding-inline:var(--space-3)}
 .ec-plan-toggle{flex-basis:var(--space-6);height:var(--control-target);border-radius:var(--radius-control)}
 .ec-plan-dot{margin-inline:var(--space-2)}
 .ec-plan-cycle-label{padding-left:var(--space-3)}
 .ec-plan-label,.ec-plan-head>span{box-shadow:4px 0 8px color-mix(in srgb,var(--ink) 4%,transparent)}
 .ec-plan-cycle-events ol{padding-inline:var(--space-4)}
 .ec-plan-cycle-events a,.ec-plan-undated{grid-template-columns:var(--space-16) minmax(0,1fr) auto;gap:var(--space-3)}
 .ec-plan-cycle-events a>span:first-of-type{display:block}
 .ec-plan-event-speakers::before{content:' · '}
 .ec-plan-bar{min-height:var(--control-target)}
 .ec-plan-tooltip{display:none}
 .ec-calendar{margin-bottom:var(--space-12)}
}
.ec-section-heading{display:flex;align-items:end;justify-content:space-between;gap:var(--space-6);margin-bottom:var(--space-6)}
.ec-section-heading p{margin:0 0 var(--space-2);font-size:var(--type-caption);color:var(--accent-text)}
.ec-section-heading h2{margin:0;font-size:var(--type-h3)}
:is(.ch-site,.editor-styles-wrapper) .ch-series-controls{display:flex}
:is(.ch-site,.editor-styles-wrapper) .ch-series-controls[hidden]{display:none}
:is(.ch-site,.editor-styles-wrapper) .ch-series-grid:not(.ec-series-grid)>.wp-block-post{scroll-snap-align:start}
.ec-browser{margin-top:var(--space-12)}
.ec-view-tabs{display:flex;gap:var(--space-8);border-bottom:1px solid var(--line)}
.ec-view-tabs a{position:relative;display:flex;align-items:center;min-height:52px;text-decoration:none;color:var(--text-muted)}
.ec-view-tabs a[aria-current=page]{color:var(--ink);font-weight:var(--weight-medium)}
.ec-view-tabs a[aria-current=page]::after{content:'';position:absolute;left:0;right:0;bottom:-1px;height:2px;background:var(--brand-coral)}
.ec-filters{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:var(--space-4);margin-top:var(--space-6);padding:var(--space-6);background:var(--paper);border-radius:var(--radius-control)}
.ec-filters label{display:grid;gap:var(--space-2);min-width:0;font-size:var(--type-caption);font-weight:var(--weight-medium)}
.ec-filter-topic[hidden]{display:none}
.ec-filters select{width:100%;min-height:var(--control-height);padding:0 var(--space-3);border:1px solid var(--input-border);border-radius:var(--radius-control);background:var(--white);color:var(--ink);font:inherit;font-weight:var(--weight-regular)}
.ec-filter-actions{grid-column:1/-1;display:flex;align-items:center;gap:var(--space-4)}
.ec-filter-actions a,.ec-applied a{display:inline-flex;align-items:center;min-height:44px;color:var(--text-muted);text-underline-offset:4px}
.ec-applied{display:flex;align-items:center;flex-wrap:wrap;gap:var(--space-2);margin:var(--space-4) 0 0;font-size:var(--type-caption);color:var(--text-muted)}
.ec-results-heading{display:flex;align-items:baseline;justify-content:space-between;gap:var(--space-4);margin-top:var(--space-10);margin-bottom:var(--space-6)}
.ec-results-heading h2{margin:0;font-size:var(--type-h3)}
.ec-results-heading span{font-size:var(--type-caption);color:var(--text-muted)}
.ec-event-list{display:grid;gap:var(--space-6)}
.ec-empty{margin:0;padding:var(--space-8);border-left:3px solid var(--brand-coral);background:var(--paper);font-size:var(--type-body);line-height:var(--leading-body)}
:is(.ch-site,.editor-styles-wrapper) .ch-event-topic{margin:calc(-1 * var(--space-2)) 0 var(--space-3);font-size:var(--type-detail);line-height:var(--leading-compact);color:var(--accent-text)}
@container cogni (min-width:1101px){:is(.ch-site,.editor-styles-wrapper) .ch-series-grid:not(.ec-series-grid){grid-template-columns:none;grid-auto-flow:column;grid-auto-columns:20%;overflow-x:auto;scroll-snap-type:x mandatory;overscroll-behavior-inline:contain;scrollbar-width:none}}
@container cogni (min-width:1101px){
  :is(.ch-site,.editor-styles-wrapper) .ec-series .ch-series-grid{grid-auto-columns:calc((100% - var(--space-4) * 3) / 4);gap:var(--space-4);background:transparent;border-radius:0}
  :is(.ch-site,.editor-styles-wrapper) .ec-series .ch-series-grid>.wp-block-post{background:var(--paper);border:0;border-radius:var(--radius-surface)}
  :is(.ch-site,.editor-styles-wrapper) .ec-series .ch-series-card{border:0}
}
:is(.ch-site,.editor-styles-wrapper) .ch-series-grid:not(.ec-series-grid)::-webkit-scrollbar{display:none}
@container cogni (min-width:581px) and (max-width:1100px){
  :is(.ch-site,.editor-styles-wrapper) .ch-series-grid:not(.ec-series-grid){display:grid;grid-template-columns:none;grid-template-rows:1fr;grid-auto-flow:column;grid-auto-columns:calc((100% - var(--space-4)) / 2);gap:var(--space-4);overflow-x:auto;scroll-snap-type:x mandatory;overscroll-behavior-inline:contain;scroll-padding-inline:var(--space-2);padding:var(--space-2);margin:calc(-1 * var(--space-2));background:transparent;border-radius:0;scrollbar-width:none}
  :is(.ch-site,.editor-styles-wrapper) .ch-series-grid:not(.ec-series-grid)>.wp-block-post{display:grid;grid-template-rows:auto 1fr auto;grid-row:auto;scroll-snap-align:start;background:var(--paper);border:0;border-radius:var(--radius-control)}
  :is(.ch-site,.editor-styles-wrapper) .ch-series-grid:not(.ec-series-grid) .ch-series-card{display:grid;grid-template-rows:auto 1fr auto;border:0}
}
@container cogni (max-width:900px){.ec-filters{grid-template-columns:repeat(2,minmax(0,1fr))}}
@container cogni (max-width:580px){
  .ec-catalog{padding:var(--space-8) var(--space-6) var(--space-12)}
  .ec-section-heading h2,.ec-results-heading h2{font-size:var(--type-h5)}
  :is(.ch-site,.editor-styles-wrapper) .ch-series-grid:not(.ec-series-grid){display:grid;grid-template-columns:none;grid-template-rows:1fr;grid-auto-flow:column;grid-auto-columns:calc(100% - var(--space-12));gap:var(--space-3);overflow-x:auto;scroll-snap-type:x mandatory;overscroll-behavior-inline:contain;scroll-padding-inline:var(--space-2);padding:var(--space-2);margin:calc(-1 * var(--space-2));background:transparent;border-radius:0;scrollbar-width:none}
  :is(.ch-site,.editor-styles-wrapper) .ch-series-grid:not(.ec-series-grid)>.wp-block-post{display:grid;grid-template-rows:auto 1fr auto;grid-row:auto;scroll-snap-align:start;background:var(--paper);border:0;border-radius:var(--radius-control)}
  :is(.ch-site,.editor-styles-wrapper) .ch-series-grid:not(.ec-series-grid) .ch-series-card{display:grid;grid-template-rows:auto 1fr auto;padding:var(--space-6);border:0}
  .ec-view-tabs{gap:var(--space-6);overflow-x:auto}
  .ec-view-tabs a{white-space:nowrap;font-size:var(--type-caption)}
  .ec-filters{grid-template-columns:1fr;padding:var(--space-4)}
  .ec-filter-actions{display:grid;grid-template-columns:1fr;text-align:center}
  .ec-results-heading{align-items:flex-end}
  .ec-results-heading span{white-space:nowrap}
}
