/*
 * Filsyn Design System – the single source of truth for the website's look.
 *
 * TOKENS (below) -> BASE (type, links) -> COMPONENTS (buttons, cards, forms, lists) -> LAYOUT (header, footer, spacing).
 * Change a token here and every page follows. Keep the scale small: no one-off sizes, colors or radii.
 */

/* ============================== 1. TOKENS ============================== */
:root {
	/* Colour – 5 brand values + neutrals. Nothing else is used. */
	--fs-green: #025928;
	--fs-green-dark: #013d1b;
	--fs-ink: #1b1f1d;          /* headings, strong text */
	--fs-body: #666666;         /* body and secondary text */
	--fs-dark: #333333;         /* top bar */
	--fs-line: #dde3e0;         /* borders and dividers */
	--fs-tint: #eef5f1;         /* soft green fill */
	--fs-soft: #f7f9f8;         /* soft gray fill */
	--fs-white: #ffffff;

	/* Type scale (Poppins only): 12 / 14 / 16 / 18 / 22 / 36 / 64 */
	--fs-xs: 12px;              /* captions, top bar */
	--fs-sm: 14px;              /* buttons, nav, labels, meta */
	--fs-md: 16px;              /* UI text, list rows, descriptions */
	--fs-lg: 18px;              /* body copy */
	--fs-h4: 18px;              /* card titles */
	--fs-h3: 22px;              /* sub-headings */
	--fs-h2: 36px;              /* section headings */
	--fs-h1: 64px;              /* page title */
	--fs-track: 0.01em;         /* normal letter-spacing */
	--fs-track-caps: 0.08em;    /* uppercase labels, buttons, nav */

	/* Shape */
	--fs-radius-sm: 2px;        /* buttons, inputs */
	--fs-radius: 6px;           /* cards, boxes */
	--fs-radius-pill: 999px;    /* filter chips, tabs and count badges only */

	/* Spacing scale (8-point): 8 / 16 / 24 / 32 / 48 / 64 / 80 */
	--fs-section: 80px;         /* gap between page sections */
	--fs-hero-top: 170px;       /* inner-page banner */
	--fs-hero-bottom: 130px;
	--fs-container: 1260px;     /* content width for header, pages and footer */
}
@media (max-width: 1024px) {
	:root { --fs-h2: 32px; --fs-h3: 22px; --fs-section: 64px; --fs-hero-top: 120px; --fs-hero-bottom: 90px; }
}
@media (max-width: 767px) {
	:root { --fs-h1: 46px; --fs-h2: 28px; --fs-h3: 20px; --fs-lg: 17px; --fs-section: 48px; --fs-hero-top: 90px; --fs-hero-bottom: 70px; }
}

/* ============================== 2. BASE TYPE ============================== */
.elementor { font-family: "Poppins", sans-serif; }

/* Headings in page content */
.elementor:is([data-elementor-type="wp-page"], [data-elementor-type="wp-post"]) h1.elementor-heading-title {
	font-size: var(--fs-h1) !important; line-height: 1.2 !important; font-weight: 600 !important; letter-spacing: var(--fs-track) !important;
}
.elementor:is([data-elementor-type="wp-page"], [data-elementor-type="wp-post"]) h2.elementor-heading-title,
.elementor:is([data-elementor-type="wp-page"], [data-elementor-type="wp-post"]) .elementor-widget-text-editor h2 {
	font-size: var(--fs-h2) !important; line-height: 1.3 !important; font-weight: 600 !important; letter-spacing: var(--fs-track) !important; text-transform: none !important;
}
.elementor:is([data-elementor-type="wp-page"], [data-elementor-type="wp-post"]) h3.elementor-heading-title,
.elementor:is([data-elementor-type="wp-page"], [data-elementor-type="wp-post"]) .elementor-icon-box-title,
.elementor:is([data-elementor-type="wp-page"], [data-elementor-type="wp-post"]) .elementor-icon-box-title a,
.elementor:is([data-elementor-type="wp-page"], [data-elementor-type="wp-post"]) .elementor-icon-box-title span {
	font-size: var(--fs-h3) !important; line-height: 1.4 !important; font-weight: 600 !important; letter-spacing: var(--fs-track) !important; text-transform: none !important;
}
/* Small headings (h4-h6) everywhere, header and footer included */
.elementor .elementor-heading-title:is(h4, h5, h6) {
	font-size: var(--fs-h4) !important; line-height: 1.4 !important; font-weight: 600 !important; letter-spacing: var(--fs-track) !important; text-transform: none !important;
}

/* Body copy */
.elementor:is([data-elementor-type="wp-page"], [data-elementor-type="wp-post"]) .elementor-widget-text-editor,
.elementor:is([data-elementor-type="wp-page"], [data-elementor-type="wp-post"]) .elementor-widget-text-editor p {
	font-size: var(--fs-lg) !important; line-height: 1.7 !important; letter-spacing: var(--fs-track) !important;
}
.elementor-widget-icon-box .elementor-icon-box-description {
	font-size: var(--fs-md) !important; line-height: 1.6 !important; letter-spacing: var(--fs-track) !important;
}
.elementor-toggle .elementor-tab-title, .elementor-toggle .elementor-tab-title a { font-size: var(--fs-h4) !important; letter-spacing: var(--fs-track) !important; }
.elementor-toggle .elementor-tab-content { font-size: var(--fs-md) !important; line-height: 1.75 !important; letter-spacing: var(--fs-track) !important; }

/* Uppercase eyebrow labels (class added to text widgets that were styled uppercase) */
.fs-eyebrow, .fs-eyebrow p, .fs-eyebrow .elementor-heading-title {
	font-size: var(--fs-sm) !important; font-weight: 600 !important; letter-spacing: var(--fs-track-caps) !important; text-transform: uppercase !important; line-height: 1.5 !important;
}

/* ============================== 3. COMPONENTS ============================== */
/* Lists with icons */
.elementor-widget-icon-list .elementor-icon-list-text { font-size: var(--fs-md) !important; line-height: 1.6 !important; letter-spacing: var(--fs-track) !important; }
.elementor:is([data-elementor-type="wp-page"], [data-elementor-type="wp-post"]) .elementor-widget-icon-list .elementor-icon-list-text { font-size: var(--fs-lg) !important; }

/* Counters */
.elementor-counter-number-wrapper { font-size: var(--fs-h2) !important; font-weight: 600 !important; line-height: 1.2 !important; letter-spacing: var(--fs-track) !important; }
.elementor-counter-title { font-size: var(--fs-md) !important; font-weight: 600 !important; letter-spacing: var(--fs-track) !important; text-transform: none !important; }

/* Buttons */
.elementor .elementor-button,
.elementor .metform-btn,
.elementor .mf-btn-wraper button {
	font-family: "Poppins", sans-serif !important; font-size: var(--fs-sm) !important; font-weight: 600 !important; line-height: 1.2 !important;
	letter-spacing: var(--fs-track-caps) !important; text-transform: uppercase !important; border-radius: var(--fs-radius-sm) !important; padding: 16px 32px !important;
}

/* Forms */
.metform-form-main-wrapper input:not([type="checkbox"]):not([type="radio"]), .metform-form-main-wrapper textarea, .metform-form-main-wrapper select, .mf-input {
	font-family: "Poppins", sans-serif !important; font-size: var(--fs-md) !important; border-radius: var(--fs-radius-sm) !important;
}
.metform-form-main-wrapper label, .metform-form-main-wrapper .mf-input-label { font-size: var(--fs-sm) !important; letter-spacing: var(--fs-track) !important; }
.elementor .metform-form-main-wrapper, .elementor .mf-response-msg, .metform-form-main-wrapper .mf-response-msg { border-radius: var(--fs-radius) !important; }

/* ============================== 4. LAYOUT ============================== */
/* Header + footer share the page content width */
#masthead .elementor-container, #colophon .elementor-container { max-width: var(--fs-container) !important; }

/* Header: top bar and nav */
#masthead .elementor-icon-list-text, #masthead .elementor-heading-title, #masthead .elementor-widget-text-editor, #masthead .elementor-widget-text-editor p {
	font-size: var(--fs-xs) !important; letter-spacing: var(--fs-track) !important; line-height: 1.5 !important;
}
#masthead .elementor-button { font-size: var(--fs-xs) !important; padding: 10px 20px !important; }
.hfe-nav-menu .hfe-menu-item, .hfe-nav-menu a.hfe-menu-item, .hfe-nav-menu .hfe-sub-menu-item {
	font-size: var(--fs-sm) !important; font-weight: 600 !important; letter-spacing: var(--fs-track-caps) !important; text-transform: uppercase !important;
}

/* Footer */
#colophon .elementor-widget-text-editor, #colophon .elementor-widget-text-editor p { font-size: var(--fs-sm) !important; line-height: 1.6 !important; }
#colophon .elementor-icon-list-text { font-size: var(--fs-md) !important; }

/* Page banners and sections */
.fs-hero { padding-top: var(--fs-hero-top) !important; padding-bottom: var(--fs-hero-bottom) !important; }
.fs-section { padding-top: var(--fs-section) !important; padding-bottom: 0 !important; }
.fs-section--last { padding-bottom: var(--fs-section) !important; }
.fs-band { padding-top: var(--fs-section) !important; padding-bottom: var(--fs-section) !important; }
.fs-wide > .elementor-container { max-width: var(--fs-container) !important; }
.elementor-top-section[id], .fr-section[id] { scroll-margin-top: 110px; }

/* News articles: meta line, share icons and previous/next links */
.lakit-post-date, .lakit-post-author, .lakit-post-categories, .lakit-post-meta { font-size: var(--fs-sm) !important; letter-spacing: var(--fs-track) !important; }
.post-navigation__prev--title, .post-navigation__next--title { font-size: var(--fs-md) !important; letter-spacing: var(--fs-track) !important; }
.elementor-social-icon { border-radius: var(--fs-radius) !important; }

/* Banner copy sits on the same left edge as the rest of the page */
.fs-hero-left .elementor-inner-column > .elementor-widget-wrap.elementor-element-populated,
.fs-article .elementor-inner-column > .elementor-widget-wrap.elementor-element-populated { margin-left: 0 !important; margin-right: 0 !important; width: 100% !important; }

/* ============================== 5. COMPONENT POLISH ============================== */
/* Eyebrow written as an h2 inside a text widget */
.elementor:is([data-elementor-type="wp-page"], [data-elementor-type="wp-post"]) .fs-eyebrow h2 {
	font-size: var(--fs-sm) !important; letter-spacing: var(--fs-track-caps) !important; text-transform: uppercase !important; line-height: 1.5 !important; margin-bottom: 8px !important;
}
.fs-section.fs-tight { padding-top: 32px !important; }

/* Toggle: a boxed row, same border and radius as cards */
.elementor-toggle .elementor-toggle-item { border: 1px solid var(--fs-line) !important; border-radius: var(--fs-radius); background: var(--fs-white); margin: 0 0 8px !important; }
.elementor-toggle .elementor-tab-title { padding: 16px 24px !important; border: 0 !important; }
.elementor-toggle .elementor-tab-content { padding: 0 24px 24px !important; border: 0 !important; }

/* Footer: three columns on the page width, copyright on its own line */
.fs-footer { border-top: 1px solid var(--fs-line); }
.fs-footer .elementor-column > .elementor-widget-wrap, .fs-footer-bottom .elementor-column > .elementor-widget-wrap { padding-left: 0 !important; padding-right: 24px !important; }
.fs-footer .elementor-widget-site-logo img { max-width: 140px; }
.fs-footer .elementor-widget-icon-list .elementor-icon-list-item { padding: 4px 0; }
.fs-footer .elementor-icon-list-text { color: var(--fs-body) !important; }
.fs-footer .elementor-icon-list-item a:hover .elementor-icon-list-text { color: var(--fs-green) !important; }
.fs-footer-bottom { border-top: 1px solid var(--fs-line); padding: 24px 15px !important; }
.fs-footer-bottom .elementor-widget-text-editor, .fs-footer-bottom .elementor-widget-text-editor p { text-align: left; margin: 0 !important; color: var(--fs-body); }

/* News articles: wider reading column, meta on one line */
.fs-article > .elementor-container > .elementor-column:nth-child(1) { width: 66.666% !important; }
.fs-article > .elementor-container > .elementor-column:nth-child(2) { width: 33.333% !important; }
.fs-article .lakit-post-date, .fs-article .lakit-post-author { display: inline-block; margin: 0 16px 8px 0 !important; }
@media (max-width: 767px) {
	.fs-article > .elementor-container > .elementor-column { width: 100% !important; }
	.fs-footer .elementor-column > .elementor-widget-wrap { padding-right: 0 !important; }
}

/* Vision and Mission boxes: same top edge, same text height, Read more lines up */
.fs-vm .elementor-widget-wrap { align-content: flex-start !important; align-items: flex-start !important; }
.fs-vm .elementor-inner-section { align-self: flex-start; }
.fs-vm .fr-more__preview--summary { min-height: 136px; }
.fs-vm .elementor-widget-heading { margin-bottom: 12px !important; }
.hfe-nav-menu__toggle { border-radius: var(--fs-radius-sm) !important; }

/* ============================== 6. TOP BAR, CONTACT, NEWS ============================== */
/* Top bar above the navigation */
.fs-topbar-wrap { padding: 0 15px !important; }
.fs-topbar { display: flex; justify-content: flex-end; align-items: center; gap: 24px; min-height: 40px; font: 400 var(--fs-xs)/1.5 "Poppins", sans-serif; letter-spacing: var(--fs-track); color: var(--fs-white); }
.fs-topbar a { color: var(--fs-white); text-decoration: none; }
.fs-topbar a:hover { color: #cfe8d8; }
.fs-topbar__item { display: inline-flex; align-items: center; gap: 8px; }
.fs-topbar .fs-ico { width: 14px; height: 14px; opacity: .85; }
.fs-dot { margin: 0 8px; opacity: .6; }
.fs-topbar .fs-topbar__cta { padding: 6px 16px; border: 1px solid rgba(255, 255, 255, .5); border-radius: var(--fs-radius-sm); font-weight: 600; letter-spacing: var(--fs-track-caps); text-transform: uppercase; }
.fs-topbar .fs-topbar__cta:hover { background: var(--fs-white); color: var(--fs-dark); }
@media (max-width: 767px) { .fs-topbar { flex-wrap: wrap; justify-content: center; gap: 4px 16px; padding: 8px 0; } .fs-topbar__cta { display: none; } }

/* Active menu item: same green as the rest, marked with an underline instead of turning black */
.hfe-nav-menu .current-menu-item > .hfe-menu-item, .hfe-nav-menu .current-menu-item > a { color: var(--fs-green) !important; }

/* Contact details (footer list and Contact Us card) */
.fs-contact { list-style: none; margin: 0; padding: 0; font-family: "Poppins", sans-serif; }
.fs-contact li { display: flex; align-items: flex-start; gap: 16px; margin: 0; padding: 0 0 16px; }
.fs-contact li:last-child { padding-bottom: 0; }
.fs-contact .fs-ico { flex: 0 0 auto; margin-top: 3px; color: var(--fs-green); }
.fs-contact span { font-size: var(--fs-md); line-height: 1.6; color: var(--fs-body); letter-spacing: var(--fs-track); }
.fs-contact b { display: block; margin-bottom: 2px; font-size: var(--fs-sm); font-weight: 600; letter-spacing: var(--fs-track-caps); text-transform: uppercase; color: var(--fs-ink); }
.fs-contact a { color: inherit; text-decoration: none; }
.fs-contact a:hover { color: var(--fs-green); }
.fs-contact .fs-dot { margin: 0 6px; }
.fs-contact--card { padding: 32px; background: var(--fs-soft); border: 1px solid var(--fs-line); border-radius: var(--fs-radius); }
.fs-contact--card li { padding-bottom: 24px; }
.fs-contact--card li:last-child { padding-bottom: 0; }

/* Footer newsletter: flat, no shadow, left aligned */
.fs-footer .metform-form-main-wrapper, .fs-footer .mf-main-response-wrap, .fs-footer .elementor-widget-metform, .fs-footer .elementor-widget-metform .elementor-widget-container { box-shadow: none !important; background: transparent !important; border: 0 !important; padding: 0 !important; }
.fs-footer .mf-input { width: 100% !important; height: 48px !important; background: var(--fs-white) !important; border: 1px solid var(--fs-line) !important; padding: 0 16px !important; }
.fs-footer .mf-btn-wraper { text-align: left !important; margin: 8px 0 0 !important; }
.fs-footer .metform-btn { box-shadow: none !important; }
.fs-footer .elementor-heading-title { margin-bottom: 16px !important; }

/* Contact page form */
.fs-contactform .mf-input, .fs-contactform textarea.mf-input { width: 100% !important; background: var(--fs-white) !important; border: 1px solid var(--fs-line) !important; padding: 12px 16px !important; box-shadow: none !important; }
.fs-contactform .mf-input:focus { border-color: var(--fs-green) !important; outline: 0; box-shadow: 0 0 0 3px rgba(2, 89, 40, .14) !important; }
.fs-contactform .mf-btn-wraper { text-align: left !important; }
.fs-contactform .metform-form-main-wrapper, .fs-contactform .elementor-widget-container { box-shadow: none !important; background: transparent !important; border: 0 !important; }

/* News: card grid */
.fs-news { font-family: "Poppins", sans-serif; }
.fs-newsgrid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 24px; }
.fs-newscard { display: flex; flex-direction: column; background: var(--fs-white); border: 1px solid var(--fs-line); border-radius: var(--fs-radius); overflow: hidden; transition: border-color .2s, box-shadow .2s; }
.fs-newscard:hover { border-color: var(--fs-green); box-shadow: 0 6px 20px rgba(2, 89, 40, .08); }
.fs-newscard__media { display: block; aspect-ratio: 16 / 9; background: var(--fs-tint); overflow: hidden; }
.fs-newscard__media img { display: block; width: 100%; height: 100%; object-fit: cover; }
.fs-newscard__ph { display: block; width: 100%; height: 100%; background: var(--fs-tint); }
.fs-newscard__body { display: flex; flex-direction: column; gap: 8px; padding: 24px; flex: 1; }
.fs-newscard time, .fs-articlepage time { font-size: var(--fs-sm); letter-spacing: var(--fs-track); color: var(--fs-body); }
.fs-newscard h3 { margin: 0; padding: 0; font: 600 var(--fs-h4)/1.4 "Poppins", sans-serif; letter-spacing: var(--fs-track); text-transform: none; }
.fs-newscard h3 a { color: var(--fs-ink); text-decoration: none; }
.fs-newscard h3 a:hover { color: var(--fs-green); }
.fs-newscard p { margin: 0; font-size: var(--fs-md); line-height: 1.6; color: var(--fs-body); }
.fs-readmore { margin-top: auto; padding-top: 8px; font-size: var(--fs-sm); font-weight: 600; letter-spacing: var(--fs-track-caps); text-transform: uppercase; color: var(--fs-green); text-decoration: none; }
.fs-readmore::after { content: " \2192"; }
.fs-readmore:hover { color: var(--fs-green-dark); text-decoration: underline; text-underline-offset: 4px; }
.fs-pagination { display: flex; justify-content: center; gap: 8px; margin-top: 48px; }
.fs-pagination .page-numbers { min-width: 44px; padding: 10px 14px; border: 1px solid var(--fs-line); border-radius: var(--fs-radius-sm); background: var(--fs-white); font-size: var(--fs-sm); font-weight: 600; color: var(--fs-ink); text-align: center; text-decoration: none; }
.fs-pagination a.page-numbers:hover { border-color: var(--fs-green); color: var(--fs-green); }
.fs-pagination .page-numbers.current { background: var(--fs-green); border-color: var(--fs-green); color: var(--fs-white); }

/* News: single article */
.fs-articlepage { font-family: "Poppins", sans-serif; padding: 64px 15px 80px; }
.fs-articlepage__wrap { max-width: var(--fs-container); margin: 0 auto; display: grid; grid-template-columns: minmax(0, 1fr) 340px; gap: 64px; align-items: start; }
.fs-articlepage__main { max-width: 820px; }
.fs-back { display: inline-block; margin: 0 0 24px; font-size: var(--fs-sm); font-weight: 600; letter-spacing: var(--fs-track-caps); text-transform: uppercase; color: var(--fs-green); text-decoration: none; }
.fs-back:hover { text-decoration: underline; text-underline-offset: 4px; }
.fs-eyebrow-line { margin: 0 0 8px; }
.fs-articlepage__title { margin: 0 0 32px; padding: 0; font: 600 var(--fs-h2)/1.3 "Poppins", sans-serif; letter-spacing: var(--fs-track); text-transform: none; color: var(--fs-ink); }
.fs-articlepage__img { margin: 0 0 32px; }
.fs-articlepage__img img { display: block; width: 100%; height: auto; border-radius: var(--fs-radius); }
.fs-articlepage__body { font-size: var(--fs-lg); line-height: 1.7; letter-spacing: var(--fs-track); color: var(--fs-body); }
.fs-articlepage__body p { margin: 0 0 24px; }
.fs-articlepage__body h2, .fs-articlepage__body h3 { margin: 40px 0 16px; font: 600 var(--fs-h3)/1.4 "Poppins", sans-serif; letter-spacing: var(--fs-track); text-transform: none; color: var(--fs-ink); }
.fs-articlepage__body ul, .fs-articlepage__body ol { margin: 0 0 24px; padding-left: 24px; }
.fs-articlepage__body li { margin: 0 0 8px; }
.fs-articlepage__body blockquote { margin: 0 0 24px; padding: 8px 0 8px 24px; border-left: 3px solid var(--fs-green); color: var(--fs-ink); }
.fs-articlepage__aside { position: sticky; top: 120px; padding: 24px; background: var(--fs-soft); border: 1px solid var(--fs-line); border-radius: var(--fs-radius); }
.fs-articlepage__aside h2 { margin: 0 0 8px; padding: 0; font: 600 var(--fs-h4)/1.4 "Poppins", sans-serif; letter-spacing: var(--fs-track); text-transform: none; color: var(--fs-ink); }
.fs-articlepage__aside ul { list-style: none; margin: 0; padding: 0; }
.fs-articlepage__aside li { padding: 16px 0; border-top: 1px solid var(--fs-line); }
.fs-articlepage__aside li:first-child { border-top: 0; }
.fs-articlepage__aside time { display: block; margin-bottom: 4px; }
.fs-articlepage__aside a { font-size: var(--fs-md); font-weight: 600; line-height: 1.5; color: var(--fs-ink); text-decoration: none; }
.fs-articlepage__aside a:hover { color: var(--fs-green); }
@media (max-width: 1024px) { .fs-newsgrid { grid-template-columns: repeat(2, minmax(0, 1fr)); } .fs-articlepage__wrap { grid-template-columns: 1fr; gap: 48px; } .fs-articlepage__aside { position: static; } }
@media (max-width: 767px) { .fs-newsgrid { grid-template-columns: 1fr; } .fs-articlepage { padding: 40px 15px 64px; } }

/* Article page: beat the theme's global heading styles */
.fs-articlepage .fs-articlepage__title { font-size: var(--fs-h2) !important; line-height: 1.3 !important; font-weight: 600 !important; letter-spacing: var(--fs-track) !important; text-transform: none !important; color: var(--fs-ink) !important; }
.fs-articlepage .fs-articlepage__body :is(h2, h3) { font-size: var(--fs-h3) !important; line-height: 1.4 !important; text-transform: none !important; color: var(--fs-ink) !important; }
.fs-articlepage .fs-articlepage__aside h2 { font-size: var(--fs-h4) !important; text-transform: none !important; color: var(--fs-ink) !important; }
.fs-articlepage .fs-articlepage__body, .fs-articlepage .fs-articlepage__body p { font-size: var(--fs-lg) !important; line-height: 1.7 !important; color: var(--fs-body) !important; }
.fs-newscard h3 { text-transform: none !important; font-size: var(--fs-h4) !important; }

/* Newsletter and contact forms: no card shadow, input and button on one row */
.metform-form-main-wrapper .elementor-section, .metform-form-main-wrapper .elementor-column-wrap { box-shadow: none !important; }
.fs-footer .metform-form-main-wrapper .elementor-section { background: transparent !important; }
.metform-btn { box-shadow: none !important; }
.fs-footer .metform-btn { height: 48px; padding: 0 24px !important; }
.fs-footer .mf-btn-wraper { margin: 0 !important; }
.fs-contactform .elementor-section, .fs-contactform .metform-form-main-wrapper { box-shadow: none !important; }
.fs-footer .elementor-widget-site-logo, .fs-footer .elementor-widget-site-logo .elementor-widget-container { margin-left: 0 !important; padding-left: 0 !important; text-align: left !important; }
.fs-footer .elementor-widget-site-logo img { margin-left: 0 !important; }
