/* ===========================================================
   Chrome du site — bandeau supérieur, en-tête, barre de navigation,
   tiroir mobile, fil d'Ariane, pied de page.
   Valeurs reprises du shop (base.css, components/chrome.css, mega-menu.css).
   =========================================================== */

/* ---- Bandeau supérieur ---- */
.topstrip {
  background: var(--color-bg-alt);
  color: var(--color-muted);
  font-size: 0.78rem;
  border-bottom: 1px solid var(--color-border);
}
.topstrip__inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--space-4);
  min-height: 38px;
}
.topstrip__msg {
  display: inline-flex;
  align-items: center;
  gap: 9px;
}
.topstrip__dot {
  width: 5px;
  height: 5px;
  border-radius: 50%;
  background: var(--grad);
  flex-shrink: 0;
}
.topstrip__links {
  display: flex;
  gap: var(--space-5);
  margin-left: auto;
}
.topstrip__links a {
  color: var(--color-fg);
  text-decoration: none;
}
.topstrip__links a:hover {
  color: var(--color-primary);
}
@media (max-width: 560px) {
  .topstrip__msg {
    display: none;
  }
}

/* ---- En-tête ---- */
.site-header {
  position: relative;
  z-index: 60;
  background: var(--color-surface);
}
.site-header__inner {
  display: flex;
  align-items: center;
  gap: var(--space-6);
  min-height: var(--header-height);
}
.site-header__brand {
  display: flex;
  align-items: center;
  min-height: 44px;
  text-decoration: none;
  border-radius: var(--radius-sm);
}
.site-header__logo-img {
  height: 50px;
  width: auto;
}
.site-header__actions {
  display: flex;
  align-items: center;
  gap: var(--space-2);
  margin-left: auto;
}

/* Boutons ronds (shop : .iconbtn) */
.iconbtn {
  position: relative;
  width: 44px;
  height: 44px;
  border-radius: var(--radius-pill);
  border: 1px solid var(--color-border-strong);
  background: transparent;
  color: var(--color-fg);
  display: grid;
  place-items: center;
  text-decoration: none;
  transition: border-color var(--transition), transform 0.16s var(--ease-out);
}
@media (hover: hover) {
  .iconbtn:hover {
    border-color: var(--color-fg);
  }
}
.iconbtn:active {
  transform: scale(0.95);
}
.iconbtn--menu {
  display: none;
}

/* ---- Barre de navigation (shop : .catbar) ---- */
.catbar {
  position: sticky;
  top: 0;
  z-index: 50;
  background: var(--color-surface);
  border-top: 1px solid var(--color-border);
  border-bottom: 1px solid var(--color-border);
  box-shadow: 0 8px 20px -16px rgba(21, 25, 40, 0.28);
}
.nav {
  display: flex;
  align-items: stretch;
  gap: 2px;
  min-height: 52px;
  margin: 0;
}
.nav__item {
  position: relative;
  display: flex;
  align-items: stretch;
}
.nav__link {
  position: relative;
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 0 15px;
  font-size: 0.86rem;
  font-weight: 600;
  color: var(--color-muted);
  white-space: nowrap;
  text-decoration: none;
  background: none;
  border: 0;
  transition: color var(--transition);
}
.has-sub > .nav__link:not(.nav__link--btn) {
  padding-right: 4px;
}
/* Entre 900 et 1100px, 7 entrées : on resserre pour garder une seule ligne sans écraser les flèches. */
@media (max-width: 1099px) {
  .nav__link {
    padding: 0 11px;
  }
}
.nav__link .ico {
  flex-shrink: 0;
  opacity: 0.6;
  transition: transform 0.2s var(--ease-out);
}
.nav__toggle {
  display: grid;
  place-items: center;
  align-self: center;
  width: 28px;
  height: 32px;
  border-radius: var(--radius-pill);
  padding: 0;
  margin-right: 6px;
  border: 0;
  background: none;
  color: var(--color-muted);
  transition: color var(--transition);
}
.nav__toggle .ico {
  opacity: 0.6;
  transition: transform 0.2s var(--ease-out);
}
.has-sub.is-open .nav__toggle .ico,
.has-sub.is-open .nav__link--btn .ico {
  transform: rotate(180deg);
}

/* Soulignement en dégradé (shop) — au survol et sur l'entrée active */
.nav__item::after {
  content: "";
  position: absolute;
  left: 12px;
  right: 12px;
  bottom: -1px;
  height: 3px;
  background: var(--grad);
  border-radius: 3px 3px 0 0;
  transform: scaleX(0);
  transform-origin: left;
  transition: transform 0.22s var(--ease-out);
  pointer-events: none;
}
.nav__item.is-active::after {
  transform: scaleX(1);
}
.nav__item.is-active > .nav__link,
.nav__item.is-active > .nav__toggle {
  color: var(--color-fg);
}
@media (hover: hover) {
  .nav__item:hover::after {
    transform: scaleX(1);
  }
  .nav__item:hover > .nav__link,
  .nav__item:hover > .nav__toggle {
    color: var(--color-fg);
  }
}

/* Sous-menu (shop : .dropdown-panel) */
.nav__sub {
  position: absolute;
  top: 100%;
  left: 0;
  min-width: 230px;
  background: var(--color-surface);
  border: 1px solid var(--color-border);
  border-radius: var(--radius);
  box-shadow: var(--shadow-lg);
  list-style: none;
  padding: var(--space-1) 0;
  margin: 0;
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  transform: translateY(-4px);
  transform-origin: top left;
  transition: opacity 140ms ease-out, visibility 140ms ease-out, transform 140ms ease-out;
  z-index: 99;
}
.has-sub.is-open > .nav__sub,
html:not(.js) .has-sub:focus-within > .nav__sub {
  opacity: 1;
  visibility: visible;
  pointer-events: auto;
  transform: none;
}
@media (hover: hover) {
  .has-sub:hover > .nav__sub {
    opacity: 1;
    visibility: visible;
    pointer-events: auto;
    transform: none;
  }
}
.nav__sub a {
  display: flex;
  align-items: center;
  padding: var(--space-2) var(--space-4);
  color: var(--color-fg);
  text-decoration: none;
  font-size: var(--fs-14);
  white-space: nowrap;
  transition: background var(--transition), color var(--transition);
}
.nav__sub a:hover,
.nav__sub a:focus-visible {
  background: var(--color-bg-alt);
  color: var(--color-primary-dark);
}
.nav__sub a:focus-visible {
  outline-offset: -3px;
}
.nav__sub a[aria-current="page"] {
  color: var(--color-primary-dark);
  font-weight: 600;
}
/* Liens vers le shop (menu « Nos produits ») : flèche ↗ discrète, alignée à droite. */
.nav__sub a .ico,
.mobile-nav__sub a .ico {
  flex: 0 0 auto;
  margin-left: auto;
  padding-left: var(--space-3);
  box-sizing: content-box;
  color: var(--color-muted-2);
}

/* En dessous de 900px : barre masquée, tiroir mobile (comme le shop) */
@media (max-width: 899px) {
  .catbar {
    display: none;
  }
  .iconbtn--menu {
    display: grid;
  }
  .site-header {
    position: sticky;
    top: 0;
    border-bottom: 1px solid var(--color-border);
  }
  .site-header__inner {
    min-height: 64px;
  }
  .site-header__logo-img {
    height: 42px;
  }
  html {
    scroll-padding-top: 80px;
  }
}
@media (max-width: 420px) {
  .site-header__shop {
    padding-inline: var(--space-4);
  }
  .site-header__shop .ico {
    display: none;
  }
}

/* ---- Tiroir mobile (shop : .mobile-nav) ---- */
.mobile-nav[hidden] {
  display: none;
}
.mobile-nav {
  position: fixed;
  inset: 0;
  z-index: 200;
}
.mobile-nav__backdrop {
  position: absolute;
  inset: 0;
  background: rgba(21, 25, 40, 0.5);
  opacity: 0;
  transition: opacity 0.25s var(--ease-out);
}
.mobile-nav.is-open .mobile-nav__backdrop {
  opacity: 1;
}
.mobile-nav__panel {
  position: absolute;
  inset: 0 0 0 auto;
  width: min(88vw, 360px);
  display: flex;
  flex-direction: column;
  background: var(--color-surface);
  box-shadow: var(--shadow-lg);
  transform: translateX(100%);
  transition: transform 0.28s var(--ease-out);
  overflow-y: auto;
  overscroll-behavior: contain;
  padding-bottom: env(safe-area-inset-bottom);
}
.mobile-nav.is-open .mobile-nav__panel {
  transform: none;
}
.mobile-nav__head {
  position: sticky;
  top: 0;
  z-index: 1;
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: var(--space-3) var(--space-4);
  background: var(--color-surface);
  border-bottom: 1px solid var(--color-border);
}
.mobile-nav__title {
  font-weight: 700;
  font-size: 1.05rem;
}
.mobile-nav__list,
.mobile-nav__sub {
  list-style: none;
  margin: 0;
  padding: 0;
}
.mobile-nav__row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  border-bottom: 1px solid var(--color-border);
}
.mobile-nav__row > a,
.mobile-nav__label {
  flex: 1 1 auto;
  padding: var(--space-3) var(--space-4);
  text-decoration: none;
  color: var(--color-fg);
  font-weight: 600;
}
.mobile-nav__row > a[aria-current="page"] {
  color: var(--color-primary-dark);
}
.mobile-nav__expander {
  flex: 0 0 auto;
  width: 48px;
  height: 48px;
  border: 0;
  background: none;
  color: var(--color-muted);
  display: grid;
  place-items: center;
}
.mobile-nav__expander .ico {
  transition: transform 0.2s var(--ease-out);
}
.mobile-nav__item.is-open > .mobile-nav__row > .mobile-nav__expander .ico {
  transform: rotate(180deg);
}
.mobile-nav__sub {
  display: none;
  background: var(--color-bg-alt);
}
.mobile-nav__item.is-open > .mobile-nav__sub {
  display: block;
}
.mobile-nav__sub .mobile-nav__row > a {
  display: flex;
  align-items: center;
  padding-left: var(--space-6);
  font-weight: 500;
  font-size: var(--fs-14);
}
.mobile-nav__footer {
  display: flex;
  flex-direction: column;
  gap: var(--space-3);
  padding: var(--space-4);
  margin-top: auto;
  border-top: 1px solid var(--color-border);
}
.mobile-nav__footer a:not(.btn) {
  color: var(--color-primary);
  text-decoration: none;
  font-weight: 600;
}
.mobile-nav__panel :focus-visible {
  outline-offset: -3px;
}
body.no-scroll {
  overflow: hidden;
}

/* ---- Fil d'Ariane ---- */
.breadcrumb {
  background: var(--color-bg-alt);
  border-bottom: 1px solid var(--color-border);
  font-size: var(--fs-14);
}
.breadcrumb ol {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: var(--space-1) var(--space-2);
  margin: 0;
  padding-block: var(--space-3);
}
.breadcrumb li {
  display: inline-flex;
  align-items: center;
  gap: var(--space-2);
  color: var(--color-muted);
}
.breadcrumb li + li::before {
  content: "/";
  color: var(--color-muted-2);
}
.breadcrumb a {
  color: var(--color-muted);
  text-decoration: none;
}
.breadcrumb a:hover {
  color: var(--color-fg);
}
.breadcrumb [aria-current="page"] {
  color: var(--color-fg);
  font-weight: 600;
}
@media (max-width: 560px) {
  .breadcrumb ol {
    flex-wrap: nowrap;
  }
  .breadcrumb li {
    flex-shrink: 0;
  }
  .breadcrumb li:last-child {
    flex-shrink: 1;
    min-width: 0;
  }
  .breadcrumb [aria-current="page"] {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
  }
}

/* ---- Pied de page (shop : .site-footer) ---- */
.site-footer {
  flex-shrink: 0;
  background: var(--color-bg-alt);
  border-top: 1px solid var(--color-border);
  padding-block: var(--space-7) max(var(--space-5), env(safe-area-inset-bottom));
}
.site-footer__top {
  display: grid;
  gap: var(--space-6);
}
.site-footer__logo {
  height: 56px;
  width: auto;
  margin-bottom: var(--space-3);
}
.site-footer__brand {
  font-weight: 800;
  font-size: var(--fs-18);
  color: var(--color-fg);
}
.site-footer__tagline {
  color: var(--color-muted);
  font-size: var(--fs-14);
}
.site-footer__contact {
  font-style: normal;
  color: var(--color-muted);
  font-size: var(--fs-14);
  margin-top: var(--space-3);
  line-height: 1.8;
}
.site-footer__contact a {
  color: var(--color-muted);
}
.site-footer__strong {
  color: var(--color-fg) !important;
  font-weight: 600;
  text-decoration: none;
}
.site-footer__strong:hover {
  text-decoration: underline;
}
.site-footer__map {
  text-decoration: underline;
  text-decoration-color: var(--color-border-strong);
  text-underline-offset: 3px;
}
.site-footer__map:hover {
  color: var(--color-fg);
  text-decoration: underline;
}
.site-footer__groups {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(170px, 1fr));
  gap: var(--space-5);
}
.site-footer__heading {
  font-family: var(--font-display);
  font-weight: 700;
  font-size: var(--fs-16);
  margin-bottom: var(--space-3);
}
.site-footer__group ul {
  display: flex;
  flex-direction: column;
  gap: var(--space-2);
  margin: 0;
}
.site-footer__group a {
  display: inline-block;
  padding-block: 4px;
  color: var(--color-muted);
  text-decoration: none;
  font-size: var(--fs-14);
}
.site-footer__group a:hover,
.site-footer__group a[aria-current="page"] {
  color: var(--color-fg);
}
.site-footer__bottom {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: var(--space-4);
  margin-top: var(--space-6);
  padding-top: var(--space-4);
  border-top: 1px solid var(--color-border);
}
.site-footer__legal {
  color: var(--color-muted);
  font-size: var(--fs-14);
}
@media (min-width: 900px) {
  .site-footer__top {
    grid-template-columns: minmax(240px, 1fr) 2fr;
    gap: var(--space-9);
  }
}

/* Bandeau de l'apercu (espace de gestion uniquement) */
.apercu-bandeau {
  margin: 0;
  padding: var(--space-2) var(--space-4);
  background: var(--color-warning-bg);
  color: var(--color-warning-fg);
  font-size: var(--fs-14);
  font-weight: 600;
  text-align: center;
}
