/* Catalogue (maquette c89b8a2): matériel and catalogue pages dark, item sheet light. */

.as-catalogue-page {
  display: flow-root; /* the last margin (empty message, grid) stays on the page's own background */
  --line: color-mix(in srgb, var(--wp--preset--color--navy) 18%, transparent);
  --line-dark: color-mix(in srgb, var(--wp--preset--color--glacier) 16%, transparent);
  color: var(--ink);
  background: var(--paper);
}

.as-catalogue-page [hidden] {
  display: none!important;
}

.as-catalogue-page :focus-visible {
  outline: 3px solid var(--accent-bright);
  outline-offset: 4px;
}

.as-catalogue-page > * {
  margin-block: 0;
}

.as-catalogue-page :is(.eyebrow, .is-style-surtitre) {
  color: var(--accent-bright);
}

.as-catalogue-page .screen-reader-text {
  position: absolute!important;
  width: 1px;
  height: 1px;
  overflow: hidden;
  clip: rect(1px,1px,1px,1px);
  white-space: nowrap;
}

/* Matériel: introduction, family tiles, NEXT. */

.as-catalogue-page.material-page {
  background: var(--wp--preset--color--navy);
  color: #fff;
}

.as-catalogue-page .material-intro {
  position: relative;
  isolation: isolate;
  overflow: hidden;
  padding: clamp(112px,13vw,176px) clamp(20px,8vw,128px) clamp(68px,8vw,112px);
  background: radial-gradient(circle at 82% 12%,color-mix(in srgb,var(--wp--preset--color--accent-bright) 13%,transparent),transparent 30%),linear-gradient(145deg,#0b2138 0%,#081a30 58%,#071426 100%);
  color: #fff;
}

.as-catalogue-page .material-intro::after {
  position: absolute;
  z-index: -1;
  right: -8%;
  bottom: 12%;
  width: 42vw;
  height: 1px;
  background: linear-gradient(90deg,transparent,color-mix(in srgb,var(--wp--preset--color--glacier) 24%,transparent),transparent);
  content: "";
  transform: rotate(-18deg);
}

.as-catalogue-page .material-intro h1 {
  max-width: 900px;
  margin: 0 0 22px;
  color: #fff;
  font-size: clamp(3rem,6.5vw,7rem);
  line-height: .92;
  letter-spacing: -.06em;
}

.as-catalogue-page .material-intro > p:not(:is(.eyebrow, .is-style-surtitre)) {
  max-width: 620px;
  margin: 0;
  color: rgba(255,255,255,.68);
  font-size: clamp(1rem,1.35vw,1.2rem);
}

.as-catalogue-page .material-families {
  display: grid;
  grid-template-columns: repeat(3,minmax(0,1fr));
  gap: 12px;
  margin: clamp(42px,6vw,76px) 0 34px;
}

.as-catalogue-page .material-families a {
  position: relative;
  display: flex;
  align-items: end;
  min-width: 0;
  min-height: 92px;
  padding: 18px 20px;
  border: 1px solid var(--line-dark);
  border-radius: 18px;
  background: rgba(255,255,255,.045);
  box-shadow: 0 8px 20px rgba(11,25,41,.05);
  color: #fff;
  font-size: 1rem;
  font-weight: 800;
  text-decoration: none;
  overflow: hidden;
  transition: transform 260ms cubic-bezier(.2,.72,.22,1),border-color 260ms ease,background-color 260ms ease,box-shadow 260ms ease;
}

.as-catalogue-page .material-families a::before {
  position: absolute;
  top: 0;
  left: 0;
  width: 54px;
  height: 5px;
  background: var(--accent-bright);
  content: "";
}

.as-catalogue-page .material-families a:nth-child(3n+2)::before {
  background: var(--accent);
}

.as-catalogue-page .material-families a::after {
  position: absolute;
  top: 18px;
  right: 18px;
  color: var(--accent-bright);
  content: "↗";
  font-size: 1.1rem;
  opacity: .72;
  transition: transform 260ms ease;
}

.as-catalogue-page .material-families a:hover,
.as-catalogue-page .material-families a:focus-visible {
  border-color: color-mix(in srgb,var(--wp--preset--color--accent-bright) 68%,transparent);
  background: color-mix(in srgb,var(--wp--preset--color--accent-bright) 12%,transparent);
  box-shadow: 0 18px 30px rgba(0,0,0,.2);
  transform: translateY(-5px);
}

.as-catalogue-page .material-families a:hover::after,
.as-catalogue-page .material-families a:focus-visible::after {
  transform: translate(3px,-3px);
}

.as-catalogue-page .material-intro p:has(.secondary-link) {
  margin: 0;
}

.as-catalogue-page .secondary-link {
  display: inline-flex;
  padding-bottom: 4px;
  font-size: 1rem;
  border-bottom: 2px solid var(--accent-bright);
  color: rgba(255,255,255,.82);
  font-weight: 850;
  text-decoration: none;
}

.as-catalogue-page .secondary-link:hover {
  color: #fff;
}

.as-catalogue-page .next-intro {
  position: relative;
  display: grid;
  grid-template-columns: minmax(0,1.1fr) minmax(280px,.9fr);
  gap: clamp(34px,8vw,120px);
  margin: 0;
  padding: clamp(62px,8vw,112px) clamp(20px,8vw,128px);
  overflow: hidden;
  border-top: 1px solid color-mix(in srgb,var(--wp--preset--color--glacier) 12%,transparent);
  background: linear-gradient(145deg,#101e31,#131727);
  color: #fff;
}

.as-catalogue-page .next-intro::after {
  position: absolute;
  top: -110%;
  right: 3%;
  width: min(34vw,420px);
  height: 300%;
  background: repeating-linear-gradient(135deg,var(--accent-bright) 0 1px,transparent 1px 18px);
  opacity: .12;
  transform: rotate(-12deg);
  content: "";
  pointer-events: none;
}

.as-catalogue-page .next-intro > div {
  position: relative;
  z-index: 1;
  margin: 0;
}

.as-catalogue-page .next-intro h2 {
  max-width: 740px;
  margin: 0;
  color: #fff;
  font-size: clamp(2.4rem,4.5vw,5rem);
  line-height: .95;
  letter-spacing: -.05em;
}

.as-catalogue-page .next-intro div:last-child {
  align-self: end;
}

.as-catalogue-page .next-intro div:last-child > p {
  color: rgba(255,255,255,.68);
  font-size: 1rem;
}

.as-catalogue-page .next-intro .wp-element-button {
  min-height: 42px;
  padding: 0 17px;
}

/* Catalogue: title, family tabs, search, cards. */

.as-catalogue-page.inventory-page {
  background: var(--wp--preset--color--navy);
  color: #fff;
}

.as-catalogue-page .inventory-hero {
  display: grid;
  align-content: end;
  gap: 18px;
  padding: clamp(128px,14vw,190px) clamp(20px,12vw,180px) clamp(34px,5vw,58px);
}

.as-catalogue-page .inventory-hero > * {
  margin-block: 0;
}

.as-catalogue-page .inventory-hero :is(.eyebrow, .is-style-surtitre) {
  margin-bottom: 12px;
}

.as-catalogue-page .inventory-hero h1 {
  max-width: 1080px;
  color: #fff;
  font-size: clamp(3.1rem,6.2vw,6.6rem);
  line-height: .97;
  letter-spacing: -.045em;
  overflow-wrap: anywhere;
}

.as-catalogue-page .inventory-hero > p:last-child,
.as-catalogue-page .inventory-hero > .wp-block-term-description {
  max-width: 680px;
  color: rgba(255,255,255,.72);
  font-size: clamp(1.08rem,1.6vw,1.38rem);
}

.as-catalogue-page .inventory-toolbar,
.as-catalogue-page .inventory-subfamilies {
  display: flex;
  flex-wrap: wrap;
  gap: 10px clamp(18px,3vw,34px);
  align-items: center;
  padding: 14px clamp(20px,6vw,78px);
}

/* Family pages: a 2-second light effect drawn over the page on arrival, one per family
   (maquette materiel-categorie.css): beams for Lumière, LED mosaic for Vidéo & LED, sound
   waves for Sonorisation, truss for Structure, circuit for Énergie, recording frame for
   Captation & streaming. The effect ends transparent; none when motion is reduced. */

@media (prefers-reduced-motion: no-preference) {
  .tax-as_family main::before,
  .tax-as_family main::after {
    position: fixed;
    z-index: 30;
    content: "";
    opacity: 0;
    pointer-events: none;
  }

  .tax-as_family.term-lumiere main::before {
    inset: -20%;
    background: linear-gradient(62deg, transparent 32%, rgba(113, 220, 255, .34) 44%, transparent 56%), linear-gradient(94deg, transparent 38%, rgba(255, 228, 178, .48) 49%, transparent 60%), linear-gradient(124deg, transparent 38%, rgba(255, 82, 145, .36) 49%, transparent 60%);
    filter: blur(7px);
    mix-blend-mode: screen;
    transform: translateX(-24%) rotate(-5deg) scale(1.08);
    animation: live-beams 2.1s cubic-bezier(.2,.72,.22,1) both;
  }

  .tax-as_family.term-lumiere main::after {
    top: -26%;
    right: -26%;
    width: 72vw;
    height: 154%;
    background: linear-gradient(108deg, transparent 26%, rgba(255, 232, 180, .04) 39%, rgba(255, 238, 204, .5) 50%, rgba(255, 112, 162, .11) 61%, transparent 74%);
    filter: blur(6px);
    mix-blend-mode: screen;
    transform: rotate(-14deg) translateX(44%);
    animation: spotlight-pass 2.1s cubic-bezier(.2,.72,.22,1) both;
  }

  .tax-as_family.term-video-led main::before {
    inset: 0;
    background-image: conic-gradient(from 90deg at 1px 1px, transparent 90deg, rgba(99, 218, 255, .4) 0), conic-gradient(from 90deg at 1px 1px, transparent 90deg, rgba(255, 87, 149, .34) 0);
    background-position: 0 0, 28px 28px;
    background-size: 58px 58px;
    filter: blur(.2px);
    mix-blend-mode: screen;
    animation: led-mosaic 2s steps(9, end) both;
  }

  .tax-as_family.term-video-led main::after {
    inset: -18%;
    background: radial-gradient(circle at 18% 28%, rgba(92, 220, 255, .38) 0 2px, transparent 60px), radial-gradient(circle at 72% 44%, rgba(255, 81, 145, .38) 0 2px, transparent 70px), radial-gradient(circle at 44% 76%, rgba(195, 240, 255, .26) 0 2px, transparent 78px);
    mix-blend-mode: screen;
    animation: mosaic-wave 2s cubic-bezier(.22,.7,.2,1) both;
  }

  .tax-as_family.term-sonorisation main::before {
    top: 24%;
    right: -8%;
    left: -8%;
    height: 360px;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 640 180'%3E%3Cpath d='M0 90 C27 14 53 14 80 90 S133 166 160 90 S213 14 240 90 S293 166 320 90 S373 14 400 90 S453 166 480 90 S533 14 560 90 S613 166 640 90' fill='none' stroke='%2369dcff' stroke-width='3'/%3E%3C/svg%3E"), url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 640 180'%3E%3Cpath d='M0 90 C27 14 53 14 80 90 S133 166 160 90 S213 14 240 90 S293 166 320 90 S373 14 400 90 S453 166 480 90 S533 14 560 90 S613 166 640 90' fill='none' stroke='%23ffffff' stroke-opacity='.72' stroke-width='1.5'/%3E%3C/svg%3E");
    background-repeat: repeat-x, repeat-x;
    background-size: 640px 180px, 640px 180px;
    background-position: 0 center, 150px calc(50% - 18px);
    filter: drop-shadow(0 0 13px rgba(105, 220, 255, .52));
    mix-blend-mode: screen;
    animation: sine-signal 2.1s linear both;
  }

  .tax-as_family.term-sonorisation main::after {
    top: 24%;
    right: -8%;
    left: -8%;
    height: 360px;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 640 180'%3E%3Cpath d='M0 90 C27 14 53 14 80 90 S133 166 160 90 S213 14 240 90 S293 166 320 90 S373 14 400 90 S453 166 480 90 S533 14 560 90 S613 166 640 90' fill='none' stroke='%23ff4d81' stroke-width='2'/%3E%3C/svg%3E");
    background-repeat: repeat-x;
    background-size: 640px 180px;
    background-position: 320px calc(50% + 18px);
    filter: blur(.2px);
    mix-blend-mode: screen;
    animation: sine-signal-accent 2.1s linear both;
  }

  .tax-as_family.term-structure main::before {
    top: 28%;
    right: 4%;
    left: 4%;
    height: 250px;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 960 250'%3E%3Cg fill='none' stroke='%23cbedf7' stroke-width='2'%3E%3Cpath d='M0 48H960M0 202H960'/%3E%3Cpath d='M0 48L96 202L192 48L288 202L384 48L480 202L576 48L672 202L768 48L864 202L960 48'/%3E%3Cpath d='M0 202L96 48L192 202L288 48L384 202L480 48L576 202L672 48L768 202L864 48L960 202'/%3E%3C/g%3E%3Cpath d='M0 125H960' stroke='%23ff4d81' stroke-width='1'/%3E%3C/svg%3E");
    background-repeat: no-repeat;
    background-position: center;
    background-size: contain;
    filter: drop-shadow(0 0 14px rgba(105, 220, 255, .2));
    mix-blend-mode: screen;
    animation: truss-reveal 2.15s cubic-bezier(.2,.72,.22,1) both;
  }

  .tax-as_family.term-structure main::after {
    top: 28%;
    right: 4%;
    left: 4%;
    height: 250px;
    background: linear-gradient(90deg, transparent 0%, rgba(205, 240, 255, .08) 38%, rgba(255, 230, 192, .88) 50%, rgba(255, 77, 129, .48) 54%, rgba(205, 240, 255, .08) 66%, transparent 100%);
    filter: blur(3px);
    mix-blend-mode: screen;
    transform: translateX(-120%);
    animation: truss-drawing-head 2.15s cubic-bezier(.2,.72,.22,1) both;
  }

  .tax-as_family.term-energie main::before {
    inset: 8% -12%;
    background:
      linear-gradient(118deg, transparent 0 35%, rgba(105, 220, 255, .7) 35.2% 35.45%, transparent 35.7% 100%),
      linear-gradient(64deg, transparent 0 52%, rgba(255, 77, 129, .62) 52.2% 52.45%, transparent 52.7% 100%),
      linear-gradient(118deg, transparent 0 69%, rgba(184, 228, 247, .4) 69.2% 69.4%, transparent 69.7% 100%);
    filter: blur(.4px) drop-shadow(0 0 12px rgba(105, 220, 255, .5));
    mix-blend-mode: screen;
    transform: translateX(-24%) scale(.94);
    animation: energy-circuit 2.15s cubic-bezier(.2,.72,.22,1) both;
  }

  .tax-as_family.term-energie main::after {
    top: 22%;
    right: 14%;
    width: 42vw;
    height: 42vw;
    max-width: 620px;
    max-height: 620px;
    background: radial-gradient(circle, rgba(105, 220, 255, .3) 0 1%, rgba(105, 220, 255, .08) 12%, transparent 58%);
    filter: blur(2px);
    mix-blend-mode: screen;
    animation: energy-charge 2.15s ease-out both;
  }

  .tax-as_family.term-captation-streaming main::before {
    inset: 18% 9%;
    background:
      linear-gradient(90deg, rgba(184, 228, 247, .82) 0 18%, transparent 18% 82%, rgba(184, 228, 247, .82) 82% 100%) top / 100% 2px no-repeat,
      linear-gradient(90deg, rgba(184, 228, 247, .82) 0 18%, transparent 18% 82%, rgba(184, 228, 247, .82) 82% 100%) bottom / 100% 2px no-repeat,
      linear-gradient(0deg, rgba(184, 228, 247, .82) 0 18%, transparent 18% 82%, rgba(184, 228, 247, .82) 82% 100%) left / 2px 100% no-repeat,
      linear-gradient(0deg, rgba(184, 228, 247, .82) 0 18%, transparent 18% 82%, rgba(184, 228, 247, .82) 82% 100%) right / 2px 100% no-repeat,
      linear-gradient(180deg, transparent 0 49%, rgba(255, 77, 129, .82) 49.6% 50.4%, transparent 51% 100%);
    filter: drop-shadow(0 0 16px rgba(105, 220, 255, .48));
    mix-blend-mode: screen;
    transform: scale(.82);
    animation: capture-frame-draw 2.15s cubic-bezier(.2,.72,.22,1) both;
  }

  .tax-as_family.term-captation-streaming main::after {
    top: 30%;
    left: 50%;
    width: clamp(180px, 18vw, 290px);
    height: clamp(110px, 11vw, 180px);
    border: 1px solid rgba(184, 228, 247, .58);
    border-radius: 50%;
    background: radial-gradient(circle at 50% 50%, rgba(255, 77, 129, .9) 0 5px, rgba(255, 77, 129, .22) 6px 12px, transparent 13px), radial-gradient(ellipse, transparent 52%, rgba(105, 220, 255, .16) 53% 54%, transparent 55%);
    box-shadow: 0 0 0 14px rgba(105, 220, 255, .08), 0 0 0 34px rgba(255, 77, 129, .06), inset 0 0 30px rgba(105, 220, 255, .14);
    transform: translate(-50%, -50%) scale(.45);
    animation: capture-record 2.15s ease-out both;
  }

  @keyframes live-beams {
    0% { opacity: 0; transform: translateX(-28%) rotate(-7deg) scale(1.12); }
    18% { opacity: .72; }
    56% { opacity: .52; transform: translateX(8%) rotate(5deg) scale(1.08); }
    82% { opacity: .62; }
    100% { opacity: 0; transform: translateX(24%) rotate(-3deg) scale(1.12); }
  }

  @keyframes spotlight-pass {
    0%, 10% { opacity: 0; transform: rotate(-14deg) translateX(48%); }
    24% { opacity: .78; }
    72% { opacity: .46; }
    100% { opacity: 0; transform: rotate(-14deg) translateX(-52%); }
  }

  @keyframes led-mosaic {
    0% { opacity: 0; background-size: 84px 84px; }
    32% { opacity: .82; }
    70% { opacity: .44; background-size: 58px 58px; }
    100% { opacity: 0; background-size: 52px 52px; }
  }

  @keyframes mosaic-wave {
    0% { opacity: 0; transform: scale(.88); }
    24% { opacity: .7; }
    68% { opacity: .32; transform: scale(1.04); }
    100% { opacity: 0; transform: scale(1.12); }
  }

  @keyframes sine-signal {
    0%, 8% { opacity: 0; background-position: -680px calc(50% - 52px), -180px calc(50% + 40px); }
    18% { opacity: .86; }
    76% { opacity: .48; }
    100% { opacity: 0; background-position: 1280px center, 1430px center; }
  }

  @keyframes sine-signal-accent {
    0%, 12% { opacity: 0; background-position: -420px calc(50% + 70px); }
    26% { opacity: .56; }
    74% { opacity: .28; }
    100% { opacity: 0; background-position: 1600px center; }
  }

  @keyframes truss-reveal {
    0% { opacity: 0; clip-path: inset(0 100% 0 0); }
    26% { opacity: .82; clip-path: inset(0 0 0 0); }
    68% { opacity: .48; clip-path: inset(0 0 0 0); }
    100% { opacity: 0; clip-path: inset(0 0 0 100%); }
  }

  @keyframes truss-drawing-head {
    0%, 12% { opacity: 0; transform: translateX(-120%); }
    26% { opacity: .78; }
    72% { opacity: .36; transform: translateX(120%); }
    100% { opacity: 0; transform: translateX(150%); }
  }

  @keyframes energy-circuit {
    0% { opacity: 0; clip-path: inset(0 100% 0 0); transform: translateX(-24%) scale(.94); }
    24% { opacity: .82; }
    68% { opacity: .46; clip-path: inset(0 0 0 0); }
    100% { opacity: 0; transform: translateX(22%) scale(1.02); }
  }

  @keyframes energy-charge {
    0% { opacity: 0; transform: scale(.35); }
    32% { opacity: .82; }
    72% { opacity: .34; transform: scale(1.08); }
    100% { opacity: 0; transform: scale(1.28); }
  }

  @keyframes capture-frame-draw {
    0% { opacity: 0; clip-path: inset(0 50% 0 50%); transform: scale(.82); }
    22% { opacity: .92; }
    65% { opacity: .48; clip-path: inset(0 0 0 0); transform: scale(1); }
    100% { opacity: 0; transform: scale(1.05); }
  }

  @keyframes capture-record {
    0% { opacity: 0; transform: translate(-50%, -50%) scale(.45); }
    22% { opacity: .9; }
    48% { opacity: .58; transform: translate(-50%, -50%) scale(1); }
    72% { opacity: .24; }
    100% { opacity: 0; transform: translate(-50%, -50%) scale(1.14); }
  }

  @media (max-width: 640px) {
    .tax-as_family.term-sonorisation main::before,
    .tax-as_family.term-sonorisation main::after,
    .tax-as_family.term-structure main::before,
    .tax-as_family.term-structure main::after {
      display: none;
    }
  }
}

.as-catalogue-page .inventory-toolbar {
  position: sticky;
  top: 84px;
  z-index: 15;
  background: color-mix(in srgb,var(--wp--preset--color--navy) 64%,transparent);
  box-shadow: 0 12px 30px rgba(3,10,18,.18);
  backdrop-filter: blur(18px) saturate(145%);
  -webkit-backdrop-filter: blur(18px) saturate(145%);
}

.admin-bar .as-catalogue-page .inventory-toolbar {
  top: 116px;
}

.as-catalogue-page .inventory-toolbar a,
.as-catalogue-page .inventory-subfamilies a {
  position: relative;
  padding: 8px 0;
  color: rgba(255,255,255,.68);
  font-size: .82rem;
  font-weight: 800;
  text-decoration: none;
  transition: color 180ms ease,transform 180ms ease;
}

.as-catalogue-page .inventory-toolbar a::after,
.as-catalogue-page .inventory-subfamilies a::after {
  position: absolute;
  right: 0;
  bottom: 2px;
  left: 0;
  height: 2px;
  border-radius: 2px;
  background: var(--accent-bright);
  content: "";
  transform: scaleX(0);
  transform-origin: left;
  transition: transform 220ms ease;
}

.as-catalogue-page .inventory-toolbar a:hover,
.as-catalogue-page .inventory-toolbar a:focus-visible,
.as-catalogue-page .inventory-toolbar a[aria-current=page] {
  color: var(--accent-bright);
  transform: translateY(-2px);
}

.as-catalogue-page .inventory-toolbar a:hover::after,
.as-catalogue-page .inventory-toolbar a:focus-visible::after,
.as-catalogue-page .inventory-toolbar a[aria-current=page]::after,
.as-catalogue-page .inventory-subfamilies a:hover::after,
.as-catalogue-page .inventory-subfamilies a[aria-current=page]::after {
  transform: scaleX(1);
}

.as-catalogue-page .inventory-subfamilies {
  padding-top: 4px;
  padding-bottom: 4px;
}

.as-catalogue-page .inventory-subfamilies a {
  font-size: .76rem;
  font-weight: 700;
}

.as-catalogue-page .inventory-subfamilies a[aria-current=page],
.as-catalogue-page .inventory-subfamilies a:hover {
  color: #fff;
}

.as-catalogue-page .inventory-search {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  align-items: center;
  margin: 18px clamp(20px,6vw,78px) 26px;
}

.as-catalogue-page .inventory-search label {
  flex: 0 1 320px;
}

.as-catalogue-page .inventory-search label:has(select) {
  flex-basis: 220px;
}

.as-catalogue-page .inventory-search input,
.as-catalogue-page .inventory-search select {
  width: 100%;
  min-height: 42px;
  padding: 0 14px;
  border: 1px solid var(--line-dark);
  border-radius: 0;
  background: rgba(255,255,255,.045);
  color: #fff;
  font: inherit;
  font-size: .88rem;
}

.as-catalogue-page .inventory-search input::placeholder {
  color: rgba(255,255,255,.5);
}

.as-catalogue-page .inventory-search select option {
  color: var(--ink);
}

.as-catalogue-page .inventory-search button {
  min-height: 42px;
  padding: 0 17px;
  border: 0;
  background: var(--accent);
  color: #fff;
  font: inherit;
  font-size: .85rem;
  font-weight: 800;
  cursor: pointer;
}

.as-catalogue-page .inventory-search button:hover {
  background: var(--accent-dark);
}

.as-catalogue-page .inventory-search a {
  color: rgba(255,255,255,.72);
  font-size: .85rem;
}

.as-catalogue-page .inventory-count {
  margin: 0 0 0 auto;
  color: rgba(255,255,255,.55);
  font-size: .82rem;
}

.as-catalogue-page .inventory-grid {
  display: grid;
  grid-template-columns: repeat(4,minmax(0,1fr));
  gap: 14px;
  margin: 0 clamp(20px,6vw,78px) 80px;
}

/* Item cards (variant B, maquette and site, 18 October 2026): the photo on a light panel at
   the top, as on the item sheet (AS360 photos have white backgrounds), the text below on the
   dark card after a pink line; title on three lines at most. */

.as-catalogue-page .inventory-card {
  display: flex;
  flex-direction: column;
  overflow: hidden;
  background: #13283b;
  color: #fff;
  text-decoration: none;
  transition: transform 180ms ease,box-shadow 180ms ease;
}

.as-catalogue-page .inventory-card:hover,
.as-catalogue-page .inventory-card:focus-visible {
  box-shadow: 0 18px 32px rgba(3,10,18,.28);
  transform: translateY(-6px);
}

.as-catalogue-page .inventory-card-media {
  display: grid;
  place-items: center;
  aspect-ratio: 4 / 3;
  padding: 14px;
  overflow: hidden;
  background: linear-gradient(135deg,#eef1f3,var(--wp--preset--color--paper));
}

.as-catalogue-page .inventory-card-media img {
  width: 100%;
  height: 100%;
  object-fit: contain;
  transition: transform 500ms cubic-bezier(.2,.72,.22,1);
}

.as-catalogue-page .inventory-card-media:has(> span) {
  border: 1px dashed color-mix(in srgb,var(--wp--preset--color--steel) 45%,transparent);
}

.as-catalogue-page .inventory-card-media span {
  color: var(--muted);
  font-size: .7rem;
  font-weight: 850;
  letter-spacing: .1em;
  text-transform: uppercase;
}

.as-catalogue-page .inventory-card-copy {
  flex: 1;
  padding: 16px 18px 18px;
  border-top: 3px solid var(--accent-bright);
}

.as-catalogue-page .inventory-card h2 {
  display: -webkit-box;
  margin: 0 0 8px;
  overflow: hidden;
  color: #fff;
  font-size: 1.08rem;
  line-height: 1.2;
  overflow-wrap: anywhere;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 3;
}

.as-catalogue-page .inventory-card-copy > p {
  margin: 0;
  color: rgba(255,255,255,.68);
  font-size: .8rem;
  line-height: 1.45;
}

.as-catalogue-page .inventory-card-link {
  display: inline-block;
  margin-top: 12px;
  border-bottom: 2px solid var(--accent-bright);
  color: #fff;
  font-size: .78rem;
  font-weight: 850;
  opacity: 0;
  transform: translateY(6px);
  transition: opacity 180ms ease,transform 180ms ease;
}

.as-catalogue-page .inventory-card:is(:hover,:focus-visible) .inventory-card-media img {
  transform: scale(1.04);
}

.as-catalogue-page .inventory-card:is(:hover,:focus-visible) .inventory-card-link {
  opacity: 1;
  transform: none;
}

@media (hover:none) {
  .as-catalogue-page .inventory-card-link {
    opacity: 1;
    transform: none;
  }
}

.as-catalogue-page .inventory-empty {
  margin: 0 clamp(20px,6vw,78px) 80px;
  padding: 20px 0;
  color: rgba(255,255,255,.68);
  font-size: .92rem;
}

.as-catalogue-page .inventory-pages {
  display: flex;
  gap: 14px;
  margin: -40px clamp(20px,6vw,78px) 80px;
  font-weight: 800;
}

.as-catalogue-page .inventory-pages a,
.as-catalogue-page .inventory-pages span {
  color: rgba(255,255,255,.72);
}

.as-catalogue-page .inventory-pages .current {
  color: var(--accent-bright);
}

/* Item sheet: light page, photo on the left, characteristics in boxes. */

.as-catalogue-page .equipment-detail {
  padding: clamp(130px,12vw,170px) clamp(20px,10vw,150px) clamp(70px,10vw,140px);
}

.as-catalogue-page .equipment-layout {
  display: grid;
  grid-template-columns: minmax(280px,.9fr) minmax(0,1.1fr);
  gap: clamp(32px,7vw,100px);
  align-items: start;
}

.as-catalogue-page .equipment-media {
  margin: 0;
}

.as-catalogue-page .equipment-media-empty {
  display: grid;
  min-height: 430px;
  place-items: center;
  border: 1px dashed color-mix(in srgb,var(--wp--preset--color--steel) 45%,transparent);
  background: linear-gradient(135deg,#eef1f3,var(--wp--preset--color--paper));
  color: var(--muted);
  font-size: .72rem;
  font-weight: 850;
  letter-spacing: .1em;
  text-transform: uppercase;
}

.as-catalogue-page .as-equipment-media-main {
  margin: 0;
  aspect-ratio: 1.1;
  display: grid;
  place-items: center;
  overflow: hidden;
  background: linear-gradient(135deg,#eef1f3,var(--wp--preset--color--paper));
}

.as-catalogue-page .as-equipment-media-main img {
  width: 100%;
  height: 100%;
  object-fit: contain;
}

.as-catalogue-page .as-equipment-media-thumbs {
  display: grid;
  grid-template-columns: repeat(auto-fill,minmax(72px,1fr));
  gap: 10px;
  margin: 12px 0 0;
  padding: 0;
  list-style: none;
}

.as-catalogue-page .as-equipment-media-thumbs button {
  display: block;
  width: 100%;
  aspect-ratio: 1;
  padding: 0;
  overflow: hidden;
  background: var(--wash);
  border: 1px solid var(--line);
  cursor: pointer;
}

.as-catalogue-page .as-equipment-media-thumbs button[aria-pressed="true"] {
  border: 2px solid var(--accent);
}

.as-catalogue-page .as-equipment-media-thumbs button:hover,
.as-catalogue-page .as-equipment-media-thumbs button:focus-visible {
  border-color: var(--accent);
}

.as-catalogue-page .as-equipment-media-thumbs img {
  width: 100%;
  height: 100%;
  object-fit: contain;
}

.as-catalogue-page .equipment-copy :is(.eyebrow, .is-style-surtitre) {
  margin: 0 0 10px;
  color: var(--accent);
}

/* Item sheet (maquette and site, 18 October 2026): a title sized for the long AS360 names,
   and the feature lists of AS360 as a compact list (see as_catalogue_intro_html). */
.as-catalogue-page .equipment-copy h1 {
  max-width: 720px;
  margin: 0 0 20px;
  font-size: clamp(2rem,3.3vw,2.9rem);
  line-height: 1.02;
  letter-spacing: -.035em;
  overflow-wrap: anywhere;
}

.as-catalogue-page .equipment-intro {
  max-width: 650px;
  color: var(--muted);
  font-size: .98rem;
  line-height: 1.55;
}

.as-catalogue-page .equipment-intro p {
  margin: 0 0 .8em;
}

.as-catalogue-page .equipment-points {
  display: grid;
  gap: 6px;
  margin: 0;
  padding: 0;
  list-style: none;
}

.as-catalogue-page .equipment-points li {
  position: relative;
  padding-left: 18px;
}

.as-catalogue-page .equipment-points li::before {
  position: absolute;
  top: .62em;
  left: 2px;
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: var(--accent);
  content: "";
}

.as-catalogue-page .equipment-more {
  margin-top: 6px;
}

.as-catalogue-page .equipment-more summary {
  display: inline-block;
  margin: 6px 0;
  border-bottom: 2px solid var(--accent);
  color: var(--ink);
  font-size: .86rem;
  font-weight: 850;
  cursor: pointer;
  list-style: none;
}

.as-catalogue-page .equipment-more summary::-webkit-details-marker {
  display: none;
}

.as-catalogue-page .equipment-more[open] summary {
  margin-bottom: 10px;
}

.as-catalogue-page .equipment-specs {
  display: grid;
  grid-template-columns: repeat(2,minmax(0,1fr));
  gap: 1px;
  margin: 34px 0;
  background: #d9dee2;
}

.as-catalogue-page .equipment-specs div {
  padding: 16px;
  background: var(--wash);
}

.as-catalogue-page .equipment-specs div:last-child:nth-child(odd) {
  grid-column: 1/-1;
}

.as-catalogue-page .equipment-specs dt {
  color: var(--muted);
  font-size: .72rem;
  font-weight: 850;
  text-transform: uppercase;
}

.as-catalogue-page .equipment-specs dd {
  margin: 5px 0 0;
  font-weight: 800;
  overflow-wrap: anywhere;
}

.as-catalogue-page .equipment-specs dd a {
  color: inherit;
}

.as-catalogue-page .equipment-download {
  display: inline-flex;
  margin: 0 24px 14px 0;
  padding-bottom: 5px;
  border-bottom: 2px solid var(--accent);
  color: var(--ink);
  font-weight: 850;
  text-decoration: none;
}

.as-catalogue-page .equipment-contact {
  margin: 18px 0 0;
  color: var(--muted);
  font-size: .85rem;
  line-height: 1.5;
}

.as-catalogue-page .equipment-contact a {
  margin-right: 10px;
  color: var(--accent);
  font-weight: 850;
  text-decoration: none;
}

.as-catalogue-page .equipment-content {
  max-width: 900px;
  margin-top: 60px;
  padding-top: 40px;
  border-top: 1px solid var(--line);
}

.as-catalogue-page .equipment-content:empty,
.as-catalogue-page .wp-block-gallery:empty {
  display: none;
}

.site-footer-short {
  padding: 0;
}

.site-footer-short .footer-bottom {
  border-top: 0;
}

@media (max-width:960px) {
  .as-catalogue-page .inventory-grid {
    grid-template-columns: repeat(3,minmax(0,1fr));
  }
}

@media (max-width:760px) {
  .as-catalogue-page .material-families {
    grid-template-columns: repeat(2,minmax(0,1fr));
  }
  .as-catalogue-page .next-intro {
    grid-template-columns: 1fr;
  }
  .as-catalogue-page .equipment-layout {
    grid-template-columns: 1fr;
  }
  .as-catalogue-page .equipment-media-empty {
    min-height: 280px;
  }
  .as-catalogue-page .inventory-toolbar {
    top: 72px;
  }
  .as-catalogue-page .inventory-count {
    width: 100%;
    margin: 0;
  }
}

@media (max-width:640px) {
  .as-catalogue-page .inventory-grid {
    grid-template-columns: repeat(2,minmax(0,1fr));
  }
  /* 12vw instead of the maquette's 14vw: « Sonorisation » in Inter fits on one line. */
  .as-catalogue-page .inventory-hero h1 {
    font-size: clamp(2.2rem,12vw,4.2rem);
  }
}

@media (max-width:480px) {
  .as-catalogue-page .material-families {
    grid-template-columns: 1fr;
  }
  .as-catalogue-page .inventory-grid {
    grid-template-columns: 1fr;
  }
  .as-catalogue-page .inventory-search label {
    flex-basis: 100%;
  }
  .as-catalogue-page .equipment-specs {
    grid-template-columns: 1fr;
  }
}

@media (prefers-reduced-motion:reduce) {
  .as-catalogue-page * {
    transition: none!important;
  }
  .as-catalogue-page .inventory-card:hover,
  .as-catalogue-page .material-families a:hover {
    transform: none;
  }
  .as-catalogue-page .inventory-card:hover .inventory-card-media img {
    transform: none;
  }
}

.as-catalogue-page .inventory-hero .wp-block-term-description p {
  margin: 0;
}
