.l4d-footer-widget {
  --ink: #17352f;
  --green: #315f57;
  --green-dark: #214840;
  --lime: #9db66b;
  --paper: #fffdf9;
  --cream: #f1efe6;
  --line: rgba(255, 255, 255, .14);
  width: 100%;
  color: var(--cream);
  background: var(--ink);
  font-family: "DM Sans", Arial, sans-serif;
}
.l4d-footer-widget *, .l4d-footer-widget *::before, .l4d-footer-widget *::after { box-sizing: border-box; }
.l4d-footer-widget a { color: inherit; text-decoration: none; }
.l4d-footer-widget a:focus { outline: none; }
.l4d-footer-widget a:focus-visible { outline: 2px solid var(--lime); outline-offset: 4px; }
.he-site-footer { position: relative; overflow: hidden; background: radial-gradient(circle at 8% 0, rgba(157,182,107,.15), transparent 30rem), var(--ink); }
.he-site-footer::before { content: ""; position: absolute; top: 0; right: 0; left: 0; height: 1px; background: linear-gradient(90deg, transparent, rgba(157,182,107,.7), transparent); }
.he-footer-shell { width: min(100% - 2.5rem, 86rem); margin-inline: auto; }
.he-footer-main { display: grid; grid-template-columns: minmax(17rem, .9fr) minmax(0, 1.8fr); gap: clamp(3rem, 7vw, 7rem); padding-block: clamp(4rem, 7vw, 6.5rem); }
.he-footer-brand-panel { max-width: 29rem; }
.he-footer-logo { display: inline-flex; align-items: center; gap: .85rem; }
.he-footer-logo img { display: block; width: auto; max-width: 12rem; height: clamp(2.8rem, 5vw, 4rem); object-fit: contain; }
.he-footer-mark { display: grid; place-items: center; width: 3.35rem; height: 3.35rem; border: 1px solid rgba(255,255,255,.4); border-radius: 50%; color: var(--paper); font-family: Georgia, "Times New Roman", serif; font-size: 1.05rem; letter-spacing: .08em; }
.he-footer-description { max-width: 28rem; margin: 1.55rem 0 0; color: rgba(255,255,255,.7); font-size: .98rem; line-height: 1.75; }
.he-footer-contact { display: grid; gap: .8rem; margin-top: 1.7rem; font-style: normal; }
.he-footer-contact > span, .he-footer-contact > a { display: flex; align-items: flex-start; gap: .7rem; width: fit-content; max-width: 100%; color: rgba(255,255,255,.78); font-size: .84rem; line-height: 1.55; }
.he-footer-contact a:hover { color: #fff; }
.he-footer-contact svg { flex: 0 0 auto; width: 1.05rem; height: 1.05rem; margin-top: .14rem; fill: none; stroke: var(--lime); stroke-linecap: round; stroke-linejoin: round; stroke-width: 1.7; }
.he-footer-navigation { display: grid; grid-template-columns: repeat(auto-fit, minmax(10.5rem, 1fr)); gap: 2.75rem clamp(1.5rem, 4vw, 3.5rem); align-content: start; }
.he-footer-column h2 { margin: 0 0 1.15rem; color: var(--paper); font-size: .75rem; font-weight: 800; letter-spacing: .14em; text-transform: uppercase; }
.he-footer-column ul { display: grid; gap: .72rem; margin: 0; padding: 0; list-style: none; }
.he-footer-column li { margin: 0; padding: 0; }
.he-footer-column a { display: inline-flex; align-items: center; gap: .35rem; color: rgba(255,255,255,.7); font-size: .88rem; line-height: 1.45; transition: color .18s ease, transform .18s ease; }
.he-footer-column a span { opacity: 0; color: var(--lime); font-size: .72rem; transform: translate(-.25rem, .1rem); transition: opacity .18s ease, transform .18s ease; }
.he-footer-column a:hover { color: #fff; transform: translateX(.15rem); }
.he-footer-column a:hover span { opacity: 1; transform: translate(0, .1rem); }
.he-footer-bottom { display: grid; grid-template-columns: auto 1fr auto; align-items: center; gap: 1.25rem; min-height: 5rem; padding-block: 1.15rem; border-top: 1px solid var(--line); color: rgba(255,255,255,.55); font-size: .75rem; }
.he-footer-bottom p { margin: 0; }
.he-footer-bottom p:nth-child(2) { text-align: center; }
.he-footer-bottom > a { display: inline-flex; align-items: center; gap: .45rem; color: rgba(255,255,255,.72); font-weight: 800; }
.he-footer-bottom > a span { color: var(--lime); font-size: 1rem; }
.he-footer-bottom > a:hover { color: #fff; }
@media (max-width: 900px) {
  .he-footer-main { grid-template-columns: 1fr; gap: 3.5rem; }
  .he-footer-brand-panel { max-width: 38rem; }
  .he-footer-navigation { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 600px) {
  .he-footer-shell { width: min(100% - 2rem, 86rem); }
  .he-footer-main { padding-block: 3.5rem; }
  .he-footer-navigation { grid-template-columns: 1fr 1fr; gap: 2.5rem 1.25rem; }
  .he-footer-column:last-child:nth-child(odd) { grid-column: 1 / -1; }
  .he-footer-bottom { grid-template-columns: 1fr auto; gap: .65rem 1rem; padding-block: 1.35rem; }
  .he-footer-bottom p:nth-child(2) { grid-column: 1 / -1; grid-row: 2; text-align: left; }
}
@media (max-width: 390px) {
  .he-footer-navigation { grid-template-columns: 1fr; }
  .he-footer-column:last-child:nth-child(odd) { grid-column: auto; }
}

/* Shared responsive guardrails: contain unpredictable CMS content. */
.l4d-footer-widget { min-width:0; max-width:100%; overflow-wrap:anywhere; }
.l4d-footer-widget :where(img,video,canvas,iframe) { max-width:100%; }
.l4d-footer-widget :where(input,select,textarea) { max-width:100%; }
