
:root {
  /* Modernised ICS palette */
  --ics-green: #469d4d;
  --ics-green-original: #4eab56;
  --ics-teal: #5ea3b0;
  --ics-teal-soft: #dff0f3;
  --ics-navy: #34404d;
  --ics-navy-2: #3f4854;
  --ics-light: #f7f9fb;
  --ics-white: #ffffff;
  --ics-charcoal: #24303a;
  --ics-muted: #667085;
  --ics-border: #e3e9ee;
  --ics-shadow: rgba(52,64,77,.10);
}

body {
  background: var(--ics-light);
  color: var(--ics-charcoal);
  font-family: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
}

.ics-topbar {
  background: #ffffff;
  border-bottom: 1px solid var(--ics-border);
}

.ics-logo-mark {
  width: 44px;
  height: 44px;
  border-radius: 50%;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: var(--ics-green);
  color: #fff;
  font-weight: 800;
  letter-spacing: .02em;
}

.ics-hero {
  background:
    radial-gradient(circle at top right, rgba(126,181,192,.30), transparent 34%),
    linear-gradient(135deg, var(--ics-navy), #2f3945);
  color: #fff;
  border-bottom: 5px solid var(--ics-green);
}

.ics-badge {
  background: var(--ics-teal-soft);
  color: var(--ics-navy);
  border: 1px solid rgba(94,163,176,.38);
}

.ics-card {
  border: 1px solid var(--ics-border);
  border-radius: 1.1rem;
  box-shadow: 0 .7rem 1.8rem var(--ics-shadow);
  overflow: hidden;
}

.ics-contact-card { margin-top: -3rem; }

.ics-section-title {
  color: var(--ics-navy);
  letter-spacing: -.02em;
}

.ics-kicker {
  color: var(--ics-green);
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: .08em;
  font-size: .78rem;
}

.breadcrumb a { color: rgba(255,255,255,.72); }
.breadcrumb-item + .breadcrumb-item::before { color: rgba(255,255,255,.55); }

.btn-ics {
  background: var(--ics-green);
  border-color: var(--ics-green);
  color: #fff;
  font-weight: 800;
}
.btn-ics:hover,
.btn-ics:focus {
  background: #3f8f46;
  border-color: #3f8f46;
  color: #fff;
}

.btn-outline-ics {
  border-color: var(--ics-navy);
  color: var(--ics-navy);
  font-weight: 700;
}
.btn-outline-ics:hover { background: var(--ics-navy); color: #fff; }

.ics-info-strip {
  background: var(--ics-teal-soft);
  border-top: 1px solid var(--ics-border);
  border-bottom: 1px solid var(--ics-border);
}

.ics-feature {
  background: #fff;
  border: 1px solid var(--ics-border);
  border-radius: .9rem;
  height: 100%;
}

.ics-contact-card .card-header {
  background: var(--ics-navy);
  color: #fff;
  border-bottom: 3px solid var(--ics-green);
}

.ics-contact-line {
  border-bottom: 1px solid var(--ics-border);
  padding-bottom: .8rem;
  margin-bottom: .8rem;
}
.ics-contact-line:last-of-type { border-bottom: 0; }

.accordion-button:not(.collapsed) {
  background: var(--ics-teal-soft);
  color: var(--ics-navy);
}

.ics-small-note {
  color: var(--ics-muted);
  font-size: .92rem;
}

@media (max-width: 991.98px) {
  .ics-contact-card { margin-top: 0; }
  .display-5 { font-size: 2.15rem; }
}


.ics-accent-panel {
  background: linear-gradient(135deg, rgba(78,171,86,.10), rgba(94,163,176,.14));
  border: 1px solid var(--ics-border);
}

.ics-topbar .fw-bold { color: var(--ics-navy); }

.card-header h2 { color: inherit; }

/* Member image + membership number additions */
.ics-member-number {
  color: rgba(255,255,255,.84);
  font-weight: 800;
  letter-spacing: .01em;
}

.ics-member-photo-card {
  max-width: 280px;
  background: #fff;
  border-radius: 1.25rem;
  padding: .75rem;
  box-shadow: 0 1rem 2.5rem rgba(0,0,0,.20);
  border: 1px solid rgba(255,255,255,.35);
}

.ics-member-photo-card img {
  width: 100%;
  aspect-ratio: 4 / 3;
  object-fit: cover;
  border-radius: .9rem;
  display: block;
  background: var(--ics-light);
}

.ics-photo-caption {
  color: var(--ics-muted);
  font-size: .82rem;
  text-align: center;
  padding-top: .55rem;
}

@media (max-width: 991.98px) {
  .ics-member-photo-card { max-width: 100%; }
}


/* V5 member profile implementation */
.ics-site-header {
  background:
    radial-gradient(circle at top right, rgba(94,163,176,.18), transparent 32%),
    linear-gradient(135deg, var(--ics-navy), #25313c);
  box-shadow: 0 .6rem 1.5rem rgba(36,48,58,.12);
}

.ics-site-header .navbar { min-height: 86px; }
.ics-site-header .navbar-brand { color: #fff; }
.ics-site-header .navbar-brand strong {
  display: inline-block;
  font-size: 2rem;
  line-height: .9;
  margin-right: .35rem;
}
.ics-site-header .navbar-brand small {
  display: inline-block;
  font-size: .88rem;
  line-height: 1.1;
  opacity: .92;
}
.ics-site-header .nav-link {
  color: rgba(255,255,255,.86);
  font-weight: 700;
}
.ics-site-header .nav-link:hover,
.ics-site-header .nav-link.active { color: var(--ics-green-original); }
.ics-site-header .nav-link.active { border-bottom: 2px solid var(--ics-green-original); }

.ics-breadcrumb-bar {
  background: #fff;
  border-bottom: 1px solid var(--ics-border);
  padding: 1.35rem 0;
}
.ics-breadcrumb-bar .breadcrumb a { color: var(--ics-green); font-weight: 700; }
.ics-breadcrumb-bar .breadcrumb-item + .breadcrumb-item::before { color: var(--ics-navy); }
.ics-breadcrumb-bar .breadcrumb-item.active { color: var(--ics-navy); font-weight: 700; }

.ics-logo-mark {
  background: var(--ics-green-original);
  color: #fff;
  border: 3px solid rgba(255,255,255,.92);
  box-shadow: 0 .35rem .9rem rgba(0,0,0,.18);
}

.ics-member-photo-card {
  max-width: 340px;
  background: #fff;
  border: 9px solid #fff;
  border-radius: .8rem;
  padding: 0;
  box-shadow: 0 .9rem 2rem rgba(52,64,77,.16);
}
.ics-member-photo-card img {
  width: 100%;
  aspect-ratio: 4 / 5;
  object-fit: cover;
  object-position: center top;
  border-radius: .45rem;
  background: var(--ics-light);
}

.ics-verified-pill {
  display: inline-flex;
  align-items: center;
  gap: .45rem;
  border: 1px solid var(--ics-green-original);
  color: #2f7e3a;
  background: rgba(78,171,86,.08);
  border-radius: 999px;
  padding: .35rem .85rem;
  font-weight: 800;
}
.ics-verified-pill span {
  width: 1.25rem;
  height: 1.25rem;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 50%;
  background: var(--ics-teal);
  color: #fff;
  font-size: .82rem;
}
.ics-member-number-dark {
  color: var(--ics-navy);
  font-size: 1.35rem;
  font-weight: 500;
}
.ics-rule {
  height: 2px;
  width: 100%;
  background: linear-gradient(90deg, var(--ics-green-original), rgba(78,171,86,.12));
}
.ics-trust-row { margin-top: 1.25rem; }
.ics-mini-trust {
  color: var(--ics-navy);
  font-weight: 800;
  line-height: 1.25;
}
.ics-mini-trust span {
  color: var(--ics-muted);
  font-weight: 600;
  font-size: .88rem;
}
.ics-contact-card-v2 {
  margin-top: 0;
  border: 0;
}
.ics-contact-card-v2 .card-body { box-shadow: 0 .7rem 2rem var(--ics-shadow); }
.ics-contact-item {
  display: flex;
  gap: .9rem;
  align-items: flex-start;
  margin-bottom: 1.05rem;
  color: var(--ics-navy);
  font-weight: 650;
}
.ics-contact-item > span:first-child {
  color: var(--ics-green-original);
  width: 1.4rem;
  flex: 0 0 1.4rem;
  font-size: 1.3rem;
  line-height: 1.2;
}
.ics-contact-item a {
  color: var(--ics-navy);
  text-decoration: none;
}
.ics-contact-item a:hover { color: var(--ics-green); }
.ics-contact-item small { color: var(--ics-muted); font-weight: 500; }
.btn-outline-teal {
  border-color: var(--ics-teal);
  color: var(--ics-teal);
  font-weight: 800;
}
.btn-outline-teal:hover { background: var(--ics-teal); color: #fff; }
.ics-check-item {
  position: relative;
  padding-left: 2rem;
  font-weight: 650;
  color: var(--ics-navy);
}
.ics-check-item::before {
  content: "✓";
  position: absolute;
  left: 0;
  top: 0;
  width: 1.25rem;
  height: 1.25rem;
  border: 2px solid var(--ics-green-original);
  color: var(--ics-green-original);
  border-radius: 50%;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: .78rem;
  font-weight: 900;
}
.ics-association-logos {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 1rem;
}
.ics-association-logo {
  min-height: 92px;
  border: 1px solid var(--ics-border);
  border-radius: .9rem;
  background: var(--ics-light);
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  text-align: center;
  padding: .8rem;
}
.ics-association-logo strong {
  color: var(--ics-navy);
  font-size: 1.65rem;
  letter-spacing: .02em;
}
.ics-association-logo small { color: var(--ics-muted); font-weight: 700; }
.ics-list li { margin-bottom: .65rem; }
.ics-list li:last-child { margin-bottom: 0; }

@media (max-width: 991.98px) {
  .ics-member-photo-card { max-width: 420px; }
  .ics-site-header .navbar-brand strong { font-size: 1.65rem; }
}

/* Member profile business-name sizing: prevents long company names from dominating the hero area. */
.ics-member-business-name {
  font-size: clamp(2.05rem, 3.6vw, 3.35rem);
  line-height: 1.08;
  overflow-wrap: anywhere;
}

@media (max-width: 991.98px) {
  .ics-member-business-name {
    font-size: clamp(1.45rem, 5.2vw, 2rem);
    line-height: 1.1;
  }
}


.ics-safety-card {
  background: linear-gradient(180deg, #ffffff 0%, #f7f9fb 100%);
}

.ics-safety-card p {
  color: var(--ics-dark);
}

/* Member/person name display on listing cards */
.listing-card .listing-member-name {
  display: block;
  font-weight: 700;
}

.listing-card .listing-business-name {
  display: block;
  margin-top: .15rem;
  font-size: .95rem;
  font-weight: 500;
  color: #5c6875;
  overflow-wrap: anywhere;
}

/* Smaller business name below individual sweep name on profile templates */
.business-name {
  font-size: clamp(1.05rem, 1.8vw, 1.45rem);
  line-height: 1.25;
  font-weight: 600;
  color: #5c6875;
  overflow-wrap: anywhere;
}


/* Shared footer */

.site-footer {
  position: relative;
  overflow: hidden;
  background:
    linear-gradient(90deg, #061b2c 0%, #0a2538 52%, #0f3143 100%);
  color: #fff;
  padding: 3rem 0 1.4rem;
  border-top: 1px solid rgba(255,255,255,.06);
}

.site-footer::before {
  content: "";
  position: absolute;
  inset: 0;
  background:
    radial-gradient(circle at 18% 20%, rgba(111, 170, 182, .14), transparent 26%),
    radial-gradient(circle at 82% 18%, rgba(78, 171, 86, .10), transparent 28%);
  pointer-events: none;
}

.site-footer::after {
  content: "";
  position: absolute;
  right: -6%;
  bottom: -46px;
  width: min(860px, 66vw);
  height: 230px;
  background:
    radial-gradient(ellipse at 68% 96%, rgba(78, 171, 86, .36) 0 30%, transparent 31%),
    radial-gradient(ellipse at 32% 106%, rgba(111, 170, 182, .28) 0 37%, transparent 38%),
    radial-gradient(ellipse at 92% 112%, rgba(78, 171, 86, .24) 0 46%, transparent 47%),
    linear-gradient(0deg, rgba(78, 171, 86, .08), transparent 62%);
  opacity: .95;
  pointer-events: none;
}

.site-footer .container {
  position: relative;
  z-index: 1;
}

.footer-grid {
  display: grid;
  grid-template-columns: minmax(260px, 1.55fr) repeat(3, minmax(150px, 1fr));
  gap: 2.15rem;
  align-items: start;
}

.footer-brand {
  display: inline-flex;
  align-items: center;
  gap: .95rem;
  color: #fff;
  text-decoration: none;
  font-size: 1.08rem;
  line-height: 1.15;
}

.footer-brand:hover,
.footer-brand:focus {
  color: #fff;
}

.footer-logo {
  width: 56px;
  height: 56px;
  flex: 0 0 auto;
  filter: drop-shadow(0 4px 10px rgba(0, 0, 0, .22));
}

.footer-summary {
  color: rgba(255, 255, 255, .84);
  margin: 1rem 0 0;
  max-width: 345px;
  line-height: 1.7;
}

.footer-column h2 {
  color: #fff;
  font-size: 1rem;
  font-weight: 700;
  margin: 0 0 .95rem;
  padding-bottom: .55rem;
  border-bottom: 2px solid rgba(78, 171, 86, .78);
}

.footer-column a,
.footer-column span {
  display: block;
  color: rgba(255, 255, 255, .84);
  text-decoration: none;
  margin-bottom: .62rem;
  line-height: 1.45;
}

.footer-column a:hover,
.footer-column a:focus {
  color: #fff;
  text-decoration: underline;
  text-underline-offset: .18em;
}

.footer-bottom {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  gap: .75rem 1rem;
  border-top: 1px solid rgba(255, 255, 255, .16);
  margin-top: 2.35rem;
  padding-top: 1rem;
  color: rgba(255, 255, 255, .74);
  font-size: .92rem;
}

.footer-bottom p {
  margin: 0;
}

@media (max-width: 991px) {
  .site-footer {
    padding-top: 2.6rem;
  }

  .site-footer::after {
    width: min(620px, 84vw);
    height: 170px;
    opacity: .72;
  }

  .footer-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .footer-brand-block {
    grid-column: 1 / -1;
  }
}

@media (max-width: 575px) {
  .site-footer {
    padding: 2.1rem 0 1.25rem;
  }

  .site-footer::after {
    width: 110vw;
    height: 135px;
    right: -24%;
    opacity: .62;
  }

  .footer-grid {
    grid-template-columns: 1fr;
    gap: 1.5rem;
  }

  .footer-bottom {
    display: block;
  }

  .footer-bottom p + p {
    margin-top: .45rem;
  }
}


/* Directory listing card polish */
.listing-card {
  display: flex;
  flex-direction: column;
  gap: .45rem;
  position: relative;
  padding: 1.55rem;
  border-radius: 1.15rem;
}

.listing-card h2,
.listing-card h3 {
  margin-bottom: .35rem;
}

.listing-card h2 a,
.listing-card h3 a {
  color: var(--ics-navy);
  text-decoration: none;
}

.listing-card h2 a:hover,
.listing-card h3 a:hover {
  color: var(--ics-green-dark);
  text-decoration: underline;
  text-underline-offset: .18em;
}

.listing-card .listing-member-name {
  display: block;
  font-size: 1.32rem;
  line-height: 1.18;
  font-weight: 750;
  color: var(--ics-navy);
  overflow-wrap: anywhere;
}

.listing-card .listing-business-name {
  display: block;
  margin-top: .28rem;
  font-size: 1.02rem;
  line-height: 1.35;
  font-weight: 600;
  color: #5c6875;
  overflow-wrap: anywhere;
}

.listing-card .muted {
  align-self: flex-start;
  display: inline-flex;
  width: auto;
  color: #516070;
  background: #f7f9fb;
  border: 1px solid var(--ics-border);
  border-radius: 999px;
  padding: .32rem .7rem;
  font-size: .92rem;
  line-height: 1.2;
  margin-bottom: .55rem !important;
}

.listing-card p.mb-1 {
  color: #4e5b68;
  font-size: .98rem;
  line-height: 1.45;
  overflow-wrap: anywhere;
}

.listing-card p.mb-1 + p.mb-1 {
  margin-top: .05rem;
}

.listing-actions {
  margin-top: auto;
  padding-top: 1rem;
}

.listing-profile-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: auto;
  min-width: 132px;
  color: #fff !important;
  background: var(--ics-green);
  border: 1px solid var(--ics-green);
  border-radius: .58rem;
  padding: .64rem .95rem;
  font-size: .98rem;
  font-weight: 700 !important;
  text-decoration: none !important;
}

.listing-profile-btn:hover,
.listing-profile-btn:focus {
  color: #fff !important;
  background: var(--ics-green-dark);
  border-color: var(--ics-green-dark);
}

@media (max-width: 575.98px) {
  .directory-content .row {
    --bs-gutter-y: .85rem;
  }

  .listing-card {
    padding: 1.2rem;
    border-radius: 1rem;
  }

  .listing-card .listing-member-name {
    font-size: 1.18rem;
  }

  .listing-card .listing-business-name {
    font-size: .96rem;
  }

  .listing-profile-btn {
    width: 100%;
  }
}


/* =========================================================
   HOMEPAGE HERO + NAV FINAL TIDY
   Darker premium nav, clearer spacing, richer cottage hero.
   ========================================================= */
body .site-header {
  background: linear-gradient(90deg, #061b2c 0%, #0a2538 52%, #0f3143 100%) !important;
  box-shadow: 0 2px 18px rgba(0, 0, 0, .2) !important;
}

body .nav-wrap {
  min-height: 86px !important;
  padding: .75rem 2.4rem !important;
}

body .brand-logo {
  width: 60px !important;
  height: 60px !important;
}

body .brand-lockup {
  color: #fff !important;
  font-size: 1.05rem !important;
  font-weight: 600 !important;
  letter-spacing: .01em;
}

body .navbar .nav-link {
  color: rgba(255, 255, 255, .92) !important;
  font-size: 1rem !important;
  font-weight: 500 !important;
  padding: .7rem .72rem !important;
}

body .navbar .nav-link:hover,
body .navbar .nav-link:focus {
  color: #fff !important;
}

body .navbar .nav-link[href="index.html"] {
  position: relative;
}

body .navbar .nav-link[href="index.html"]::after {
  content: "";
  position: absolute;
  left: .72rem;
  right: .72rem;
  bottom: .38rem;
  height: 2px;
  background: #4eab56;
  border-radius: 999px;
}

body .nav-cta {
  background: #6faab6 !important;
  color: #fff !important;
  border: 0 !important;
  border-radius: .38rem !important;
  padding: .78rem 1.2rem !important;
  font-weight: 600 !important;
}

body .nav-cta:hover {
  background: #4eab56 !important;
  color: #fff !important;
}

body .home-hero {
  min-height: 500px !important;
  background-image:
    linear-gradient(90deg, rgba(4, 24, 38, .98) 0%, rgba(4, 24, 38, .95) 24%, rgba(4, 24, 38, .64) 46%, rgba(4, 24, 38, .14) 70%, rgba(4, 24, 38, 0) 100%),
    url('../images/ics-hero-cottages.png') !important;
  background-size: cover, 100% auto !important;
  background-position: center, center center !important;
  background-repeat: no-repeat, no-repeat !important;
}

body .home-hero-inner {
  padding-top: clamp(4.75rem, 6vw, 5.8rem) !important;
  padding-bottom: clamp(3.2rem, 4.5vw, 4.4rem) !important;
  position: relative;
  z-index: 2;
}

body .home-search-panel {
  max-width: 610px !important;
}

body .home-hero h1 {
  color: #fff !important;
  opacity: 1 !important;
  font-size: clamp(2rem, 2.85vw, 3.05rem) !important;
  line-height: 1.12 !important;
  max-width: 545px !important;
  margin: 0 0 1.05rem !important;
  text-shadow: 0 3px 24px rgba(0, 0, 0, .42) !important;
}

body .home-hero-copy {
  color: rgba(255, 255, 255, .96) !important;
  opacity: 1 !important;
  max-width: 540px !important;
  text-shadow: 0 2px 16px rgba(0, 0, 0, .35) !important;
}

body .home-search-input {
  max-width: 620px !important;
  margin-top: 1.9rem !important;
}

body .home-hero-cloud {
  display: none !important;
}

@media (max-width: 991px) {
  body .nav-wrap {
    min-height: 76px !important;
    padding: .7rem 1rem !important;
  }

  body .brand-logo {
    width: 50px !important;
    height: 50px !important;
  }

  body .home-hero {
    min-height: auto !important;
    background-image:
      linear-gradient(180deg, rgba(4, 24, 38, .96) 0%, rgba(4, 24, 38, .86) 58%, rgba(4, 24, 38, .62) 100%),
      url('../images/ics-hero-cottages.png') !important;
    background-size: cover, auto 100% !important;
    background-position: center, center right !important;
  }

  body .home-hero-inner {
    padding-top: 3.5rem !important;
    padding-bottom: 3.6rem !important;
  }

  body .home-hero h1 {
    font-size: clamp(2rem, 8vw, 2.75rem) !important;
  }
}


/* =========================================================
   MOBILE MENU + HERO READABILITY FIX
   Ensures the Bootstrap hamburger is visible on the light mobile button
   and keeps homepage hero text safely inside the viewport.
   ========================================================= */
.navbar-toggler,
body .navbar-toggler {
  background: rgba(255, 255, 255, .94) !important;
  border: 1px solid rgba(255, 255, 255, .72) !important;
  border-radius: .55rem !important;
  padding: .65rem .85rem !important;
  box-shadow: 0 4px 14px rgba(0,0,0,.16) !important;
}

.navbar-toggler-icon,
body .navbar-toggler-icon {
  width: 1.7rem !important;
  height: 1.7rem !important;
  opacity: 1 !important;
  filter: none !important;
  background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'%3e%3cpath stroke='rgba%2852,64,77,0.92%29' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2.4' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e") !important;
}

@media (max-width: 991px) {
  body .home-hero .container,
  body .home-hero-inner {
    padding-left: 1.25rem !important;
    padding-right: 1.25rem !important;
  }

  body .home-hero-inner {
    padding-top: 2.75rem !important;
    padding-bottom: 3rem !important;
  }

  body .home-hero h1 {
    font-size: clamp(2rem, 9vw, 2.55rem) !important;
    line-height: 1.12 !important;
    max-width: 96vw !important;
    overflow-wrap: normal !important;
  }

  body .home-hero-copy {
    font-size: 1.08rem !important;
    line-height: 1.55 !important;
    max-width: 94vw !important;
  }

  body .home-search-input {
    width: 100% !important;
    max-width: none !important;
  }
}

@media (max-width: 430px) {
  body .home-hero .container,
  body .home-hero-inner {
    padding-left: 1rem !important;
    padding-right: 1rem !important;
  }

  body .home-hero h1 {
    font-size: clamp(1.95rem, 8.6vw, 2.35rem) !important;
  }
}


/* =========================================================
   HOMEPAGE ADVICE ACCORDION
   Replaces the old three blue information cards with a more useful,
   expandable homeowner advice section.
   ========================================================= */
.ics-advice-accordion-section {
  border-top: 1px solid rgba(223, 231, 236, .75);
  border-bottom: 1px solid rgba(223, 231, 236, .75);
}

.ics-advice-intro-card {
  background: linear-gradient(135deg, #061b2c, #0f3143);
  color: #fff;
  border-radius: 1.25rem;
  padding: 2rem;
  height: 100%;
  box-shadow: 0 14px 34px rgba(42, 55, 69, .14);
  position: relative;
  overflow: hidden;
}

.ics-advice-intro-card::after {
  content: "";
  position: absolute;
  right: -60px;
  bottom: -60px;
  width: 180px;
  height: 180px;
  border-radius: 50%;
  background: rgba(111, 170, 182, .18);
}

.ics-section-kicker {
  display: inline-flex;
  align-items: center;
  color: #dff3e2;
  background: rgba(78, 171, 86, .22);
  border: 1px solid rgba(78, 171, 86, .4);
  border-radius: 999px;
  padding: .35rem .75rem;
  font-size: .9rem;
  font-weight: 700;
  margin-bottom: 1rem;
}

.ics-advice-intro-card h2 {
  color: #fff;
  font-size: clamp(1.75rem, 2.2vw, 2.35rem);
  line-height: 1.12;
  margin-bottom: 1rem;
}

.ics-advice-intro-card p {
  color: rgba(255, 255, 255, .9);
  font-size: 1.05rem;
  line-height: 1.7;
  margin-bottom: 1.4rem;
  position: relative;
  z-index: 1;
}

.ics-advice-link {
  color: #fff;
  font-weight: 700;
  text-decoration: none;
  position: relative;
  z-index: 1;
}

.ics-advice-link::after {
  content: " →";
  color: #4eab56;
}

.ics-advice-accordion {
  background: #fff;
  border: 1px solid #dfe7ec;
  border-radius: 1.25rem;
  box-shadow: 0 10px 30px rgba(42, 55, 69, .08);
  overflow: hidden;
}

.ics-advice-accordion .accordion-item {
  border: 0;
  border-bottom: 1px solid #e8eef2;
}

.ics-advice-accordion .accordion-item:last-child {
  border-bottom: 0;
}

.ics-advice-accordion .accordion-button {
  background: #fff;
  color: #283340;
  font-size: 1.12rem;
  font-weight: 700;
  padding: 1.25rem 1.5rem;
  box-shadow: none;
}

.ics-advice-accordion .accordion-button:not(.collapsed) {
  color: #34404d;
  background: #f7fbf8;
  border-bottom: 1px solid #dfe7ec;
}

.ics-advice-accordion .accordion-button::after {
  width: 1.1rem;
  height: 1.1rem;
  background-size: 1.1rem;
  filter: invert(35%) sepia(43%) saturate(643%) hue-rotate(76deg) brightness(91%) contrast(88%);
}

.ics-advice-accordion .accordion-body {
  padding: 1.25rem 1.5rem 1.5rem;
  color: #34404d;
  font-size: 1.02rem;
  line-height: 1.7;
}

.ics-advice-list {
  margin: 0 0 1rem;
  padding-left: 0;
  list-style: none;
  display: grid;
  gap: .45rem;
}

.ics-advice-list li {
  position: relative;
  padding-left: 1.65rem;
}

.ics-advice-list li::before {
  content: "✓";
  position: absolute;
  left: 0;
  top: 0;
  color: #4eab56;
  font-weight: 800;
}

@media (max-width: 991px) {
  .ics-advice-intro-card {
    padding: 1.5rem;
  }

  .ics-advice-accordion .accordion-button {
    font-size: 1.02rem;
    padding: 1.05rem 1.15rem;
  }

  .ics-advice-accordion .accordion-body {
    padding: 1rem 1.15rem 1.25rem;
  }
}


/* =========================================================
   HOMEPAGE CONTACT SECTION
   Replaces the old circular contact blocks with cleaner,
   responsive cards that match the refreshed homepage design.
   ========================================================= */
.home-contact-section {
  background: linear-gradient(180deg, #ffffff 0%, #f7f9fb 100%);
  border-top: 1px solid rgba(223, 231, 236, .85);
}

.home-contact-kicker {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  color: #469d4d;
  background: rgba(78, 171, 86, .10);
  border: 1px solid rgba(78, 171, 86, .22);
  border-radius: 999px;
  padding: .35rem .85rem;
  font-size: .9rem;
  font-weight: 800;
  margin-bottom: 1rem;
}

.home-contact-title {
  color: #34404d;
  font-size: clamp(2rem, 3vw, 3rem);
  line-height: 1.12;
  letter-spacing: -.03em;
  margin-bottom: 1rem;
}

.home-contact-copy {
  color: #5e6b78;
  font-size: 1.12rem;
  line-height: 1.7;
  margin: 0 auto;
  max-width: 760px;
}

.home-contact-card {
  background: #fff;
  border: 1px solid #dfe7ec;
  border-radius: 1.25rem;
  padding: 2rem;
  box-shadow: 0 12px 34px rgba(42, 55, 69, .08);
  transition: transform .2s ease, box-shadow .2s ease, border-color .2s ease;
}

.home-contact-card:hover {
  transform: translateY(-3px);
  border-color: rgba(78, 171, 86, .35);
  box-shadow: 0 18px 42px rgba(42, 55, 69, .12);
}

.home-contact-card-primary {
  background: linear-gradient(135deg, #061b2c, #0f3143);
  color: #fff;
  border-color: rgba(111, 170, 182, .32);
}

.home-contact-icon {
  width: 52px;
  height: 52px;
  border-radius: 50%;
  background: rgba(78, 171, 86, .12);
  color: #469d4d;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 1.4rem;
  font-weight: 800;
  margin-bottom: 1.25rem;
}

.home-contact-card-primary .home-contact-icon {
  background: rgba(255, 255, 255, .12);
  color: #fff;
}

.home-contact-card h3 {
  color: #34404d;
  font-size: 1.35rem;
  font-weight: 800;
  margin-bottom: .75rem;
}

.home-contact-card-primary h3 {
  color: #fff;
}

.home-contact-card p {
  color: #667085;
  line-height: 1.65;
  margin-bottom: 1.25rem;
}

.home-contact-card-primary p {
  color: rgba(255, 255, 255, .84);
}

.home-contact-link {
  color: #2f8a3a;
  font-weight: 800;
  text-decoration: none;
  overflow-wrap: anywhere;
}

.home-contact-card-primary .home-contact-link {
  color: #fff;
}

.home-contact-link:hover {
  color: #469d4d;
  text-decoration: underline;
  text-underline-offset: .2em;
}

.home-contact-address {
  color: #34404d;
  font-weight: 700;
  line-height: 1.65;
}

.home-contact-note {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  background: #fff;
  border: 1px solid #dfe7ec;
  border-radius: 1rem;
  padding: 1rem 1.25rem;
  color: #34404d;
  box-shadow: 0 8px 24px rgba(42, 55, 69, .06);
}

.home-contact-note-link {
  color: #2f8a3a;
  font-weight: 800;
  text-decoration: none;
  white-space: nowrap;
}

.home-contact-note-link::after {
  content: " ↑";
}

@media (max-width: 991px) {
  .home-contact-card {
    padding: 1.5rem;
  }

  .home-contact-note {
    align-items: flex-start;
    flex-direction: column;
  }
}


/* =========================================================
   HOMEPAGE FONT TEST
   Inter for clean UI text + Libre Baskerville for the premium
   hero serif. Scoped to the index page via body.home-page.
   ========================================================= */
:root {
  --ics-font-sans: "Inter", system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  --ics-font-serif: "Libre Baskerville", Georgia, "Times New Roman", serif;
}

body.home-page {
  font-family: var(--ics-font-sans) !important;
  font-feature-settings: "kern" 1, "liga" 1;
  text-rendering: optimizeLegibility;
}

body.home-page .navbar .nav-link,
body.home-page .nav-cta,
body.home-page .home-search-input,
body.home-page .member-card,
body.home-page .home-trust-card,
body.home-page .home-contact-card,
body.home-page .site-footer {
  font-family: var(--ics-font-sans) !important;
}

body.home-page .brand-lockup,
body.home-page .footer-brand {
  font-family: var(--ics-font-sans) !important;
  font-weight: 700;
  letter-spacing: -.015em;
}

body.home-page .home-hero h1 {
  font-family: var(--ics-font-serif) !important;
  font-weight: 700 !important;
  letter-spacing: -.055em !important;
  line-height: 1.18 !important;
}

body.home-page h2,
body.home-page .home-results-title,
body.home-page .home-trust-card h3,
body.home-page .home-contact-title,
body.home-page .home-contact-card h3,
body.home-page .footer-column h2 {
  font-family: var(--ics-font-sans) !important;
  letter-spacing: -.025em;
}

body.home-page .home-results-title,
body.home-page .home-trust-card h3 {
  font-weight: 650;
}

body.home-page .home-contact-card h3 {
  font-weight: 700;
}

body.home-page .home-hero-copy,
body.home-page .home-results-copy,
body.home-page .home-trust-card p,
body.home-page .home-contact-card p,
body.home-page .footer-summary,
body.home-page .footer-column a,
body.home-page .footer-column span {
  font-weight: 400;
  letter-spacing: -.008em;
}

body.home-page .home-search-input input,
body.home-page .home-search-input button {
  font-family: var(--ics-font-sans) !important;
}

@media (max-width: 575px) {
  body.home-page .home-hero h1 {
    letter-spacing: -.045em !important;
    line-height: 1.16 !important;
  }
}


/* =========================================================
   HOMEPAGE FONT WEIGHT TIDY
   Softens secondary homepage headings after the font upgrade.
   ========================================================= */
body.home-page .home-results-list h2,
body.home-page .home-results-title {
  font-weight: 650 !important;
  letter-spacing: -.015em !important;
}

body.home-page .home-trust-card h2,
body.home-page .home-trust-card h3 {
  font-weight: 650 !important;
  letter-spacing: -.012em !important;
}

/* =========================================================
   ICS SITE-WIDE TYPOGRAPHY CONSISTENCY OVERRIDE
   Apply after page CSS, or keep appended to the page stylesheet.
   This aligns headings, intro text, pills, buttons and nav type
   across homepage, membership, training, advice and member pages.
   ========================================================= */

:root {
  --ics-deep: #093040;
  --ics-navy: #093040;
  --ics-text: #36566b;
  --ics-muted: #536c7d;
  --ics-blue: #78B8BF;
  --ics-green: #0FA644;
  --ics-green-dark: #0c933d;
  --ics-green-soft: #e6f6ea;
  --ics-blue-soft: #eef8f9;
  --ics-gold: #BFBC7A;
  --ics-line: rgba(9, 48, 64, .08);
  --ics-card: #ffffff;
  --ics-page: #f6fbfb;
  --ics-shadow-soft: 0 18px 42px rgba(9, 48, 64, .06);
  --ics-shadow-card: 0 18px 38px rgba(9, 48, 64, .075);
  --ics-radius-lg: 36px;
  --ics-radius-md: 26px;
  --ics-radius-sm: 18px;
  --ics-sans: Inter, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  --ics-serif: "Libre Baskerville", Georgia, serif;
}

/* Base text */
body.home-page,
body.membership-page,
body.training-page,
body.advice-page,
body.member-profile-page,
body.directory-page {
  color: var(--ics-text) !important;
  font-family: var(--ics-sans) !important;
  font-size: 1rem !important;
  line-height: 1.65 !important;
}

/* Navigation typography */
body.home-page .navbar .nav-link,
body.membership-page .navbar .nav-link,
body.training-page .navbar .nav-link,
body.advice-page .navbar .nav-link,
body.member-profile-page .navbar .nav-link,
body.directory-page .navbar .nav-link,
.site-header .navbar .nav-link {
  color: var(--ics-deep) !important;
  font-family: var(--ics-sans) !important;
  font-size: 1rem !important;
  font-weight: 760 !important;
  line-height: 1.2 !important;
}

body.home-page .brand-name,
body.membership-page .brand-name,
body.training-page .brand-name,
body.advice-page .brand-name,
body.member-profile-page .brand-name,
body.directory-page .brand-name,
.site-header .brand-name {
  color: var(--ics-deep) !important;
  font-family: var(--ics-sans) !important;
  font-size: 1.02rem !important;
  line-height: 1.08 !important;
  font-weight: 850 !important;
  letter-spacing: .01em !important;
  text-transform: uppercase !important;
}

/* Hero/page headings */
body.home-page .hero-title,
body.home-page .home-hero h1,
body.membership-page .membership-hero h1,
body.training-page .training-hero h1,
body.advice-page .advice-hero h1,
body.member-profile-page .profile-hero h1.member-name,
body.member-profile-page .profile-hero h1:not(.member-name),
body.member-profile-page .member-hero h1,
body.directory-page .directory-hero h1,
.directory-hero h1 {
  color: var(--ics-deep) !important;
  font-family: var(--ics-serif) !important;
  font-weight: 700 !important;
  font-size: clamp(2.55rem, 4.45vw, 4.45rem) !important;
  line-height: 1.03 !important;
  letter-spacing: -0.052em !important;
}

/* Keep homepage hero allowed to be slightly wider while retaining scale */
body.home-page .hero-title,
body.home-page .home-hero h1 {
  max-width: 11.5ch !important;
}

/* Training/advice hero should stay balanced with current layout */
body.training-page .training-hero h1,
body.advice-page .advice-hero h1 {
  max-width: 12.5ch !important;
}

/* Member names can wrap more naturally */
body.member-profile-page .profile-hero h1.member-name,
body.member-profile-page .profile-hero h1:not(.member-name),
body.member-profile-page .member-hero h1 {
  max-width: 8.5ch !important;
}

/* Section headings */
body.home-page .section-header h2,
body.home-page .home-contact h2,
body.membership-page .section-header h2,
body.training-page .section-header h2,
body.advice-page .section-intro h2,
body.advice-page .section-header h2,
body.member-profile-page .info-card h2,
body.member-profile-page .contact-card h2,
body.directory-page .section-header h2 {
  color: var(--ics-deep) !important;
  font-family: var(--ics-sans) !important;
  font-weight: 850 !important;
  font-size: clamp(2.25rem, 3.8vw, 3.8rem) !important;
  line-height: 1.06 !important;
  letter-spacing: -0.045em !important;
}

/* Contact/info card headings should not become oversized */
body.member-profile-page .info-card h2,
body.member-profile-page .contact-card h2,
body.member-profile-page .member-content .info-card h2,
body.member-profile-page .member-content .contact-card h2 {
  font-size: 1.45rem !important;
  line-height: 1.15 !important;
}

/* Card headings */
body.home-page .advice-card h3,
body.home-page .home-advice-card h3,
body.membership-page .benefit-card h3,
body.membership-page .route-card h3,
body.training-page .training-card h3,
body.training-page .format-card h3,
body.training-page .why-card h3,
body.training-page .contact-card h3,
body.advice-page .advice-card h3,
body.advice-page .video-card h3,
body.member-profile-page .listing-card .listing-member-name {
  color: var(--ics-deep) !important;
  font-family: var(--ics-serif) !important;
  font-weight: 700 !important;
  font-size: clamp(1.35rem, 1.7vw, 1.75rem) !important;
  line-height: 1.15 !important;
  letter-spacing: -0.035em !important;
}

/* UI/card labels stay sans */
body.member-profile-page .listing-card .listing-member-name,
body.member-profile-page .business-name,
body.member-profile-page .profile-hero .business-name,
body.member-profile-page .member-hero .business-name {
  font-family: var(--ics-sans) !important;
  font-weight: 850 !important;
}

/* Intro / large body copy */
body.home-page .hero-copy,
body.home-page .home-hero-copy,
body.membership-page .membership-hero-copy,
body.training-page .training-hero-copy,
body.advice-page .advice-hero-copy,
body.member-profile-page .hero-copy,
body.member-profile-page .member-hero .member-location,
body.directory-page .directory-hero .hero-copy {
  color: var(--ics-text) !important;
  font-family: var(--ics-sans) !important;
  font-size: clamp(1.06rem, 1.25vw, 1.2rem) !important;
  line-height: 1.55 !important;
  font-weight: 500 !important;
}

/* Standard body copy in cards */
body.home-page p,
body.membership-page p,
body.training-page p,
body.advice-page p,
body.member-profile-page p,
body.directory-page p {
  color: var(--ics-text);
}

/* Pills / kickers */
body.home-page .home-contact-kicker,
body.home-page .section-kicker,
body.membership-page .membership-kicker,
body.membership-page .section-eyebrow,
body.training-page .training-kicker,
body.training-page .section-eyebrow,
body.advice-page .advice-kicker,
body.advice-page .section-kicker,
body.advice-page .section-eyebrow,
body.member-profile-page .membership-no,
body.member-profile-page .member-kicker {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  min-height: 50px !important;
  padding: 0.72rem 1.65rem !important;
  border-radius: 999px !important;
  background: var(--ics-blue) !important;
  border: 1px solid var(--ics-blue) !important;
  color: #ffffff !important;
  box-shadow: 0 12px 26px rgba(120, 184, 191, .22) !important;
  font-family: var(--ics-sans) !important;
  font-size: 1rem !important;
  font-weight: 850 !important;
  line-height: 1.1 !important;
  letter-spacing: 0 !important;
  text-transform: none !important;
}

/* Membership number should remain green rather than blue */
body.member-profile-page .membership-no,
body.member-profile-page .member-kicker {
  background: var(--ics-green-soft) !important;
  border-color: rgba(15, 166, 68, .18) !important;
  color: #20733a !important;
}

/* Buttons */
body.home-page .nav-cta,
body.membership-page .nav-cta,
body.training-page .nav-cta,
body.advice-page .nav-cta,
body.member-profile-page .nav-cta,
body.directory-page .nav-cta,
body.home-page .btn-ics-primary,
body.membership-page .btn-ics-primary,
body.training-page .btn-ics-primary,
body.advice-page .btn-ics-primary,
body.member-profile-page .btn-call,
body.member-profile-page .listing-profile-btn {
  color: #ffffff !important;
  background: var(--ics-green) !important;
  border-color: var(--ics-green) !important;
  font-family: var(--ics-sans) !important;
  font-weight: 850 !important;
  text-decoration: none !important;
}

/* Responsive heading consistency */
@media (max-width: 991.98px) {
  body.home-page .hero-title,
  body.home-page .home-hero h1,
  body.membership-page .membership-hero h1,
  body.training-page .training-hero h1,
  body.advice-page .advice-hero h1,
  body.member-profile-page .profile-hero h1.member-name,
  body.member-profile-page .profile-hero h1:not(.member-name),
  body.member-profile-page .member-hero h1,
  body.directory-page .directory-hero h1,
  .directory-hero h1 {
    font-size: clamp(2.35rem, 7.2vw, 3.75rem) !important;
  }
}

@media (max-width: 575.98px) {
  body.home-page .hero-title,
  body.home-page .home-hero h1,
  body.membership-page .membership-hero h1,
  body.training-page .training-hero h1,
  body.advice-page .advice-hero h1,
  body.member-profile-page .profile-hero h1.member-name,
  body.member-profile-page .profile-hero h1:not(.member-name),
  body.member-profile-page .member-hero h1,
  body.directory-page .directory-hero h1,
  .directory-hero h1 {
    font-size: clamp(2.05rem, 9.6vw, 2.85rem) !important;
    line-height: 1.04 !important;
  }

  body.home-page .home-contact-kicker,
  body.home-page .section-kicker,
  body.membership-page .membership-kicker,
  body.membership-page .section-eyebrow,
  body.training-page .training-kicker,
  body.training-page .section-eyebrow,
  body.advice-page .advice-kicker,
  body.advice-page .section-kicker,
  body.advice-page .section-eyebrow,
  body.member-profile-page .membership-no,
  body.member-profile-page .member-kicker {
    min-height: 46px !important;
    padding: 0.65rem 1.25rem !important;
    font-size: 0.95rem !important;
  }
}

/* =========================================================
   ICS NAV + FOOTER CONSISTENCY FIX
   - Keeps navigation spacing/typography consistent
   - Prevents incorrect active underline from being visually forced
   - Restores footer text/link visibility on all pages
   ========================================================= */

:root {
  --ics-deep: #093040;
  --ics-text: #36566b;
  --ics-green: #0FA644;
  --ics-green-dark: #0c933d;
  --ics-footer-bg: #3f4b58;
  --ics-footer-text: rgba(255,255,255,.82);
  --ics-footer-heading: #ffffff;
  --ics-footer-muted: rgba(255,255,255,.62);
}

/* Consistent header across all pages */
.site-header {
  background: rgba(255, 255, 255, .98) !important;
  border-bottom: 1px solid rgba(9, 48, 64, .06) !important;
  box-shadow: 0 2px 18px rgba(9, 48, 64, .10) !important;
  z-index: 1030 !important;
}

.site-header .nav-wrap {
  min-height: 100px !important;
  padding: .85rem clamp(1.25rem, 3vw, 3rem) !important;
}

.site-header .brand-lockup {
  gap: 1rem !important;
  color: var(--ics-deep) !important;
  text-decoration: none !important;
}

.site-header .brand-logo {
  width: 58px !important;
  height: 58px !important;
  flex: 0 0 58px !important;
}

.site-header .brand-name {
  color: var(--ics-deep) !important;
  font-family: Inter, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif !important;
  font-size: 1.02rem !important;
  font-weight: 850 !important;
  line-height: 1.08 !important;
  letter-spacing: .01em !important;
  text-transform: uppercase !important;
}

.site-header .brand-name span {
  display: block !important;
}

.site-header .navbar-nav {
  align-items: center !important;
  gap: 1.45rem !important;
}

.site-header .navbar .nav-link {
  position: relative !important;
  color: var(--ics-deep) !important;
  font-family: Inter, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif !important;
  font-size: 1rem !important;
  font-weight: 760 !important;
  line-height: 1.2 !important;
  padding: .7rem 0 !important;
  text-decoration: none !important;
}

.site-header .navbar .nav-link:hover,
.site-header .navbar .nav-link:focus {
  color: var(--ics-green) !important;
}

/* Reset any old underline rules */
.site-header .navbar .nav-link::after {
  content: none !important;
}

/* JS will apply this class to the correct current nav item */
.site-header .navbar .nav-link.is-current,
.site-header .navbar .nav-link.active {
  color: var(--ics-green) !important;
}

.site-header .navbar .nav-link.is-current::after,
.site-header .navbar .nav-link.active::after {
  content: "" !important;
  position: absolute !important;
  left: 0 !important;
  right: 0 !important;
  bottom: .25rem !important;
  height: 2px !important;
  border-radius: 999px !important;
  background: var(--ics-green) !important;
}

.site-header .nav-cta {
  background: var(--ics-green) !important;
  color: #ffffff !important;
  border: 0 !important;
  border-radius: 12px !important;
  padding: 1rem 1.45rem !important;
  min-height: 58px !important;
  font-weight: 850 !important;
  line-height: 1.2 !important;
  box-shadow: 0 12px 24px rgba(15, 166, 68, .18) !important;
  text-decoration: none !important;
}

.site-header .nav-cta:hover,
.site-header .nav-cta:focus {
  background: var(--ics-green-dark) !important;
  color: #ffffff !important;
}

/* Footer text visibility */
.site-footer {
  background-color: var(--ics-footer-bg) !important;
  color: var(--ics-footer-text) !important;
}

.site-footer,
.site-footer p,
.site-footer li,
.site-footer span,
.site-footer small,
.site-footer .footer-note,
.site-footer .copyright,
.site-footer .dev-note {
  color: var(--ics-footer-text) !important;
}

.site-footer h1,
.site-footer h2,
.site-footer h3,
.site-footer h4,
.site-footer .footer-column h2,
.site-footer .footer-brand,
.site-footer .footer-brand strong {
  color: var(--ics-footer-heading) !important;
}

.site-footer a,
.site-footer a:link,
.site-footer a:visited {
  color: #ffffff !important;
  text-decoration: none !important;
}

.site-footer a:hover,
.site-footer a:focus {
  color: #ffffff !important;
  text-decoration: underline !important;
  text-underline-offset: .18em;
}

.site-footer .footer-column h2 {
  border-bottom-color: rgba(78, 166, 84, .72) !important;
}

.site-footer .footer-bottom,
.site-footer .footer-bottom p,
.site-footer .footer-bottom small {
  color: var(--ics-footer-muted) !important;
  border-top-color: rgba(255,255,255,.16) !important;
}

/* Mobile nav */
@media (max-width: 991.98px) {
  .site-header .nav-wrap {
    min-height: 82px !important;
    padding: .7rem 1rem !important;
  }

  .site-header .brand-logo {
    width: 52px !important;
    height: 52px !important;
    flex-basis: 52px !important;
  }

  .site-header .brand-name {
    font-size: .92rem !important;
  }

  .site-header .navbar-nav {
    align-items: stretch !important;
    gap: 0 !important;
    padding-top: .8rem !important;
  }

  .site-header .navbar .nav-link {
    padding: .75rem 0 !important;
  }

  .site-header .navbar .nav-link.is-current::after,
  .site-header .navbar .nav-link.active::after {
    display: none !important;
  }

  .site-header .nav-cta {
    width: 100% !important;
    margin-top: .5rem !important;
  }
}

/* =========================================================
   ICS HEADER LOGO SIZE TWEAK
   Makes the top-left ICS icon slightly larger across pages
   while keeping the header/nav layout stable.
   ========================================================= */

.site-header .brand-logo {
  width: 68px !important;
  height: 68px !important;
  flex: 0 0 68px !important;
}

.site-header .brand-logo img,
.site-header .brand-logo svg {
  width: 100% !important;
  height: 100% !important;
  display: block !important;
}

.site-header .brand-lockup,
.site-header .navbar-brand {
  gap: 1.15rem !important;
}

.site-header .brand-name {
  font-size: 1.04rem !important;
  line-height: 1.08 !important;
}

/* Keep the header height consistent with the larger mark */
.site-header .nav-wrap {
  min-height: 104px !important;
}

/* Tablet / mobile */
@media (max-width: 991.98px) {
  .site-header .brand-logo {
    width: 60px !important;
    height: 60px !important;
    flex-basis: 60px !important;
  }

  .site-header .brand-lockup,
  .site-header .navbar-brand {
    gap: .95rem !important;
  }

  .site-header .brand-name {
    font-size: .94rem !important;
  }

  .site-header .nav-wrap {
    min-height: 86px !important;
  }
}

/* Small mobile */
@media (max-width: 575.98px) {
  .site-header .brand-logo {
    width: 56px !important;
    height: 56px !important;
    flex-basis: 56px !important;
  }

  .site-header .brand-name {
    font-size: .88rem !important;
  }
}

/* =========================================================
   ICS MASTER HEADER WIDTH LOCK
   Final header rule set to stop the navigation jumping between
   Home, Membership, Training, Safety Advice and member pages.
   ========================================================= */

.site-header,
body.home-page .site-header,
body.membership-page .site-header,
body.training-page .site-header,
body.advice-page .site-header,
body.member-profile-page .site-header,
body.directory-page .site-header {
  width: 100% !important;
  max-width: none !important;
  background: rgba(255, 255, 255, .98) !important;
  border-bottom: 1px solid rgba(9, 48, 64, .06) !important;
  box-shadow: 0 2px 18px rgba(9, 48, 64, .10) !important;
  z-index: 1030 !important;
}

.site-header .navbar,
body.home-page .site-header .navbar,
body.membership-page .site-header .navbar,
body.training-page .site-header .navbar,
body.advice-page .site-header .navbar,
body.member-profile-page .site-header .navbar,
body.directory-page .site-header .navbar {
  width: 100% !important;
  max-width: none !important;
  padding: 0 !important;
  margin: 0 !important;
}

.site-header .container,
.site-header .container-fluid,
.site-header .nav-wrap,
body.home-page .site-header .container,
body.home-page .site-header .container-fluid,
body.home-page .site-header .nav-wrap,
body.membership-page .site-header .container,
body.membership-page .site-header .container-fluid,
body.membership-page .site-header .nav-wrap,
body.training-page .site-header .container,
body.training-page .site-header .container-fluid,
body.training-page .site-header .nav-wrap,
body.advice-page .site-header .container,
body.advice-page .site-header .container-fluid,
body.advice-page .site-header .nav-wrap,
body.member-profile-page .site-header .container,
body.member-profile-page .site-header .container-fluid,
body.member-profile-page .site-header .nav-wrap,
body.directory-page .site-header .container,
body.directory-page .site-header .container-fluid,
body.directory-page .site-header .nav-wrap {
  width: 100% !important;
  max-width: none !important;
  margin-left: 0 !important;
  margin-right: 0 !important;
}

/* Desktop: one fixed grid layout across every page */
@media (min-width: 992px) {
  .site-header .nav-wrap,
  body.home-page .site-header .nav-wrap,
  body.membership-page .site-header .nav-wrap,
  body.training-page .site-header .nav-wrap,
  body.advice-page .site-header .nav-wrap,
  body.member-profile-page .site-header .nav-wrap,
  body.directory-page .site-header .nav-wrap {
    min-height: 104px !important;
    padding: .85rem clamp(2rem, 3vw, 3.25rem) !important;
    display: grid !important;
    grid-template-columns: auto minmax(0, 1fr) !important;
    align-items: center !important;
    column-gap: 2rem !important;
  }

  .site-header .brand-lockup,
  .site-header .navbar-brand,
  body.home-page .site-header .brand-lockup,
  body.membership-page .site-header .brand-lockup,
  body.training-page .site-header .brand-lockup,
  body.advice-page .site-header .brand-lockup,
  body.member-profile-page .site-header .brand-lockup,
  body.directory-page .site-header .brand-lockup {
    grid-column: 1 !important;
    justify-self: start !important;
    flex: 0 0 auto !important;
    margin: 0 !important;
    gap: 1.15rem !important;
    color: #093040 !important;
    text-decoration: none !important;
  }

  .site-header .navbar-collapse,
  body.home-page .site-header .navbar-collapse,
  body.membership-page .site-header .navbar-collapse,
  body.training-page .site-header .navbar-collapse,
  body.advice-page .site-header .navbar-collapse,
  body.member-profile-page .site-header .navbar-collapse,
  body.directory-page .site-header .navbar-collapse {
    grid-column: 2 !important;
    justify-self: end !important;
    width: auto !important;
    max-width: none !important;
    display: flex !important;
    justify-content: flex-end !important;
  }

  .site-header .navbar-nav,
  .site-header .main-nav-list,
  body.home-page .site-header .navbar-nav,
  body.home-page .site-header .main-nav-list,
  body.membership-page .site-header .navbar-nav,
  body.membership-page .site-header .main-nav-list,
  body.training-page .site-header .navbar-nav,
  body.training-page .site-header .main-nav-list,
  body.advice-page .site-header .navbar-nav,
  body.advice-page .site-header .main-nav-list,
  body.member-profile-page .site-header .navbar-nav,
  body.member-profile-page .site-header .main-nav-list,
  body.directory-page .site-header .navbar-nav,
  body.directory-page .site-header .main-nav-list {
    display: flex !important;
    align-items: center !important;
    justify-content: flex-end !important;
    gap: clamp(1.15rem, 1.45vw, 1.65rem) !important;
    width: auto !important;
    margin: 0 !important;
    padding: 0 !important;
  }

  .site-header .nav-item,
  body.home-page .site-header .nav-item,
  body.membership-page .site-header .nav-item,
  body.training-page .site-header .nav-item,
  body.advice-page .site-header .nav-item,
  body.member-profile-page .site-header .nav-item,
  body.directory-page .site-header .nav-item {
    flex: 0 0 auto !important;
    margin: 0 !important;
  }
}

/* Shared logo + text */
.site-header img.brand-logo,
.site-header .brand-logo,
body.home-page .site-header img.brand-logo,
body.membership-page .site-header img.brand-logo,
body.training-page .site-header img.brand-logo,
body.advice-page .site-header img.brand-logo,
body.member-profile-page .site-header img.brand-logo,
body.directory-page .site-header img.brand-logo {
  width: 68px !important;
  height: 68px !important;
  min-width: 68px !important;
  max-width: 68px !important;
  flex: 0 0 68px !important;
  display: block !important;
}

.site-header .brand-name,
body.home-page .site-header .brand-name,
body.membership-page .site-header .brand-name,
body.training-page .site-header .brand-name,
body.advice-page .site-header .brand-name,
body.member-profile-page .site-header .brand-name,
body.directory-page .site-header .brand-name {
  color: #093040 !important;
  font-family: Inter, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif !important;
  font-size: 1.04rem !important;
  line-height: 1.08 !important;
  font-weight: 850 !important;
  letter-spacing: .01em !important;
  text-transform: uppercase !important;
}

.site-header .brand-name span {
  display: block !important;
}

/* Shared nav links */
.site-header .navbar .nav-link,
body.home-page .site-header .navbar .nav-link,
body.membership-page .site-header .navbar .nav-link,
body.training-page .site-header .navbar .nav-link,
body.advice-page .site-header .navbar .nav-link,
body.member-profile-page .site-header .navbar .nav-link,
body.directory-page .site-header .navbar .nav-link {
  position: relative !important;
  display: inline-flex !important;
  align-items: center !important;
  padding: .7rem 0 !important;
  margin: 0 !important;
  color: #093040 !important;
  font-family: Inter, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif !important;
  font-size: 1rem !important;
  font-weight: 760 !important;
  line-height: 1.2 !important;
  white-space: nowrap !important;
  text-decoration: none !important;
}

.site-header .navbar .nav-link:hover,
.site-header .navbar .nav-link:focus,
.site-header .navbar .nav-link.active,
.site-header .navbar .nav-link.is-current {
  color: #0FA644 !important;
}

/* Reset old underline rules, then add one consistent active underline */
.site-header .navbar .nav-link::after {
  content: none !important;
  display: none !important;
}

.site-header .navbar .nav-link.active::after,
.site-header .navbar .nav-link.is-current::after {
  content: "" !important;
  display: block !important;
  position: absolute !important;
  left: 0 !important;
  right: 0 !important;
  bottom: .25rem !important;
  height: 2px !important;
  border-radius: 999px !important;
  background: #0FA644 !important;
}

/* Shared CTA */
.site-header .nav-cta,
body.home-page .site-header .nav-cta,
body.membership-page .site-header .nav-cta,
body.training-page .site-header .nav-cta,
body.advice-page .site-header .nav-cta,
body.member-profile-page .site-header .nav-cta,
body.directory-page .site-header .nav-cta {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  min-height: 58px !important;
  padding: 1rem 1.45rem !important;
  border-radius: 12px !important;
  background: #0FA644 !important;
  color: #ffffff !important;
  border: 0 !important;
  box-shadow: 0 12px 24px rgba(15, 166, 68, .18) !important;
  font-weight: 850 !important;
  line-height: 1.2 !important;
  text-decoration: none !important;
  white-space: nowrap !important;
}

.site-header .nav-cta:hover,
.site-header .nav-cta:focus {
  background: #0c933d !important;
  color: #ffffff !important;
}

/* Tablet / mobile */
@media (max-width: 991.98px) {
  .site-header .nav-wrap,
  body.home-page .site-header .nav-wrap,
  body.membership-page .site-header .nav-wrap,
  body.training-page .site-header .nav-wrap,
  body.advice-page .site-header .nav-wrap,
  body.member-profile-page .site-header .nav-wrap,
  body.directory-page .site-header .nav-wrap {
    min-height: 86px !important;
    padding: .7rem 1rem !important;
    display: flex !important;
    align-items: center !important;
    flex-wrap: wrap !important;
  }

  .site-header img.brand-logo,
  .site-header .brand-logo,
  body.home-page .site-header img.brand-logo,
  body.membership-page .site-header img.brand-logo,
  body.training-page .site-header img.brand-logo,
  body.advice-page .site-header img.brand-logo,
  body.member-profile-page .site-header img.brand-logo,
  body.directory-page .site-header img.brand-logo {
    width: 60px !important;
    height: 60px !important;
    min-width: 60px !important;
    max-width: 60px !important;
    flex-basis: 60px !important;
  }

  .site-header .brand-name {
    font-size: .94rem !important;
  }

  .site-header .navbar-collapse {
    flex-basis: 100% !important;
    width: 100% !important;
  }

  .site-header .navbar-nav,
  .site-header .main-nav-list {
    width: 100% !important;
    align-items: stretch !important;
    gap: 0 !important;
    padding-top: .8rem !important;
  }

  .site-header .navbar .nav-link {
    padding: .75rem 0 !important;
  }

  .site-header .navbar .nav-link.active::after,
  .site-header .navbar .nav-link.is-current::after {
    display: none !important;
  }

  .site-header .nav-cta {
    width: 100% !important;
    margin-top: .5rem !important;
  }
}

@media (max-width: 575.98px) {
  .site-header img.brand-logo,
  .site-header .brand-logo {
    width: 56px !important;
    height: 56px !important;
    min-width: 56px !important;
    max-width: 56px !important;
    flex-basis: 56px !important;
  }

  .site-header .brand-name {
    font-size: .88rem !important;
  }
}

/* =========================================================
   ICS FOOTER BRAND TEXT FINAL FIX
   Ensures footer brand text displays as ICS and copyright is clean.
   ========================================================= */

.site-footer .footer-brand strong,
.site-footer .footer-brand span,
.site-footer .footer-logo-text,
.site-footer .footer-brand-name {
  color: #ffffff !important;
}

/* Hide older two-line footer brand wording if it remains in any static/generated page */
.site-footer .footer-brand strong,
.site-footer .footer-brand-name {
  font-size: 0 !important;
  line-height: 0 !important;
}

.site-footer .footer-brand strong::after,
.site-footer .footer-brand-name::after {
  content: "ICS" !important;
  display: inline-block !important;
  font-size: 1rem !important;
  line-height: 1.2 !important;
  font-weight: 850 !important;
  color: #ffffff !important;
}

/* =========================================================
   ICS HEADER LOGO ONLY
   Removes the text beside the top-left logo while keeping
   the footer brand text and layout intact.
   ========================================================= */

.site-header .brand-lockup .brand-name,
.site-header .navbar-brand .brand-name {
  display: none !important;
}

.site-header .brand-lockup,
.site-header .navbar-brand {
  gap: 0 !important;
}

/* Keep the larger icon from the previous header work */
.site-header img.brand-logo,
.site-header .brand-logo {
  width: 68px !important;
  height: 68px !important;
  min-width: 68px !important;
  max-width: 68px !important;
  flex: 0 0 68px !important;
  display: block !important;
}

/* Mobile */
@media (max-width: 991.98px) {
  .site-header img.brand-logo,
  .site-header .brand-logo {
    width: 60px !important;
    height: 60px !important;
    min-width: 60px !important;
    max-width: 60px !important;
    flex-basis: 60px !important;
  }
}

@media (max-width: 575.98px) {
  .site-header img.brand-logo,
  .site-header .brand-logo {
    width: 56px !important;
    height: 56px !important;
    min-width: 56px !important;
    max-width: 56px !important;
    flex-basis: 56px !important;
  }
}

/* =========================================================
   ICS HEADER LOGO ALIGN + SIZE TWEAK
   - keeps header text hidden
   - makes the logo larger
   - lines the logo up more closely with the main page content
   ========================================================= */

/* Keep header text hidden */
.site-header .brand-lockup .brand-name,
.site-header .navbar-brand .brand-name {
  display: none !important;
}

/* Remove the empty gap from the old text lockup */
.site-header .brand-lockup,
.site-header .navbar-brand {
  gap: 0 !important;
}

/* Desktop layout: increase side padding so the logo aligns
   more closely with the start of the page content */
@media (min-width: 992px) {
  .site-header .nav-wrap,
  body.home-page .site-header .nav-wrap,
  body.membership-page .site-header .nav-wrap,
  body.training-page .site-header .nav-wrap,
  body.advice-page .site-header .nav-wrap,
  body.member-profile-page .site-header .nav-wrap,
  body.directory-page .site-header .nav-wrap {
    padding-left: clamp(4.25rem, 6vw, 7rem) !important;
    padding-right: clamp(4.25rem, 6vw, 7rem) !important;
    column-gap: 2.35rem !important;
  }
}

/* Larger logo */
.site-header .brand-logo,
.site-header img.brand-logo {
  width: 78px !important;
  height: 78px !important;
  min-width: 78px !important;
  max-width: 78px !important;
  flex: 0 0 78px !important;
  display: block !important;
}

/* Small screens */
@media (max-width: 991.98px) {
  .site-header .brand-logo,
  .site-header img.brand-logo {
    width: 66px !important;
    height: 66px !important;
    min-width: 66px !important;
    max-width: 66px !important;
    flex-basis: 66px !important;
  }
}

@media (max-width: 575.98px) {
  .site-header .brand-logo,
  .site-header img.brand-logo {
    width: 58px !important;
    height: 58px !important;
    min-width: 58px !important;
    max-width: 58px !important;
    flex-basis: 58px !important;
  }
}

/* =========================================================
   ICS HEADER LOGO FINAL ALIGNMENT
   Makes the header logo larger and aligns it with the main
   hero/page content start instead of the far browser edge.
   ========================================================= */

/* Header remains logo-only */
.site-header .brand-lockup .brand-name,
.site-header .navbar-brand .brand-name {
  display: none !important;
}

.site-header .brand-lockup,
.site-header .navbar-brand {
  gap: 0 !important;
}

/* Desktop: line the logo up with the hero/page content start */
@media (min-width: 1200px) {
  .site-header .nav-wrap,
  body.home-page .site-header .nav-wrap,
  body.membership-page .site-header .nav-wrap,
  body.training-page .site-header .nav-wrap,
  body.advice-page .site-header .nav-wrap,
  body.member-profile-page .site-header .nav-wrap,
  body.directory-page .site-header .nav-wrap {
    padding-left: clamp(8.75rem, 12vw, 14.25rem) !important;
    padding-right: clamp(4.25rem, 6vw, 7rem) !important;
  }
}

/* Slightly smaller desktop/tablet widths need a little less inset */
@media (min-width: 992px) and (max-width: 1199.98px) {
  .site-header .nav-wrap,
  body.home-page .site-header .nav-wrap,
  body.membership-page .site-header .nav-wrap,
  body.training-page .site-header .nav-wrap,
  body.advice-page .site-header .nav-wrap,
  body.member-profile-page .site-header .nav-wrap,
  body.directory-page .site-header .nav-wrap {
    padding-left: clamp(5.5rem, 8vw, 7.5rem) !important;
    padding-right: clamp(2.5rem, 4vw, 4rem) !important;
  }
}

/* Larger logo */
.site-header .brand-logo,
.site-header img.brand-logo {
  width: 92px !important;
  height: 92px !important;
  min-width: 92px !important;
  max-width: 92px !important;
  flex: 0 0 92px !important;
  display: block !important;
}

/* Give the header enough breathing room for the larger logo */
.site-header .nav-wrap {
  min-height: 116px !important;
}

/* Medium screens */
@media (max-width: 991.98px) {
  .site-header .brand-logo,
  .site-header img.brand-logo {
    width: 72px !important;
    height: 72px !important;
    min-width: 72px !important;
    max-width: 72px !important;
    flex-basis: 72px !important;
  }

  .site-header .nav-wrap {
    min-height: 92px !important;
  }
}

/* Small mobile */
@media (max-width: 575.98px) {
  .site-header .brand-logo,
  .site-header img.brand-logo {
    width: 62px !important;
    height: 62px !important;
    min-width: 62px !important;
    max-width: 62px !important;
    flex-basis: 62px !important;
  }

  .site-header .nav-wrap {
    min-height: 84px !important;
  }
}

/* =========================================================
   ICS HEADER LOGO FORCE-LARGER FIX
   Uses stronger selectors plus transform so the visible mark
   definitely increases even if older width rules are cached
   or loaded later.
   ========================================================= */

/* Keep the header as logo-only */
html body .site-header .brand-lockup .brand-name,
html body .site-header .navbar-brand .brand-name {
  display: none !important;
}

html body .site-header .brand-lockup,
html body .site-header .navbar-brand {
  gap: 0 !important;
  overflow: visible !important;
}

/* Desktop alignment with the hero text block */
@media (min-width: 1200px) {
  html body .site-header .nav-wrap {
    padding-left: clamp(8.75rem, 12vw, 14.25rem) !important;
    padding-right: clamp(4.25rem, 6vw, 7rem) !important;
  }
}

/* Strong visual size increase */
html body .site-header a.brand-lockup > img.brand-logo,
html body .site-header a.navbar-brand > img.brand-logo,
html body .site-header img.brand-logo,
html body .site-header .brand-logo {
  width: 104px !important;
  height: 104px !important;
  min-width: 104px !important;
  max-width: 104px !important;
  flex: 0 0 104px !important;
  display: block !important;
  transform: scale(1.18) !important;
  transform-origin: center center !important;
}

html body .site-header .nav-wrap {
  min-height: 126px !important;
  overflow: visible !important;
}

html body .site-header,
html body .site-header .navbar {
  overflow: visible !important;
}

/* Medium screens */
@media (max-width: 991.98px) {
  html body .site-header a.brand-lockup > img.brand-logo,
  html body .site-header a.navbar-brand > img.brand-logo,
  html body .site-header img.brand-logo,
  html body .site-header .brand-logo {
    width: 78px !important;
    height: 78px !important;
    min-width: 78px !important;
    max-width: 78px !important;
    flex-basis: 78px !important;
    transform: scale(1.08) !important;
  }

  html body .site-header .nav-wrap {
    min-height: 98px !important;
  }
}

/* Small mobile */
@media (max-width: 575.98px) {
  html body .site-header a.brand-lockup > img.brand-logo,
  html body .site-header a.navbar-brand > img.brand-logo,
  html body .site-header img.brand-logo,
  html body .site-header .brand-logo {
    width: 66px !important;
    height: 66px !important;
    min-width: 66px !important;
    max-width: 66px !important;
    flex-basis: 66px !important;
    transform: scale(1.04) !important;
  }

  html body .site-header .nav-wrap {
    min-height: 88px !important;
  }
}

/* =========================================================
   ICS HEADER DEPTH REFINEMENT
   Keeps the logo strong but reduces the nav bar depth.
   ========================================================= */

/* Header remains logo-only */
html body .site-header .brand-lockup .brand-name,
html body .site-header .navbar-brand .brand-name {
  display: none !important;
}

html body .site-header .brand-lockup,
html body .site-header .navbar-brand {
  gap: 0 !important;
  overflow: visible !important;
}

/* Keep the logo aligned with the main content */
@media (min-width: 1200px) {
  html body .site-header .nav-wrap {
    padding-left: clamp(8.75rem, 12vw, 14.25rem) !important;
    padding-right: clamp(4.25rem, 6vw, 7rem) !important;
  }
}

/* Slightly smaller than the previous forced version */
html body .site-header a.brand-lockup > img.brand-logo,
html body .site-header a.navbar-brand > img.brand-logo,
html body .site-header img.brand-logo,
html body .site-header .brand-logo {
  width: 96px !important;
  height: 96px !important;
  min-width: 96px !important;
  max-width: 96px !important;
  flex: 0 0 96px !important;
  display: block !important;
  transform: scale(1.08) !important;
  transform-origin: center center !important;
}

/* Reduced header height */
html body .site-header .nav-wrap {
  min-height: 108px !important;
  overflow: visible !important;
}

html body .site-header,
html body .site-header .navbar {
  overflow: visible !important;
}

/* Medium screens */
@media (max-width: 991.98px) {
  html body .site-header a.brand-lockup > img.brand-logo,
  html body .site-header a.navbar-brand > img.brand-logo,
  html body .site-header img.brand-logo,
  html body .site-header .brand-logo {
    width: 72px !important;
    height: 72px !important;
    min-width: 72px !important;
    max-width: 72px !important;
    flex-basis: 72px !important;
    transform: scale(1.04) !important;
  }

  html body .site-header .nav-wrap {
    min-height: 90px !important;
  }
}

/* Small mobile */
@media (max-width: 575.98px) {
  html body .site-header a.brand-lockup > img.brand-logo,
  html body .site-header a.navbar-brand > img.brand-logo,
  html body .site-header img.brand-logo,
  html body .site-header .brand-logo {
    width: 62px !important;
    height: 62px !important;
    min-width: 62px !important;
    max-width: 62px !important;
    flex-basis: 62px !important;
    transform: scale(1) !important;
  }

  html body .site-header .nav-wrap {
    min-height: 82px !important;
  }
}
