/* CAFEX Theme v2.2.0 Participants and Products
   Public-only layer. Cabinet layouts/assets are intentionally untouched. */
:root {
  --cfx2-paper: #f3f0e8;
  --cfx2-paper-2: #e9e5dc;
  --cfx2-ink: #002957;
  --cfx2-ink-rgb: 0,41,87;
  --cfx2-muted: #66707c;
  --cfx2-orange: #ff5a00;
  --cfx2-blue: #4659e8;
  --cfx2-white: #fff;
  --cfx2-line: rgba(var(--cfx2-ink-rgb),.16);
  --cfx2-line-dark: rgba(255,255,255,.17);
  --cfx2-max: 1440px;
  --cfx2-pad: clamp(22px,4vw,64px);
  --cfx2-radius: 6px;
  --cfx2-header: 88px;
}

.cfx2-body { background: var(--cfx2-paper); color: var(--cfx2-ink); }
.cfx2-main { min-height: 60vh; }
.cfx2-shell { width: min(100%,var(--cfx2-max)); margin-inline:auto; padding-inline:var(--cfx2-pad); }
.cfx2-skip-link { position:fixed; z-index:9999; left:18px; top:-80px; padding:12px 18px; background:var(--cfx2-orange); color:#fff; border-radius:4px; transition:top .2s; }
.cfx2-skip-link:focus { top:18px; }
.cfx2-arrow { width:19px; height:19px; fill:none; stroke:currentColor; stroke-width:1.8; stroke-linecap:round; stroke-linejoin:round; }
.cfx2-icon-external {
  display: inline-block;
  width: 1em;
  height: 1em;
  flex: 0 0 auto;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.8;
  stroke-linecap: round;
  stroke-linejoin: round;
  vertical-align: -0.125em;
}
.cfx2-icon-external path {
  fill: none;
  stroke: currentColor;
}
.cfx2-logo,
.cfx2-footer__logo { letter-spacing:.07em !important; }
.cfx2-header .cbx-nav-item.is-current > .cbx-nav-trigger::after { right:0; }
.cfx2-header .cbx-nav-trigger::after { content:""; position:absolute; left:0; right:100%; bottom:-7px; height:2px; background:var(--cfx2-orange); transition:right .2s ease; }
.cfx2-header .cbx-nav-item.is-current > .cbx-nav-trigger::after,
.cfx2-header .cbx-nav-trigger:hover::after { right:0; }

/* Page hero */
.cfx2-page-hero { position:relative; min-height:clamp(430px,56vh,680px); padding-top:var(--cfx2-header); overflow:hidden; border-bottom:1px solid var(--cfx2-line); }
.cfx2-page-hero--dark { background:var(--cfx2-ink); color:#fff; }
.cfx2-page-hero--blue { background:var(--cfx2-blue); color:#fff; }
.cfx2-page-hero--light { background:var(--cfx2-paper); color:var(--cfx2-ink); }
.cfx2-page-hero__image { position:absolute; inset:0; background-size:cover; background-position:center; filter:grayscale(.15); }
.cfx2-page-hero.has-image::after { content:""; position:absolute; inset:0; background:linear-gradient(90deg,rgba(0,0,0,.82),rgba(0,0,0,.38)); }
.cfx2-page-hero__grid { position:absolute; inset:0; opacity:.55; background-image:linear-gradient(to right,currentColor 1px,transparent 1px),linear-gradient(to bottom,currentColor 1px,transparent 1px); background-size:calc(100% / 12) 100%,100% 72px; color:rgba(255,255,255,.08); pointer-events:none; }
.cfx2-page-hero--light .cfx2-page-hero__grid { color:rgba(var(--cfx2-ink-rgb),.07); }
.cfx2-page-hero__inner { position:relative; z-index:2; min-height:inherit; display:grid; grid-template-columns:minmax(0,1fr) minmax(230px,.28fr); align-content:space-between; gap:38px; padding-top:34px; padding-bottom:clamp(42px,7vw,86px); }
.cfx2-breadcrumbs { grid-column:1/-1; font-family:"IBM Plex Mono",monospace; font-size:10px; letter-spacing:.06em; text-transform:uppercase; }
.cfx2-breadcrumbs ol { display:flex; flex-wrap:wrap; gap:8px 16px; list-style:none; margin:0; padding:0; }
.cfx2-breadcrumbs li { display:flex; align-items:center; gap:16px; opacity:.68; }
.cfx2-breadcrumbs li:not(:last-child)::after { content:"/"; opacity:.45; }
.cfx2-breadcrumbs a:hover { color:var(--cfx2-orange); }
.cfx2-page-hero__copy { align-self:end; max-width:1040px; }
.cfx2-page-hero__copy h1 { max-width:1050px; margin:0; font-family:Manrope,sans-serif; font-size:clamp(48px,6.4vw,104px); line-height:.94; letter-spacing:-.072em; font-weight:760; text-wrap:balance; }
.cfx2-page-hero__copy > p { max-width:780px; margin:30px 0 0; font-family:Manrope,sans-serif; font-size:clamp(18px,1.65vw,27px); line-height:1.35; letter-spacing:-.03em; opacity:.8; }
.cfx2-page-hero__actions { display:flex; flex-wrap:wrap; gap:12px; margin-top:32px; }
.cfx2-page-hero__meta { align-self:end; padding-top:20px; border-top:1px solid currentColor; opacity:.72; font-family:"IBM Plex Mono",monospace; font-size:10px; text-transform:uppercase; }
.cfx2-page-hero__meta span,.cfx2-page-hero__meta strong { display:block; }
.cfx2-page-hero__meta strong { margin-top:8px; font-size:12px; color:inherit; }

/* Generic internal layout */
.cfx2-page-grid { display:grid; grid-template-columns:minmax(220px,.26fr) minmax(0,1fr); gap:clamp(42px,7vw,110px); padding-top:clamp(60px,8vw,112px); padding-bottom:clamp(80px,10vw,150px); }
.cfx2-page-content { min-width:0; }
.cfx2-page-grid--single { grid-template-columns:minmax(0,1fr); }
.cfx2-page-grid--single .cfx2-page-content { width:100%; max-width:1180px; }
.cfx2-page-grid--single .cfx2-prose,
.cfx2-page-grid--single .cfx2-content-section { width:100%; }
.cfx2-page-grid--single .cfx2-richtext .cfx2-legal-body { width:100%; max-width:980px; }
.cfx2-page-grid--single .cfx2-embed { width:100%; max-width:1100px; }
.cfx2-sidebar__sticky { position:sticky; top:calc(var(--cfx2-header) + 28px); padding-top:18px; border-top:1px solid var(--cfx2-ink); }
.cfx2-sidebar h2 { margin:0 0 22px; font-family:"IBM Plex Mono",monospace; font-size:10px; letter-spacing:.08em; text-transform:uppercase; }
.cfx2-sidebar nav { display:grid; }
.cfx2-sidebar nav a { display:grid; grid-template-columns:32px 1fr; gap:10px; padding:13px 0; border-bottom:1px solid var(--cfx2-line); font-size:13px; font-weight:650; }
.cfx2-sidebar nav a span { color:var(--cfx2-muted); font-family:"IBM Plex Mono",monospace; font-size:10px; }
.cfx2-sidebar nav a:hover { color:var(--cfx2-orange); }
.cfx2-legal-toc nav { max-height:calc(100vh - var(--cfx2-header) - 120px); overflow:auto; scrollbar-width:thin; }
.cfx2-legal-toc nav a { grid-template-columns:32px minmax(0,1fr); }
.cfx2-sidebar__cta { display:flex; justify-content:space-between; gap:20px; margin-top:24px; padding:18px; background:var(--cfx2-ink); color:#fff; font-size:13px; font-weight:700; border-radius:var(--cfx2-radius); }
.cfx2-sidebar__cta:hover { background:var(--cfx2-blue); }

.cfx2-content-section { scroll-margin-top:calc(var(--cfx2-header) + 32px); margin-bottom:clamp(72px,9vw,130px); }
.cfx2-content-section:last-child { margin-bottom:0; }
.cfx2-content-kicker { margin-bottom:20px; color:var(--cfx2-muted); font-family:"IBM Plex Mono",monospace; font-size:10px; letter-spacing:.09em; text-transform:uppercase; }
.cfx2-prose h2,.cfx2-content-section h2,.cfx2-contact-page h2 { max-width:950px; margin:0 0 30px; font-family:Manrope,sans-serif; font-size:clamp(38px,5vw,76px); line-height:.98; letter-spacing:-.065em; }
.cfx2-prose h3 { font-family:Manrope,sans-serif; letter-spacing:-.04em; }
.cfx2-prose p,.cfx2-content-section > p { max-width:820px; color:var(--cfx2-muted); font-size:16px; line-height:1.8; }
.cfx2-lead { max-width:920px !important; margin:0 0 28px; color:var(--cfx2-ink) !important; font-family:Manrope,sans-serif; font-size:clamp(20px,2vw,31px) !important; line-height:1.35 !important; letter-spacing:-.035em; }
.cfx2-prose blockquote { margin:42px 0 0; padding:28px 0 28px clamp(24px,4vw,52px); border-left:4px solid var(--cfx2-orange); font-family:Manrope,sans-serif; font-size:clamp(22px,2.2vw,34px); line-height:1.35; letter-spacing:-.035em; }
.cfx2-content-section--dark { margin-inline:clamp(-28px,-4vw,-64px); padding:clamp(36px,5vw,72px); background:var(--cfx2-ink); color:#fff; border-radius:var(--cfx2-radius); }
.cfx2-content-section--dark p,.cfx2-content-section--dark .cfx2-content-kicker { color:rgba(255,255,255,.66); }
.cfx2-content-section--venue { padding:clamp(34px,5vw,68px); background:var(--cfx2-blue); color:#fff; border-radius:var(--cfx2-radius); }
.cfx2-content-section--venue p { color:rgba(255,255,255,.76); }
.cfx2-text-link { display:inline-flex; align-items:center; gap:18px; margin-top:18px; font-weight:750; border-bottom:1px solid currentColor; }
.cfx2-text-link:hover { color:var(--cfx2-orange); }

.cfx2-topic-grid,.cfx2-format-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); border-top:1px solid var(--cfx2-line); border-left:1px solid var(--cfx2-line); }
.cfx2-topic-grid article,.cfx2-format-grid article { min-height:230px; padding:28px; border-right:1px solid var(--cfx2-line); border-bottom:1px solid var(--cfx2-line); }
.cfx2-topic-grid article > span,.cfx2-format-grid article > span { color:var(--cfx2-orange); font-family:"IBM Plex Mono",monospace; font-size:11px; }
.cfx2-topic-grid h3,.cfx2-format-grid h3 { margin:44px 0 12px; font-size:25px; }
.cfx2-topic-grid p,.cfx2-format-grid p { margin:0; color:var(--cfx2-muted); font-size:14px; line-height:1.65; }
.cfx2-direction-card { position:relative; min-height:230px; padding:28px; border-right:1px solid var(--cfx2-line); border-bottom:1px solid var(--cfx2-line); transition:background .2s ease,color .2s ease; }
.cfx2-direction-card > span { color:var(--cfx2-orange); font-family:"IBM Plex Mono",monospace; font-size:11px; }
.cfx2-direction-card h3 { margin:44px 0 12px; font-size:25px; }
.cfx2-direction-card p { margin:0; max-width:620px; color:var(--cfx2-muted); font-size:14px; line-height:1.65; }
.cfx2-direction-card b { position:absolute; top:27px; right:28px; font-size:22px; }
.cfx2-direction-card:hover { background:var(--cfx2-ink); color:#fff; }
.cfx2-direction-card:hover p { color:rgba(255,255,255,.68); }
.cfx2-direction-card--wide { grid-column:span 2; }
.cfx2-direction-list { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:1px; padding:1px; list-style:none; background:var(--cfx2-line); }
.cfx2-direction-list li { padding:20px 24px; background:var(--cfx2-paper); }
.cfx2-direction-photos { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:18px; }
.cfx2-direction-photos > div { display:grid; place-items:center; aspect-ratio:4/3; border:1px solid var(--cfx2-line); background:linear-gradient(145deg,var(--cfx2-paper),#e8e8e3); color:var(--cfx2-muted); font-family:"IBM Plex Mono",monospace; font-size:11px; letter-spacing:.06em; text-transform:uppercase; }
.cfx2-direction-back { margin:0 0 48px; font-weight:650; }
.cfx2-facts { display:grid; grid-template-columns:repeat(3,1fr); margin-top:50px; border-top:1px solid rgba(255,255,255,.2); }
.cfx2-facts div { padding:28px 18px 0 0; }
.cfx2-facts strong { display:block; font-family:Manrope,sans-serif; font-size:clamp(46px,5vw,78px); letter-spacing:-.07em; color:var(--cfx2-orange); }
.cfx2-facts span { color:rgba(255,255,255,.65); font-size:13px; }
.cfx2-chip-list,.cfx2-tags { display:flex; flex-wrap:wrap; gap:8px; }
.cfx2-chip-list span,.cfx2-tags span { padding:9px 12px; border:1px solid var(--cfx2-line); border-radius:999px; font-family:"IBM Plex Mono",monospace; font-size:10px; text-transform:uppercase; }
.cfx2-schedule-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:1px; background:var(--cfx2-line); }
.cfx2-schedule-grid article { padding:30px; background:var(--cfx2-paper); }
.cfx2-schedule-grid span { font-family:"IBM Plex Mono",monospace; font-size:11px; text-transform:uppercase; }
.cfx2-schedule-grid strong { display:block; margin:36px 0 6px; font-family:Manrope,sans-serif; font-size:34px; letter-spacing:-.05em; }
.cfx2-schedule-grid p { margin:0; color:var(--cfx2-muted); font-size:13px; }
.cfx2-rule-list { list-style:none; margin:34px 0 0; padding:0; border-top:1px solid var(--cfx2-line); }
.cfx2-rule-list li { display:grid; grid-template-columns:90px 1fr; gap:30px; padding:22px 0; border-bottom:1px solid var(--cfx2-line); }
.cfx2-rule-list strong { color:var(--cfx2-orange); font-family:"IBM Plex Mono",monospace; }
.cfx2-rule-list span { color:var(--cfx2-muted); }
.cfx2-process-list { border-top:1px solid var(--cfx2-line); }
.cfx2-process-list > div { display:grid; grid-template-columns:70px minmax(180px,.55fr) 1fr; gap:24px; padding:24px 0; border-bottom:1px solid var(--cfx2-line); }
.cfx2-process-list span { color:var(--cfx2-orange); font-family:"IBM Plex Mono",monospace; }
.cfx2-process-list strong { font-family:Manrope,sans-serif; font-size:18px; }
.cfx2-process-list p { margin:0; color:var(--cfx2-muted); }
.cfx2-organizer-panel { display:grid; grid-template-columns:1.1fr .9fr .7fr; gap:1px; background:var(--cfx2-line); }
.cfx2-organizer-panel > * { margin:0; padding:28px; background:var(--cfx2-paper); font-style:normal; }
.cfx2-organizer-panel strong,.cfx2-organizer-panel a { display:block; font-weight:750; }
.cfx2-organizer-panel p,.cfx2-organizer-panel span { color:var(--cfx2-muted); font-size:13px; }

/* CTA */
.cfx2-inline-cta { display:grid; grid-template-columns:1fr auto; gap:38px; align-items:end; margin-top:clamp(60px,8vw,110px); padding:clamp(32px,5vw,70px); border-radius:var(--cfx2-radius); }
.cfx2-inline-cta--orange { background:var(--cfx2-orange); color:#fff; }
.cfx2-inline-cta--blue { background:var(--cfx2-blue); color:#fff; }
.cfx2-inline-cta--dark { background:var(--cfx2-ink); color:#fff; }
.cfx2-inline-cta span { font-family:"IBM Plex Mono",monospace; font-size:10px; letter-spacing:.08em; }
.cfx2-inline-cta h2 { max-width:850px; margin:20px 0 0; font-family:Manrope,sans-serif; font-size:clamp(36px,4.5vw,68px); line-height:1; letter-spacing:-.065em; }
.cfx2-inline-cta p { max-width:650px; color:rgba(255,255,255,.78); }

/* Contacts */
.cfx2-route-grid { display:grid; grid-template-columns:repeat(2,1fr); border-top:1px solid var(--cfx2-line); border-left:1px solid var(--cfx2-line); }
.cfx2-route-grid a { display:grid; grid-template-columns:42px 1fr auto; gap:14px; align-items:center; min-height:122px; padding:22px; border-right:1px solid var(--cfx2-line); border-bottom:1px solid var(--cfx2-line); }
.cfx2-route-grid a span { color:var(--cfx2-orange); font-family:"IBM Plex Mono",monospace; font-size:10px; }
.cfx2-route-grid a strong { display:block; font-family:Manrope,sans-serif; font-size:20px; }
.cfx2-route-grid a small { grid-column:2; color:var(--cfx2-muted); }
.cfx2-route-grid a b { grid-column:3; grid-row:1/3; font-size:22px; }
.cfx2-route-grid a:hover { background:var(--cfx2-ink); color:#fff; }
.cfx2-route-grid a:hover small { color:rgba(255,255,255,.65); }
.cfx2-team-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:1px; background:var(--cfx2-line); }
.cfx2-contact-card { min-height:250px; padding:26px; background:var(--cfx2-paper); }
.cfx2-contact-card__photo { width:100%; aspect-ratio:4/5; margin:0 0 22px; object-fit:cover; object-position:center top; }
.cfx2-contact-card__photo--empty { background:linear-gradient(145deg,var(--cfx2-paper),#e9e9e5); }
.cfx2-contact-card[id] { scroll-margin-top:calc(var(--cfx2-header) + 32px); }
.cfx2-contact-card h3 { margin:0 0 10px; font-size:24px; }
.cfx2-contact-card p { min-height:48px; color:var(--cfx2-muted); font-size:13px; }
.cfx2-contact-card a { display:block; width:max-content; margin-top:8px; font-size:13px; font-weight:650; }
.cfx2-contact-form { scroll-margin-top:calc(var(--cfx2-header) + 30px); display:grid; grid-template-columns:minmax(0,1fr); gap:clamp(34px,6vw,70px); margin:clamp(70px,9vw,130px) 0; padding:clamp(34px,5vw,70px); background:var(--cfx2-ink); color:#fff; border-radius:var(--cfx2-radius); }
.cfx2-contact-form h2 { margin:0 0 24px; font-size:clamp(34px,4vw,62px); }
.cfx2-contact-form p,.cfx2-contact-form li { color:rgba(255,255,255,.68); }
.cfx2-contact-form ul { padding-left:20px; }
.cfx2-contact-form__direct { display:grid; margin-top:28px; }
.cfx2-contact-form__direct a { font-size:18px; font-weight:700; }
.cfx2-contact-form__panel { min-height:520px; padding:16px; background:#fff; color:var(--cfx2-ink); border-radius:var(--cfx2-radius); }
.cfx2-contact-form__panel .b24-form-control-label { white-space:normal !important; overflow:visible !important; text-overflow:clip !important; }

/* Directory */
.cfx2-directory-shell,.cfx2-detail-shell { padding-top:clamp(54px,7vw,100px); padding-bottom:clamp(80px,10vw,150px); }
.cfx2-filter-panel { margin-bottom:42px; border:1px solid var(--cfx2-line); background:var(--cfx2-paper); }
.cfx2-filter-panel__top { display:grid; grid-template-columns:1fr auto auto; gap:12px; padding:20px; }
.cfx2-search-field { display:grid; gap:8px; }
.cfx2-filter-panel label > span { font-family:"IBM Plex Mono",monospace; font-size:10px; letter-spacing:.06em; text-transform:uppercase; }
.cfx2-filter-panel input,.cfx2-filter-panel select,.cfx2-demo-form input,.cfx2-demo-form select,.cfx2-demo-form textarea,.cfx2-search-page input { width:100%; min-height:54px; padding:0 15px; border:1px solid var(--cfx2-line); border-radius:3px; background:#fff; color:var(--cfx2-ink); outline:none; }
.cfx2-demo-form textarea { padding-block:14px; resize:vertical; }
.cfx2-filter-panel input:focus,.cfx2-filter-panel select:focus,.cfx2-demo-form input:focus,.cfx2-demo-form select:focus,.cfx2-demo-form textarea:focus,.cfx2-search-page input:focus { border-color:var(--cfx2-blue); box-shadow:0 0 0 3px rgba(70,89,232,.12); }
.cfx2-filter-toggle { display:none; border:1px solid var(--cfx2-ink); background:transparent; padding:0 18px; font-weight:700; }
.cfx2-filter-panel__extra { display:grid; grid-template-columns:1.3fr repeat(3,.7fr) auto auto; gap:14px; align-items:end; padding:20px; border-top:1px solid var(--cfx2-line); }
.cfx2-filter-panel__extra label { display:grid; gap:8px; }
.cfx2-filter-panel__extra > a { padding-bottom:17px; color:var(--cfx2-muted); font-size:13px; text-decoration:underline; }
.cfx2-checkbox { display:flex !important; grid-template-columns:auto 1fr !important; align-items:center; gap:9px !important; }
.cfx2-checkbox input { width:18px !important; min-height:18px !important; margin:0; accent-color:var(--cfx2-orange); }
.cfx2-catalog__summary { display:flex; justify-content:space-between; gap:30px; align-items:end; margin-bottom:24px; padding-bottom:16px; border-bottom:1px solid var(--cfx2-line); }
.cfx2-catalog__summary p { margin:0; }
.cfx2-catalog__summary span { color:var(--cfx2-muted); font-size:12px; }
.cfx2-exhibitor-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:16px; }
.cfx2-exhibitor-card { display:flex; flex-direction:column; min-height:470px; border:1px solid var(--cfx2-line); background:#fff; border-radius:var(--cfx2-radius); overflow:hidden; transition:transform .22s,box-shadow .22s; }
.cfx2-exhibitor-card:hover { transform:translateY(-4px); box-shadow:0 24px 60px rgba(var(--cfx2-ink-rgb),.12); }
.cfx2-exhibitor-card__media { display:grid; place-items:center; min-height:190px; padding:28px; background:var(--cfx2-paper-2); }
.cfx2-exhibitor-card__media img { max-width:78%; max-height:120px; object-fit:contain; }
.cfx2-exhibitor-card__media > span { font-family:Manrope,sans-serif; font-size:62px; font-weight:800; letter-spacing:-.08em; }
.cfx2-exhibitor-card__body { display:flex; flex-direction:column; flex:1; padding:24px; }
.cfx2-exhibitor-card__meta { display:flex; justify-content:space-between; gap:10px; font-family:"IBM Plex Mono",monospace; font-size:9px; text-transform:uppercase; }
.cfx2-exhibitor-card__meta b { color:var(--cfx2-orange); }
.cfx2-exhibitor-card h2 { margin:26px 0 12px; font-family:Manrope,sans-serif; font-size:26px; line-height:1.08; letter-spacing:-.045em; }
.cfx2-exhibitor-card p { margin:0 0 18px; color:var(--cfx2-muted); font-size:13px; }
.cfx2-card-link { display:flex; justify-content:space-between; align-items:center; margin-top:auto; padding-top:18px; border-top:1px solid var(--cfx2-line); font-size:13px; font-weight:750; }
.cfx2-card-link:hover { color:var(--cfx2-orange); }
.cfx2-pagination { display:flex; justify-content:space-between; align-items:center; margin-top:48px; padding-top:20px; border-top:1px solid var(--cfx2-line); }
.cfx2-pagination > * { font-family:"IBM Plex Mono",monospace; font-size:11px; }
.cfx2-pagination .is-disabled { opacity:.35; }
.cfx2-catalog__loading { margin:20px 0; }

/* States */
.cfx2-state { border:1px solid var(--cfx2-line); background:#fff; border-radius:var(--cfx2-radius); }
.cfx2-state--empty,.cfx2-state--error { min-height:290px; display:grid; place-items:center; align-content:center; text-align:center; padding:36px; }
.cfx2-state--empty > span,.cfx2-state--error > span { display:grid; place-items:center; width:48px; height:48px; border:1px solid currentColor; border-radius:50%; color:var(--cfx2-orange); font-family:"IBM Plex Mono",monospace; }
.cfx2-state h2 { margin:20px 0 8px; font-family:Manrope,sans-serif; font-size:28px; }
.cfx2-state p { max-width:480px; margin:0 0 20px; color:var(--cfx2-muted); }
.cfx2-state--loading { display:flex; align-items:center; gap:12px; padding:18px; }
.cfx2-state--loading i { width:18px; height:18px; border:2px solid var(--cfx2-line); border-top-color:var(--cfx2-orange); border-radius:50%; animation:cfx2Spin .7s linear infinite; }
@keyframes cfx2Spin { to { transform:rotate(360deg); } }

/* Detail */
.cfx2-exhibitor-detail,.cfx2-detail-demo { display:grid; grid-template-columns:minmax(240px,.34fr) 1fr; gap:clamp(44px,7vw,110px); }
.cfx2-exhibitor-detail__identity,.cfx2-detail-demo > aside { position:sticky; top:calc(var(--cfx2-header) + 28px); align-self:start; }
.cfx2-exhibitor-detail__logo,.cfx2-detail-demo__mark { min-height:250px; display:grid; place-items:center; padding:30px; background:#fff; border:1px solid var(--cfx2-line); }
.cfx2-exhibitor-detail__logo img { max-width:80%; max-height:160px; object-fit:contain; }
.cfx2-exhibitor-detail__logo span,.cfx2-detail-demo__mark { font-family:Manrope,sans-serif; font-size:72px; font-weight:800; letter-spacing:-.08em; }
.cfx2-exhibitor-detail__stand { margin:14px 0; padding:22px; background:var(--cfx2-orange); color:#fff; }
.cfx2-exhibitor-detail__stand span { font-family:"IBM Plex Mono",monospace; font-size:10px; text-transform:uppercase; }
.cfx2-exhibitor-detail__stand strong { display:block; font-family:Manrope,sans-serif; font-size:44px; letter-spacing:-.06em; }
.cfx2-exhibitor-detail__stand p { margin:0; }
.cfx2-exhibitor-detail__content section,.cfx2-detail-demo > div section { margin-bottom:80px; }
.cfx2-exhibitor-detail__content h2,.cfx2-detail-demo h2 { margin:0 0 24px; font-family:Manrope,sans-serif; font-size:clamp(36px,4vw,64px); line-height:1; letter-spacing:-.06em; }
.cfx2-richtext { color:var(--cfx2-muted); line-height:1.8; }
.cfx2-product-grid { display:grid; grid-template-columns:repeat(2,1fr); gap:14px; }
.cfx2-product-grid article { padding:24px; border:1px solid var(--cfx2-line); background:#fff; }
.cfx2-product-grid img { width:100%; aspect-ratio:4/3; object-fit:cover; margin-bottom:20px; }
.cfx2-product-grid span { color:var(--cfx2-orange); font-family:"IBM Plex Mono",monospace; font-size:10px; text-transform:uppercase; }
.cfx2-product-grid h3 { margin:24px 0 8px; font-size:23px; }
.cfx2-product-grid p { color:var(--cfx2-muted); font-size:13px; }
.cfx2-event-list { border-top:1px solid var(--cfx2-line); }
.cfx2-event-list a { display:grid; grid-template-columns:150px 1fr auto; gap:20px; align-items:center; padding:20px 0; border-bottom:1px solid var(--cfx2-line); }
.cfx2-event-list span { font-family:"IBM Plex Mono",monospace; font-size:10px; }
.cfx2-event-list a:hover { color:var(--cfx2-orange); }
.cfx2-detail-demo > aside > span { display:block; margin:18px 0; font-family:"IBM Plex Mono",monospace; font-size:11px; }

/* Foundation home */
.cfx2-foundation-hero { position:relative; min-height:100svh; padding-top:var(--cfx2-header); overflow:hidden; color:#fff; background:var(--cfx2-ink); }
.cfx2-foundation-hero__image,.cfx2-foundation-hero__overlay { position:absolute; inset:0; }
.cfx2-foundation-hero__image { background-size:cover; background-position:center; }
.cfx2-foundation-hero__overlay { background:linear-gradient(90deg,rgba(0,0,0,.84),rgba(0,0,0,.28)); }
.cfx2-foundation-hero__inner { position:relative; z-index:2; min-height:calc(100svh - var(--cfx2-header)); display:flex; flex-direction:column; justify-content:center; padding-top:60px; padding-bottom:50px; }
.cfx2-foundation-hero h1,.cfx2-ui-hero h1 { max-width:1100px; margin:0; font-family:Manrope,sans-serif; font-size:clamp(54px,8vw,126px); line-height:.9; letter-spacing:-.075em; }
.cfx2-foundation-hero h1 em,.cfx2-ui-hero h1 em { color:var(--cfx2-orange); font-style:normal; }
.cfx2-foundation-hero__inner > p { max-width:720px; margin:30px 0; font-family:Manrope,sans-serif; font-size:clamp(18px,1.8vw,28px); line-height:1.4; opacity:.82; }
.cfx2-foundation-hero__actions { display:flex; flex-wrap:wrap; gap:12px; }
.cfx2-foundation-hero dl { display:grid; grid-template-columns:repeat(4,1fr); gap:1px; margin:clamp(40px,8vh,90px) 0 0; background:rgba(255,255,255,.24); }
.cfx2-foundation-hero dl div { padding:17px; background:rgba(0,0,0,.4); }
.cfx2-foundation-hero dt { font-family:"IBM Plex Mono",monospace; font-size:9px; text-transform:uppercase; opacity:.55; }
.cfx2-foundation-hero dd { margin:7px 0 0; font-weight:700; }
.cfx2-foundation-index,.cfx2-foundation-links { padding-top:clamp(75px,10vw,145px); padding-bottom:clamp(75px,10vw,145px); }
.cfx2-section-head { display:grid; grid-template-columns:.9fr .55fr; gap:50px; align-items:end; margin-bottom:60px; }
.cfx2-section-head .cbx-kicker { grid-column:1/-1; }
.cfx2-section-head h2 { margin:0; font-family:Manrope,sans-serif; font-size:clamp(44px,6vw,88px); line-height:.96; letter-spacing:-.07em; }
.cfx2-section-head p { margin:0; color:var(--cfx2-muted); }
.cfx2-template-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:1px; background:var(--cfx2-line); }
.cfx2-template-grid a { min-height:330px; display:flex; flex-direction:column; padding:26px; background:var(--cfx2-paper); }
.cfx2-template-grid a:hover { background:var(--cfx2-ink); color:#fff; }
.cfx2-template-grid span { color:var(--cfx2-orange); font-family:"IBM Plex Mono",monospace; font-size:10px; }
.cfx2-template-grid h2 { margin:74px 0 12px; font-family:Manrope,sans-serif; font-size:28px; }
.cfx2-template-grid p { color:var(--cfx2-muted); font-size:13px; }
.cfx2-template-grid a:hover p { color:rgba(255,255,255,.6); }
.cfx2-template-grid b { margin-top:auto; font-size:13px; }
.cfx2-foundation-status { padding:clamp(70px,9vw,130px) 0; background:var(--cfx2-ink); color:#fff; }
.cfx2-foundation-status__head { display:grid; grid-template-columns:.35fr 1fr; align-items:end; gap:30px; margin-bottom:48px; }
.cfx2-foundation-status__head span { font-family:"IBM Plex Mono",monospace; font-size:10px; opacity:.5; }
.cfx2-foundation-status__head h2 { margin:0; font-family:Manrope,sans-serif; font-size:clamp(42px,5vw,76px); letter-spacing:-.065em; }
.cfx2-status-grid { display:grid; grid-template-columns:repeat(4,1fr); border-top:1px solid var(--cfx2-line-dark); border-left:1px solid var(--cfx2-line-dark); }
.cfx2-status-grid article { min-height:240px; padding:24px; border-right:1px solid var(--cfx2-line-dark); border-bottom:1px solid var(--cfx2-line-dark); }
.cfx2-status-grid b { color:var(--cfx2-orange); font-family:Manrope,sans-serif; font-size:50px; letter-spacing:-.07em; }
.cfx2-status-grid h3 { margin:40px 0 8px; }
.cfx2-status-grid p { color:rgba(255,255,255,.55); font-size:13px; }
.cfx2-link-list { border-top:1px solid var(--cfx2-line); }
.cfx2-link-list a { display:grid; grid-template-columns:70px 1fr auto; align-items:center; min-height:90px; border-bottom:1px solid var(--cfx2-line); }
.cfx2-link-list span { color:var(--cfx2-orange); font-family:"IBM Plex Mono",monospace; font-size:10px; }
.cfx2-link-list strong { font-family:Manrope,sans-serif; font-size:22px; }
.cfx2-link-list a:hover { color:var(--cfx2-orange); }
.cfx2-foundation-note { margin-top:38px; padding:26px; border-left:4px solid var(--cfx2-blue); background:#fff; }
.cfx2-foundation-note p { margin-bottom:0; }

/* UI kit */
.cfx2-ui-hero { padding:calc(var(--cfx2-header) + 54px) 0 80px; background:var(--cfx2-blue); color:#fff; }
.cfx2-ui-hero p { max-width:600px; font-size:19px; opacity:.74; }
.cfx2-ui-kit { padding-top:80px; padding-bottom:130px; }
.cfx2-ui-kit > section { margin-bottom:100px; }
.cfx2-ui-kit > section > h2 { margin:0 0 36px; font-family:Manrope,sans-serif; font-size:clamp(38px,5vw,72px); letter-spacing:-.065em; }
.cfx2-swatch-grid { display:grid; grid-template-columns:repeat(5,1fr); gap:12px; }
.cfx2-swatch-grid div { padding:12px; border:1px solid var(--cfx2-line); background:#fff; }
.cfx2-swatch-grid i { display:block; height:130px; margin-bottom:15px; background:var(--swatch); border:1px solid var(--cfx2-line); }
.cfx2-swatch-grid strong,.cfx2-swatch-grid code { display:block; }
.cfx2-swatch-grid code { color:var(--cfx2-muted); font-size:11px; }
.cfx2-type-samples { padding:40px; background:#fff; border:1px solid var(--cfx2-line); }
.cfx2-type-sample-h1 { margin-block:.67em; font-size:clamp(48px,7vw,96px); font-weight:700; }
.cfx2-type-sample-h1,.cfx2-type-samples h2,.cfx2-type-samples h3 { font-family:Manrope,sans-serif; letter-spacing:-.06em; }
.cfx2-ui-actions { display:flex; flex-wrap:wrap; gap:12px; align-items:center; }
.cfx2-demo-form { display:grid; grid-template-columns:repeat(3,1fr); gap:18px; padding:28px; background:#fff; border:1px solid var(--cfx2-line); }
.cfx2-demo-form label { display:grid; gap:8px; }
.cfx2-demo-form label > span { font-family:"IBM Plex Mono",monospace; font-size:10px; text-transform:uppercase; }
.cfx2-demo-form__wide { grid-column:1/-1; }
.cfx2-ui-states { display:grid; grid-template-columns:2fr 1fr 2fr; gap:14px; align-items:start; }
.cfx2-table-wrap { overflow:auto; border:1px solid var(--cfx2-line); }
.cfx2-table { width:100%; border-collapse:collapse; background:#fff; }
.cfx2-table th,.cfx2-table td { padding:18px; border-bottom:1px solid var(--cfx2-line); text-align:left; }
.cfx2-table th { font-family:"IBM Plex Mono",monospace; font-size:10px; text-transform:uppercase; }
.cfx2-table a { font-weight:700; }

/* Search */
.cfx2-search-page__form { margin-bottom:50px; }
.cfx2-search-page__form > label { display:block; margin-bottom:10px; font-family:"IBM Plex Mono",monospace; font-size:10px; text-transform:uppercase; }
.cfx2-search-page__form > div { display:grid; grid-template-columns:1fr auto; gap:12px; }
.cfx2-search-results .ss-result { display:grid; grid-template-columns:auto 1fr; gap:22px; padding:28px 0; border-top:1px solid var(--cfx2-line); }
.cfx2-search-results .ss-result hr { display:none; }
.cfx2-search-results .ss-result__image { width:110px; aspect-ratio:1; object-fit:cover; }
.cfx2-search-results .ss-result__title { margin:0 0 12px; font-family:Manrope,sans-serif; font-size:24px; letter-spacing:-.04em; }
.cfx2-search-results .ss-result__badge { margin-left:10px; color:var(--cfx2-orange); font-family:"IBM Plex Mono",monospace; font-size:9px; }
.cfx2-search-results .ss-result__text { color:var(--cfx2-muted); }
.cfx2-search-results .ss-result__url { margin-bottom:0; font-weight:700; }

/* Footer */
.cfx2-footer { background:var(--cfx2-ink); color:#fff; }
.cfx2-footer__masthead { display:grid; grid-template-columns:1fr .7fr auto; gap:38px; align-items:end; padding-top:clamp(52px,7vw,90px); padding-bottom:clamp(42px,6vw,78px); border-bottom:1px solid var(--cfx2-line-dark); }
.cfx2-footer__logo { font-size:42px; }
.cfx2-footer__masthead p { max-width:440px; margin:18px 0 0; color:rgba(255,255,255,.58); }
.cfx2-footer__event strong,.cfx2-footer__event span { display:block; }
.cfx2-footer__event strong { font-family:Manrope,sans-serif; font-size:23px; }
.cfx2-footer__event span { margin-top:8px; color:rgba(255,255,255,.55); font-size:12px; }
.cfx2-footer__contact-zone { background:var(--cfx2-ink); }
.cfx2-footer__organizer {
  display:grid;
  grid-template-columns:1.2fr .9fr .8fr .75fr;
  gap:1px;
  padding-top:0;
  padding-bottom:0;
  background:rgba(255,255,255,.12);
  background-clip:content-box;
}
.cfx2-footer-card { min-height:190px; padding:24px; background:var(--cfx2-ink); font-style:normal; }
.cfx2-footer-card > span { color:rgba(255,255,255,.42); font-family:"IBM Plex Mono",monospace; font-size:9px; letter-spacing:.08em; text-transform:uppercase; }
.cfx2-footer-card h2,.cfx2-footer-card h3 { margin:34px 0 10px; font-family:Manrope,sans-serif; letter-spacing:-.045em; }
.cfx2-footer-card h2 { font-size:23px; }
.cfx2-footer-card h3 { font-size:25px; }
.cfx2-footer-card p { color:rgba(255,255,255,.54); font-size:12px; }
.cfx2-footer-card a { display:block; font-weight:700; }
.cfx2-footer-card--social { grid-column:1/4; display:grid; grid-template-columns:1fr auto; gap:30px; align-items:end; }
.cfx2-footer-card--social nav { display:flex; flex-wrap:wrap; gap:8px; }
.cfx2-footer-card--social nav a { padding:12px 15px; border:1px solid var(--cfx2-line-dark); border-radius:3px; }
.cfx2-footer-card--social nav a:hover { background:var(--cfx2-blue); border-color:var(--cfx2-blue); }
.cfx2-footer-card--all { display:flex; justify-content:space-between; align-items:end; background:var(--cfx2-orange); }
.cfx2-footer-card--all > span { color:#fff; font-family:Manrope,sans-serif; font-size:24px; font-weight:750; text-transform:none; letter-spacing:-.04em; }
.cfx2-footer__directory { display:grid; grid-template-columns:repeat(4,1fr); gap:34px; padding-top:58px; padding-bottom:58px; border-bottom:1px solid var(--cfx2-line-dark); }
.cfx2-footer__directory nav { display:grid; align-content:start; gap:9px; }
.cfx2-footer__directory h3 { margin:0 0 15px; color:rgba(255,255,255,.42); font-family:"IBM Plex Mono",monospace; font-size:10px; text-transform:uppercase; }
.cfx2-footer__directory a { color:rgba(255,255,255,.72); font-size:13px; }
.cfx2-footer__directory a:hover { color:var(--cfx2-orange); }
.cfx2-footer .cfx2-icon-external {
  width: 18px;
  height: 18px;
  min-width: 18px;
  min-height: 18px;
  flex: 0 0 18px;
  vertical-align: -3px;
}
.cfx2-footer__newsletter { display:grid; grid-template-columns:1fr 1fr; gap:60px; align-items:center; padding-top:50px; padding-bottom:50px; border-bottom:1px solid var(--cfx2-line-dark); }
.cfx2-footer__newsletter > div > span { color:var(--cfx2-orange); font-family:"IBM Plex Mono",monospace; font-size:10px; }
.cfx2-footer__newsletter h2 { max-width:650px; margin:16px 0 0; font-family:Manrope,sans-serif; font-size:clamp(28px,3vw,48px); line-height:1.05; letter-spacing:-.055em; }
.cfx2-footer .cafex-subscribe-form,
.cfx2-footer .cafex-subscribe-form-fields {
  position:relative;
  width:100%;
  margin:0;
}
.cfx2-footer .cafex-hp-field {
  position:absolute !important;
  left:-10000px !important;
  top:auto !important;
  width:1px !important;
  height:1px !important;
  margin:0 !important;
  padding:0 !important;
  overflow:hidden !important;
  clip:rect(0 0 0 0) !important;
  clip-path:inset(50%) !important;
  white-space:nowrap !important;
  border:0 !important;
}
.cfx2-footer .cafex-footer-subscribe-stack {
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  align-items:stretch;
  gap:8px;
  width:100%;
}
.cfx2-footer .cafex-subscribe-email {
  display:block;
  width:100%;
  min-width:0;
  min-height:54px;
  margin:0;
  padding:0 14px;
  box-sizing:border-box;
  border:1px solid var(--cfx2-line-dark);
  background:transparent;
  color:#fff;
}
.cfx2-footer .cafex-subscribe-button {
  min-height:54px;
  margin:0;
  padding:0 22px;
  border:0;
  background:var(--cfx2-orange);
  color:#fff;
  font-weight:750;
}
.cfx2-footer .cafex-consent-check { display:flex; gap:8px; margin-top:10px; color:rgba(255,255,255,.48); font-size:10px; }
.cfx2-footer .cafex-consent-check input { accent-color:var(--cfx2-orange); }
.cfx2-footer .cafex-subscribe-loading { display:none; }
.cfx2-footer__bottom { display:flex; justify-content:space-between; gap:20px; padding-top:22px; padding-bottom:22px; color:rgba(255,255,255,.42); font-family:"IBM Plex Mono",monospace; font-size:9px; text-transform:uppercase; }

@media (max-width:1180px) {
  .cfx2-page-hero__inner { grid-template-columns:1fr; }
  .cfx2-page-hero__meta { max-width:420px; }
  .cfx2-page-grid { grid-template-columns:190px 1fr; gap:42px; }
  .cfx2-page-grid--single { grid-template-columns:minmax(0,1fr); }
  .cfx2-exhibitor-grid { grid-template-columns:repeat(2,1fr); }
  .cfx2-filter-panel__extra { grid-template-columns:repeat(3,1fr); }
  .cfx2-template-grid,.cfx2-status-grid { grid-template-columns:repeat(2,1fr); }
  .cfx2-team-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .cfx2-footer__organizer { grid-template-columns:repeat(2,1fr); }
  .cfx2-footer-card--social { grid-column:1/-1; }
  .cfx2-footer__directory { grid-template-columns:repeat(2,1fr); }
}

@media (max-width:820px) {
  :root { --cfx2-header:72px; }
  .cfx2-page-grid { display:block; padding-top:52px; }
  .cfx2-page-grid--single .cfx2-page-content { max-width:none; }
  .cfx2-sidebar { margin-bottom:44px; }
  .cfx2-sidebar__sticky { position:static; }
  .cfx2-sidebar nav { grid-template-columns:repeat(2,1fr); }
  .cfx2-sidebar nav a { padding-right:12px; }
  .cfx2-page-hero { min-height:520px; }
  .cfx2-page-hero__inner { padding-top:24px; padding-bottom:44px; }
  .cfx2-page-hero__copy h1 { font-size:clamp(44px,11vw,72px); }
  .cfx2-topic-grid,.cfx2-format-grid,.cfx2-schedule-grid,.cfx2-product-grid { grid-template-columns:1fr; }
  .cfx2-direction-card--wide { grid-column:auto; }
  .cfx2-direction-photos { grid-template-columns:1fr; }
  .cfx2-facts { grid-template-columns:1fr; }
  .cfx2-process-list > div { grid-template-columns:44px 1fr; }
  .cfx2-process-list p { grid-column:2; }
  .cfx2-organizer-panel { grid-template-columns:1fr; }
  .cfx2-inline-cta { grid-template-columns:1fr; }
  .cfx2-route-grid { grid-template-columns:1fr; }
  .cfx2-contact-form { grid-template-columns:1fr; }
  .cfx2-filter-panel__top { grid-template-columns:1fr auto; }
  .cfx2-filter-panel__top .cfx2-search-field { grid-column:1/-1; }
  .cfx2-filter-toggle { display:block; }
  .cfx2-filter-panel__extra { display:none; grid-template-columns:repeat(2,1fr); }
  .cfx2-filter-panel__extra.is-open { display:grid; }
  .cfx2-exhibitor-detail,.cfx2-detail-demo { grid-template-columns:1fr; }
  .cfx2-exhibitor-detail__identity,.cfx2-detail-demo > aside { position:static; }
  .cfx2-foundation-hero dl { grid-template-columns:repeat(2,1fr); }
  .cfx2-section-head { grid-template-columns:1fr; }
  .cfx2-swatch-grid { grid-template-columns:repeat(2,1fr); }
  .cfx2-demo-form { grid-template-columns:1fr; }
  .cfx2-ui-states { grid-template-columns:1fr; }
  .cfx2-footer__masthead { grid-template-columns:1fr; }
  .cfx2-footer__newsletter { grid-template-columns:1fr; }
  .cfx2-footer__bottom { flex-direction:column; }
}

@media (max-width:560px) {
  .cfx2-page-hero { min-height:490px; }
  .cfx2-page-hero__copy h1 { font-size:clamp(39px,12vw,58px); }
  .cfx2-page-hero__copy > p { font-size:17px; }
  .cfx2-page-hero__actions .cbx-button { width:100%; }
  .cfx2-sidebar nav { grid-template-columns:1fr; }
  .cfx2-content-section--dark,.cfx2-content-section--venue { margin-inline:0; padding:28px 22px; }
  .cfx2-topic-grid { grid-template-columns:minmax(0,1fr); }
  .cfx2-format-grid { display:block; border-left:1px solid var(--cfx2-line); }
  .cfx2-direction-list { grid-template-columns:1fr; }
  .cfx2-schedule-grid { gap:1px; }
  .cfx2-rule-list li { grid-template-columns:64px 1fr; gap:14px; }
  .cfx2-team-grid,.cfx2-exhibitor-grid { grid-template-columns:1fr; }
  .cfx2-filter-panel__top { grid-template-columns:1fr; }
  .cfx2-filter-panel__top .cbx-button,.cfx2-filter-toggle { min-height:48px; }
  .cfx2-filter-panel__extra { grid-template-columns:1fr; }
  .cfx2-catalog__summary { display:block; }
  .cfx2-catalog__summary span { display:block; margin-top:8px; }
  .cfx2-foundation-hero h1,.cfx2-ui-hero h1 { font-size:clamp(48px,15vw,76px); }
  .cfx2-foundation-hero dl,.cfx2-template-grid,.cfx2-status-grid { grid-template-columns:1fr; }
  .cfx2-foundation-status__head { grid-template-columns:1fr; }
  .cfx2-swatch-grid { grid-template-columns:1fr; }
  .cfx2-footer__organizer,.cfx2-footer__directory { grid-template-columns:1fr; }
  .cfx2-footer-card--social { display:block; }
  .cfx2-footer-card--social nav { margin-top:22px; }
  .cfx2-footer-card--all { min-height:110px; }
  .cfx2-footer .cafex-footer-subscribe-stack { grid-template-columns:1fr; }
  .cfx2-search-page__form > div { grid-template-columns:1fr; }
  .cfx2-search-results .ss-result { grid-template-columns:1fr; }
}

@media (prefers-reduced-motion:reduce) {
  .cfx2-body * { scroll-behavior:auto !important; animation-duration:.01ms !important; animation-iteration-count:1 !important; transition-duration:.01ms !important; }
}


/* =========================================================
   CAFEX Theme v2.1.0 — Information Pages + approved footer
   ========================================================= */
.cfx2-footer__contact-zone.cbx-footer-contact-zone {
  background: var(--cfx2-ink);
  border: 0;
}
.cfx2-footer__contact-zone .cbx-footer-organizer {
  padding-top: 0;
  padding-bottom: 0;
}
.cfx2-footer__contact-zone .cbx-footer-organizer__compact {
  margin: 0;
  border-color: var(--cfx2-line-dark);
  background: transparent;
}
.cfx2-footer__contact-zone .cbx-contacts-home__organizer-compact > * {
  background: transparent;
  border-color: var(--cfx2-line-dark);
}
.cfx2-footer__contact-zone + .cfx2-footer__directory {
  padding-top: 58px;
}
.cfx2-footer__contact-zone .cbx-footer-socials__links a svg {
  width: 23px;
  height: 23px;
  fill: currentColor;
}
.cfx2-footer__contact-zone .cbx-footer-socials__links a {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 9px;
}

.cfx2-statement { display:grid; grid-template-columns:auto 1fr; gap:22px; align-items:center; margin:34px 0 0; padding:25px; border:1px solid var(--cfx2-line); background:#fff; }
.cfx2-statement span { color:var(--cfx2-orange); font-family:"IBM Plex Mono",monospace; font-size:11px; font-weight:600; letter-spacing:.1em; }
.cfx2-statement strong { font-family:Manrope,sans-serif; font-size:clamp(20px,2vw,31px); line-height:1.15; letter-spacing:-.045em; }
.cfx2-media-panel { display:grid; grid-template-columns:minmax(240px,.8fr) minmax(0,1.2fr); gap:clamp(25px,5vw,70px); align-items:center; padding:30px; border:1px solid var(--cfx2-line); background:#fff; }
.cfx2-media-panel img { width:100%; height:auto; }
.cfx2-action-row { display:flex; flex-wrap:wrap; gap:10px; margin-top:28px; }
.cfx2-note { margin-top:18px!important; padding:16px 18px; border-left:3px solid var(--cfx2-blue); background:rgba(70,89,232,.07); color:var(--cfx2-muted)!important; font-size:14px!important; }
.cfx2-price-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); border-top:1px solid var(--cfx2-line); border-left:1px solid var(--cfx2-line); background:#fff; }
.cfx2-price-grid article { min-height:190px; padding:24px; border-right:1px solid var(--cfx2-line); border-bottom:1px solid var(--cfx2-line); }
.cfx2-price-grid span { display:block; color:var(--cfx2-muted); font-family:"IBM Plex Mono",monospace; font-size:10px; text-transform:uppercase; }
.cfx2-price-grid strong { display:block; margin:35px 0 8px; font-family:Manrope,sans-serif; font-size:clamp(31px,4vw,54px); line-height:1; letter-spacing:-.06em; }
.cfx2-price-grid p { margin:0!important; color:var(--cfx2-muted)!important; font-size:13px!important; }
.cfx2-link-panels { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); border-top:1px solid var(--cfx2-line); border-left:1px solid var(--cfx2-line); background:#fff; }
.cfx2-link-panels a { min-height:170px; display:grid; grid-template-columns:1fr auto; align-content:space-between; gap:10px 20px; padding:24px; border-right:1px solid var(--cfx2-line); border-bottom:1px solid var(--cfx2-line); transition:.25s ease; }
.cfx2-link-panels a span { grid-column:1/3; color:var(--cfx2-muted); font-family:"IBM Plex Mono",monospace; font-size:10px; text-transform:uppercase; }
.cfx2-link-panels a strong { align-self:end; font-family:Manrope,sans-serif; font-size:clamp(20px,2vw,28px); line-height:1.08; letter-spacing:-.04em; }
.cfx2-link-panels a b { align-self:end; color:var(--cfx2-orange); font-size:20px; }
.cfx2-link-panels a:hover { background:var(--cfx2-ink); color:#fff; }
.cfx2-venue-card { display:grid; grid-template-columns:.75fr 1.25fr; min-height:390px; background:var(--cfx2-ink); color:#fff; overflow:hidden; }
.cfx2-venue-card > div { padding:clamp(28px,5vw,65px); align-self:end; }
.cfx2-venue-card strong { font-family:Manrope,sans-serif; font-size:clamp(40px,6vw,78px); letter-spacing:-.065em; }
.cfx2-venue-card p { color:rgba(255,255,255,.7)!important; }
.cfx2-venue-card img { width:100%; height:100%; object-fit:cover; min-height:390px; }
.cfx2-faq-list { border-top:1px solid var(--cfx2-line); }
.cfx2-faq-list details { border-bottom:1px solid var(--cfx2-line); }
.cfx2-faq-list summary { cursor:pointer; list-style:none; display:flex; justify-content:space-between; gap:20px; padding:24px 0; font-family:Manrope,sans-serif; font-size:clamp(18px,2vw,25px); font-weight:700; letter-spacing:-.035em; }
.cfx2-faq-list summary::-webkit-details-marker { display:none; }
.cfx2-faq-list summary::after { content:"+"; color:var(--cfx2-orange); font-family:"IBM Plex Mono",monospace; }
.cfx2-faq-list details[open] summary::after { content:"−"; }
.cfx2-faq-list details p { max-width:850px; margin:0 0 26px!important; color:var(--cfx2-muted)!important; }
.cfx2-warning { margin:28px 0; padding:24px; border:1px solid rgba(255,90,0,.28); background:rgba(255,90,0,.07); }
.cfx2-warning strong { display:block; margin-bottom:8px; color:var(--cfx2-orange); font-family:Manrope,sans-serif; font-size:20px; }
.cfx2-warning p { margin:0!important; }
.cfx2-document-list { border-top:1px solid var(--cfx2-line); }
.cfx2-document-list article { display:grid; grid-template-columns:70px 1fr; gap:20px; padding:24px 0; border-bottom:1px solid var(--cfx2-line); }
.cfx2-document-list article > span { color:var(--cfx2-orange); font-family:"IBM Plex Mono",monospace; font-size:11px; }
.cfx2-document-list strong { display:block; font-family:Manrope,sans-serif; font-size:22px; letter-spacing:-.035em; }
.cfx2-document-list p { margin:7px 0!important; color:var(--cfx2-muted)!important; }
.cfx2-document-list a { color:var(--cfx2-blue); font-weight:700; }
.cfx2-metric-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); border-top:1px solid var(--cfx2-line); border-left:1px solid var(--cfx2-line); }
.cfx2-metric-grid article { min-height:210px; display:flex; flex-direction:column; justify-content:flex-end; padding:25px; border-right:1px solid var(--cfx2-line); border-bottom:1px solid var(--cfx2-line); background:#fff; }
.cfx2-metric-grid strong { font-family:Manrope,sans-serif; font-size:clamp(46px,8vw,100px); line-height:.9; letter-spacing:-.08em; }
.cfx2-metric-grid span { margin-top:15px; color:var(--cfx2-muted); }
.cfx2-project-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); border-top:1px solid var(--cfx2-line); border-left:1px solid var(--cfx2-line); }
.cfx2-project-grid a { position:relative; min-height:260px; padding:25px; border-right:1px solid var(--cfx2-line); border-bottom:1px solid var(--cfx2-line); background:#fff; }
.cfx2-project-grid a > span { color:var(--cfx2-orange); font-family:"IBM Plex Mono",monospace; font-size:10px; }
.cfx2-project-grid h3 { margin:65px 0 12px; font-family:Manrope,sans-serif; font-size:clamp(26px,3vw,40px); line-height:1; letter-spacing:-.055em; }
.cfx2-project-grid p { max-width:420px; color:var(--cfx2-muted)!important; font-size:14px!important; }
.cfx2-project-grid b { position:absolute; right:25px; top:25px; color:var(--cfx2-orange); }
.cfx2-project-grid a:hover { background:var(--cfx2-blue); color:#fff; }
.cfx2-project-grid a:hover p { color:rgba(255,255,255,.7)!important; }
.cfx2-sponsor-groups { border-top:1px solid var(--cfx2-line); }
.cfx2-sponsor-groups > section { display:grid; grid-template-columns:260px 1fr; border-bottom:1px solid var(--cfx2-line); }
.cfx2-sponsor-groups__title { padding:24px; border-left:1px solid var(--cfx2-line); border-right:1px solid var(--cfx2-line); }
.cfx2-sponsor-groups__title span { color:var(--cfx2-orange); font-family:"IBM Plex Mono",monospace; font-size:10px; }
.cfx2-sponsor-groups__title h3 { margin:0; }
.cfx2-sponsor-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); }
.cfx2-sponsor-grid a { min-height:160px; display:flex; align-items:center; justify-content:center; padding:22px; border-right:1px solid var(--cfx2-line); border-bottom:1px solid var(--cfx2-line); background:#fff; }
.cfx2-sponsor-grid img { max-width:80%; max-height:90px; object-fit:contain; }
.cfx2-empty-panel { padding:30px; border:1px solid var(--cfx2-line); background:#fff; }
.cfx2-brand-assets { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:18px; }
.cfx2-brand-assets a { display:grid; grid-template-rows:minmax(200px,1fr) auto; border:1px solid var(--cfx2-line); background:#fff; }
.cfx2-brand-assets img { width:100%; height:260px; padding:20px; object-fit:contain; background:#fff; }
.cfx2-brand-assets span { display:grid; gap:7px; padding:14px 18px; border-top:1px solid var(--cfx2-line); color:var(--cfx2-muted); font-family:"IBM Plex Mono",monospace; font-size:10px; }
.cfx2-brand-assets span strong { color:var(--cfx2-ink); font-family:var(--cfx2-sans); font-size:15px; line-height:1.3; }
.cfx2-brand-assets span small { font:600 10px/1.2 var(--cfx2-mono); letter-spacing:.08em; text-transform:uppercase; }
.cfx2-embed { overflow:hidden; border:1px solid var(--cfx2-line); background:#fff; }
.cfx2-embed iframe { display:block; width:100%; min-height:2100px; border:0; }
.cfx2-embed--press-accreditation iframe { height:2100px; }
.cfx2-richtext .cfx2-legal-body { width:100%; max-width:980px; min-width:0; }
.cfx2-richtext .cfx2-legal-body h2 { margin-top:55px; font-size:clamp(30px,4vw,50px); }
.cfx2-richtext .cfx2-legal-body h3 { margin-top:42px; font-size:clamp(22px,3vw,32px); }
.cfx2-richtext .cfx2-legal-body h4 { margin-top:32px; font-size:21px; }
.cfx2-richtext .cfx2-legal-body .cfx2-legal-anchor { scroll-margin-top:calc(var(--cfx2-header) + 28px); }
.cfx2-richtext .cfx2-legal-body p,.cfx2-richtext .cfx2-legal-body li { color:#364152; font-size:16px; line-height:1.75; overflow-wrap:anywhere; }
.cfx2-richtext .cfx2-legal-body ul,.cfx2-richtext .cfx2-legal-body ol { padding-left:24px; }
.cfx2-richtext .cfx2-legal-body li + li { margin-top:8px; }
.cfx2-richtext .cfx2-legal-body hr { margin:45px 0; border:0; border-top:1px solid var(--cfx2-line); }
.cfx2-richtext .cfx2-legal-body a { color:var(--cfx2-blue); text-decoration:underline; text-underline-offset:3px; }
.cfx2-richtext .cfx2-legal-body table { display:block; width:100%; max-width:100%; overflow-x:auto; border-collapse:collapse; margin:28px 0; }
.cfx2-richtext .cfx2-legal-body th,.cfx2-richtext .cfx2-legal-body td { padding:13px; border:1px solid var(--cfx2-line); text-align:left; vertical-align:top; }
.cfx2-richtext .cfx2-legal-body img { max-width:100%; height:auto; }

@media (max-width:560px) {
  .cfx2-body:has(.cfx2-legal-body) .cfx2-page-hero__copy,
  .cfx2-body:has(.cfx2-legal-body) .cfx2-page-hero__copy h1 { min-width:0; max-width:100%; }
  .cfx2-body:has(.cfx2-legal-body) .cfx2-page-hero__copy h1 { overflow-wrap:anywhere; word-break:normal; hyphens:auto; }
}

@media (max-width:980px) {
  .cfx2-page-grid--single:has(.cfx2-press-accreditation) { grid-template-columns:minmax(0,1fr); }
  .cfx2-embed--press-accreditation iframe { height:clamp(760px,90vh,1200px); min-height:0; }
  .cfx2-legal-body--refund-form p { overflow-wrap:anywhere; word-break:break-word; }
  .cfx2-price-grid { grid-template-columns:1fr; }
  .cfx2-media-panel,.cfx2-venue-card { grid-template-columns:1fr; }
  .cfx2-link-panels,.cfx2-metric-grid,.cfx2-project-grid,.cfx2-brand-assets { grid-template-columns:1fr; }
  .cfx2-brand-assets { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .cfx2-sponsor-groups > section { grid-template-columns:1fr; }
  .cfx2-sponsor-groups__title { border-bottom:1px solid var(--cfx2-line); }
  .cfx2-sponsor-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media (max-width:720px) {
  .cfx2-brand-assets { grid-template-columns:1fr; }
  .cfx2-footer__contact-zone .cbx-footer-organizer { padding:0; }
  .cfx2-footer__contact-zone .cbx-footer-socials__links { grid-template-columns:repeat(3,minmax(0,1fr)); }
  .cfx2-statement { grid-template-columns:1fr; }
  .cfx2-price-grid article { min-height:150px; }
  .cfx2-link-panels a { min-height:145px; }
  .cfx2-venue-card img { min-height:260px; }
  .cfx2-document-list article { grid-template-columns:42px 1fr; }
  .cfx2-sponsor-grid { grid-template-columns:1fr; }
  .cfx2-brand-assets img { height:210px; }
}

.cfx2-archive-note { margin:0 0 38px; padding:22px; border:1px solid rgba(70,89,232,.25); background:rgba(70,89,232,.06); }
.cfx2-archive-note strong { color:var(--cfx2-blue); font-family:Manrope,sans-serif; font-size:20px; }
.cfx2-archive-note p { margin:7px 0 0!important; color:var(--cfx2-muted)!important; font-size:14px!important; }


/* v2.2.0 — Participants and products */
.cfx2-catalog__summary-links { display:flex; flex-wrap:wrap; gap:8px 20px; }
.cfx2-catalog__summary-links a { font-size:12px; font-weight:750; border-bottom:1px solid currentColor; }
.cfx2-catalog__summary-links a:hover { color:var(--cfx2-orange); }
.cfx2-filter-panel__extra--products { grid-template-columns:repeat(4,minmax(130px,1fr)) auto auto auto; }
.cfx2-product-catalog-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:16px; }
.cfx2-product-card { display:flex; flex-direction:column; min-width:0; min-height:520px; overflow:hidden; border:1px solid var(--cfx2-line); border-radius:var(--cfx2-radius); background:#fff; transition:transform .22s ease,box-shadow .22s ease; }
.cfx2-product-card:hover { transform:translateY(-4px); box-shadow:0 24px 60px rgba(var(--cfx2-ink-rgb),.13); }
.cfx2-product-card__media { position:relative; display:grid; place-items:center; aspect-ratio:4/3; overflow:hidden; padding:24px; background:var(--cfx2-paper-2); }
.cfx2-product-card__media img { width:100%; height:100%; object-fit:cover; transition:transform .4s ease; }
.cfx2-product-card:hover .cfx2-product-card__media img { transform:scale(1.025); }
.cfx2-product-card__media > span { font-family:Manrope,sans-serif; font-size:64px; font-weight:800; letter-spacing:-.08em; }
.cfx2-product-card__badges { position:absolute; z-index:2; inset:14px 14px auto; display:flex; flex-wrap:wrap; gap:6px; }
.cfx2-product-card__badges b { padding:7px 9px; border-radius:2px; background:var(--cfx2-orange); color:#fff; font-family:"IBM Plex Mono",monospace; font-size:9px; letter-spacing:.04em; text-transform:uppercase; }
.cfx2-product-card__badges b.is-blue { background:var(--cfx2-blue); }
.cfx2-product-card__body { display:flex; flex-direction:column; flex:1; padding:24px; }
.cfx2-product-card__meta { display:flex; justify-content:space-between; gap:12px; color:var(--cfx2-muted); font-family:"IBM Plex Mono",monospace; font-size:9px; letter-spacing:.05em; text-transform:uppercase; }
.cfx2-product-card__meta b { color:var(--cfx2-orange); }
.cfx2-product-card h2 { margin:26px 0 8px; font-family:Manrope,sans-serif; font-size:26px; line-height:1.06; letter-spacing:-.05em; }
.cfx2-product-card__company { display:inline-block; margin-bottom:16px; color:var(--cfx2-blue); font-size:12px; font-weight:750; }
.cfx2-product-card__body > p { margin:0 0 22px; color:var(--cfx2-muted); font-size:13px; line-height:1.65; }
.cfx2-product-card .cfx2-card-link { margin-top:auto; }
.cfx2-exhibitor-card__media { position:relative; }
.cfx2-exhibitor-card__new { position:absolute; right:14px; top:14px; padding:7px 9px; border-radius:2px; background:var(--cfx2-orange); color:#fff; font-family:"IBM Plex Mono",monospace; font-size:9px; text-transform:uppercase; }
.cfx2-exhibitor-card__brands { color:var(--cfx2-blue) !important; font-weight:700; }
.cfx2-exhibitor-detail__contacts { display:grid; margin-top:14px; border:1px solid var(--cfx2-line); background:#fff; }
.cfx2-exhibitor-detail__contacts a { display:grid; gap:4px; padding:15px 18px; border-bottom:1px solid var(--cfx2-line); }
.cfx2-exhibitor-detail__contacts a:last-child { border-bottom:0; }
.cfx2-exhibitor-detail__contacts span { color:var(--cfx2-muted); font-family:"IBM Plex Mono",monospace; font-size:9px; text-transform:uppercase; }
.cfx2-exhibitor-detail__contacts strong { overflow-wrap:anywhere; font-size:12px; }
.cfx2-exhibitor-detail__contacts a:hover strong { color:var(--cfx2-orange); }
.cfx2-exhibitor-detail__socials { display:flex; flex-wrap:wrap; gap:7px; margin-top:14px; }
.cfx2-exhibitor-detail__socials a { padding:9px 11px; border:1px solid var(--cfx2-line); border-radius:2px; font-size:10px; font-weight:750; }
.cfx2-exhibitor-detail__socials a:hover { border-color:var(--cfx2-blue); background:var(--cfx2-blue); color:#fff; }
.cfx2-product-grid--related { grid-template-columns:repeat(2,minmax(0,1fr)); }
.cfx2-product-grid--related .cfx2-product-card { min-height:480px; padding:0; }
.cfx2-product-grid--related .cfx2-product-card__media { aspect-ratio:4/3; }
.cfx2-product-detail { display:grid; grid-template-columns:minmax(280px,.38fr) minmax(0,1fr); gap:clamp(44px,7vw,110px); }
.cfx2-product-detail__identity { position:sticky; top:calc(var(--cfx2-header) + 28px); align-self:start; }
.cfx2-product-detail__image { position:relative; display:grid; place-items:center; min-height:420px; overflow:hidden; border:1px solid var(--cfx2-line); background:#fff; }
.cfx2-product-detail__image img { width:100%; height:100%; min-height:420px; object-fit:cover; }
.cfx2-product-detail__image > span { font-family:Manrope,sans-serif; font-size:86px; font-weight:800; letter-spacing:-.08em; }
.cfx2-product-detail__facts { margin:14px 0 0; border:1px solid var(--cfx2-line); background:#fff; }
.cfx2-product-detail__facts div { display:grid; grid-template-columns:100px 1fr; gap:16px; padding:16px 18px; border-bottom:1px solid var(--cfx2-line); }
.cfx2-product-detail__facts div:last-child { border-bottom:0; }
.cfx2-product-detail__facts dt { color:var(--cfx2-muted); font-family:"IBM Plex Mono",monospace; font-size:9px; text-transform:uppercase; }
.cfx2-product-detail__facts dd { margin:0; font-weight:750; }
.cfx2-product-detail__section { margin-bottom:clamp(72px,9vw,120px); }
.cfx2-product-detail__section h2 { margin:0 0 28px; font-family:Manrope,sans-serif; font-size:clamp(38px,5vw,72px); line-height:.98; letter-spacing:-.065em; }
.cfx2-product-detail__links { display:flex; flex-wrap:wrap; gap:10px; margin-top:30px; }
.cfx2-product-detail__links a { padding:13px 16px; border:1px solid var(--cfx2-ink); border-radius:3px; font-size:12px; font-weight:750; }
.cfx2-product-detail__links a:hover { background:var(--cfx2-ink); color:#fff; }
.cfx2-company-panel { display:grid; grid-template-columns:90px 1fr auto; gap:22px; align-items:center; padding:22px; border:1px solid var(--cfx2-line); background:#fff; }
.cfx2-company-panel:hover { border-color:var(--cfx2-blue); }
.cfx2-company-panel__logo { display:grid; place-items:center; width:90px; height:74px; padding:10px; background:var(--cfx2-paper-2); font-family:Manrope,sans-serif; font-size:28px; font-weight:800; }
.cfx2-company-panel__logo img { max-width:100%; max-height:54px; object-fit:contain; }
.cfx2-company-panel strong,.cfx2-company-panel small { display:block; }
.cfx2-company-panel strong { font-family:Manrope,sans-serif; font-size:24px; letter-spacing:-.04em; }
.cfx2-company-panel small { margin-top:6px; color:var(--cfx2-muted); }
.cfx2-brand-index__grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); border-top:1px solid var(--cfx2-line); border-left:1px solid var(--cfx2-line); }
.cfx2-brand-index__grid a { min-height:160px; display:grid; grid-template-columns:34px 1fr auto; gap:14px; align-items:end; padding:24px; border-right:1px solid var(--cfx2-line); border-bottom:1px solid var(--cfx2-line); background:#fff; }
.cfx2-brand-index__grid a:hover { background:var(--cfx2-ink); color:#fff; }
.cfx2-brand-index__grid span { align-self:start; color:var(--cfx2-orange); font-family:"IBM Plex Mono",monospace; font-size:9px; }
.cfx2-brand-index__grid strong { overflow-wrap:anywhere; font-family:Manrope,sans-serif; font-size:24px; line-height:1.05; letter-spacing:-.045em; }

@media (max-width:1100px) {
  .cfx2-product-catalog-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .cfx2-filter-panel__extra--products { grid-template-columns:repeat(3,minmax(0,1fr)); }
  .cfx2-brand-index__grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media (max-width:820px) {
  .cfx2-product-detail { grid-template-columns:1fr; }
  .cfx2-product-detail__identity { position:static; }
  .cfx2-product-detail__image,.cfx2-product-detail__image img { min-height:320px; }
  .cfx2-filter-panel__extra--products { grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media (max-width:620px) {
  .cfx2-product-catalog-grid,.cfx2-product-grid--related,.cfx2-brand-index__grid { grid-template-columns:1fr; }
  .cfx2-product-card { min-height:0; }
  .cfx2-filter-panel__extra--products { grid-template-columns:1fr; }
  .cfx2-company-panel { grid-template-columns:70px 1fr; }
  .cfx2-company-panel > .cfx2-arrow { display:none; }
  .cfx2-company-panel__logo { width:70px; height:62px; }
}


/* ========================================================================== */
/* CAFEX Theme v2.3.0 — Program Platform                                      */
/* ========================================================================== */
.cfx2-program-directory { padding-bottom:clamp(80px,9vw,150px); }
.cfx2-program-overview { margin-bottom:clamp(60px,8vw,120px); }
.cfx2-program-stats { display:grid; grid-template-columns:repeat(6,minmax(0,1fr)); border-top:1px solid var(--cfx2-line); border-left:1px solid var(--cfx2-line); }
.cfx2-program-stats article { min-height:150px; display:flex; flex-direction:column; justify-content:space-between; padding:22px; border-right:1px solid var(--cfx2-line); border-bottom:1px solid var(--cfx2-line); background:#fff; }
.cfx2-program-stats strong { font-family:Manrope,sans-serif; font-size:clamp(38px,4.5vw,72px); letter-spacing:-.07em; line-height:.9; }
.cfx2-program-stats span { color:var(--cfx2-muted); font-family:"IBM Plex Mono",monospace; font-size:9px; letter-spacing:.08em; text-transform:uppercase; }
.cfx2-program-portals { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); margin-top:22px; border-top:1px solid var(--cfx2-line); border-left:1px solid var(--cfx2-line); }
.cfx2-program-portals a { min-height:230px; display:grid; grid-template-columns:34px 1fr auto; gap:12px; align-content:end; padding:24px; border-right:1px solid var(--cfx2-line); border-bottom:1px solid var(--cfx2-line); background:var(--cfx2-ink); color:#fff; }
.cfx2-program-portals a:nth-child(2) { background:var(--cfx2-blue); }
.cfx2-program-portals a:hover { background:var(--cfx2-orange); }
.cfx2-program-portals span { align-self:start; color:var(--cfx2-orange); font-family:"IBM Plex Mono",monospace; font-size:9px; }
.cfx2-program-portals a:hover span { color:#fff; }
.cfx2-program-portals strong { grid-column:2/4; font-family:Manrope,sans-serif; font-size:28px; letter-spacing:-.05em; }
.cfx2-program-portals p { grid-column:2/4; margin:0; color:rgba(255,255,255,.72); font-size:12px; line-height:1.55; }
.cfx2-program-portals b { grid-column:3; font-size:20px; }
.cfx2-program-filter__extra { grid-template-columns:repeat(5,minmax(0,1fr)); }
.cfx2-program-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); border-top:1px solid var(--cfx2-line); border-left:1px solid var(--cfx2-line); }
.cfx2-program-card { min-width:0; min-height:520px; display:flex; flex-direction:column; border-right:1px solid var(--cfx2-line); border-bottom:1px solid var(--cfx2-line); background:#fff; }
.cfx2-program-card__media { display:block; aspect-ratio:16/9; overflow:hidden; background:var(--cfx2-paper-2); }
.cfx2-program-card__media img { width:100%; height:100%; object-fit:cover; filter:saturate(.82); transition:transform .45s ease,filter .45s ease; }
.cfx2-program-card:hover .cfx2-program-card__media img { transform:scale(1.035); filter:saturate(1); }
.cfx2-program-card__body { flex:1; display:flex; flex-direction:column; padding:24px; }
.cfx2-program-card__meta { display:flex; flex-wrap:wrap; gap:8px 14px; align-items:center; font-family:"IBM Plex Mono",monospace; font-size:9px; letter-spacing:.06em; text-transform:uppercase; }
.cfx2-program-card__meta strong { color:var(--cfx2-orange); }
.cfx2-program-card__meta b { margin-left:auto; color:var(--cfx2-muted); font-weight:500; }
.cfx2-program-card h2 { margin:26px 0 10px; font-family:Manrope,sans-serif; font-size:clamp(24px,2.1vw,34px); line-height:1.04; letter-spacing:-.055em; }
.cfx2-program-card__subtitle { margin:0 0 14px; color:var(--cfx2-ink); font-weight:650; line-height:1.45; }
.cfx2-program-card__venue { margin-bottom:18px; color:var(--cfx2-blue); font-size:11px; font-weight:750; }
.cfx2-program-card__speakers { display:flex; flex-wrap:wrap; gap:6px; margin-bottom:16px; }
.cfx2-program-card__speakers span { padding:6px 8px; background:var(--cfx2-paper-2); font-size:9px; font-weight:700; }
.cfx2-program-card__body>p:not(.cfx2-program-card__subtitle) { margin:0 0 20px; color:var(--cfx2-muted); font-size:12px; line-height:1.65; }
.cfx2-program-card .cfx2-card-link { margin-top:auto; }
.cfx2-program-timeline { border-top:1px solid var(--cfx2-line); }
.cfx2-program-day { display:grid; grid-template-columns:210px 1fr; border-bottom:1px solid var(--cfx2-line); }
.cfx2-program-day>header { padding:28px 24px 28px 0; border-right:1px solid var(--cfx2-line); }
.cfx2-program-day>header span,.cfx2-program-day>header b { display:block; color:var(--cfx2-muted); font-family:"IBM Plex Mono",monospace; font-size:9px; letter-spacing:.08em; text-transform:uppercase; }
.cfx2-program-day>header h2 { margin:10px 0 16px; font-family:Manrope,sans-serif; font-size:32px; letter-spacing:-.055em; }
.cfx2-program-day>div { min-width:0; }
.cfx2-program-row { display:grid; grid-template-columns:110px minmax(0,1fr) minmax(180px,260px) 54px; min-height:170px; border-bottom:1px solid var(--cfx2-line); }
.cfx2-program-row:last-child { border-bottom:0; }
.cfx2-program-row__time,.cfx2-program-row__content,.cfx2-program-row__venue,.cfx2-program-row__arrow { padding:24px; border-right:1px solid var(--cfx2-line); }
.cfx2-program-row__time { padding-right:14px; padding-left:14px; }
.cfx2-program-row__time strong { display:block; font-family:Manrope,sans-serif; font-size:30px; letter-spacing:-.05em; white-space:nowrap; }
.cfx2-program-row__time span { color:var(--cfx2-muted); font-family:"IBM Plex Mono",monospace; font-size:10px; }
.cfx2-program-row__labels { display:flex; flex-wrap:wrap; gap:7px; }
.cfx2-program-row__labels span { padding:5px 7px; border:1px solid var(--cfx2-line); font-family:"IBM Plex Mono",monospace; font-size:8px; text-transform:uppercase; }
.cfx2-program-row h3 { margin:16px 0 8px; font-family:Manrope,sans-serif; font-size:24px; line-height:1.08; letter-spacing:-.045em; }
.cfx2-program-row__content>p { margin:0; color:var(--cfx2-muted); font-size:12px; }
.cfx2-program-row__speakers { display:flex; flex-wrap:wrap; gap:8px 14px; margin-top:15px; }
.cfx2-program-row__speakers a { color:var(--cfx2-blue); font-size:10px; font-weight:750; }
.cfx2-program-row__venue a { display:flex; height:100%; flex-direction:column; justify-content:center; }
.cfx2-program-row__venue span { color:var(--cfx2-muted); font-family:"IBM Plex Mono",monospace; font-size:8px; text-transform:uppercase; }
.cfx2-program-row__venue strong { margin:8px 0 5px; font-size:13px; }
.cfx2-program-row__venue small { color:var(--cfx2-muted); font-size:10px; line-height:1.4; }
.cfx2-program-row__arrow { display:grid; place-items:center; border-right:0; }
.cfx2-program-row__arrow:hover { background:var(--cfx2-orange); color:#fff; }
.cfx2-program-timeline--single .cfx2-program-row { grid-template-columns:100px minmax(0,1fr) minmax(160px,230px) 54px; border:1px solid var(--cfx2-line); border-bottom:0; }
.cfx2-program-timeline--single .cfx2-program-row:last-child { border-bottom:1px solid var(--cfx2-line); }
.cfx2-speaker-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); border-top:1px solid var(--cfx2-line); border-left:1px solid var(--cfx2-line); }
.cfx2-speaker-card { min-width:0; border-right:1px solid var(--cfx2-line); border-bottom:1px solid var(--cfx2-line); background:#fff; }
.cfx2-speaker-card__photo { display:grid; place-items:center; aspect-ratio:4/5; overflow:hidden; background:var(--cfx2-paper-2); }
.cfx2-speaker-card__photo img { width:100%; height:100%; object-fit:cover; filter:grayscale(1); transition:filter .35s ease,transform .35s ease; }
.cfx2-speaker-card:hover .cfx2-speaker-card__photo img { filter:grayscale(0); transform:scale(1.025); }
.cfx2-speaker-card__photo>span { font-family:Manrope,sans-serif; font-size:70px; font-weight:800; letter-spacing:-.08em; }
.cfx2-speaker-card>div { padding:22px; }
.cfx2-speaker-card>div>span { color:var(--cfx2-orange); font-family:"IBM Plex Mono",monospace; font-size:8px; text-transform:uppercase; }
.cfx2-speaker-card h2 { margin:16px 0 8px; font-family:Manrope,sans-serif; font-size:25px; line-height:1.04; letter-spacing:-.05em; }
.cfx2-speaker-card p { margin:0 0 15px; color:var(--cfx2-muted); font-size:11px; }
.cfx2-speaker-card small { display:block; min-height:42px; margin-bottom:20px; color:var(--cfx2-muted); font-size:10px; line-height:1.5; }
.cfx2-speaker-grid--compact { grid-template-columns:repeat(3,minmax(0,1fr)); }
.cfx2-venue-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); border-top:1px solid var(--cfx2-line); border-left:1px solid var(--cfx2-line); }
.cfx2-venue-card { min-width:0; border-right:1px solid var(--cfx2-line); border-bottom:1px solid var(--cfx2-line); background:#fff; }
.cfx2-venue-grid .cfx2-venue-card { display:block; min-height:0; color:var(--cfx2-ink); }
.cfx2-venue-card__media { display:grid; place-items:center; aspect-ratio:4/3; overflow:hidden; background:var(--cfx2-ink); color:#fff; }
.cfx2-venue-card__media img { width:100%; height:100%; object-fit:cover; transition:transform .4s ease; }
.cfx2-venue-card:hover img { transform:scale(1.035); }
.cfx2-venue-card__media>span { max-width:90%; padding:24px; font-family:Manrope,sans-serif; font-size:clamp(22px,2.2vw,32px); font-weight:800; line-height:1.05; letter-spacing:-.045em; text-align:center; }
.cfx2-venue-card__body { padding:24px; }
.cfx2-venue-card__body>div { display:flex; justify-content:space-between; gap:10px; color:var(--cfx2-muted); font-family:"IBM Plex Mono",monospace; font-size:12px; line-height:1.35; text-transform:uppercase; }
.cfx2-venue-card__body b { color:var(--cfx2-orange); }
.cfx2-venue-card h2 { margin:24px 0 12px; color:var(--cfx2-ink); font-family:Manrope,sans-serif; font-size:clamp(27px,2.2vw,34px); line-height:1.05; letter-spacing:-.05em; }
.cfx2-venue-card p { color:var(--cfx2-blue); font-size:14px; line-height:1.45; font-weight:700; }
.cfx2-venue-card small { display:block; min-height:42px; margin:0 0 20px; color:var(--cfx2-muted); font-size:14px; line-height:1.6; }
.cfx2-event-detail,.cfx2-speaker-detail,.cfx2-venue-detail { display:grid; grid-template-columns:minmax(250px,.31fr) minmax(0,1fr); gap:clamp(44px,7vw,110px); }
.cfx2-event-detail__facts,.cfx2-speaker-detail>aside,.cfx2-venue-detail>aside { position:sticky; top:calc(var(--cfx2-header) + 28px); align-self:start; }
.cfx2-event-detail__facts { border:1px solid var(--cfx2-line); background:#fff; }
.cfx2-event-detail__facts>div,.cfx2-event-detail__facts>a { display:grid; gap:7px; padding:18px; border-bottom:1px solid var(--cfx2-line); }
.cfx2-event-detail__facts>*:last-child { border-bottom:0; }
.cfx2-event-detail__facts span,.cfx2-speaker-detail dt,.cfx2-venue-detail dt { color:var(--cfx2-muted); font-family:"IBM Plex Mono",monospace; font-size:8px; text-transform:uppercase; }
.cfx2-event-detail__facts strong { font-size:13px; }
.cfx2-event-detail__facts small { color:var(--cfx2-muted); font-size:10px; }
.cfx2-event-detail__content>figure { margin:0 0 50px; aspect-ratio:16/9; overflow:hidden; }
.cfx2-event-detail__content>figure img { width:100%; height:100%; object-fit:cover; }
.cfx2-event-detail__content>section,.cfx2-speaker-detail__content>section,.cfx2-venue-detail__content>section { margin-bottom:clamp(70px,8vw,120px); }
.cfx2-event-detail__content h2,.cfx2-speaker-detail__content h2,.cfx2-venue-detail__content h2 { margin:12px 0 30px; font-family:Manrope,sans-serif; font-size:clamp(38px,5vw,72px); line-height:.98; letter-spacing:-.065em; }
.cfx2-event-partners { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); border-top:1px solid var(--cfx2-line); border-left:1px solid var(--cfx2-line); }
.cfx2-event-partners article { min-height:170px; padding:24px; border-right:1px solid var(--cfx2-line); border-bottom:1px solid var(--cfx2-line); background:#fff; }
.cfx2-event-partners span { display:block; margin-bottom:36px; color:var(--cfx2-muted); font-family:"IBM Plex Mono",monospace; font-size:8px; text-transform:uppercase; }
.cfx2-event-partners strong { display:block; font-family:Manrope,sans-serif; font-size:24px; letter-spacing:-.04em; }
.cfx2-event-partners a { display:inline-block; margin-top:14px; color:var(--cfx2-blue); font-size:11px; font-weight:750; }
.cfx2-event-actions { display:flex; flex-wrap:wrap; gap:10px; }
.cfx2-speaker-detail__photo,.cfx2-venue-detail figure { display:grid; place-items:center; margin:0 0 14px; overflow:hidden; aspect-ratio:4/5; background:var(--cfx2-ink); color:#fff; }
.cfx2-speaker-detail__photo img,.cfx2-venue-detail figure img { width:100%; height:100%; object-fit:cover; }
.cfx2-speaker-detail__photo span { font-family:Manrope,sans-serif; font-size:76px; font-weight:800; }
.cfx2-speaker-detail dl,.cfx2-venue-detail dl { margin:0; border:1px solid var(--cfx2-line); background:#fff; }
.cfx2-speaker-detail dl div,.cfx2-venue-detail dl div { display:grid; grid-template-columns:90px 1fr; gap:14px; padding:15px; border-bottom:1px solid var(--cfx2-line); }
.cfx2-speaker-detail dl div:last-child,.cfx2-venue-detail dl div:last-child { border-bottom:0; }
.cfx2-speaker-detail dd,.cfx2-venue-detail dd { margin:0; font-size:11px; font-weight:700; }
.cfx2-speaker-detail__socials { display:flex; flex-wrap:wrap; gap:7px; margin-top:14px; }
.cfx2-speaker-detail__socials a { padding:9px 11px; border:1px solid var(--cfx2-line); font-size:9px; font-weight:750; }
.cfx2-speaker-detail__content blockquote { margin:0 0 70px; padding:32px; border-left:6px solid var(--cfx2-orange); background:var(--cfx2-ink); color:#fff; font-family:Manrope,sans-serif; font-size:clamp(24px,3vw,42px); line-height:1.15; letter-spacing:-.045em; }
.cfx2-venue-detail>aside>.cbx-button { width:100%; margin-top:14px; }
.cfx2-foundation-review { padding:clamp(80px,9vw,150px) 0; }
.cfx2-foundation-review__intro { max-width:850px; margin-bottom:70px; }
.cfx2-foundation-review__intro>span,.cfx2-foundation-review-group>header p { color:var(--cfx2-orange); font-family:"IBM Plex Mono",monospace; font-size:9px; letter-spacing:.08em; text-transform:uppercase; }
.cfx2-foundation-review__intro h2 { margin:16px 0; font-family:Manrope,sans-serif; font-size:clamp(48px,7vw,100px); line-height:.92; letter-spacing:-.075em; }
.cfx2-foundation-review__intro p { max-width:680px; color:var(--cfx2-muted); font-size:16px; line-height:1.6; }
.cfx2-foundation-review-group { display:grid; grid-template-columns:280px 1fr; border-top:1px solid var(--cfx2-line); }
.cfx2-foundation-review-group>header { display:grid; grid-template-columns:34px 1fr; gap:16px; align-content:start; padding:30px 26px 30px 0; border-right:1px solid var(--cfx2-line); }
.cfx2-foundation-review-group>header>span { color:var(--cfx2-orange); font-family:"IBM Plex Mono",monospace; font-size:9px; }
.cfx2-foundation-review-group>header p { margin:0 0 12px; }
.cfx2-foundation-review-group>header h2 { margin:0; font-family:Manrope,sans-serif; font-size:26px; line-height:1.05; letter-spacing:-.05em; }
.cfx2-foundation-review-group>header small { display:block; margin-top:14px; color:var(--cfx2-muted); line-height:1.5; }
.cfx2-foundation-review-list>a,.cfx2-foundation-review-list>div { min-height:92px; display:grid; grid-template-columns:40px 1fr auto; gap:16px; align-items:center; padding:18px 22px; border-bottom:1px solid var(--cfx2-line); }
.cfx2-foundation-review-list>a:hover { background:var(--cfx2-ink); color:#fff; }
.cfx2-foundation-review-list>a>span,.cfx2-foundation-review-list>div>span { color:var(--cfx2-orange); font-family:"IBM Plex Mono",monospace; font-size:9px; }
.cfx2-foundation-review-list strong { display:block; font-family:Manrope,sans-serif; font-size:18px; letter-spacing:-.03em; }
.cfx2-foundation-review-list small { display:block; margin-top:4px; color:var(--cfx2-blue); font-family:"IBM Plex Mono",monospace; font-size:8px; }
.cfx2-foundation-review-list p { margin:5px 0 0; color:var(--cfx2-muted); font-size:10px; }
.cfx2-foundation-review-list .is-dynamic { opacity:.68; }
.cfx2-foundation-review-list .is-dynamic>b { font-family:"IBM Plex Mono",monospace; font-size:8px; text-transform:uppercase; }

@media (max-width:1200px) {
  .cfx2-program-stats { grid-template-columns:repeat(3,minmax(0,1fr)); }
  .cfx2-program-portals,.cfx2-speaker-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .cfx2-program-grid,.cfx2-venue-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .cfx2-program-filter__extra { grid-template-columns:repeat(3,minmax(0,1fr)); }
  .cfx2-program-day { grid-template-columns:150px 1fr; }
  .cfx2-program-day>header h2 { font-size:clamp(22px,2.2vw,26px); white-space:nowrap; }
  .cfx2-program-row { grid-template-columns:95px minmax(0,1fr) 190px 48px; }
  .cfx2-program-row__time strong { font-size:clamp(20px,2.2vw,24px); }
}
@media (max-width:860px) {
  .cfx2-program-day { grid-template-columns:1fr; }
  .cfx2-program-day>header { border-right:0; padding-right:0; }
  .cfx2-program-row,.cfx2-program-timeline--single .cfx2-program-row { grid-template-columns:85px minmax(0,1fr) 48px; }
  .cfx2-program-row__time { padding-right:12px; padding-left:12px; }
  .cfx2-program-row__time strong { font-size:clamp(18px,2.6vw,22px); }
  .cfx2-program-row__venue { grid-column:2; border-top:1px solid var(--cfx2-line); border-right:1px solid var(--cfx2-line); }
  .cfx2-program-row__arrow { grid-column:3; grid-row:1/3; }
  .cfx2-event-detail,.cfx2-speaker-detail,.cfx2-venue-detail { grid-template-columns:1fr; }
  .cfx2-event-detail__facts,.cfx2-speaker-detail>aside,.cfx2-venue-detail>aside { position:static; }
  .cfx2-foundation-review-group { grid-template-columns:1fr; }
  .cfx2-foundation-review-group>header { border-right:0; }
}
@media (max-width:620px) {
  .cfx2-program-stats,.cfx2-program-portals,.cfx2-program-grid,.cfx2-speaker-grid,.cfx2-speaker-grid--compact,.cfx2-venue-grid,.cfx2-event-partners { grid-template-columns:1fr; }
  .cfx2-program-filter__extra { grid-template-columns:1fr; }
  .cfx2-program-row,.cfx2-program-timeline--single .cfx2-program-row { grid-template-columns:72px minmax(0,1fr); }
  .cfx2-program-row__time,.cfx2-program-row__content,.cfx2-program-row__venue { padding:17px 14px; }
  .cfx2-program-row__time { padding-right:10px; padding-left:10px; }
  .cfx2-program-row__venue { grid-column:1/3; }
  .cfx2-program-row__arrow { display:none; }
  .cfx2-program-card { min-height:0; }
  .cfx2-foundation-review-list>a,.cfx2-foundation-review-list>div { grid-template-columns:30px 1fr auto; padding:16px 8px; }
}


/* ==========================================================================\n   CAFEX v2.4.0 — News & Media\n   ========================================================================== */
.cfx2-news-catalog,.cfx2-media-hub,.cfx2-video-gallery,.cfx2-photo-gallery{padding:clamp(42px,6vw,92px) 0 0}
.cfx2-news-toolbar{display:grid;grid-template-columns:minmax(260px,1fr) minmax(150px,220px) auto auto;align-items:end;gap:12px;padding:18px;border:1px solid var(--cfx2-line);background:rgba(255,255,255,.48)}
.cfx2-news-toolbar label{display:grid;gap:7px}.cfx2-news-toolbar label>span{font:600 11px/1.2 var(--cfx2-mono);letter-spacing:.12em;text-transform:uppercase;color:var(--cfx2-muted)}
.cfx2-news-toolbar input,.cfx2-news-toolbar select{width:100%;height:52px;border:1px solid var(--cfx2-line);background:var(--cfx2-paper);color:var(--cfx2-ink);padding:0 15px;font:500 15px/1.2 var(--cfx2-sans);outline:none}
.cfx2-news-toolbar input:focus,.cfx2-news-toolbar select:focus{border-color:var(--cfx2-blue);box-shadow:0 0 0 3px rgba(70,89,232,.12)}
.cfx2-news-toolbar .cbx-button{height:52px}.cfx2-news-toolbar__reset{height:52px;display:grid;place-items:center;padding:0 15px;border:1px solid var(--cfx2-line);font-weight:700}
.cfx2-news-categories{display:flex;gap:8px;flex-wrap:wrap;margin:22px 0 34px}.cfx2-news-categories a{padding:10px 14px;border:1px solid var(--cfx2-line);font:600 12px/1 var(--cfx2-mono);letter-spacing:.04em}.cfx2-news-categories a:hover,.cfx2-news-categories a.is-active{background:var(--cfx2-ink);border-color:var(--cfx2-ink);color:#fff}
.cfx2-news-result-head{display:flex;justify-content:space-between;gap:20px;align-items:center;margin-bottom:18px;padding-bottom:14px;border-bottom:1px solid var(--cfx2-line);font:600 12px/1.2 var(--cfx2-mono);letter-spacing:.08em;text-transform:uppercase;color:var(--cfx2-muted)}
.cfx2-news-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1px;background:var(--cfx2-line);border:1px solid var(--cfx2-line);margin-top:1px}.cfx2-news-card{background:var(--cfx2-paper);min-width:0}.cfx2-news-card--featured{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(340px,.65fr);border:1px solid var(--cfx2-line);margin-bottom:26px}.cfx2-news-card__image{display:block;position:relative;overflow:hidden;aspect-ratio:16/10;background:var(--cfx2-ink)}.cfx2-news-card--featured .cfx2-news-card__image{aspect-ratio:auto;min-height:430px}.cfx2-news-card__image img{width:100%;height:100%;object-fit:cover;transition:transform .45s ease,opacity .45s ease}.cfx2-news-card:hover .cfx2-news-card__image img{transform:scale(1.025);opacity:.9}.cfx2-news-card__image>span{position:absolute;left:18px;bottom:18px;padding:8px 10px;background:var(--cfx2-orange);color:#fff;font:700 10px/1 var(--cfx2-mono);letter-spacing:.1em;text-transform:uppercase}.cfx2-news-card__body{padding:clamp(22px,3vw,38px);display:flex;flex-direction:column;align-items:flex-start;min-height:270px}.cfx2-news-card__meta{display:flex;gap:12px;flex-wrap:wrap;font:600 10px/1.2 var(--cfx2-mono);letter-spacing:.08em;text-transform:uppercase;color:var(--cfx2-muted)}.cfx2-news-card h2{font:750 clamp(21px,2vw,31px)/1.08 var(--cfx2-display);letter-spacing:-.045em;margin:20px 0 14px}.cfx2-news-card--featured h2{font-size:clamp(32px,4vw,58px)}.cfx2-news-card p{color:var(--cfx2-muted);line-height:1.6;margin:0 0 24px}.cfx2-news-card__link{display:inline-flex;align-items:center;gap:10px;margin-top:auto;font-weight:750}.cfx2-news-card__link .cfx2-arrow{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.8}
.cfx2-news-article{padding:clamp(30px,5vw,72px) 0 0}.cfx2-news-article__header{display:grid;gap:24px}.cfx2-news-article__meta{display:flex;flex-wrap:wrap;gap:10px 18px;font:600 11px/1.2 var(--cfx2-mono);letter-spacing:.08em;text-transform:uppercase;color:var(--cfx2-muted)}.cfx2-news-article__meta a{color:var(--cfx2-blue)}.cfx2-news-article__header figure{margin:0;aspect-ratio:4/3;overflow:hidden;background:var(--cfx2-ink)}.cfx2-news-article__header img{width:100%;height:100%;object-fit:cover}.cfx2-news-article__layout{display:grid;grid-template-columns:minmax(0,800px) minmax(180px,260px);justify-content:space-between;gap:clamp(36px,7vw,110px);padding:clamp(38px,6vw,86px) 0}.cfx2-news-article__lead{font-size:clamp(20px,2.2vw,30px)!important;line-height:1.4!important;font-weight:600;color:var(--cfx2-ink)!important}.cfx2-news-article__content img{max-width:100%;height:auto}.cfx2-news-article__aside{position:sticky;top:110px;align-self:start;display:grid;border-top:1px solid var(--cfx2-line)}.cfx2-news-article__aside>span{padding:16px 0;font:600 10px/1 var(--cfx2-mono);letter-spacing:.12em;text-transform:uppercase;color:var(--cfx2-muted)}.cfx2-news-article__aside a,.cfx2-news-article__aside button{appearance:none;text-align:left;border:0;border-top:1px solid var(--cfx2-line);background:transparent;color:var(--cfx2-ink);padding:15px 0;font:700 14px/1.2 var(--cfx2-sans);cursor:pointer}.cfx2-news-article__aside a:hover,.cfx2-news-article__aside button:hover{color:var(--cfx2-orange)}.cfx2-news-navigation{display:grid;grid-template-columns:1fr 1fr;border:1px solid var(--cfx2-line);margin:0 0 clamp(55px,8vw,110px)}.cfx2-news-navigation a{display:grid;gap:10px;padding:26px}.cfx2-news-navigation a+a{border-left:1px solid var(--cfx2-line);text-align:right}.cfx2-news-navigation small{font:600 10px/1.2 var(--cfx2-mono);letter-spacing:.1em;text-transform:uppercase;color:var(--cfx2-muted)}.cfx2-news-navigation strong{font-size:18px}.cfx2-related-news{border-top:1px solid var(--cfx2-line);padding-top:clamp(42px,6vw,78px)}.cfx2-related-news>h2{font:750 clamp(38px,5vw,72px)/1 var(--cfx2-display);letter-spacing:-.055em;margin:18px 0 32px}
.cfx2-media-hub__metrics{display:grid;grid-template-columns:repeat(3,1fr);border:1px solid var(--cfx2-line);margin-bottom:clamp(48px,7vw,90px)}.cfx2-media-hub__metrics>div{display:grid;gap:6px;padding:24px}.cfx2-media-hub__metrics>div+div{border-left:1px solid var(--cfx2-line)}.cfx2-media-hub__metrics strong{font:750 clamp(34px,5vw,64px)/1 var(--cfx2-display);letter-spacing:-.05em}.cfx2-media-hub__metrics span{font:600 10px/1.2 var(--cfx2-mono);letter-spacing:.1em;text-transform:uppercase;color:var(--cfx2-muted)}.cfx2-media-section-head{display:flex;justify-content:space-between;align-items:end;gap:20px;margin:18px 0 30px}.cfx2-media-section-head h2{font:750 clamp(38px,5vw,72px)/1 var(--cfx2-display);letter-spacing:-.055em;margin:0}.cfx2-media-section-head>a{font-weight:750}.cfx2-media-albums{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1px;background:var(--cfx2-line);border:1px solid var(--cfx2-line);margin-bottom:clamp(65px,9vw,130px)}.cfx2-media-albums--directory{margin-top:clamp(42px,6vw,86px)}.cfx2-media-album-card{background:var(--cfx2-paper)}.cfx2-media-album-card__image{display:block;aspect-ratio:16/10;overflow:hidden;background:var(--cfx2-ink);color:#fff}.cfx2-media-album-card__image img{width:100%;height:100%;object-fit:cover;transition:transform .45s ease}.cfx2-media-album-card:hover img{transform:scale(1.025)}.cfx2-media-album-card__image>span{height:100%;display:grid;place-items:center;font:600 12px/1 var(--cfx2-mono);letter-spacing:.14em}.cfx2-media-album-card>div{padding:clamp(22px,3vw,38px)}.cfx2-media-album-card>div>span{font:600 10px/1 var(--cfx2-mono);letter-spacing:.1em;color:var(--cfx2-orange)}.cfx2-media-album-card h2{font:750 clamp(28px,3vw,44px)/1.05 var(--cfx2-display);letter-spacing:-.045em;margin:14px 0}.cfx2-media-album-card p{color:var(--cfx2-muted);line-height:1.55}.cfx2-media-album-card>div>a{display:inline-flex;gap:10px;font-weight:750;margin-top:8px}
.cfx2-photo-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}.cfx2-photo-card{appearance:none;position:relative;border:0;padding:0;background:var(--cfx2-ink);overflow:hidden;cursor:zoom-in;aspect-ratio:1/1}.cfx2-photo-card:nth-child(7n+1),.cfx2-photo-card:nth-child(7n+5){grid-column:span 2;grid-row:span 2}.cfx2-photo-card img{width:100%;height:100%;object-fit:cover;transition:transform .4s ease,opacity .4s ease}.cfx2-photo-card:hover img{transform:scale(1.035);opacity:.86}.cfx2-photo-card span{position:absolute;left:12px;bottom:12px;color:#fff;font:600 10px/1 var(--cfx2-mono);letter-spacing:.1em;text-shadow:0 1px 8px rgba(0,0,0,.65)}
.cfx2-video-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1px;background:var(--cfx2-line);border:1px solid var(--cfx2-line);margin-bottom:clamp(65px,9vw,120px)}.cfx2-video-card-public{background:var(--cfx2-paper)}.cfx2-video-card-public>button{appearance:none;display:block;position:relative;width:100%;border:0;padding:0;aspect-ratio:16/9;overflow:hidden;background:var(--cfx2-ink);cursor:pointer}.cfx2-video-card-public>button img{width:100%;height:100%;object-fit:cover;transition:transform .4s ease,opacity .4s ease}.cfx2-video-card-public:hover>button img{transform:scale(1.025);opacity:.78}.cfx2-video-card-public__play{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:72px;height:72px;border-radius:50%;display:grid;place-items:center;background:var(--cfx2-orange);color:#fff;box-shadow:0 18px 50px rgba(0,0,0,.25)}.cfx2-video-card-public__play svg{width:30px;height:30px;fill:currentColor}.cfx2-video-card-public>div{padding:clamp(22px,3vw,38px)}.cfx2-video-card-public>div>span{font:600 10px/1 var(--cfx2-mono);letter-spacing:.1em;color:var(--cfx2-orange)}.cfx2-video-card-public h2{font:750 clamp(27px,3vw,42px)/1.05 var(--cfx2-display);letter-spacing:-.045em;margin:14px 0}.cfx2-video-card-public p{color:var(--cfx2-muted);line-height:1.55}.cfx2-video-card-public>div>button{appearance:none;border:0;background:transparent;padding:0;color:var(--cfx2-ink);font:750 15px/1.2 var(--cfx2-sans);cursor:pointer}.cfx2-video-card-public>div>button:hover{color:var(--cfx2-orange)}
.cfx2-media-dialog{width:min(1100px,94vw);max-width:none;border:0;padding:0;background:transparent}.cfx2-media-dialog::backdrop{background:rgba(7,13,22,.9);backdrop-filter:blur(6px)}.cfx2-media-dialog__frame{position:relative;background:var(--cfx2-ink);box-shadow:0 30px 100px rgba(0,0,0,.5)}.cfx2-media-dialog__frame img{display:block;max-width:100%;max-height:86vh;margin:auto}.cfx2-media-dialog__frame iframe{display:block;width:100%;aspect-ratio:16/9;border:0}.cfx2-media-dialog__close{position:absolute;right:10px;top:10px;z-index:3;width:44px;height:44px;border:1px solid rgba(255,255,255,.4);background:rgba(var(--cfx2-ink-rgb),.75);color:#fff;font-size:25px;cursor:pointer}.cfx2-media-dialog__caption{padding:14px 18px;color:#fff;font:500 13px/1.4 var(--cfx2-sans)}
@media(max-width:980px){.cfx2-news-toolbar{grid-template-columns:1fr 1fr}.cfx2-news-card--featured{grid-template-columns:1fr}.cfx2-news-card--featured .cfx2-news-card__image{min-height:340px}.cfx2-news-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.cfx2-news-article__layout{grid-template-columns:1fr}.cfx2-news-article__aside{position:static;grid-template-columns:repeat(4,1fr);border:1px solid var(--cfx2-line)}.cfx2-news-article__aside>*{padding:15px!important;border:0!important}.cfx2-media-albums,.cfx2-video-grid{grid-template-columns:1fr}.cfx2-photo-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:680px){.cfx2-news-toolbar{grid-template-columns:1fr}.cfx2-news-grid{grid-template-columns:1fr}.cfx2-news-card--featured .cfx2-news-card__image{min-height:250px}.cfx2-news-navigation{grid-template-columns:1fr}.cfx2-news-navigation a+a{border-left:0;border-top:1px solid var(--cfx2-line);text-align:left}.cfx2-news-article__aside{grid-template-columns:1fr 1fr}.cfx2-media-hub__metrics{grid-template-columns:1fr}.cfx2-media-hub__metrics>div+div{border-left:0;border-top:1px solid var(--cfx2-line)}.cfx2-media-section-head{align-items:start;flex-direction:column}.cfx2-photo-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.cfx2-photo-card:nth-child(n){grid-column:span 1;grid-row:span 1}.cfx2-photo-card:nth-child(5n+1){grid-column:span 2;aspect-ratio:16/10}.cfx2-video-card-public__play{width:58px;height:58px}}

/* ==========================================================================
   CAFEX v2.4.1 — News cards & photo masonry fix
   ========================================================================== */

/* News catalogue: predictable cards in every row. */
.cfx2-news-grid {
  align-items: stretch;
}

.cfx2-news-grid > .cfx2-news-card {
  display: grid;
  grid-template-rows: auto minmax(0, 1fr);
  height: 100%;
  overflow: hidden;
}

.cfx2-news-grid .cfx2-news-card__image {
  width: 100%;
  min-width: 0;
}

.cfx2-news-grid .cfx2-news-card__body {
  width: 100%;
  min-width: 0;
  min-height: 0;
  height: 100%;
}

.cfx2-news-grid .cfx2-news-card h2,
.cfx2-news-grid .cfx2-news-card h2 a {
  max-width: 100%;
  overflow-wrap: anywhere;
}

.cfx2-news-grid .cfx2-news-card h2 {
  display: -webkit-box;
  overflow: hidden;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 3;
}

.cfx2-news-grid .cfx2-news-card p {
  display: -webkit-box;
  overflow: hidden;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 4;
}

/* Photo album: true masonry, preserving original image proportions. */
.cfx2-photo-grid {
  display: block;
  column-count: 4;
  column-gap: 10px;
}

.cfx2-photo-card,
.cfx2-photo-card:nth-child(n) {
  display: block;
  width: 100%;
  height: auto;
  margin: 0 0 10px;
  break-inside: avoid;
  -webkit-column-break-inside: avoid;
  page-break-inside: avoid;
  aspect-ratio: auto;
  grid-column: auto;
  grid-row: auto;
  border-radius: 2px;
}

.cfx2-photo-card::after {
  content: '';
  position: absolute;
  inset: 0;
  pointer-events: none;
  background: linear-gradient(180deg, transparent 58%, rgba(var(--cfx2-ink-rgb), .58) 100%);
  opacity: .75;
  transition: opacity .35s ease;
}

.cfx2-photo-card img {
  display: block;
  width: 100%;
  height: auto;
  min-height: 0;
  object-fit: contain;
}

.cfx2-photo-card:hover::after {
  opacity: .42;
}

.cfx2-photo-card span {
  z-index: 1;
}

@media (max-width: 1180px) {
  .cfx2-news-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .cfx2-photo-grid {
    column-count: 3;
  }
}

@media (max-width: 760px) {
  .cfx2-photo-grid {
    column-count: 2;
    column-gap: 7px;
  }

  .cfx2-photo-card,
  .cfx2-photo-card:nth-child(n) {
    margin-bottom: 7px;
  }
}

@media (max-width: 560px) {
  .cfx2-news-grid {
    grid-template-columns: 1fr;
  }

  .cfx2-news-grid .cfx2-news-card h2,
  .cfx2-news-grid .cfx2-news-card p {
    display: block;
    overflow: visible;
    -webkit-line-clamp: unset;
  }
}



/* ==========================================================================\n   CAFEX v2.4.2 — News card orientation & pagination support\n   ========================================================================== */

/* Normal catalogue cards are always vertical. This deliberately overrides
   any featured-card grid state that may leak through Twig context. */
.cfx2-news-grid > .cfx2-news-card:not(.cfx2-news-card--featured) {
  display: flex !important;
  flex-direction: column !important;
  grid-template-columns: none !important;
  grid-template-rows: none !important;
  min-width: 0;
  height: 100%;
}

.cfx2-news-grid > .cfx2-news-card:not(.cfx2-news-card--featured) .cfx2-news-card__image {
  flex: 0 0 auto;
  width: 100%;
  min-width: 0;
  height: auto;
  min-height: 0;
  aspect-ratio: 16 / 10;
}

.cfx2-news-grid > .cfx2-news-card:not(.cfx2-news-card--featured) .cfx2-news-card__image img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
}

.cfx2-news-grid > .cfx2-news-card:not(.cfx2-news-card--featured) .cfx2-news-card__body {
  flex: 1 1 auto;
  display: flex;
  flex-direction: column;
  width: 100%;
  min-width: 0;
  min-height: 310px;
  height: auto;
}

.cfx2-news-grid > .cfx2-news-card:not(.cfx2-news-card--featured) h2 {
  font-size: clamp(24px, 2vw, 34px);
  line-height: 1.08;
}

.cfx2-news-grid > .cfx2-news-card:not(.cfx2-news-card--featured) p {
  font-size: 16px;
  line-height: 1.55;
}

@media (max-width: 680px) {
  .cfx2-news-grid > .cfx2-news-card:not(.cfx2-news-card--featured) .cfx2-news-card__body {
    min-height: 0;
  }
}

/* CAFEX virtual 3D tour: immersive, page-scoped embed. */
.cfx2-virtual-tour {
  min-width: 0;
  padding: 0 0 clamp(48px, 7vw, 96px);
  display: grid;
  gap: clamp(56px, 8vw, 112px);
}

.cfx2-virtual-tour__pavilion {
  min-width: 0;
}

.cfx2-virtual-tour__pavilion > h2 {
  margin: 0 0 clamp(20px, 3vw, 34px);
  font-family: var(--cfx2-display);
  font-size: clamp(34px, 4.2vw, 62px);
  font-weight: 750;
  line-height: 1;
  letter-spacing: -.055em;
}

.cfx2-virtual-tour__viewer {
  width: 100%;
  min-width: 0;
  overflow: hidden;
  border-radius: 18px;
  background: #071c33;
  box-shadow: 0 22px 60px rgb(7 28 51 / 18%);
}

.cfx2-virtual-tour__viewer iframe {
  display: block;
  width: 100%;
  height: clamp(600px, 78vh, 900px);
  border: 0;
}

.cfx2-virtual-tour__fallback {
  display: flex;
  justify-content: flex-end;
  margin: 18px 0 0;
}

@media (max-width: 680px) {
  .cfx2-virtual-tour__viewer {
    border-radius: 12px;
  }

  .cfx2-virtual-tour__viewer iframe {
    height: max(68svh, 520px);
  }

  .cfx2-virtual-tour__fallback,
  .cfx2-virtual-tour__fallback .cbx-button {
    width: 100%;
  }
}
.cfx2-ambassador-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); align-items:stretch; gap:1px; border:1px solid var(--cfx2-line); background:var(--cfx2-line); }
.cfx2-ambassador-card { display:grid; grid-template-rows:auto minmax(0,1fr); min-width:0; height:100%; overflow:hidden; background:var(--cfx2-paper); }
.cfx2-ambassador-card__image { width:100%; min-width:0; aspect-ratio:4/5; overflow:hidden; background:var(--cfx2-ink); }
.cfx2-ambassador-card__image img { display:block; width:100%; height:100%; object-fit:cover; transition:transform .45s ease,opacity .45s ease; }
.cfx2-ambassador-card:hover .cfx2-ambassador-card__image img { transform:scale(1.025); opacity:.92; }
.cfx2-ambassador-card__body { min-width:0; padding:clamp(20px,2.2vw,28px); }
.cfx2-ambassador-card h2 { margin:0 0 14px; font:750 clamp(22px,2vw,30px)/1.08 var(--cfx2-display); letter-spacing:-.04em; overflow-wrap:anywhere; }
.cfx2-ambassador-card p { margin:0; color:var(--cfx2-muted); font:400 15px/1.65 var(--cfx2-sans); white-space:pre-line; overflow-wrap:anywhere; }
@media (max-width:834px) { .cfx2-ambassador-grid { grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media (max-width:520px) { .cfx2-ambassador-grid { grid-template-columns:1fr; } .cfx2-ambassador-card__body { padding:20px; } }
.cfx2-about-copy { display:grid; gap:18px; max-width:820px; }
.cfx2-about-copy p { margin:0; }
.cfx2-document-viewer { width:100%; overflow:hidden; border:1px solid var(--cfx2-line); background:var(--cfx2-paper); }
.cfx2-document-viewer object { display:block; width:100%; height:clamp(560px,78vh,980px); border:0; }
.cfx2-document-viewer__fallback { display:flex; justify-content:flex-end; max-width:none!important; margin:18px 0 0; }
@media (max-width:900px) { .cfx2-inline-cta { grid-template-columns:1fr; } }
@media (max-width:520px) { .cfx2-document-viewer object { height:68svh; min-height:520px; } .cfx2-document-viewer__fallback,.cfx2-document-viewer__fallback .cbx-button { width:100%; } }
