@charset "UTF-8";
:root {
  --bs-tertiary-color: rgb(245, 166, 35);
  --bg-gradient: radial-gradient(ellipse at -10% 0%, rgba(26, 111, 168, 0.10) 0%, transparent 60%),
                 radial-gradient(ellipse at 110% 0%, rgba(45, 138, 62, 0.12) 0%, transparent 60%),
                 #F7F9FB;
  /* ── Bootstrap-mapped brand colours ── */
  --bs-primary: hsl(204, 73%, 38%); /* #1A6FA8 — Ocean Blue    */
  --bs-primary-rgb: 26, 111, 168;
  --bs-secondary: hsl(131, 51%, 36%); /* #2D8A3E — Forest Green  */
  --bs-secondary-rgb: 45, 138, 62;
  --bs-warning: hsl(37, 91%, 55%); /* #F5A623 — Solar Gold    */
  --bs-warning-rgb: 245, 166, 35;
  /* ── Primary scale ── */
  --color-primary: hsl(204, 73%, 38%); /* #1A6FA8 */
  --color-primary-dark: hsl(206, 81%, 26%); /* #0D4A7A */
  --color-primary-light: hsl(198, 76%, 52%); /* #29ABE2 */
  /* ── Secondary scale ── */
  --color-secondary: hsl(131, 51%, 36%); /* #2D8A3E */
  --color-secondary-dark: hsl(131, 55%, 27%); /* #1F6B2D */
  --color-secondary-light: hsl(131, 50%, 45%); /* #3AAD50 */
  /* ── Accent scale ── */
  --color-accent: hsl(37, 91%, 55%); /* #F5A623 */
  --color-accent-dark: hsl(36, 100%, 44%); /* #E08800 */
  --color-accent-light: hsl(50, 100%, 70%); /* #FFE566 */
  /* ── Neutrals — all on H=213°, saturation tracks darkness ── */
  --color-dark: hsl(213, 52%, 12%); /* #0F1D2F — deepest bg    */
  --color-footer: hsl(213, 40%, 16%); /* #182739 — footer bg     */
  --color-dark-mid: hsl(213, 25%, 23%); /* #2C3949 — body text     */
  --color-mid: hsl(213, 16%, 62%); /* #8F9DAE — captions      */
  --color-light: hsl(213, 38%, 88%); /* #D5DFEC — borders       */
  --color-off-white: hsl(213, 40%, 96%); /* #F1F4F9 — page bg       */
  --color-white: hsl(0, 0%, 100%); /* #FFFFFF — cards         */
  /* ── Tints ── */
  --color-tint-green: hsl(140, 35%, 93%); /* #E8F4EC — eco sections  */
  --color-tint-blue: hsl(205, 68%, 95%); /* #EAF4FB — info sections */
  --color-tint-gold: hsl(37, 92%, 95%); /* #FEF5E7 — highlight bg  */
  /* ── Panel Blues (logo / icon use only) ── */
  --color-panel-light: hsl(211, 65%, 57%); /* #4A90D9 */
  --color-panel-mid: hsl(212, 64%, 40%); /* #2563A8 */
  --color-panel-dark: hsl(214, 68%, 32%); /* #1A4A8A */
  /* ── Typography ── */
  --font-serif: "Merriweather", Georgia, serif;
  --font-sans: "Lato", Arial, sans-serif;
}

a.btn:hover {
  text-decoration: none;
}

h1, h2, h3, h4, h5, h6 {
  text-wrap: balance;
  font-family: Merriweather, serif;
}

.text-tertiary {
  color: var(--bs-tertiary-color) !important;
}

.bg-tertiary {
  background-color: var(--bs-tertiary-color) !important;
}

.font-serif {
  font-family: var(--font-serif) !important;
}

.font-sans {
  font-family: var(--font-sans) !important;
}

.hero {
  padding-block: 6rem;
  min-height: 60vh;
  background: var(--bg-gradient);
}

.btn-outline-secondary:hover {
  color: white !important;
}

.top-bar {
  background-color: var(--color-panel-mid);
  color: var(--color-light);
  font-size: 0.875rem;
  padding-block: 0.35rem;
}
.top-bar .top-bar-links {
  display: flex;
  flex-wrap: wrap;
}
.top-bar a {
  color: var(--color-light);
}
.top-bar .top-bar-socials a {
  font-size: 1rem;
}

.top-bar-items {
  display: flex;
  justify-content: space-between;
  flex-direction: column;
}

@media (min-width: 768px) {
  .top-bar-items {
    flex-direction: row;
  }
}
.fls-nav {
  backdrop-filter: blur(15px);
  background-color: #F7F9FB;
}
.fls-nav .nav-link:hover, .fls-nav .nav-link:focus, .fls-nav .nav-link:active, .fls-nav .nav-link.active {
  text-decoration: underline;
  text-decoration-color: var(--bs-tertiary-color);
  text-decoration-thickness: 2px;
  text-underline-offset: 4px;
}
.fls-nav .navbar-brand {
  max-width: 200px;
}
.fls-nav .nav-link:hover, .fls-nav .nav-link:focus, .fls-nav .nav-link:active, .fls-nav .nav-link.active {
  text-decoration: underline;
  text-decoration-color: var(--bs-tertiary-color);
  text-decoration-thickness: 2px;
  text-underline-offset: 4px;
}

.btn-accent {
  background-color: var(--bs-tertiary-color);
  color: #fff;
  border: none;
}
.btn-accent:hover {
  background-color: var(--bs-tertiary-color);
  color: #fff;
  opacity: 0.9;
}
.btn-accent:focus, .btn-accent:active {
  background-color: var(--bs-tertiary-color);
  color: #fff;
  opacity: 0.8;
}

.icon-wrapper {
  display: grid;
  place-items: center;
  width: 50px;
  height: 50px;
  border-radius: 8px;
  background-color: var(--bs-tertiary-color);
  font-size: 1.5rem;
}

.icon-wrapper-sm {
  width: 25px;
  height: 25px;
  font-size: 0.75em;
}

section.bg-tint-green {
  background-color: var(--color-tint-green);
}
section.bg-tint-green .icon-wrapper {
  background-color: var(--color-tint-green);
  color: var(--bs-secondary);
}

section.bg-tint-blue {
  background-color: var(--color-tint-blue);
}
section.bg-tint-blue .icon-wrapper {
  background-color: var(--color-tint-blue);
  color: var(--bs-primary);
}

footer.fls-footer {
  background: var(--bg-gradient);
  border-top: var(--color-tint-green) 1px solid;
}
footer.fls-footer a {
  color: var(--color-mid);
}
footer.fls-footer svg {
  fill: var(--color-mid);
}
footer.fls-footer .footer-logo {
  max-width: 180px;
}
footer.fls-footer .footer-copyright {
  border-top: var(--color-dark-mid) 1px solid;
  color: var(--color-mid);
  font-size: 0.875rem;
}

.border-top-tertiary {
  border-top-color: var(--bs-tertiary-color);
  border-top-width: 4px;
}

@media print {
  body {
    background: #fff;
  }
  .card {
    box-shadow: none;
  }
  button, .actions {
    display: none;
  }
}