/* Minification failed. Returning unminified contents.
(15,5): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(16,5): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(17,5): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(18,5): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(19,5): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(20,5): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(21,5): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(22,5): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(23,5): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(24,5): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(27,5): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(28,5): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(29,5): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(30,5): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(31,5): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(32,5): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(33,5): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(34,5): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(35,5): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(36,5): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(37,5): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(42,5): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(43,5): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(44,5): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(45,5): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(48,5): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(49,5): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(50,5): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(51,5): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(52,5): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(53,5): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(54,5): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(55,5): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(56,5): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(57,5): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(58,5): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(59,5): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(64,5): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(72,5): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(73,5): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(74,5): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(75,5): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(76,5): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(77,5): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(78,5): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(79,5): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(80,5): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(82,5): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(83,5): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(84,5): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(87,5): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(88,5): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(89,5): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(90,5): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(91,5): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(92,5): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(93,5): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(94,5): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(97,5): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(98,5): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(99,5): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(100,5): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(103,5): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(104,5): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(105,5): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(106,5): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(108,5): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(111,5): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(112,5): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(118,9): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(134,23): run-time error CSS1039: Token not allowed after unary operator: '-al-font'
(135,21): run-time error CSS1039: Token not allowed after unary operator: '-al-text-base'
(136,23): run-time error CSS1039: Token not allowed after unary operator: '-al-leading'
(137,17): run-time error CSS1039: Token not allowed after unary operator: '-al-text'
(138,28): run-time error CSS1039: Token not allowed after unary operator: '-al-bg'
(151,23): run-time error CSS1039: Token not allowed after unary operator: '-al-font'
(152,17): run-time error CSS1039: Token not allowed after unary operator: '-al-text-strong'
(154,23): run-time error CSS1039: Token not allowed after unary operator: '-al-leading-tight'
(157,25): run-time error CSS1039: Token not allowed after unary operator: '-al-space-3'
(160,27): run-time error CSS1039: Token not allowed after unary operator: '-al-h1'
(161,27): run-time error CSS1039: Token not allowed after unary operator: '-al-h2'
(162,27): run-time error CSS1039: Token not allowed after unary operator: '-al-h3'
(163,27): run-time error CSS1039: Token not allowed after unary operator: '-al-h4'
(164,27): run-time error CSS1039: Token not allowed after unary operator: '-al-text-lg'
(164,59): run-time error CSS1039: Token not allowed after unary operator: '-al-leading-snug'
(165,27): run-time error CSS1039: Token not allowed after unary operator: '-al-text-base'
(169,25): run-time error CSS1039: Token not allowed after unary operator: '-al-space-4'
(174,33): run-time error CSS1039: Token not allowed after unary operator: '-al-text-sm'
(176,43): run-time error CSS1039: Token not allowed after unary operator: '-al-text-strong'
(180,32): run-time error CSS1039: Token not allowed after unary operator: '-al-border'
(181,18): run-time error CSS1039: Token not allowed after unary operator: '-al-space-6'
(188,17): run-time error CSS1039: Token not allowed after unary operator: '-al-primary'
(190,28): run-time error CSS1039: Token not allowed after unary operator: '-al-dur'
(190,42): run-time error CSS1039: Token not allowed after unary operator: '-al-ease'
(195,17): run-time error CSS1039: Token not allowed after unary operator: '-al-primary-hover'
(205,29): run-time error CSS1039: Token not allowed after unary operator: '-al-focus'
(207,25): run-time error CSS1039: Token not allowed after unary operator: '-al-radius-sm'
(216,29): run-time error CSS1039: Token not allowed after unary operator: '-al-focus'
(218,22): run-time error CSS1039: Token not allowed after unary operator: '-al-ring'
(256,35): run-time error CSS1039: Token not allowed after unary operator: '-al-border-strong'
(257,17): run-time error CSS1039: Token not allowed after unary operator: '-al-text-strong'
(264,32): run-time error CSS1039: Token not allowed after unary operator: '-al-border'
(265,17): run-time error CSS1039: Token not allowed after unary operator: '-al-text'
(269,28): run-time error CSS1039: Token not allowed after unary operator: '-al-ink-50'
(276,22): run-time error CSS1039: Token not allowed after unary operator: '-al-blue-200'
(277,17): run-time error CSS1039: Token not allowed after unary operator: '-al-ink-900'
(316,23): run-time error CSS1039: Token not allowed after unary operator: '-al-font'
(318,21): run-time error CSS1039: Token not allowed after unary operator: '-al-text-base'
(322,25): run-time error CSS1039: Token not allowed after unary operator: '-al-radius'
(323,22): run-time error CSS1039: Token not allowed after unary operator: '-al-shadow-xs'
(324,39): run-time error CSS1039: Token not allowed after unary operator: '-al-dur'
(324,53): run-time error CSS1039: Token not allowed after unary operator: '-al-ease'
(325,35): run-time error CSS1039: Token not allowed after unary operator: '-al-dur'
(325,49): run-time error CSS1039: Token not allowed after unary operator: '-al-ease'
(326,28): run-time error CSS1039: Token not allowed after unary operator: '-al-dur'
(326,42): run-time error CSS1039: Token not allowed after unary operator: '-al-ease'
(327,33): run-time error CSS1039: Token not allowed after unary operator: '-al-dur'
(327,47): run-time error CSS1039: Token not allowed after unary operator: '-al-ease'
(328,32): run-time error CSS1039: Token not allowed after unary operator: '-al-dur'
(328,46): run-time error CSS1039: Token not allowed after unary operator: '-al-ease'
(332,31): run-time error CSS1039: Token not allowed after unary operator: '-al-shadow-sm'
(333,60): run-time error CSS1039: Token not allowed after unary operator: '-al-shadow-xs'
(336,28): run-time error CSS1039: Token not allowed after unary operator: '-al-primary'
(337,24): run-time error CSS1039: Token not allowed after unary operator: '-al-primary'
(338,17): run-time error CSS1039: Token not allowed after unary operator: '-al-white'
(345,28): run-time error CSS1039: Token not allowed after unary operator: '-al-primary-hover'
(346,24): run-time error CSS1039: Token not allowed after unary operator: '-al-primary-hover'
(347,17): run-time error CSS1039: Token not allowed after unary operator: '-al-white'
(351,28): run-time error CSS1039: Token not allowed after unary operator: '-al-surface'
(352,24): run-time error CSS1039: Token not allowed after unary operator: '-al-border-strong'
(353,17): run-time error CSS1039: Token not allowed after unary operator: '-al-text-strong'
(359,28): run-time error CSS1039: Token not allowed after unary operator: '-al-ink-50'
(360,24): run-time error CSS1039: Token not allowed after unary operator: '-al-ink-400'
(361,17): run-time error CSS1039: Token not allowed after unary operator: '-al-text-strong'
(364,39): run-time error CSS1039: Token not allowed after unary operator: '-al-green'
(364,70): run-time error CSS1039: Token not allowed after unary operator: '-al-green'
(365,39): run-time error CSS1039: Token not allowed after unary operator: '-al-red'
(365,70): run-time error CSS1039: Token not allowed after unary operator: '-al-red'
(367,47): run-time error CSS1039: Token not allowed after unary operator: '-al-text-lg'
(367,81): run-time error CSS1039: Token not allowed after unary operator: '-al-radius-lg'
(368,46): run-time error CSS1039: Token not allowed after unary operator: '-al-text-sm'
(368,80): run-time error CSS1039: Token not allowed after unary operator: '-al-radius-sm'
(380,18): run-time error CSS1039: Token not allowed after unary operator: '-al-space-6'
(387,15): run-time error CSS1039: Token not allowed after unary operator: '-al-space-2'
(391,17): run-time error CSS1039: Token not allowed after unary operator: '-al-white'
(393,21): run-time error CSS1039: Token not allowed after unary operator: '-al-text-base'
(396,25): run-time error CSS1039: Token not allowed after unary operator: '-al-radius-pill'
(397,22): run-time error CSS1039: Token not allowed after unary operator: '-al-shadow'
(398,39): run-time error CSS1039: Token not allowed after unary operator: '-al-dur'
(398,53): run-time error CSS1039: Token not allowed after unary operator: '-al-ease'
(399,32): run-time error CSS1039: Token not allowed after unary operator: '-al-dur'
(399,46): run-time error CSS1039: Token not allowed after unary operator: '-al-ease'
(400,33): run-time error CSS1039: Token not allowed after unary operator: '-al-dur'
(400,47): run-time error CSS1039: Token not allowed after unary operator: '-al-ease'
(406,22): run-time error CSS1039: Token not allowed after unary operator: '-al-shadow-lg'
(411,22): run-time error CSS1039: Token not allowed after unary operator: '-al-shadow-sm'
(425,28): run-time error CSS1039: Token not allowed after unary operator: '-al-surface'
(426,28): run-time error CSS1039: Token not allowed after unary operator: '-al-border'
(427,25): run-time error CSS1039: Token not allowed after unary operator: '-al-radius-lg'
(428,22): run-time error CSS1039: Token not allowed after unary operator: '-al-shadow-sm'
(431,30): run-time error CSS1039: Token not allowed after unary operator: '-al-space-5'
(434,28): run-time error CSS1039: Token not allowed after unary operator: '-al-surface-sunk'
(435,35): run-time error CSS1039: Token not allowed after unary operator: '-al-border'
(436,25): run-time error CSS1039: Token not allowed after unary operator: '-al-radius-lg'
(436,45): run-time error CSS1039: Token not allowed after unary operator: '-al-radius-lg'
(437,17): run-time error CSS1039: Token not allowed after unary operator: '-al-text-strong'
(442,22): run-time error CSS1039: Token not allowed after unary operator: '-al-shadow-xs'
(443,19): run-time error CSS1039: Token not allowed after unary operator: '-al-space-5'
(448,19): run-time error CSS1039: Token not allowed after unary operator: '-al-space-5'
(455,23): run-time error CSS1039: Token not allowed after unary operator: '-al-space-6'
(456,26): run-time error CSS1039: Token not allowed after unary operator: '-al-space-7'
(460,21): run-time error CSS1039: Token not allowed after unary operator: '-al-h1'
(462,17): run-time error CSS1039: Token not allowed after unary operator: '-al-text-strong'
(463,25): run-time error CSS1039: Token not allowed after unary operator: '-al-space-4'
(464,26): run-time error CSS1039: Token not allowed after unary operator: '-al-space-4'
(465,35): run-time error CSS1039: Token not allowed after unary operator: '-al-border'
(469,21): run-time error CSS1039: Token not allowed after unary operator: '-al-text-sm'
(473,17): run-time error CSS1039: Token not allowed after unary operator: '-al-text-muted'
(474,25): run-time error CSS1039: Token not allowed after unary operator: '-al-space-4'
(479,28): run-time error CSS1039: Token not allowed after unary operator: '-al-ink-50'
(480,28): run-time error CSS1039: Token not allowed after unary operator: '-al-border'
(481,25): run-time error CSS1039: Token not allowed after unary operator: '-al-radius'
(482,19): run-time error CSS1039: Token not allowed after unary operator: '-al-space-3'
(482,37): run-time error CSS1039: Token not allowed after unary operator: '-al-space-4'
(483,25): run-time error CSS1039: Token not allowed after unary operator: '-al-space-3'
(485,35): run-time error CSS1039: Token not allowed after unary operator: '-al-dur'
(485,49): run-time error CSS1039: Token not allowed after unary operator: '-al-ease'
(486,39): run-time error CSS1039: Token not allowed after unary operator: '-al-dur'
(486,53): run-time error CSS1039: Token not allowed after unary operator: '-al-ease'
(490,28): run-time error CSS1039: Token not allowed after unary operator: '-al-primary-soft'
(491,24): run-time error CSS1039: Token not allowed after unary operator: '-al-blue-200'
(495,21): run-time error CSS1039: Token not allowed after unary operator: '-al-text-xs'
(499,17): run-time error CSS1039: Token not allowed after unary operator: '-al-text-muted'
(500,22): run-time error CSS1039: Token not allowed after unary operator: '-al-space-1'
(504,21): run-time error CSS1039: Token not allowed after unary operator: '-al-text-base'
(506,17): run-time error CSS1039: Token not allowed after unary operator: '-al-text-strong'
(514,23): run-time error CSS1039: Token not allowed after unary operator: '-al-leading'
(515,17): run-time error CSS1039: Token not allowed after unary operator: '-al-text'
(516,25): run-time error CSS1039: Token not allowed after unary operator: '-al-space-2'
(520,17): run-time error CSS1039: Token not allowed after unary operator: '-al-primary'
(521,24): run-time error CSS1039: Token not allowed after unary operator: '-al-space-2'
(526,17): run-time error CSS1039: Token not allowed after unary operator: '-al-text-strong'
(534,28): run-time error CSS1039: Token not allowed after unary operator: '-al-white'
(535,25): run-time error CSS1039: Token not allowed after unary operator: '-al-radius'
(541,38): run-time error CSS1039: Token not allowed after unary operator: '-al-ease'
(571,18): run-time error CSS1039: Token not allowed after unary operator: '-al-space-4'
(578,28): run-time error CSS1039: Token not allowed after unary operator: '-al-border'
(579,25): run-time error CSS1039: Token not allowed after unary operator: '-al-radius'
(582,35): run-time error CSS1039: Token not allowed after unary operator: '-al-dur'
(582,49): run-time error CSS1039: Token not allowed after unary operator: '-al-ease'
(583,33): run-time error CSS1039: Token not allowed after unary operator: '-al-dur'
(583,47): run-time error CSS1039: Token not allowed after unary operator: '-al-ease'
(587,24): run-time error CSS1039: Token not allowed after unary operator: '-al-blue-300'
(591,24): run-time error CSS1039: Token not allowed after unary operator: '-al-primary'
(592,22): run-time error CSS1039: Token not allowed after unary operator: '-al-ring'
(597,25): run-time error CSS1039: Token not allowed after unary operator: '-al-radius-sm'
(621,17): run-time error CSS1039: Token not allowed after unary operator: '-al-ink-800'
(622,28): run-time error CSS1039: Token not allowed after unary operator: '-al-border'
(624,22): run-time error CSS1039: Token not allowed after unary operator: '-al-shadow-sm'
(625,39): run-time error CSS1039: Token not allowed after unary operator: '-al-dur'
(625,53): run-time error CSS1039: Token not allowed after unary operator: '-al-ease'
(626,28): run-time error CSS1039: Token not allowed after unary operator: '-al-dur'
(626,42): run-time error CSS1039: Token not allowed after unary operator: '-al-ease'
(631,28): run-time error CSS1039: Token not allowed after unary operator: '-al-primary'
(632,17): run-time error CSS1039: Token not allowed after unary operator: '-al-white'
(633,24): run-time error CSS1039: Token not allowed after unary operator: '-al-primary'
(637,24): run-time error CSS1039: Token not allowed after unary operator: '-al-ink-400'
(638,25): run-time error CSS1039: Token not allowed after unary operator: '-al-radius-sm'
(642,28): run-time error CSS1039: Token not allowed after unary operator: '-al-primary'
(643,24): run-time error CSS1039: Token not allowed after unary operator: '-al-primary'
(650,23): run-time error CSS1039: Token not allowed after unary operator: '-al-font'
(651,21): run-time error CSS1039: Token not allowed after unary operator: '-al-text-base'
(652,17): run-time error CSS1039: Token not allowed after unary operator: '-al-text-strong'
(653,28): run-time error CSS1039: Token not allowed after unary operator: '-al-surface'
(654,28): run-time error CSS1039: Token not allowed after unary operator: '-al-border-strong'
(655,25): run-time error CSS1039: Token not allowed after unary operator: '-al-radius'
(659,35): run-time error CSS1039: Token not allowed after unary operator: '-al-dur'
(659,49): run-time error CSS1039: Token not allowed after unary operator: '-al-ease'
(660,33): run-time error CSS1039: Token not allowed after unary operator: '-al-dur'
(660,47): run-time error CSS1039: Token not allowed after unary operator: '-al-ease'
(664,24): run-time error CSS1039: Token not allowed after unary operator: '-al-focus'
(665,22): run-time error CSS1039: Token not allowed after unary operator: '-al-ring'
(669,42): run-time error CSS1039: Token not allowed after unary operator: '-al-ink-400'
(674,21): run-time error CSS1039: Token not allowed after unary operator: '-al-text-sm'
(675,17): run-time error CSS1039: Token not allowed after unary operator: '-al-text-strong'
(676,25): run-time error CSS1039: Token not allowed after unary operator: '-al-space-2'
(679,35): run-time error CSS1039: Token not allowed after unary operator: '-al-space-4'
(681,47): run-time error CSS1039: Token not allowed after unary operator: '-al-red'
(683,28): run-time error CSS1039: Token not allowed after unary operator: '-al-red'
(683,54): run-time error CSS1039: Token not allowed after unary operator: '-al-text-sm'
(735,28): run-time error CSS1039: Token not allowed after unary operator: '-al-ink-900'
(736,17): run-time error CSS1039: Token not allowed after unary operator: '-al-ink-300'
(741,17): run-time error CSS1039: Token not allowed after unary operator: '-al-white'
(742,21): run-time error CSS1039: Token not allowed after unary operator: '-al-text-base'
(748,17): run-time error CSS1039: Token not allowed after unary operator: '-al-ink-300'
(749,28): run-time error CSS1039: Token not allowed after unary operator: '-al-dur'
(749,42): run-time error CSS1039: Token not allowed after unary operator: '-al-ease'
(754,17): run-time error CSS1039: Token not allowed after unary operator: '-al-white'
(758,24): run-time error CSS1039: Token not allowed after unary operator: '-al-ink-400'
(770,15): run-time error CSS1039: Token not allowed after unary operator: '-al-space-4'
(778,29): run-time error CSS1039: Token not allowed after unary operator: '-al-dur'
(778,43): run-time error CSS1039: Token not allowed after unary operator: '-al-ease'
(778,67): run-time error CSS1039: Token not allowed after unary operator: '-al-dur'
(778,81): run-time error CSS1039: Token not allowed after unary operator: '-al-ease'
(817,28): run-time error CSS1039: Token not allowed after unary operator: '-al-blue-800'
(818,52): run-time error CSS1039: Token not allowed after unary operator: '-al-blue-900'
(818,75): run-time error CSS1039: Token not allowed after unary operator: '-al-blue-700'
(818,99): run-time error CSS1039: Token not allowed after unary operator: '-al-blue-600'
(819,35): run-time error CSS1039: Token not allowed after unary operator: '-al-amber'
(827,15): run-time error CSS1039: Token not allowed after unary operator: '-al-space-4'
(828,21): run-time error CSS1039: Token not allowed after unary operator: '-al-space-5'
(840,17): run-time error CSS1039: Token not allowed after unary operator: '-al-blue-100'
(841,21): run-time error CSS1039: Token not allowed after unary operator: '-al-text-xs'
(845,28): run-time error CSS1039: Token not allowed after unary operator: '-al-dur'
(845,42): run-time error CSS1039: Token not allowed after unary operator: '-al-ease'
(850,17): run-time error CSS1039: Token not allowed after unary operator: '-al-white'
(857,28): run-time error CSS1039: Token not allowed after unary operator: '-al-surface'
(859,35): run-time error CSS1039: Token not allowed after unary operator: '-al-border'
(860,22): run-time error CSS1039: Token not allowed after unary operator: '-al-shadow-xs'
(866,23): run-time error CSS1039: Token not allowed after unary operator: '-al-font'
(867,21): run-time error CSS1039: Token not allowed after unary operator: '-al-text-base'
(869,17): run-time error CSS1039: Token not allowed after unary operator: '-al-text'
(870,28): run-time error CSS1039: Token not allowed after unary operator: '-al-dur'
(870,42): run-time error CSS1039: Token not allowed after unary operator: '-al-ease'
(875,17): run-time error CSS1039: Token not allowed after unary operator: '-al-primary'
(880,17): run-time error CSS1039: Token not allowed after unary operator: '-al-primary'
(889,28): run-time error CSS1039: Token not allowed after unary operator: '-al-primary'
(895,28): run-time error CSS1039: Token not allowed after unary operator: '-al-primary'
(900,28): run-time error CSS1039: Token not allowed after unary operator: '-al-border-strong'
(901,25): run-time error CSS1039: Token not allowed after unary operator: '-al-radius-pill'
(902,17): run-time error CSS1039: Token not allowed after unary operator: '-al-text-muted'
(903,28): run-time error CSS1039: Token not allowed after unary operator: '-al-surface'
(904,35): run-time error CSS1039: Token not allowed after unary operator: '-al-dur'
(904,49): run-time error CSS1039: Token not allowed after unary operator: '-al-ease'
(905,28): run-time error CSS1039: Token not allowed after unary operator: '-al-dur'
(905,42): run-time error CSS1039: Token not allowed after unary operator: '-al-ease'
(906,33): run-time error CSS1039: Token not allowed after unary operator: '-al-dur'
(906,47): run-time error CSS1039: Token not allowed after unary operator: '-al-ease'
(912,17): run-time error CSS1039: Token not allowed after unary operator: '-al-text-muted'
(918,24): run-time error CSS1039: Token not allowed after unary operator: '-al-primary'
(919,17): run-time error CSS1039: Token not allowed after unary operator: '-al-primary'
(920,22): run-time error CSS1039: Token not allowed after unary operator: '-al-shadow-xs'
(945,28): run-time error CSS1039: Token not allowed after unary operator: '-al-surface'
(946,32): run-time error CSS1039: Token not allowed after unary operator: '-al-border'
(947,22): run-time error CSS1039: Token not allowed after unary operator: '-al-shadow-lg'
(951,28): run-time error CSS1039: Token not allowed after unary operator: '-al-ink-50'
(952,34): run-time error CSS1039: Token not allowed after unary operator: '-al-border'
(956,21): run-time error CSS1039: Token not allowed after unary operator: '-al-text-xs'
(960,17): run-time error CSS1039: Token not allowed after unary operator: '-al-text-muted'
(965,17): run-time error CSS1039: Token not allowed after unary operator: '-al-text'
(966,25): run-time error CSS1039: Token not allowed after unary operator: '-al-radius-sm'
(967,39): run-time error CSS1039: Token not allowed after unary operator: '-al-dur'
(967,53): run-time error CSS1039: Token not allowed after unary operator: '-al-ease'
(968,28): run-time error CSS1039: Token not allowed after unary operator: '-al-dur'
(968,42): run-time error CSS1039: Token not allowed after unary operator: '-al-ease'
(973,28): run-time error CSS1039: Token not allowed after unary operator: '-al-primary-soft'
(974,17): run-time error CSS1039: Token not allowed after unary operator: '-al-primary'
(993,19): run-time error CSS1039: Token not allowed after unary operator: '-al-space-3'
(994,25): run-time error CSS1039: Token not allowed after unary operator: '-al-space-3'
(1005,26): run-time error CSS1039: Token not allowed after unary operator: '-al-shadow-sm'
(1006,39): run-time error CSS1039: Token not allowed after unary operator: '-al-border'
(1015,19): run-time error CSS1039: Token not allowed after unary operator: '-al-space-2'
(1016,25): run-time error CSS1039: Token not allowed after unary operator: '-al-space-3'
(1027,29): run-time error CSS1039: Token not allowed after unary operator: '-al-radius'
(1028,21): run-time error CSS1039: Token not allowed after unary operator: '-al-text-strong'
(1033,56): run-time error CSS1039: Token not allowed after unary operator: '-al-ink-100'
(1049,32): run-time error CSS1039: Token not allowed after unary operator: '-al-border-strong'
(1050,29): run-time error CSS1039: Token not allowed after unary operator: '-al-radius-pill'
(1051,21): run-time error CSS1039: Token not allowed after unary operator: '-al-text-muted'
(1052,25): run-time error CSS1039: Token not allowed after unary operator: '-al-space-3'
(1098,22): run-time error CSS1039: Token not allowed after unary operator: '-al-surface'
(1101,17): run-time error CSS1039: Token not allowed after unary operator: '-al-text'
(1107,40): run-time error CSS1039: Token not allowed after unary operator: '-al-ease'
(1125,21): run-time error CSS1039: Token not allowed after unary operator: '-al-space-4'
(1126,52): run-time error CSS1039: Token not allowed after unary operator: '-al-blue-900'
(1126,75): run-time error CSS1039: Token not allowed after unary operator: '-al-blue-700'
(1126,99): run-time error CSS1039: Token not allowed after unary operator: '-al-blue-600'
(1127,35): run-time error CSS1039: Token not allowed after unary operator: '-al-amber'
(1128,17): run-time error CSS1039: Token not allowed after unary operator: '-al-white'
(1129,23): run-time error CSS1039: Token not allowed after unary operator: '-al-font'
(1130,21): run-time error CSS1039: Token not allowed after unary operator: '-al-text-sm'
(1142,22): run-time error CSS1039: Token not allowed after unary operator: '-al-surface'
(1150,26): run-time error CSS1039: Token not allowed after unary operator: '-al-space-6'
(1163,39): run-time error CSS1039: Token not allowed after unary operator: '-al-ease'
(1173,10): run-time error CSS1030: Expected identifier, found '#togglerbodyclass'
(1173,40): run-time error CSS1031: Expected selector, found ')'
(1173,40): run-time error CSS1025: Expected comma or open brace, found ')'
(1194,15): run-time error CSS1039: Token not allowed after unary operator: '-al-space-3'
(1196,19): run-time error CSS1039: Token not allowed after unary operator: '-al-space-3'
(1196,37): run-time error CSS1039: Token not allowed after unary operator: '-al-space-4'
(1199,23): run-time error CSS1039: Token not allowed after unary operator: '-al-font'
(1200,21): run-time error CSS1039: Token not allowed after unary operator: '-al-text-base'
(1202,23): run-time error CSS1039: Token not allowed after unary operator: '-al-leading-snug'
(1203,17): run-time error CSS1039: Token not allowed after unary operator: '-al-text'
(1206,39): run-time error CSS1039: Token not allowed after unary operator: '-al-dur'
(1206,53): run-time error CSS1039: Token not allowed after unary operator: '-al-ease'
(1207,28): run-time error CSS1039: Token not allowed after unary operator: '-al-dur'
(1207,42): run-time error CSS1039: Token not allowed after unary operator: '-al-ease'
(1211,32): run-time error CSS1039: Token not allowed after unary operator: '-al-border'
(1216,28): run-time error CSS1039: Token not allowed after unary operator: '-al-primary-soft'
(1217,17): run-time error CSS1039: Token not allowed after unary operator: '-al-primary'
(1222,28): run-time error CSS1039: Token not allowed after unary operator: '-al-ring'
(1234,17): run-time error CSS1039: Token not allowed after unary operator: '-al-text-muted'
(1235,28): run-time error CSS1039: Token not allowed after unary operator: '-al-dur'
(1235,42): run-time error CSS1039: Token not allowed after unary operator: '-al-ease'
(1239,17): run-time error CSS1039: Token not allowed after unary operator: '-al-primary'
(1251,21): run-time error CSS1039: Token not allowed after unary operator: '-al-text-base'
(1253,17): run-time error CSS1039: Token not allowed after unary operator: '-al-text-strong'
(1260,25): run-time error CSS1039: Token not allowed after unary operator: '-al-radius-sm'
(1261,28): run-time error CSS1039: Token not allowed after unary operator: '-al-primary-soft'
(1262,17): run-time error CSS1039: Token not allowed after unary operator: '-al-primary'
(1268,24): run-time error CSS1039: Token not allowed after unary operator: '-al-space-6'
(1269,21): run-time error CSS1039: Token not allowed after unary operator: '-al-text-sm'
(1271,17): run-time error CSS1039: Token not allowed after unary operator: '-al-text'
(1277,24): run-time error CSS1039: Token not allowed after unary operator: '-al-space-8'
(1278,21): run-time error CSS1039: Token not allowed after unary operator: '-al-text-sm'
(1280,17): run-time error CSS1039: Token not allowed after unary operator: '-al-text-muted'
(1302,28): run-time error CSS1039: Token not allowed after unary operator: '-al-primary-soft'
(1303,17): run-time error CSS1039: Token not allowed after unary operator: '-al-primary'
(1308,17): run-time error CSS1039: Token not allowed after unary operator: '-al-primary'
(1313,17): run-time error CSS1039: Token not allowed after unary operator: '-al-primary'
(1329,28): run-time error CSS1039: Token not allowed after unary operator: '-al-ink-50'
(1330,33): run-time error CSS1039: Token not allowed after unary operator: '-al-blue-200'
(1331,35): run-time error CSS1039: Token not allowed after unary operator: '-al-border'
(1335,28): run-time error CSS1039: Token not allowed after unary operator: '-al-surface'
(1336,29): run-time error CSS1039: Token not allowed after unary operator: '-al-border-strong'
(1348,17): run-time error CSS1039: Token not allowed after unary operator: '-al-text'
(1354,28): run-time error CSS1039: Token not allowed after unary operator: '-al-blue-50'
(1355,17): run-time error CSS1039: Token not allowed after unary operator: '-al-primary'
(1373,28): run-time error CSS1039: Token not allowed after unary operator: '-al-primary-soft'
(1374,36): run-time error CSS1039: Token not allowed after unary operator: '-al-primary'
(1375,17): run-time error CSS1039: Token not allowed after unary operator: '-al-primary'
(1382,17): run-time error CSS1039: Token not allowed after unary operator: '-al-primary'
(1400,63): run-time error CSS1030: Expected identifier, found '.'
(1400,82): run-time error CSS1031: Expected selector, found ')'
(1400,82): run-time error CSS1025: Expected comma or open brace, found ')'
(1414,68): run-time error CSS1030: Expected identifier, found '.'
(1414,87): run-time error CSS1031: Expected selector, found ')'
(1414,87): run-time error CSS1025: Expected comma or open brace, found ')'
(1453,23): run-time error CSS1039: Token not allowed after unary operator: '-al-space-7'
(1454,26): run-time error CSS1039: Token not allowed after unary operator: '-al-space-5'
(1458,21): run-time error CSS1039: Token not allowed after unary operator: '-al-text-sm'
(1462,25): run-time error CSS1039: Token not allowed after unary operator: '-al-space-4'
(1473,25): run-time error CSS1039: Token not allowed after unary operator: '-al-space-2'
(1479,23): run-time error CSS1039: Token not allowed after unary operator: '-al-leading-snug'
(1485,17): run-time error CSS1039: Token not allowed after unary operator: '-al-amber'
(1496,17): run-time error CSS1039: Token not allowed after unary operator: '-al-amber'
(1506,20): run-time error CSS1039: Token not allowed after unary operator: '-al-space-1'
(1509,17): run-time error CSS1039: Token not allowed after unary operator: '-al-white'
(1510,39): run-time error CSS1039: Token not allowed after unary operator: '-al-dur'
(1510,53): run-time error CSS1039: Token not allowed after unary operator: '-al-ease'
(1511,32): run-time error CSS1039: Token not allowed after unary operator: '-al-dur'
(1511,46): run-time error CSS1039: Token not allowed after unary operator: '-al-ease'
(1515,28): run-time error CSS1039: Token not allowed after unary operator: '-al-primary'
(1526,27): run-time error CSS1039: Token not allowed after unary operator: '-al-space-5'
(1539,26): run-time error CSS1039: Token not allowed after unary operator: '-al-space-5'
(1619,22): run-time error CSS1039: Token not allowed after unary operator: '-al-space-7'
(1630,23): run-time error CSS1039: Token not allowed after unary operator: '-al-font'
(1631,21): run-time error CSS1039: Token not allowed after unary operator: '-al-h2'
(1633,23): run-time error CSS1039: Token not allowed after unary operator: '-al-leading-tight'
(1636,17): run-time error CSS1039: Token not allowed after unary operator: '-al-text-strong'
(1649,25): run-time error CSS1039: Token not allowed after unary operator: '-al-radius-pill'
(1650,45): run-time error CSS1039: Token not allowed after unary operator: '-al-primary'
(1650,64): run-time error CSS1039: Token not allowed after unary operator: '-al-blue-400'
(1686,19): run-time error CSS1039: Token not allowed after unary operator: '-al-space-8'
(1694,19): run-time error CSS1039: Token not allowed after unary operator: '-al-space-8'
(1702,15): run-time error CSS1039: Token not allowed after unary operator: '-al-space-5'
(1705,21): run-time error CSS1039: Token not allowed after unary operator: '-al-space-5'
(1736,25): run-time error CSS1039: Token not allowed after unary operator: '-al-radius-lg'
(1742,22): run-time error CSS1039: Token not allowed after unary operator: '-al-ring'
(1751,28): run-time error CSS1039: Token not allowed after unary operator: '-al-surface'
(1752,28): run-time error CSS1039: Token not allowed after unary operator: '-al-border'
(1753,25): run-time error CSS1039: Token not allowed after unary operator: '-al-radius-lg'
(1754,22): run-time error CSS1039: Token not allowed after unary operator: '-al-shadow-sm'
(1756,32): run-time error CSS1039: Token not allowed after unary operator: '-al-dur'
(1756,46): run-time error CSS1039: Token not allowed after unary operator: '-al-ease'
(1757,33): run-time error CSS1039: Token not allowed after unary operator: '-al-dur'
(1757,47): run-time error CSS1039: Token not allowed after unary operator: '-al-ease'
(1758,35): run-time error CSS1039: Token not allowed after unary operator: '-al-dur'
(1758,49): run-time error CSS1039: Token not allowed after unary operator: '-al-ease'
(1764,24): run-time error CSS1039: Token not allowed after unary operator: '-al-blue-200'
(1765,22): run-time error CSS1039: Token not allowed after unary operator: '-al-shadow-lg'
(1777,38): run-time error CSS1039: Token not allowed after unary operator: '-al-ease'
(1790,19): run-time error CSS1039: Token not allowed after unary operator: '-al-space-4'
(1790,37): run-time error CSS1039: Token not allowed after unary operator: '-al-space-4'
(1790,55): run-time error CSS1039: Token not allowed after unary operator: '-al-space-5'
(1792,23): run-time error CSS1039: Token not allowed after unary operator: '-al-font'
(1793,21): run-time error CSS1039: Token not allowed after unary operator: '-al-text-lg'
(1795,23): run-time error CSS1039: Token not allowed after unary operator: '-al-leading-snug'
(1796,17): run-time error CSS1039: Token not allowed after unary operator: '-al-text-strong'
(1802,17): run-time error CSS1039: Token not allowed after unary operator: '-al-primary'
(1810,15): run-time error CSS1039: Token not allowed after unary operator: '-al-space-3'
(1811,16): run-time error CSS1039: Token not allowed after unary operator: '-al-space-3'
(1818,25): run-time error CSS1039: Token not allowed after unary operator: '-al-radius-pill'
(1819,28): run-time error CSS1039: Token not allowed after unary operator: '-al-primary'
(1820,17): run-time error CSS1039: Token not allowed after unary operator: '-al-white'
(1821,23): run-time error CSS1039: Token not allowed after unary operator: '-al-font'
(1822,21): run-time error CSS1039: Token not allowed after unary operator: '-al-text-sm'
(1833,22): run-time error CSS1039: Token not allowed after unary operator: '-al-space-5'
(1841,25): run-time error CSS1039: Token not allowed after unary operator: '-al-radius-pill'
(1842,28): run-time error CSS1039: Token not allowed after unary operator: '-al-white'
(1843,28): run-time error CSS1039: Token not allowed after unary operator: '-al-border-strong'
(1844,17): run-time error CSS1039: Token not allowed after unary operator: '-al-primary'
(1892,19): run-time error CSS1039: Token not allowed after unary operator: '-al-space-6'
(1893,25): run-time error CSS1039: Token not allowed after unary operator: '-al-space-4'
(1902,27): run-time error CSS1039: Token not allowed after unary operator: '-al-space-6'
(1941,19): run-time error CSS1039: Token not allowed after unary operator: '-al-space-8'
(1945,28): run-time error CSS1039: Token not allowed after unary operator: '-al-surface'
(1946,19): run-time error CSS1039: Token not allowed after unary operator: '-al-space-8'
(1950,28): run-time error CSS1039: Token not allowed after unary operator: '-al-bg'
(1951,19): run-time error CSS1039: Token not allowed after unary operator: '-al-space-8'
(1962,15): run-time error CSS1039: Token not allowed after unary operator: '-al-space-5'
(1965,21): run-time error CSS1039: Token not allowed after unary operator: '-al-space-5'
(1979,36): run-time error CSS1039: Token not allowed after unary operator: '-al-space-5'
(1984,32): run-time error CSS1039: Token not allowed after unary operator: '-al-space-5'
(2002,28): run-time error CSS1039: Token not allowed after unary operator: '-al-surface'
(2003,28): run-time error CSS1039: Token not allowed after unary operator: '-al-border'
(2004,25): run-time error CSS1039: Token not allowed after unary operator: '-al-radius-lg'
(2005,22): run-time error CSS1039: Token not allowed after unary operator: '-al-shadow-sm'
(2007,32): run-time error CSS1039: Token not allowed after unary operator: '-al-dur'
(2007,46): run-time error CSS1039: Token not allowed after unary operator: '-al-ease'
(2008,33): run-time error CSS1039: Token not allowed after unary operator: '-al-dur'
(2008,47): run-time error CSS1039: Token not allowed after unary operator: '-al-ease'
(2009,35): run-time error CSS1039: Token not allowed after unary operator: '-al-dur'
(2009,49): run-time error CSS1039: Token not allowed after unary operator: '-al-ease'
(2016,24): run-time error CSS1039: Token not allowed after unary operator: '-al-blue-200'
(2017,22): run-time error CSS1039: Token not allowed after unary operator: '-al-shadow-lg'
(2027,25): run-time error CSS1039: Token not allowed after unary operator: '-al-radius-lg'
(2034,22): run-time error CSS1039: Token not allowed after unary operator: '-al-ring'
(2043,38): run-time error CSS1039: Token not allowed after unary operator: '-al-ease'
(2062,19): run-time error CSS1039: Token not allowed after unary operator: '-al-space-4'
(2063,28): run-time error CSS1039: Token not allowed after unary operator: '-al-ink-50'
(2064,38): run-time error CSS1039: Token not allowed after unary operator: '-al-ease'
(2078,19): run-time error CSS1039: Token not allowed after unary operator: '-al-space-4'
(2080,23): run-time error CSS1039: Token not allowed after unary operator: '-al-font'
(2081,21): run-time error CSS1039: Token not allowed after unary operator: '-al-text-base'
(2083,23): run-time error CSS1039: Token not allowed after unary operator: '-al-leading-snug'
(2084,17): run-time error CSS1039: Token not allowed after unary operator: '-al-text-strong'
(2089,21): run-time error CSS1039: Token not allowed after unary operator: '-al-text-lg'
(2090,19): run-time error CSS1039: Token not allowed after unary operator: '-al-space-4'
(2090,37): run-time error CSS1039: Token not allowed after unary operator: '-al-space-4'
(2090,55): run-time error CSS1039: Token not allowed after unary operator: '-al-space-5'
(2096,17): run-time error CSS1039: Token not allowed after unary operator: '-al-primary'
(2104,36): run-time error CSS1039: Token not allowed after unary operator: '-al-space-5'
(2112,25): run-time error CSS1039: Token not allowed after unary operator: '-al-space-4'
 */
/* ==========================================================================
   Allmark design tokens
   --------------------------------------------------------------------------
   The single source of truth for colour, type, spacing, radius and elevation.
   Nothing in this file selects an element - it only declares values, so it is
   safe to load early and impossible for it to change layout on its own.

   Palette is derived from the brand blues already in the site (#005bac in the
   footer, #20a8d8 in the nav) rather than a new colour, so the modernised UI
   still reads as Allmark.
   ========================================================================== */

:root {
    /* ---- Brand blue ------------------------------------------------------ */
    --al-blue-50:  #eef6fc;
    --al-blue-100: #d4e9f7;
    --al-blue-200: #a9d3ef;
    --al-blue-300: #6fb5e3;
    --al-blue-400: #3494d4;
    --al-blue-500: #1479c4;
    --al-blue-600: #005bac;  /* primary - matches the existing footer blue */
    --al-blue-700: #00498a;
    --al-blue-800: #003a6e;
    --al-blue-900: #002b52;

    /* ---- Neutrals -------------------------------------------------------- */
    --al-ink-900: #0f1722;   /* headings */
    --al-ink-800: #1c2734;
    --al-ink-700: #33414f;   /* body copy */
    --al-ink-600: #4d5b6b;
    --al-ink-500: #6b7887;   /* muted copy */
    --al-ink-400: #93a0ae;
    --al-ink-300: #c3cdd8;   /* borders on dark-ish surfaces */
    --al-ink-200: #dfe5ec;   /* hairline borders */
    --al-ink-100: #eef2f6;   /* subtle fills */
    --al-ink-50:  #f6f8fa;   /* page background */
    --al-white:   #ffffff;

    /* ---- Accent + status -------------------------------------------------
       Amber is kept because the existing "Get quote" CTA already uses it and
       it is the highest-converting element on the product pages. */
    --al-amber:      #f5b301;
    --al-amber-dark: #d19700;
    --al-green:      #16794a;
    --al-red:        #c0392b;

    /* ---- Semantic aliases ------------------------------------------------ */
    --al-bg:            var(--al-ink-50);
    --al-surface:       var(--al-white);
    --al-surface-sunk:  var(--al-ink-100);
    --al-border:        var(--al-ink-200);
    --al-border-strong: var(--al-ink-300);
    --al-text:          var(--al-ink-700);
    --al-text-strong:   var(--al-ink-900);
    --al-text-muted:    var(--al-ink-500);
    --al-primary:       var(--al-blue-600);
    --al-primary-hover: var(--al-blue-700);
    --al-primary-soft:  var(--al-blue-50);
    --al-focus:         var(--al-blue-400);

    /* ---- Typography ------------------------------------------------------
       Poppins is already loaded by the layout; the stack degrades to system
       fonts so a blocked Google Fonts request never leaves the page unstyled. */
    --al-font: "Poppins", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto,
               "Helvetica Neue", Arial, sans-serif;

    /* Fluid type scale - scales between phone and desktop without breakpoints.
       Deliberately expressed in px, NOT rem: Bootstrap 3 sets `html{font-size:10px}`
       and 216 legacy declarations are built on that 10px root, so rem here would
       silently render the whole scale at 62.5% and resetting the root would blow
       up the legacy spacing instead. px keeps this layer independent of both. */
    --al-text-xs:   12px;
    --al-text-sm:   13px;
    --al-text-base: clamp(15px, 14.4px + 0.15vw, 16px);
    --al-text-lg:   clamp(17px, 16px + 0.25vw, 19px);
    --al-text-xl:   clamp(19px, 16.8px + 0.5vw, 22px);
    --al-h4:        clamp(18px, 16px + 0.5vw, 21px);
    --al-h3:        clamp(21px, 17.6px + 0.85vw, 26px);
    --al-h2:        clamp(24px, 19.2px + 1.3vw, 32px);
    --al-h1:        clamp(28px, 21.6px + 1.9vw, 40px);

    --al-leading-tight: 1.25;
    --al-leading-snug:  1.4;
    --al-leading:       1.65;

    /* ---- Spacing (4px base, px for the same reason as the type scale) ----- */
    --al-space-1: 4px;
    --al-space-2: 8px;
    --al-space-3: 12px;
    --al-space-4: 16px;
    --al-space-5: 24px;
    --al-space-6: 32px;
    --al-space-7: 48px;
    --al-space-8: 64px;

    /* ---- Radius ---------------------------------------------------------- */
    --al-radius-sm:   6px;
    --al-radius:      10px;
    --al-radius-lg:   14px;
    --al-radius-pill: 999px;

    /* ---- Elevation - low-alpha, tinted toward the brand blue ------------- */
    --al-shadow-xs: 0 1px 2px rgba(15, 23, 34, 0.06);
    --al-shadow-sm: 0 1px 3px rgba(15, 23, 34, 0.08), 0 1px 2px rgba(15, 23, 34, 0.04);
    --al-shadow:    0 4px 12px rgba(15, 23, 34, 0.08), 0 1px 3px rgba(15, 23, 34, 0.05);
    --al-shadow-lg: 0 12px 28px rgba(15, 23, 34, 0.12), 0 2px 6px rgba(15, 23, 34, 0.06);

    --al-ring: 0 0 0 3px rgba(52, 148, 212, 0.45);

    /* ---- Motion ---------------------------------------------------------- */
    --al-ease: cubic-bezier(0.4, 0, 0.2, 1);
    --al-dur:  180ms;
}

/* Users who ask for less motion get none of the decorative kind. */
@media (prefers-reduced-motion: reduce) {
    :root {
        --al-dur: 0ms;
    }
}

/* ==========================================================================
   Allmark modern base layer
   --------------------------------------------------------------------------
   Typography, colour and element defaults. This layer intentionally avoids
   touching layout primitives (Bootstrap's .row/.col-*, floats, widths) so it
   cannot reflow the existing 200+ pages - it restyles, it does not re-lay-out.
   ========================================================================== */

/* --------------------------------------------------------------------------
   1. Page canvas and body copy
   -------------------------------------------------------------------------- */
body {
    font-family: var(--al-font);
    font-size: var(--al-text-base);
    line-height: var(--al-leading);
    color: var(--al-text);
    background-color: var(--al-bg);
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
    text-rendering: optimizeLegibility;
}

/* --------------------------------------------------------------------------
   2. Headings
   Sizes only - the document outline (which h-level is used where) is left
   exactly as authored, because that outline is an SEO signal.
   -------------------------------------------------------------------------- */
h1, h2, h3, h4, h5, h6,
.h1, .h2, .h3, .h4, .h5, .h6 {
    font-family: var(--al-font);
    color: var(--al-text-strong);
    font-weight: 600;
    line-height: var(--al-leading-tight);
    letter-spacing: -0.011em;
    margin-top: 0;
    margin-bottom: var(--al-space-3);
}

h1, .h1 { font-size: var(--al-h1); font-weight: 700; letter-spacing: -0.021em; }
h2, .h2 { font-size: var(--al-h2); font-weight: 700; letter-spacing: -0.017em; }
h3, .h3 { font-size: var(--al-h3); }
h4, .h4 { font-size: var(--al-h4); }
h5, .h5 { font-size: var(--al-text-lg); line-height: var(--al-leading-snug); }
h6, .h6 { font-size: var(--al-text-base); }

p {
    margin-top: 0;
    margin-bottom: var(--al-space-4);
}

p:last-child { margin-bottom: 0; }

small, .small { font-size: var(--al-text-sm); }

strong, b { font-weight: 600; color: var(--al-text-strong); }

hr {
    border: 0;
    border-top: 1px solid var(--al-border);
    margin: var(--al-space-6) 0;
}

/* --------------------------------------------------------------------------
   3. Links
   -------------------------------------------------------------------------- */
a {
    color: var(--al-primary);
    text-decoration: none;
    transition: color var(--al-dur) var(--al-ease);
}

a:hover,
a:focus {
    color: var(--al-primary-hover);
    text-decoration: none;
}

/* --------------------------------------------------------------------------
   4. Focus visibility
   The legacy CSS removed outlines in several places. Keyboard and screen-reader
   users need them back, but only for keyboard focus so mouse users see nothing.
   -------------------------------------------------------------------------- */
:focus-visible {
    outline: 2px solid var(--al-focus);
    outline-offset: 2px;
    border-radius: var(--al-radius-sm);
}

a:focus-visible,
button:focus-visible,
[role="button"]:focus-visible,
input:focus-visible,
select:focus-visible,
textarea:focus-visible {
    outline: 2px solid var(--al-focus);
    outline-offset: 2px;
    box-shadow: var(--al-ring);
}

/* --------------------------------------------------------------------------
   5. Media
   max-width stops oversized product shots overflowing their column on phones.
   height:auto is applied ONLY where the markup has no height attribute, so the
   many <img height="200"> tags in the catalogue keep their intended size.
   -------------------------------------------------------------------------- */
img,
svg,
video,
iframe {
    max-width: 100%;
}

img:not([height]):not([style*="height"]) {
    height: auto;
}

img {
    vertical-align: middle;
}

/* Product photography is shot on white; letterboxing beats distortion. */
.entity-img img,
.image-container img {
    object-fit: contain;
}

/* --------------------------------------------------------------------------
   6. Tables - the spec tables read as data, so give them real structure
   -------------------------------------------------------------------------- */
table {
    border-collapse: collapse;
}

.table > thead > tr > th {
    border-bottom: 2px solid var(--al-border-strong);
    color: var(--al-text-strong);
    font-weight: 600;
    letter-spacing: 0.01em;
}

.table > tbody > tr > td,
.table > tbody > tr > th {
    border-top: 1px solid var(--al-border);
    color: var(--al-text);
}

.table-striped > tbody > tr:nth-of-type(odd) {
    background-color: var(--al-ink-50);
}

/* --------------------------------------------------------------------------
   7. Selection
   -------------------------------------------------------------------------- */
::selection {
    background: var(--al-blue-200);
    color: var(--al-ink-900);
}

/* --------------------------------------------------------------------------
   8. Scrollbar - subtle, only on supporting browsers
   -------------------------------------------------------------------------- */
@supports (scrollbar-width: thin) {
    * {
        scrollbar-width: thin;
        scrollbar-color: var(--al-ink-300) transparent;
    }
}

/* --------------------------------------------------------------------------
   9. Motion preference
   -------------------------------------------------------------------------- */
@media (prefers-reduced-motion: reduce) {
    *,
    *::before,
    *::after {
        animation-duration: 0.01ms !important;
        animation-iteration-count: 1 !important;
        transition-duration: 0.01ms !important;
        scroll-behavior: auto !important;
    }
}

/* ==========================================================================
   Allmark modern component layer
   --------------------------------------------------------------------------
   Restyles the components that already exist in the markup. Every selector
   here targets a class the views already use, so no view has to be edited and
   no indexed content moves.
   ========================================================================== */

/* --------------------------------------------------------------------------
   1. Buttons (Bootstrap 3 .btn and friends)
   -------------------------------------------------------------------------- */
.btn {
    font-family: var(--al-font);
    font-weight: 600;
    font-size: var(--al-text-base);
    line-height: 1.2;
    padding: 10px 20px;
    border: 1px solid transparent;
    border-radius: var(--al-radius);
    box-shadow: var(--al-shadow-xs);
    transition: background-color var(--al-dur) var(--al-ease),
                border-color var(--al-dur) var(--al-ease),
                color var(--al-dur) var(--al-ease),
                box-shadow var(--al-dur) var(--al-ease),
                transform var(--al-dur) var(--al-ease);
    text-shadow: none;
}

.btn:hover { box-shadow: var(--al-shadow-sm); }
.btn:active { transform: translateY(1px); box-shadow: var(--al-shadow-xs); }

.btn-primary {
    background-color: var(--al-primary);
    border-color: var(--al-primary);
    color: var(--al-white);
    background-image: none;
}

.btn-primary:hover,
.btn-primary:focus,
.btn-primary:active {
    background-color: var(--al-primary-hover);
    border-color: var(--al-primary-hover);
    color: var(--al-white);
}

.btn-default {
    background-color: var(--al-surface);
    border-color: var(--al-border-strong);
    color: var(--al-text-strong);
    background-image: none;
}

.btn-default:hover,
.btn-default:focus {
    background-color: var(--al-ink-50);
    border-color: var(--al-ink-400);
    color: var(--al-text-strong);
}

.btn-success { background-color: var(--al-green); border-color: var(--al-green); background-image: none; }
.btn-danger  { background-color: var(--al-red);   border-color: var(--al-red);   background-image: none; }

.btn-lg { padding: 13px 28px; font-size: var(--al-text-lg); border-radius: var(--al-radius-lg); }
.btn-sm { padding: 7px 14px; font-size: var(--al-text-sm); border-radius: var(--al-radius-sm); }

/* --------------------------------------------------------------------------
   2. "Get quote" CTA - the primary conversion element on every product page
   -------------------------------------------------------------------------- */
/* .get-quote is the full-width centring wrapper; .inner-btn is the actual
   pill. Style them in those roles - collapsing the wrapper to inline-flex
   pulls it out of block flow and the carousel thumbnails ride over it. */
.get-quote {
    display: flex;
    align-items: center;
    justify-content: center;
    margin: var(--al-space-6) 0;
}

.get-quote .inner-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: var(--al-space-2);
    /* Green is kept deliberately: the link is a tel: call-to-action and green
       is the colour users already associate with "call" on this site. */
    background-color: #00a544;
    color: var(--al-white);
    font-weight: 600;
    font-size: var(--al-text-base);
    line-height: 1.2;
    padding: 13px 28px;
    border-radius: var(--al-radius-pill);
    box-shadow: var(--al-shadow);
    transition: background-color var(--al-dur) var(--al-ease),
                transform var(--al-dur) var(--al-ease),
                box-shadow var(--al-dur) var(--al-ease);
}

.get-quote:hover .inner-btn {
    background-color: #00893a;
    transform: translateY(-1px);
    box-shadow: var(--al-shadow-lg);
}

.get-quote:active .inner-btn {
    transform: translateY(0);
    box-shadow: var(--al-shadow-sm);
}

.get-quote .inner-btn strong { color: inherit; font-weight: 600; }

.get-quote svg { display: block; }

/* --------------------------------------------------------------------------
   3. Surfaces - panels, wells and the product containers become real cards
   -------------------------------------------------------------------------- */
.panel,
.well,
.n-product-image-list-container,
.n-product-description-container {
    background-color: var(--al-surface);
    border: 1px solid var(--al-border);
    border-radius: var(--al-radius-lg);
    box-shadow: var(--al-shadow-sm);
}

.panel { margin-bottom: var(--al-space-5); }

.panel-heading {
    background-color: var(--al-surface-sunk);
    border-bottom: 1px solid var(--al-border);
    border-radius: var(--al-radius-lg) var(--al-radius-lg) 0 0;
    color: var(--al-text-strong);
    font-weight: 600;
}

.well {
    box-shadow: var(--al-shadow-xs);
    padding: var(--al-space-5);
}

.n-product-image-list-container,
.n-product-description-container {
    padding: var(--al-space-5);
}

/* --------------------------------------------------------------------------
   4. Product page
   -------------------------------------------------------------------------- */
.newland-product-component {
    padding-top: var(--al-space-6);
    padding-bottom: var(--al-space-7);
}

.product-title {
    font-size: var(--al-h1);
    font-weight: 700;
    color: var(--al-text-strong);
    margin-bottom: var(--al-space-4);
    padding-bottom: var(--al-space-4);
    border-bottom: 1px solid var(--al-border);
}

.product-specification h4 {
    font-size: var(--al-text-sm);
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    color: var(--al-text-muted);
    margin-bottom: var(--al-space-4);
}

/* Each spec is a label/value pair - make that relationship visible. */
.product-specification-content {
    background-color: var(--al-ink-50);
    border: 1px solid var(--al-border);
    border-radius: var(--al-radius);
    padding: var(--al-space-3) var(--al-space-4);
    margin-bottom: var(--al-space-3);
    height: 100%;
    transition: border-color var(--al-dur) var(--al-ease),
                background-color var(--al-dur) var(--al-ease);
}

.product-specification-content:hover {
    background-color: var(--al-primary-soft);
    border-color: var(--al-blue-200);
}

.product-specification-content h5 {
    font-size: var(--al-text-xs);
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    color: var(--al-text-muted);
    margin: 0 0 var(--al-space-1);
}

.product-specification-content span {
    font-size: var(--al-text-base);
    font-weight: 500;
    color: var(--al-text-strong);
}

/* --------------------------------------------------------------------------
   5. Feature / bullet lists
   -------------------------------------------------------------------------- */
.content-list-item {
    position: relative;
    line-height: var(--al-leading);
    color: var(--al-text);
    margin-bottom: var(--al-space-2);
}

.content-list-item .fa-hand-point-right {
    color: var(--al-primary);
    margin-right: var(--al-space-2);
}

.content-sub-title {
    font-weight: 600;
    color: var(--al-text-strong);
}

/* --------------------------------------------------------------------------
   6. Product imagery
   -------------------------------------------------------------------------- */
.entity-img,
.image-container {
    background-color: var(--al-white);
    border-radius: var(--al-radius);
    overflow: hidden;
}

.entity-img img,
.image-container img {
    transition: transform 320ms var(--al-ease);
}

.entity-img:hover img,
.image-container:hover img {
    transform: scale(1.03);
}

/* --------------------------------------------------------------------------
   6b. Product gallery thumbnail strip
   Pre-existing bug on all 44 product pages: .carousel-indicators is absolutely
   positioned at bottom:-120px, so the thumbnail strip hangs outside the
   carousel, reserves no space, and sits on top of the "Get quote" CTA below it.
   Putting the strip back into normal flow fixes the overlap without magic
   offsets. The <ol> precedes .carousel-inner in the markup, so flex ordering is
   used to place it underneath - that keeps the markup, and the SEO diff, clean.
   -------------------------------------------------------------------------- */
.n-product-image-list-container .carousel.slide {
    display: flex;
    flex-direction: column;
}

.n-product-image-list-container .carousel-inner { order: 1; }

.n-product-image-list-container .carousel-indicators {
    position: static;
    order: 2;
    bottom: auto !important;
    left: auto;
    width: 100%;
    margin: var(--al-space-4) 0 0;
    padding: 0;
    box-shadow: none;
    overflow-x: auto;
}

.n-product-image-list-container .carousel-indicators li {
    border: 1px solid var(--al-border);
    border-radius: var(--al-radius);
    overflow: hidden;
    flex: 0 0 auto;
    transition: border-color var(--al-dur) var(--al-ease),
                box-shadow var(--al-dur) var(--al-ease);
}

.n-product-image-list-container .carousel-indicators li:hover {
    border-color: var(--al-blue-300);
}

.n-product-image-list-container .carousel-indicators li.active {
    border-color: var(--al-primary);
    box-shadow: var(--al-ring);
}

/* The thumbnails are product shots, not dots - square them off. */
.n-product-image-list-container .carousel-indicators img {
    border-radius: var(--al-radius-sm);
    object-fit: contain;
}

/* --------------------------------------------------------------------------
   7. Carousel controls - the Bootstrap 3 defaults are near-invisible
   -------------------------------------------------------------------------- */
.carousel-control {
    background-image: none !important;
    opacity: 1;
    width: auto;
    text-shadow: none;
}

.carousel-control .glyphicon,
.carousel-control .fa {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 40px;
    height: 40px;
    top: 50%;
    margin-top: -20px;
    background-color: rgba(255, 255, 255, 0.92);
    color: var(--al-ink-800);
    border: 1px solid var(--al-border);
    border-radius: 50%;
    box-shadow: var(--al-shadow-sm);
    transition: background-color var(--al-dur) var(--al-ease),
                color var(--al-dur) var(--al-ease);
}

.carousel-control:hover .glyphicon,
.carousel-control:focus .glyphicon {
    background-color: var(--al-primary);
    color: var(--al-white);
    border-color: var(--al-primary);
}

.carousel-indicators li {
    border-color: var(--al-ink-400);
    border-radius: var(--al-radius-sm);
}

.carousel-indicators .active {
    background-color: var(--al-primary);
    border-color: var(--al-primary);
}

/* --------------------------------------------------------------------------
   8. Forms
   -------------------------------------------------------------------------- */
.form-control {
    font-family: var(--al-font);
    font-size: var(--al-text-base);
    color: var(--al-text-strong);
    background-color: var(--al-surface);
    border: 1px solid var(--al-border-strong);
    border-radius: var(--al-radius);
    box-shadow: none;
    padding: 10px 14px;
    height: auto;
    transition: border-color var(--al-dur) var(--al-ease),
                box-shadow var(--al-dur) var(--al-ease);
}

.form-control:focus {
    border-color: var(--al-focus);
    box-shadow: var(--al-ring);
    outline: none;
}

.form-control::placeholder { color: var(--al-ink-400); }

label,
.control-label {
    font-weight: 600;
    font-size: var(--al-text-sm);
    color: var(--al-text-strong);
    margin-bottom: var(--al-space-2);
}

.form-group { margin-bottom: var(--al-space-4); }

.has-error .form-control { border-color: var(--al-red); }
.field-validation-error,
.text-danger { color: var(--al-red); font-size: var(--al-text-sm); }

/* --------------------------------------------------------------------------
   8b. Off-canvas search panel
   Legacy rule is `width:420px; transform:translateX(420px)`. On any viewport
   narrower than 420px the hard-coded offset leaves the panel hanging past the
   right edge, which gives the whole page a horizontal scrollbar on phones.
   Translating by its own width instead is self-correcting at every size.
   -------------------------------------------------------------------------- */
.aside-search-container {
    width: min(420px, 100vw);
    max-width: 100vw;
    transform: translateX(100%);
}

.aside-search-container.open {
    transform: translateX(0);
}

/* --------------------------------------------------------------------------
   8c. Flex rows built from Bootstrap columns
   Blocks like .flex-column-centre are `display:flex; flex-wrap:wrap` holding
   `.col-md-6 .col-sm-12` children. Those children carry no col-xs-* class, so
   below 768px Bootstrap gives them no width and, as flex items, they size to
   their content and push the page wider than the screen. Making them full
   width on small screens lets them wrap as intended.
   -------------------------------------------------------------------------- */
@media (max-width: 767px) {
    .flex-column > [class*="col-"],
    .flex-column-centre > [class*="col-"] {
        flex: 0 0 100%;
        max-width: 100%;
    }
}

/* --------------------------------------------------------------------------
   8d. Contain scroll-animation overshoot
   AOS "fade-left"/"fade-right" (used on 61 views) parks the element at
   translateX(+/-100px) until it animates in. On a 390px screen that is a
   guaranteed horizontal scrollbar, and it never clears if the AOS script is
   slow or blocked. Clipping the page wrapper contains the overshoot.
   Safe here specifically because the site uses no position:sticky, which is
   what an overflow container would otherwise break.
   -------------------------------------------------------------------------- */
.body-content {
    overflow-x: hidden;
}

/* --------------------------------------------------------------------------
   9. Footer
   -------------------------------------------------------------------------- */
footer {
    background-color: var(--al-ink-900);
    color: var(--al-ink-300);
}

footer h1, footer h2, footer h3,
footer h4, footer h5, footer h6 {
    color: var(--al-white);
    font-size: var(--al-text-base);
    font-weight: 600;
    letter-spacing: 0.02em;
}

footer a {
    color: var(--al-ink-300);
    transition: color var(--al-dur) var(--al-ease);
}

footer a:hover,
footer a:focus {
    color: var(--al-white);
    text-decoration: none;
}

footer p { color: var(--al-ink-400); }

/* --------------------------------------------------------------------------
   10. Utility polish already present in the markup
   -------------------------------------------------------------------------- */
.zero-padding { padding: 0; }

.d-flex-wrap-center {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: center;
    gap: var(--al-space-4);
}

/* Client / partner logo strips read better desaturated until hovered. */
.client-logo img,
.partner-logo img {
    filter: grayscale(1);
    opacity: 0.72;
    transition: filter var(--al-dur) var(--al-ease), opacity var(--al-dur) var(--al-ease);
}

.client-logo img:hover,
.partner-logo img:hover {
    filter: grayscale(0);
    opacity: 1;
}

/* ==========================================================================
   Allmark modern header + footer
   --------------------------------------------------------------------------
   Still CSS-only: no markup in _header.cshtml / _footer.cshtml is edited, so
   every one of the 72 header links and 25 footer links stays exactly where it
   was in the DOM and the SEO snapshot diff stays clean.
   ========================================================================== */

/* ==========================================================================
   1. Inherited-colour corrections
   The base layer paints <strong> with --al-text-strong, which is the same
   near-black as the footer background - it rendered the company name
   invisible (contrast 1.17:1). Dark surfaces must opt out of that rule.
   ========================================================================== */
footer strong,
footer b,
.sidebar strong,
.sidebar b {
    color: inherit;
}

/* ==========================================================================
   2. Top utility strip
   ========================================================================== */
/* Near-black read as a dead bar sitting on top of a white header - it had no
   relationship to anything else on the page. The strip is brand blue instead,
   deepening left to right so it reads as one band rather than a filled block,
   and it now matches the footer, which is the same blue. The amber hairline
   underneath is the accent already used for the "Get quote" CTA. */
.top-utility-class {
    background-color: var(--al-blue-800);
    background-image: linear-gradient(100deg, var(--al-blue-900) 0%, var(--al-blue-700) 55%, var(--al-blue-600) 100%);
    border-bottom: 2px solid var(--al-amber);
}

.top-utility-content {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: flex-end;
    gap: var(--al-space-4);
    padding: 0 var(--al-space-5);
}

/* _header.cshtml opens with an inline <style> block IN THE BODY, which therefore
   wins over this stylesheet on order at equal specificity. Rather than edit that
   markup (and risk the SEO snapshot), these rules simply carry one extra class so
   they win on specificity instead. The inline declarations they beat are:
     .top-utility-content a                  { color:#337ab7 }
     .new-navbar .navbar-nav > li > a        { color:#83818c }
     .new-navbar .navbar-nav > li.active > a { color:orange }
     .navbar-brand img                       { max-height:75px } */
.top-utility-class .top-utility-content a {
    color: var(--al-blue-100);
    font-size: var(--al-text-xs);
    font-weight: 500;
    letter-spacing: 0.01em;
    white-space: nowrap;
    transition: color var(--al-dur) var(--al-ease);
}

.top-utility-class .top-utility-content a:hover,
.top-utility-class .top-utility-content a:focus {
    color: var(--al-white);
}

/* ==========================================================================
   3. Desktop navigation
   ========================================================================== */
.new-navbar.navbar {
    background-color: var(--al-surface);
    border: 0;
    border-bottom: 1px solid var(--al-border);
    box-shadow: var(--al-shadow-xs);
    margin-bottom: 0;
}

.new-navbar .navbar-nav > li > a.nav-link {
    position: relative;
    font-family: var(--al-font);
    font-size: var(--al-text-base);
    font-weight: 500;
    color: var(--al-text);
    transition: color var(--al-dur) var(--al-ease);
}

.new-navbar .navbar-nav > li > a.nav-link:hover,
.new-navbar .navbar-nav > li > a.nav-link:focus {
    color: var(--al-primary);
    background-color: transparent;
}

.new-navbar .navbar-nav > li.active > a.nav-link {
    color: var(--al-primary);
    font-weight: 600;
    background-color: transparent;
}

/* The inline block already draws a current-section bar via ::before and animates
   it. Recolour that one rather than adding a competing ::after, otherwise the nav
   shows two underlines in two different colours. */
.new-navbar .navbar-nav > li > a.nav-link::before {
    background-color: var(--al-primary);
    height: 3px;
    border-radius: 3px 3px 0 0;
}

.new-navbar .navbar-nav > li.active > a.nav-link::before {
    background-color: var(--al-primary);
}

/* Search pill in the navbar */
.new-navbar .home-search-container .search-icon-tag {
    border: 1px solid var(--al-border-strong);
    border-radius: var(--al-radius-pill);
    color: var(--al-text-muted);
    background-color: var(--al-surface);
    transition: border-color var(--al-dur) var(--al-ease),
                color var(--al-dur) var(--al-ease),
                box-shadow var(--al-dur) var(--al-ease);
}

/* The legacy grey (#9a98a1) sits at 2.85:1 on white and fails WCAG AA. */
.new-navbar .home-search-container .search-icon-tag span,
.new-navbar .home-search-container .search-icon-tag i {
    color: var(--al-text-muted);
}

.allmark-search-bar { cursor: pointer; }

.new-navbar .home-search-container .search-icon-tag:hover {
    border-color: var(--al-primary);
    color: var(--al-primary);
    box-shadow: var(--al-shadow-xs);
}

/* Keep the logo inside its bar. The legacy rule allows a 75px image inside a
   50px header, so it spilled 30px down and collided with the nav below it.
   The bar is actually 78px tall (nav links carry 28px of vertical padding), so
   60px fills it properly and still leaves 9px of clearance above and below. */
.navbar-brand {
    display: flex;
    align-items: center;
    height: auto;
    padding-top: 0;
    padding-bottom: 0;
}

.navbar-brand > img,
.navbar-brand img.top-logo-class {
    max-height: 60px;
    width: auto;
}

/* ==========================================================================
   4. Mega menu panel
   ========================================================================== */
.main-tab-div-container {
    background-color: var(--al-surface);
    border-top: 1px solid var(--al-border);
    box-shadow: var(--al-shadow-lg);
}

.sub-tab-menu {
    background-color: var(--al-ink-50);
    border-right: 1px solid var(--al-border);
}

.submenu-item-header {
    font-size: var(--al-text-xs);
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    color: var(--al-text-muted);
}

.header-nav-submenu-ul > li > a,
.submenu-item > li > a {
    color: var(--al-text);
    border-radius: var(--al-radius-sm);
    transition: background-color var(--al-dur) var(--al-ease),
                color var(--al-dur) var(--al-ease);
}

.header-nav-submenu-ul > li > a:hover,
.submenu-item > li > a:hover {
    background-color: var(--al-primary-soft);
    color: var(--al-primary);
}

/* ==========================================================================
   5. Mobile header
   Below 768px the legacy CSS shows .mobile-header but never hides .new-navbar,
   so BOTH headers render: two logos, two search pills, and the collapsed menu
   landing on top of the logo. Hiding the Bootstrap navbar here removes the
   duplication. Verified safe: every link inside .new-navbar also appears in
   the sidebar, mega menu or footer, so no unique URL loses its internal link.
   ========================================================================== */
@media (max-width: 768px) {
    .new-navbar,
    .new-navbar.navbar {
        display: none !important;
    }

    .top-utility-content {
        justify-content: center;
        gap: var(--al-space-3);
        padding: 0 var(--al-space-3);
        overflow-x: auto;
        -webkit-overflow-scrolling: touch;
        scrollbar-width: none;
    }

    .top-utility-content::-webkit-scrollbar { display: none; }

    .mobile-header {
        display: flex !important;
        align-items: center;
        box-shadow: var(--al-shadow-sm);
        border-bottom: 1px solid var(--al-border) !important;
    }

    .mobile-header > .col-md-12 { width: 100%; padding: 0; }

    .display-flex-container {
        display: flex;
        align-items: center;
        justify-content: space-between;
        gap: var(--al-space-2);
        padding: 0 var(--al-space-3);
    }

    /* 44px minimum touch target - the bare <i> was ~16px. */
    .mobile-menu-bar a {
        display: inline-flex;
        align-items: center;
        justify-content: center;
        width: 44px;
        height: 44px;
        margin-left: -10px;
        border-radius: var(--al-radius);
        color: var(--al-text-strong);
        font-size: 20px;
        cursor: pointer;
    }

    .mobile-menu-bar a:active { background-color: var(--al-ink-100); }

    .logo-content { display: flex; align-items: center; }

    .logo-content img.top-logo-class {
        height: 42px !important;
        width: auto;
        margin-top: 0 !important;
    }

    .new-mobile-navbar .search-icon-tag {
        display: inline-flex;
        align-items: center;
        justify-content: center;
        min-width: 44px;
        height: 44px;
        border: 1px solid var(--al-border-strong);
        border-radius: var(--al-radius-pill);
        color: var(--al-text-muted);
        padding: 0 var(--al-space-3);
    }
}

/* ==========================================================================
   6. Off-canvas sidebar (mobile navigation)
   --------------------------------------------------------------------------
   This is the only navigation a phone gets - section 5 hides .new-navbar - so
   it has to carry the whole site. What it inherited instead was:

     * .sidebar is 300px but `.sidebar .sidebar-nav` and `.sidebar .nav` are
       both hard-coded to `width: 200px`, so a third of the drawer was dead
       space and every dropdown chevron (pinned to `right: 1rem` of the 200px
       nav) floated in the middle of the panel.
     * `.sidebar .nav-link { padding: 1.75rem 1rem }` - 28px top and bottom,
       so a row is ~72px tall and barely four fit on a phone screen. The
       earlier attempt here to fix that lost: `.sidebar .nav-link` is (0,2,0)
       and `.sidebar ul > li > a` is only (0,1,3).
     * `.sidebar { color: #fff }` over a #F1F5F8 background.
     * A palette assembled from four unrelated sources - #a1cdea for an open
       parent, #f1f5f8 for its children, #8c6565 (brown) for an active leaf,
       #c1c4c6 (grey) for a third-level row - none of them brand colours.
     * `position: fixed` with no `top` and `height: calc(100vh - 55px)`, so
       the drawer was pinned to wherever the body happened to start and ran
       off the bottom of the screen once you had scrolled.
     * No indent between the three menu levels, so Product > AIDC > Zebra all
       sat at the same margin and the tree was unreadable.

   Everything below is scoped to #togglerbodyclass. That is not decoration:
   _Layout.cshtml declares these colours in a head <style> block at (0,3,1)
   and sidebar-navbar.css at (0,2,0), and this bundle only renders after them.
   One ID takes the whole section past both without a single !important.
   ========================================================================== */

/* ---- The drawer -------------------------------------------------------- */
#togglerbodyclass .sidebar {
    position: fixed;
    top: 0;
    bottom: 0;
    left: 0;
    z-index: 1050;
    display: flex;
    flex-direction: column;
    width: min(320px, 86vw);
    height: 100%;
    padding: 0;
    background: var(--al-surface);
    box-shadow: 6px 0 28px rgba(15, 23, 34, 0.22);
    /* Colour is per-row from here on; the inherited #fff blanked the labels. */
    color: var(--al-text);
    overscroll-behavior: contain;
}

html:not([dir="rtl"]) #togglerbodyclass .sidebar {
    margin-left: calc(-1 * min(320px, 86vw));
    transition: margin-left 260ms var(--al-ease);
}

@media (max-width: 768px) {
    html:not([dir="rtl"]) #togglerbodyclass.sidebar-show .sidebar {
        margin-left: 0;
    }
}

/* Brand bar across the top of the drawer. Generated content, so no markup is
   added; it also gives the panel a lid so the first menu row is not flush
   against the status bar. */
#togglerbodyclass .sidebar::before {
    content: "Menu";
    flex: 0 0 auto;
    display: flex;
    align-items: center;
    height: 58px;
    padding: 0 var(--al-space-4);
    background-image: linear-gradient(100deg, var(--al-blue-900) 0%, var(--al-blue-700) 55%, var(--al-blue-600) 100%);
    border-bottom: 2px solid var(--al-amber);
    color: var(--al-white);
    font-family: var(--al-font);
    font-size: var(--al-text-sm);
    font-weight: 700;
    letter-spacing: 0.14em;
    text-transform: uppercase;
}

/* The scroll region. The 200px was the reason the drawer looked half-empty. */
#togglerbodyclass .sidebar .sidebar-nav,
#togglerbodyclass .sidebar .nav {
    width: 100%;
    min-height: 0;
    padding: 0;
    background: var(--al-surface);
}

#togglerbodyclass .sidebar .sidebar-nav {
    flex: 1 1 auto;
    overflow-y: auto;
    overscroll-behavior: contain;
    -webkit-overflow-scrolling: touch;
    padding-bottom: var(--al-space-6);
}

/* ---- Scrim ------------------------------------------------------------- */
/* Sits under the drawer (1050) and over everything else, the header included,
   so the page behind reads as inert. The existing global document click
   handler already closes the drawer, so a tap anywhere on it works. */
#togglerbodyclass.sidebar-show::before {
    content: "";
    position: fixed;
    inset: 0;
    z-index: 1040;
    background: rgba(15, 23, 34, 0.55);
    animation: al-scrim-in 220ms var(--al-ease);
}

@keyframes al-scrim-in {
    from { opacity: 0; }
    to   { opacity: 1; }
}

/* Hold the page still behind the drawer instead of letting a scroll gesture
   run the body underneath it. */
body:has(#togglerbodyclass.sidebar-show) {
    overflow: hidden;
}

/* ==========================================================================
   6a. Menu rows
   --------------------------------------------------------------------------
   Three levels, told apart by indent, weight and ground rather than by four
   unrelated background colours:

     L1  li.nav-dropdown > a.main-category      Product, Software
         li.nav-item     > a.nav-link           About us, Contact us, Support
     L2  li.sub-nav-dropdown > a                AIDC, Label Printing, ...
     L3  li.first-sub-nav-dropdown > a          TVS, Zebra AIDC, Honeywell
   ========================================================================== */

/* Shared row shape. 1.75rem of padding becomes a 52px row: still well over
   the 44px touch minimum, and it fits nine items on a phone instead of four. */
#togglerbodyclass .sidebar .nav-link {
    display: flex;
    align-items: center;
    gap: var(--al-space-3);
    min-height: 52px;
    padding: var(--al-space-3) var(--al-space-4);
    border: 0;
    background: transparent;
    font-family: var(--al-font);
    font-size: var(--al-text-base);
    font-weight: 500;
    line-height: var(--al-leading-snug);
    color: var(--al-text);
    text-decoration: none;
    cursor: pointer;
    transition: background-color var(--al-dur) var(--al-ease),
                color var(--al-dur) var(--al-ease);
}

#togglerbodyclass .sidebar .nav-item + .nav-item > .nav-link {
    border-top: 1px solid var(--al-border);
}

#togglerbodyclass .sidebar .nav-link:hover,
#togglerbodyclass .sidebar .nav-link:focus {
    background-color: var(--al-primary-soft);
    color: var(--al-primary);
}

#togglerbodyclass .sidebar .nav-link:focus-visible {
    outline: none;
    box-shadow: inset var(--al-ring);
}

/* Icons: one fixed column so every label starts on the same x, whatever the
   glyph is. The legacy markup puts a bare <i> inline, so widths varied. */
#togglerbodyclass .sidebar .nav-link > i {
    flex: 0 0 auto;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 20px;
    font-size: 15px;
    color: var(--al-text-muted);
    transition: color var(--al-dur) var(--al-ease);
}

#togglerbodyclass .sidebar .nav-link:hover > i {
    color: var(--al-primary);
}

#togglerbodyclass .sidebar .side-head-text,
#togglerbodyclass .sidebar .side-body-text {
    flex: 1 1 auto;
    min-width: 0;
    color: inherit;
}

/* ---- L1: top-level ----------------------------------------------------- */
#togglerbodyclass .sidebar > .sidebar-nav > .nav > .nav-item > .nav-link {
    font-size: var(--al-text-base);
    font-weight: 600;
    color: var(--al-text-strong);
}

/* The top-level icons get a tinted plate so the parent rows anchor the list. */
#togglerbodyclass .sidebar > .sidebar-nav > .nav > .nav-item > .nav-link > i {
    width: 32px;
    height: 32px;
    border-radius: var(--al-radius-sm);
    background-color: var(--al-primary-soft);
    color: var(--al-primary);
}

/* ---- L2 --------------------------------------------------------------- */
#togglerbodyclass .sidebar .nav-dropdown-items .nav-link {
    min-height: 46px;
    padding-left: var(--al-space-6);
    font-size: var(--al-text-sm);
    font-weight: 500;
    color: var(--al-text);
}

/* ---- L3 --------------------------------------------------------------- */
#togglerbodyclass .sidebar .nav-dropdown-items .nav-dropdown-items .nav-link {
    min-height: 42px;
    padding-left: var(--al-space-8);
    font-size: var(--al-text-sm);
    font-weight: 400;
    color: var(--al-text-muted);
}

/* The chevrons repeated at every level were pure noise once the indent does
   the work; keep them only where they mean "this row is a link out". */
#togglerbodyclass .sidebar .nav-dropdown-items .nav-dropdown-items .nav-link > i {
    font-size: 11px;
    opacity: 0.55;
}

/* ==========================================================================
   6b. Open / active states
   --------------------------------------------------------------------------
   Replaces #a1cdea, #f1f5f8, #8c6565 and #c1c4c6 with one idea: an open
   branch is a tinted well with a brand-blue rail down its left edge, and the
   current page is the only row painted in the brand blue.
   ========================================================================== */

/* Open parent row */
#togglerbodyclass .sidebar ul > li.nav-dropdown.open > a.nav-link,
#togglerbodyclass .sidebar ul > li.nav-dropdown.open > a.nav-link:hover,
#togglerbodyclass .sidebar ul > li.nav-dropdown.open > a.nav-link:focus {
    background-color: var(--al-primary-soft);
    color: var(--al-primary);
}

#togglerbodyclass .sidebar ul > li.nav-dropdown.open > a.nav-link > .side-head-text,
#togglerbodyclass .sidebar ul > li.nav-dropdown.open > a.nav-link > .side-body-text {
    color: var(--al-primary);
    font-weight: 600;
}

#togglerbodyclass .sidebar ul > li.nav-dropdown.open > a.nav-link > i {
    color: var(--al-primary);
}

/* The branch itself. The rail replaces the 3px border-left the legacy sheet
   put on the <li>, which also pushed every open row 3px sideways. */
#togglerbodyclass .sidebar li.nav-dropdown.open {
    background: transparent;
    border-left: 0;
}

/* The legacy cap was `max-height: 1500px`. The Product branch is ~40 rows and
   several sub-branches can be open at once, so at the row heights above it
   overruns 1500px and the tail of the menu is silently clipped. 4000px clears
   the fully-expanded tree with room to spare and still animates. */
#togglerbodyclass .sidebar li.nav-dropdown.open > .nav-dropdown-items {
    max-height: 4000px;
    background-color: var(--al-ink-50);
    border-left: 3px solid var(--al-blue-200);
    border-bottom: 1px solid var(--al-border);
}

#togglerbodyclass .sidebar li.nav-dropdown.open > .nav-dropdown-items .nav-dropdown-items {
    background-color: var(--al-surface);
    border-left-color: var(--al-border-strong);
}

/* Sub-level rows: flatten the three competing greys and browns. */
#togglerbodyclass .sidebar ul > li.nav-dropdown.sub-nav-dropdown > a.nav-link,
#togglerbodyclass .sidebar ul > li.nav-dropdown.sub-nav-dropdown > a.nav-link:hover,
#togglerbodyclass .sidebar ul > li.nav-dropdown.sub-nav-dropdown > a.nav-link:focus,
#togglerbodyclass .sidebar ul > li.first-sub-nav-dropdown > a.nav-link,
#togglerbodyclass .sidebar ul > li.first-sub-nav-dropdown > a.nav-link:hover,
#togglerbodyclass .sidebar ul > li.first-sub-nav-dropdown > a.nav-link:focus,
#togglerbodyclass .sidebar ul > li.nav-dropdown.first-sub-nav-dropdown.open > ul > li > a.nav-link {
    background-color: transparent;
    color: var(--al-text);
    font-weight: 500;
}

#togglerbodyclass .sidebar ul > li.nav-dropdown.sub-nav-dropdown > a.nav-link:hover,
#togglerbodyclass .sidebar ul > li.first-sub-nav-dropdown > a.nav-link:hover {
    background-color: var(--al-blue-50);
    color: var(--al-primary);
}

/* Current page.
   Marked with a rail and a tint rather than a solid fill, and the reason is
   not only taste: setActiveClassMobile() decides this by string-matching
   location.pathname against each href, and four Software rows are still
   placeholders pointing at `@Url.Action("", "Home")`, i.e. "/". So on the home
   page one of them - "Work-In-Progress (WIP) Solutions" - is flagged as the
   current page. A solid blue bar states that as fact; a rail reads as emphasis
   and is far less wrong when the match misfires. The placeholder hrefs are the
   actual bug and want fixing in the view. */
#togglerbodyclass .sidebar ul > li.active > a.nav-link,
#togglerbodyclass .sidebar ul > li.active > a.nav-link:hover,
#togglerbodyclass .sidebar ul > li.active > a.nav-link:focus,
#togglerbodyclass .sidebar ul > li.nav-dropdown.sub-nav-dropdown.active > a.nav-link,
#togglerbodyclass .sidebar ul > li.first-sub-nav-dropdown.active > a.nav-link,
#togglerbodyclass .sidebar ul > li.nav-dropdown.first-sub-nav-dropdown.open > ul > li.active > a.nav-link {
    background-color: var(--al-primary-soft);
    box-shadow: inset 3px 0 0 var(--al-primary);
    color: var(--al-primary);
    font-weight: 600;
}

#togglerbodyclass .sidebar ul > li.active > a.nav-link > i,
#togglerbodyclass .sidebar ul > li.active > a.nav-link > .side-head-text,
#togglerbodyclass .sidebar ul > li.active > a.nav-link > .side-body-text {
    color: var(--al-primary);
}

/* ==========================================================================
   6c. Expand affordance
   --------------------------------------------------------------------------
   The legacy chevron is drawn on .nav-dropdown-toggle only, which the L1
   Product and Software rows do not carry - so the two rows that actually open
   something were the two with no hint that they would. And the arrow it drew
   points left, then rotates to point up.

   These rules retire it and put one caret on every row that has children,
   pointing down when closed and up when open.
   ========================================================================== */
#togglerbodyclass .sidebar .nav-dropdown-toggle::before {
    display: none;
}

#togglerbodyclass .sidebar li.nav-dropdown > a.nav-link:has(+ .nav-dropdown-items)::after {
    content: "";
    flex: 0 0 auto;
    width: 9px;
    height: 9px;
    margin-left: auto;
    border-right: 2px solid currentColor;
    border-bottom: 2px solid currentColor;
    border-radius: 1px;
    transform: translateY(-2px) rotate(45deg);
    opacity: 0.5;
    transition: transform 220ms var(--al-ease), opacity var(--al-dur) var(--al-ease);
}

#togglerbodyclass .sidebar li.nav-dropdown.open > a.nav-link:has(+ .nav-dropdown-items)::after {
    transform: translateY(2px) rotate(-135deg);
    opacity: 1;
}

/* Fallback for engines without :has() - the L2 toggles keep a caret via the
   class the markup already carries, so the tree is still navigable there. */
@supports not selector(:has(*)) {
    #togglerbodyclass .sidebar a.nav-dropdown-toggle::after,
    #togglerbodyclass .sidebar a.main-category::after {
        content: "";
        flex: 0 0 auto;
        width: 9px;
        height: 9px;
        margin-left: auto;
        border-right: 2px solid currentColor;
        border-bottom: 2px solid currentColor;
        transform: translateY(-2px) rotate(45deg);
        opacity: 0.5;
    }

    #togglerbodyclass .sidebar li.open > a.nav-dropdown-toggle::after,
    #togglerbodyclass .sidebar li.open > a.main-category::after {
        transform: translateY(2px) rotate(-135deg);
        opacity: 1;
    }
}

/* The drawer is a phone-only surface; the desktop minimizer button has no job
   in it and rendered as a stray grey bar at the bottom of the panel. */
#togglerbodyclass .sidebar-minimizer,
#togglerbodyclass .brand-minimizer {
    display: none;
}

/* ==========================================================================
   7. Footer
   ========================================================================== */
.fotter-container {
    padding-top: var(--al-space-7);
    padding-bottom: var(--al-space-5);
}

.footer-subheader-title {
    font-size: var(--al-text-sm);
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    margin-bottom: var(--al-space-4);
}

.footer-thick-border {
    border-color: rgba(255, 255, 255, 0.1) !important;
}

/* Link rows: give the pointing-hand icons a consistent gutter and make the
   whole row a comfortable target. */
footer .content-list-item,
footer .form-group {
    margin-bottom: var(--al-space-2);
}

footer a {
    display: inline-block;
    padding: 2px 0;
    line-height: var(--al-leading-snug);
}

footer .fa-hand-point-right,
footer .address-image-text i,
footer .address-image-text svg {
    color: var(--al-amber);
    opacity: 0.9;
}

/* Spinning icons in a footer are pure distraction and cost a compositor layer
   on every page; hold them still. */
footer .fa-spin {
    animation: none !important;
}

footer .address-image-text {
    color: var(--al-amber);
}

/* Social buttons - they were bare 16px glyphs crowded into the corner. */
.footer-social-image {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 38px;
    height: 38px;
    margin: 0 var(--al-space-1);
    border-radius: 50%;
    background-color: rgba(255, 255, 255, 0.08);
    color: var(--al-white);
    transition: background-color var(--al-dur) var(--al-ease),
                transform var(--al-dur) var(--al-ease);
}

.footer-social-image:hover {
    background-color: var(--al-primary);
    transform: translateY(-2px);
}

.footer-social-image img {
    max-width: 18px;
    height: auto;
}

@media (max-width: 767px) {
    .fotter-container {
        padding-top: var(--al-space-5);
        text-align: left;
    }

    /* The footer is a grid of col-md-* with no col-xs-*, so the columns
       collapse to auto width and crowd. Force a single readable column. */
    .address-footer-content [class*="col-md-"],
    .address-footer-content [class*="col-lg-"] {
        width: 100%;
        float: none;
    }

    .footer-subheader-title {
        margin-top: var(--al-space-5);
    }
}

/* ==========================================================================
   40-home.css - home page sections
   Loaded last, after the legacy stylesheets. Restyles existing markup: the
   only view edit is dropping `loading="lazy"` from the three hero slides.
   ========================================================================== */

/* ==========================================================================
   0. Hero carousel - reserve its height
   --------------------------------------------------------------------------
   The section-jumping bug. #myCarousel carries data-ride="carousel"
   data-interval="3500", so it advances on its own every 3.5s. Slides 2-4 are
   `loading="lazy"` inside a `display:none` .item, so the browser never fetches
   them until the slide is shown. The moment the carousel advances, the new
   .item has an image of zero height: the carousel collapses by ~450px, the
   whole page below it jumps UP, and the reader gets thrown back into the
   previous section. When the image arrives it jumps back DOWN.

   Every slider asset is 1280x454, so the ratio is known ahead of the image.
   Pinning it on .carousel-inner makes the hero occupy its final height from
   first paint and hold it through every transition, whatever state the images
   are in. Nothing below the hero can move any more.

   The lazy attribute is also dropped from the three carousel slides in the
   view, so they are in cache before their turn comes and no slide flashes
   empty. Both are needed: this rule stops the layout shift, that stops the
   blank frame.
   ========================================================================== */
.home-slide-div .carousel-inner {
    aspect-ratio: 1280 / 454;
    max-height: 550px;
    overflow: hidden;
}

.home-slide-div .carousel-inner > .item,
.home-slide-div .carousel-inner > .item > .banner-image-container {
    height: 100%;
}

/* The legacy `max-height: 550px` on the image let a wide viewport size the
   image and the box independently; the box owns the height now and the image
   fills it. */
.home-slide-div .banner-image-container img {
    display: block;
    width: 100%;
    height: 100%;
    max-height: none;
    object-fit: cover;
    object-position: center;
}

/* Browsers without aspect-ratio (and any viewport wide enough to hit the
   550px cap) still need a floor, or the collapse comes back. */
@supports not (aspect-ratio: 1 / 1) {
    .home-slide-div .carousel-inner {
        height: 35.47vw;
    }
}


/* ==========================================================================
   1. Section headings - every home section
   --------------------------------------------------------------------------
   The legacy headline is a bordered, 4px-tracked, 18px uppercase box with a
   150px hairline running out of each side - it fights the content for
   attention and its 14px line-height clips descenders. This drops the box and
   the side rules and rebuilds it as a plain centred heading with one accent
   bar. The ::before/::after that drew the side rules are reused rather than
   left to draw over the new treatment.

   The class is doubled deliberately. The view carries its own copy of these
   rules in a body-level <style> block, and the mfg/printer variants sit at
   `.headerhome.header-mfg-title .home-section-headline` (0,3,0); a body style
   block wins ties against this head bundle, so the doubled class buys the one
   extra point that settles it.
   ========================================================================== */
.row .headerhome {
    margin: 0 0 var(--al-space-7);
    text-align: center;
}

.row .headerhome .home-section-headline.home-section-headline {
    display: inline-block;
    max-width: 820px;
    margin: 0 auto;
    padding: 0;
    border: 0;
    background-color: transparent;
    font-family: var(--al-font);
    font-size: var(--al-h2);
    font-weight: 700;
    line-height: var(--al-leading-tight);
    letter-spacing: -0.01em;
    text-transform: none;
    color: var(--al-text-strong);
}

/* Accent bar, centred under the heading. */
.row .headerhome .home-section-headline.home-section-headline::before {
    content: "";
    left: 50%;
    right: auto;
    top: auto;
    bottom: -18px;
    width: 64px;
    height: 4px;
    margin: 0 0 0 -32px;
    border-radius: var(--al-radius-pill);
    background: linear-gradient(90deg, var(--al-primary), var(--al-blue-400));
}

/* The second hairline has nothing left to do. */
.row .headerhome .home-section-headline.home-section-headline::after {
    display: none;
}

/* ==========================================================================
   2. Solution sections - numbered step flow
   --------------------------------------------------------------------------
   Both sections list a real process but render it as a 2x2 grid of loose
   photos, so they read as four unrelated pictures:

     .first-section   label -> put away -> count -> pick
     .second-section  print -> track -> stock -> warehouse

   These rules lay each one out as a single numbered left-to-right flow with
   connectors between the steps. Layout only - the links, images, alt text and
   h4 headings are untouched, and the step numbers and arrows are generated
   content, so nothing is added to the indexed HTML.

   The two sections nest their link differently (.first-section wraps the card
   in the <a>, .second-section puts the <a> inside it), so the selectors below
   name both shapes rather than assuming one.
   ========================================================================== */

/* ---- Section shells ---------------------------------------------------- */
/* Both background photos are busy enough to eat the cards. Keep them - they
   carry each section's identity - but lay a scrim over them so the cards and
   the heading stay readable. */
.first-section {
    background-image: linear-gradient(rgba(246, 248, 250, 0.86), rgba(246, 248, 250, 0.94)),
                      url('/Content/Images/Home/IMS/ims-background.png');
    background-size: cover;
    background-repeat: no-repeat;
    padding: var(--al-space-8) 0;
}

.second-section {
    background-image: linear-gradient(rgba(255, 252, 242, 0.82), rgba(255, 252, 242, 0.9)),
                      url('/Content/Images/Home/MWIP/manufacture-wip-background.png');
    background-size: cover;
    background-repeat: no-repeat;
    padding: var(--al-space-8) 0;
}

/* ---- The flow row ------------------------------------------------------ */
.first-section .flex-box-list,
.second-section .flex-box-list {
    display: grid;
    float: none;
    gap: var(--al-space-5);
    max-width: 1280px;
    margin: 0 auto;
    padding: 0 var(--al-space-5);
    counter-reset: al-step;
}

/* Six steps read best as two rows of three; four fit one row. */
.first-section .flex-box-list {
    grid-template-columns: repeat(3, 1fr);
}

.second-section .flex-box-list {
    grid-template-columns: repeat(4, 1fr);
}

/* The Bootstrap col-*-6 classes put a hard 50% width and 15px gutters on each
   box; the grid above owns the sizing now. */
.first-section .flex-box-list > .category-box,
.second-section .flex-box-list > .category-box {
    position: relative;
    width: auto;
    float: none;
    padding: 0;
    margin: 0;
    counter-increment: al-step;
}

/* The link, whichever side of the card it sits on. */
.first-section .flex-box-list > .category-box > a,
.second-section .home-mfg-image-section > a {
    display: block;
    height: 100%;
    text-decoration: none;
    border-radius: var(--al-radius-lg);
}

.first-section .flex-box-list > .category-box > a:focus-visible,
.second-section .home-mfg-image-section > a:focus-visible {
    outline: none;
    box-shadow: var(--al-ring);
}

/* ---- The card ---------------------------------------------------------- */
.first-section .home-ims-image-section,
.second-section .home-mfg-image-section {
    position: relative;
    height: 100%;
    padding: 0;
    background-color: var(--al-surface);
    border: 1px solid var(--al-border);
    border-radius: var(--al-radius-lg);
    box-shadow: var(--al-shadow-sm);
    overflow: hidden;
    transition: transform var(--al-dur) var(--al-ease),
                box-shadow var(--al-dur) var(--al-ease),
                border-color var(--al-dur) var(--al-ease);
}

.first-section .home-ims-image-section:hover,
.second-section .home-mfg-image-section:hover {
    transform: translateY(-4px);
    border-color: var(--al-blue-200);
    box-shadow: var(--al-shadow-lg);
}

/* Beats both the legacy `.category-box img { height: 250px }` and
   `.home-*-image-section img { width: 100% }`. A fixed band keeps the four
   photos on one baseline whatever their source dimensions are. */
.first-section .home-ims-image-section img,
.second-section .home-mfg-image-section img {
    display: block;
    width: 100%;
    height: 190px;
    object-fit: cover;
    transition: transform 320ms var(--al-ease);
}

.first-section .home-ims-image-section:hover img,
.second-section .home-mfg-image-section:hover img {
    transform: scale(1.04);
}

/* The mfg label sits on a #ccc band in the legacy sheet; drop it so both
   sections read the same. */
.first-section .home-ims-image-section h4,
.second-section .home-mfg-image-section h4 {
    margin: 0;
    padding: var(--al-space-4) var(--al-space-4) var(--al-space-5);
    background-color: transparent;
    font-family: var(--al-font);
    font-size: var(--al-text-lg);
    font-weight: 600;
    line-height: var(--al-leading-snug);
    color: var(--al-text-strong);
    text-align: center;
}

.first-section .home-ims-image-section:hover h4,
.second-section .home-mfg-image-section:hover h4 {
    color: var(--al-primary);
}

/* ---- Step number ------------------------------------------------------- */
.first-section .flex-box-list > .category-box::before,
.second-section .flex-box-list > .category-box::before {
    content: counter(al-step);
    position: absolute;
    top: var(--al-space-3);
    left: var(--al-space-3);
    z-index: 2;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 32px;
    height: 32px;
    border-radius: var(--al-radius-pill);
    background-color: var(--al-primary);
    color: var(--al-white);
    font-family: var(--al-font);
    font-size: var(--al-text-sm);
    font-weight: 600;
    box-shadow: 0 2px 6px rgba(0, 91, 172, 0.35);
}

/* ---- Connector between steps ------------------------------------------- */
.first-section .flex-box-list > .category-box::after,
.second-section .flex-box-list > .category-box::after {
    content: "\2192"; /* rightwards arrow */
    position: absolute;
    top: 95px;
    right: calc(var(--al-space-5) / -2);
    z-index: 2;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 26px;
    height: 26px;
    margin-right: -13px;
    border-radius: var(--al-radius-pill);
    background-color: var(--al-white);
    border: 1px solid var(--al-border-strong);
    color: var(--al-primary);
    font-size: 15px;
    line-height: 1;
}

/* No connector at the end of a row - the row wrap is carried by the step
   numbers rather than an arrow pointing off the edge. */
.first-section .flex-box-list > .category-box:nth-child(3n)::after,
.first-section .flex-box-list > .category-box:last-child::after,
.second-section .flex-box-list > .category-box:last-child::after {
    display: none;
}

/* ---- Tablet: two per row ----------------------------------------------- */
@media (max-width: 991px) {
    .first-section .flex-box-list,
    .second-section .flex-box-list {
        grid-template-columns: repeat(2, 1fr);
    }

    /* Two columns re-cuts the rows, so the connectors are re-cut with them:
       shown on the left card of each pair, never on the right one. These
       carry a :nth-child() to match the specificity of the 3n rule above. */
    .first-section .flex-box-list > .category-box:nth-child(odd)::after {
        display: flex;
    }

    .first-section .flex-box-list > .category-box:nth-child(even)::after,
    .second-section .flex-box-list > .category-box:nth-child(even)::after {
        display: none;
    }

    .first-section .flex-box-list > .category-box:last-child::after,
    .second-section .flex-box-list > .category-box:last-child::after {
        display: none;
    }

    .first-section .home-ims-image-section img,
    .second-section .home-mfg-image-section img {
        height: 200px;
    }
}

/* ---- Phone: one per row, flow turns vertical --------------------------- */
@media (max-width: 575px) {
    .first-section .flex-box-list,
    .second-section .flex-box-list {
        grid-template-columns: 1fr;
        gap: var(--al-space-6);
        padding: 0 var(--al-space-4);
    }

    /* One column: every connector turns downward. The :nth-child(n) is there
       to outrank the 3n and even rules above rather than to select anything. */
    .first-section .flex-box-list > .category-box:nth-child(n)::after,
    .second-section .flex-box-list > .category-box:nth-child(n)::after {
        display: flex;
        top: auto;
        bottom: calc(var(--al-space-6) / -2);
        right: 50%;
        margin-right: -13px;
        margin-bottom: -13px;
        transform: rotate(90deg);
    }

    .first-section .flex-box-list > .category-box:last-child::after,
    .second-section .flex-box-list > .category-box:last-child::after {
        display: none;
    }

    .first-section .home-ims-image-section img,
    .second-section .home-mfg-image-section img {
        height: 180px;
    }
}

/* ==========================================================================
   3. Product and capability sections - card grid
   --------------------------------------------------------------------------
   .third-section  (Retail & POS)  - 5 capability cards
   .fourth-section (AIDC)          - 10 product cards
   .fifth-section  (Touch POS)     - 9 product cards

   These are not processes, so they get the same card language as the flow
   sections but no step numbers and no connectors. They keep the legacy flex
   row rather than a grid: the item counts do not divide evenly, and flex with
   justify-content:center leaves a short final row centred instead of ragged.
   ========================================================================== */

/* Section shells. The retail photo gets the same scrim treatment as the flow
   sections; the flat tan and yellow fills are swapped for neutral surfaces so
   the cards carry the colour instead of the background. */
.third-section {
    background-image: linear-gradient(rgba(246, 248, 250, 0.88), rgba(246, 248, 250, 0.94)),
                      url('/Content/Images/Home/RetailPOS/Retail-pos-background.png');
    background-size: cover;
    background-repeat: no-repeat;
    padding: var(--al-space-8) 0;
}

.fourth-section {
    background-color: var(--al-surface);
    padding: var(--al-space-8) 0;
}

.fifth-section {
    background-color: var(--al-bg);
    padding: var(--al-space-8) 0;
}

/* ---- The card row ------------------------------------------------------ */
.third-section .flex-box-list,
.fourth-section .flex-box-list,
.fifth-section .flex-box-list {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    float: none;
    gap: var(--al-space-5);
    max-width: 1280px;
    margin: 0 auto;
    padding: 0 var(--al-space-5);
}

/* Sections 4 and 5 space their rows with empty col-md-offset divs. As flex
   children those become invisible gaps in the middle of the row, so they are
   taken out of the layout. They hold no content - nothing is hidden. */
.fourth-section .flex-box-list > div:not(.category-box),
.fifth-section .flex-box-list > div:not(.category-box) {
    display: none;
}

/* Each basis has to give back its share of the gap, or the last card in the
   row overflows and wraps: n cards need n x (100/n% - gap x (n-1)/n). */
.third-section .flex-box-list > .category-box {
    flex: 0 1 calc(33.333% - (var(--al-space-5) * 2 / 3));
}

.fourth-section .flex-box-list > .category-box,
.fifth-section .flex-box-list > .category-box {
    flex: 0 1 calc(25% - (var(--al-space-5) * 3 / 4));
}

.third-section .flex-box-list > .category-box,
.fourth-section .flex-box-list > .category-box,
.fifth-section .flex-box-list > .category-box {
    width: auto;
    float: none;
    padding: 0;
    margin: 0;
}

/* ---- The card ---------------------------------------------------------- */
.third-section .home-pos-image-section,
.fourth-section .home-printer-image-section,
.fifth-section .home-printer-image-section {
    height: 100%;
    padding: 0;
    background-color: var(--al-surface);
    border: 1px solid var(--al-border);
    border-radius: var(--al-radius-lg);
    box-shadow: var(--al-shadow-sm);
    overflow: hidden;
    transition: transform var(--al-dur) var(--al-ease),
                box-shadow var(--al-dur) var(--al-ease),
                border-color var(--al-dur) var(--al-ease);
}

.third-section .home-pos-image-section:hover,
.fourth-section .home-printer-image-section:hover,
.fifth-section .home-printer-image-section:hover {
    transform: translateY(-4px);
    border-color: var(--al-blue-200);
    box-shadow: var(--al-shadow-lg);
}

.third-section .home-pos-image-section > a,
.fourth-section .home-printer-image-section > a,
.fifth-section .home-printer-image-section > a {
    display: flex;
    flex-direction: column;
    height: 100%;
    text-decoration: none;
    border-radius: var(--al-radius-lg);
}

.third-section .home-pos-image-section > a:focus-visible,
.fourth-section .home-printer-image-section > a:focus-visible,
.fifth-section .home-printer-image-section > a:focus-visible {
    outline: none;
    box-shadow: var(--al-ring);
}

/* Retail images are photographs, so they fill the band. */
.third-section .home-pos-image-section img {
    display: block;
    width: 100%;
    height: 180px;
    object-fit: cover;
    transition: transform 320ms var(--al-ease);
}

.third-section .home-pos-image-section:hover img {
    transform: scale(1.04);
}

/* AIDC and POS images are cut-out product shots: contain them on a tinted
   plate so a tall printer and a flat scanner sit on the same baseline. The
   legacy `max-width: 60%` inside .round-border-class is overridden here. */
.fourth-section .home-printer-image-section img,
.fifth-section .home-printer-image-section img,
.fourth-section .round-border-class .home-printer-image-section img,
.fifth-section .round-border-class .home-printer-image-section img {
    display: block;
    width: 100%;
    max-width: 100%;
    height: 170px;
    object-fit: contain;
    padding: var(--al-space-4);
    background-color: var(--al-ink-50);
    transition: transform 320ms var(--al-ease);
}

.fourth-section .home-printer-image-section:hover img,
.fifth-section .home-printer-image-section:hover img {
    transform: scale(1.05);
}

/* ---- Card label -------------------------------------------------------- */
.third-section .home-pos-image-section h4,
.fourth-section .home-printer-image-section h4,
.fifth-section .home-printer-image-section h4 {
    flex: 1 1 auto;
    margin: 0;
    padding: var(--al-space-4);
    background-color: transparent;
    font-family: var(--al-font);
    font-size: var(--al-text-base);
    font-weight: 600;
    line-height: var(--al-leading-snug);
    color: var(--al-text-strong);
    text-align: center;
}

.third-section .home-pos-image-section h4 {
    font-size: var(--al-text-lg);
    padding: var(--al-space-4) var(--al-space-4) var(--al-space-5);
}

.third-section .home-pos-image-section:hover h4,
.fourth-section .home-printer-image-section:hover h4,
.fifth-section .home-printer-image-section:hover h4 {
    color: var(--al-primary);
}

/* ---- Responsive -------------------------------------------------------- */
@media (max-width: 991px) {
    .third-section .flex-box-list > .category-box,
    .fourth-section .flex-box-list > .category-box,
    .fifth-section .flex-box-list > .category-box {
        flex: 0 1 calc(50% - (var(--al-space-5) / 2));
    }
}

@media (max-width: 575px) {
    .third-section .flex-box-list,
    .fourth-section .flex-box-list,
    .fifth-section .flex-box-list {
        padding: 0 var(--al-space-4);
    }

    .third-section .flex-box-list > .category-box,
    .fourth-section .flex-box-list > .category-box,
    .fifth-section .flex-box-list > .category-box {
        flex: 0 1 100%;
    }
}

