/*
Theme Name: FWEGB
Description: Theme for the Forest, Wildlife & Environment Department, Gilgit-Baltistan.
Version: 0.3.1
Requires PHP: 8.0
Author: FWEGB
Text Domain: fwegb
*/

@font-face {
	font-family: "Inter";
	src: url("assets/fonts/inter-latin-wght-normal.woff2") format("woff2");
	font-weight: 100 900;
	font-display: swap;
}

:root {
	--fw-green-900: #17352a;
	--fw-green-800: #1f4436;
	--fw-green-700: #2b5a46;
	--fw-green-300: #86cfa0;
	--fw-sage-100: #f1f4ee;
	--fw-sage-200: #e6ebe2;
	--fw-line: #dfe4dc;
	--fw-ink: #17231d;
	--fw-muted: #5c6962;
	--fw-white: #fff;
	--fw-radius: 4px;
	--fw-width: 1200px;
	--fw-gutter: 24px;
}

*, *::before, *::after { box-sizing: border-box; }

html { scroll-behavior: smooth; -webkit-text-size-adjust: 100%; }

body {
	margin: 0;
	background: var(--fw-white);
	color: var(--fw-ink);
	font: 400 16px/1.7 "Inter", system-ui, -apple-system, "Segoe UI", sans-serif;
}

img { max-width: 100%; height: auto; }
a { color: var(--fw-green-700); }
a:hover { color: var(--fw-green-900); }
h1, h2, h3, h4, h5, h6 { color: var(--fw-ink); font-weight: 700; line-height: 1.25; letter-spacing: -0.015em; margin: 1.6em 0 .5em; }
h1 { font-size: clamp(2rem, 4vw, 2.75rem); letter-spacing: -0.025em; }
h2 { font-size: clamp(1.4rem, 2.6vw, 1.75rem); }
h3 { font-size: 1.2rem; }
h4, h5, h6 { font-size: 1.05rem; }
:focus-visible { outline: 2px solid var(--fw-green-700); outline-offset: 2px; }

.fw-wrap { width: min(100% - 2 * var(--fw-gutter), var(--fw-width)); margin-inline: auto; }
.screen-reader-text { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
.fw-skip:focus { position: fixed; top: 8px; left: 8px; z-index: 100; width: auto; height: auto; clip-path: none; padding: 8px 16px; background: var(--fw-white); }

/* Top bar */
.fw-topbar { background: var(--fw-green-800); color: #dfe9e3; font-size: .75rem; }
.fw-topbar .fw-wrap { display: flex; justify-content: space-between; gap: 16px; padding-block: 7px; }
.fw-topbar a { color: inherit; text-decoration: none; }
.fw-topbar a:hover { color: var(--fw-white); }

/* Masthead */
.fw-masthead .fw-wrap { display: flex; align-items: center; justify-content: space-between; gap: 24px; padding-block: 14px; }
.fw-brand { display: flex; align-items: center; gap: 14px; color: var(--fw-ink); text-decoration: none; min-width: 0; }
.fw-brand img { width: 48px; height: 54px; object-fit: contain; flex: none; }
.fw-brand__kicker { display: block; font-size: .65rem; font-weight: 600; letter-spacing: .12em; text-transform: uppercase; }
.fw-brand__name { display: block; font-size: 1.2rem; font-weight: 700; line-height: 1.3; letter-spacing: -0.015em; }
.fw-brand__place { display: block; font-size: .75rem; color: var(--fw-muted); }
.fw-tagline { font-size: .75rem; line-height: 1.4; color: var(--fw-muted); text-align: right; }

/* Navigation */
.fw-nav { border-block: 1px solid var(--fw-line); background: var(--fw-white); position: sticky; top: 0; z-index: 50; }
.fw-nav .fw-wrap { display: flex; align-items: stretch; justify-content: space-between; }
.fw-menu, .fw-menu ul { list-style: none; margin: 0; padding: 0; }
.fw-menu { display: flex; flex-wrap: wrap; }
.fw-menu li { position: relative; }
.fw-menu a { display: block; padding: 13px 14px; color: var(--fw-ink); font-size: .8125rem; font-weight: 500; text-decoration: none; }
.fw-menu > li:first-child > a { padding-left: 0; }
.fw-menu a:hover, .fw-menu .current-menu-item > a, .fw-menu .current-menu-ancestor > a { color: var(--fw-green-700); font-weight: 700; }
.fw-menu .menu-item-has-children > a::after { content: ""; display: inline-block; width: 6px; height: 6px; margin-left: 8px; border: solid currentColor; border-width: 0 1.5px 1.5px 0; transform: translateY(-2px) rotate(45deg); }
.fw-menu .sub-menu { position: absolute; top: 100%; left: 0; z-index: 60; display: none; min-width: 240px; padding: 6px; background: var(--fw-white); border: 1px solid var(--fw-line); border-radius: var(--fw-radius); box-shadow: 0 12px 28px rgb(23 53 42 / .12); }
.fw-menu .sub-menu .sub-menu { top: -7px; left: 100%; }
.fw-menu .sub-menu a { padding: 8px 12px; border-radius: 3px; font-weight: 400; }
.fw-menu .sub-menu a:hover { background: var(--fw-sage-100); font-weight: 400; }
.fw-menu .sub-menu .menu-item-has-children > a::after { float: right; margin-top: 9px; transform: rotate(-45deg); }
.fw-menu li:hover > .sub-menu, .fw-menu li:focus-within > .sub-menu, .fw-menu li.is-open > .sub-menu { display: block; }
.fw-menu > li:nth-last-child(-n+4) .sub-menu .sub-menu { left: auto; right: 100%; }
.fw-nav__tools { display: flex; align-items: stretch; border-left: 1px solid var(--fw-line); }
.fw-iconbtn { display: inline-flex; align-items: center; justify-content: center; width: 48px; min-height: 46px; padding: 0; border: 0; background: none; color: var(--fw-ink); cursor: pointer; }
.fw-iconbtn svg { width: 18px; height: 18px; }
.fw-menu-toggle { display: none; }
.fw-searchbar { display: none; border-top: 1px solid var(--fw-line); background: var(--fw-sage-100); padding-block: 14px; }
.fw-searchbar.is-open { display: block; }

/* Forms and buttons */
.fw-search { display: flex; gap: 8px; }
.fw-search input[type="search"], .fw-filter input { flex: 1; width: 100%; min-height: 44px; padding: 8px 14px; background: var(--fw-white); border: 1px solid var(--fw-line); border-radius: var(--fw-radius); font: inherit; font-size: .9rem; }
.fw-btn, .elementor-widget-button .elementor-button, div.wpforms-container-full button[type="submit"] {
	display: inline-flex; align-items: center; gap: 12px; min-height: 44px; padding: 10px 20px; background: var(--fw-green-700); color: var(--fw-white); border: 1px solid var(--fw-green-700); border-radius: var(--fw-radius); font-family: inherit; font-size: .875rem; font-weight: 600; line-height: 1.3; text-decoration: none; cursor: pointer;
}
.fw-btn:hover, .elementor-widget-button .elementor-button:hover { background: var(--fw-green-900); border-color: var(--fw-green-900); color: var(--fw-white); }
.fw-btn--ghost, .fw-ghost .elementor-button { background: transparent; color: var(--fw-white); border-color: rgb(255 255 255 / .7); }
.fw-btn--ghost:hover, .fw-ghost .elementor-button:hover { background: rgb(255 255 255 / .12); border-color: var(--fw-white); }
.fw-light .elementor-button { background: var(--fw-white); color: var(--fw-green-900); border-color: var(--fw-white); }
.fw-light .elementor-button:hover { background: var(--fw-sage-100); color: var(--fw-green-900); border-color: var(--fw-sage-100); }
.fw-arrow::after, .fw-arrow .elementor-button-text::after, .fw-btn::after { content: "\2192"; margin-left: 12px; font-weight: 400; }
.fw-link { color: var(--fw-green-800); font-size: .8125rem; font-weight: 600; text-decoration: none; }
.fw-link:hover { text-decoration: underline; }

/* Page header */
.fw-pagehead { background: var(--fw-sage-100); border-bottom: 1px solid var(--fw-line); padding-block: 18px 40px; }
.fw-crumbs { margin-bottom: 30px; font-size: .75rem; color: var(--fw-muted); }
.fw-crumbs ol { display: flex; flex-wrap: wrap; gap: 4px 0; list-style: none; margin: 0; padding: 0; }
.fw-crumbs li:not(:last-child)::after { content: "\203A"; margin-inline: 10px; }
.fw-crumbs a { color: inherit; text-decoration: none; }
.fw-crumbs a:hover { color: var(--fw-green-700); text-decoration: underline; }
.fw-crumbs [aria-current] { color: var(--fw-ink); font-weight: 600; }
.fw-eyebrow, .fw-eyebrow .elementor-heading-title { display: flex; align-items: center; gap: 12px; color: var(--fw-green-700); font-size: .6875rem; font-weight: 700; letter-spacing: .14em; line-height: 1.4; text-transform: uppercase; }
.fw-eyebrow::before, .fw-eyebrow .elementor-heading-title::before { content: ""; width: 24px; height: 2px; background: currentColor; flex: none; }
.fw-pagehead h1 { margin: 12px 0 0; overflow-wrap: anywhere; }
.fw-pagehead__intro { max-width: 720px; margin: 12px 0 0; color: var(--fw-muted); }

/* Page body */
.fw-main { padding-block: 48px 72px; }
.fw-main--builder { padding: 0; }
.fw-prose { max-width: 100%; overflow-wrap: break-word; }
.fw-prose::after { content: ""; display: block; clear: both; }
.fw-prose > :first-child { margin-top: 0; }
.fw-prose figure { margin: 0 0 24px; }
.fw-prose figure img { display: block; border-radius: var(--fw-radius); }
.fw-prose > figure:first-child { float: right; width: min(42%, 460px); margin: 0 0 24px 40px; padding: 10px; background: var(--fw-sage-100); border: 1px solid var(--fw-line); }
.fw-prose > figure:first-child img { width: 100%; }
.fw-prose table { display: block; width: 100%; overflow-x: auto; border-collapse: collapse; font-size: .875rem; }
.fw-prose th { background: var(--fw-sage-100); text-align: left; }
.fw-prose th, .fw-prose td { padding: 10px 12px; border: 1px solid var(--fw-line); vertical-align: top; }
.fw-gallery { display: grid; grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); gap: 16px; clear: both; margin-block: 24px; }
.fw-gallery figure { margin: 0; }
.fw-gallery img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; }
.fw-featured { float: right; width: min(42%, 460px); margin: 0 0 24px 40px; }
.fw-featured img { display: block; width: 100%; border-radius: var(--fw-radius); }

/* Document rows */
.fw-docfilter { margin-bottom: 20px; }
.fw-filter input { background: var(--fw-white); }
.fw-docs { list-style: none; margin: 0 0 32px; padding: 0; clear: both; }
.fw-doc { display: flex; align-items: center; gap: 16px; padding: 14px 8px; border-bottom: 1px solid var(--fw-line); }
.fw-doc__icon { display: inline-flex; align-items: center; justify-content: center; width: 36px; height: 36px; flex: none; background: var(--fw-sage-200); color: var(--fw-green-700); border-radius: var(--fw-radius); }
.fw-doc__icon svg { width: 18px; height: 18px; }
.fw-doc__body { flex: 1; min-width: 0; font-size: .9375rem; font-weight: 600; line-height: 1.4; overflow-wrap: anywhere; }
.fw-doc__body a { color: var(--fw-ink); text-decoration: none; }
.fw-doc__body a:hover { color: var(--fw-green-700); text-decoration: underline; }
.fw-doc__meta { display: block; margin-top: 2px; color: var(--fw-muted); font-size: .75rem; font-weight: 400; }
.fw-doc__type { padding: 3px 8px; border: 1px solid var(--fw-line); border-radius: 3px; color: var(--fw-muted); font-size: .6875rem; font-weight: 600; text-transform: uppercase; }
.fw-doc__get { display: inline-flex; padding: 8px; color: var(--fw-green-700); }
.fw-doc__get svg { width: 18px; height: 18px; }

/* Update cards */
.fw-tabs { display: flex; flex-wrap: wrap; gap: 4px 24px; margin-bottom: 20px; border-bottom: 1px solid var(--fw-line); }
.fw-tabs button { padding: 8px 0 12px; background: none; border: 0; border-bottom: 2px solid transparent; margin-bottom: -1px; color: var(--fw-muted); font: inherit; font-size: .8125rem; font-weight: 500; cursor: pointer; }
.fw-tabs button[aria-selected="true"] { color: var(--fw-green-800); border-bottom-color: var(--fw-green-700); font-weight: 700; }
.fw-tabpanel[hidden] { display: none; }
.fw-updates { display: grid; grid-template-columns: repeat(var(--fw-cols, 3), minmax(0, 1fr)); gap: 16px; }
.fw-update { display: flex; flex-direction: column; padding: 18px 20px; background: var(--fw-white); border: 1px solid var(--fw-line); border-radius: var(--fw-radius); }
.fw-update__top { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-bottom: 10px; color: var(--fw-muted); font-size: .75rem; }
.fw-tag { padding: 2px 8px; background: var(--fw-sage-200); color: var(--fw-green-800); border-radius: 3px; font-size: .625rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; }
.fw-update h3 { margin: 0 0 8px; font-size: 1rem; line-height: 1.35; overflow-wrap: anywhere; }
.fw-update h3 a { color: inherit; text-decoration: none; }
.fw-update h3 a:hover { color: var(--fw-green-700); }
.fw-update p { margin: 0 0 14px; color: var(--fw-muted); font-size: .8125rem; line-height: 1.6; overflow-wrap: anywhere; }
.fw-update .fw-link { margin-top: auto; }
.fw-empty { padding: 32px; background: var(--fw-sage-100); border-radius: var(--fw-radius); color: var(--fw-muted); text-align: center; }
.fw-pager { display: flex; flex-wrap: wrap; justify-content: center; gap: 6px; margin-top: 32px; font-size: .875rem; }
.fw-pager .page-numbers { display: inline-flex; align-items: center; justify-content: center; min-width: 40px; min-height: 40px; padding: 0 10px; border: 1px solid var(--fw-line); border-radius: var(--fw-radius); text-decoration: none; }
.fw-pager .current { background: var(--fw-green-700); border-color: var(--fw-green-700); color: var(--fw-white); }

/* Page cards */
.fw-cards { display: grid; grid-template-columns: repeat(var(--fw-cols, 3), minmax(0, 1fr)); gap: 16px; }
.fw-card { display: flex; flex-direction: column; background: var(--fw-white); border: 1px solid var(--fw-line); border-radius: var(--fw-radius); overflow: hidden; }
.fw-card__img { display: block; aspect-ratio: 16 / 9; background: var(--fw-sage-200); }
.fw-card__img img { display: block; width: 100%; height: 100%; object-fit: cover; }
.fw-card__body { display: flex; flex: 1; flex-direction: column; padding: 18px 20px 20px; }
.fw-card h3 { margin: 0 0 8px; font-size: 1.05rem; overflow-wrap: anywhere; }
.fw-card h3 a { color: inherit; text-decoration: none; }
.fw-card p { margin: 0 0 14px; color: var(--fw-muted); font-size: .8125rem; line-height: 1.6; }
.fw-card .fw-link { margin-top: auto; }

/* Contact band and footer */
.fw-cta { background: var(--fw-sage-100); border-top: 1px solid var(--fw-line); padding-block: 26px; }
.fw-cta .fw-wrap { display: flex; align-items: center; justify-content: space-between; gap: 24px; }
.fw-cta h2 { margin: 2px 0; font-size: 1.25rem; }
.fw-cta p { margin: 0; color: var(--fw-muted); font-size: .8125rem; }
.fw-cta .fw-eyebrow::before { display: none; }
.fw-cta .fw-btn { flex: none; background: var(--fw-green-900); border-color: var(--fw-green-900); }
.fw-footer { background: var(--fw-green-800); color: #cddad3; font-size: .8125rem; line-height: 1.6; }
.fw-footer a { color: inherit; text-decoration: none; }
.fw-footer a:hover { color: var(--fw-white); text-decoration: underline; }
.fw-footer__grid { display: grid; grid-template-columns: 1.6fr 1fr 1fr 1.3fr; gap: 40px; padding-block: 36px; }
.fw-footer h2 { margin: 0 0 12px; color: var(--fw-white); font-size: .8125rem; letter-spacing: 0; }
.fw-footer ul { list-style: none; margin: 0; padding: 0; }
.fw-footer li { margin-bottom: 6px; }
.fw-footer__brand { display: flex; align-items: center; gap: 12px; margin-bottom: 12px; color: var(--fw-white); font-weight: 700; line-height: 1.3; }
.fw-footer__brand img { width: 44px; height: 50px; object-fit: contain; background: var(--fw-white); border-radius: 3px; padding: 2px; }
.fw-footer__bottom { border-top: 1px solid rgb(255 255 255 / .15); padding-block: 14px; font-size: .75rem; }

/* Elementor sections on the homepage */
.elementor-widget-heading .elementor-heading-title { font-family: inherit; }
.fw-eyebrow.elementor-widget::before { display: none; }
.fw-title .elementor-heading-title { margin: 0; }
.fw-section--sage { background: var(--fw-sage-100); }
.fw-hero { position: relative; min-height: 460px; background-color: var(--fw-green-900); }
.fw-hero::before, .fw-band::before { content: ""; position: absolute; inset: 0; background: linear-gradient(90deg, rgb(15 40 31 / .88), rgb(15 40 31 / .45) 60%, rgb(15 40 31 / .2)); pointer-events: none; }
.fw-hero > *, .fw-band > * { position: relative; }
.fw-hero .fw-eyebrow .elementor-heading-title, .fw-band .fw-eyebrow .elementor-heading-title { color: var(--fw-white); }
.fw-hero h1.elementor-heading-title { color: var(--fw-white); font-size: clamp(2.5rem, 5.5vw, 4rem); font-weight: 700; line-height: 1.15; letter-spacing: -0.03em; }
.fw-hero h1 span { display: block; color: var(--fw-green-300); }
.fw-hero .elementor-widget-text-editor, .fw-band .elementor-widget-text-editor { color: #e5ece8; max-width: 460px; }
.fw-quick { margin-top: -28px; z-index: 2; }
.fw-quick .elementor-widget-icon-box { background: var(--fw-white); border: 1px solid var(--fw-line); padding: 14px 18px; height: 100%; box-shadow: 0 6px 18px rgb(23 53 42 / .06); }
.fw-quick .elementor-icon { color: var(--fw-green-700); font-size: 20px; }
.fw-quick .elementor-icon-box-title { margin: 0; font-size: .875rem; font-weight: 700; }
.fw-quick .elementor-icon-box-title a { color: var(--fw-ink); text-decoration: none; }
.fw-quick .elementor-icon-box-description { color: var(--fw-muted); font-size: .75rem; line-height: 1.4; }
.fw-title .elementor-heading-title { color: var(--fw-ink); font-size: clamp(1.75rem, 3.4vw, 2.4rem); font-weight: 700; line-height: 1.2; letter-spacing: -0.025em; }
.fw-area { background: var(--fw-white); border: 1px solid var(--fw-line); border-radius: var(--fw-radius); overflow: hidden; height: 100%; }
.fw-area .elementor-image-box-img { width: 100% !important; margin: 0 !important; aspect-ratio: 16 / 9; overflow: hidden; display: block; }
.fw-area .elementor-image-box-img img { width: 100%; height: 100%; object-fit: cover; }
.fw-area .elementor-image-box-content { padding: 18px 20px 20px; text-align: left; }
.fw-area .elementor-image-box-title { margin: 0 0 8px; font-size: 1.15rem; font-weight: 700; }
.fw-area .elementor-image-box-title a { color: inherit; text-decoration: none; }
.fw-area .elementor-image-box-description { margin: 0; color: var(--fw-muted); font-size: .8125rem; line-height: 1.6; }
.fw-band { position: relative; background-color: var(--fw-green-900); padding-block: 60px; }
.fw-band .fw-title .elementor-heading-title { color: var(--fw-white); }

@media (max-width: 1100px) {
	.fw-menu-toggle { display: inline-flex; }
	.fw-nav .fw-wrap { flex-wrap: wrap; }
	.fw-nav__tools { order: 1; margin-left: auto; border: 0; }
	.fw-navmenu { display: none; order: 2; width: 100%; max-height: calc(100vh - 60px); overflow-y: auto; border-top: 1px solid var(--fw-line); }
	.fw-navmenu.is-open { display: block; }
	.fw-menu { display: block; padding-block: 8px; }
	.fw-menu a, .fw-menu > li:first-child > a { padding: 11px 44px 11px 0; font-size: .9375rem; }
	.fw-menu .sub-menu, .fw-menu .sub-menu .sub-menu { position: static; display: none; min-width: 0; padding: 0 0 0 14px; border: 0; border-left: 2px solid var(--fw-sage-200); border-radius: 0; box-shadow: none; }
	.fw-menu li:hover > .sub-menu, .fw-menu li:focus-within > .sub-menu { display: none; }
	.fw-menu li.is-open > .sub-menu { display: block; }
	.fw-menu .menu-item-has-children > a::after { display: none; }
	.fw-subtoggle { position: absolute; top: 2px; right: 0; width: 44px; height: 42px; background: none; border: 0; color: var(--fw-ink); cursor: pointer; }
	.fw-subtoggle::before { content: ""; display: inline-block; width: 8px; height: 8px; border: solid currentColor; border-width: 0 2px 2px 0; transform: rotate(45deg); }
	.is-open > .fw-subtoggle::before { transform: rotate(-135deg); }
	.fw-updates, .fw-cards { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.fw-footer__grid { grid-template-columns: 1fr 1fr; }
}
@media (min-width: 1101px) { .fw-subtoggle { display: none; } }

@media (max-width: 720px) {
	.fw-tagline, .fw-topbar__source { display: none; }
	.fw-topbar .fw-wrap { flex-wrap: wrap; gap: 2px 16px; }
	.fw-brand__name { font-size: 1rem; }
	.fw-updates, .fw-cards { grid-template-columns: minmax(0, 1fr); }
	.fw-prose > figure:first-child, .fw-featured { float: none; width: 100%; margin: 0 0 24px; }
	.fw-cta .fw-wrap { flex-direction: column; align-items: flex-start; }
	.fw-footer__grid { grid-template-columns: 1fr; gap: 28px; }
	.fw-doc { flex-wrap: wrap; }
	.fw-doc__type { display: none; }
	.fw-quick { margin-top: 0; }
}

/* Elementor layout helpers */
.e-con { --content-width: var(--fw-width); }
.e-con.fw-section, .e-con.fw-band, .e-con.fw-hero, .e-con.fw-quick { --padding-left: 24px; --padding-right: 24px; --padding-top: 0; --padding-bottom: 0; }
.e-con.fw-section { --padding-top: 56px; --padding-bottom: 56px; }.e-con.fw-hero { --padding-top: 56px; --padding-bottom: 72px; --justify-content: center; }
.e-con.fw-band { --padding-top: 56px; --padding-bottom: 56px; }
.fw-buttons.e-con, .fw-split.e-con, .fw-grid3.e-con, .fw-quick__row.e-con, .fw-contact.e-con { --padding-left: 0; --padding-right: 0; --padding-top: 0; --padding-bottom: 0; }
.fw-buttons.e-con { --gap: 12px; --row-gap: 12px; --column-gap: 12px; }
.fw-quick__row.e-con { --gap: 0; --row-gap: 0; --column-gap: 0; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); }
.fw-grid3.e-con { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; }
.fw-split.e-con { display: grid; grid-template-columns: 1fr 1fr; gap: 48px; }
.fw-contact.e-con { display: grid; grid-template-columns: 3fr 2fr; gap: 24px; align-items: start; }
.fw-panel.e-con { --padding-left: 24px; --padding-right: 24px; --padding-top: 24px; --padding-bottom: 24px; border: 1px solid var(--fw-line); border-radius: var(--fw-radius); background: var(--fw-white); }
.fw-panel .fw-title .elementor-heading-title { font-size: 1.5rem; }
.fw-section--sage .fw-prose { background: transparent; }
.fw-section .fw-prose > figure:first-child { float: none; width: auto; margin: 0 0 24px; padding: 0; background: none; border: 0; }
.fw-section .fw-prose .elementor-widget-container > :first-child { margin-top: 0; }
.fw-hero .elementor-widget-button, .fw-buttons .elementor-widget { width: auto; }
.fw-search.fw-docfilter { max-width: 560px; }
div.wpforms-container-full input[type="text"], div.wpforms-container-full input[type="email"], div.wpforms-container-full textarea { border-color: var(--fw-line) !important; border-radius: var(--fw-radius) !important; max-width: 100% !important; font-family: inherit !important; }

@media (max-width: 1100px) {
	.fw-quick__row.e-con { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.fw-grid3.e-con { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 720px) {
	.fw-quick__row.e-con, .fw-grid3.e-con, .fw-split.e-con, .fw-contact.e-con { grid-template-columns: minmax(0, 1fr); gap: 16px; }
	.e-con.fw-section { --padding-top: 44px; --padding-bottom: 44px; }
	.e-con.fw-quick { --padding-top: 16px; }
}

/* People and image limits in page text */
.fw-prose figure img { max-height: 520px; width: auto; max-width: 100%; }
.fw-prose > figure:first-child img { width: 100%; max-height: none; }
.fw-gallery figure img { width: 100%; max-height: none; }
.fw-people { display: grid; grid-template-columns: repeat(auto-fill, minmax(190px, 1fr)); gap: 16px; margin-block: 16px 40px; clear: both; }
.fw-person { padding: 12px; background: var(--fw-white); border: 1px solid var(--fw-line); border-radius: var(--fw-radius); }
.fw-person figure { margin: 0 0 10px; }
.fw-person figure img { display: block; width: 100%; max-height: none; aspect-ratio: 1; object-fit: cover; object-position: top; }
.fw-person h3 { margin: 0 0 4px; font-size: .9375rem; }
.fw-person p { margin: 0; color: var(--fw-muted); font-size: .8125rem; line-height: 1.5; }

/* Corrections */
.elementor-widget.fw-arrow::after { content: none; }
.fw-card__img { overflow: hidden; }
.fw-card__img img { height: auto; aspect-ratio: 16 / 9; }
.fw-card__img:empty { background: var(--fw-sage-200) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%235c6962' stroke-width='1.5' stroke-linejoin='round'%3E%3Cpath d='m3 19 6-11 4 7 2-3 6 7z'/%3E%3C/svg%3E") center / 44px no-repeat; }
.fw-person > figure:only-child { margin: 0; }

/* Elementor sets its own ::before on containers, so these need the stronger selector. */
.e-con { --content-width: calc(var(--fw-width) + 48px); }
.e-con.fw-hero::before, .e-con.fw-band::before { content: "" !important; display: block; position: absolute; inset: 0; z-index: 0; background: linear-gradient(90deg, rgb(15 40 31 / .9), rgb(15 40 31 / .55) 60%, rgb(15 40 31 / .25)) !important; opacity: 1 !important; pointer-events: none; }
.e-con.fw-hero > .e-con-inner, .e-con.fw-band > .e-con-inner { position: relative; z-index: 1; }
.fw-hero .elementor-widget-text-editor, .fw-band .elementor-widget-text-editor { color: #eef3f0; }
.e-con.e-con-boxed { --content-width: min(100%, var(--fw-width)) !important; }

/* About Us pages */
.fw-btn--outline, .fw-outline .elementor-button { background: var(--fw-white); color: var(--fw-green-900); border-color: var(--fw-line); }
.fw-btn--outline:hover, .fw-outline .elementor-button:hover { background: var(--fw-sage-100); color: var(--fw-green-900); border-color: var(--fw-green-700); }
.fw-title--md .elementor-heading-title { font-size: clamp(1.35rem, 2.4vw, 1.6rem); }
.fw-title--sm .elementor-heading-title { font-size: clamp(1.2rem, 2vw, 1.4rem); line-height: 1.3; }
.e-con.fw-flush { --padding-top: 0; }
.fw-about.e-con, .fw-grid2.e-con, .fw-callout__row.e-con, .fw-org__branches.e-con, .fw-videohead.e-con { --padding-left: 0; --padding-right: 0; --padding-top: 0; --padding-bottom: 0; }
.fw-about.e-con { display: grid; grid-template-columns: minmax(0, 1.8fr) minmax(0, 1fr); gap: 48px; align-items: start; }
.fw-about .elementor-widget-text-editor { color: #3b4741; font-size: .9375rem; }
.fw-grid2.e-con { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; }
.fw-photo figure { margin: 0; border: 1px solid var(--fw-line); border-radius: var(--fw-radius); overflow: hidden; background: var(--fw-sage-100); }
.fw-photo img { display: block; width: 100%; aspect-ratio: 4 / 3; object-fit: cover; }
.fw-photo .widget-image-caption { margin: 0; padding: 8px 12px; color: var(--fw-muted); font-size: .6875rem; line-height: 1.5; text-align: left; }
.fw-stats { margin: 0; border: 1px solid var(--fw-line); border-radius: var(--fw-radius); }
.fw-stats div { display: flex; align-items: center; gap: 20px; padding: 14px 18px; }
.fw-stats div + div { border-top: 1px solid var(--fw-line); }
.fw-stats dt { min-width: 64px; color: var(--fw-green-800); font-size: 1.5rem; font-weight: 700; letter-spacing: -0.02em; }
.fw-stats dd { margin: 0; color: var(--fw-muted); font-size: .75rem; line-height: 1.5; }
.fw-callout.e-con { --padding-top: 32px; --padding-bottom: 32px; --padding-left: 32px; --padding-right: 32px; background: var(--fw-sage-100); border: 1px solid var(--fw-line); border-left: 3px solid var(--fw-green-700); border-radius: var(--fw-radius); }
.fw-callout__row.e-con { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.4fr); gap: 48px; align-items: center; }
.fw-callout .elementor-widget-text-editor { color: #3b4741; font-size: .9375rem; }
.fw-callout .elementor-widget-text-editor p { margin: 0; }
.fw-feature, .fw-linkcard { height: 100%; background: var(--fw-white); border: 1px solid var(--fw-line); border-radius: var(--fw-radius); }
.fw-feature { padding: 22px; }
.fw-feature .elementor-icon-box-wrapper { text-align: left; }
.fw-feature .elementor-icon-box-icon { display: inline-flex; margin: 0 0 16px !important; }
.fw-feature .elementor-icon, .fw-linkcard .elementor-icon, .fw-iconbox .elementor-icon { display: inline-flex; align-items: center; justify-content: center; width: 36px; height: 36px; background: var(--fw-sage-200); border-radius: var(--fw-radius); color: var(--fw-green-700); fill: var(--fw-green-700); font-size: 16px; }
.fw-feature .elementor-icon svg, .fw-linkcard .elementor-icon svg, .fw-iconbox .elementor-icon svg { width: 16px; height: 16px; }
.fw-feature .elementor-icon-box-title { margin: 0 0 8px; font-size: 1rem; font-weight: 700; }
.fw-feature .elementor-icon-box-description, .fw-linkcard .elementor-icon-box-description { margin: 0; color: var(--fw-muted); font-size: .8125rem; line-height: 1.6; }
.fw-linkcard { position: relative; padding: 18px 48px 18px 18px; transition: border-color .15s; }
.fw-linkcard:hover { border-color: var(--fw-green-700); }
.fw-linkcard::after { content: "\2192"; position: absolute; top: 50%; right: 18px; transform: translateY(-50%); color: var(--fw-muted); }
.fw-linkcard .elementor-icon-box-wrapper { display: flex; align-items: center; gap: 16px; text-align: left; }
.fw-linkcard .elementor-icon-box-icon { margin: 0 !important; }
.fw-linkcard .elementor-icon-box-title { margin: 0 0 2px; font-size: .9375rem; font-weight: 700; }
.fw-linkcard .elementor-icon-box-title a { color: var(--fw-ink); text-decoration: none; }
.fw-linkcard .elementor-icon-box-title a::before { content: ""; position: absolute; inset: 0; }
.fw-more { margin-top: 20px; border-top: 1px solid var(--fw-line); }
.fw-more summary { padding: 14px 0; color: var(--fw-green-800); font-size: .875rem; font-weight: 600; cursor: pointer; }
.fw-more p { margin: 0 0 8px; color: #3b4741; font-size: .875rem; }

/* Leadership profile */
.fw-profile { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.95fr); gap: 36px; align-items: start; }
.fw-profile__photo { margin: 0; border: 1px solid var(--fw-line); border-radius: var(--fw-radius); overflow: hidden; background: var(--fw-sage-200); }
.fw-profile__photo img, .fw-profile__photo .fw-initials { display: flex; width: 100%; aspect-ratio: 6 / 5; object-fit: cover; object-position: center 20%; }
.fw-profile__photo .fw-initials { font-size: 3.5rem; }
.fw-profile__photo figcaption { padding: 8px 12px; background: var(--fw-sage-100); color: var(--fw-muted); font-size: .6875rem; line-height: 1.5; }
.fw-initials { align-items: center; justify-content: center; background: var(--fw-sage-200); color: var(--fw-green-800); font-weight: 700; letter-spacing: -0.02em; }
.fw-chips { display: flex; flex-wrap: wrap; gap: 6px; list-style: none; margin: 16px 0 0; padding: 0; }
.fw-chip { display: inline-flex; align-items: center; padding: 6px 10px; background: var(--fw-white); border: 1px solid var(--fw-line); border-radius: var(--fw-radius); color: var(--fw-ink); font-size: .6875rem; font-weight: 500; line-height: 1.3; text-decoration: none; }
.fw-chip:hover { border-color: var(--fw-green-700); color: var(--fw-green-800); }
.fw-chip.fw-arrow::after { margin-left: 6px; }
.fw-profile__org { margin: 0 0 14px; color: var(--fw-green-800); font-size: .875rem; font-weight: 700; line-height: 1.6; }
.fw-profile__bio { color: #3b4741; font-size: .9375rem; }
.fw-profile__bio p { margin: 0 0 14px; }
.fw-facts { margin: 8px 0 24px; border-bottom: 1px solid var(--fw-line); }
.fw-facts div { display: grid; grid-template-columns: 140px minmax(0, 1fr); gap: 16px; padding: 12px 0; border-top: 1px solid var(--fw-line); }
.fw-facts dt { color: var(--fw-muted); font-size: .75rem; }
.fw-facts dd { margin: 0; font-size: .8125rem; line-height: 1.6; }

/* Team directory */
.fw-team__tools { display: flex; flex-wrap: wrap; align-items: center; gap: 12px 16px; margin-bottom: 20px; }
.fw-team__search { position: relative; flex: 1 1 320px; }
.fw-team__search svg { position: absolute; top: 50%; left: 14px; width: 16px; height: 16px; transform: translateY(-50%); color: var(--fw-muted); }
.fw-team__search input, .fw-team__group select { width: 100%; min-height: 44px; padding: 8px 14px; background: var(--fw-white); border: 1px solid var(--fw-line); border-radius: var(--fw-radius); color: var(--fw-ink); font: inherit; font-size: .875rem; }
.fw-team__search input { padding-left: 40px; }
.fw-team__group { flex: 0 1 260px; }
.fw-team__count { margin: 0; color: var(--fw-muted); font-size: .8125rem; white-space: nowrap; }
.fw-team__list { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px; list-style: none; margin: 0; padding: 0; }
.fw-member { display: flex; align-items: flex-start; gap: 16px; padding: 16px; background: var(--fw-white); border: 1px solid var(--fw-line); border-radius: var(--fw-radius); }
.fw-member[hidden] { display: none; }
.fw-member__photo { flex: none; width: 60px; height: 60px; overflow: hidden; border-radius: var(--fw-radius); background: var(--fw-sage-200); }
.fw-member__photo img, .fw-member__photo .fw-initials { display: flex; width: 100%; height: 100%; object-fit: cover; object-position: top; font-size: 1.05rem; }
.fw-member__body { display: flex; flex-direction: column; min-width: 0; }
.fw-member__group { color: var(--fw-green-700); font-size: .625rem; font-weight: 700; letter-spacing: .1em; line-height: 1.5; text-transform: uppercase; }
.fw-member__name { margin-top: 2px; font-size: .9375rem; line-height: 1.35; }
.fw-member__role { margin-top: 2px; color: var(--fw-muted); font-size: .75rem; line-height: 1.45; }
.fw-member .fw-link { margin-top: 8px; font-size: .75rem; }
.fw-team .fw-pager button { background: var(--fw-white); color: var(--fw-ink); font: inherit; cursor: pointer; }
.fw-team .fw-pager button.current { background: var(--fw-green-700); color: var(--fw-white); }
.fw-empty[hidden] { display: none; }

/* Organisational chart */
.fw-org.e-con { --padding-left: 0; --padding-right: 0; --padding-top: 0; --padding-bottom: 0; --gap: 0; --row-gap: 0; max-width: 960px; margin-inline: auto; }
.fw-org__top.e-con { --padding-top: 28px; --padding-bottom: 28px; --padding-left: 24px; --padding-right: 24px; --gap: 6px; --row-gap: 6px; width: min(100%, 440px); margin-inline: auto; background: var(--fw-green-800); border-radius: var(--fw-radius); text-align: center; }
.fw-org__top .fw-eyebrow .elementor-heading-title { justify-content: center; color: #cfe3d6; }
.fw-org__top .fw-eyebrow .elementor-heading-title::before { display: none; }
.fw-org__top .fw-title .elementor-heading-title { color: var(--fw-white); font-size: 1.35rem; line-height: 1.3; }
.fw-org__top .elementor-widget-text-editor { color: #cfe3d6; font-size: .75rem; }
.fw-org__top .elementor-widget-text-editor p { margin: 0; }
.fw-org__branches.e-con { --padding-top: 40px; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 24px;
	background:
		linear-gradient(#b9c4bc, #b9c4bc) center 0 / 1px 20px no-repeat,
		linear-gradient(#b9c4bc, #b9c4bc) center 20px / calc(50% + 12px) 1px no-repeat,
		linear-gradient(#b9c4bc, #b9c4bc) calc(25% - 6px) 20px / 1px 20px no-repeat,
		linear-gradient(#b9c4bc, #b9c4bc) calc(75% + 6px) 20px / 1px 20px no-repeat;
}
.fw-org__unit.e-con { --padding-top: 24px; --padding-bottom: 24px; --padding-left: 24px; --padding-right: 24px; --gap: 6px; --row-gap: 6px; background: var(--fw-white); border: 1px solid var(--fw-line); border-radius: var(--fw-radius); }
.fw-org__unit .fw-title .elementor-heading-title { font-size: 1.1rem; }
.fw-org__unit .elementor-widget-text-editor { color: var(--fw-muted); font-size: .8125rem; line-height: 1.6; }
.fw-org__unit ul { margin: 6px 0 0; padding-left: 18px; }
.fw-org__unit p { margin: 0; }
.fw-iconbox .elementor-icon-wrapper { display: flex; margin-bottom: 10px; }
.fw-org__programmes.e-con { --padding-top: 20px; --padding-bottom: 20px; --padding-left: 24px; --padding-right: 24px; --gap: 12px; --row-gap: 12px; margin-top: 24px; background: var(--fw-sage-100); border: 1px solid var(--fw-line); border-radius: var(--fw-radius); }
.fw-org__programmes .fw-eyebrow .elementor-heading-title::before { display: none; }
.fw-org__programmes .fw-chips { margin: 0; }
.fw-note { color: var(--fw-muted); font-size: .75rem; }
.fw-note p { margin: 0; }

/* Media */
.fw-videohead.e-con { display: grid; grid-template-columns: auto minmax(0, 1fr) auto; gap: 20px; align-items: center; }
.fw-videohead .elementor-icon { display: inline-flex; align-items: center; justify-content: center; width: 48px; height: 48px; border: 1px solid var(--fw-green-700); border-radius: 50%; color: var(--fw-green-700); fill: var(--fw-green-700); font-size: 16px; }
.fw-videohead .elementor-icon svg { width: 16px; height: 16px; }
.fw-videohead .fw-eyebrow .elementor-heading-title::before { display: none; }
.fw-videos { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; list-style: none; margin: 24px 0 0; padding: 0; }
.fw-video a { display: flex; flex-direction: column; height: 100%; background: var(--fw-white); border: 1px solid var(--fw-line); border-radius: var(--fw-radius); overflow: hidden; color: var(--fw-ink); text-decoration: none; }
.fw-video a:hover { border-color: var(--fw-green-700); }
.fw-video__img { position: relative; display: block; aspect-ratio: 16 / 9; background: var(--fw-green-900); }
.fw-video__img img { display: block; width: 100%; height: 100%; object-fit: cover; }
.fw-video__play { position: absolute; top: 50%; left: 50%; display: inline-flex; align-items: center; justify-content: center; width: 48px; height: 48px; transform: translate(-50%, -50%); background: rgb(23 35 29 / .78); border-radius: 50%; color: var(--fw-white); }
.fw-video__play svg { width: 20px; height: 20px; margin-left: 3px; }
.fw-video__title { padding: 14px 16px 2px; font-size: .875rem; font-weight: 700; line-height: 1.4; }
.fw-video__meta { padding: 0 16px 14px; color: var(--fw-muted); font-size: .75rem; }
.fw-gallery figure { position: relative; overflow: hidden; border-radius: var(--fw-radius); }
.fw-gallery__open { position: absolute; right: 8px; bottom: 8px; display: inline-flex; align-items: center; gap: 6px; padding: 5px 10px; background: rgb(23 35 29 / .78); border: 0; border-radius: 3px; color: var(--fw-white); font: inherit; font-size: .6875rem; font-weight: 500; cursor: pointer; }
.fw-gallery__open svg { width: 14px; height: 14px; }
.fw-gallery__open::before { content: ""; position: absolute; inset: -400px -8px -8px -400px; }
.fw-viewer { max-width: 94vw; max-height: 94vh; padding: 0; background: transparent; border: 0; overflow: visible; }
.fw-viewer::backdrop { background: rgb(10 22 16 / .88); }
.fw-viewer img { display: block; max-width: 94vw; max-height: 90vh; width: auto; height: auto; border-radius: var(--fw-radius); }
.fw-viewer__close { position: absolute; top: -44px; right: 0; width: 40px; height: 40px; background: none; border: 0; color: var(--fw-white); font-size: 2rem; line-height: 1; cursor: pointer; }

@media (max-width: 1100px) {
	.fw-team__list, .fw-videos { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.fw-about.e-con, .fw-callout__row.e-con { gap: 32px; }
}
@media (max-width: 720px) {
	.fw-about.e-con, .fw-callout__row.e-con, .fw-grid2.e-con, .fw-profile, .fw-team__list, .fw-videos { grid-template-columns: minmax(0, 1fr); gap: 16px; }
	.fw-callout.e-con { --padding-top: 24px; --padding-bottom: 24px; --padding-left: 20px; --padding-right: 20px; }
	.fw-facts div { grid-template-columns: minmax(0, 1fr); gap: 2px; }
	.fw-videohead.e-con { grid-template-columns: minmax(0, 1fr); }
	.fw-org__branches.e-con { --padding-top: 24px; grid-template-columns: minmax(0, 1fr); gap: 16px; background: linear-gradient(#b9c4bc, #b9c4bc) center 0 / 1px 24px no-repeat; }
	.fw-team__group { flex-basis: 100%; }
}

/* Column containers inside grids sit flush with the section edge. */
.fw-about > .e-con, .fw-callout__row > .e-con, .fw-videohead > .e-con, .fw-split > .e-con { --padding-top: 0; --padding-bottom: 0; --padding-left: 0; --padding-right: 0; }
.elementor-widget-text-editor p:first-child { margin-top: 0; }
.elementor-widget-text-editor p:last-child { margin-bottom: 0; }
.fw-feature .elementor-icon-box-wrapper { align-items: flex-start; text-align: left !important; }
.fw-org__top .fw-eyebrow { justify-content: center; }
.fw-video__img { overflow: hidden; }
.e-con .fw-gallery { grid-template-columns: repeat(3, minmax(0, 1fr)); }
@media (max-width: 720px) { .e-con .fw-gallery { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; } }

/* Link cards */
.fw-lc__list { display: grid; grid-template-columns: repeat(var(--fw-cols, 3), minmax(0, 1fr)); gap: 16px; list-style: none; margin: 0; padding: 0; }
.fw-lc__item { display: flex; flex-direction: column; min-width: 0; background: var(--fw-white); border: 1px solid var(--fw-line); border-radius: var(--fw-radius); overflow: hidden; }
.fw-lc__item[hidden] { display: none; }
.fw-lc__body { display: flex; flex: 1; flex-direction: column; padding: 18px 20px 20px; }
.fw-lc__icon { display: inline-flex; align-items: center; justify-content: center; flex: none; width: 36px; height: 36px; margin: 20px 20px 0; background: var(--fw-sage-200); border-radius: var(--fw-radius); color: var(--fw-green-700); }
.fw-lc__icon svg { width: 18px; height: 18px; }
.fw-lc--tiles .fw-lc__body { padding-top: 14px; }
.fw-lc__eyebrow { margin-bottom: 4px; color: var(--fw-green-700); font-size: .625rem; font-weight: 700; letter-spacing: .12em; line-height: 1.5; text-transform: uppercase; }
.fw-lc__title { font-size: 1rem; line-height: 1.35; }
.fw-lc__meta { margin-top: 2px; color: var(--fw-green-800); font-size: .8125rem; font-weight: 600; }
.fw-lc--media .fw-lc__meta { color: var(--fw-muted); font-style: italic; font-weight: 400; }
.fw-lc__text { margin-top: 8px; color: var(--fw-muted); font-size: .8125rem; line-height: 1.6; }
.fw-lc__body .fw-link { margin-top: auto; padding-top: 14px; }
.fw-lc__img { position: relative; display: block; aspect-ratio: 16 / 9; overflow: hidden; background: linear-gradient(135deg, var(--fw-sage-200), var(--fw-sage-100)); }
.fw-lc__img img { display: block; width: 100%; height: 100%; object-fit: cover; }
.fw-lc__noimg { display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 6px; height: 100%; color: var(--fw-muted); font-size: .6875rem; }
.fw-lc__noimg svg { width: 26px; height: 26px; color: var(--fw-green-700); }
.fw-lc__badge { position: absolute; left: 10px; bottom: 10px; padding: 3px 8px; background: var(--fw-green-800); border-radius: 3px; color: var(--fw-white); font-size: .625rem; font-weight: 600; }
.fw-lc--media .fw-lc__item { flex-direction: row; align-items: flex-start; gap: 16px; padding: 16px; }
.fw-lc--media .fw-lc__img { flex: none; width: 76px; height: 76px; aspect-ratio: auto; border-radius: var(--fw-radius); }
.fw-lc--media .fw-lc__noimg span { display: none; }
.fw-lc--media .fw-lc__body { padding: 0; }
.fw-lc--media .fw-lc__body .fw-link { padding-top: 8px; }
.fw-lc--numbered .fw-lc__num { padding: 18px 20px 0; color: var(--fw-muted); font-size: .75rem; font-weight: 600; }
.fw-lc--numbered .fw-lc__body { padding-top: 6px; }
.fw-lc--numbered .fw-lc__title { font-size: 1.05rem; }
.fw-lc--rows .fw-lc__list { gap: 10px; }
.fw-lc__row { display: flex; align-items: center; gap: 12px; height: 100%; padding: 12px 16px; color: var(--fw-ink); text-decoration: none; }
.fw-lc__row::after { content: "\2192"; margin-left: auto; color: var(--fw-muted); }
.fw-lc__row:hover { background: var(--fw-sage-100); }
.fw-lc--rows .fw-lc__icon { width: auto; height: auto; margin: 0; background: none; }
.fw-lc--rows .fw-lc__title { font-size: .8125rem; font-weight: 600; }
.fw-lc__tools { display: flex; flex-wrap: wrap; align-items: center; gap: 12px 16px; margin-bottom: 20px; }

/* Notices and highlight bands */
.fw-notice { position: relative; padding: 16px 20px 16px 52px; background: var(--fw-sage-100); border: 1px solid var(--fw-line); border-radius: var(--fw-radius); font-size: .8125rem; line-height: 1.6; }
.fw-notice::before { content: ""; position: absolute; top: 17px; left: 20px; width: 18px; height: 18px; background: var(--fw-green-700); -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2'%3E%3Ccircle cx='12' cy='12' r='9'/%3E%3Cpath d='M12 8h.01M11 12h1v5h1'/%3E%3C/svg%3E") center / contain no-repeat; mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2'%3E%3Ccircle cx='12' cy='12' r='9'/%3E%3Cpath d='M12 8h.01M11 12h1v5h1'/%3E%3C/svg%3E") center / contain no-repeat; }
.fw-notice strong { display: block; margin-bottom: 2px; font-size: .875rem; }
.fw-notice p { margin: 0; color: var(--fw-muted); }
.fw-notice--warn { background: #fdf6e9; border-color: #f0dfbd; }
.fw-notice--warn::before { background: #9a6a12; }
.fw-bandstat { display: flex; flex-wrap: wrap; align-items: center; gap: 12px 24px; padding: 20px 24px; background: var(--fw-sage-100); border: 1px solid var(--fw-line); border-left: 3px solid var(--fw-green-700); border-radius: var(--fw-radius); }
.fw-bandstat__num { color: var(--fw-green-800); font-size: 2rem; font-weight: 700; letter-spacing: -0.02em; line-height: 1; }
.fw-bandstat__body { flex: 1 1 320px; min-width: 0; }
.fw-bandstat__body strong { display: block; font-size: .9375rem; }
.fw-bandstat__body p { margin: 2px 0 0; color: var(--fw-muted); font-size: .8125rem; line-height: 1.6; }
.fw-bandstat .fw-link { white-space: nowrap; }
.fw-checks { list-style: none; margin: 0; padding: 0; }
.fw-checks li { position: relative; padding: 4px 0 4px 26px; font-size: .875rem; }
.fw-checks li::before { content: ""; position: absolute; top: 9px; left: 2px; width: 10px; height: 6px; border: solid var(--fw-green-700); border-width: 0 0 2px 2px; transform: rotate(-45deg); }
.fw-stats--grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; border: 0; }
.fw-stats--grid div { flex-direction: column; align-items: flex-start; gap: 4px; padding: 14px 16px; border: 1px solid var(--fw-line); border-radius: var(--fw-radius); }
.fw-stats--grid div + div { border-top: 1px solid var(--fw-line); }
.fw-stats--grid dt { min-width: 0; font-size: 1.35rem; }
.fw-table { width: 100%; border-collapse: collapse; font-size: .8125rem; }
.fw-table th { padding: 10px 14px; background: var(--fw-sage-100); color: var(--fw-muted); font-size: .625rem; font-weight: 700; letter-spacing: .1em; text-align: left; text-transform: uppercase; }
.fw-table td { padding: 12px 14px; border-top: 1px solid var(--fw-line); vertical-align: top; }
.fw-table td:first-child { font-weight: 600; }
.fw-tablewrap { overflow-x: auto; border: 1px solid var(--fw-line); border-radius: var(--fw-radius); }
.fw-tags { display: flex; flex-wrap: wrap; gap: 6px; list-style: none; margin: 0; padding: 0; }
.fw-tags li { padding: 4px 10px; background: var(--fw-sage-100); border: 1px solid var(--fw-line); border-radius: 999px; font-size: .75rem; }

/* Dark panels and park banner */
.fw-darkpanel.e-con { --padding-top: 32px; --padding-bottom: 32px; --padding-left: 32px; --padding-right: 32px; --gap: 12px; --row-gap: 12px; background: var(--fw-green-800); border-radius: var(--fw-radius); color: #dfe9e3; }
.fw-darkpanel .fw-eyebrow .elementor-heading-title { color: #cfe3d6; }
.fw-darkpanel .fw-eyebrow .elementor-heading-title::before { display: none; }
.fw-darkpanel .fw-title .elementor-heading-title { color: var(--fw-white); }
.fw-darkpanel .elementor-widget-text-editor { color: #dfe9e3; font-size: .875rem; }
.fw-darkpanel a, .fw-darkpanel .fw-link { color: var(--fw-white); }
.fw-darkpanel .fw-iconbox .elementor-icon { background: rgb(255 255 255 / .12); color: var(--fw-white); fill: var(--fw-white); }
.fw-intro2.e-con { --padding-left: 0; --padding-right: 0; --padding-top: 0; --padding-bottom: 0; display: grid; grid-template-columns: 1fr 1fr; gap: 0; overflow: hidden; border-radius: var(--fw-radius); }
.fw-intro2 > .e-con:first-child { --padding-top: 0; --padding-bottom: 0; --padding-left: 0; --padding-right: 0; min-height: 260px; }
.fw-intro2 .fw-darkpanel.e-con { border-radius: 0; justify-content: center; }
.fw-cover, .fw-cover .elementor-widget-container, .fw-cover img { height: 100%; }
.fw-cover img { display: block; width: 100%; object-fit: cover; }
.e-con.fw-parkhero { --padding-top: 120px; --padding-bottom: 32px; --padding-left: 32px; --padding-right: 32px; --justify-content: flex-end; min-height: 300px; border-radius: var(--fw-radius); overflow: hidden; }
.fw-parkhero .fw-title .elementor-heading-title { color: var(--fw-white); }
.fw-parkhero .fw-eyebrow .elementor-heading-title::before { display: none; }
.fw-keyfacts.e-con { --padding-top: 24px; --padding-bottom: 24px; --padding-left: 24px; --padding-right: 24px; background: var(--fw-sage-100); border: 1px solid var(--fw-line); border-radius: var(--fw-radius); }
.fw-keyfacts .fw-facts { margin: 0; border: 0; }
.fw-keyfacts .fw-facts div { grid-template-columns: minmax(0, 1fr); gap: 2px; padding: 10px 0; }
.fw-keyfacts .fw-facts dt { font-size: .625rem; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; }
.fw-lists.e-con { --padding-left: 0; --padding-right: 0; --padding-top: 0; --padding-bottom: 0; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; }
.fw-lists .elementor-widget-text-editor { height: 100%; padding: 20px; background: var(--fw-white); border: 1px solid var(--fw-line); border-radius: var(--fw-radius); font-size: .8125rem; }
.fw-lists h3 { margin: 0 0 10px; font-size: .9375rem; }
.fw-lists ul { margin: 0; padding-left: 18px; columns: 2; column-gap: 20px; }
.fw-lists li { break-inside: avoid; margin-bottom: 3px; }

@media (max-width: 1100px) {
	.fw-lc__list { grid-template-columns: repeat(min(var(--fw-cols, 3), 2), minmax(0, 1fr)); }
	.fw-lists.e-con { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 720px) {
	.fw-lc__list, .fw-intro2.e-con, .fw-lists.e-con { grid-template-columns: minmax(0, 1fr); }
	.fw-stats--grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.e-con.fw-parkhero { --padding-top: 80px; --padding-left: 20px; --padding-right: 20px; min-height: 220px; }
	.fw-darkpanel.e-con, .fw-keyfacts.e-con { --padding-left: 20px; --padding-right: 20px; }
}
.fw-intro2 > .e-con:first-child { position: relative; }
.fw-intro2 .fw-cover { position: absolute; inset: 0; margin: 0 !important; }
.fw-intro2 .fw-cover img { width: 100%; height: 100%; max-height: none; object-fit: cover; }
@media (max-width: 720px) { .fw-intro2 .fw-cover { position: static; } .fw-intro2 > .e-con:first-child { min-height: 0; } }
.fw-stats--row { grid-template-columns: repeat(5, minmax(0, 1fr)); }
@media (max-width: 1100px) { .fw-stats--row { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
@media (max-width: 720px) { .fw-stats--row { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
.e-con.fw-progbanner { --padding-top: 36px; --padding-bottom: 36px; min-height: 0; }
.fw-status { display: inline-block; padding: 2px 8px; background: #e3f1e7; border-radius: 3px; color: var(--fw-green-800); font-size: .6875rem; font-weight: 600; white-space: nowrap; }
.fw-status--no { background: #fbeedd; color: #8a5a0b; }
.fw-table--num td:last-child { white-space: nowrap; }
.fw-table--num td:nth-child(2) { font-weight: 400; }
.fw-table--num td:first-child { color: var(--fw-muted); font-weight: 400; }

/* Map viewer */
.fw-mapview { display: grid; grid-template-columns: minmax(0, 1fr) 300px; gap: 24px; align-items: start; }
.fw-mapview__stage { display: flex; flex-direction: column; background: var(--fw-white); border: 1px solid var(--fw-line); border-radius: var(--fw-radius); overflow: hidden; }
.fw-mapview__stage:fullscreen { border: 0; border-radius: 0; }
.fw-mapview__bar { display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 14px 18px; border-bottom: 1px solid var(--fw-line); }
.fw-mapview__label { display: block; color: var(--fw-green-700); font-size: .625rem; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; }
.fw-mapview__title, .fw-mapview__choose { display: block; font-size: 1rem; line-height: 1.35; }
.fw-mapview__choose { margin: 2px 0 12px; font-size: 1.15rem; }
.fw-mapview__tools { display: flex; gap: 6px; flex: none; }
.fw-mapview__tools button { min-width: 36px; height: 36px; padding: 0 8px; background: var(--fw-white); border: 1px solid var(--fw-line); border-radius: var(--fw-radius); color: var(--fw-ink); font: inherit; font-size: .875rem; font-weight: 600; cursor: pointer; }
.fw-mapview__tools button:hover { border-color: var(--fw-green-700); }
.fw-mapview__tools svg { width: 16px; height: 16px; vertical-align: middle; }
.fw-mapview__canvas { height: min(70vh, 640px); overflow: auto; background: var(--fw-sage-100); }
.fw-mapview__stage:fullscreen .fw-mapview__canvas { flex: 1; height: auto; }
.fw-mapview__canvas img { display: block; width: 100%; max-width: 100%; height: auto; margin: 0 auto; }
.fw-mapview__foot { display: flex; justify-content: space-between; gap: 16px; padding: 12px 18px; border-top: 1px solid var(--fw-line); }
.fw-mapview__side { padding: 20px; background: var(--fw-white); border: 1px solid var(--fw-line); border-radius: var(--fw-radius); }
.fw-mapview__list { display: grid; gap: 8px; list-style: none; margin: 0 0 16px; padding: 0; }
.fw-mapview__list a { display: flex; align-items: center; gap: 12px; padding: 8px; border: 1px solid var(--fw-line); border-radius: var(--fw-radius); color: var(--fw-ink); font-size: .8125rem; font-weight: 600; line-height: 1.35; text-decoration: none; }
.fw-mapview__list a:hover { border-color: var(--fw-green-700); }
.fw-mapview__list a[aria-current] { background: var(--fw-sage-100); border-color: var(--fw-green-700); }
.fw-mapview__list img { flex: none; width: 48px; height: 48px; object-fit: cover; border-radius: 3px; }
.fw-mapview__list small { display: block; margin-top: 2px; color: var(--fw-muted); font-size: .6875rem; font-weight: 400; }
.fw-mapview__about { padding-top: 14px; border-top: 1px solid var(--fw-line); font-size: .8125rem; }
.fw-mapview__about p { margin: 4px 0 0; color: var(--fw-muted); }
@media (max-width: 900px) {
	.fw-mapview { grid-template-columns: minmax(0, 1fr); }
	.fw-mapview__canvas { height: auto; max-height: 70vh; }
}
@media (max-width: 720px) {
	.fw-mapview__bar { flex-wrap: wrap; }
	.fw-mapview__foot { flex-direction: column; }
}

/* Legislation pages number their documents, as in the design. */
:is(.fw-page-acts, .fw-page-rules, .fw-page-policies, .fw-page-procedures) .fw-prose { counter-reset: fw-doc; }
:is(.fw-page-acts, .fw-page-rules, .fw-page-policies, .fw-page-procedures) .fw-doc::before { counter-increment: fw-doc; content: counter(fw-doc, decimal-leading-zero); flex: none; width: 22px; color: var(--fw-muted); font-size: .75rem; }
.fw-doc--none .fw-doc__body { color: var(--fw-muted); }
.fw-doc--none .fw-doc__icon { background: var(--fw-sage-100); color: var(--fw-muted); }
.fw-doc--none .fw-doc__type { margin-right: 34px; }
.fw-photo--tall img { aspect-ratio: 4 / 5; object-position: center 30%; }
.fw-species h3 { margin: 18px 0 6px; font-size: 1rem; }
.fw-species p { margin: 0 0 12px; color: #3b4741; font-size: .9375rem; }
