/* ============================================================
   Genesis layout with the design system ('legacy' route): SiteOrigin pages,
   directory and form pages, the exhibitor portal, custom post types.
   The Business Pro and bs/ styles still set the layout and the forms; this file
   only brings the design-system type, colours, links, buttons and fields.
   The header, title band and footer carry their own `.abs` scope.
   ============================================================ */

body.abs-legacy { background: var(--surface); color: var(--ink); font-family: var(--font-sans); font-size: 17px; line-height: 1.65; -webkit-font-smoothing: antialiased; }
.abs-legacy .abs-frame { font-family: var(--font-sans); }
/* Business Pro list and link rules must not reach the header and footer */
.abs-legacy .abs-frame li { margin: 0; padding: 0; float: none; }
.abs-legacy .abs-frame .abs-header__nav a, .abs-legacy .abs-frame .abs-sitefoot__links a { padding-inline: 0; margin: 0; }
.abs-legacy .abs-frame .abs-sitefoot__menu a { padding: 0; margin: 0; }

/* Title band: the Business Pro page header markup inside the plain band */
.abs-legacy .abs-legacy-title { color: var(--ink); }
.abs-legacy .site-inner .abs-legacy-title h1, .abs-legacy .abs-legacy-title h1 { margin: 0 auto; max-width: var(--container-title); font-family: var(--font-display); font-weight: 500; font-size: clamp(40px, 5.4vw, 68px); line-height: 1; text-transform: uppercase; color: var(--ink); text-wrap: balance; }
.abs-legacy .site-inner .abs-legacy-title p, .abs-legacy .abs-legacy-title p { max-width: 52ch; margin: var(--space-4) auto 0; font-weight: 600; font-size: 22px; line-height: 1.45; }
.abs-legacy .abs-legacy-title .archive-description { margin: 0; padding: 0; background: none; }
/* PageHero on pages flagged abs_photo_hero (featured image + title box) */
.abs-legacy .abs-legacy-hero .abs-hero--page { margin-bottom: 0; } /* the content area brings its own top padding, as under the plain band */
.abs-legacy .abs-legacy-hero h1.abs-titlebox__title { margin: 0; font-family: var(--font-display); font-weight: 500; font-size: clamp(40px, 5.4vw, 68px); line-height: 1; text-transform: uppercase; color: var(--ink); letter-spacing: normal; text-wrap: balance; }

/* Content area */
.abs-legacy .site-inner { background: var(--surface); padding-top: 0; padding-bottom: var(--space-9); }
.abs-legacy .content-sidebar-wrap { margin-top: 0; }
/* SiteOrigin Page Builder style settings (ID selectors in the head): no box shadows or decorative
   borders in the design system. Background colours stay: they are fixed page by page. */
.abs-legacy :is(.panel-row-style, .panel-cell-style, .panel-widget-style), .abs-legacy :is(.panel-row-style, .panel-cell-style, .panel-widget-style):hover { box-shadow: none !important; border: 0 !important; }
/* Bright turquoise boxes set in Page Builder (Contact 185, Register your interest 461, portal page
   General Stand information 43) take the design-system light blue; their text is already navy. */
.abs-legacy #panel-185-0-0-0 > .panel-widget-style,
.abs-legacy #panel-185-1-0-0 > .panel-widget-style,
.abs-legacy #panel-461-0-0-0 > .panel-widget-style,
.abs-legacy #panel-43-0-0-0 > .panel-widget-style,
.abs-legacy #panel-43-1-0-0 > .panel-widget-style,
.abs-legacy #panel-43-3-0-0 > .panel-widget-style,
.abs-legacy #panel-43-5-0-0 > .panel-widget-style,
.abs-legacy #panel-43-7-0-0 > .panel-widget-style,
.abs-legacy #panel-43-9-0-0 > .panel-widget-style,
.abs-legacy #panel-43-11-0-0 > .panel-widget-style,
.abs-legacy #panel-43-13-0-0 > .panel-widget-style,
.abs-legacy #panel-43-15-0-0 > .panel-widget-style { background-color: var(--aqua-100) !important; }
/* No sidebar outside the portal: the content keeps the 920px it had next to the sidebar, centred */
.abs-legacy.abs-no-sidebar .content { width: 100%; max-width: 920px; margin-left: auto; margin-right: auto; }
.abs-legacy .site-inner, .abs-legacy .site-inner p, .abs-legacy .site-inner li, .abs-legacy .site-inner td, .abs-legacy .site-inner th { font-family: var(--font-sans); color: var(--ink); }
.abs-legacy .site-inner h1, .abs-legacy .site-inner h2, .abs-legacy .site-inner h3, .abs-legacy .site-inner h4, .abs-legacy .site-inner h5, .abs-legacy .site-inner h6 { font-family: var(--font-sans); font-weight: 700; color: var(--ink); letter-spacing: normal; text-transform: none; }
.abs-legacy .site-inner .entry-title, .abs-legacy .site-inner .widget-title { font-weight: 700; }
.abs-legacy .site-inner a:not([class*="button"]):not(.abs-btn) { color: var(--link); text-decoration: underline; text-underline-offset: 3px; }
.abs-legacy .site-inner a:not([class*="button"]):not(.abs-btn):hover { color: var(--navy); text-decoration-thickness: 2px; }
/* Exhibitor portal sidebar menu: navy links without underline, turquoise on hover and for the current page */
.abs-legacy .site-inner .sidebar-primary a:not([class*="button"]):not(.abs-btn) { color: var(--navy); text-decoration: none; }
.abs-legacy .site-inner .sidebar-primary a:not([class*="button"]):not(.abs-btn):is(:hover, :focus, [aria-current="page"]) { color: var(--link); }
/* Items with a submenu get the header's chevron */
.abs-legacy .site-inner .sidebar-primary .menu-item-has-children > a::after { content: ""; display: inline-block; width: 7px; height: 7px; margin-left: 8px; border: solid currentColor; border-width: 0 2px 2px 0; transform: translateY(-3px) rotate(45deg); }

/* Buttons: core, SiteOrigin, Toolset, Contact Form 7, Advanced Forms */
.abs-legacy .site-inner :is(.button, button:not([class*="toggle"]):not(.mfp-close), input[type="submit"], input[type="button"], .wp-block-button__link, .ow-button-base a, .sow-button, .wpcf7-submit, .af-submit-button, .cred-form input[type="submit"]) {
	display: inline-flex; align-items: center; justify-content: center; min-height: 48px; padding: 14px 32px;
	border: 0; border-radius: var(--radius-pill); background: var(--turquoise); color: var(--on-turquoise);
	text-shadow: var(--text-shadow-button); box-shadow: none;
	font-family: var(--font-sans); font-weight: 700; font-size: 15px; line-height: 1; letter-spacing: 0.06em; text-transform: uppercase; text-decoration: none; cursor: pointer;
}
.abs-legacy .site-inner :is(.button, button:not([class*="toggle"]):not(.mfp-close), input[type="submit"], input[type="button"], .wp-block-button__link, .ow-button-base a, .sow-button, .wpcf7-submit, .af-submit-button):hover { background: var(--navy); color: var(--on-navy); }

/* Form fields */
.abs-legacy .site-inner :is(input[type="text"], input[type="email"], input[type="tel"], input[type="url"], input[type="number"], input[type="password"], input[type="search"], input[type="date"], select, textarea) {
	min-height: 48px; padding: 12px 16px; border: var(--border-control) solid var(--control-border); border-radius: 6px;
	background: var(--surface); color: var(--ink); font: 400 16px/1.4 var(--font-sans); box-shadow: none;
}
.abs-legacy .site-inner textarea { min-height: 120px; }
.abs-legacy .site-inner :is(input, select, textarea):focus { outline: var(--focus-width) solid var(--focus-ring); outline-offset: 1px; border-color: var(--navy); }
.abs-legacy .site-inner label { font-weight: 600; color: var(--ink); }

/* Tables (directory listings, portal summaries) */
.abs-legacy .site-inner table { border-collapse: collapse; }
.abs-legacy .site-inner th { background: var(--aqua-100); font-weight: 700; }
.abs-legacy .site-inner :is(th, td) { border-color: var(--line); }

/* Focus */
.abs-legacy :focus-visible { outline: var(--focus-width) solid var(--focus-ring); outline-offset: 2px; }
/* The title band already carries the page title */
.abs-legacy.error404 .site-inner .entry-title { display: none; }

/* ---------- Exhibitor directory (Toolset Views output as ExhibitorDirectory cards) ---------- */
/* The directory takes the wide container instead of the 920px text column */
.abs-legacy.abs-no-sidebar .content:has(.abs-directory) { max-width: var(--container-wide); }
.abs-legacy .abs-directory :is(ul, ol) { margin: 0; padding: 0; list-style: none; }
.abs-legacy .abs-directory li { margin: 0; }
.abs-legacy .abs-directory h3 { margin: 0; font-family: var(--font-sans); font-size: 17px; letter-spacing: 0; text-transform: none; }
.abs-legacy .site-inner .abs-directory :is(.abs-exhibitor__logo, .abs-exhibitor__name a) { color: var(--ink); text-decoration: none; }
.abs-legacy .site-inner .abs-directory .abs-exhibitor__name a:hover { text-decoration: underline; }
.abs-legacy .abs-directory .abs-exhibitor__blurb p { margin: 0; }
.abs-legacy .abs-directory .abs-select { width: auto; }
@media (max-width: 760px) { .abs-legacy .abs-directory .abs-dirgrid { gap: var(--space-3); } }
/* Exhibitors page (SiteOrigin): category spots stacked on phones. The 30px gap between
   cells stays; the spot's own 2rem/5rem padding and the margins around the image and title go */
@media (max-width: 780px) {
	.abs-legacy .site-inner .exhibitor-category-spot { padding-block: 0; }
	.abs-legacy .site-inner .exhibitor-category-spot p { margin-bottom: 0; }
	.abs-legacy .site-inner .exhibitor-category-spot img { margin-bottom: var(--space-3); }
	.abs-legacy .site-inner .exhibitor-category-spot h3 { margin: 0; }
}
.abs-legacy .abs-directory :is(ul, ol) { list-style: none !important; }
.abs-legacy .abs-directory li::before, .abs-legacy .abs-directory li::marker { content: none; }
.abs-legacy .site-inner .abs-directory .abs-az button:not([class*="toggle"]) { display: grid; place-items: center; width: 34px; min-width: 34px; height: 34px; min-height: 0; margin: 0; padding: 0; border: 0; border-radius: 50%; background: none; box-shadow: none; color: var(--ink); font: 700 14px/1 var(--font-sans); letter-spacing: 0; text-transform: none; text-shadow: none; }
.abs-legacy .site-inner .abs-directory .abs-az button:not([class*="toggle"]):hover { background: var(--aqua-100); }
.abs-legacy .site-inner .abs-directory .abs-az button:not([class*="toggle"])[aria-pressed="true"] { background: var(--navy); color: var(--on-navy); }
.abs-legacy .abs-directory .abs-search .abs-input { padding-left: 48px; border-radius: var(--radius-pill); }
.abs-legacy .abs-directory .abs-select { border-radius: var(--radius-pill); }
.abs-legacy .abs-directory .abs-az span { display: grid; place-items: center; min-width: 34px; height: 34px; line-height: 1; }

/* ---------- Brands page ([bs-brands-list] from cp-aowbs) as the design-system brands list ---------- */
.abs-legacy.abs-no-sidebar .content:has(.bs-brands) { max-width: var(--container-wide); }
.abs-legacy .bs-brands :is(ul, li) { list-style: none !important; margin: 0; padding: 0; }
.abs-legacy .bs-brands li::before { content: none; }
/* Search: the pill field with the magnifier of abs-search */
.abs-legacy .bs-brands-search { position: relative; max-width: 560px; margin-bottom: var(--space-6); }
.abs-legacy .bs-brands-search::before { content: ""; position: absolute; left: 20px; top: 24px; width: 14px; height: 14px; margin-top: -9px; border: 2px solid var(--ink-muted); border-radius: 50%; }
.abs-legacy .bs-brands-search::after { content: ""; position: absolute; left: 33px; top: 24px; width: 2px; height: 7px; margin-top: 2px; background: var(--ink-muted); transform: rotate(-45deg); }
.abs-legacy .site-inner .bs-brands .bs-brands-search-field { max-width: none; height: 48px; padding: 0 var(--space-5) 0 48px; border: var(--border-control) solid var(--control-border); border-radius: var(--radius-pill); font: 400 16px/1 var(--font-sans); color: var(--ink); }
.abs-legacy .bs-brands .bs-brands-count { margin-top: var(--space-3); font-size: 15px; color: var(--ink-muted); }
/* The list: abs-brands columns with hairlines between names */
.abs-legacy .bs-brands .bs-brands-list { columns: 4 200px; column-gap: var(--space-6); font-size: 16px; line-height: 1.5; }
.abs-legacy .bs-brands .bs-brand { break-inside: avoid; padding-block: var(--space-2); border-bottom: 1px solid var(--line); }
.abs-legacy .site-inner .bs-brands a.bs-brand-name, .abs-legacy .site-inner .bs-brands .bs-brand button.bs-brand-toggle { display: inline; min-height: 0; margin: 0; padding: 0; border: 0; border-radius: 0; background: none; box-shadow: none; color: var(--ink); font: 400 16px/1.5 var(--font-sans); letter-spacing: 0; text-align: left; text-decoration: none; text-shadow: none; text-transform: none; cursor: pointer; }
.abs-legacy .site-inner .bs-brands a.bs-brand-name:hover, .abs-legacy .site-inner .bs-brands .bs-brand button.bs-brand-toggle:hover { color: var(--ink); background: none; text-decoration: underline; text-underline-offset: 3px; }
/* A brand shown by several exhibitors: the count as a navy badge, the exhibitors listed below once opened */
.abs-legacy .bs-brands .bs-brand-badge { min-width: 20px; margin-left: var(--space-2); padding: 0 6px; border-radius: var(--radius-pill); background: var(--navy); color: var(--on-navy); font: 700 12px/20px var(--font-sans); text-decoration: none; }
.abs-legacy .bs-brands .bs-brand-exhibitors { display: none; gap: var(--space-1); margin-top: var(--space-2); padding-left: var(--space-3); border-left: 2px solid var(--turquoise); font-size: 15px; }
.abs-legacy .site-inner .bs-brands .bs-brand-exhibitors a:not([class*="button"]) { color: var(--link); }
.abs-legacy .bs-brands .bs-brand-stand { margin-left: var(--space-2); font-size: 13px; color: var(--ink-muted); }
.abs-legacy .bs-brands .bs-brand.is-open .bs-brand-exhibitors { display: grid; }
/* "Search by brand" and "Search by category" under the A to Z */
.abs-legacy .abs-directory .abs-dirbar__buttons { display: flex; flex-wrap: wrap; gap: var(--space-3); }
/* Card buttons: keep the design-system button over the legacy link rules */
.abs-legacy .site-inner .abs-directory a.abs-btn { text-decoration: none; }
.abs-legacy .site-inner .abs-directory a.abs-btn--outline { color: var(--navy); }
.abs-legacy .site-inner .abs-directory a.abs-btn:hover { color: var(--on-navy); }

/* Directory landing: the legacy sector spots draw a coloured border under their link on top of the
   link underline; keep one line only, the underline, and show it on hover. */
.abs-legacy .site-inner .exhibitor-category-spot h3 a:not([class*="button"]) { padding-bottom: 0; border-bottom: 0; color: var(--ink); text-decoration: none; }
.abs-legacy .site-inner .exhibitor-category-spot h3 a:not([class*="button"]):hover { color: var(--navy); text-decoration: underline; text-decoration-thickness: 2px; text-underline-offset: 4px; }
