/* Foster's Services theme styles */
:root {
	--fs-deep: #1F4D24;
	--fs-green: #3B7F40;
	--fs-lime: #A3D16F;
	--fs-darkest: #143618;
	--fs-ink: #10161F;
	--fs-slate: #4A5563;
	--fs-paper: #F5F6F4;
	--fs-line: #D9DDE2;
	--fs-tint: #E1EADC;
	--fs-mint: #E4EFD9;
	--fs-pale: #DCE8D6;
	--fs-soft: #C2D6BC;
	--fs-head: Jost, Futura, 'Century Gothic', sans-serif;
	--fs-body: 'IBM Plex Sans', system-ui, -apple-system, 'Segoe UI', sans-serif;
	--fs-radius: 10px;
}

body { background: var(--fs-paper); color: var(--fs-ink); font-family: var(--fs-body); }
.wp-site-blocks { padding: 0; }
.wp-site-blocks > * { margin-block-start: 0; margin-block-end: 0; }

/* Reset block margins inside our layouts; spacing comes from gaps below. */
:where(.fs-main, .fs-topbar, .fs-header, .fs-footer) :where(h1, h2, h3, h4, p, ul, ol, figure, .wp-block-buttons, .wp-block-image) { margin: 0; }
:where(.fs-main, .fs-header, .fs-footer) .wp-block-image img { display: block; max-width: 100%; height: auto; }
.fs-main a, .fs-footer a, .fs-header a { text-underline-offset: 3px; }

.fs-wrap { max-width: 1240px; margin-left: auto !important; margin-right: auto !important; padding-left: 24px; padding-right: 24px; box-sizing: border-box; width: 100%; }

h1, h2, h3 { font-family: var(--fs-head); font-weight: 600; color: var(--fs-deep); letter-spacing: -0.01em; }
.fs-main h1 { font-size: clamp(36px, 5vw, 62px); line-height: 1.05; }
.fs-main h2 { font-size: clamp(30px, 3.4vw, 44px); line-height: 1.1; }
.fs-main h3 { font-size: 22px; line-height: 1.2; }

/* Stacks */
.fs-hero-inner, .fs-head-text, .fs-card, .fs-split-main, .fs-split-side, .fs-panel, .fs-quote-text, .fs-map-text, .fs-project-body, .fs-feature-body,
.fs-careers-card, .fs-contact-card, .fs-prose-section, .fs-prose, .fs-footer-brand, .fs-footer-col, .fs-portrait, .fs-why-item, .fs-band-text,
.fs-cta-text, .fs-sister-text, .fs-contact-cards, .fs-facts, .fs-stat, .fs-tile { display: flex; flex-direction: column; }
.fs-section > .fs-wrap { display: flex; flex-direction: column; gap: 40px; }

/* Eyebrows, leads, small text */
.fs-eyebrow { font-size: 14px; letter-spacing: 0.16em; font-weight: 600; color: var(--fs-lime); text-transform: uppercase; }
.fs-eyebrow--muted { color: var(--fs-slate); }
.fs-eyebrow--dark { color: var(--fs-ink); }
.fs-lead { font-size: 19px; color: #E6EFE2; max-width: 720px; }
.fs-lead a { color: #fff; font-weight: 600; }
.fs-lead-dark { font-size: 19px; color: #34452F; }
.fs-small { font-size: 15px; color: var(--fs-slate); }
.fs-num { font-family: var(--fs-head); font-weight: 700; font-size: 15px; color: var(--fs-green); }

/* Buttons */
.fs-actions { display: flex; flex-wrap: wrap; gap: 14px; }
.wp-block-button .wp-block-button__link { border-radius: 6px; font-weight: 600; font-size: 16px; padding: 15px 24px; line-height: 1.3; text-decoration: none; transition: filter .15s ease, background-color .15s ease; }
.fs-btn-lime .wp-block-button__link { background: var(--fs-lime); color: var(--fs-ink); }
.fs-btn-green .wp-block-button__link { background: var(--fs-green); color: #fff; }
.fs-btn-dark .wp-block-button__link { background: var(--fs-ink); color: #fff; }
.fs-btn-outline .wp-block-button__link { background: transparent; color: #fff; border: 1.5px solid #9DBF94; }
.wp-block-button .wp-block-button__link:hover { filter: brightness(0.94); }
.fs-btn-outline .wp-block-button__link:hover { background: rgba(255,255,255,.08); filter: none; }

/* Top bar & header */
.fs-topbar { background: var(--fs-darkest); color: #C9D3DE; font-size: 14px; }
.fs-topbar-inner { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 6px 28px; padding-top: 10px; padding-bottom: 10px; }
.fs-topbar a { color: #fff; text-decoration: none; margin-left: 22px; }
.fs-topbar a:first-child { margin-left: 0; }
.fs-header { background: #fff; border-bottom: 1px solid var(--fs-line); position: relative; z-index: 50; }
.fs-header-inner { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 16px; padding-top: 16px; padding-bottom: 16px; }
.fs-logo img { height: 64px !important; width: auto !important; }
.fs-header-nav { display: flex; flex-wrap: wrap; align-items: center; gap: 12px 28px; }
.fs-nav { font-weight: 500; font-size: 16px; gap: 6px 26px; }
.fs-nav a { color: var(--fs-deep); text-decoration: none; }
.fs-nav .wp-block-navigation-item__content:hover { color: var(--fs-green); }
.fs-nav .wp-block-navigation__submenu-container { border: 1px solid var(--fs-line) !important; border-top: 3px solid var(--fs-green) !important; border-radius: 0 0 8px 8px; box-shadow: 0 12px 28px rgba(16,22,31,.14); padding: 8px 0 !important; min-width: 280px !important; }
.fs-nav .wp-block-navigation__submenu-container .wp-block-navigation-item__content { padding: 11px 20px !important; }
.fs-header-cta .wp-block-button__link { padding: 12px 20px; }
.fs-nav .wp-block-navigation__responsive-container.is-menu-open { padding: 32px 24px; }
.fs-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content { gap: 18px; font-size: 20px; }

/* Hero */
.fs-hero { position: relative; color: #fff; background-color: var(--fs-deep); background-size: cover; background-position: center; }
.fs-hero-inner { gap: 22px; padding-top: 104px; padding-bottom: 96px; }
.fs-hero--compact .fs-hero-inner { padding-top: 64px; padding-bottom: 64px; }
.fs-hero h1 { color: #fff; max-width: 920px; }
.fs-crumbs { font-size: 14px; color: var(--fs-soft); margin-bottom: 24px !important; }
.fs-crumbs a { color: var(--fs-soft); }
.fs-hero .wp-block-post-title { color: #fff; }

/* Stats */
.fs-stats { border-top: 1px solid #2E6633; }
.fs-stats-inner { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 24px; padding-top: 28px; padding-bottom: 28px; }
.fs-stat-num { font-family: var(--fs-head); font-weight: 700; font-size: 34px; line-height: 1.2; }
.fs-stat-label { color: var(--fs-soft); font-size: 15px; }
.fs-stats--light { background: #fff; border-top: 0; border-bottom: 1px solid var(--fs-line); }
.fs-stats--light .fs-stat-num { color: var(--fs-deep); }
.fs-stats--light .fs-stat-label { color: var(--fs-slate); }

/* Client & member logos */
.fs-clients { background: #fff; border-bottom: 1px solid var(--fs-line); }
.fs-clients-inner { display: flex; flex-direction: column; gap: 16px; padding-top: 32px; padding-bottom: 32px; }
.fs-clients-label { font-size: 15px; font-weight: 600; color: var(--fs-slate); }
.fs-logo-row { display: grid; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); gap: 16px 24px; align-items: center; }
.fs-logo-tile { height: 72px; display: flex; align-items: center; justify-content: center; }
.fs-logo-tile img { max-height: 60px !important; width: auto !important; max-width: 100% !important; object-fit: contain; }
.fs-logo-row--boxed .fs-logo-tile { height: 96px; background: #fff; border: 1px solid var(--fs-line); border-radius: 8px; padding: 14px; box-sizing: border-box; }
.fs-logo-row--boxed .fs-logo-tile img { max-height: 64px !important; }

/* Sections */
.fs-section { padding: 88px 0; }
.fs-section--white { background: #fff; border-top: 1px solid var(--fs-line); border-bottom: 1px solid var(--fs-line); }
.fs-section--green { background: var(--fs-deep); color: #fff; }
.fs-section--green h2, .fs-section--green h3 { color: #fff; }
.fs-section--flush { padding-top: 0; }
.fs-section--flush-bottom { padding-bottom: 0; }
.fs-section-pad { padding-top: 72px; padding-bottom: 88px; }
.fs-head { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: flex-end; gap: 16px 32px; }
.fs-head-text { gap: 12px; max-width: 720px; }
.fs-head-intro { max-width: 440px; color: var(--fs-slate); }
.fs-section--green .fs-head-intro { color: var(--fs-pale); }
.fs-head-link a { font-weight: 600; }
.fs-head-photo { flex: 0 1 420px; }
.fs-head-photo img { width: 100%; height: 220px !important; object-fit: cover; border-radius: var(--fs-radius); }

/* Cards */
.fs-cards { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 270px), 1fr)); gap: 20px; }
.fs-cards--2 { grid-template-columns: repeat(auto-fit, minmax(min(100%, 440px), 1fr)); }
.fs-cards--3 { grid-template-columns: repeat(auto-fit, minmax(min(100%, 300px), 1fr)); }
.fs-cards--4 { grid-template-columns: repeat(auto-fit, minmax(min(100%, 240px), 1fr)); }
.fs-card { background: #fff; border: 1px solid var(--fs-line); border-radius: var(--fs-radius); padding: 28px; gap: 12px; box-sizing: border-box; }
.fs-card p { color: var(--fs-slate); font-size: 16px; }
.fs-card--tint { background: var(--fs-paper); }
.fs-card--topline { border-top: 4px solid var(--fs-green); }
.fs-card--dark { background: var(--fs-deep); border-color: var(--fs-deep); }
.fs-card--dark h3 { color: #fff; }
.fs-card--dark p { color: var(--fs-pale); }
.fs-card--dark .fs-card-link a { color: var(--fs-lime); }
.fs-card-link { margin-top: auto !important; }
.fs-card-link a { font-weight: 600; text-decoration: none; }
.fs-card .fs-checklist { color: var(--fs-ink); font-size: 16px; }

/* Why choose */
.fs-why { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 260px), 1fr)); gap: 1px; background: #2E6633; border: 1px solid #2E6633; border-radius: 12px; overflow: hidden; }
.fs-why-item { background: var(--fs-deep); padding: 28px; gap: 10px; }
.fs-why-item .fs-num { color: var(--fs-lime); }
.fs-why-item h3 { color: #fff; font-size: 21px; }
.fs-why-item p:last-child { color: var(--fs-pale); font-size: 15px; }

/* Projects */
.fs-projects { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 320px), 1fr)); gap: 28px; }
.fs-project { background: #fff; border: 1px solid var(--fs-line); border-radius: 12px; overflow: hidden; display: flex; flex-direction: column; }
.fs-project.is-hidden { display: none; }
.fs-project-img img { width: 100%; height: 220px !important; object-fit: cover; }
.fs-project-img.fs-contain img { object-fit: contain; padding: 20px; box-sizing: border-box; background: #fff; border-bottom: 1px solid var(--fs-line); }
.fs-img-placeholder { height: 220px; background: var(--fs-tint); color: #34452F; font-size: 14px; display: flex; align-items: flex-end; padding: 16px; box-sizing: border-box; }
.fs-project-body { padding: 24px; gap: 10px; flex-grow: 1; }
.fs-project-body p { color: var(--fs-slate); font-size: 15px; }
.fs-tag { font-size: 13px !important; font-weight: 600; letter-spacing: 0.08em; color: var(--fs-slate) !important; }
.fs-filter { display: flex; flex-wrap: wrap; gap: 8px; }
.fs-filter button { min-height: 44px; padding: 0 16px; border-radius: 999px; font: inherit; font-size: 15px; font-weight: 600; cursor: pointer; background: #fff; color: var(--fs-deep); border: 1px solid #C9D9C3; }
.fs-filter button.is-active { background: var(--fs-deep); color: #fff; border-color: var(--fs-deep); }
.fs-feature { display: flex; flex-wrap: wrap; background: #fff; border: 1px solid var(--fs-line); border-radius: 12px; overflow: hidden; }
.fs-feature-media { flex: 1 1 520px; min-height: 360px; }
.fs-feature-body { flex: 1 1 400px; padding: 40px; gap: 16px; justify-content: center; }
.fs-pill { align-self: flex-start; background: var(--fs-lime); color: var(--fs-ink); font-size: 13px; font-weight: 600; letter-spacing: 0.06em; padding: 6px 12px; border-radius: 999px; }

/* Split layouts */
.fs-split { display: flex; flex-wrap: wrap; gap: 48px; }
.fs-split--center { align-items: center; }
.fs-split--top { align-items: flex-start; }
.fs-split > * { flex: 1 1 440px; min-width: 0; }
.fs-split-main { gap: 18px; }
.fs-split-main p { color: var(--fs-slate); }
.fs-split-side { gap: 20px; }
.fs-photo img { width: 100%; height: 460px !important; object-fit: cover; border-radius: var(--fs-radius); }
.fs-portrait { flex: 0 1 380px !important; gap: 12px; }
.fs-photo--portrait img { height: 420px !important; object-position: center 20%; }
.fs-caption { color: var(--fs-slate); font-size: 15px; }
.fs-caption strong { color: var(--fs-ink); }

/* Lists */
.fs-checklist { list-style: none; padding: 0; display: flex; flex-direction: column; gap: 10px; }
.fs-checklist li { position: relative; padding-left: 28px; }
.fs-checklist li::before { content: ""; position: absolute; left: 0; top: 4px; width: 18px; height: 18px; background: var(--fs-check) center/contain no-repeat; }
.fs-chips { list-style: none; padding: 0; display: flex; flex-wrap: wrap; gap: 8px; }
.fs-chips li { background: #fff; border: 1px solid #C9D9C3; border-radius: 999px; padding: 7px 14px; font-size: 15px; }
.fs-iso-grid { list-style: none; padding: 0; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
.fs-iso-grid li { background: #F0F5EC; border-radius: 8px; padding: 12px 14px; font-size: 15px; }
.fs-linkgrid { display: grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); gap: 12px; }
.fs-linkgrid a { display: block; background: #fff; border: 1px solid var(--fs-line); border-radius: 8px; padding: 16px 18px; font-weight: 600; text-decoration: none; color: var(--fs-deep); }

/* Tiles */
.fs-tiles { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 260px), 1fr)); gap: 16px; }
.fs-tile { background: var(--fs-paper); border: 1px solid var(--fs-line); border-radius: var(--fs-radius); padding: 20px 22px 20px 70px; position: relative; font-weight: 600; min-height: 74px; justify-content: center; box-sizing: border-box; }
.fs-tile::before { content: ""; position: absolute; left: 22px; top: 20px; width: 34px; height: 34px; border-radius: 8px; background: var(--fs-mint) var(--fs-check) center/18px no-repeat; }
.fs-tile--dark { background: var(--fs-deep); border-color: var(--fs-deep); color: #fff; }
.fs-tile--dark::before { background: var(--fs-lime) var(--fs-clock-dark) center/18px no-repeat; }

/* Awards & badges */
.fs-rows { display: flex; flex-direction: column; border-top: 1px solid var(--fs-line); }
.fs-row { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 8px; padding: 14px 0; border-bottom: 1px solid var(--fs-line); }
.fs-row-label { font-weight: 600; color: var(--fs-ink) !important; }
.fs-row-value { color: var(--fs-slate); }
.fs-badges { display: flex; flex-wrap: wrap; gap: 10px; align-items: center; }
.fs-badges--award img { width: 92px !important; height: 92px !important; object-fit: contain; }
.fs-badges--accred img { height: 56px !important; width: auto !important; border-radius: 4px; }
.fs-badges--grid { display: flex; flex-wrap: wrap; justify-content: center; gap: 12px; flex: 0 1 460px !important; align-content: start; }
.fs-badges--grid > figure { flex: 0 0 calc(25% - 9px); margin: 0; }
.fs-badges--grid img { width: 100%; height: auto; display: block; }
.fs-badges--small img { width: 64px !important; height: 64px !important; object-fit: contain; }

/* Panels & bands */
.fs-twin { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 440px), 1fr)); gap: 32px; }
.fs-panel { border: 1px solid var(--fs-line); border-radius: var(--fs-radius); padding: 36px; gap: 16px; }
.fs-panel p { color: var(--fs-slate); }
.fs-panel--dark { background: var(--fs-deep); border-color: var(--fs-deep); color: #fff; }
.fs-panel--dark h2 { color: #fff; font-size: 34px; }
.fs-panel--dark p { color: #E6EFE2; }
.fs-panel-head { display: flex; align-items: center; gap: 16px; }
.fs-panel-logo img { width: 72px !important; height: 72px !important; object-fit: contain; }
.fs-band { background: var(--fs-deep); color: #fff; }
.fs-band-inner { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 24px; padding-top: 64px; padding-bottom: 64px; }
.fs-band-text { gap: 8px; max-width: 760px; }
.fs-band h2 { color: #fff; font-size: 34px; }
.fs-band p { color: #E6EFE2; }
.fs-cta { background: var(--fs-green); color: #fff; }
.fs-cta-inner { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 24px; padding-top: 72px; padding-bottom: 72px; }
.fs-cta-text { gap: 10px; max-width: 680px; }
.fs-cta h2 { color: #fff; font-size: clamp(30px, 3vw, 40px); }
.fs-cta p { color: #E6EFE2; }
.fs-sister { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 24px; background: var(--fs-deep); color: #fff; border-radius: 12px; padding: 40px; }
.fs-sister-text { gap: 8px; max-width: 640px; }
.fs-sister h3 { color: #fff; font-size: 32px; }
.fs-sister p:last-child { color: #E6EFE2; }

/* Careers card & latest posts */
.fs-careers-card { flex: 1 1 340px !important; background: var(--fs-lime); color: var(--fs-ink); border-radius: var(--fs-radius); padding: 32px; gap: 14px; }
.fs-careers-card h2 { color: var(--fs-ink); font-size: 32px; }
.fs-careers-card p { color: var(--fs-ink) !important; }
.fs-latest { list-style: none; padding: 0; display: grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); gap: 20px; margin-top: 24px !important; }
.fs-latest li { border-top: 3px solid var(--fs-deep); padding-top: 16px; }
.fs-latest a { font-family: var(--fs-head); font-weight: 700; font-size: 20px; color: var(--fs-deep); text-decoration: none; }
.fs-latest time { display: block; font-size: 14px; color: var(--fs-slate); margin-top: 6px; }
.fs-latest .wp-block-latest-posts__post-excerpt { color: var(--fs-slate); font-size: 15px; margin-top: 6px; }

/* Quote section & form */
.fs-quote { background: var(--fs-deep); color: #fff; }
.fs-quote-inner { display: flex; flex-wrap: wrap; gap: 56px; padding-top: 96px; padding-bottom: 96px; }
.fs-quote-inner > * { flex: 1 1 400px; min-width: 0; }
.fs-quote-inner > .wp-block-shortcode, .fs-quote-inner > .fs-form-card { flex: 1.3 1 520px; }
.fs-quote-text { gap: 18px; }
.fs-quote h2 { color: #fff; }
.fs-quote p { color: var(--fs-pale); }
.fs-quote-phone a { color: #fff; font-family: var(--fs-head); font-weight: 700; font-size: 30px; text-decoration: none; }
.fs-quote-contact a { color: var(--fs-lime); font-weight: 600; }
.fs-form-card { background: #fff; color: var(--fs-ink); border: 1px solid var(--fs-line); border-radius: 12px; padding: 36px; box-sizing: border-box; display: flex; flex-direction: column; gap: 18px; }
.fs-form-title { font-family: var(--fs-head); font-size: 30px; color: var(--fs-deep); margin: 0; }
.fs-form-note { color: var(--fs-slate) !important; font-size: 15px; margin: 0; }
.fs-form-error { background: #FDECEC; color: #8A1C1C !important; border-radius: 6px; padding: 12px 14px; margin: 0; }
.fs-form-done h2 { font-family: var(--fs-head); color: var(--fs-deep); font-size: 30px; margin: 0 0 10px; }
.fs-form-done p { color: var(--fs-slate) !important; margin: 0; }
.fs-form { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 220px), 1fr)); gap: 18px; }
.fs-form label { display: flex; flex-direction: column; gap: 6px; font-weight: 500; font-size: 15px; color: var(--fs-ink); }
.fs-form input, .fs-form select, .fs-form textarea { font: inherit; font-size: 16px; border: 1px solid #A9B4BF; border-radius: 6px; padding: 0 12px; height: 48px; background: #fff; color: var(--fs-ink); box-sizing: border-box; width: 100%; }
.fs-form textarea { height: auto; padding: 12px; }
.fs-form input:focus, .fs-form select:focus, .fs-form textarea:focus { outline: 2px solid var(--fs-green); outline-offset: 1px; border-color: var(--fs-green); }
.fs-full { grid-column: 1 / -1; }
.fs-form-foot { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 14px; font-size: 14px; color: var(--fs-slate); }
.fs-form-foot span { max-width: 420px; }
.fs-submit { height: 52px; padding: 0 32px; border: 0; border-radius: 6px; background: var(--fs-green); color: #fff; font: inherit; font-weight: 600; font-size: 17px; cursor: pointer; }
.fs-submit:hover { filter: brightness(.94); }
.fs-hp { position: absolute !important; left: -9999px !important; width: 1px; height: 1px; overflow: hidden; }

/* Contact page */
.fs-contact { display: flex; flex-wrap: wrap; gap: 40px; align-items: flex-start; }
.fs-contact-cards { flex: 1 1 340px; gap: 16px; min-width: 0; }
.fs-contact > .wp-block-shortcode, .fs-contact > .fs-form-card { flex: 1.6 1 520px; min-width: 0; }
.fs-contact-card { background: #fff; border: 1px solid var(--fs-line); border-radius: var(--fs-radius); padding: 26px; gap: 6px; }
.fs-contact-card h2 { font-size: 24px; }
.fs-contact-card--dark { background: var(--fs-deep); border-color: var(--fs-deep); color: #fff; }
.fs-contact-card--dark h2, .fs-contact-card--dark a { color: #fff; }
.fs-contact-card--dark p { color: var(--fs-pale); }
.fs-big a { font-weight: 600; font-size: 20px; text-decoration: none; }
.fs-gmap { border-radius: 12px; overflow: hidden; border: 1px solid var(--fs-line); background: #fff; }
.fs-gmap iframe { width: 100%; height: 360px; border: 0; display: block; }
.fs-gmap-link { margin: 0; padding: 12px 18px; font-size: 15px; border-top: 1px solid var(--fs-line); }
.fs-gmap-link a { color: var(--fs-green); font-weight: 600; }

/* Service area map */
.fs-map-section { background: #EEF2EC; border-top: 1px solid var(--fs-line); }
.fs-map-inner { display: flex; flex-wrap: wrap; gap: 40px 56px; align-items: center; padding-top: 88px; padding-bottom: 88px; }
.fs-map-text { flex: 1 1 360px; min-width: 0; gap: 18px; }
.fs-map-text p { color: var(--fs-slate); }
.fs-map-svg { flex: 1.4 1 520px; min-width: 0; }
.fs-map-svg svg { display: block; width: 100%; height: auto; }
.fs-facts { gap: 12px; margin-top: 6px; }
.fs-facts p { color: var(--fs-ink) !important; }

/* Privacy policy */
.fs-policy { display: flex; flex-wrap: wrap; gap: 48px; align-items: flex-start; }
.fs-toc { flex: 1 1 260px; max-width: 300px; background: #fff; border: 1px solid var(--fs-line); border-radius: var(--fs-radius); padding: 24px; display: flex; flex-direction: column; gap: 4px; font-size: 15px; box-sizing: border-box; }
.fs-toc a { text-decoration: none; padding: 6px 0; }
.fs-toc-title { font-size: 13px; letter-spacing: .14em; font-weight: 600; color: var(--fs-slate); margin: 0 0 8px; }
.fs-prose { flex: 999 1 560px; max-width: 760px; gap: 40px; color: #2B3440; line-height: 1.65; }
.fs-prose-section { gap: 14px; }
.fs-prose h2 { font-size: 28px; }
.fs-prose-wrap { max-width: 800px; margin: 0 auto; padding: 64px 24px 96px; display: flex; flex-direction: column; gap: 28px; }
.fs-prose-wrap .wp-block-post-content > * + * { margin-top: 1em; }
.fs-placeholder-text { height: auto; align-items: center; border-radius: 8px; }

/* News */
.fs-news-grid { display: grid !important; grid-template-columns: repeat(auto-fill, minmax(min(100%, 320px), 1fr)) !important; gap: 28px; list-style: none; padding: 0; }
.fs-news-grid > li { background: #fff; border: 1px solid var(--fs-line); border-radius: 12px; overflow: hidden; display: flex; flex-direction: column; gap: 10px; padding-bottom: 24px; }
.fs-news-grid > li > *:not(.wp-block-post-featured-image) { padding: 0 24px; margin: 0; }
.fs-news-grid .wp-block-post-featured-image { margin: 0 0 8px; }
.fs-news-grid .wp-block-post-title { font-size: 22px; }
.fs-news-grid .wp-block-post-title a { text-decoration: none; color: var(--fs-deep); }
.fs-news-grid .wp-block-post-title a:hover { color: var(--fs-green); text-decoration: underline; }
.fs-news-date { font-size: 14px; color: var(--fs-slate); padding-top: 16px !important; }
.fs-pagination { margin-top: 40px; gap: 12px; }

/* Footer */
.fs-footer { background: var(--fs-darkest); color: var(--fs-soft); font-size: 15px; }
.fs-footer a { color: var(--fs-soft); text-decoration: none; }
.fs-footer a:hover { color: #fff; }
.fs-footer-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 240px), 1fr)); gap: 40px; padding-top: 56px; padding-bottom: 32px; }
.fs-footer-brand { gap: 12px; }
.fs-footer-logo { align-self: flex-start; background: #fff; border-radius: 8px; padding: 10px; max-width: 100%; box-sizing: border-box; }
.fs-footer-logo img { width: 220px !important; max-width: 100%; height: auto !important; }
.fs-footer-badges { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; background: #fff; border-radius: 8px; padding: 8px; align-self: flex-start; }
.fs-footer-badges img { height: 36px !important; width: auto !important; }
.fs-footer-col { gap: 10px; line-height: 2; }
.fs-footer-title { color: #fff; font-weight: 600; line-height: 1.5; }
.fs-footer-legal { border-top: 1px solid #2A5A2E; padding-top: 20px; padding-bottom: 32px; font-size: 14px; }

/* Icons */
.fs-ico::before { content: ""; display: inline-block; width: 26px; height: 26px; margin-right: 10px; vertical-align: -6px; background: center/contain no-repeat; flex: none; }
.fs-card-title.fs-ico::before { display: block; width: 32px; height: 32px; margin: 0 0 14px; }
.fs-facts .fs-ico { display: flex; gap: 2px; align-items: flex-start; }
.fs-facts .fs-ico::before { width: 22px; height: 22px; margin-top: 2px; }
.fs-band h2.fs-ico::before, .fs-panel h2.fs-ico::before { display: block; width: 38px; height: 38px; margin: 0 0 12px; }

/* Mobile */
@media (max-width: 781px) {
	.fs-section { padding: 64px 0; }
	.fs-hero-inner { padding-top: 64px; padding-bottom: 64px; }
	.fs-photo img { height: 300px !important; }
	.fs-topbar-text { display: none; }
	.fs-topbar a { margin-left: 14px; }
	.fs-logo img { height: 48px !important; }
	.fs-header-cta { display: none; }
	.fs-feature-body, .fs-sister, .fs-panel, .fs-form-card { padding: 24px; }
	.fs-badges--grid > figure { flex-basis: calc(33.333% - 8px); }
	.fs-quote-inner { padding-top: 64px; padding-bottom: 64px; }
	.fs-map-inner { padding-top: 64px; padding-bottom: 64px; }
}

/* Icons & hero photos (generated) */
:root {
	--fs-check: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%233B7F40' stroke-width='2.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m5 12 5 5L20 7'/%3E%3C/svg%3E");
	--fs-clock-dark: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%2310161F' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='9'/%3E%3Cpath d='M12 7v5l3 2'/%3E%3C/svg%3E");
}
.fs-ico-bolt::before { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%233B7F40' stroke-width='1.9' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M13 2 4 14h7l-1 8 9-12h-7l1-8z'/%3E%3C/svg%3E"); }
.fs-ico-medical::before { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%233B7F40' stroke-width='1.9' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='3' width='18' height='18' rx='3'/%3E%3Cpath d='M12 8v8M8 12h8'/%3E%3C/svg%3E"); }
.fs-ico-data::before { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%233B7F40' stroke-width='1.9' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='4' width='18' height='6' rx='1'/%3E%3Crect x='3' y='14' width='18' height='6' rx='1'/%3E%3Cpath d='M7 7h.01M7 17h.01'/%3E%3C/svg%3E"); }
.fs-ico-clock::before { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%233B7F40' stroke-width='1.9' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='9'/%3E%3Cpath d='M12 7v5l3 2'/%3E%3C/svg%3E"); }
.fs-ico-ev::before { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%233B7F40' stroke-width='1.9' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='4' y='3' width='11' height='18' rx='2'/%3E%3Cpath d='M10 7l-2 4h3l-2 4M15 9h2a2 2 0 0 1 2 2v5a1.5 1.5 0 0 0 3 0V8l-2-2'/%3E%3C/svg%3E"); }
.fs-ico-build::before { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%233B7F40' stroke-width='1.9' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 21V8l8-5 8 5v13'/%3E%3Cpath d='M9 21v-6h6v6M4 21h16'/%3E%3C/svg%3E"); }
.fs-ico-test::before { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%233B7F40' stroke-width='1.9' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M9 3h6l1 4H8l1-4z'/%3E%3Crect x='5' y='7' width='14' height='14' rx='2'/%3E%3Cpath d='m9 14 2 2 4-4'/%3E%3C/svg%3E"); }
.fs-ico-people::before { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%233B7F40' stroke-width='1.9' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='9' cy='8' r='3'/%3E%3Ccircle cx='17' cy='9' r='2.5'/%3E%3Cpath d='M3 20c0-3.3 2.7-6 6-6s6 2.7 6 6M14.5 14.3c.8-.2 1.6-.3 2.5-.3 2.5 0 4 1.5 4 4.5'/%3E%3C/svg%3E"); }
.fs-ico-chart::before { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%233B7F40' stroke-width='1.9' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 19V5M4 19h16'/%3E%3Cpath d='m7 15 4-4 3 3 5-6'/%3E%3C/svg%3E"); }
.fs-ico-pin::before { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%233B7F40' stroke-width='1.9' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 22s7-6.2 7-12a7 7 0 0 0-14 0c0 5.8 7 12 7 12z'/%3E%3Ccircle cx='12' cy='10' r='2.5'/%3E%3C/svg%3E"); }
.fs-ico-globe::before { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%233B7F40' stroke-width='1.9' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='9'/%3E%3Cpath d='M3 12h18M12 3a14 14 0 0 1 0 18M12 3a14 14 0 0 0 0 18'/%3E%3C/svg%3E"); }
.fs-ico-phone::before { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%233B7F40' stroke-width='1.9' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M22 16.9v3a2 2 0 0 1-2.2 2 19.8 19.8 0 0 1-8.6-3.1 19.5 19.5 0 0 1-6-6A19.8 19.8 0 0 1 2.1 4.2 2 2 0 0 1 4.1 2h3a2 2 0 0 1 2 1.7c.1.9.4 1.8.7 2.7a2 2 0 0 1-.5 2.1L8 9.8a16 16 0 0 0 6 6l1.3-1.3a2 2 0 0 1 2.1-.4c.9.3 1.8.6 2.7.7a2 2 0 0 1 1.7 2z'/%3E%3C/svg%3E"); }
.fs-ico-tools::before { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%233B7F40' stroke-width='1.9' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M14.7 6.3a4 4 0 0 0-5.4 5.2L3 17.8V21h3.2l6.3-6.3a4 4 0 0 0 5.2-5.4l-2.6 2.6-2.4-.6-.6-2.4 2.6-2.6z'/%3E%3C/svg%3E"); }
.fs-ico-clock-lime::before { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23A3D16F' stroke-width='1.9' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='9'/%3E%3Cpath d='M12 7v5l3 2'/%3E%3C/svg%3E"); }
.fs-ico-ev-lime::before { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23A3D16F' stroke-width='1.9' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='4' y='3' width='11' height='18' rx='2'/%3E%3Cpath d='M10 7l-2 4h3l-2 4M15 9h2a2 2 0 0 1 2 2v5a1.5 1.5 0 0 0 3 0V8l-2-2'/%3E%3C/svg%3E"); }
.fs-contact-card--dark .fs-ico-clock-lime::before { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23A3D16F' stroke-width='1.9' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='9'/%3E%3Cpath d='M12 7v5l3 2'/%3E%3C/svg%3E"); }
.fs-hero--fleet { background-image: linear-gradient(rgba(24,62,29,0.82), rgba(24,62,29,0.82)), url("../img/hero-fleet.jpg"); }
.fs-hero--hospital { background-image: linear-gradient(rgba(24,62,29,0.82), rgba(24,62,29,0.82)), url("../img/hero-hospital-room.jpg"); }
.fs-hero--switchboards { background-image: linear-gradient(rgba(24,62,29,0.82), rgba(24,62,29,0.82)), url("../img/hero-switchboards.jpg"); }
.fs-hero--server-room { background-image: linear-gradient(rgba(24,62,29,0.82), rgba(24,62,29,0.82)), url("../img/hero-server-room.jpg"); }
.fs-hero--plant-room { background-image: linear-gradient(rgba(24,62,29,0.82), rgba(24,62,29,0.82)), url("../img/hero-plant-room.jpg"); }
.fs-hero--rooftop { background-image: linear-gradient(rgba(24,62,29,0.82), rgba(24,62,29,0.82)), url("../img/hero-rooftop.jpg"); }
.fs-hero--rooftop-team { background-image: linear-gradient(rgba(24,62,29,0.82), rgba(24,62,29,0.82)), url("../img/hero-rooftop-team.jpg"); }
.fs-hero--switchroom-corridor { background-image: linear-gradient(rgba(24,62,29,0.82), rgba(24,62,29,0.82)), url("../img/hero-switchroom-corridor.jpg"); }

/* ---------- FAQ (v1.1) ---------- */
.fs-faq-inner { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.6fr); gap: 48px; align-items: start; }
.fs-faq-head h2 { margin-top: 10px; }
.fs-faq-list { display: grid; gap: 12px; }
.fs-faq-item { background: var(--fs-paper); border: 1px solid var(--fs-line); border-radius: var(--fs-radius); padding: 0; }
.fs-faq-item > summary { cursor: pointer; list-style: none; padding: 18px 56px 18px 22px; position: relative; font-family: var(--fs-head); font-weight: 600; font-size: 19px; color: var(--fs-deep); }
.fs-faq-item > summary::-webkit-details-marker { display: none; }
.fs-faq-item > summary::after { content: "+"; position: absolute; right: 22px; top: 50%; transform: translateY(-50%); font-size: 26px; font-weight: 400; color: var(--fs-green); }
.fs-faq-item[open] > summary::after { content: "\2212"; }
.fs-faq-item > summary:focus-visible { outline: 3px solid var(--fs-lime); outline-offset: 2px; border-radius: var(--fs-radius); }
.fs-faq-item > p { padding: 0 22px; margin: 0 0 16px; color: var(--fs-slate); }
.fs-faq-item > p:last-child { margin-bottom: 20px; }
.fs-faq-item a { color: var(--fs-green); font-weight: 600; }
.fs-map-text .fs-small { margin-top: 12px; }
@media (max-width: 900px) { .fs-faq-inner { grid-template-columns: 1fr; gap: 24px; } }

/* ---------- News articles (v1.2) ---------- */
.fs-prose-wrap .wp-block-post-content.fs-prose { gap: 0; max-width: none; font-size: 18px; }
.fs-prose-wrap .wp-block-post-content > h2 { font-size: 28px; line-height: 1.2; margin-top: 1.6em; text-wrap: balance; }
.fs-prose-wrap .wp-block-post-content > p { margin-bottom: 0; }
.fs-prose-wrap .wp-block-post-content a { color: var(--fs-green); font-weight: 600; }
.fs-prose-wrap .wp-block-post-featured-image img { border-radius: var(--fs-radius); width: 100%; object-fit: cover; }
.fs-article-list { padding-left: 1.2em; display: grid; gap: 8px; }
.fs-article-list li::marker { color: var(--fs-green); }
.fs-prose-wrap .wp-block-post-content > p:last-child em { display: block; font-size: 15px; color: var(--fs-slate); border-top: 1px solid var(--fs-line); padding-top: 16px; margin-top: 8px; }
.fs-hero--compact .wp-block-post-title { text-wrap: balance; }
.fs-news-grid .wp-block-post-featured-image img { width: 100%; object-fit: cover; }
.fs-news-grid .wp-block-post-excerpt__excerpt { color: var(--fs-slate); margin: 0; }

/* ---------- Enquiry attachments (v1.3) ---------- */
.fs-upload { display: flex; flex-direction: column; gap: 6px; }
.fs-upload-label { font-weight: 500; font-size: 15px; color: var(--fs-ink); }
.fs-form .fs-upload input[type="file"] { height: auto; padding: 14px 12px; border: 1.5px dashed #A9B4BF; background: var(--fs-paper); cursor: pointer; font-size: 15px; }
.fs-form .fs-upload input[type="file"]:hover, .fs-form .fs-upload input[type="file"]:focus-visible { border-color: var(--fs-green); outline: none; box-shadow: 0 0 0 3px rgba(59,127,64,.18); }
.fs-form .fs-upload input[type="file"]::file-selector-button { font: inherit; font-weight: 600; color: #fff; background: var(--fs-green); border: 0; border-radius: 6px; padding: 8px 14px; margin-right: 12px; cursor: pointer; }
.fs-upload-hint { font-size: 14px; color: var(--fs-slate); }
.fs-upload-msg { font-size: 14px; color: var(--fs-deep); background: var(--fs-mint); border-radius: 6px; padding: 8px 12px; }
.fs-upload-msg.is-error { color: #8A1C1C; background: #FDECEC; }
.fs-form .cf-turnstile { min-height: 65px; }
.fs-feature-media { margin: 0; }
.fs-feature-media img { width: 100%; height: 100%; min-height: 360px; object-fit: cover; display: block; }
.fs-project-img img[src*="project-mt-lawley-award"] { object-position: 50% 95%; }
.fs-project-img img[src*="project-king-edward"] { object-position: 50% 60%; }

/* ---------- Project pages (v1.5) ---------- */
.fs-project .wp-block-heading a { color: inherit; text-decoration: none; }
.fs-project .wp-block-heading a:hover, .fs-project .wp-block-heading a:focus-visible { color: var(--fs-green); text-decoration: underline; }
.fs-project-img a { display: block; }
.fs-split-side .fs-photo img { width: 100%; height: auto; border-radius: var(--fs-radius); display: block; }
.fs-glance { gap: 14px; }
.fs-glance .fs-rows { margin: 0; }
.fs-glance .fs-row { display: flex; flex-direction: column; align-items: flex-start; gap: 2px; }
.fs-glance .fs-row-value { text-align: left; font-weight: 600; color: var(--fs-ink); }
.fs-quote-block { max-width: 860px; display: flex; flex-direction: column; gap: 16px; }
.fs-quote-text-lg { font-family: var(--fs-head); font-size: clamp(22px, 2.6vw, 30px); line-height: 1.35; color: #fff; margin: 0; text-wrap: balance; }
.fs-quote-cite { color: var(--fs-lime); font-size: 15px; letter-spacing: .02em; margin: 0; }
.fs-gallery { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 220px), 1fr)); gap: 14px; }
.fs-gallery .fs-gallery-item { margin: 0; }
.fs-gallery .fs-gallery-item img { width: 100%; aspect-ratio: 4 / 3; height: auto !important; object-fit: cover; border-radius: 8px; display: block; transition: transform .2s ease, box-shadow .2s ease; }
.fs-gallery .fs-gallery-item a:hover img, .fs-gallery .fs-gallery-item a:focus-visible img { transform: translateY(-2px); box-shadow: 0 8px 22px rgba(16,22,31,.15); }
@media (prefers-reduced-motion: reduce) { .fs-gallery .fs-gallery-item img { transition: none; } }
