/* ==========================================================================
   Harmony Distribution — Child Theme styles
   Palette : vert foncé Harmony (#1e5a3d), vert clair (#a8d2b1), gris (#f5f5f5)
   ========================================================================== */

:root {
  --hd-primary: #1e5a3d;
  --hd-primary-dark: #15402a;
  --hd-primary-light: #a8d2b1;
  --hd-bg-soft: #f8faf9;
  --hd-text: #1a1a1a;
  --hd-muted: #5a6562;
  --hd-line: #e5e9e7;
  --hd-cta: #2c6b48;
  --hd-cta-hover: #1e5a3d;
  --hd-radius: 999px;
  --hd-radius-md: 8px;
  --hd-shadow: 0 4px 18px rgba(30, 90, 61, .08);
  --hd-container: 1200px;
}

html { scroll-behavior: smooth; }
body {
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", Arial, sans-serif;
  color: var(--hd-text);
  margin: 0;
  background: #fff;
}
img { max-width: 100%; height: auto; }
a { color: var(--hd-primary); text-decoration: none; }
a:hover { color: var(--hd-primary-dark); }

.harmony-container {
  width: 100%;
  max-width: var(--hd-container);
  margin: 0 auto;
  padding: 0 1.25rem;
  box-sizing: border-box;
}

.skip-link {
  position: absolute; left: -9999px; top: -9999px;
}
.skip-link:focus {
  position: fixed; top: 8px; left: 8px; padding: .75rem 1rem;
  background: var(--hd-primary); color: #fff; z-index: 10000; border-radius: 6px;
}

/* ===== Topbar ===== */
.harmony-topbar {
  background: var(--hd-bg-soft);
  border-bottom: 1px solid var(--hd-line);
  font-size: 13px;
  color: var(--hd-muted);
}
.harmony-topbar-inner {
  display: flex; align-items: center; justify-content: space-between;
  height: 38px;
}
.harmony-topbar-link {
  color: var(--hd-muted);
  display: inline-flex; align-items: center; gap: .4rem;
  text-decoration: none;
}
.harmony-topbar-link:hover { color: var(--hd-primary); }

/* ===== Header ===== */
.harmony-header {
  background: #fff;
  border-bottom: 1px solid var(--hd-line);
  position: sticky; top: 0; z-index: 100;
}
.harmony-header-inner {
  display: flex; align-items: center; justify-content: space-between;
  height: 78px;
  gap: 1.5rem;
}
.harmony-brand img,
.harmony-brand .custom-logo {
  max-height: 52px; width: auto;
}
.harmony-brand-text {
  font-weight: 800; font-size: 1.25rem; color: var(--hd-primary);
  text-decoration: none;
}
.harmony-nav-wrap {
  display: flex; align-items: center; gap: 1.5rem; flex: 1; justify-content: flex-end;
}
.harmony-nav { display: flex; align-items: center; }
.harmony-menu {
  list-style: none; padding: 0; margin: 0;
  display: flex; align-items: center; gap: 1.75rem;
}
.harmony-menu a {
  color: var(--hd-text);
  font-weight: 500;
  font-size: 15px;
  padding: .5rem 0;
  position: relative;
  text-decoration: none;
  transition: color .15s ease;
}
.harmony-menu a:hover { color: var(--hd-primary); }
.harmony-menu .current-menu-item > a,
.harmony-menu .current_page_item > a {
  color: var(--hd-primary);
  border-bottom: 2px solid var(--hd-primary);
}

.harmony-cart-link {
  position: relative; display: inline-flex; align-items: center; justify-content: center;
  width: 40px; height: 40px; color: var(--hd-text);
  border-radius: 999px; transition: background .15s ease;
}
.harmony-cart-link:hover { background: var(--hd-bg-soft); color: var(--hd-primary); }
.harmony-cart-count {
  position: absolute; top: 2px; right: -2px;
  background: var(--hd-cta); color: #fff;
  font-size: 11px; font-weight: 700;
  min-width: 18px; height: 18px; padding: 0 5px;
  border-radius: 999px;
  display: inline-flex; align-items: center; justify-content: center;
}

/* ===== Burger ===== */
.harmony-burger { display: none; background: none; border: 0; padding: .5rem; cursor: pointer; }
.harmony-burger span {
  display: block; width: 26px; height: 2px; background: var(--hd-primary); margin: 5px 0;
  transition: transform .2s, opacity .2s;
}

@media (max-width: 900px) {
  .harmony-burger { display: block; }
  .harmony-nav-wrap {
    position: fixed; inset: 78px 0 0 0;
    background: #fff;
    flex-direction: column; align-items: stretch;
    padding: 1.25rem; gap: 0;
    transform: translateX(100%); transition: transform .25s ease;
    overflow-y: auto;
  }
  .harmony-nav-wrap.is-open { transform: translateX(0); }
  .harmony-menu { flex-direction: column; align-items: stretch; gap: 0; }
  .harmony-menu li { border-bottom: 1px solid var(--hd-line); }
  .harmony-menu a { display: block; padding: 1rem 0; font-size: 16px; }
  .harmony-cart-link { align-self: flex-start; margin-top: 1rem; }
  .harmony-topbar-inner { font-size: 12px; }
}

/* ===== Buttons (override Hello Elementor sober buttons) ===== */
.harmony-btn,
.wp-block-button__link,
.elementor-button,
.button,
.woocommerce a.button,
.woocommerce button.button,
.woocommerce input.button {
  display: inline-block;
  background: var(--hd-cta) !important;
  color: #fff !important;
  font-weight: 600;
  padding: .85rem 1.75rem;
  border-radius: var(--hd-radius);
  border: 0;
  cursor: pointer;
  transition: background .15s ease, transform .1s ease;
  text-decoration: none;
}
.harmony-btn:hover,
.wp-block-button__link:hover,
.elementor-button:hover,
.button:hover,
.woocommerce a.button:hover,
.woocommerce button.button:hover {
  background: var(--hd-cta-hover) !important;
  color: #fff !important;
  transform: translateY(-1px);
}

/* ===== Trust strip ===== */
.harmony-trust-strip {
  background: var(--hd-bg-soft);
  padding: 2rem 0;
  border-top: 1px solid var(--hd-line);
  border-bottom: 1px solid var(--hd-line);
}
.harmony-trust-grid {
  display: grid; grid-template-columns: repeat(4, 1fr); gap: 1.5rem;
}
@media (max-width: 768px) {
  .harmony-trust-grid { grid-template-columns: repeat(2, 1fr); }
}
.trust-item { display: flex; align-items: center; gap: .85rem; }
.trust-icon {
  display: inline-flex; align-items: center; justify-content: center;
  width: 44px; height: 44px; flex-shrink: 0;
  background: var(--hd-primary); color: #fff;
  border-radius: var(--hd-radius-md); font-weight: 700; font-size: 13px;
}
.trust-text { font-size: 14px; color: var(--hd-text); line-height: 1.4; }
.trust-text strong { color: var(--hd-primary-dark); }

/* ===== Footer ===== */
.harmony-footer { background: #15402a; color: #d6dad6; margin-top: 4rem; }
.harmony-footer h3 { color: #fff; font-size: 1rem; margin: 0 0 1rem; text-transform: uppercase; letter-spacing: .03em; }
.harmony-footer a { color: #d6dad6; text-decoration: none; }
.harmony-footer a:hover { color: #fff; }
.harmony-footer-grid {
  display: grid; grid-template-columns: 1.4fr 1fr 1fr 1fr; gap: 2.5rem;
  padding: 3.5rem 1.25rem 2rem;
}
@media (max-width: 900px) { .harmony-footer-grid { grid-template-columns: 1fr 1fr; } }
@media (max-width: 600px) { .harmony-footer-grid { grid-template-columns: 1fr; } }
.harmony-footer-logo {
  margin-bottom: 1rem;
  background: rgba(255,255,255,.95);
  padding: .5rem .75rem;
  border-radius: 6px;
  display: block;
  max-width: 200px;
}
.harmony-footer-pitch { font-size: 14px; line-height: 1.5; margin-bottom: 1rem; }
.harmony-footer-badges { display: flex; flex-wrap: wrap; gap: .4rem; }
.harmony-footer-badges span {
  background: rgba(255,255,255,.08); padding: .3rem .65rem;
  border-radius: 4px; font-size: 12px; color: #fff;
}
.harmony-footer-col ul,
.harmony-footer-col .harmony-menu,
.harmony-footer-col .harmony-nav {
  list-style: none; padding: 0; margin: 0;
  display: flex !important; flex-direction: column !important; gap: 0 !important;
  align-items: flex-start !important;
}
.harmony-footer-col li { padding: .25rem 0; font-size: 14px; }
.harmony-footer-col .harmony-menu a { padding: .25rem 0; color: #d6dad6; border: 0 !important; }
.harmony-footer-col .harmony-menu a:hover { color: #fff; }
.harmony-footer-niches a:before { content: '› '; color: var(--hd-primary-light); }
.harmony-footer-social { display: flex; gap: .5rem; }
.harmony-footer-social a {
  width: 36px; height: 36px; border-radius: 999px;
  background: rgba(255,255,255,.08);
  display: inline-flex; align-items: center; justify-content: center;
  transition: background .15s ease;
}
.harmony-footer-social a:hover { background: var(--hd-primary); }

.harmony-footer-legal {
  background: #0d2c1c;
  padding: 1.25rem 0;
  font-size: 13px;
  color: #9aaaa1;
}
.harmony-footer-legal-inner {
  display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 1rem;
}
.harmony-legal-menu {
  list-style: none; padding: 0; margin: 0; display: flex; flex-wrap: wrap; gap: 1rem;
}
.harmony-legal-menu a { color: #9aaaa1; font-size: 13px; }
.harmony-legal-menu a:hover { color: #fff; }

/* ===== WooCommerce specifics ===== */
.woocommerce-products-header__title { color: var(--hd-primary-dark); font-size: 2rem; margin-bottom: 1.5rem; }
.woocommerce ul.products li.product .price { color: var(--hd-primary); font-weight: 700; }
.woocommerce ul.products li.product .button { display: inline-block; }

/* ===== Hero (homepage Elementor block) — override pour mieux passer ===== */
.elementor-section { padding: 0; }
body.home main { padding-top: 0; }

/* ===== Pages génériques (titres) ===== */
.entry-title, .page-title { color: var(--hd-primary-dark); }

/* ===== Print / accessibility ===== */
@media print { .harmony-topbar, .harmony-burger, .harmony-cart-link { display: none; } }

/* Reduce motion */
@media (prefers-reduced-motion: reduce) {
  * { animation-duration: 0.01ms !important; transition-duration: 0.01ms !important; }
}
