/* Bridge Astro / thème WordPress Collector Briques */

body {
  min-width: 0;
}

main#primary.site-main {
  max-width: none;
  margin: 0;
  padding: 0;
}

.single-view .single-content :where(.wp-block-image, figure) {
  margin-left: 0;
  margin-right: 0;
}

.single-view .single-content img,
.page-view .page-content img,
.page-view .page-layout img {
  height: auto;
}

.single-hero-media img,
.page-featured-image,
.archive-card-media img,
.article-thumb img,
.cat-card img,
.main-featured img,
.hero-image {
  max-width: 100%;
}

.site-main a[href^='http'] {
  overflow-wrap: anywhere;
}

.archive-grid .article-card,
.latest-section .article-card {
  text-decoration: none;
}

.article-card-title,
.archive-card-title,
.featured-card-title {
  text-wrap: balance;
}

.page-body--custom .page-layout {
  max-width: 100%;
}

.cb-astro-empty {
  padding: 28px;
  border: 1px solid var(--color-line);
  background: var(--color-surface);
}

/* Les deux pages collection étaient noindex côté WordPress. On les garde UX, sans les pousser comme pages piliers SEO. */
.collection-note {
  max-width: 920px;
  margin: 0 auto 28px;
  padding: 16px 18px;
  border: 1px solid var(--color-line);
  background: var(--color-bg-soft);
  color: var(--color-text-secondary);
  font-size: 15px;
}

/* Menu Astro avec sous-menu WordPress-like */
.nav-menu .menu {
  align-items: center;
}

.nav-menu .menu-item-has-children {
  position: relative;
}

.nav-menu .nav-parent {
  appearance: none;
  border: 0;
  background: transparent;
  color: inherit;
  font: inherit;
  font-weight: 700;
  letter-spacing: .08em;
  text-transform: uppercase;
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  gap: .35rem;
  padding: 0;
}

.nav-menu .sub-menu {
  position: absolute;
  left: 0;
  top: calc(100% + 14px);
  min-width: 280px;
  padding: 12px;
  margin: 0;
  list-style: none;
  background: #fff;
  border: 1px solid rgba(20, 17, 14, .12);
  box-shadow: 0 18px 45px rgba(20, 17, 14, .14);
  opacity: 0;
  visibility: hidden;
  transform: translateY(8px);
  z-index: 30;
}

.nav-menu .menu-item-has-children:hover > .sub-menu,
.nav-menu .menu-item-has-children.is-open > .sub-menu,
.nav-menu .menu-item-has-children.submenu-open > .sub-menu,
.nav-menu .menu-item-has-children:focus-within > .sub-menu {
  opacity: 1;
  visibility: visible;
  transform: translateY(0);
}

.nav-menu .sub-menu a {
  display: block;
  padding: 10px 12px;
  white-space: nowrap;
}

.cb-contact-mail,
.cb-contact-mail:visited,
.cb-contact-mail:hover,
.btn-premium.cb-contact-mail {
  color: #fff !important;
  text-decoration: none !important;
}

.search-submit {
  color: var(--color-accent, #b7853d) !important;
}

@media (max-width: 1100px) {
  .header-top {
    grid-template-columns: 1fr auto;
  }

  .main-header .nav-menu {
    display: none !important;
    width: 100%;
    max-height: calc(100vh - 96px);
    overflow-y: auto;
    overscroll-behavior: contain;
    border-top: 1px solid var(--color-line);
    padding: 8px 0 12px;
    background: var(--color-surface, #fff);
  }

  .main-header .nav-menu.is-open {
    display: block !important;
  }

  .main-header .nav-menu > ul,
  .main-header .nav-menu > .menu {
    display: block !important;
    width: 100%;
    min-height: 0;
    padding: 0;
    margin: 0;
  }

  .main-header .nav-menu > ul > li,
  .main-header .nav-menu > .menu > li {
    display: block;
    width: 100%;
    border-bottom: 1px solid var(--color-line);
  }

  .main-header .nav-menu > ul > li > a,
  .main-header .nav-menu > .menu > li > a,
  .main-header .nav-menu .nav-parent {
    width: 100%;
    min-height: 48px;
    justify-content: space-between;
    padding: 14px 0;
    text-align: left;
    color: var(--color-text-secondary);
  }

  .main-header .nav-menu .sub-menu {
    display: none !important;
    position: static;
    min-width: 0;
    width: 100%;
    opacity: 1;
    visibility: visible;
    transform: none;
    box-shadow: none;
    border: 0;
    padding: 0 0 12px 14px;
    margin: 0;
    background: transparent;
  }

  .main-header .nav-menu .menu-item-has-children.is-open > .sub-menu,
  .main-header .nav-menu .menu-item-has-children.submenu-open > .sub-menu {
    display: block !important;
  }

  .main-header .nav-menu .sub-menu a {
    padding: 9px 0;
    white-space: normal;
  }
}

@media (max-width: 640px) {
  .single-hero,
  .category-hero,
  .page-hero {
    padding-top: 56px;
    padding-bottom: 42px;
  }
}
