/* ════════════════════════════════════════════════════════════════════════════
   06-FOOTER.CSS — Armonea site footer
   BEM (armonea-footer__*) · tokens from 01-tokens.css only · no @import · no inline
   Wireframe: references/designs/20260618_footer_v1.html
   Open question (spec §7.1): --footer-bg green vs blue — swap one token to A/B test.
════════════════════════════════════════════════════════════════════════════ */

.armonea-footer {
  /* footer-local derived vars (translucent whites for the dark band; AA-safe) */
  --footer-fg:       var(--site-color-on-image);
  --footer-fg-muted: rgba(255, 255, 255, .72);
  --footer-rule:     rgba(255, 255, 255, .16);
  --footer-bg:       var(--site-color-secondary-dark-green);

  background: var(--footer-bg);
  color: var(--footer-fg);
  font-family: var(--site-font-body);
  font-size: var(--site-size-body);
  line-height: 1.5;
  text-align: left; /* override Kadence footer-widget centring */
}

/* ── Full-bleed: neutralise the Kadence footer-row container around the widget ──
   Kadence wraps the shortcode in a max-width, padded, centred container. Strip its
   padding/max-width/centring so the dark band runs edge-to-edge (L/R + bottom).
   Scoped via :has() so other footer rows are untouched. !important beats Kadence's
   Customizer-generated inline padding rules. */
.site-footer-row-container-inner:has(.armonea-footer),
.site-middle-footer-inner-wrap:has(.armonea-footer),
.site-footer-row-container:has(.armonea-footer),
.site-footer-row-layout-contained:has(.armonea-footer),
.site-container:has(.armonea-footer) {
  max-width: none !important;
  padding: 0 !important;
  margin: 0 !important;
  text-align: left !important;
}
.footer-widget-area:has(.armonea-footer),
.widget_block:has(.armonea-footer) {
  padding: 0 !important;
  margin: 0 !important;
}

.armonea-footer a { color: var(--footer-fg); text-decoration: none; }
.armonea-footer a:hover,
.armonea-footer a:focus-visible { text-decoration: underline; text-underline-offset: 3px; }

.armonea-footer__inner {
  max-width: var(--site-container-max);
  margin: 0 auto;
  padding: var(--site-space-xl) var(--site-space-m);
  display: grid;
  grid-template-columns: minmax(0, 0.9fr) minmax(0, 2fr);
  gap: var(--site-space-xl);
}

/* ── Left zone: logo · CTA card · social ─────────────────────────────────────── */
.armonea-footer__brand { display: flex; flex-direction: column; gap: var(--site-space-m); }

.armonea-footer__logo {
  font-family: var(--site-font-heading);
  font-size: var(--site-size-h3);
  font-weight: 600;
  letter-spacing: .01em;
}
.armonea-footer__logo-img {
  display: block;
  width: 150px; /* matches the previous "Armonea" wordmark footprint */
  height: auto;
}

.armonea-footer__cta {
  background: var(--site-color-surface);
  color: var(--site-color-text);
  border-radius: var(--site-radius-l);
  padding: var(--site-space-m);
  display: flex;
  flex-direction: column;
  gap: var(--site-space-s);
}
.armonea-footer__cta-title { font-family: var(--site-font-heading); font-size: var(--site-size-h4); margin: 0; }
.armonea-footer__cta-text { margin: 0; font-size: var(--site-size-small); }

.armonea-footer__btn {
  align-self: flex-start;
  background: var(--site-color-primary);
  color: var(--site-color-primary-dark);
  font-weight: 600;
  padding: var(--site-space-xs) var(--site-space-m);
  border-radius: var(--site-radius-pill);
}
.armonea-footer__btn:hover { text-decoration: none; filter: brightness(0.95); }

.armonea-footer__social { display: flex; gap: var(--site-space-s); }
.armonea-footer__social a {
  width: 40px; height: 40px;
  display: grid; place-items: center;
  border: 1px solid var(--footer-rule);
  border-radius: var(--site-radius-pill);
  font-size: var(--site-size-small);
}
.armonea-footer__social a:hover { background: rgba(255, 255, 255, .08); text-decoration: none; }

/* ── Right zone: geo grid + link columns ─────────────────────────────────────── */
.armonea-footer__nav-zone { display: flex; flex-direction: column; gap: var(--site-space-l); }

.armonea-footer__col-title {
  font-family: var(--site-font-heading);
  font-size: var(--site-size-h5);
  margin: 0 0 var(--site-space-s);
}

/* Kadence applies a footer-heading colour to <h2>; force our light token back.
   Scoped + !important to beat the theme's footer heading rule. */
.armonea-footer h2.armonea-footer__col-title,
.armonea-footer .armonea-footer__col-title {
  color: var(--footer-fg) !important;
}

.armonea-footer__list { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: var(--site-space-xs); }
.armonea-footer__list a { font-size: var(--site-size-small); color: var(--footer-fg-muted); }
.armonea-footer__list a:hover,
.armonea-footer__list a:focus-visible { color: var(--footer-fg); }

.armonea-footer__geo .armonea-footer__list {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: var(--site-space-xs) var(--site-space-m);
}
.armonea-footer__geo-all { margin-top: var(--site-space-s); font-weight: 600; display: inline-block; }

.armonea-footer__cols {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: var(--site-space-m);
  border-top: 1px solid var(--footer-rule);
  padding-top: var(--site-space-l);
}

/* ── Bottom bar ──────────────────────────────────────────────────────────────── */
.armonea-footer__bar { border-top: 1px solid var(--footer-rule); }
.armonea-footer__bar-inner {
  max-width: var(--site-container-max);
  margin: 0 auto;
  padding: var(--site-space-m);
  display: flex;
  flex-wrap: wrap;
  gap: var(--site-space-s) var(--site-space-m);
  align-items: center;
  justify-content: space-between;
  font-size: var(--site-size-caption);
  color: var(--footer-fg-muted);
}
.armonea-footer__legal { display: flex; flex-wrap: wrap; gap: var(--site-space-m); }
.armonea-footer__legal a,
.armonea-footer__lang a { color: var(--footer-fg-muted); }
.armonea-footer__lang .is-active { color: var(--footer-fg); font-weight: 600; }

/* native accordion plumbing — visible behaviour only kicks in at mobile width */
.armonea-footer__group > summary { list-style: none; cursor: default; }
.armonea-footer__group > summary::-webkit-details-marker { display: none; }

/* ── Tablet (≤1023px): single column; link cols 2-up ─────────────────────────── */
@media (max-width: 1023px) {
  .armonea-footer__inner { grid-template-columns: 1fr; gap: var(--site-space-l); }
  .armonea-footer__cols { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

/* ── Mobile (≤639px): link groups + geo become accordions ────────────────────── */
@media (max-width: 639px) {
  .armonea-footer__inner { padding: var(--site-space-l) var(--site-space-s); }
  .armonea-footer__geo .armonea-footer__list { grid-template-columns: 1fr; }
  .armonea-footer__cols { grid-template-columns: 1fr; gap: 0; }
  .armonea-footer__group { border-top: 1px solid var(--footer-rule); }
  .armonea-footer__group > summary {
    cursor: pointer;
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: var(--site-space-s) 0;
  }
  .armonea-footer__group > summary::after { content: "+"; font-size: var(--site-size-h5); }
  .armonea-footer__group[open] > summary::after { content: "\2013"; }
  .armonea-footer__group .armonea-footer__col-title { margin: 0; }
  .armonea-footer__group .armonea-footer__list { padding-bottom: var(--site-space-s); }
}
