/*
 * Site chrome and page-level typography.
 * Values come from the Joomla template's custom CSS and page builder page CSS.
 */

/* ---- Header -------------------------------------------------------------- */
.astroid-nav > li > a, .astroid-sidebar-menu > li > a { font-family: "Roboto Condensed", Arial, Helvetica, sans-serif; }
.astroid-logo img { max-height: 90px !important; }
.astroid-nav .nav-link.active { font-weight: bold; }
.menu-item-badge {
	display: inline-block;
	padding: 1px 6px;
	border-radius: 3px;
	font-size: 11px;
	line-height: 1.4;
	text-transform: lowercase;
	background: var(--hw-badge-bg);
	color: var(--hw-badge-text) !important;
}
.astroid-logo .site-title { font-family: 'Roboto Condensed', Arial, sans-serif; font-size: 1.6rem; font-weight: 700; color: var(--hw-accent); }

/* WordPress admin bar pushes the sticky header down. */
.admin-bar #astroid-sticky-header { top: 32px; }
@media (max-width: 782px) { .admin-bar #astroid-sticky-header { top: 46px; } }

/* ---- Back to top --------------------------------------------------------- */
#astroid-backtotop { display: none; position: fixed; right: 20px; bottom: 20px; z-index: 999; text-decoration: none; }

/* ---- Title band notice (Careers page posters) ----------------------------- */
.harlow-page-notice { margin-top: 1rem; }
.harlow-page-notice p { margin-bottom: .25rem; }

/* ---- Footer -------------------------------------------------------------- */
#astroid-section-bottom { font-size: 16px; line-height: 1.8; }
#astroid-section-bottom h1,
#astroid-section-bottom h2,
#astroid-section-bottom h3,
#astroid-section-bottom h4 { color: #fff; font-size: 1.5em; margin-bottom: 1.25rem; }
#astroid-section-bottom .wp-block-columns { margin-top: 30px; margin-bottom: 30px; gap: 30px; }
#astroid-section-bottom .wp-block-gallery { gap: 8px; }
.harlow-footer-menu ul { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 0 1.25rem; }
.harlow-footer-menu a { color: inherit; }

/* ---- Page content (blocks) ---------------------------------------------- */
.hw-page-content { padding: 0; }
.hw-page-content:not(.hw-flush) { padding-top: 3rem; padding-bottom: 3rem; }
.hw-page-content .entry-content > .alignfull { margin-top: 0; margin-bottom: 0; }
.hw-page-content .entry-content > :not(.alignfull) { padding-left: 15px; padding-right: 15px; }
.hw-page-content .hw-section,
.hw-page-content .wp-block-cover.alignfull { padding-left: 15px; padding-right: 15px; }

/* Body copy: 20px / 34px on page builder pages. */
.hw-page-content p,
.hw-page-content li { font-size: 20px; line-height: 34px; }

/* Headings: page builder H1s were Eurostile 30px bold, usually uppercase. */
.hw-page-content h1 {
	font-family: eurostile, Arial, sans-serif;
	font-size: 30px;
	font-weight: 700;
	letter-spacing: 2px;
	text-transform: uppercase;
	color: #222;
}
.hw-page-content h1.heading-title,
.hw-page-content .heading-title h1 { color: #000; }
.hw-page-content h2 { color: var(--hw-accent); font-size: 1.7em; }
.hw-page-content h3 { font-size: 1.5em; }
.hw-page-content h4 { font-size: 1.25em; }

/* Section-specific colours from the old custom CSS. */
.news-section h1,
.facility-section h1,
.quality-section h1 { color: #fff; }
.facility-section h2,
.quality-section h2 { color: #000; }
.color-white h2, .color-white h1 { color: #fff; }
.has-text-color h1, .has-text-color h2, .has-text-color h3 { color: inherit; }

/* ---- News (old K2 views) ------------------------------------------------- */
.hw-news-list { display: grid; gap: 30px; }
.hw-news-list__item {
	display: grid;
	grid-template-columns: minmax(0, 1fr);
	gap: 20px;
	padding: 20px;
	border: 1px solid #f4f4f4;
	background: #fff;
}
@media (min-width: 768px) {
	.hw-news-list__item:has(.hw-news-list__image) { grid-template-columns: 280px minmax(0, 1fr); }
}
.hw-news-list__image img { width: 100%; height: auto; display: block; }
.hw-news-list__date,
.hw-news-item__date { display: block; font-size: 14px; color: #999; margin-bottom: .35rem; }
.hw-news-list__title { font-size: 1.6em; margin-bottom: .75rem; }
.hw-news-list__title a,
.hw-news-item__title { color: #2c2e36; font-family: 'Roboto Condensed', Arial, Helvetica, sans-serif; font-weight: bold; }
.hw-news-list__intro p { font-size: 16px; }
.hw-news-list__more { font-weight: 700; text-transform: uppercase; font-size: 14px; }
.hw-news-item__title { font-size: 2.2em; margin-bottom: 1.5rem; }
.hw-news-item__image { margin: 0 0 1.5rem; }
.hw-news-item__image img { max-width: 100%; height: auto; }
.hw-news-item__body p,
.hw-news-item__body li { font-size: 18px; line-height: 30px; }
.hw-news-item__nav { display: flex; justify-content: space-between; gap: 1rem; margin-top: 2rem; padding-top: 1rem; border-top: 1px solid #eee; }
.pagination .nav-links { display: flex; gap: .5rem; flex-wrap: wrap; margin-top: 25px; }
.pagination .page-numbers { padding: 4px 12px; border: 1px solid #ddd; background: #fff; text-decoration: none; }
.pagination .page-numbers.current { background: var(--hw-link); border-color: var(--hw-link); color: #fff; }

.hw-404-code { font-size: 8rem; color: var(--hw-accent); }

/* Gravity Forms: match the old contact form (square, light borders, red button). */
.gform_wrapper input[type="text"],
.gform_wrapper input[type="email"],
.gform_wrapper input[type="tel"],
.gform_wrapper textarea {
	border: 1px solid rgba(48, 48, 48, .1) !important;
	border-radius: 0 !important;
	padding: 15px 20px !important;
	font-size: 14px !important;
	background: #fff;
}
.gform_wrapper .gform_footer { text-align: right; justify-content: flex-end; }
.gform_wrapper .gform_button {
	background: var(--hw-accent) !important;
	color: var(--hw-accent-contrast) !important;
	border: 0 !important;
	border-radius: 0 !important;
	padding: 12px 50px !important;
	text-transform: uppercase;
}
.gform_wrapper .gform_button:hover { background: #222 !important; }

/* Breadcrumb separator (Joomla used an arrow image here). */
.mod_breadcrumbs .breadcrumb .divider::after { content: "/"; padding: 0 .5rem; color: #999; }

/* ---- Transparent home header (overlays the first section) --------------- */
.hw-transparent-header .astroid-wrapper { position: relative; }
.hw-transparent-header #astroid-section-header {
	position: absolute;
	top: 0;
	left: 0;
	right: 0;
	z-index: 50;
	background: transparent !important;
	box-shadow: none !important;
	border: 0 !important;
}
.hw-transparent-header #astroid-section-topbar {
	position: absolute;
	top: 0;
	left: 0;
	right: 0;
	z-index: 51;
	background: transparent;
	border: 0 !important;
}
.hw-transparent-header #astroid-section-topbar ~ #astroid-section-header { top: 42px; }
.hw-transparent-header .burger-menu-button .inner,
.hw-transparent-header .burger-menu-button .inner::before,
.hw-transparent-header .burger-menu-button .inner::after { background-color: #fff; }
.hw-transparent-header #astroid-sticky-header .burger-menu-button .inner,
.hw-transparent-header #astroid-sticky-header .burger-menu-button .inner::before,
.hw-transparent-header #astroid-sticky-header .burger-menu-button .inner::after,
.hw-transparent-header .astroid-mobilemenu .burger-menu-button .inner,
.hw-transparent-header .astroid-mobilemenu .burger-menu-button .inner::before,
.hw-transparent-header .astroid-mobilemenu .burger-menu-button .inner::after { background-color: #000; }

/* ---- Equipment / spec tables -------------------------------------------- */
.wp-block-table.equepmenttable,
.wp-block-table.is-style-hw-specs { margin-bottom: 1rem; overflow-x: auto; }
.wp-block-table.equepmenttable table,
.wp-block-table.is-style-hw-specs table { width: 100%; border-collapse: collapse; color: #212529; }
.wp-block-table.equepmenttable th,
.wp-block-table.equepmenttable td,
.wp-block-table.is-style-hw-specs th,
.wp-block-table.is-style-hw-specs td {
	padding: 0.75rem;
	vertical-align: top;
	border: 1px solid #dee2e6;
	text-align: left;
	font-size: 20px;
	line-height: 1.4;
	font-family: eurostile, Arial, sans-serif;
}
.wp-block-table.equepmenttable th,
.wp-block-table.is-style-hw-specs th { font-weight: 700; background: #f8f9fa; }

/* ---- Image lightbox (links that point at an image file) ----------------- */
.hw-lightbox {
	position: fixed;
	inset: 0;
	z-index: 100000;
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 40px 20px;
	background: rgba(0, 0, 0, .85);
	cursor: zoom-out;
}
.hw-lightbox img { max-width: min(100%, 1000px); max-height: 100%; box-shadow: 0 10px 40px rgba(0, 0, 0, .5); background: #fff; }
.hw-lightbox__close {
	position: absolute;
	top: 12px;
	right: 18px;
	font-size: 40px;
	line-height: 1;
	color: #fff;
	background: none;
	border: 0;
	cursor: pointer;
}
.hw-lightbox__caption { position: absolute; bottom: 12px; left: 0; right: 0; text-align: center; color: #fff; font-size: 16px; }
