/* MarkHues — Produits hub /sacs-personnalises
   Product-first structure: short intro, immediate families, two secondary routes.
*/

.mh-products-hub {
  background: #FBFBF8;
  color: var(--mh-graphite);
}

.mh-products-shell {
  width: min(calc(100% - (2 * var(--mh-gutter))), var(--mh-max));
  margin-inline: auto;
}

.mh-products-eyebrow {
  margin: 0;
  color: var(--mh-ink);
  font-family: var(--mh-font-sans);
  font-size: 12px;
  line-height: 16px;
  font-weight: 600;
  letter-spacing: .16em;
  text-transform: uppercase;
}

/* Compact introduction */
.mh-products-hero {
  padding: 78px 0 66px;
  background: #FBFBF8;
}

.mh-products-hero__inner {
  max-width: 850px;
}

.mh-products-hero h1 {
  margin: 18px 0 0;
  color: var(--mh-graphite);
  font-family: var(--mh-font-sans);
  font-size: clamp(54px, 5.2vw, 76px);
  line-height: .99;
  font-weight: 500;
  letter-spacing: -.045em;
}

.mh-products-hero__inner > p:not(.mh-products-eyebrow) {
  max-width: 650px;
  margin: 22px 0 0;
  color: var(--mh-secondary);
  font-family: var(--mh-font-sans);
  font-size: 18px;
  line-height: 28px;
}

/* Families — product first */
.mh-products-families {
  padding: 62px 0 84px;
  background: #FFFFFF;
  border-top: 1px solid var(--mh-border);
}

.mh-products-section-heading {
  display: grid;
  grid-template-columns: minmax(0, 1.15fr) minmax(320px, .85fr);
  gap: 72px;
  align-items: end;
}

.mh-products-section-heading h2,
.mh-products-special__heading h2 {
  margin: 14px 0 0;
  color: var(--mh-graphite);
  font-family: var(--mh-font-sans);
  font-size: clamp(38px, 3.6vw, 52px);
  line-height: 1.03;
  font-weight: 500;
  letter-spacing: -.036em;
}

.mh-products-section-heading > p {
  max-width: 510px;
  margin: 0;
  color: var(--mh-secondary);
  font-family: var(--mh-font-sans);
  font-size: 16px;
  line-height: 25px;
}

.mh-products-family-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 18px;
  margin-top: 38px;
}

.mh-products-family {
  min-width: 0;
  display: block;
  color: var(--mh-graphite);
  text-decoration: none;
}

.mh-products-family__media {
  width: 100%;
  aspect-ratio: 800 / 680;
  display: grid;
  place-items: center;
  position: relative;
  overflow: hidden;
  border: 1px solid var(--mh-border);
  background: #F3F4F1;
}

.mh-products-family__media img {
  width: 100%;
  height: 100%;
  display: block;
  object-fit: cover;
  transition: transform 360ms var(--mh-ease);
}

.mh-products-family__media img[hidden] {
  display: none;
}

.mh-products-family__media.has-image .mh-products-family__placeholder {
  display: none;
}

.mh-products-family:hover .mh-products-family__media img {
  transform: scale(1.018);
}

.mh-products-family__placeholder {
  display: grid;
  place-items: center;
  gap: 6px;
  color: #8B9290;
  font-family: var(--mh-font-sans);
  text-align: center;
}

.mh-products-family__placeholder strong {
  font-size: 11px;
  line-height: 15px;
  font-weight: 600;
  letter-spacing: .12em;
}

.mh-products-family__placeholder span {
  font-size: 13px;
  line-height: 18px;
}

.mh-products-family__body {
  min-height: 126px;
  display: flex;
  justify-content: space-between;
  gap: 18px;
  padding: 18px 2px 0;
}

.mh-products-family__index {
  display: block;
  color: #959C9A;
  font-family: var(--mh-font-sans);
  font-size: 10px;
  line-height: 15px;
  font-weight: 600;
  letter-spacing: .08em;
}

.mh-products-family h3 {
  margin: 5px 0 0;
  color: var(--mh-graphite);
  font-family: var(--mh-font-sans);
  font-size: 25px;
  line-height: 31px;
  font-weight: 500;
  letter-spacing: -.022em;
}

.mh-products-family p {
  margin: 5px 0 0;
  color: var(--mh-secondary);
  font-family: var(--mh-font-sans);
  font-size: 14px;
  line-height: 21px;
}

.mh-products-family__arrow {
  padding-top: 19px;
  color: var(--mh-ink);
  font-size: 20px;
  line-height: 1;
  transition: transform 220ms var(--mh-ease);
}

.mh-products-family:hover .mh-products-family__arrow {
  transform: translateX(5px);
}

.mh-products-help {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 12px;
  margin-top: 26px;
  color: #808886;
  font-family: var(--mh-font-sans);
  font-size: 14px;
  line-height: 21px;
}

.mh-products-help a {
  display: inline-flex;
  align-items: center;
  gap: 9px;
  color: var(--mh-graphite);
  font-weight: 500;
  text-decoration: none;
}

.mh-products-help a span {
  transition: transform 220ms var(--mh-ease);
}

.mh-products-help a:hover span {
  transform: translateX(4px);
}

/* Secondary routes: not product families */
.mh-products-special {
  padding: 76px 0 88px;
  background: #F5F6F3;
}

.mh-products-special__heading {
  max-width: 760px;
}

.mh-products-special__grid {
  display: grid;
  grid-template-columns: .9fr 1.1fr;
  gap: 18px;
  margin-top: 34px;
}

.mh-products-route {
  min-height: 282px;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  gap: 34px;
  padding: 32px;
  border-radius: 10px;
  text-decoration: none;
  transition:
    transform 180ms var(--mh-ease),
    border-color 180ms var(--mh-ease);
}

.mh-products-route:hover {
  transform: translateY(-2px);
}

.mh-products-route--france {
  border: 1px solid var(--mh-border);
  background: #FFFFFF;
  color: var(--mh-graphite);
}

.mh-products-route--custom {
  border: 1px solid var(--mh-ink);
  background: var(--mh-ink);
  color: #FFFFFF;
}

.mh-products-route--custom:hover,
.mh-products-route--custom:focus-visible {
  color: #FFFFFF;
}

.mh-products-route__label {
  display: block;
  margin-bottom: 12px;
  color: var(--mh-ink);
  font-family: var(--mh-font-sans);
  font-size: 11px;
  line-height: 15px;
  font-weight: 600;
  letter-spacing: .13em;
}

.mh-products-route--custom .mh-products-route__label {
  color: rgba(255,255,255,.62);
}

.mh-products-route h3 {
  max-width: 500px;
  margin: 0;
  color: currentColor;
  font-family: var(--mh-font-sans);
  font-size: 31px;
  line-height: 1.08;
  font-weight: 500;
  letter-spacing: -.027em;
}

.mh-products-route p {
  max-width: 520px;
  margin: 14px 0 0;
  color: var(--mh-secondary);
  font-family: var(--mh-font-sans);
  font-size: 15px;
  line-height: 23px;
}

.mh-products-route--custom p {
  color: rgba(255,255,255,.69);
}

.mh-products-route__action {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
  padding-top: 18px;
  border-top: 1px solid rgba(17,23,24,.11);
  color: currentColor;
  font-family: var(--mh-font-sans);
  font-size: 15px;
  line-height: 21px;
  font-weight: 500;
}

.mh-products-route--custom .mh-products-route__action {
  border-top-color: rgba(255,255,255,.18);
}

.mh-products-route__action > span {
  transition: transform 220ms var(--mh-ease);
}

.mh-products-route:hover .mh-products-route__action > span {
  transform: translateX(5px);
}

/* Laptop */
@media (min-width: 1025px) and (max-height: 1000px) {
  .mh-products-hero {
    padding: 54px 0 46px;
  }

  .mh-products-hero h1 {
    font-size: 58px;
  }

  .mh-products-families {
    padding: 46px 0 62px;
  }

  .mh-products-family-grid {
    margin-top: 30px;
  }

  .mh-products-family__body {
    min-height: 110px;
    padding-top: 14px;
  }

  .mh-products-family h3 {
    font-size: 23px;
    line-height: 29px;
  }

  .mh-products-special {
    padding: 58px 0 66px;
  }

  .mh-products-route {
    min-height: 238px;
    padding: 26px;
  }

  .mh-products-route h3 {
    font-size: 28px;
  }
}

/* Tablet */
@media (max-width: 1024px) {
  .mh-products-hero {
    padding: 66px 0 58px;
  }

  .mh-products-hero h1 {
    font-size: 56px;
  }

  .mh-products-section-heading {
    grid-template-columns: 1fr;
    gap: 16px;
  }

  .mh-products-family-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 34px 20px;
  }

  .mh-products-special__grid {
    grid-template-columns: 1fr 1fr;
  }
}

/* Mobile */
@media (max-width: 767px) {
  .mh-products-hero {
    padding: 56px 0 50px;
  }

  .mh-products-hero h1 {
    font-size: 46px;
    line-height: 1;
  }

  .mh-products-hero__inner > p:not(.mh-products-eyebrow) {
    margin-top: 18px;
    font-size: 16px;
    line-height: 25px;
  }

  .mh-products-families {
    padding: 56px 0 64px;
  }

  .mh-products-section-heading h2,
  .mh-products-special__heading h2 {
    font-size: 39px;
  }

  .mh-products-family-grid {
    grid-template-columns: 1fr;
    gap: 36px;
    margin-top: 32px;
  }

  .mh-products-family__media {
    aspect-ratio: 4 / 3;
  }

  .mh-products-family__body {
    min-height: 0;
  }

  .mh-products-help {
    align-items: flex-start;
    justify-content: flex-start;
    flex-direction: column;
    gap: 5px;
    margin-top: 32px;
  }

  .mh-products-special {
    padding: 58px 0 68px;
  }

  .mh-products-special__grid {
    grid-template-columns: 1fr;
  }

  .mh-products-route {
    min-height: 240px;
    padding: 26px;
  }

  .mh-products-route h3 {
    font-size: 27px;
  }
}

@media (prefers-reduced-motion: reduce) {
  .mh-products-family__media img,
  .mh-products-family__arrow,
  .mh-products-help a span,
  .mh-products-route,
  .mh-products-route__action > span {
    transition: none;
  }
}
