/* Exhibition pages (Canton Fair / HK Lighting Fair / hub): shared template. */

.ibx-fair,
.ibx-hub {
	--ibx-ink: #013544;
	--ibx-ink-soft: #315963;
	--ibx-paper: #fff;
	--ibx-soft: #f4fbfb;
	--ibx-orange: #f57920;
	--ibx-orange-text: #b34a08;
	--ibx-line: #c8d8d6;
	--ibx-muted: #55696d;
	--ibx-mono: "SFMono-Regular", Consolas, "Liberation Mono", monospace;
	--ibx-sans: "Helvetica Neue", Arial, sans-serif;
	width: 100%;
	margin: 0;
	padding: 0;
	overflow-x: clip;
	background: var(--ibx-paper);
	color: var(--ibx-ink);
	font-family: var(--ibx-sans);
	line-height: 1.5;
}

.ibx-fair *,
.ibx-fair *::before,
.ibx-fair *::after,
.ibx-hub *,
.ibx-hub *::before,
.ibx-hub *::after { box-sizing: border-box; }
.ibx-fair h1, .ibx-fair h2, .ibx-fair h3, .ibx-fair h4, .ibx-fair p,
.ibx-hub h1, .ibx-hub h2, .ibx-hub h3, .ibx-hub h4, .ibx-hub p { margin-top: 0; }
.ibx-fair img, .ibx-hub img { max-width: 100%; }
.ibx-fair a:focus-visible, .ibx-fair button:focus-visible, .ibx-fair input:focus-visible, .ibx-fair select:focus-visible, .ibx-fair textarea:focus-visible,
.ibx-hub a:focus-visible, .ibx-hub button:focus-visible, .ibx-hub input:focus-visible, .ibx-hub select:focus-visible, .ibx-hub textarea:focus-visible { outline: 3px solid var(--ibx-orange); outline-offset: 2px; }

/* Buttons and links */
.ibx-btn { display: inline-flex; align-items: center; justify-content: center; gap: 10px; min-height: 48px; padding: 13px 24px; border: 1px solid var(--ibx-ink); border-radius: 2px; background: transparent; color: var(--ibx-ink); font: 800 15px/1.2 var(--ibx-sans); text-decoration: none; cursor: pointer; transition: background-color .16s ease, color .16s ease, border-color .16s ease; }
.ibx-btn--primary { background: var(--ibx-ink); color: #fff; }
.ibx-btn:hover, .ibx-btn:focus-visible { border-color: var(--ibx-orange); background: var(--ibx-orange); color: var(--ibx-ink); }
.ibx-text-link, .ibx-link-row a, .ibx-trust-points a, .ibx-locator-links a, .ibx-outcomes a { color: var(--ibx-ink); font-weight: 800; text-decoration: none; border-bottom: 1px solid var(--ibx-ink); }
.ibx-text-link:hover, .ibx-link-row a:hover, .ibx-trust-points a:hover, .ibx-locator-links a:hover, .ibx-outcomes a:hover { color: var(--ibx-orange-text); border-color: var(--ibx-orange-text); }

/* Hero */
.ibx-hero { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.05fr); gap: clamp(32px, 5vw, 80px); align-items: center; width: min(1360px, calc(100% - 48px)); margin: 0 auto; padding: 64px 0 72px; }
.ibx-eyebrow, .ibx-kicker { margin: 0 0 18px; color: var(--ibx-orange-text); font: 800 12px/1.4 var(--ibx-mono); letter-spacing: .13em; text-transform: uppercase; }
.ibx-hero h1 { margin: 0 0 22px; font-size: clamp(2.7rem, 5.4vw, 5.2rem); font-weight: 800; letter-spacing: -.06em; line-height: .96; }
.ibx-live-note { display: flex; align-items: center; gap: 10px; margin: 0 0 16px; padding: 10px 14px; border-left: 4px solid var(--ibx-orange); background: var(--ibx-soft); font-weight: 800; }
.ibx-live-dot { flex: 0 0 auto; width: 10px; height: 10px; border-radius: 50%; background: var(--ibx-orange); }
.ibx-facts { margin: 0 0 16px; color: var(--ibx-ink); font-size: 17px; font-weight: 700; line-height: 1.45; }
.ibx-lead { max-width: 560px; margin: 0 0 28px; color: var(--ibx-ink-soft); font-size: 17px; line-height: 1.6; }
.ibx-actions { display: flex; flex-wrap: wrap; gap: 12px; margin-bottom: 18px; }
.ibx-calendar-links { margin: 0 0 14px; color: var(--ibx-muted); font-size: 14px; }
.ibx-calendar-links a { color: var(--ibx-ink); font-weight: 700; }
.ibx-listed { margin: 0; color: var(--ibx-ink-soft); font-size: 14px; }
.ibx-hero-poster { margin: 0; }
.ibx-hero-poster img { display: block; width: 100%; height: auto; aspect-ratio: 1920 / 800; border: 1px solid var(--ibx-line); }
.ibx-hero-poster figcaption { margin-top: 10px; font-size: 13px; }
.ibx-hero-poster figcaption a { color: var(--ibx-ink); font-weight: 700; }

/* Sections */
.ibx-section { width: min(1360px, calc(100% - 48px)); margin: 0 auto; padding: 84px 0; border-top: 1px solid var(--ibx-ink); }
.ibx-section-head { display: grid; grid-template-columns: minmax(0, 1fr) minmax(260px, .7fr); gap: 20px 50px; align-items: end; margin-bottom: 40px; }
.ibx-section-head .ibx-kicker { grid-column: 1 / -1; margin-bottom: 0; }
.ibx-section-head h2 { max-width: 760px; margin: 0; font-size: clamp(2.3rem, 4.4vw, 4.4rem); font-weight: 800; letter-spacing: -.065em; line-height: .95; }
.ibx-section-head p:not(.ibx-kicker) { max-width: 420px; margin: 0 0 4px; color: var(--ibx-ink-soft); font-size: 16px; line-height: 1.55; }

/* On display */
.ibx-cards { display: grid; grid-template-columns: repeat(auto-fit, minmax(210px, 1fr)); gap: 20px; }
.ibx-card { position: relative; display: flex; flex-direction: column; border: 1px solid var(--ibx-line); background: var(--ibx-paper); }
.ibx-card-media { aspect-ratio: 1 / 1; background: #fff; }
.ibx-card-media img { display: block; width: 100%; height: 100%; object-fit: contain; }
.ibx-card-body { display: flex; flex: 1; flex-direction: column; padding: 18px; }
.ibx-card-tags { display: flex; flex-wrap: wrap; gap: 6px; min-height: 26px; margin: 0 0 10px; }
.ibx-tag { padding: 3px 8px; border: 1px solid var(--ibx-line); color: var(--ibx-ink-soft); font: 700 11px/1.3 var(--ibx-mono); letter-spacing: .04em; text-transform: uppercase; }
.ibx-tag--new { border-color: var(--ibx-orange); background: var(--ibx-orange); color: var(--ibx-ink); }
.ibx-card h3 { margin: 0 0 4px; font-size: 24px; font-weight: 800; letter-spacing: -.04em; }
.ibx-card-link { color: var(--ibx-ink); text-decoration: none; }
.ibx-card-link::after { content: ""; position: absolute; inset: 0; }
.ibx-card:hover .ibx-card-link { color: var(--ibx-orange-text); }
.ibx-card-series { margin: 0 0 10px; color: var(--ibx-muted); font-size: 13px; font-weight: 700; }
.ibx-card-blurb { margin: 0 0 14px; color: var(--ibx-ink-soft); font-size: 14px; line-height: 1.5; }
.ibx-card-params { margin: 0 0 16px; border-top: 1px solid var(--ibx-line); }
.ibx-card-params div { display: grid; grid-template-columns: 92px 1fr; gap: 10px; padding: 8px 0; border-bottom: 1px solid var(--ibx-line); font-size: 13px; }
.ibx-card-params dt { color: var(--ibx-muted); font: 700 11px/1.5 var(--ibx-mono); letter-spacing: .05em; text-transform: uppercase; }
.ibx-card-params dd { margin: 0; font-weight: 700; }
.ibx-card-pdf { position: relative; z-index: 2; align-self: flex-start; margin-top: auto; color: var(--ibx-ink); font-size: 13px; font-weight: 800; border-bottom: 1px solid var(--ibx-ink); text-decoration: none; }
.ibx-card-pdf:hover { color: var(--ibx-orange-text); border-color: var(--ibx-orange-text); }
.ibx-link-row { display: flex; flex-wrap: wrap; gap: 14px 30px; margin: 32px 0 0; font-size: 15px; }

/* Why meet us */
.ibx-why-grid { display: grid; grid-template-columns: minmax(0, 1.6fr) minmax(260px, .8fr); gap: clamp(30px, 5vw, 80px); align-items: start; }
.ibx-outcomes { margin: 0; padding: 0; list-style: none; }
.ibx-outcomes li { display: grid; gap: 6px; padding: 22px 0; border-top: 1px solid var(--ibx-line); }
.ibx-outcomes li:last-child { border-bottom: 1px solid var(--ibx-line); }
.ibx-outcomes strong { font-size: clamp(1.3rem, 2vw, 1.8rem); letter-spacing: -.04em; line-height: 1.1; }
.ibx-outcomes span { max-width: 560px; color: var(--ibx-ink-soft); font-size: 16px; line-height: 1.55; }
.ibx-bring { padding: 24px; border-top: 3px solid var(--ibx-orange); background: var(--ibx-soft); }
.ibx-bring .ibx-kicker { margin-bottom: 12px; }
.ibx-bring p:last-child { margin: 0; font-size: 17px; font-weight: 700; line-height: 1.5; }

/* Book */
.ibx-book { display: grid; grid-template-columns: minmax(0, .8fr) minmax(0, 1.2fr); gap: clamp(32px, 6vw, 96px); align-items: start; scroll-margin-top: 90px; }
.ibx-book-copy h2 { margin: 0 0 20px; font-size: clamp(2.3rem, 4.2vw, 4.2rem); font-weight: 800; letter-spacing: -.065em; line-height: .95; }
.ibx-book-copy > p:not(.ibx-kicker) { max-width: 440px; margin: 0 0 16px; color: var(--ibx-ink-soft); font-size: 16px; line-height: 1.6; }
.ibx-book-note { padding: 12px 14px; border-left: 3px solid var(--ibx-orange); background: var(--ibx-soft); font-size: 14px !important; }
.ibx-book-note a { color: var(--ibx-ink); font-weight: 800; }

.ibx-form-shell .wpcf7 { margin: 0; }
.ibx-form-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px 20px; }
.ibx-field { display: block; min-width: 0; margin: 0; padding: 0; border: 0; }
.ibx-field--wide { grid-column: 1 / -1; }
.ibx-field > span, .ibx-field > legend { display: block; margin-bottom: 6px; padding: 0; color: var(--ibx-ink); font: 800 12px/1.3 var(--ibx-mono); letter-spacing: .06em; text-transform: uppercase; }
.ibx-field em { color: var(--ibx-orange-text); font-style: normal; }
.ibx-form input[type="text"], .ibx-form input[type="email"], .ibx-form input[type="tel"], .ibx-form select, .ibx-form textarea { display: block; width: 100%; margin: 0; padding: 11px 12px; border: 1px solid #8fa5a6; border-radius: 2px; background: #fff; color: var(--ibx-ink); font: 16px/1.35 var(--ibx-sans); box-shadow: none; }
.ibx-form input[type="text"], .ibx-form input[type="email"], .ibx-form input[type="tel"], .ibx-form select { min-height: 46px; }
.ibx-form textarea { min-height: 96px; resize: vertical; }
.ibx-form input:focus, .ibx-form select:focus, .ibx-form textarea:focus { border-color: var(--ibx-ink); box-shadow: 0 0 0 2px rgb(1 53 68 / .14); }
.ibx-checks .wpcf7-form-control { display: flex; flex-wrap: wrap; gap: 8px 22px; }
.ibx-checks .wpcf7-list-item { margin: 0; }
.ibx-checks label { display: inline-flex; align-items: center; gap: 8px; min-height: 32px; font-size: 15px; }
.ibx-checks input { width: 18px; height: 18px; margin: 0; accent-color: var(--ibx-ink); }
.ibx-consent { margin: 16px 0 0; color: var(--ibx-ink-soft); font-size: 14px; line-height: 1.5; }
.ibx-consent .wpcf7-list-item { margin: 0; }
.ibx-consent label { display: flex; align-items: flex-start; gap: 10px; }
.ibx-consent input { flex: 0 0 auto; width: 20px; height: 20px; margin: 1px 0 0; accent-color: var(--ibx-ink); }
.ibx-consent a { color: var(--ibx-ink); font-weight: 700; }
.ibx-submit-wrap { display: flex; align-items: center; gap: 14px; margin: 20px 0 0; }
.ibx-form .wpcf7-spinner { margin: 0; }
.ibx-form .wpcf7-not-valid-tip { margin-top: 6px; color: #a12622; font-size: 13px; font-weight: 700; }
.ibx-form .wpcf7-response-output { margin: 18px 0 0 !important; padding: 12px 14px !important; border: 1px solid var(--ibx-line) !important; border-left: 4px solid var(--ibx-orange) !important; background: var(--ibx-soft); color: var(--ibx-ink); font-size: 15px; }
.ibx-success { margin: 0; padding: 22px; border: 1px solid var(--ibx-line); border-top: 4px solid var(--ibx-orange); background: var(--ibx-soft); }
.ibx-success h3 { margin: 0 0 8px; font-size: 24px; letter-spacing: -.03em; }
.ibx-success p { margin: 0 0 10px; }
.ibx-success .ibx-success-links { display: flex; flex-wrap: wrap; gap: 10px 22px; margin-top: 14px; }
.ibx-success a { color: var(--ibx-ink); font-weight: 800; }
.ibx-form-unavailable { padding: 16px; border: 1px solid var(--ibx-line); }

/* Trust and photos */
.ibx-trust-points { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 30px; margin: 0 0 48px; padding: 0; list-style: none; }
.ibx-trust-points li { display: grid; align-content: start; gap: 10px; padding-top: 16px; border-top: 3px solid var(--ibx-orange); }
.ibx-trust-points strong { font-size: 22px; letter-spacing: -.04em; line-height: 1.1; }
.ibx-trust-points span { color: var(--ibx-ink-soft); font-size: 15px; line-height: 1.55; }
.ibx-trust-points a { justify-self: start; font-size: 14px; }
.ibx-photos { column-count: 3; column-gap: 20px; }
.ibx-photo { break-inside: avoid; margin: 0 0 20px; }
.ibx-photo img { display: block; width: 100%; height: auto; background: #e9eeee; }
.ibx-photo figcaption { display: grid; gap: 2px; padding-top: 10px; }
.ibx-photo figcaption span { color: var(--ibx-orange-text); font: 800 11px/1.3 var(--ibx-mono); letter-spacing: .08em; }
.ibx-photo figcaption strong { font-size: 17px; letter-spacing: -.03em; }
.ibx-photo figcaption em { color: var(--ibx-muted); font-size: 14px; font-style: normal; line-height: 1.45; }
.ibx-more { display: none; margin: 4px 0 0; padding: 12px 20px; border: 1px solid var(--ibx-ink); background: transparent; color: var(--ibx-ink); font: 800 14px var(--ibx-sans); cursor: pointer; }

/* Visit */
.ibx-countdown { margin-bottom: 40px; padding: 24px 0 26px; border-top: 1px solid var(--ibx-ink); border-bottom: 1px solid var(--ibx-line); }
.ibx-countdown-label { margin: 0 0 14px; color: var(--ibx-orange-text); font: 800 12px var(--ibx-mono); letter-spacing: .14em; text-transform: uppercase; }
.ibx-countdown-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 14px; }
.ibx-countdown-grid > div { display: grid; gap: 6px; padding-bottom: 14px; border-bottom: 2px solid var(--ibx-ink); }
.ibx-countdown-grid strong { font: 800 clamp(2.6rem, 5.5vw, 5.4rem)/.9 var(--ibx-mono); letter-spacing: -.1em; }
.ibx-countdown-grid span { color: var(--ibx-muted); font: 700 11px var(--ibx-mono); letter-spacing: .1em; text-transform: uppercase; }
.ibx-countdown-ref { margin: 16px 0 0; color: var(--ibx-muted); font-size: 14px; font-weight: 700; }

.ibx-venue { display: grid; grid-template-columns: minmax(0, 1.6fr) minmax(280px, .8fr); gap: clamp(30px, 5vw, 72px); align-items: start; }
.ibx-plan { min-width: 0; margin: 0; }
.ibx-plan-window { position: relative; aspect-ratio: 16 / 9; overflow: hidden; border: 1px solid var(--ibx-line); background: var(--ibx-soft); }
.ibx-plan-window img { display: block; width: 100%; height: 100%; object-fit: cover; object-position: 50% 38%; }
.ibx-fair--hk .ibx-plan-window img { object-position: left top; }
.ibx-plan figcaption { margin-top: 14px; color: var(--ibx-muted); font: 700 11px/1.5 var(--ibx-mono); letter-spacing: .07em; text-transform: uppercase; }
.ibx-plan-hall { position: absolute; left: 50.5%; top: 4.7%; width: 17.5%; height: 16.2%; border: 3px solid var(--ibx-orange); background: rgb(245 121 32 / .12); box-shadow: 0 0 0 8px rgb(245 121 32 / .12); }
.ibx-plan-hall i, .ibx-plan-marker i { position: absolute; top: -31px; left: -3px; padding: 6px 8px; background: var(--ibx-orange); color: var(--ibx-ink); font: 800 11px var(--ibx-mono); font-style: normal; letter-spacing: .08em; white-space: nowrap; }
.ibx-plan-marker { position: absolute; border: 3px solid var(--ibx-orange); background: rgb(245 121 32 / .2); }
.ibx-locator { padding-top: 22px; border-top: 3px solid var(--ibx-orange); }
.ibx-locator-top { display: flex; justify-content: space-between; gap: 16px; color: var(--ibx-muted); font: 700 11px var(--ibx-mono); letter-spacing: .1em; text-transform: uppercase; }
.ibx-locator-primary { display: grid; grid-template-columns: 1fr 1fr; gap: 18px; margin: 44px 0 36px; }
.ibx-locator-primary div { display: grid; gap: 4px; min-width: 0; }
.ibx-locator-primary div + div { padding-left: 18px; border-left: 1px solid var(--ibx-line); }
.ibx-locator-primary span { color: var(--ibx-muted); font: 700 11px var(--ibx-mono); letter-spacing: .1em; text-transform: uppercase; }
.ibx-locator-primary strong { font: 800 clamp(2.6rem, 4.6vw, 4.6rem)/.9 var(--ibx-mono); letter-spacing: -.1em; }
.ibx-locator-primary div:last-child strong { color: var(--ibx-orange-text); }
.ibx-locator-meta { display: grid; gap: 16px; margin: 0; padding: 20px 0; border-top: 1px solid var(--ibx-line); border-bottom: 1px solid var(--ibx-line); }
.ibx-locator-meta div { display: grid; grid-template-columns: 72px 1fr; gap: 16px; }
.ibx-locator-meta dt { color: var(--ibx-muted); font: 700 11px var(--ibx-mono); letter-spacing: .1em; text-transform: uppercase; }
.ibx-locator-meta dd { margin: 0; font-size: 15px; font-weight: 700; line-height: 1.4; }
.ibx-locator-links { display: flex; flex-direction: column; align-items: flex-start; gap: 12px; margin-top: 22px; font-size: 14px; }

.ibx-info-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); gap: 24px; margin-top: 56px; }
.ibx-info-grid article { padding-top: 16px; border-top: 1px solid var(--ibx-ink); }
.ibx-info-grid h3 { margin: 0 0 8px; font-size: 20px; letter-spacing: -.03em; }
.ibx-info-grid p { margin: 0 0 14px; color: var(--ibx-ink-soft); font-size: 15px; line-height: 1.55; }

.ibx-steps { display: grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); gap: 22px; margin: 56px 0 0; padding: 0; list-style: none; counter-reset: none; }
.ibx-steps li { display: grid; align-content: start; gap: 8px; padding-top: 16px; border-top: 2px solid var(--ibx-ink); }
.ibx-steps li > span { color: var(--ibx-orange-text); font: 800 12px var(--ibx-mono); letter-spacing: .1em; }
.ibx-steps strong { font-size: 20px; letter-spacing: -.03em; line-height: 1.15; }
.ibx-steps small { color: var(--ibx-muted); font-size: 14px; line-height: 1.45; }

.ibx-travel { margin-top: 64px; padding-top: 28px; border-top: 1px solid var(--ibx-ink); display: grid; grid-template-columns: minmax(180px, .42fr) minmax(0, 1.58fr); gap: clamp(30px, 6vw, 84px); }
.ibx-travel header h3 { margin: 0; font-size: clamp(2rem, 3.2vw, 3rem); letter-spacing: -.06em; line-height: .96; }
.ibx-travel-grid { display: grid; grid-template-columns: 1fr 1fr; gap: clamp(24px, 4vw, 54px); }
.ibx-travel-grid article { min-width: 0; padding-top: 16px; border-top: 3px solid var(--ibx-orange); }
.ibx-travel-tag { margin: 0 0 6px; color: var(--ibx-muted); font: 700 11px var(--ibx-mono); letter-spacing: .1em; text-transform: uppercase; }
.ibx-travel-grid h4 { margin: 0 0 14px; font-size: clamp(1.2rem, 1.8vw, 1.6rem); letter-spacing: -.035em; }
.ibx-travel-grid ol { margin: 0; padding: 0; border-top: 1px solid var(--ibx-line); list-style: none; }
.ibx-travel-grid li { display: grid; grid-template-columns: 48px 1fr; gap: 14px; padding: 13px 0; border-bottom: 1px solid var(--ibx-line); }
.ibx-travel-grid li > span { color: var(--ibx-orange-text); font: 800 11px var(--ibx-mono); letter-spacing: .08em; }
.ibx-travel-grid li p { margin: 0; color: var(--ibx-ink-soft); font-size: 14px; line-height: 1.5; }
.ibx-travel-note { margin: 14px 0 0; color: var(--ibx-muted); font-size: 13px; line-height: 1.55; }

.ibx-both { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 20px; margin-top: 64px; padding: 22px 24px; border: 1px solid var(--ibx-line); border-left: 4px solid var(--ibx-orange); background: var(--ibx-soft); }
.ibx-both h3 { margin: 0 0 4px; font-size: 20px; }
.ibx-both p { margin: 0; max-width: 620px; color: var(--ibx-ink-soft); font-size: 15px; }

/* Can't make it, contacts */
.ibx-cant-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 20px; }
.ibx-cant-grid a { display: grid; gap: 6px; padding: 22px; border: 1px solid var(--ibx-line); border-top: 3px solid var(--ibx-orange); color: var(--ibx-ink); text-decoration: none; }
.ibx-cant-grid a:hover { background: var(--ibx-soft); }
.ibx-cant-grid strong { font-size: 20px; letter-spacing: -.03em; }
.ibx-cant-grid span { color: var(--ibx-ink-soft); font-size: 15px; }
.ibx-contact-list { display: grid; grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); gap: 24px; }
.ibx-contact { padding-top: 16px; border-top: 3px solid var(--ibx-orange); }
.ibx-contact h3 { margin: 0 0 4px; font-size: 22px; letter-spacing: -.03em; }
.ibx-contact-role, .ibx-contact-lang { margin: 0 0 4px; color: var(--ibx-ink-soft); font-size: 14px; }
.ibx-contact ul { display: grid; gap: 10px; margin: 14px 0 0; padding: 0; list-style: none; }
.ibx-contact-label { color: var(--ibx-muted); font: 700 11px var(--ibx-mono); letter-spacing: .08em; text-transform: uppercase; }

/* Sticky action bar (phones) */
.ibx-sticky { display: none; }

@media (max-width: 1000px) {
	.ibx-travel { grid-template-columns: 1fr; }
	.ibx-section-head { grid-template-columns: 1fr; }
}

@media (max-width: 899px) {
	.ibx-hero { grid-template-columns: 1fr; padding: 40px 0 48px; }
	.ibx-book, .ibx-why-grid, .ibx-venue { grid-template-columns: 1fr; }
	.ibx-photos { column-count: 2; }
	.ibx-trust-points, .ibx-cant-grid { grid-template-columns: 1fr; }
}

@media (max-width: 700px) {
	.ibx-section { width: calc(100% - 32px); padding: 60px 0; }
	.ibx-hero { width: calc(100% - 32px); }
	.ibx-hero h1 { font-size: clamp(2.5rem, 12vw, 3.6rem); }
	.ibx-actions .ibx-btn { flex: 1 1 100%; }
	.ibx-cards { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
	.ibx-card-body { padding: 12px; }
	.ibx-card h3 { font-size: 20px; }
	.ibx-card-params div { grid-template-columns: 1fr; gap: 2px; }
	.ibx-form-grid { grid-template-columns: 1fr; }
	.ibx-photos { column-count: 1; }
	.ibx-photos:not(.is-open) .ibx-photo--extra { display: none; }
	.ibx-more { display: inline-flex; }
	.ibx-travel-grid { grid-template-columns: 1fr; }
	.ibx-countdown-grid { gap: 8px; }
	.ibx-countdown-grid strong { font-size: clamp(2.1rem, 11vw, 3.2rem); }
	.ibx-locator-primary strong { font-size: clamp(2.8rem, 15vw, 4.4rem); }
	.ibx-info-grid, .ibx-steps { margin-top: 40px; }
	.ibx-sticky { position: fixed; z-index: 60; right: 0; bottom: 0; left: 0; display: flex; gap: 10px; padding: 10px 16px calc(10px + env(safe-area-inset-bottom)); border-top: 1px solid var(--ibx-line); background: #fff; box-shadow: 0 -6px 18px rgb(1 53 68 / .08); transition: transform .2s ease, opacity .2s ease; }
	.ibx-sticky .ibx-btn { flex: 1 1 0; min-height: 46px; padding: 10px 14px; }
	.ibx-sticky.is-hidden { transform: translateY(110%); opacity: 0; pointer-events: none; }
}

@media (prefers-reduced-motion: reduce) {
	.ibx-fair *, .ibx-hub * { transition: none !important; scroll-behavior: auto !important; }
}

/* Hub */
.ibx-hub-hero { width: min(1360px, calc(100% - 48px)); margin: 0 auto; padding: 72px 0 36px; }
.ibx-hub-hero h1 { margin: 0 0 20px; font-size: clamp(2.8rem, 6vw, 5.8rem); font-weight: 800; letter-spacing: -.06em; line-height: .96; }
.ibx-hub-hero .ibx-lead { max-width: 640px; margin-bottom: 0; }
.ibx-hub-cards { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 460px), 1fr)); gap: 24px; width: min(1360px, calc(100% - 48px)); margin: 0 auto; padding-bottom: 72px; }
.ibx-fair-card { display: flex; flex-direction: column; border: 1px solid var(--ibx-line); border-top: 5px solid var(--ibx-orange); background: #fff; }
.ibx-fair-card--canton { border-top-color: #00aeb6; }
.ibx-fair-card-poster { display: block; width: 100%; height: auto; aspect-ratio: 1920 / 800; }
.ibx-fair-card-body { display: flex; flex: 1; flex-direction: column; padding: 26px 28px 30px; }
.ibx-tag-line { margin: 0 0 12px; color: var(--ibx-orange-text); font: 800 12px/1.3 var(--ibx-mono); letter-spacing: .13em; text-transform: uppercase; }
.ibx-fair-card h2 { margin: 0 0 12px; font-size: clamp(2.2rem, 3.6vw, 3.4rem); font-weight: 800; letter-spacing: -.06em; line-height: .98; }
.ibx-fair-card-date { margin: 0 0 20px; font-size: 17px; font-weight: 700; line-height: 1.5; }
.ibx-fair-card-booth { margin: 0 0 24px; padding: 14px 0; border-block: 1px solid var(--ibx-line); }
.ibx-fair-card-booth span { display: block; color: var(--ibx-muted); font: 700 11px var(--ibx-mono); letter-spacing: .14em; text-transform: uppercase; }
.ibx-fair-card-booth strong { font-size: clamp(2.6rem, 4.4vw, 4.2rem); letter-spacing: -.07em; line-height: 1; }
.ibx-fair-card-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 14px 24px; margin-top: auto; }
.ibx-hub-both { width: min(1360px, calc(100% - 48px)); margin: 0 auto 8px; padding: 22px 26px; border: 1px solid var(--ibx-line); border-left: 4px solid var(--ibx-orange); background: var(--ibx-soft); }
.ibx-hub-both h2 { margin: 0 0 6px; font-size: 22px; letter-spacing: -.03em; }
.ibx-hub-both p { margin: 0; color: var(--ibx-ink-soft); font-size: 16px; }
.ibx-hub .ibx-section { scroll-margin-top: 90px; }
.ibx-past-list { display: grid; gap: 10px; margin: 0 0 32px; padding: 0; list-style: none; }
.ibx-past-list a { color: var(--ibx-ink); font-size: 17px; text-decoration: none; border-bottom: 1px solid var(--ibx-ink); }

@media (max-width: 700px) {
	.ibx-hub-hero { width: calc(100% - 32px); padding: 44px 0 24px; }
	.ibx-hub-cards, .ibx-hub-both { width: calc(100% - 32px); }
	.ibx-fair-card-body { padding: 20px 18px 24px; }
	.ibx-fair-card-actions .ibx-btn { flex: 1 1 100%; }
}

/* Phones: shorter page, form early, compact product list. */
.ibx-consent .wpcf7-form-control-wrap, .ibx-consent .wpcf7-acceptance { display: block; min-width: 0; max-width: 100%; }
.ibx-consent .wpcf7-list-item-label { min-width: 0; flex: 1; }

@media (max-width: 700px) {
	.ibx-fair { display: flex; flex-direction: column; }
	.ibx-fair > .ibx-hero { order: 1; }
	.ibx-fair > #on-display { order: 2; }
	.ibx-fair > #book { order: 3; }
	.ibx-fair > #why-meet-us { order: 4; }
	.ibx-fair > #why-glob-el { order: 5; }
	.ibx-fair > #visit { order: 6; }
	.ibx-fair > #cant-make-it { order: 7; }
	.ibx-fair > #contact { order: 8; }
	.ibx-section { padding: 44px 0; }
	.ibx-section-head { margin-bottom: 24px; }
	.ibx-section-head h2 { font-size: clamp(2rem, 9vw, 2.6rem); }
	.ibx-cards { grid-template-columns: 1fr; gap: 10px; }
	.ibx-card { flex-direction: row; align-items: stretch; }
	.ibx-card-media { flex: 0 0 96px; align-self: flex-start; width: 96px; }
	.ibx-card-body { padding: 10px 12px; min-width: 0; }
	.ibx-card-tags { min-height: 0; margin-bottom: 6px; }
	.ibx-card h3 { font-size: 20px; }
	.ibx-card-series { margin-bottom: 4px; }
	.ibx-card-blurb { display: none; }
	.ibx-card-params { margin-bottom: 8px; border-top: 0; }
	.ibx-card-params div { display: flex; gap: 8px; padding: 2px 0; border-bottom: 0; font-size: 12px; }
	.ibx-card-params dt { flex: 0 0 76px; font-size: 10px; }
	.ibx-link-row { margin-top: 20px; gap: 10px 20px; font-size: 14px; }
	.ibx-book-copy h2 { font-size: clamp(2rem, 9vw, 2.6rem); margin-bottom: 12px; }
	.ibx-book-copy > p:not(.ibx-kicker) { margin-bottom: 8px; font-size: 15px; }
	.ibx-outcomes li { padding: 14px 0; }
	.ibx-outcomes strong { font-size: 1.15rem; }
	.ibx-outcomes span { font-size: 15px; }
	.ibx-trust-points { gap: 20px; margin-bottom: 32px; }
}

.ibx-arrival { max-width: 760px; margin: 56px 0 0; }
.ibx-arrival img { display: block; width: 100%; height: auto; }
.ibx-arrival figcaption { margin-top: 10px; color: var(--ibx-muted); font-size: 12px; line-height: 1.5; }
.ibx-arrival figcaption a { color: var(--ibx-ink); font-weight: 700; }

/* Sales kit */
.ibx-kit-hero { grid-template-columns: 1fr; padding-bottom: 32px; }
.ibx-kit-grid { display: grid; grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr); gap: clamp(28px, 5vw, 72px); align-items: start; }
.ibx-kit-form { display: grid; gap: 14px; }
.ibx-kit-form input, .ibx-kit-form select, .ibx-kit-messages textarea, .ibx-kit-linkbox input { display: block; width: 100%; padding: 11px 12px; border: 1px solid #8fa5a6; border-radius: 2px; background: #fff; color: var(--ibx-ink); font: 16px/1.4 var(--ibx-sans); }
.ibx-kit-form input, .ibx-kit-form select, .ibx-kit-linkbox input { min-height: 46px; }
.ibx-kit-linkbox { display: grid; gap: 8px; margin-bottom: 26px; }
.ibx-kit-linkbox label { color: var(--ibx-ink); font: 800 12px var(--ibx-mono); letter-spacing: .06em; text-transform: uppercase; }
.ibx-kit-linkbox > div { display: flex; gap: 10px; margin-bottom: 8px; }
.ibx-kit-linkbox .ibx-btn { flex: 0 0 auto; min-height: 46px; }
.ibx-kit-qr { display: flex; flex-wrap: wrap; align-items: center; gap: 22px; }
.ibx-kit-qr canvas { width: 200px; height: 200px; border: 1px solid var(--ibx-line); background: #fff; }
.ibx-kit-qr-actions { display: grid; gap: 10px; }
.ibx-kit-images-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); gap: 20px; }
.ibx-kit-image { display: grid; gap: 8px; color: var(--ibx-ink); text-decoration: none; }
.ibx-kit-image img { display: block; width: 100%; height: 220px; object-fit: contain; border: 1px solid var(--ibx-line); background: var(--ibx-soft); }
.ibx-kit-image span { color: var(--ibx-ink-soft); font-size: 14px; line-height: 1.4; }
.ibx-kit-image strong { font-size: 14px; border-bottom: 1px solid var(--ibx-ink); justify-self: start; }
.ibx-kit-messages { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 24px; }
.ibx-kit-messages article { display: grid; gap: 12px; align-content: start; }
.ibx-kit-messages h3 { margin: 0; font-size: 20px; }
.ibx-kit-messages textarea { resize: vertical; }
@media (max-width: 899px) { .ibx-kit-grid, .ibx-kit-messages { grid-template-columns: 1fr; } }

/* Visit note (light form) */
.ibx-visit-note { display: grid; grid-template-columns: minmax(0, .8fr) minmax(0, 1.2fr); gap: clamp(24px, 5vw, 72px); align-items: start; margin-top: 56px; padding: 28px clamp(20px, 3vw, 36px); border: 1px solid var(--ibx-line); border-top: 4px solid var(--ibx-orange); background: var(--ibx-soft); }
.ibx-visit-note h3 { margin: 0 0 10px; font-size: clamp(1.5rem, 2.4vw, 2.1rem); letter-spacing: -.045em; line-height: 1.05; }
.ibx-visit-note p { margin: 0 0 10px; color: var(--ibx-ink-soft); font-size: 15px; line-height: 1.55; }
.ibx-visit-note-small { font-size: 13px !important; color: var(--ibx-muted) !important; }
.ibx-visit-note-small a { color: var(--ibx-ink); font-weight: 700; }
.ibx-visit-note .ibx-form-grid { gap: 12px 16px; }
.ibx-visit-note .ibx-submit-wrap { margin-top: 14px; }
@media (max-width: 899px) { .ibx-visit-note { grid-template-columns: 1fr; margin-top: 40px; } }

/* The theme resets input borders with high specificity; restore visible field borders in the exhibition forms and the kit. */
.ibx-fair .ibx-form input[type="text"], .ibx-fair .ibx-form input[type="email"], .ibx-fair .ibx-form input[type="tel"], .ibx-fair .ibx-form select, .ibx-fair .ibx-form textarea,
.ibx-hub .ibx-form input[type="text"], .ibx-hub .ibx-form input[type="email"], .ibx-hub .ibx-form input[type="tel"], .ibx-hub .ibx-form select, .ibx-hub .ibx-form textarea,
.ibx-kit .ibx-kit-form input, .ibx-kit .ibx-kit-form select, .ibx-kit .ibx-kit-messages textarea, .ibx-kit .ibx-kit-linkbox input { border: 1px solid #8fa5a6 !important; border-radius: 2px !important; background-color: #fff !important; box-shadow: none !important; }
.ibx-fair .ibx-form input:focus, .ibx-fair .ibx-form select:focus, .ibx-fair .ibx-form textarea:focus,
.ibx-hub .ibx-form input:focus, .ibx-hub .ibx-form select:focus, .ibx-hub .ibx-form textarea:focus,
.ibx-kit .ibx-kit-form input:focus, .ibx-kit .ibx-kit-form select:focus { border-color: var(--ibx-ink) !important; box-shadow: 0 0 0 2px rgb(1 53 68 / .14) !important; }

/* Travel routes fold on phones (open on larger screens). */
.ibx-fold > summary { display: none; }
@media (max-width: 700px) {
	.ibx-fold > summary { display: flex; align-items: center; justify-content: space-between; min-height: 48px; margin-top: 40px; padding: 0 16px; border: 1px solid var(--ibx-ink); font-weight: 800; cursor: pointer; list-style: none; }
	.ibx-fold > summary::after { content: "+"; font-size: 22px; }
	.ibx-fold[open] > summary::after { content: "−"; }
	.ibx-fold > summary::-webkit-details-marker { display: none; }
	.ibx-fold .ibx-travel { margin-top: 24px; }
	.ibx-arrival { display: none; }
}
