/*
  site.css — hand-written CSS for the site chrome, replacing the Elementor/ElementsKit/theme
  rules the legacy markup depended on. Every value below is the computed value of the legacy render
  (reference/inventory/style-header-*.txt) or the source rule behind it (reference/inventory/header-rules.css),
  so the result is pixel-identical while the old stylesheets are still loaded and stays identical once
  they are gone. The box structure mirrors the legacy one where line-box math matters (inline images).

  Breakpoints inherited from the legacy CSS: 1320px (child theme index.css), 1024px (ElementsKit
  responsive breakpoint + child theme media.css), 767px (Elementor/child theme mobile).

  Self-contained: pages rewritten by hand load this file and nothing else from the old site, so it carries
  its own fonts (below), a minimal base, and the Contact Form 7 rules the form markup relies on.
  The header's dropdown arrow is one glyph (U+E994) subset out of the ElementsKit icon font into
  /fonts/falco-icons.woff.
*/

@font-face {
	font-family: 'falco-icons';
	src: url(/fonts/falco-icons.woff) format('woff');
	font-weight: 400;
	font-style: normal;
	font-display: block;
}

/* ===================================================================== fonts */
/* Montserrat and Roboto, self-hosted: the same files the live site serves through Elementor's local copy of
   Google Fonts. Both are variable fonts, so one file per style and language subset covers every weight
   (hence the weight ranges); unicode-range keeps browsers to the subsets a page actually uses. */
@font-face { font-family: 'Montserrat'; font-style: italic; font-weight: 100 900; src: url(/fonts/montserrat-italic-cyrillic-ext.woff2) format('woff2'); unicode-range: U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F; }
@font-face { font-family: 'Montserrat'; font-style: italic; font-weight: 100 900; src: url(/fonts/montserrat-italic-cyrillic.woff2) format('woff2'); unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116; }
@font-face { font-family: 'Montserrat'; font-style: italic; font-weight: 100 900; src: url(/fonts/montserrat-italic-vietnamese.woff2) format('woff2'); unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB; }
@font-face { font-family: 'Montserrat'; font-style: italic; font-weight: 100 900; src: url(/fonts/montserrat-italic-latin-ext.woff2) format('woff2'); unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF; }
@font-face { font-family: 'Montserrat'; font-style: italic; font-weight: 100 900; src: url(/fonts/montserrat-italic-latin.woff2) format('woff2'); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
@font-face { font-family: 'Montserrat'; font-style: normal; font-weight: 100 900; src: url(/fonts/montserrat-cyrillic-ext.woff2) format('woff2'); unicode-range: U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F; }
@font-face { font-family: 'Montserrat'; font-style: normal; font-weight: 100 900; src: url(/fonts/montserrat-cyrillic.woff2) format('woff2'); unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116; }
@font-face { font-family: 'Montserrat'; font-style: normal; font-weight: 100 900; src: url(/fonts/montserrat-vietnamese.woff2) format('woff2'); unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB; }
@font-face { font-family: 'Montserrat'; font-style: normal; font-weight: 100 900; src: url(/fonts/montserrat-latin-ext.woff2) format('woff2'); unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF; }
@font-face { font-family: 'Montserrat'; font-style: normal; font-weight: 100 900; src: url(/fonts/montserrat-latin.woff2) format('woff2'); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
@font-face { font-family: 'Roboto'; font-style: italic; font-weight: 100 900; src: url(/fonts/roboto-italic-cyrillic-ext.woff2) format('woff2'); unicode-range: U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F; }
@font-face { font-family: 'Roboto'; font-style: italic; font-weight: 100 900; src: url(/fonts/roboto-italic-cyrillic.woff2) format('woff2'); unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116; }
@font-face { font-family: 'Roboto'; font-style: italic; font-weight: 100 900; src: url(/fonts/roboto-italic-greek-ext.woff2) format('woff2'); unicode-range: U+1F00-1FFF; }
@font-face { font-family: 'Roboto'; font-style: italic; font-weight: 100 900; src: url(/fonts/roboto-italic-greek.woff2) format('woff2'); unicode-range: U+0370-0377, U+037A-037F, U+0384-038A, U+038C, U+038E-03A1, U+03A3-03FF; }
@font-face { font-family: 'Roboto'; font-style: italic; font-weight: 100 900; src: url(/fonts/roboto-italic-math.woff2) format('woff2'); unicode-range: U+0302-0303, U+0305, U+0307-0308, U+0310, U+0312, U+0315, U+031A, U+0326-0327, U+032C, U+032F-0330, U+0332-0333, U+0338, U+033A, U+0346, U+034D, U+0391-03A1, U+03A3-03A9, U+03B1-03C9, U+03D1, U+03D5-03D6, U+03F0-03F1, U+03F4-03F5, U+2016-2017, U+2034-2038, U+203C, U+2040, U+2043, U+2047, U+2050, U+2057, U+205F, U+2070-2071, U+2074-208E, U+2090-209C, U+20D0-20DC, U+20E1, U+20E5-20EF, U+2100-2112, U+2114-2115, U+2117-2121, U+2123-214F, U+2190, U+2192, U+2194-21AE, U+21B0-21E5, U+21F1-21F2, U+21F4-2211, U+2213-2214, U+2216-22FF, U+2308-230B, U+2310, U+2319, U+231C-2321, U+2336-237A, U+237C, U+2395, U+239B-23B7, U+23D0, U+23DC-23E1, U+2474-2475, U+25AF, U+25B3, U+25B7, U+25BD, U+25C1, U+25CA, U+25CC, U+25FB, U+266D-266F, U+27C0-27FF, U+2900-2AFF, U+2B0E-2B11, U+2B30-2B4C, U+2BFE, U+3030, U+FF5B, U+FF5D, U+1D400-1D7FF, U+1EE00-1EEFF; }
@font-face { font-family: 'Roboto'; font-style: italic; font-weight: 100 900; src: url(/fonts/roboto-italic-symbols.woff2) format('woff2'); unicode-range: U+0001-000C, U+000E-001F, U+007F-009F, U+20DD-20E0, U+20E2-20E4, U+2150-218F, U+2190, U+2192, U+2194-2199, U+21AF, U+21E6-21F0, U+21F3, U+2218-2219, U+2299, U+22C4-22C6, U+2300-243F, U+2440-244A, U+2460-24FF, U+25A0-27BF, U+2800-28FF, U+2921-2922, U+2981, U+29BF, U+29EB, U+2B00-2BFF, U+4DC0-4DFF, U+FFF9-FFFB, U+10140-1018E, U+10190-1019C, U+101A0, U+101D0-101FD, U+102E0-102FB, U+10E60-10E7E, U+1D2C0-1D2D3, U+1D2E0-1D37F, U+1F000-1F0FF, U+1F100-1F1AD, U+1F1E6-1F1FF, U+1F30D-1F30F, U+1F315, U+1F31C, U+1F31E, U+1F320-1F32C, U+1F336, U+1F378, U+1F37D, U+1F382, U+1F393-1F39F, U+1F3A7-1F3A8, U+1F3AC-1F3AF, U+1F3C2, U+1F3C4-1F3C6, U+1F3CA-1F3CE, U+1F3D4-1F3E0, U+1F3ED, U+1F3F1-1F3F3, U+1F3F5-1F3F7, U+1F408, U+1F415, U+1F41F, U+1F426, U+1F43F, U+1F441-1F442, U+1F444, U+1F446-1F449, U+1F44C-1F44E, U+1F453, U+1F46A, U+1F47D, U+1F4A3, U+1F4B0, U+1F4B3, U+1F4B9, U+1F4BB, U+1F4BF, U+1F4C8-1F4CB, U+1F4D6, U+1F4DA, U+1F4DF, U+1F4E3-1F4E6, U+1F4EA-1F4ED, U+1F4F7, U+1F4F9-1F4FB, U+1F4FD-1F4FE, U+1F503, U+1F507-1F50B, U+1F50D, U+1F512-1F513, U+1F53E-1F54A, U+1F54F-1F5FA, U+1F610, U+1F650-1F67F, U+1F687, U+1F68D, U+1F691, U+1F694, U+1F698, U+1F6AD, U+1F6B2, U+1F6B9-1F6BA, U+1F6BC, U+1F6C6-1F6CF, U+1F6D3-1F6D7, U+1F6E0-1F6EA, U+1F6F0-1F6F3, U+1F6F7-1F6FC, U+1F700-1F7FF, U+1F800-1F80B, U+1F810-1F847, U+1F850-1F859, U+1F860-1F887, U+1F890-1F8AD, U+1F8B0-1F8BB, U+1F8C0-1F8C1, U+1F900-1F90B, U+1F93B, U+1F946, U+1F984, U+1F996, U+1F9E9, U+1FA00-1FA6F, U+1FA70-1FA7C, U+1FA80-1FA89, U+1FA8F-1FAC6, U+1FACE-1FADC, U+1FADF-1FAE9, U+1FAF0-1FAF8, U+1FB00-1FBFF; }
@font-face { font-family: 'Roboto'; font-style: italic; font-weight: 100 900; src: url(/fonts/roboto-italic-vietnamese.woff2) format('woff2'); unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB; }
@font-face { font-family: 'Roboto'; font-style: italic; font-weight: 100 900; src: url(/fonts/roboto-italic-latin-ext.woff2) format('woff2'); unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF; }
@font-face { font-family: 'Roboto'; font-style: italic; font-weight: 100 900; src: url(/fonts/roboto-italic-latin.woff2) format('woff2'); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
@font-face { font-family: 'Roboto'; font-style: normal; font-weight: 100 900; src: url(/fonts/roboto-cyrillic-ext.woff2) format('woff2'); unicode-range: U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F; }
@font-face { font-family: 'Roboto'; font-style: normal; font-weight: 100 900; src: url(/fonts/roboto-cyrillic.woff2) format('woff2'); unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116; }
@font-face { font-family: 'Roboto'; font-style: normal; font-weight: 100 900; src: url(/fonts/roboto-greek-ext.woff2) format('woff2'); unicode-range: U+1F00-1FFF; }
@font-face { font-family: 'Roboto'; font-style: normal; font-weight: 100 900; src: url(/fonts/roboto-greek.woff2) format('woff2'); unicode-range: U+0370-0377, U+037A-037F, U+0384-038A, U+038C, U+038E-03A1, U+03A3-03FF; }
@font-face { font-family: 'Roboto'; font-style: normal; font-weight: 100 900; src: url(/fonts/roboto-math.woff2) format('woff2'); unicode-range: U+0302-0303, U+0305, U+0307-0308, U+0310, U+0312, U+0315, U+031A, U+0326-0327, U+032C, U+032F-0330, U+0332-0333, U+0338, U+033A, U+0346, U+034D, U+0391-03A1, U+03A3-03A9, U+03B1-03C9, U+03D1, U+03D5-03D6, U+03F0-03F1, U+03F4-03F5, U+2016-2017, U+2034-2038, U+203C, U+2040, U+2043, U+2047, U+2050, U+2057, U+205F, U+2070-2071, U+2074-208E, U+2090-209C, U+20D0-20DC, U+20E1, U+20E5-20EF, U+2100-2112, U+2114-2115, U+2117-2121, U+2123-214F, U+2190, U+2192, U+2194-21AE, U+21B0-21E5, U+21F1-21F2, U+21F4-2211, U+2213-2214, U+2216-22FF, U+2308-230B, U+2310, U+2319, U+231C-2321, U+2336-237A, U+237C, U+2395, U+239B-23B7, U+23D0, U+23DC-23E1, U+2474-2475, U+25AF, U+25B3, U+25B7, U+25BD, U+25C1, U+25CA, U+25CC, U+25FB, U+266D-266F, U+27C0-27FF, U+2900-2AFF, U+2B0E-2B11, U+2B30-2B4C, U+2BFE, U+3030, U+FF5B, U+FF5D, U+1D400-1D7FF, U+1EE00-1EEFF; }
@font-face { font-family: 'Roboto'; font-style: normal; font-weight: 100 900; src: url(/fonts/roboto-symbols.woff2) format('woff2'); unicode-range: U+0001-000C, U+000E-001F, U+007F-009F, U+20DD-20E0, U+20E2-20E4, U+2150-218F, U+2190, U+2192, U+2194-2199, U+21AF, U+21E6-21F0, U+21F3, U+2218-2219, U+2299, U+22C4-22C6, U+2300-243F, U+2440-244A, U+2460-24FF, U+25A0-27BF, U+2800-28FF, U+2921-2922, U+2981, U+29BF, U+29EB, U+2B00-2BFF, U+4DC0-4DFF, U+FFF9-FFFB, U+10140-1018E, U+10190-1019C, U+101A0, U+101D0-101FD, U+102E0-102FB, U+10E60-10E7E, U+1D2C0-1D2D3, U+1D2E0-1D37F, U+1F000-1F0FF, U+1F100-1F1AD, U+1F1E6-1F1FF, U+1F30D-1F30F, U+1F315, U+1F31C, U+1F31E, U+1F320-1F32C, U+1F336, U+1F378, U+1F37D, U+1F382, U+1F393-1F39F, U+1F3A7-1F3A8, U+1F3AC-1F3AF, U+1F3C2, U+1F3C4-1F3C6, U+1F3CA-1F3CE, U+1F3D4-1F3E0, U+1F3ED, U+1F3F1-1F3F3, U+1F3F5-1F3F7, U+1F408, U+1F415, U+1F41F, U+1F426, U+1F43F, U+1F441-1F442, U+1F444, U+1F446-1F449, U+1F44C-1F44E, U+1F453, U+1F46A, U+1F47D, U+1F4A3, U+1F4B0, U+1F4B3, U+1F4B9, U+1F4BB, U+1F4BF, U+1F4C8-1F4CB, U+1F4D6, U+1F4DA, U+1F4DF, U+1F4E3-1F4E6, U+1F4EA-1F4ED, U+1F4F7, U+1F4F9-1F4FB, U+1F4FD-1F4FE, U+1F503, U+1F507-1F50B, U+1F50D, U+1F512-1F513, U+1F53E-1F54A, U+1F54F-1F5FA, U+1F610, U+1F650-1F67F, U+1F687, U+1F68D, U+1F691, U+1F694, U+1F698, U+1F6AD, U+1F6B2, U+1F6B9-1F6BA, U+1F6BC, U+1F6C6-1F6CF, U+1F6D3-1F6D7, U+1F6E0-1F6EA, U+1F6F0-1F6F3, U+1F6F7-1F6FC, U+1F700-1F7FF, U+1F800-1F80B, U+1F810-1F847, U+1F850-1F859, U+1F860-1F887, U+1F890-1F8AD, U+1F8B0-1F8BB, U+1F8C0-1F8C1, U+1F900-1F90B, U+1F93B, U+1F946, U+1F984, U+1F996, U+1F9E9, U+1FA00-1FA6F, U+1FA70-1FA7C, U+1FA80-1FA89, U+1FA8F-1FAC6, U+1FACE-1FADC, U+1FADF-1FAE9, U+1FAF0-1FAF8, U+1FB00-1FBFF; }
@font-face { font-family: 'Roboto'; font-style: normal; font-weight: 100 900; src: url(/fonts/roboto-vietnamese.woff2) format('woff2'); unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB; }
@font-face { font-family: 'Roboto'; font-style: normal; font-weight: 100 900; src: url(/fonts/roboto-latin-ext.woff2) format('woff2'); unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF; }
@font-face { font-family: 'Roboto'; font-style: normal; font-weight: 100 900; src: url(/fonts/roboto-latin.woff2) format('woff2'); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }

/* ===================================================================== base */
/* What the legacy theme's reset gave every page that the chrome relies on. Page-level typography
   belongs to each page's own styles; the chrome roots set their fonts explicitly. */
html { -webkit-text-size-adjust: 100%; text-size-adjust: 100%; } /* no automatic text inflation on phones */
body { margin: 0; }

/* ===================================================================== header */

/* the skip link sits before the wrapper, so this one rule is not prefixed */
a.fh-skip {
	position: absolute !important;
	top: -10000em;
	width: 1px;
	height: 1px;
	margin: -1px;
	padding: 0;
	overflow: hidden;
	clip: rect(0, 0, 0, 0);
	clip-path: inset(50%);
	border: 0;
	word-wrap: normal !important;
	word-break: normal !important;
}

.falco-header {
	position: relative;
	clear: both;
	height: 0;
	max-width: none;
	box-sizing: border-box;
	font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif;
	font-size: 20px;
	font-weight: 400;
	line-height: 34px;
	color: #000;
	text-align: left;
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
}
.falco-header *,
.falco-header *::before,
.falco-header *::after { box-sizing: border-box; }
/* element resets, written with :where() so they never outrank the single-class component rules below */
.falco-header :where(ul, li) { margin: 0; padding: 0; list-style: none; }
.falco-header :where(a) { color: inherit; text-decoration: none; box-shadow: none; background-color: transparent; cursor: pointer; }
.falco-header :where(a:hover, a:focus, a:active, a:visited) { text-decoration: none; outline: 0; }
.falco-header :where(img) { display: inline-block; vertical-align: middle; border: 0; border-radius: 0; box-shadow: none; max-width: 100%; height: auto; }
.falco-header :where(button) { margin: 0; overflow: visible; text-transform: none; -webkit-appearance: button; cursor: pointer; }
.falco-header :where(button:focus:not(:focus-visible)) { outline: 0; }
.falco-header :where(strong) { font-weight: 700; }

/* the fixed bar (legacy: section.main-header, position fixed, no background of its own) */
.falco-header .fh-bar {
	position: fixed;
	top: 0;
	left: 0;
	right: 0;
	z-index: 999;
	margin: 0;
	padding: 0;
	background: transparent;
}

/* the white bar (legacy: the section's .elementor-container) */
.falco-header .fh-inner {
	display: flex;
	position: relative;
	justify-content: flex-end;
	width: 100%;
	max-width: 100%;
	margin: 0 auto 35px;
	padding: 0;
	background: #fff;
	border-radius: 0;
	box-shadow: 0 5px 26.68px 2.32px rgba(12, 77, 162, 0.07);
}

/* Elementor column + widget-wrap pair */
.falco-header .fh-col { display: flex; position: relative; min-height: 1px; }
.falco-header .fh-wrap { display: flex; position: relative; flex-wrap: wrap; align-items: center; align-content: center; width: 100%; padding: 0; }

/* --- logo column --- */
.falco-header .fh-col-logo { width: 17%; }
.falco-header .fh-logo { display: block; position: relative; width: 100%; padding: 0 0 0 30px; text-align: start; }
.falco-header .fh-logo a { display: inline-block; }
.falco-header .fh-logo img { width: 193px; max-width: 193px; height: 36px; }

/* --- menu column: nav + (desktop) call/contact strip --- */
.falco-header .fh-col-menu { width: 83%; }
.falco-header .fh-menu-row { display: flex; position: relative; justify-content: flex-end; width: 100%; margin: 0 auto; padding: 0; }
.falco-header .fh-col-nav { width: 63.73%; }
.falco-header .fh-col-nav > .fh-wrap { justify-content: flex-end; }
.falco-header .fh-nav { display: block; position: relative; width: 100%; }

.falco-header .fh-burger, .falco-header .fh-close, .falco-header .fh-identity, .falco-header .fh-overlay { display: none; }

.falco-header .fh-menu {
	position: relative;
	z-index: 1000;
	width: 100%;
	height: 78px;
	background: transparent;
	border-radius: 0;
}
.falco-header .fh-menu-list {
	display: flex;
	flex-wrap: wrap;
	justify-content: flex-end;
	height: 100%;
}
.falco-header .fh-menu-list > li { display: flex; position: relative; flex-wrap: wrap; align-items: center; }
.falco-header .fh-menu-list > li > a {
	display: flex;
	position: relative;
	align-items: center;
	height: auto;
	padding: 0 15px;
	font-family: "Montserrat", sans-serif;
	font-size: 16px;
	font-weight: 500;
	line-height: normal;
	letter-spacing: normal;
	text-transform: none;
	color: #000;
	background-color: transparent;
	transition: all .4s ease;
}
.falco-header .fh-menu-list > li > a:hover,
.falco-header .fh-menu-list > li > a:focus,
.falco-header .fh-menu-list > li > a:active,
.falco-header .fh-menu-list > li:hover > a,
.falco-header .fh-menu-list > li.is-current > a,
.falco-header .fh-menu-list > li.is-ancestor > a { color: #800200; }

/* submenu indicator: the one icon-font glyph, inside a flex link so the float has no effect */
.falco-header .fh-arrow {
	display: block;
	position: relative;
	float: right;
	margin: 0 6px;
	font-size: 11px;
	font-weight: 900;
	font-style: normal;
	line-height: normal;
	color: #101010;
	fill: #101010;
	cursor: pointer;
}
.falco-header .fh-arrow::before {
	content: "\e994";
	font-family: 'falco-icons' !important;
	font-style: normal;
	font-weight: 400;
	font-variant: normal;
	text-transform: none;
	line-height: 1;
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
}
.falco-header .fh-menu-list > li > a:hover .fh-arrow,
.falco-header .fh-menu-list > li > a:focus .fh-arrow,
.falco-header .fh-menu-list > li > a:active .fh-arrow,
.falco-header .fh-menu-list > li:hover > a .fh-arrow,
.falco-header .fh-menu-list > li.is-ancestor > a .fh-arrow { color: #800200; }

/* dropdown panel (desktop: absolute, revealed on hover). Prefixed to outrank the ul/li reset above. */
.falco-header .fh-sub {
	display: block;
	position: absolute;
	top: 100%;
	left: 0;
	z-index: 999;
	min-width: 220px;
	max-height: none;
	margin: 0;
	padding: 15px 0;
	border: 1px solid #dadada;
	border-radius: 0;
	background-color: #f4f4f4;
	box-shadow: 0 10px 30px 0 rgba(45, 45, 45, 0.2);
	opacity: 0;
	visibility: hidden;
	transform: translateY(-10px);
	pointer-events: none;
	transition: transform .4s ease;
}
.falco-header .fh-menu-list > li:hover > .fh-sub,
.falco-header .fh-sub.is-open {
	opacity: 1;
	visibility: visible;
	transform: translateY(0);
	pointer-events: auto;
}
.falco-header .fh-sub > li { display: flex; position: relative; flex-wrap: wrap; align-items: center; }
.falco-header .fh-sub > li > a {
	display: flex;
	position: relative;
	align-items: center;
	justify-content: space-between;
	padding: 15px;
	font-family: "Montserrat", sans-serif;
	font-size: 14px;
	font-weight: 500;
	line-height: normal;
	color: #000;
	transition: all .3s;
}
.falco-header .fh-sub > li > a:hover { color: #0d3a4f; background-color: rgba(255, 255, 255, 0.5); }
.falco-header .fh-sub > li.is-current > a { color: #800200 !important; }

/* --- desktop strip: call icon, phone, CONTACT US --- */
.falco-header .fh-col-side { display: block; width: 36.095%; }
.falco-header .fh-side {
	display: block;
	position: relative;
	width: 100%;
	border: solid #f2f2f2;
	border-width: 0 0 0 2px;
	border-radius: 0;
}
.falco-header .fh-side-row { display: flex; position: relative; justify-content: flex-end; max-width: 1500px; margin: 0 auto; padding: 0; }
.falco-header .fh-side-icon { width: 11%; }
.falco-header .fh-img { display: block; position: relative; width: 100%; text-align: center; }
.falco-header .fh-img img { width: 34px; max-width: 34px; height: 38px; }
.falco-header .fh-side-call { width: 40.777%; }
.falco-header .fh-call {
	display: block;
	position: relative;
	width: 100%;
	font-family: "Montserrat", sans-serif;
	font-size: 14px;
	font-weight: 700;
	line-height: 1.7;
	color: #081a3f;
	text-align: left;
}
.falco-header .fh-call-label { display: block; color: #4f5d75; }
.falco-header .fh-call a { display: inline; color: #000; }
.falco-header .fh-side-cta { width: 47.555%; }
.falco-header .fh-side-cta > .fh-wrap { justify-content: flex-end; align-items: normal; align-content: space-evenly; }
.falco-header .fh-cta-widget { display: block; position: relative; width: 100%; }
.falco-header .fh-cta {
	display: inline-block;
	width: 100%;
	padding: 30px 10px;
	border-radius: 0;
	background-color: #0070c0;
	color: #fff;
	fill: #fff;
	font-family: "Montserrat", sans-serif;
	font-size: 18px;
	font-weight: 700;
	line-height: 1;
	text-align: center;
	transition: all .3s;
}
.falco-header .fh-cta:hover, .falco-header .fh-cta:focus, .falco-header .fh-cta:visited { color: #fff; }
.falco-header .fh-cta-inner { display: flex; flex-direction: row; justify-content: center; gap: 5px; }
.falco-header .fh-cta-text { display: inline-block; text-decoration: inherit; }

/* ---------------------------------------------------------------- <= 1320px */
@media (max-width: 1320px) {
	.falco-header .fh-bar { padding-top: 0; }
	.falco-header .fh-inner { max-width: 1620px; padding: 8px 15px; }
	.falco-header .fh-logo { padding-left: 8px; }
	.falco-header .fh-col-nav { width: 100%; }
	.falco-header .fh-col-side { display: none; }
}

/* ---------------------------------------------------------------- <= 1024px: offcanvas menu */
@media (max-width: 1024px) {
	.falco-header .fh-inner { flex-wrap: wrap; justify-content: flex-start; }
	.falco-header .fh-col-logo { width: calc(100% - 45px); padding-right: 15px; }
	.falco-header .fh-logo { padding-left: 0; }
	.falco-header .fh-col-menu { width: auto; }
	.falco-header .fh-col-menu > .fh-wrap { justify-content: center; }
	.falco-header .fh-menu-row { flex-wrap: wrap; justify-content: flex-start; }
	.falco-header .fh-col-nav { width: 100%; right: 0; }
	.falco-header .fh-col-nav > .fh-wrap { justify-content: center; }
	.falco-header .fh-nav { width: auto; }

	.falco-header .fh-burger {
		display: block;
		position: relative;
		z-index: 10;
		width: 45px;
		padding: 8px;
		border: 1px solid rgba(0, 0, 0, 0.2);
		border-radius: 3px;
		background-color: #002062 !important; /* the theme's button:not(:hover):not(:active):not(.has-background) rule (0,3,1) paints buttons black otherwise */
		color: #fff;
		font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif;
		font-size: 20px;
		font-weight: 500;
		line-height: 30px;
		text-align: center;
		transition: all .4s ease-in;
	}
	.falco-header .fh-burger span { display: block; width: 100%; height: 2px; margin-bottom: 4px; background-color: #fff; }
	.falco-header .fh-burger span:last-child { margin-bottom: 0; }
	.falco-header .fh-burger:hover span { background-color: #fff; }
	/* focus ring as on the live site (twentytwentyone's button:focus rule) */
	.falco-header .fh-burger:focus,
	.falco-header .fh-close:focus { outline: 2px dotted currentColor; outline-offset: -6px; }

	.falco-header .fh-menu {
		display: flex;
		position: fixed;
		top: 0;
		left: -100vw;
		z-index: 1000;
		flex-direction: column-reverse;
		justify-content: flex-end;
		width: 100%;
		max-width: 350px;
		height: 100vh;
		padding: 0 0 10px;
		background-color: #fff;
		overflow-x: hidden;
		overflow-y: auto;
		box-shadow: 0 10px 30px 0 rgba(255, 165, 0, 0);
		transition: left .6s;
	}
	.falco-header .fh-menu.is-open { left: 0; }
	.falco-header .fh-menu-list { display: block; height: auto; width: 100%; overflow-y: auto; }
	.falco-header .fh-menu-list > li { width: 100%; }
	.falco-header .fh-menu-list > li > a { width: 100%; padding: 10px 15px; color: #000; }
	.falco-header .fh-menu-list > li > a:hover,
	.falco-header .fh-menu-list > li:hover > a { color: #000; }
	.falco-header .fh-menu-list > li > a:focus,
	.falco-header .fh-menu-list > li > a:active,
	.falco-header .fh-menu-list > li.is-current > a { color: #800200; }
	.falco-header .fh-arrow {
		top: 1px;
		order: 2;
		margin-left: auto;
		margin-right: 6px;
		padding: 0 8px;
		border: 0;
		border-radius: 30px;
		color: #000;
	}
	.falco-header .fh-menu-list > li.is-ancestor > a { color: #000; }
	.falco-header .fh-menu-list > li > a:hover .fh-arrow,
	.falco-header .fh-menu-list > li:hover > a .fh-arrow,
	.falco-header .fh-menu-list > li > a:focus .fh-arrow,
	.falco-header .fh-menu-list > li > a:active .fh-arrow,
	.falco-header .fh-menu-list > li.is-current > a .fh-arrow,
	.falco-header .fh-menu-list > li.is-ancestor > a .fh-arrow { color: #800200; }

	.falco-header .fh-sub {
		display: none;
		position: relative;
		top: auto;
		left: auto;
		width: 100%;
		max-height: 0;
		border: 0;
		box-shadow: none;
		transform: none;
		pointer-events: auto;
		transition: none;
	}
	.falco-header .fh-menu-list > li:hover > .fh-sub { display: none; opacity: 0; visibility: hidden; }
	.falco-header .fh-sub.is-open,
	.falco-header .fh-menu-list > li:hover > .fh-sub.is-open {
		display: block;
		max-height: 2500px;
		opacity: 1;
		visibility: visible;
		transition: max-height 5s ease-out;
	}
	.falco-header .fh-sub > li { width: 100%; }
	.falco-header .fh-sub > li > a { width: 100%; padding: 15px; font-size: 14px; color: #000; }
	.falco-header .fh-sub > li > a:hover { color: #000; background-color: rgba(255, 255, 255, 0.5); }

	.falco-header .fh-identity { display: block; position: relative; z-index: 5; width: 100%; padding: 10px 0; }
	.falco-header .fh-identity::after { content: ""; display: table; clear: both; }
	.falco-header .fh-close {
		display: block;
		position: relative;
		z-index: 10;
		float: right;
		width: 45px;
		margin: 12px;
		padding: 8px;
		border: 1px solid rgba(0, 0, 0, 0.5);
		border-radius: 3px;
		background-color: #fff !important; /* same theme rule as the hamburger */
		color: #002062 !important; /* live: navy X; twentytwentyone's button:not(:hover) rule (0,3,1) turned it white */
		font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif;
		font-size: 20px;
		font-weight: 500;
		line-height: 30px;
		text-align: center;
		transition: all .4s ease-in;
	}
	.falco-header .fh-overlay {
		display: block;
		position: fixed;
		top: 0;
		left: -100%;
		z-index: 14;
		width: 100%;
		height: 100%;
		padding-bottom: 10px;
		background-color: rgba(51, 51, 51, 0.5);
		opacity: 1;
		visibility: visible;
		transition: all .6s cubic-bezier(.6, .1, .68, .53) .4s;
	}
	.falco-header .fh-overlay.is-open { left: 0; transition: all .6s cubic-bezier(.22, .61, .24, 1) 0s; }
}

/* ---------------------------------------------------------------- <= 767px */
@media (max-width: 767px) {
	.falco-header .fh-logo img { width: 160px; }
}

/* ===================================================================== footer */
/*
  Legacy: div.elementor-location-footer > section (background #031E56) > .elementor-container (max-width 1500,
  centred; child theme index.css adds padding 0 15px at <= 1320px) > column/widget wrappers (all zero-padding
  here: index.css zeroes Elementor's default 10px) > p (Roboto 20px/34px #7A7A7A, centred, no margin).
  Values from reference/inventory/style-footer-about.txt and a matched-rules probe (2026-09-29).
  On the 17 WooCommerce product pages the legacy footer was 79px tall (page CSS leaking in: `.woocommerce section`
  padding, `p{margin:10px 0}` from post-2527.css, `.single-product p` 16px Montserrat inline); the rewrite renders
  the template's own 34px bar everywhere, and the class-prefixed selectors below (0,2,0) outrank those leaks.
*/
.falco-footer {
	display: block;
	position: relative;
	clear: both;
	max-width: none;
	margin: 0;
	padding: 0;
	box-sizing: border-box;
	font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif;
	font-size: 20px;
	font-weight: 400;
	line-height: 34px;
	color: #000;
	text-align: left;
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
}
.falco-footer *,
.falco-footer *::before,
.falco-footer *::after { box-sizing: border-box; }
/* legacy .elementor-location-footer:before clearfix */
.falco-footer::before { content: ""; display: table; clear: both; }

/* the navy bar (legacy: the template's one section) */
.falco-footer .ff-bar {
	position: relative;
	margin: 0;
	padding: 0;
	background-color: #031E56;
}

/* legacy: .elementor-container, boxed at the kit's 1500px */
.falco-footer .ff-inner {
	position: relative;
	width: 100%;
	max-width: 1500px;
	margin: 0 auto;
	padding: 0;
}

.falco-footer .ff-copy {
	display: block;
	width: 100%;
	margin: 0;
	padding: 0;
	color: #7A7A7A;
	font-family: Roboto, sans-serif;
	font-size: 20px;
	font-weight: 400;
	font-style: normal;
	line-height: 34px;
	letter-spacing: normal;
	text-align: center;
	text-transform: none;
}

/* ---------------------------------------------------------------- <= 1320px */
@media (max-width: 1320px) {
	/* child theme index.css: .elementor-section .elementor-container { padding: 0 15px } */
	.falco-footer .ff-inner { padding: 0 15px; }
}

/* ===================================================================== contact */
/*
  Legacy: ekit template 1930 = section#contactus (white card holding the sitewide form + a blue info column) and a
  navy band (.theme-footer.footer_section: "Falmouth Products" text + Quick Links). Values from
  reference/inventory/style-contact-about.txt, post-1930.css, child theme index.css/main.css, the site-wide
  inline <style> in head-common.html ("body .form-section ..."), and CDP matched-rules probes (2026-09-29).
  The form markup inside .fc-form is CF7's (kept for forms.js); CF7's styles.css still styles its
  spinner, response box and not-valid tips. Element resets use :where() so they never outrank components.
*/
.falco-contact {
	position: relative;
	clear: both;
	max-width: none;
	box-sizing: border-box;
	font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif;
	font-size: 20px;
	font-weight: 400;
	line-height: 34px;
	color: #000;
	text-align: left;
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
}
.falco-contact *,
.falco-contact *::before,
.falco-contact *::after { box-sizing: border-box; }
.falco-contact :where(div, nav, figure) { max-width: none; }
.falco-contact :where(p, h2, ul, li, figure, form) { margin: 0; padding: 0; }
.falco-contact :where(p) { line-height: 1.7; }
.falco-contact :where(ul, li) { list-style: none; }
.falco-contact :where(a) { color: inherit; text-decoration: none; box-shadow: none; background-color: transparent; cursor: pointer; }
.falco-contact :where(img) { display: block; vertical-align: middle; border: 0; border-radius: 0; box-shadow: none; }
.falco-contact :where(b) { font-weight: 700; }

/* --- the white card --- */
.falco-contact .fc-contact { position: relative; margin: 0; padding: 0; }
.falco-contact .fc-contact-inner {
	display: flex;
	position: relative;
	width: 100%;
	max-width: 1240px;
	margin: 0 auto;
	padding: 0;
}
/* legacy: column .form-section (position:relative; bottom:-140px, so it sits 140px low and overlaps the band)
   plus its widget-wrap (white, shadow, padding), merged into one box */
.falco-contact .fc-card {
	display: flex;
	flex-wrap: wrap;
	align-content: flex-start;
	position: relative;
	top: 140px;
	z-index: 9;
	width: 100%;
	min-height: 1px;
	padding: 70px 50px 80px;
	background-color: #fff;
	box-shadow: 0 15px 104px 0 rgba(12, 77, 162, 0.1);
	transition: background .3s, border .3s, border-radius .3s, box-shadow .3s;
}
.falco-contact .fc-kicker {
	width: 100%;
	margin: 0 0 7px; /* legacy: -13px on the heading container + the 20px widget gap */
	color: #000;
	font-family: Montserrat, sans-serif;
	font-size: 20px;
	font-weight: 400;
	line-height: 19px;
}
.falco-contact .fc-title {
	width: 100%;
	margin: 0 0 20px;
	color: #002062;
	font-family: Montserrat, sans-serif;
	font-size: 55px;
	font-weight: 700;
	line-height: 1;
}

/* inner row: form column 60% + info column 40% (legacy inner section, boxed at 1240) */
.falco-contact .fc-row { display: flex; position: relative; width: 100%; max-width: 1240px; margin: 0 auto; }
.falco-contact .fc-form { position: relative; width: 60%; min-height: 1px; padding: 0 50px 0 0; }

/* --- the form (CF7 markup; the legacy rules were keyed on body .form-section) --- */
/* fonts are explicit (not inherited) throughout the form: page CSS such as the product pages'
   .single-product p { font-family: Montserrat; font-size: 16px } must not reach the chrome */
.falco-contact .fc-form p { margin: 0; color: #000; font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif; font-size: 20px; font-weight: 400; line-height: 1.7; }
.falco-contact .fc-form .row { margin: 0 -25px; }
.falco-contact .fc-form .cf7-column { float: left; width: 50%; }
.falco-contact .fc-form .wpcf7-form-control-wrap { display: inline-block; position: relative; width: 100%; padding: 0 25px; }
.falco-contact .fc-form input.wpcf7-form-control,
.falco-contact .fc-form textarea.wpcf7-form-control {
	display: inline-block;
	max-width: 100%;
	height: 60px;
	margin: 0 2px 40px;
	padding: 10px !important;
	border: 1px solid #cdcdcd !important;
	border-radius: 0;
	background-color: #fff;
	color: #28303d;
	font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif;
	font-size: 19px;
	font-weight: 500;
	line-height: 1.7;
	outline: none;
	transition: all .3s ease-in-out;
}
.falco-contact .fc-form textarea.wpcf7-form-control {
	width: 100%;
	height: 150px;
	margin: 0 0 40px;
	overflow: auto;
	color: #000;
	line-height: 1.15;
}
/* focus ring (Isaac 2026-10-07; legacy index.css took it away: input:focus, textarea:focus { outline 0 }): a navy
   line over the field's border; on the submit button, around it. :focus-visible = keyboard focus (and any focused
   text field: browsers show it on a click there too). The calculator forms have the same (calculators.css). */
.falco-contact .fc-form input.wpcf7-form-control:focus-visible,
.falco-contact .fc-form textarea.wpcf7-form-control:focus-visible { outline: 2px solid #002062; outline-offset: -1px; }
.falco-contact .fc-form input.wpcf7-submit:focus-visible { outline: 2px solid #002062; outline-offset: 3px; }
/* the submit button: btn.png arrow background. The paint is !important because twentytwentyone's
   input[type=submit]:not(:hover):not(:active):not(.has-background) is (0,4,1). */
.falco-contact .fc-form input.wpcf7-submit {
	width: auto;
	height: auto;
	margin: 0 0 40px;
	padding: 16px 70px 16px 36px !important;
	border: 0 !important;
	border-radius: 0;
	background: transparent url(/images/btn.png) no-repeat !important;
	color: #fff;
	font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif;
	font-size: 19px;
	font-weight: 500;
	line-height: 1.5;
	text-align: center;
	text-decoration: none;
	cursor: pointer;
	-webkit-appearance: button;
}
/* legacy: twentytwentyone's :active { color: inherit } (black text), child index.css :hover { color #fff !important } */
.falco-contact .fc-form input.wpcf7-submit:active { color: inherit; }
.falco-contact .fc-form input.wpcf7-submit:hover { color: #fff !important; opacity: 0.9; }

/* --- the blue info column --- */
.falco-contact .fc-info {
	display: flex;
	flex-wrap: wrap;
	align-content: flex-start;
	position: relative;
	width: 40%;
	min-height: 1px;
	padding: 53px 0 0 36px;
	border-radius: 20px;
	background-image: url(/images/contactus_background_2-1.webp);
	background-repeat: no-repeat;
	transition: background .3s, border .3s, border-radius .3s, box-shadow .3s;
}
.falco-contact .fc-info-overlay {
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	border-radius: 20px;
	background-color: #0A66C0;
	opacity: 0.9;
	transition: background .3s, border-radius .3s, opacity .3s;
}
.falco-contact .fc-box {
	display: flex;
	position: relative;
	width: 100%;
	margin: 0 0 41px;
	align-items: flex-start;
	text-align: start;
}
.falco-contact .fc-box:last-child { margin-bottom: 0; }
.falco-contact .fc-box-img { display: block; width: 30%; margin: 0 30px 0 0; }
.falco-contact .fc-box-img img { width: 100%; height: 100%; max-width: 71px; line-height: 0; transition-duration: .3s; }
.falco-contact .fc-box-text { width: 100%; }
.falco-contact .fc-box-text p {
	margin: 0;
	color: #EBEBEB;
	font-family: Montserrat, sans-serif;
	font-size: 16px;
	font-weight: 500;
	line-height: 1.7;
}
.falco-contact .fc-box-text a { color: #fff; }

/* --- the navy band --- */
.falco-contact .fc-band {
	position: relative;
	margin: 0;
	padding: 240px 0 100px;
	background-color: #031E56;
	background-image: url(/images/footer_background.webp);
	transition: background .3s, border .3s, border-radius .3s, box-shadow .3s;
}
.falco-contact .fc-band-overlay {
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	background-color: #031E56;
	opacity: 0.5;
	transition: background .3s, border-radius .3s, opacity .3s;
}
.falco-contact .fc-band-inner { position: relative; width: 100%; max-width: 1260px; margin: 0 auto; padding: 0; }
.falco-contact .fc-band-row { display: flex; position: relative; width: 100%; padding: 0 15px; }
.falco-contact .fc-about { position: relative; width: 66.666%; min-height: 1px; padding: 0 50px 0 0; }
.falco-contact .fc-nav { position: relative; width: 33.333%; min-height: 1px; padding: 0; }
.falco-contact .fc-band-title {
	margin: 0 0 20px;
	color: #fff;
	font-family: Montserrat, sans-serif;
	font-size: 24px;
	font-weight: 600;
	line-height: 1;
	text-align: start;
}
.falco-contact .fc-about-text {
	margin: 0 0 20px;
	color: #fff;
	font-family: Montserrat, sans-serif;
	font-size: 16px;
	font-weight: 400;
	line-height: 34px;
}
.falco-contact .fc-about-text:last-child { margin-bottom: 0; }

/* Quick Links (legacy: elementor-pro nav-menu, horizontal, "underline" pointer restyled by main.css) */
.falco-contact .fc-links { display: flex; flex-wrap: wrap; position: relative; z-index: 2; line-height: normal; }
.falco-contact .fc-links li { display: flex; position: relative; }
.falco-contact .fc-links a {
	display: flex;
	position: relative;
	flex-grow: 1;
	align-items: center;
	padding: 13px 20px 13px 0;
	color: #fff;
	font-family: Montserrat, sans-serif;
	font-size: 16px;
	font-weight: 500;
	line-height: 20px;
	white-space: nowrap;
	transition: .4s;
}
.falco-contact .fc-links a:hover,
.falco-contact .fc-links a:focus { color: #0070C0; }
/* the current page: white, indented, with a small skewed bar */
.falco-contact .fc-links a.is-current { padding-left: 25px; color: #fff; }
.falco-contact .fc-links a::after {
	content: "";
	display: block;
	position: absolute;
	top: 20px;
	left: 0;
	z-index: 2;
	width: 13px;
	height: 5px;
	background-color: #fff;
	opacity: 0;
	transform: skew(-20deg);
	transition: .3s cubic-bezier(.58, .3, .005, 1);
}
.falco-contact .fc-links a.is-current::after { opacity: 1; }

/* ---------------------------------------------------------------- <= 1320px */
@media (max-width: 1320px) {
	/* child theme index.css: .elementor-section .elementor-container { padding: 0 15px } (outer containers only) */
	.falco-contact .fc-contact-inner,
	.falco-contact .fc-band-inner { padding: 0 15px; }
}

/* ---------------------------------------------------------------- <= 1024px */
@media (max-width: 1024px) {
	.falco-contact .fc-contact-inner,
	.falco-contact .fc-row,
	.falco-contact .fc-band-row { flex-wrap: wrap; }
	.falco-contact .fc-card { top: 0; padding: 70px 10px 80px; }
	.falco-contact .fc-title { font-size: 36px; }
	.falco-contact .fc-form { width: 100%; padding: 0; }
	.falco-contact .fc-form input.wpcf7-form-control,
	.falco-contact .fc-form textarea.wpcf7-form-control { width: 100%; margin-left: 0; margin-right: 0; }
	.falco-contact .fc-form input.wpcf7-submit { width: auto; }
	.falco-contact .fc-info {
		width: 100%;
		padding: 40px;
		border-radius: 0;
		background-position: center center;
		background-size: cover;
	}
	.falco-contact .fc-info-overlay { border-radius: 0; }
	.falco-contact .fc-band { padding: 50px 0; }
	.falco-contact .fc-about,
	.falco-contact .fc-nav { width: 50%; }
}

/* ---------------------------------------------------------------- <= 767px */
@media (max-width: 767px) {
	.falco-contact .fc-form .row { margin: 0; }
	.falco-contact .fc-form .cf7-column { width: 100%; }
	.falco-contact .fc-form .wpcf7-form-control-wrap { padding: 0; }
	/* image boxes stack, centred; legacy Elementor figure{margin:0} outranked the template margin-bottom */
	.falco-contact .fc-box { display: block; text-align: center; }
	.falco-contact .fc-box-img { display: inline-block; margin: 0; }
	.falco-contact .fc-about,
	.falco-contact .fc-nav { width: 100%; }
	.falco-contact .fc-nav { padding: 40px 0 0; }
}

/* ---------------------------------------------------------------- <= 575px */
@media (max-width: 575.98px) {
	.falco-contact .fc-band { padding: 30px 0; }
	.falco-contact .fc-box-text { margin-top: 10px; }
}

/* ===================================================================== forms (all pages) */
/* The Turnstile slot sits above each form's submit button. No margin of its own: an invisible-type
   widget still injects children, so :empty alone cannot hide spacing; the widget's intrinsic height
   is the only space it takes. */
.wpcf7-form .cf-turnstile { display: flex; justify-content: center; margin: 0; }
.wpcf7-form .cf-turnstile:empty { display: none; }

/* Contact Form 7's stylesheet, verbatim (plugins/contact-form-7/includes/css/styles.css): the forms keep
   CF7's markup and state classes (public/js/forms.js sets them), so these rules hide the honeypot fieldset
   and screen-reader text and style the spinner, the response box per state and the validation tips. */
.wpcf7 .screen-reader-response {
	position: absolute;
	overflow: hidden;
	clip: rect(1px, 1px, 1px, 1px);
	clip-path: inset(50%);
	height: 1px;
	width: 1px;
	margin: -1px;
	padding: 0;
	border: 0;
	word-wrap: normal !important;
	word-break: normal !important;
}

.wpcf7 .hidden-fields-container {
	display: none;
}

.wpcf7 form .wpcf7-response-output {
	margin: 2em 0.5em 1em;
	padding: 0.2em 1em;
	border: 2px solid #00a0d2; /* Blue */
}

.wpcf7 form.init .wpcf7-response-output,
.wpcf7 form.resetting .wpcf7-response-output,
.wpcf7 form.submitting .wpcf7-response-output {
	display: none;
}

.wpcf7 form.sent .wpcf7-response-output {
	border-color: #46b450; /* Green */
}

.wpcf7 form.failed .wpcf7-response-output,
.wpcf7 form.aborted .wpcf7-response-output {
	border-color: #dc3232; /* Red */
}

.wpcf7 form.spam .wpcf7-response-output {
	border-color: #f56e28; /* Orange */
}

.wpcf7 form.invalid .wpcf7-response-output,
.wpcf7 form.unaccepted .wpcf7-response-output,
.wpcf7 form.payment-required .wpcf7-response-output {
	border-color: #ffb900; /* Yellow */
}

.wpcf7-form-control-wrap {
	position: relative;
}

.wpcf7-not-valid-tip {
	color: #dc3232; /* Red */
	font-size: 1em;
	font-weight: normal;
	display: block;
}

.use-floating-validation-tip .wpcf7-not-valid-tip {
	position: relative;
	top: -2ex;
	left: 1em;
	z-index: 100;
	border: 1px solid #dc3232;
	background: #fff;
	padding: .2em .8em;
	width: 24em;
}

.wpcf7-list-item {
	display: inline-block;
	margin: 0 0 0 1em;
}

.wpcf7-list-item-label::before,
.wpcf7-list-item-label::after {
	content: " ";
}

.wpcf7-spinner {
	visibility: hidden;
	display: inline-block;
	background-color: #23282d; /* Dark Gray 800 */
	opacity: 0.75;
	width: 24px;
	height: 24px;
	border: none;
	border-radius: 100%;
	padding: 0;
	margin: 0 24px;
	position: relative;
}

form.submitting .wpcf7-spinner {
	visibility: visible;
}

.wpcf7-spinner::before {
	content: '';
	position: absolute;
	background-color: #fbfbfc; /* Light Gray 100 */
	top: 4px;
	left: 4px;
	width: 6px;
	height: 6px;
	border: none;
	border-radius: 100%;
	transform-origin: 8px 8px;
	animation-name: spin;
	animation-duration: 1000ms;
	animation-timing-function: linear;
	animation-iteration-count: infinite;
}

@media (prefers-reduced-motion: reduce) {
	.wpcf7-spinner::before {
		animation-name: blink;
		animation-duration: 2000ms;
	}
}

@keyframes spin {
	from {
		transform: rotate(0deg);
	}

	to {
		transform: rotate(360deg);
	}
}

@keyframes blink {
	from {
		opacity: 0;
	}

	50% {
		opacity: 1;
	}

	to {
		opacity: 0;
	}
}

.wpcf7 [inert] {
	opacity: 0.5;
}

.wpcf7 input[type="file"] {
	cursor: pointer;
}

.wpcf7 input[type="file"]:disabled {
	cursor: default;
}

.wpcf7 .wpcf7-submit:disabled {
	cursor: not-allowed;
}

.wpcf7 input[type="url"],
.wpcf7 input[type="email"],
.wpcf7 input[type="tel"] {
	direction: ltr;
}

.wpcf7-reflection > output {
	display: list-item;
	list-style: none;
}

.wpcf7-reflection > output[hidden] {
	display: none;
}

/* ===================================================================== page content (hand-written pages) */
/*
  Shared building blocks for rewritten pages, all scoped under <main class="fp-page"> so they never touch the generated pages: the design of the live site, built plainly. One container
  (1240px + 15px gutters), one section rhythm (50px), one heading and text style. Old-stack quirks are not
  reproduced (e.g. the 10px column padding LiteSpeed's CSS ordering gives some columns on live).
*/
:root {
	--header-offset: 113px; /* the fixed header's footprint: 78px bar + 35px shadow space */
	--container: 1240px;
	--gutter: 15px;
	--navy: #002062;
}
@media (max-width: 1320px) { :root { --header-offset: 129px; } }
@media (max-width: 1024px) { :root { --header-offset: 89px; } }

.fp-page {
	display: block;
	padding-top: var(--header-offset);
	color: #000;
	font-family: Montserrat, sans-serif;
	font-size: 16px;
	font-weight: 400;
	line-height: 1.7;
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
}
.fp-page *, .fp-page *::before, .fp-page *::after { box-sizing: border-box; }
.fp-page :where(h1, h2, h3, p, figure) { margin: 0; }
.fp-page :where(img) { max-width: 100%; height: auto; vertical-align: middle; }

.fp-page .container { width: 100%; max-width: calc(var(--container) + 2 * var(--gutter)); margin: 0 auto; padding: 0 var(--gutter); }
.fp-page .section { padding: 50px 0; }

.fp-page .heading {
	margin: 0 0 20px;
	color: var(--navy);
	font-family: Montserrat, sans-serif;
	font-size: 45px;
	font-weight: 700;
	line-height: 1;
}
.fp-page .text { overflow-wrap: break-word; } /* a word wider than the column (an e-mail address on a 320px phone) wraps */
.fp-page .text > * + * { margin-top: 1.7em; } /* a blank line between paragraphs (and lists, after their list) */
.fp-page .text ul { margin: 0; padding-left: 40px; } /* a list follows the line that introduces it */
.fp-page .text a { color: var(--navy); font-weight: 600; text-decoration: none; }

/* --- page banner: background image with the page title --- */
.fp-page .banner {
	padding: 88px 0 40px;
	background-color: var(--navy);
	background-position: center;
	background-repeat: no-repeat;
	background-size: cover;
}
.fp-page .banner-title { color: #fff; font-family: Montserrat, sans-serif; font-size: 55px; font-weight: 700; line-height: 1; overflow-wrap: break-word; hyphens: auto; } /* a word wider than the screen ("Thermocoupleposition" at 390px) breaks instead of running off the edge (live clips it) */

/* --- two columns: image | text, vertically centred --- */
.fp-page .split { display: grid; grid-template-columns: 1fr 1fr; align-items: center; }
.fp-page .split-text p { max-width: 567px; line-height: 35px; }
.fp-page .split-text p + p { margin-top: 35px; }

/* --- gallery: grid of 3:2 thumbnails, each opening the lightbox --- */
.fp-page .gallery { display: grid; grid-template-columns: repeat(3, 1fr); gap: 10px; }
.fp-page .gallery-item { position: relative; display: block; overflow: hidden; aspect-ratio: 3 / 2; cursor: pointer; }
.fp-page .gallery-item img { display: block; width: 100%; height: 100%; object-fit: cover; }
.fp-page .gallery-item::after { content: ""; position: absolute; inset: 0; background-color: rgba(0, 0, 0, 0); transition: background-color .8s; }
.fp-page .gallery-item:hover::after, .fp-page .gallery-item:focus-visible::after { background-color: rgba(0, 0, 0, .5); }

/* --- product pages (src/layouts/Product.astro) --- */
/* Catalog pages: image(s) | headline block, BABA note + summary, CONTACT US, Resources | Specifications.
   Plain pages: image(s) | a wide text column. Not reproduced from WooCommerce/Elementor: the summary's missing
   container (its text ran to the window edge), the theme's 128px margin under the product image, and the
   FontAwesome list icon that never loaded (drawn here as the chevron it was meant to be). */
.fp-page .subheading { margin: 0 0 20px; color: var(--navy); font-size: 25px; font-weight: 700; line-height: 1; }
.fp-page .button {
	display: inline-block;
	padding: 15px;
	border-radius: 3px;
	background-color: #0070c0;
	color: #fff;
	font-family: Roboto, sans-serif;
	font-size: 16px;
	font-weight: 500;
	line-height: 1;
	text-decoration: none;
	text-transform: uppercase;
}
.fp-page :is(.product, .product-summary, .product-details) a:not(.button) { color: #000; text-decoration: none; }
.fp-page .product p, .fp-page .product-summary p, .fp-page .product-resources-list p { margin: 10px 0; }

/* image(s) | headline block */
.fp-page .product { display: grid; grid-template-columns: 1fr 1fr; align-items: center; }
.fp-page .product--plain { grid-template-columns: 1fr 2fr; align-items: start; }
.fp-page .product-media { position: relative; max-width: 600px; }
.fp-page .product-thumbs { display: grid; grid-template-columns: repeat(4, minmax(0, 100px)); gap: 14px; }
.fp-page .product-media--baba::after { /* the "BABA Compliant" chip on the image */
	content: "BABA Compliant";
	position: absolute;
	top: 14px;
	left: 14px;
	padding: 8px 16px;
	background-color: #1069c9;
	box-shadow: 0 3px 12px rgba(12, 46, 99, .25);
	color: #fff;
	font-size: 14px;
	font-weight: 700;
	letter-spacing: .04em;
	line-height: 1;
	text-transform: uppercase;
	transform: skew(-20deg);
	pointer-events: none;
}
.fp-page .product--catalog .product-info p { max-width: 567px; line-height: 35px; }
.fp-page .product--catalog .product-info ul { margin: 0; padding: 0; color: #7a7a7a; font-weight: 500; list-style: none; }
.fp-page .product--catalog .product-info li + li { margin-top: 10px; }
.fp-page .product--catalog .product-info li::before { /* chevron bullet */
	content: "";
	display: inline-block;
	width: 7px;
	height: 7px;
	margin: 0 11px 2px 1px;
	border: solid var(--navy);
	border-width: 0 2px 2px 0;
	transform: rotate(-45deg);
}
.fp-page .product--plain h2 { font-size: 48px; font-weight: 700; line-height: 1.3; }
.fp-page .product--plain h4 { margin: 0; color: var(--navy); font-size: 24px; font-weight: 700; line-height: 1.3; }

/* BABA note + summary + CONTACT US */
.fp-page .product-summary { color: var(--navy); font-weight: 600; }
.fp-page .product-summary .baba-note { padding: 8px 14px; border-left: 4px solid #1069c9; background-color: #f4f8fd; color: #0c2e63; }
.fp-page .product-summary .baba-note a { color: inherit; text-decoration: underline; }
.fp-page .product-summary .product-cta { margin: 32px 0 0; text-align: center; }

/* Resources (+ description) | Specifications: equal-height columns, the two headings on one line */
.fp-page .product-details { display: grid; grid-template-columns: 1fr 1fr; }
.fp-page .product-resources { padding: 10px 30px 30px; background-color: #f6f9fe; }
.fp-page .product-resources-list { color: #7a7a7a; font-size: 15px; }
.fp-page .product-resources-list p { font-size: 16px; }
.fp-page .product-details ul { margin: 0; padding-left: 50px; }
.fp-page .product-description { margin: 50px 0 30px; }
.fp-page .product-description p + p { margin-top: 10px; }
.fp-page .product-specs { padding: 10px 30px 0; font-size: 15px; }
.fp-page :is(.product, .product-specs) table { width: 100%; border-collapse: collapse; font-size: 15px; }
.fp-page :is(.product, .product-specs) td { padding: 10px; border: 1px solid #000; vertical-align: top; }
.fp-page :is(.product, .product-specs) td:first-child { width: 1%; white-space: nowrap; } /* the bullet column */
.fp-page :is(.product, .product-specs) td:nth-child(2):not(:last-child) { width: 38%; } /* label | value */

/* --- product grid (src/components/ProductGrid.astro): the catalogue on /products/ --- */
/* Cards: image on a pale panel (300px, contained), title, Read more; 3 / 2 at <=991 / 1 at <=575 per row, as on live */
.fp-page .product-listing { padding: 120px 0; }
.fp-page .product-grid-list {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 30px;
	margin: 30px 0 0;
	padding: 30px 0 0;
	border-top: 1px solid #f2f2f2;
	list-style: none;
}
.fp-page .product-grid-item { padding-bottom: 30px; box-shadow: 0 5px 26.68px 2.32px rgba(12, 77, 162, .07); text-align: center; }
.fp-page .product-grid-link { display: block; color: #000; text-decoration: none; }
.fp-page .product-grid-link img { display: block; width: 100%; height: 300px; object-fit: contain; background-color: #f2f7fb; }
.fp-page .product-grid-title { margin-top: 20px; font-size: 20px; font-weight: 600; line-height: 26px; }
.fp-page .product-grid .button { margin-top: 15px; padding: 10px 15px; border-radius: 0; font-family: Montserrat, sans-serif; line-height: 1.7; text-transform: none; }
@media (max-width: 991px) { .fp-page .product-grid-list { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 767px) { .fp-page .product-grid-list { column-gap: 20px; } }
@media (max-width: 575px) { .fp-page .product-grid-list { grid-template-columns: minmax(0, 1fr); } }

/* --- carousel (src/components/Carousel.astro, public/js/carousel.js) --- */
/* --per-view: slides in view, --step: slides one move advances (read by the script); set per carousel below */
.fp-page .carousel { --per-view: 1; --step: 1; position: relative; }
.fp-page .carousel-viewport { overflow: hidden; touch-action: pan-y; }
.fp-page .carousel-track { display: flex; }
.fp-page .carousel-slide { flex: 0 0 calc(100% / var(--per-view)); min-width: 0; }
.fp-page .carousel-slide img { user-select: none; -webkit-user-drag: none; }
.fp-page .carousel.is-static :is(.carousel-arrow, .carousel-dots) { display: none; }
.fp-page .carousel-dots { display: flex; justify-content: center; gap: 12px; }
.fp-page .carousel-dot { width: 12px; height: 12px; padding: 0; border: 0; border-radius: 50%; background-color: #4c7bb9; cursor: pointer; }
.fp-page .carousel-dot.is-active { background-color: var(--navy); }
.fp-page .carousel-arrow { position: absolute; z-index: 1; width: 50px; height: 50px; padding: 0; border: 0; border-radius: 50%; background-color: #004e97; cursor: pointer; }
.fp-page .carousel-arrow::before { /* arrow shaft */
	content: "";
	position: absolute;
	top: 50%;
	left: 50%;
	width: 22px;
	height: 2px;
	margin: -1px 0 0 -11px;
	background-color: #fff;
}
.fp-page .carousel-arrow::after { /* arrow head */
	content: "";
	position: absolute;
	top: 50%;
	width: 9px;
	height: 9px;
	margin-top: -5px;
	border: solid #fff;
	border-width: 2px 2px 0 0;
}
.fp-page .carousel-prev::after { left: 15px; transform: rotate(-135deg); }
.fp-page .carousel-next::after { right: 15px; transform: rotate(45deg); }

/* --- home page (src/pages/index.astro) --- */
/* Not reproduced from Elementor: the SVE heading's justified text (it spread the words across the line when it
   wrapped), a Ken Burns zoom set on one hero slide only, and the arrow icons, which loaded from a dead development
   domain (demo.cmsminds.com) and showed as empty circles; they are drawn here as the arrows they were. */
.fp-page .skew-button {
	display: inline-block;
	padding: 10px 22px;
	background-color: #0070c0;
	color: #fff;
	font-size: 14px;
	font-weight: 700;
	line-height: 56px;
	text-decoration: none;
	text-transform: uppercase;
	white-space: nowrap;
	transform: skewX(-20deg);
	transition: background-color .3s ease;
}
.fp-page .skew-button:hover { background-color: var(--navy); }
.fp-page .theme-button { /* the slanted box with upright text */
	display: inline-block;
	margin-left: 12px;
	padding: 20px 45px;
	background-color: #0070c0;
	color: #fff;
	font-weight: 500;
	line-height: 16px;
	text-decoration: none;
	transform: skewX(-25deg);
}
.fp-page .theme-button span { display: inline-block; transform: skewX(25deg); }

/* hero slideshow */
.fp-page .home-hero { padding: 38px 0 30px; background-color: #f6f9fe; }
.fp-page .home-hero-down { display: block; width: 81px; margin: 0 0 50px 30px; }
.fp-page .home-hero-down img { display: block; }
.fp-page .hero-slides { margin: 0 15px; }
.fp-page .hero-slides .carousel-dots { position: absolute; right: 0; bottom: 17px; left: 0; }
.fp-page .hero-slide { position: relative; height: 600px; }
.fp-page .hero-slide-image { position: absolute; top: 50%; right: 0; width: 45%; transform: translateY(-50%); }
.fp-page .hero-slide-text { position: relative; display: flex; flex-direction: column; justify-content: center; max-width: 55%; height: 100%; padding: 50px; }
.fp-page .hero-slide-kicker { margin-bottom: 20px; font-size: 20px; line-height: 21px; text-transform: uppercase; }
.fp-page .hero-slide-title { font-size: 50px; font-weight: 300; line-height: 56px; }
.fp-page .hero-slide-title b { color: var(--navy); font-size: 63px; font-weight: 700; line-height: 90px; }
.fp-page .hero-slide-buttons { display: flex; flex-wrap: wrap; gap: 15px; margin-top: 20px; }

/* BABA line */
.fp-page .home-baba { padding: 10px 0; text-align: center; }
.fp-page .home-baba h2 { font-family: Roboto, sans-serif; font-size: 21.6px; font-weight: 600; line-height: 1.2; }
.fp-page .home-baba a { color: var(--navy); }

/* about + video */
.fp-page .home-about { margin-top: 80px; padding-bottom: 100px; background: url(/images/about_pattern_02.webp) no-repeat right bottom; }
.fp-page .home-about-inner { display: grid; grid-template-columns: 1fr 1fr; align-items: center; }
.fp-page .home-about-kicker { margin-bottom: 20px; font-size: 20px; line-height: 1; }
.fp-page .home-about-title { color: var(--navy); font-size: 55px; font-weight: 700; line-height: 1; }
.fp-page .home-about-subtitle { font-size: 52px; line-height: 1; }
.fp-page .home-about-body { margin: 36px 0 40px; font-weight: 500; }
.fp-page .home-about-video { padding: 100px 50px; background: url(/images/Untitled-2.png) no-repeat center; }
.fp-page .video-card { position: relative; padding: 20px; background-color: #fff; box-shadow: 0 15px 104px 17px rgba(12, 77, 162, .1); }
.fp-page .video-card video { display: block; width: 100%; aspect-ratio: 4 / 3; background-color: #000; object-fit: cover; }
.fp-page .video-overlay { position: absolute; inset: 20px; padding: 0; border: 0; background: no-repeat center / cover; cursor: pointer; }
.fp-page .video-overlay[hidden] { display: none; }
.fp-page .video-play { position: absolute; top: 50%; left: 50%; width: 68px; height: 68px; margin: -34px 0 0 -34px; border-radius: 50%; background-color: #0070c0; }
.fp-page .video-play::before { /* play triangle */
	content: "";
	position: absolute;
	top: 50%;
	left: 50%;
	margin: -6px 0 0 -3px;
	border-style: solid;
	border-width: 6px 0 6px 9px;
	border-color: transparent transparent transparent #fff;
}
.fp-page .video-play::after { content: ""; position: absolute; inset: 13px; border: 2px solid #fff; border-radius: 50%; } /* ring */

/* product sections: headings + card carousel */
.fp-page .home-products { padding-bottom: 60px; color: #fff; }
.fp-page .home-products--remediation { padding-top: 100px; background-color: #031e56; }
.fp-page .home-products--industrial { padding-top: 50px; background-color: #367eaa; text-align: right; }
.fp-page .home-products-kicker { margin-bottom: 20px; font-size: 30px; font-weight: 400; line-height: 1; }
.fp-page .home-products-title { font-size: 60px; font-weight: 700; line-height: 1; }
.fp-page .home-products-cards { margin-top: 65px; text-align: left; }
.fp-page .home-products--industrial .home-products-cards { margin-top: 50px; }
.fp-page .product-cards { --per-view: 3; --step: 2; }
.fp-page .product-card { padding: 0 33px; }
.fp-page .product-card-image, .fp-page .product-card-image img { display: block; width: 100%; }
.fp-page .product-card-body { display: flex; align-items: center; gap: 10px; padding: 20px; background-color: #fff; }
.fp-page .product-card-body h2 { flex: 1; font-size: 21px; font-weight: 700; line-height: 34px; }
.fp-page .product-card-body h2 a { color: var(--navy); text-decoration: none; }
.fp-page .product-card-more { position: relative; flex: 0 0 40px; height: 40px; border-radius: 50%; background-color: #0070c0; }
.fp-page .product-card-more::after { /* chevron */
	content: "";
	position: absolute;
	top: 50%;
	left: 50%;
	width: 8px;
	height: 8px;
	margin: -4px 0 0 -6px;
	border: solid #fff;
	border-width: 2px 2px 0 0;
	transform: rotate(45deg);
}
.fp-page .home-view-all { padding: 65px 0; background-color: #031e56; text-align: center; }
.fp-page .home-view-all .theme-button { padding: 17px 45px; }

/* catox */
.fp-page .home-catox { padding: 74px 0; text-align: center; }
.fp-page .home-catox-kicker { margin-bottom: 20px; font-size: 20px; font-weight: 400; line-height: 1; }
.fp-page .home-catox-title { margin-bottom: 20px; color: var(--navy); font-size: 55px; font-weight: 700; line-height: 1; }
.fp-page .home-catox-subtitle { margin-bottom: 20px; color: var(--navy); font-size: 52px; font-weight: 400; line-height: 1; }
.fp-page .home-catox .cutaway { text-align: left; }

/* clients */
.fp-page .home-clients { margin: 37px 0; padding: 80px 0 37px; background-color: #f1f7fb; }
.fp-page .home-clients-title { margin-bottom: 30px; font-size: 66px; font-weight: 400; line-height: 1; text-align: center; }
.fp-page .home-clients-title b { color: var(--navy); font-weight: 700; }
.fp-page .client-logos { --per-view: 4; --step: 1; padding: 0 30px; }
.fp-page .client-logo figure { display: flex; align-items: center; justify-content: center; height: 120px; margin: 0 15px; padding: 0 30px; background-color: #fff; }
.fp-page .client-logos .carousel-arrow { top: 35px; }
.fp-page .client-logos .carousel-prev { left: 0; }
.fp-page .client-logos .carousel-next { right: 0; }
.fp-page .client-logos .carousel-dots { margin-top: 40px; }
.fp-page .client-logos .carousel-dot { width: 10px; height: 10px; background-color: #c1cad5; }
.fp-page .client-logos .carousel-dot.is-active { background-color: var(--navy); }

/* insights: post cards */
.fp-page .home-insights { padding: 10px 0 40px; }
.fp-page .home-insights-title { margin-bottom: 30px; color: var(--navy); font-family: Roboto, sans-serif; font-size: 21.6px; font-weight: 600; line-height: 1; text-align: center; }
.fp-page .post-cards { display: grid; grid-template-columns: repeat(3, 1fr); gap: 35px 30px; }
.fp-page .post-card { display: flex; flex-direction: column; overflow: hidden; border-radius: 3px; background-color: #fff; box-shadow: 0 0 10px rgba(0, 0, 0, .15); transition: box-shadow .25s; }
.fp-page .post-card:hover { box-shadow: 0 0 30px rgba(0, 0, 0, .15); }
.fp-page .post-card-image { position: relative; display: block; padding-bottom: 66%; overflow: hidden; }
.fp-page .post-card-image img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.fp-page .post-card-image::after { content: ""; position: absolute; inset: 0; background-image: linear-gradient(0deg, rgba(0, 0, 0, .35), transparent 75%); transition: opacity .3s ease-out; }
.fp-page .post-card:hover .post-card-image::after { opacity: .5; }
.fp-page .post-card-text { flex: 1; margin-top: 20px; padding: 0 30px; }
.fp-page .post-card-title { margin-bottom: 25px; color: #54595f; font-family: Roboto, sans-serif; font-size: 21px; font-weight: 600; line-height: 1.3; }
.fp-page .post-card-title a { color: inherit; text-decoration: none; }
.fp-page .post-card-more { display: inline-block; margin-bottom: 20px; color: #61ce70; font-family: Roboto, sans-serif; font-size: 12px; font-weight: 500; text-decoration: none; text-transform: uppercase; }
.fp-page .post-card-meta { padding: 15px 30px; border-top: 1px solid #eaeaea; color: #adadad; font-family: Roboto, sans-serif; font-size: 12px; line-height: 1.3; }

/* --- cutaway diagram (src/components/Cutaway.astro, public/js/cutaway.js) --- */
/* the text boxes reach past the diagram to its right; the area (the content width) clips closed ones, and the
   script keeps open ones inside it */
.fp-page .cutaway-area { overflow-x: clip; }
.fp-page .cutaway { position: relative; width: 100%; max-width: var(--cutaway-width); }
.fp-page .cutaway-grid { display: grid; }
.fp-page .cutaway-grid img { display: block; width: 100%; height: auto; }
.fp-page .cutaway-reveal { position: relative; z-index: 1; opacity: 0; visibility: hidden; transition: opacity .4s ease, visibility 0s .4s; }
.fp-page .cutaway-spot { position: relative; z-index: 2; display: block; padding: 0; border: 0; background: none; cursor: pointer; }
.fp-page .cutaway-reveal.is-open { z-index: 3; opacity: 1; visibility: visible; transition: opacity .4s ease; }
.fp-page .cutaway-spot.is-open { z-index: 4; }
.fp-page .cutaway-spot:focus-visible { outline: 2px solid var(--navy); outline-offset: -2px; }
.fp-page .cutaway-box {
	position: absolute;
	top: var(--box-top);
	left: var(--box-left);
	z-index: 10; /* over whatever follows the diagram (the contact card is 9 on /catox/), under the fixed header */
	width: var(--box-width);
	max-width: calc(100vw - 30px);
	padding: 30px;
	border-radius: 5px;
	background-color: #fdfdfd;
	color: #000;
	line-height: 1.7;
	opacity: 0;
	visibility: hidden;
	transform: scale(.01);
	transform-origin: left top;
	transition: transform .4s ease-in, opacity .4s ease-in, visibility 0s .4s;
}
.fp-page .cutaway-box.is-below { top: calc(100% + 10px); left: 0; width: 100%; } /* no room beside the diagram */
.fp-page .cutaway-box.is-open { opacity: 1; visibility: visible; transform: none; transition: transform .4s ease-out, opacity .4s ease-out; }
.fp-page .cutaway-box strong { font-weight: 400; }
.fp-page .cutaway-box a { color: var(--navy); }

/* --- cutaway detail pages (src/layouts/CutawayDetail.astro): heading, text, back arrow, image or video --- */
.fp-page .detail { padding: 120px 0 50px; }
.fp-page .detail-back { display: inline-block; margin-top: 20px; }
.fp-page .detail-back img { display: block; }
.fp-page .detail-media { margin-top: 20px; }
.fp-page .detail-media img { display: block; width: 100%; height: auto; margin: 0 auto; } /* max-width: the image's own (inline) */
.fp-page .detail-media video { display: block; width: 100%; height: auto; }

/* --- catox page (src/pages/catox/): heading + hint, then the cutaway --- */
.fp-page .catox-intro { padding-top: 120px; }
.fp-page .catox-hint { text-align: center; }
.fp-page .catox-diagram { padding: 74px 0; }

/* --- calculators index (src/pages/calculators.html/): heading, then the calculators' links | the calculator image ---
   One font for the whole list (live: its list items fell back to the theme's system font) */
.fp-page .calc-index { padding: 120px 0 50px; }
.fp-page .calc-index .heading { margin-bottom: 50px; }
.fp-page .calc-index-body { display: grid; grid-template-columns: 1fr 1fr; align-items: start; }
.fp-page .calc-index-list { font: 400 20px/34px Roboto, sans-serif; }
.fp-page .calc-index-list > * + * { margin-top: 34px; } /* a blank line after each link and before the second group */
.fp-page .calc-index-list ul { margin: 0; padding-left: 50px; } /* (a list follows its group title directly) */
.fp-page .calc-index-list a { color: var(--navy); font-weight: 600; text-decoration: none; }
.fp-page .calc-index-list li a { font-weight: 400; }
.fp-page .calc-index-media { text-align: center; }

/* --- content pages (src/layouts/ContentPage.astro): banner, then the page's heading and content --- */
.fp-page .content-page { padding: 120px 0 50px; }
.fp-page .content-page--close { padding-top: 30px; } /* the heading right under the banner (/technical/) */

/* document lists (the technical pages, CAD drawings): one link per line after a bold bullet, the page's base text
   (Montserrat 16px); a blank line before each subheading and group title. One style for all of them (live: the CAD
   page's lists, links and headings fell back to the theme's system font, its links black) */
.fp-page .doc-list { margin: 0; padding: 0; list-style: none; }
.fp-page .doc-list li::before { content: "• "; font-weight: 700; }
.fp-page .doc-list a { color: var(--navy); font-weight: 600; text-decoration: none; }
.fp-page .doc-heading { margin: 27px 0; font-size: 32px; font-weight: 600; line-height: 1.3; } /* "Documents"; FALCO 100 / 300 / 600 */
.fp-page .doc-group { margin: 27px 0 0; font-size: 16px; font-weight: 700; }

/* articles (the information pages): blocks of text, centred figures and text | image columns, 50px apart. One text
   style (the page base, Montserrat 16px; live: some columns 15px, captions in Segoe UI), the blocks in the container
   (live: some text sections ran to the window's edge), one blank line between paragraphs (live: spacer paragraphs,
   here and there) */
.fp-page .article > * + * { margin-top: 50px; }
.fp-page .article > .heading + * { margin-top: 0; }
.fp-page .article .split { column-gap: 30px; }
.fp-page .figure { text-align: center; }
/* a video in a figure: whole, at its own proportions (width/height attributes), centred, at most the container's
   width (or its own inline max-width); an embedded player (YouTube) 16:9 at the container's width */
.fp-page .figure video { display: block; width: 100%; height: auto; margin: 0 auto; background-color: #000; }
.fp-page .figure iframe { display: block; width: 100%; height: auto; aspect-ratio: 16 / 9; border: 0; }
.fp-page .caption { margin-top: 10px; font-weight: 700; text-align: center; }
.fp-page .caption--above { margin: 0 0 10px; }
.fp-page .caption a { color: var(--navy); text-decoration: none; }
.fp-page .text--center { text-align: center; }
.fp-page .blower-packages .text > * + * { margin-top: 0; } /* the FALCO 300 packages' three links, one per line */
.fp-page .heading-light { display: block; margin-top: 20px; font-weight: 400; } /* a heading's second line, regular weight */
.fp-page .text + .theme-button { margin-top: 30px; } /* a block's button under its text */
.fp-page .split--wide-media { grid-template-columns: 3fr 2fr; }
/* a band: a block on a light background that runs the window's width (painted by a shadow clipped to the window, so
   it adds no sideways scroll) */
.fp-page .band { padding: 50px 0; background-color: #f6f9fe; box-shadow: 0 0 0 100vmax #f6f9fe; clip-path: inset(0 -100vmax); }
/* a row of buttons (and a line of text) under a block's text */
.fp-page .button-row { display: flex; flex-wrap: wrap; align-items: center; gap: 16px; margin-top: 30px; }
.fp-page .button-row .theme-button { transition: background-color .3s ease; }
.fp-page .button-row .theme-button:hover { background-color: var(--navy); }
.fp-page .theme-button--navy { background-color: var(--navy); }
.fp-page .button-row .theme-button--navy:hover { background-color: #0070c0; }
.fp-page .button-row a:not(.theme-button) { color: var(--navy); font-weight: 600; text-decoration: none; }
/* a highlighted statement: a light box with a blue rule on its left */
.fp-page .statement { margin: 0 0 20px; padding: 22px 26px; border-left: 5px solid #0070c0; background-color: #f6f9fe; font-size: 18px; font-style: normal; }
/* questions and answers, divided by a thin line */
.fp-page .faq-item { padding: 18px 0; border-bottom: 1px solid #dbe6f3; }
.fp-page .faq-item h3 { margin: 0 0 8px; color: var(--navy); font-size: 20px; font-weight: 700; line-height: 1.3; }

/* a page's own opening section instead of the banner (/baba-compliance/): navy, a slanted label, the title, a line
   of introduction */
.fp-page .page-hero { padding: 88px 0 70px; background-color: var(--navy); color: #fff; }
.fp-page .chip { display: inline-block; padding: 8px 16px; background-color: #0070c0; font-size: 14px; font-weight: 700; letter-spacing: .04em; line-height: 1; text-transform: uppercase; transform: skewX(-25deg); }
.fp-page .chip span { display: inline-block; transform: skewX(25deg); }
.fp-page .page-hero-title { margin: 18px 0 14px; color: #fff; font-size: 55px; font-weight: 700; line-height: 1.1; }
.fp-page .page-hero-subtitle { max-width: 760px; font-size: 18px; }

/* a specification table (/falco-2000/): navy header row, the names in bold on light grey */
.fp-page .table-note { margin-bottom: 10px; color: #666; font-style: italic; text-align: center; }
.fp-page .spec-table { width: 100%; border-collapse: collapse; font-size: 15px; line-height: 1.6; }
.fp-page .spec-table th { padding: 12px 15px; border: 1px solid var(--navy); background-color: var(--navy); color: #fff; font-weight: 700; text-align: left; }
.fp-page .spec-table td { padding: 10px 15px; border: 1px solid #ddd; vertical-align: top; }
.fp-page .spec-table td:first-child { width: 30%; background-color: #f9f9f9; font-weight: 700; }

/* the blog post: a reading column under its image (610px: the WordPress theme's post width, as live shows it; the
   post's own styles asked for 900), the title over a navy rule, light tables; in the site's type (live: Arial, #333,
   from the post's inline styles) */
.fp-page .post { max-width: 610px; margin: 0 auto; }
.fp-page .post .figure + .post-body { margin-top: 50px; }
.fp-page .post-body h1 { margin: 0 0 24px; padding-bottom: 10px; border-bottom: 2px solid var(--navy); color: var(--navy); font-size: 40px; font-weight: 700; line-height: 1.2; }
.fp-page .post-body h2 { margin: 40px 0 16px; color: var(--navy); font-size: 28px; font-weight: 700; line-height: 1.2; }
.fp-page .post-body h3 { margin: 24px 0 12px; color: var(--navy); font-size: 21px; font-weight: 700; line-height: 1.2; }
.fp-page .post-body p { margin: 0 0 16px; }
.fp-page .post-body ul { margin: 0 0 24px; padding-left: 20px; list-style: disc; }
.fp-page .post-body li { margin-bottom: 8px; }
.fp-page .post-body table { width: 100%; margin: 25px 0; border-collapse: collapse; font-size: 15px; }
.fp-page .post-body :is(th, td) { padding: 12px; border: 1px solid #ddd; text-align: left; vertical-align: top; }
.fp-page .post-body th { background-color: #f8f9fa; color: var(--navy); font-weight: 700; }

/* /technical/: the introduction in grey Roboto, then its links one per line (live: the links in Segoe UI and
   #003399, inline styles copied from the old site) */
.fp-page .tech-index { font-family: Roboto, sans-serif; font-size: 20px; line-height: 34px; }
.fp-page .tech-index p { color: #7a7a7a; }
.fp-page .tech-index ul { margin: 0; padding: 0; list-style: none; }
.fp-page .tech-index a { color: var(--navy); font-weight: 600; text-decoration: none; }

@media (max-width: 1200px) {
	.fp-page .product-cards { --per-view: 2; }
}

@media (max-width: 1024px) {
	.fp-page .heading { font-size: 21px; }
	.fp-page .subheading { font-size: 21px; }
	.fp-page .banner { padding: 84px 0 40px; }
	.fp-page .banner-title { font-size: 32px; }
	.fp-page .page-hero { padding: 84px 0 50px; }
	.fp-page .page-hero-title { font-size: 32px; }
	.fp-page .faq-item h3 { font-size: 18px; } /* below the section headings (21px here) */
	.fp-page .post-body h1 { font-size: 30px; }
	.fp-page .post-body h2 { font-size: 24px; }
	.fp-page .post-body h3 { font-size: 19px; }
	.fp-page .gallery { grid-template-columns: repeat(2, 1fr); }
	.fp-page .split--wide-media { grid-template-columns: 1fr 1fr; }
	.fp-page .product--catalog, .fp-page .product-details { grid-template-columns: 1fr; }
	.fp-page .product--catalog .product-info { margin-top: 30px; }
	.fp-page .product--plain h2 { font-size: 32px; line-height: 1.25; }
	.fp-page .product-resources { padding: 30px; }
	.fp-page .product-specs { margin-top: 40px; padding: 0; }
	.fp-page .home-hero { padding: 40px 0 20px; }
	.fp-page .home-hero-down { display: none; }
	.fp-page .hero-slide-text { justify-content: flex-start; max-width: none; height: auto; padding: 50px 15px 0; text-align: center; }
	.fp-page .hero-slide-title { font-size: 30px; line-height: 36px; }
	.fp-page .hero-slide-title b { font-size: 34px; line-height: 40px; }
	.fp-page .hero-slide-buttons { justify-content: center; }
	.fp-page .skew-button { line-height: 36px; }
	.fp-page .hero-slide-image { top: auto; right: 25%; bottom: 0; width: 50%; transform: none; }
	.fp-page .home-about { margin-top: 0; padding-bottom: 40px; }
	.fp-page .home-about-inner { grid-template-columns: 1fr; }
	.fp-page .home-about-title, .fp-page .home-about-subtitle { font-size: 36px; }
	.fp-page .home-about-video { margin-top: 60px; padding: 30px 10px; }
	.fp-page .home-products-title { font-size: 36px; }
	.fp-page .home-view-all { padding: 40px 0; }
	.fp-page .home-catox-title, .fp-page .home-catox-subtitle { font-size: 36px; }
	.fp-page .home-clients-title { font-size: 36px; }
	.fp-page .client-logos { --per-view: 2; padding: 0; }
	.fp-page .client-logos .carousel-arrow { display: none; }
	.fp-page .post-cards { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 767px) {
	.fp-page .banner { padding: 104px 0 50px; }
	.fp-page .banner-title { text-align: center; }
	.fp-page .split { grid-template-columns: 1fr; }
	.fp-page .split-media { text-align: center; }
	.fp-page .split-text { margin-top: 30px; }
	.fp-page .calc-index-body { grid-template-columns: 1fr; }
	.fp-page .calc-index-media { margin-top: 20px; }
	.fp-page .doc-heading { font-size: 30px; }
	.fp-page .article .split > * + * { margin-top: 30px; } /* stacked in source order, whichever side the image was on */
	.fp-page .split--media-first > .split-media { order: -1; margin-top: 0; } /* stacked image first (/voc_abatement_system/) */
	/* the blog post's tables: tighter on phones, and scrolling in their own box when still wider than the screen */
	.fp-page .post-body table { display: block; overflow-x: auto; font-size: 14px; }
	.fp-page .post-body :is(th, td) { padding: 8px; }
	.fp-page .gallery { grid-template-columns: 1fr; }
	.fp-page .product--plain { grid-template-columns: 1fr; }
	.fp-page .product--plain .product-info { margin-top: 40px; }
	.fp-page .product--plain h2 { font-size: 28px; line-height: 1.3; }
	.fp-page .product-resources { padding: 30px 30px 30px 15px; }
	.fp-page .hero-slide-title { font-size: 30px; line-height: 40px; }
	.fp-page .hero-slide-title b { font-size: 43px; line-height: 53px; }
	.fp-page .skew-button { padding: 10px 12px; line-height: 40px; }
	.fp-page .hero-slide-image { right: 0; width: 100%; }
	.fp-page .home-about { padding-bottom: 20px; }
	.fp-page .home-about-title, .fp-page .home-about-subtitle { font-size: 30px; }
	.fp-page .home-products { padding: 50px 0 30px; }
	.fp-page .home-products-title { font-size: 20px; }
	.fp-page .home-products-cards, .fp-page .home-products--industrial .home-products-cards { margin-top: 30px; }
	.fp-page .product-cards { --per-view: 1; --step: 1; }
	.fp-page .product-card { padding: 0; }
	.fp-page .home-catox-title, .fp-page .home-catox-subtitle { font-size: 30px; }
	.fp-page .home-clients { padding: 37px 0; }
	.fp-page .home-clients-title { font-size: 30px; }
	.fp-page .client-logos { --per-view: 1; }
	.fp-page .post-cards { grid-template-columns: 1fr; }
	.fp-page .post-card-image { padding-bottom: 50%; }
}

/* ===================================================================== lightbox (public/js/lightbox.js; root .fp-lightbox) */
/* The gallery lightbox, after the live site's (Elementor's): dark backdrop, image at natural size, counter,
   fullscreen / zoom / share / close in the header, caption below, prev/next zones, UI fades when idle. */
@font-face {
	font-family: 'falco-lightbox-icons';
	src: url(/fonts/falco-lightbox-icons.woff) format('woff');
	font-weight: 400;
	font-style: normal;
	font-display: block;
}
.fp-lightbox {
	--lb-ui: rgba(237, 237, 237, .9);
	position: fixed;
	inset: 0;
	z-index: 9999;
	background-color: rgba(0, 0, 0, .8);
	color: var(--lb-ui);
	font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif;
	-webkit-user-select: none;
	user-select: none;
	-webkit-font-smoothing: antialiased;
}
.fp-lightbox[hidden] { display: none; }
.fp-lightbox *, .fp-lightbox *::before, .fp-lightbox *::after { box-sizing: border-box; }
.fp-lightbox .lb-stage { position: absolute; inset: 0; overflow: hidden; animation: lb-zoom-in .3s; }
@keyframes lb-zoom-in { from { opacity: 0; transform: scale3d(.3, .3, .3); } 50% { opacity: 1; } }
.fp-lightbox .lb-track { display: flex; height: 100%; gap: 100px; cursor: grab; will-change: transform; }
.fp-lightbox .lb-track.is-dragging { cursor: grabbing; }
.fp-lightbox .lb-track.is-animating { transition: transform .3s ease; }
.fp-lightbox .lb-slide { flex: 0 0 100%; display: flex; align-items: center; justify-content: center; height: 100%; padding: 70px; }
.fp-lightbox .lb-img {
	max-width: 100%;
	max-height: 100%;
	border-radius: 2px;
	box-shadow: 0 0 30px rgba(0, 0, 0, .3), 0 0 8px -5px rgba(0, 0, 0, .3);
	transition: transform .3s;
	-webkit-user-drag: none;
}
.fp-lightbox.is-zoomed .lb-slide.is-current .lb-img { cursor: move; }

.fp-lightbox .lb-icon { font-family: 'falco-lightbox-icons'; font-style: normal; font-weight: 400; line-height: 1; speak: never; }
.fp-lightbox .lb-btn { display: flex; align-items: center; justify-content: center; margin: 0; padding: 0; border: 0; background: none; color: inherit; font: inherit; cursor: pointer; transition: color .3s, opacity .3s; }
.fp-lightbox .lb-btn:hover { color: #fff; }

.fp-lightbox .lb-header {
	position: absolute;
	top: 0;
	left: 0;
	z-index: 10;
	display: flex;
	align-items: center;
	width: 100%;
	padding: 15px 52px 15px 20px;
	font-size: 20px;
	transition: .3s;
}
.fp-lightbox .lb-counter { margin-right: auto; font-size: 15px; line-height: 1.5; }
.fp-lightbox .lb-header .lb-btn { width: 30px; height: 30px; margin: 0 7px; font-size: 20px; }
.fp-lightbox .lb-close { position: absolute; top: 13px; right: 15px; z-index: 11; width: 30px; height: 30px; font-size: 20px; }

.fp-lightbox .lb-nav { position: absolute; top: 0; z-index: 5; width: 15%; height: 100%; font-size: 25px; }
.fp-lightbox .lb-prev { left: 0; }
.fp-lightbox .lb-next { right: 0; }

.fp-lightbox .lb-footer { position: absolute; bottom: 0; left: 0; z-index: 5; width: 100%; padding: 15px 20px; text-align: center; transition: .3s; }
.fp-lightbox .lb-title { margin: 0; font-size: 16px; font-weight: 700; line-height: 1.5; }

/* share menu */
.fp-lightbox .lb-share { position: absolute; inset: 0; z-index: 20; background-color: rgba(0, 0, 0, .5); }
.fp-lightbox .lb-share[hidden] { display: none; }
.fp-lightbox .lb-share-links {
	position: absolute;
	top: 3em;
	right: 2.8em;
	min-width: 200px;
	padding: 14px 20px;
	border-radius: 3px;
	background-color: #fff;
	box-shadow: 0 4px 15px rgba(0, 0, 0, .3);
	font-size: 20px;
	text-align: left;
}
.fp-lightbox .lb-share-links::before { content: ""; position: absolute; top: 1px; right: .5em; border: .45em solid transparent; border-bottom-color: #fff; transform: translateY(-100%) scaleX(.7); }
.fp-lightbox .lb-share-links a { display: block; color: #3f444b; font-size: 12px; line-height: 2.5; text-decoration: none; }
.fp-lightbox .lb-share-links a:hover { color: #000; }
.fp-lightbox .lb-share-links .lb-icon { margin-right: .75em; font-size: 1.25em; vertical-align: -.15em; }
.fp-lightbox .lb-share-links .is-facebook .lb-icon { color: #3b5998; }
.fp-lightbox .lb-share-links .is-x .lb-icon { color: #000; }
.fp-lightbox .lb-share-links .is-pinterest .lb-icon { color: #bd081c; }
.fp-lightbox .lb-share-links .is-download .lb-icon { color: #9da5ae; }

/* states */
.fp-lightbox.is-idle .lb-header, .fp-lightbox.is-idle .lb-footer { opacity: 0; pointer-events: none; }
.fp-lightbox.is-idle .lb-nav { opacity: 0; }
.fp-lightbox.is-zoomed .lb-header, .fp-lightbox.is-zoomed .lb-footer { background-color: rgba(0, 0, 0, .5); }
.fp-lightbox.is-zoomed .lb-nav { opacity: 0; pointer-events: none; }

@media (max-width: 767px) {
	.fp-lightbox .lb-slide { padding: 70px 0; }
	.fp-lightbox .lb-nav { width: 20%; }
	.fp-lightbox .lb-prev { justify-content: flex-start; }
	.fp-lightbox .lb-next { justify-content: flex-end; }
	.fp-lightbox .lb-nav .lb-icon { padding: 10px; background-color: rgba(0, 0, 0, .5); }
}
@media (prefers-reduced-motion: reduce) {
	.fp-lightbox .lb-stage { animation: none; }
	.fp-lightbox .lb-track.is-animating, .fp-lightbox .lb-img { transition: none; }
}
