/* ==========================================================================
   Footer chrome
   ========================================================================== */
.cfg-footer { background: var(--cfg-primary-dk); color: #BFD0D8; margin-top: 0; }
.cfg-footer a { color: #DCE7EC; text-decoration: none; }
.cfg-footer a:hover { color: #fff; }

.cfg-footer__grid { display: grid; grid-template-columns: 1.6fr 1fr 1fr 1.3fr; gap: 2.5rem; padding-block: clamp(3rem, 6vw, 4.5rem); }
.cfg-footer__logo img { max-height: 72px; width: auto; margin-bottom: 1rem; }
.cfg-footer__about { font-size: .95rem; line-height: 1.6; color: #AFC2CB; max-width: 36ch; }
.cfg-footer__h { color: #fff; font-family: var(--cfg-font-body); font-size: .82rem; font-weight: 600; letter-spacing: .12em; text-transform: uppercase; margin: 0 0 1.1rem; }
.cfg-footer__menu, .cfg-footer__contactlist { list-style: none; margin: 0; padding: 0; display: grid; gap: .6rem; font-size: .95rem; }
.cfg-footer__addr { color: #AFC2CB; }
.cfg-footer__hours { margin-top: 1.1rem; font-size: .9rem; color: #AFC2CB; }
.cfg-footer__hours strong { color: #fff; }
.cfg-footer__hint { font-size: .85rem; color: #80969f; }

.cfg-social { list-style: none; display: flex; gap: .55rem; margin: 1.2rem 0 0; padding: 0; }
.cfg-social a { display: grid; place-items: center; width: 38px; height: 38px; border: 1px solid rgba(255,255,255,.18); border-radius: 50%; color: #DCE7EC; transition: background .2s, color .2s, border-color .2s; }
.cfg-social a:hover { background: var(--cfg-accent); border-color: var(--cfg-accent); color: #fff; }

/* Accreditation band — sits at the TOP of the footer, so the marks read as a
   trust statement rather than small print.
   Each mark gets a white chip rather than a CSS filter. Two reasons: the
   supplied artwork is inconsistent (cpa-tick.png has an OPAQUE WHITE ground,
   the Approved roundel is transparent), so no single filter can flatter both —
   and accreditation bodies generally require their marks reproduced in the
   original colours. The chip makes the full-colour logo deliberate against the
   dark ground instead of looking like a rendering fault. */
.cfg-footer__accred { border-bottom: 1px solid rgba(255,255,255,.1); }
.cfg-footer__accred-row { display: flex; flex-wrap: wrap; align-items: center; justify-content: center; gap: clamp(1rem, 3vw, 2rem); padding-block: 1.8rem; }
.cfg-footer__accred-chip { display: inline-flex; align-items: center; justify-content: center; background: #fff; border-radius: var(--cfg-radius); padding: .7rem 1.1rem; min-height: 64px; transition: transform .2s, box-shadow .2s; }
.cfg-footer__accred-chip img { max-height: 44px; width: auto; display: block; }
a.cfg-footer__accred-chip:hover,
a.cfg-footer__accred-chip:focus-visible { transform: translateY(-2px); box-shadow: 0 6px 18px rgba(0,0,0,.28); }

/* ==========================================================================
   Google reviews strip (Trustindex widget, rendered by cfg_reviews_strip())
   The plugin ships a light-theme widget; these overrides sit it on our dark
   surface. Selectors are deliberately scoped to .cfg-reviews-strip so a
   Trustindex update can only ever break this band, never the rest of the site.
   ========================================================================== */
.cfg-reviews-strip { background: var(--cfg-surface-2); border-top: 1px solid var(--cfg-line); padding-block: clamp(2.2rem, 5vw, 3.4rem); }
.cfg-reviews-strip__heading { margin: 0 0 1.4rem; text-align: center; font-family: var(--cfg-font-body); font-size: .82rem; font-weight: 600; letter-spacing: .12em; text-transform: uppercase; color: var(--cfg-accent); }

.cfg-reviews-strip .ti-widget,
.cfg-reviews-strip .ti-widget * { color: inherit; }
.cfg-reviews-strip .ti-widget-container,
.cfg-reviews-strip .ti-review-item > .ti-inner { background: var(--cfg-surface) !important; border: 1px solid var(--cfg-line) !important; border-radius: var(--cfg-radius) !important; box-shadow: none !important; }
.cfg-reviews-strip .ti-review-content,
.cfg-reviews-strip .ti-name,
.cfg-reviews-strip .ti-profile-details { color: #E8EEF2 !important; }
.cfg-reviews-strip .ti-date,
.cfg-reviews-strip .ti-read-more { color: #9BB0B9 !important; }
.cfg-reviews-strip .ti-rating-text strong { color: #fff !important; }

.cfg-footer__bar { border-top: 1px solid rgba(255,255,255,.1); }
.cfg-footer__bar-inner { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: .8rem; padding-block: 1.3rem; font-size: .85rem; color: #9bb0b9; }
.cfg-footer__bar-inner p { margin: 0; }
.cfg-footer__legal { list-style: none; display: flex; flex-wrap: wrap; gap: 1.2rem; margin: 0; padding: 0; }

@media (max-width: 880px) {
  .cfg-footer__grid { grid-template-columns: 1fr 1fr; gap: 2rem; }
  .cfg-footer__brand { grid-column: 1 / -1; }
}
@media (max-width: 540px) {
  .cfg-footer__grid { grid-template-columns: 1fr; }
}
