/*
 * Pro/Active — recherche du menu public (loupe + panneau + page /recherche/).
 * 26/10/2026. Charte Volt : aucun border-radius, mobile d'abord, couleurs et
 * polices du site (variables --pa-*). Aucun style en ligne dans les gabarits.
 *
 * Placement dans la barre (`.vt-nav`, flex) : la loupe vient APRÈS le panneau
 * du menu dans le HTML et porte `order: 1`, comme lui —
 *   - ordinateur : liens, LOUPE, « Réserver » (order 2) ;
 *   - téléphone (≤ 1240 px) : « Réserver » (order 1, plus tôt dans le HTML),
 *     LOUPE, burger (order 2) : visible menu fermé, à côté du burger.
 */

/* Sprite SVG : présent dans la page, invisible. */
.vt-sprite {
  position: absolute;
  width: 0;
  height: 0;
  overflow: hidden;
}

.vt-nav__loupe svg,
.vt-recherche__loupe,
.vt-recherche__fermer svg {
  fill: none;
  stroke: currentColor;
  stroke-width: 2;
  stroke-linecap: square;
  stroke-linejoin: miter;
}

/* ==========================================================================
   La loupe
   ========================================================================== */

.vt-nav__loupe {
  order: 1;
  flex: none;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 44px;
  height: 44px;
  color: var(--pa-texte);
  transition: color 0.2s ease, background 0.2s ease;
}
.vt-nav__loupe:hover,
.vt-nav__loupe[aria-expanded="true"] {
  color: var(--pa-blanc);
}
.vt-nav__loupe[aria-expanded="true"] {
  background: var(--pa-carte-alt);
}
.vt-nav__loupe:focus-visible {
  outline: 2px solid var(--pa-accent);
  outline-offset: 2px;
  color: var(--pa-blanc);
}

/* ==========================================================================
   Le panneau
   ========================================================================== */

.vt-recherche {
  position: absolute;
  top: 100%;
  right: 44px;
  width: min(620px, calc(100% - 88px));
  max-height: calc(100vh - 96px);
  max-height: calc(100dvh - 96px);
  overflow-y: auto;
  overscroll-behavior: contain;
  background: var(--pa-fond-profond);
  border: 1px solid var(--pa-bordure-douce);
  border-top: 3px solid var(--pa-accent);
  color: var(--pa-texte);
}
.vt-recherche[hidden] {
  display: none !important;
}
/* Cachés par défaut ; recherche.js pose `est-visible` (pas d'attribut hidden). */
.vt-recherche__vide,
.vt-recherche__tous {
  display: none;
}
.vt-recherche__vide.est-visible,
.vt-recherche__tous.est-visible {
  display: block;
}

.vt-recherche__formulaire {
  margin: 0;
  padding: 14px 16px 6px;
}
.vt-recherche__label {
  position: absolute;
  width: 1px;
  height: 1px;
  margin: -1px;
  padding: 0;
  overflow: hidden;
  clip: rect(0 0 0 0);
  white-space: nowrap;
}
.vt-recherche__ligne {
  display: flex;
  align-items: center;
  gap: 4px;
  background: var(--pa-fond);
  border: 2px solid var(--pa-bordure);
  padding-left: 12px;
}
.vt-recherche__ligne:focus-within {
  border-color: var(--pa-accent);
  outline: 1px solid var(--pa-accent);
  outline-offset: 0;
}
.vt-recherche__loupe {
  flex: none;
  width: 20px;
  height: 20px;
  color: var(--pa-accent);
}
.vt-recherche__champ {
  flex: 1;
  min-width: 0;
  box-sizing: border-box;
  height: 48px;
  padding: 0 8px;
  background: transparent;
  border: 0;
  outline: 0;
  font-family: var(--pa-police-texte);
  font-size: 16px; /* 16 px : iOS ne zoome pas la page au focus */
  color: var(--pa-blanc);
  -webkit-appearance: none;
  appearance: none;
}
.vt-recherche__champ::placeholder {
  color: var(--pa-placeholder);
}
.vt-recherche__champ::-webkit-search-cancel-button,
.vt-recherche__champ::-webkit-search-decoration {
  -webkit-appearance: none;
  display: none;
}
.vt-recherche__fermer {
  flex: none;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 44px;
  height: 44px;
  padding: 0;
  background: transparent;
  border: 0;
  color: var(--pa-texte-4);
  cursor: pointer;
}
.vt-recherche__fermer:hover {
  color: var(--pa-blanc);
}
.vt-recherche__fermer:focus-visible {
  outline: 2px solid var(--pa-accent);
  outline-offset: -2px;
  color: var(--pa-blanc);
}

.vt-recherche__etat {
  margin: 0;
  padding: 8px 16px 8px;
  font-size: 11.5px;
  font-weight: 800;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--pa-sourdine);
}

.vt-recherche__liste {
  margin: 0;
  padding: 0;
  list-style: none;
}
.vt-recherche__option {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  column-gap: 14px;
  row-gap: 2px;
  align-items: baseline;
  padding: 11px 16px 11px 13px;
  border-top: 1px solid var(--pa-bordure-douce);
  border-left: 3px solid transparent;
  cursor: pointer;
}
.vt-recherche__option[aria-selected="true"] {
  background: var(--pa-carte-alt);
  border-left-color: var(--pa-accent);
}
.vt-recherche__rubrique {
  grid-column: 1 / -1;
  font-size: 10.5px;
  font-weight: 800;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--pa-accent);
}
.vt-recherche__titre {
  grid-column: 1;
  font-size: 16px;
  font-weight: 800;
  line-height: 1.3;
  color: var(--pa-blanc);
}
.vt-recherche__prix {
  grid-column: 2;
  grid-row: 2;
  font-size: 13.5px;
  font-weight: 800;
  white-space: nowrap;
  color: var(--pa-texte);
}
.vt-recherche__desc {
  grid-column: 1 / -1;
  font-size: 13.5px;
  line-height: 1.4;
  color: var(--pa-texte-4);
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

.vt-recherche__vide {
  padding: 8px 16px 18px;
  border-top: 1px solid var(--pa-bordure-douce);
}
.vt-recherche__vide-titre {
  margin: 12px 0 4px;
  font-size: 16px;
  font-weight: 800;
  color: var(--pa-blanc);
  overflow-wrap: anywhere;
}
.vt-recherche__vide-texte {
  margin: 0 0 14px;
  font-size: 14.5px;
  color: var(--pa-texte-3);
}
.vt-recherche__vide-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin: 0;
}
.vt-recherche__vide-lien {
  display: inline-flex;
  align-items: center;
  min-height: 44px;
  padding: 0 18px;
  border: 2px solid var(--pa-bordure-btn);
  font-size: 14px;
  font-weight: 800;
  color: var(--pa-blanc);
}
.vt-recherche__vide-lien:first-child {
  background: var(--pa-accent);
  border-color: var(--pa-accent);
  color: var(--pa-fond);
}
.vt-recherche__vide-lien:hover {
  border-color: var(--pa-accent);
}
.vt-recherche__vide-lien:first-child:hover {
  background: var(--pa-blanc);
  border-color: var(--pa-blanc);
}
.vt-recherche__vide-lien:focus-visible,
.vt-recherche__tous a:focus-visible {
  outline: 2px solid var(--pa-accent);
  outline-offset: 2px;
}

.vt-recherche__tous {
  margin: 0;
  padding: 0;
  border-top: 1px solid var(--pa-bordure-douce);
}
.vt-recherche__tous a {
  display: block;
  padding: 14px 16px;
  font-size: 13.5px;
  font-weight: 800;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--pa-accent);
}
.vt-recherche__tous a:hover {
  color: var(--pa-blanc);
  background: var(--pa-carte-alt);
}

/* Barre resserrée entre 1241 et 1400 px (voir vitrine.css) : gouttière de 24 px. */
@media (min-width: 1241px) and (max-width: 1400px) {
  .vt-recherche {
    right: 24px;
    width: min(620px, calc(100% - 48px));
  }
}

/* Téléphone et tablette : panneau pleine largeur sous la barre de 64 px. */
@media (max-width: 1240px) {
  .vt-recherche {
    right: 0;
    width: 100%;
    max-width: 640px;
    max-height: calc(100vh - 64px);
    max-height: calc(100dvh - 64px);
    border-left: 0;
    border-right: 0;
  }
  .vt-nav__loupe {
    margin-right: -4px; /* le burger a déjà 8 px de marge à droite */
  }
}
@media (max-width: 640px) {
  .vt-recherche {
    max-width: none;
  }
}

/* Très petits téléphones : la loupe, le burger et « Réserver » doivent tenir. */
@media (max-width: 480px) {
  .vt-nav .vt-marque__by {
    display: none;
  }
}

@media (prefers-reduced-motion: reduce) {
  .vt-nav__loupe {
    transition: none;
  }
}

/* ==========================================================================
   Page /recherche/ (sans JavaScript)
   ========================================================================== */

.vt-rech {
  max-width: 860px;
}
.vt-rech__formulaire {
  margin-top: 24px;
}
.vt-rech__label {
  display: block;
  margin-bottom: 9px;
  font-size: 11.5px;
  font-weight: 800;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--pa-sourdine);
}
.vt-rech__ligne {
  display: flex;
  flex-direction: column;
  gap: 10px;
}
.vt-rech__bouton {
  width: 100%;
  text-align: center;
}
@media (min-width: 640px) {
  .vt-rech__ligne {
    flex-direction: row;
  }
  .vt-rech__champ {
    flex: 1;
  }
  .vt-rech__bouton {
    width: auto;
    flex: none;
  }
}
.vt-rech__compte {
  margin: 0 0 14px;
  font-size: 11.5px;
  font-weight: 800;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--pa-sourdine);
  overflow-wrap: anywhere;
}
.vt-rech__liste {
  margin: 0;
  padding: 0;
  list-style: none;
}
.vt-rech__item {
  border-top: 1px solid var(--pa-bordure-douce);
}
.vt-rech__item:last-child {
  border-bottom: 1px solid var(--pa-bordure-douce);
}
.vt-rech__lien {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  column-gap: 16px;
  row-gap: 3px;
  padding: 16px 12px 16px 14px;
  border-left: 3px solid transparent;
  color: inherit;
}
.vt-rech__lien:hover,
.vt-rech__lien:focus-visible {
  background: var(--pa-carte-alt);
  border-left-color: var(--pa-accent);
}
.vt-rech__lien:focus-visible {
  outline: 2px solid var(--pa-accent);
  outline-offset: -2px;
}
.vt-rech__rubrique {
  grid-column: 1 / -1;
  font-size: 10.5px;
  font-weight: 800;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--pa-accent);
}
.vt-rech__titre {
  grid-column: 1;
  font-size: 18px;
  font-weight: 800;
  color: var(--pa-blanc);
}
.vt-rech__prix {
  grid-column: 2;
  grid-row: 2;
  font-size: 15px;
  font-weight: 800;
  white-space: nowrap;
}
.vt-rech__desc {
  grid-column: 1 / -1;
  font-size: 14.5px;
  line-height: 1.45;
  color: var(--pa-texte-4);
}
.vt-rech__vide-titre {
  margin: 0 0 8px;
  font-size: 20px;
  font-weight: 800;
  color: var(--pa-blanc);
  overflow-wrap: anywhere;
}
.vt-rech__actions {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
  margin: 18px 0 0;
}
