  .av-hero-section { padding: clamp(48px, 7vw, 120px) var(--gutter) clamp(40px, 5vw, 80px); }
  .av-hero-inner { max-width: var(--container-wide); margin: 0 auto; }
  .av-hero h1 { font-family: var(--font-display); font-weight: 400; font-size: clamp(48px, 7vw, 96px); line-height: 0.95; letter-spacing: -0.025em; color: var(--ink-900); margin: 0 0 20px; max-width: 14ch; }
  .av-hero h1 em { font-style: italic; color: var(--sage-700); }
  .av-hero .lede { font-family: var(--font-display); font-style: italic; font-size: clamp(20px, 1.8vw, 26px); color: var(--ink-700); margin: 0; max-width: 44ch; line-height: 1.3; }
  .av-overline { font-family: var(--font-mono); font-size: 11px; letter-spacing: 0.18em; color: var(--terra-500); text-transform: uppercase; margin: 0 0 18px; }

  .av-stats {
    display: grid; grid-template-columns: repeat(4, 1fr); gap: 0;
    border-top: var(--hairline); border-bottom: var(--hairline);
    background: var(--linen-50);
  }
  .av-stat { padding: clamp(28px, 4vw, 48px) clamp(16px, 3vw, 32px); border-right: var(--hairline); text-align: center; }
  .av-stat:last-child { border-right: 0; }
  .av-stat .num { font-family: var(--font-display); font-weight: 400; font-size: clamp(40px, 5vw, 64px); line-height: 1; color: var(--ink-900); }
  .av-stat .num em { font-style: italic; color: var(--sage-700); }
  .av-stat .lbl { font-family: var(--font-mono); font-size: 11px; letter-spacing: 0.14em; color: var(--stone-500); text-transform: uppercase; margin-top: 10px; }
  @media (max-width: 720px) { .av-stats { grid-template-columns: repeat(2, 1fr); } .av-stat { border-right: 0; border-bottom: var(--hairline); } }

  .av-controls { max-width: var(--container-wide); margin: 0 auto; padding: 36px var(--gutter) 24px; display: flex; gap: 18px 40px; flex-wrap: wrap; align-items: baseline; scroll-margin-top: 90px; }
  .av-fgroup { display: flex; gap: 16px; flex-wrap: wrap; align-items: baseline; }
  .av-fgroup .lbl, .av-sort .lbl { font-family: var(--font-mono); font-size: 11px; font-weight: 700; letter-spacing: 0.16em; color: var(--terra-500); text-transform: uppercase; margin-right: 4px; }
  .av-filter { padding: 2px 0; border: 0; background: transparent; cursor: pointer; font: inherit; font-size: 15px; color: var(--ink-700); text-decoration: none; transition: color .2s; }
  .av-filter:hover { color: var(--ink-900); }
  .av-filter.active { color: var(--ink-900); text-decoration: underline; text-decoration-color: var(--terra-500); text-decoration-thickness: 1.5px; text-underline-offset: 5px; }
  .av-filter:focus-visible { outline: 2px solid var(--terra-500); outline-offset: 3px; border-radius: 2px; }

  .av-sort { margin-left: auto; display: flex; align-items: center; gap: 8px; }
  .av-sort select {
    font: inherit; font-size: 14px; color: var(--ink-900); background-color: transparent;
    border: 1px solid var(--admin-border); border-radius: 4px; padding: 8px 38px 8px 14px;
    cursor: pointer; -webkit-appearance: none; appearance: none;
    background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='12' height='8'><path d='M1 1l5 5 5-5' fill='none' stroke='%238a8178' stroke-width='1.5' stroke-linecap='round'/></svg>");
    background-repeat: no-repeat; background-position: right 13px center;
    transition: border-color .2s;
  }
  .av-sort select:hover { border-color: var(--stone-500); }
  .av-sort select:focus-visible { outline: 2px solid var(--terra-500); outline-offset: 2px; }
  @media (max-width: 640px) { .av-controls { gap: 16px; } .av-sort { margin-left: 0; width: 100%; } .av-sort select { flex: 1; } }

  .av-grid { max-width: var(--container-wide); margin: 0 auto; padding: 0 var(--gutter) clamp(48px, 6vw, 96px); columns: 3; column-gap: clamp(24px, 3vw, 40px); }
  @media (max-width: 960px) { .av-grid { columns: 2; } }
  @media (max-width: 640px) { .av-grid { columns: 1; } }
  /* Masonry JS : colonnes flex alignées en haut (premier rang aligné). */
  .av-grid.is-js { columns: auto; display: flex; align-items: flex-start; gap: clamp(24px, 3vw, 40px); }
  .av-grid.is-js .av-col { flex: 1 1 0; min-width: 0; display: flex; flex-direction: column; gap: clamp(24px, 3vw, 40px); }
  .av-grid.is-js .av-card { margin-bottom: 0; }

  .av-card { background: var(--linen-50); border: var(--hairline); padding: clamp(20px, 2.5vw, 32px); display: flex; flex-direction: column; gap: 14px; break-inside: avoid; margin-bottom: clamp(24px, 3vw, 40px); }
  .av-card-top { display: flex; align-items: center; justify-content: space-between; gap: 12px; flex-wrap: wrap; }
  .av-card-stars { font-family: var(--font-mono); font-size: 13px; color: var(--terra-500); letter-spacing: 0.15em; }
  .av-card-platform { font-family: var(--font-mono); font-size: 10.5px; letter-spacing: 0.14em; color: var(--stone-500); text-transform: uppercase; padding: 3px 9px; border: 1px solid var(--stone-400); border-radius: 12px; }
  .av-card-quote {
    font-family: var(--font-sans); font-style: normal; font-weight: inherit; font-size: 15.5px; line-height: 1.6; letter-spacing: 0; color: var(--ink-900);
    margin: 0;
  }
  .av-card-quote a {
    color: inherit;
    text-decoration: underline;
    text-decoration-color: var(--terra-500);
    text-decoration-thickness: 1px;
    text-underline-offset: 3px;
    transition: color .2s, text-decoration-color .2s;
  }
  .av-card-quote a:hover { color: var(--terra-500); }
  .av-card-quote a:focus-visible { outline: 2px solid var(--terra-500); outline-offset: 2px; }
  .av-card-meta { font-family: var(--font-mono); font-size: 10.5px; letter-spacing: 0.12em; color: var(--stone-500); text-transform: uppercase; border-top: var(--hairline); padding-top: 12px; display: flex; justify-content: space-between; gap: 8px; flex-wrap: wrap; }
  .av-card-author { font-family: var(--font-display); font-style: normal; font-size: 14px; color: var(--ink-700); letter-spacing: 0; text-transform: none; }
  .av-card-author strong { font-weight: 500; }

  /* Sous-notes par catégorie (Booking sur 10, Google / Airbnb sur 5), style « addition » à points de conduite */
  .av-card-scores { margin: 0; display: grid; grid-template-columns: 1fr 1fr; column-gap: 20px; row-gap: 5px; border-top: var(--hairline); padding-top: 12px; }
  .av-card-scores-head { grid-column: 1 / -1; display: flex; justify-content: space-between; gap: 8px; font-family: var(--font-mono); font-size: 10.5px; letter-spacing: 0.12em; color: var(--stone-500); text-transform: uppercase; margin-bottom: 4px; }
  .av-score { display: flex; align-items: baseline; gap: 8px; min-width: 0; }
  .av-score dt { flex: 1; display: flex; align-items: baseline; gap: 8px; min-width: 0; font-family: var(--font-sans); font-weight: 300; font-size: 14px; line-height: 1.3; color: var(--ink-700); }
  .av-score dt::after { content: ""; flex: 1; min-width: 12px; border-bottom: 1px dotted var(--stone-400); transform: translateY(-4px); }
  .av-score dd { margin: 0; font-family: var(--font-mono); font-size: 12px; color: var(--ink-900); font-variant-numeric: tabular-nums; }
  @media (max-width: 400px) { .av-card-scores { grid-template-columns: 1fr; } }

  .av-empty { text-align: center; padding: 60px var(--gutter); color: var(--stone-500); font-family: var(--font-display); font-style: italic; font-size: 20px; }

  .av-cta { background: var(--ink-900); color: var(--linen-50); padding: clamp(48px, 7vw, 96px) var(--gutter); text-align: center; margin-top: 0; }
  .av-cta h2 { font-family: var(--font-display); font-weight: 400; font-size: clamp(32px, 4vw, 52px); line-height: 1; letter-spacing: -0.02em; color: var(--linen-50); margin: 0 0 16px; }
  .av-cta h2 em { font-style: italic; color: var(--sage-200); }
  .av-cta p { font-size: 15.5px; color: rgba(var(--linen-50-rgb), 0.78); margin: 0 auto 28px; max-width: 50ch; line-height: 1.6; }
  .av-cta .btn { background: var(--linen-50); color: var(--ink-900); border-color: var(--linen-50); }
