/* footer.css — badge band + green footer family, split out of
   main.css at the 500-line hard cap (discipline 10, 2026-07-25;
   service-steps/hinnasto precedent). Loaded AFTER main.css. */

/* badge band (live section bckg-green-1) — r4 measured: 1296 container,
   pad 14/0, four fixed 360px columns left-aligned (img x=72,432,792,
   1152), logos natural size full-contrast (live has NO filter) */
.badge-band { background: var(--ll-gray); }  /* re-review: live 226,226,220 */
/* live rhythm: four 360px columns across the full 1440, img +5vw */
.badge-band-inner {
  display: grid; grid-template-columns: repeat(4, 1fr);
  align-items: center; justify-items: start;
  padding: 0.875rem 0; }
.badge-band img { margin-left: 5vw; }
/* live badge boxes measured: 150x110 / 120x166 / 100x100 / 120x141,
   object-fit contain (our asset intrinsics differ from live's render) */
.badge-band img { object-fit: contain; }
.badge-band img:nth-child(1) { width: 150px; height: 110px; }
.badge-band img:nth-child(2) { width: 120px; height: 166px; }
.badge-band img:nth-child(3) { width: 100px; height: 100px; }
.badge-band img:nth-child(4) { width: 120px; height: 141px; }

/* footer (live section bckg-green-3: green, cream text, columns) */
.site-footer { background: var(--ll-green); color: var(--ll-bg);
  font-size: var(--ll-fs-small); }  /* r6: live footer text = body
  default (14/16/12), not the 15.75 text-block size */
/* r6: live footer container is margin-bound at 5vw on BOTH sides
   (logo x = 72/96/128/172 at 1440/1920/2560/3440 = 5vw), vertical
   3em of body (42 -> 48 at >=1920) */
.footer-inner {
  padding: 2.625rem 5vw;
  display: flex; flex-wrap: wrap; gap: 6rem;
  justify-content: flex-start; align-items: flex-start; }
@media (min-width: 120rem) {
  .footer-inner { padding-top: 3rem; padding-bottom: 3rem; }
}
.site-footer a { color: var(--ll-bg); }
.site-footer h2 { color: var(--ll-bg); font-family: var(--ll-font);
  font-size: var(--ll-fs-base); font-weight: 500; margin-top: 0; }
/* live mark: the SVG carries its own moss circle — render it plain
   at 120x133 contain (a CSS circle+padding shrank the glyph to 88px) */
.footer-brand img { width: 120px; height: 133px; object-fit: contain;
  display: block; }
.footer-right { display: flex; flex-direction: column;
  align-items: flex-end; gap: var(--ll-sp-4); margin-left: auto; }
/* W5.3 owner catch 2026-07-25 (mobile footer): live scales the social
   icons per band — icon 26 / anchor 66 mobile, 28/68 tablet, 2R/6R
   desktop (28/84 @1440, 32/96 @1920 probed); anchors abut (pitch =
   anchor width), icons left-aligned. The old 32px + 3.5rem gap was the
   1920 value pinned everywhere. */
.footer-social { display: flex; gap: 0;
  align-items: center; }
.footer-social a { display: block; width: 66px; height: 32px; }
.footer-social img { width: 26px; height: 26px; object-fit: contain; }
@media (min-width: 30rem) {
  .footer-social a { width: 68px; }
  .footer-social img { width: 28px; height: 28px; }
}
@media (min-width: 62rem) {
  .footer-social a { width: calc(6 * var(--ll-r));
    height: calc(2 * var(--ll-r)); }
  .footer-social img { width: calc(2 * var(--ll-r));
    height: calc(2 * var(--ll-r)); }
}
.site-footer .footer-links a { text-decoration: none; }
.footer-links { text-align: right; font-size: var(--ll-fs-small); }
.footer-links p { margin: var(--ll-sp-1) 0; }
.footer-links p:first-child { font-size: var(--ll-fs-base);
  font-weight: 700; }  /* live © line = strong 15.75 */

/* mobile footer + hinnasto rules stay <=767 (their original block —
   the 2026-07-25 badge-band split above must not narrow them) */
@media (max-width: 47.9375rem) {
  /* r6: live mobile footer keeps contact | company as two columns */
  .footer-inner { flex-direction: row; flex-wrap: wrap;
    gap: 1.5rem 2.6rem; padding: 2rem 5vw; }  /* D5: live cols x=20 */
  /* D5: live company col is a NARROW 166px column beside contact
     (its address wraps to 4 lines) */
  .footer-company { max-width: 10.375rem; }
  .footer-company p { margin: 0; }
  .footer-brand { flex-basis: 100%; }
  /* r6 census @390: live mobile mark renders 91px wide */
  .footer-brand img { width: 91px; }
  .footer-right { margin-left: 0; align-items: flex-start; }
  .footer-links { text-align: left; }
}

@media (max-width: 47.9375rem) {
  /* W5.3 owner catch 2026-07-25: live's 480-767 band runs the badges
     4-ACROSS scaled down (~70w @600, ~95w @767 probed; live squishes
     them against fixed heights — we scale aspect-true, ruled-good per
     the owner's "do not behave any good" catch); the 2x2 grid with the
     fixed @390 sizes is the <=479 layout only. */
  .badge-band-inner { padding: 1rem 0; }
  /* :nth-child(n) lifts specificity over the desktop per-badge pins */
  .badge-band img:nth-child(n) { margin-left: 5vw; width: 12.4vw;
    height: auto; }
}

/* live mobile badge band = 2x2 grid; live sizes probed @390 (D5):
   124x110 / 124x166 / 109x89 / 140x141 */
@media (max-width: 29.9375rem) {
  .badge-band-inner { grid-template-columns: repeat(2, 1fr);
    justify-items: center; row-gap: 0.5rem; padding: 1rem 0; }
  .badge-band img { margin-left: 0; }
  .badge-band img:nth-child(1) { width: 124px; height: 110px; }
  .badge-band img:nth-child(2) { width: 124px; height: 166px; }
  .badge-band img:nth-child(3) { width: 109px; height: 89px; }
  .badge-band img:nth-child(4) { width: 140px; height: 141px; }
}
