/* O'Vestiaire — Nous trouver */

/* ---------- En-tête : adresse, statut, plan ---------- */
.trouver-head .page-head__grid { grid-template-columns: minmax(0, 1fr) minmax(0, 1.05fr); }
.addr--lg { margin: 30px 0 10px; font-size: clamp(22px, 2vw, 28px); color: var(--alv-cream); }
.trouver-head .lead { margin: 0 0 22px; }
.status--pill { display: inline-flex; align-items: center; gap: 12px; margin: 0 0 30px; padding: 11px 18px; border-radius: 999px; border: 1px solid var(--alv-hair); background: rgba(10, 9, 4, .5); backdrop-filter: blur(6px); font: 600 14px/1.3 var(--alv-font-label); letter-spacing: .08em; text-transform: uppercase; }
.map--head { aspect-ratio: 1.12; }
.map--head .map__pin { left: 47%; top: 45%; }

/* ---------- Horaires et contact ---------- */
.horaires { display: grid; grid-template-columns: minmax(0, 1.5fr) minmax(0, 1fr); gap: clamp(28px, 5vw, 72px); align-items: start; }
.hours-table { display: grid; border-radius: var(--alv-radius-lg); overflow: hidden; border: 1px solid var(--alv-line); background: var(--alv-surface); box-shadow: var(--alv-shadow-1); }
.hours-table .row { display: grid; grid-template-columns: 1.1fr 1fr 1fr; gap: 16px; align-items: baseline; padding: 18px clamp(18px, 2.4vw, 32px); border-top: 1px solid var(--alv-hair); font-size: 16px; color: var(--alv-ink-soft); transition: background-color .4s, color .4s; }
.hours-table .row--head { border-top: 0; padding-block: 14px; background: rgba(247, 219, 142, .06); font: 700 12px/1 var(--alv-font-label); letter-spacing: .18em; text-transform: uppercase; color: var(--alv-cream); }
.hours-table .d { font: 700 17px/1.2 var(--alv-font-label); letter-spacing: .08em; text-transform: uppercase; color: var(--alv-ink); }
.hours-table .closed { color: var(--alv-ink-soft); }
.hours-table .row.is-today { position: relative; isolation: isolate; color: var(--alv-ink); }
/* surbrillance par le fond seul, pas de liseré : un pinceau or tracé de gauche à droite (--brush, piloté par main.js ; 1 = posé, état sans JS et mouvement réduit) */
.hours-table .row.is-today::before { content: ""; position: absolute; inset: 0; z-index: -1; pointer-events: none; background: linear-gradient(90deg, rgba(247, 219, 142, .16), rgba(247, 219, 142, .05)); transform: scaleX(var(--brush, 1)); transform-origin: left; }
.hours-table .row.is-today .d { justify-self: start; background: var(--alv-gold); -webkit-background-clip: text; background-clip: text; color: transparent; -webkit-text-fill-color: transparent; }
.hours-table .row.is-today .d::after { content: "Aujourd’hui"; margin-left: 12px; padding: 4px 8px; border-radius: 5px; background: var(--alv-gold-fill); color: #1A1206; font-size: 11px; letter-spacing: .12em; vertical-align: 2px; opacity: var(--badge, 1); -webkit-text-fill-color: #1A1206; }
.contact { padding: 30px 32px 34px; }
.contact:hover { transform: none; box-shadow: var(--alv-shadow-1); border-color: var(--alv-line); }
.contact .label { margin: 0 0 18px; }
.contact ul { list-style: none; margin: 0; padding: 0; display: grid; gap: 20px; }
.contact li { display: flex; gap: 16px; align-items: flex-start; font-size: 17px; line-height: 1.45; }
.contact li svg { width: 22px; height: 22px; flex: none; margin-top: 4px; color: var(--alv-gold-solid); }
.contact small { display: block; margin-bottom: 2px; font: 700 12px/1.2 var(--alv-font-label); letter-spacing: .16em; text-transform: uppercase; color: var(--alv-ink-soft); font-size: 13px; }
.contact a:hover { color: var(--alv-ink); text-decoration: underline; text-underline-offset: 3px; }

/* ---------- Y venir ---------- */
.acces { display: grid; grid-template-columns: repeat(3, 1fr); gap: 18px; align-items: stretch; }
.acces__card { display: grid; gap: 14px; align-content: start; padding: 30px 30px 32px; }
.acces__ico { width: 34px; height: 34px; color: var(--alv-gold-solid); }
.acces__card p { margin: 0; font-size: 16px; line-height: 1.5; color: var(--alv-ink-soft); }
.acces__apps { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 6px; }
.acces__card .btn { justify-self: start; margin-top: 6px; }
.acces__apps .btn { margin-top: 0; }
.btn.is-done { border-color: var(--alv-gold-solid); color: var(--alv-cream); }

@media (max-width: 900px) {
  .trouver-head .page-head__grid, .horaires, .acces { grid-template-columns: 1fr; }
  .map--head { max-width: 560px; }
}
@media (max-width: 640px) {
  .hours-table .row { grid-template-columns: 1fr 1fr; row-gap: 4px; padding: 14px 18px; }
  .hours-table .row--head span:first-child { display: none; }
  .hours-table .row--head { grid-template-columns: 1fr 1fr; }
  .hours-table .row .d { grid-column: 1 / -1; }
  .hours-table .row.is-today .d::after { margin-left: 8px; }
  .contact { padding: 24px 22px 28px; }
  .acces__card { padding: 24px 22px 26px; }
  .status--pill { font-size: 13px; padding: 10px 14px; }
}

.acces--2 { grid-template-columns: repeat(2, minmax(0, 1fr)); max-width: 980px; }
.contact li a { display: inline-flex; align-items: center; min-height: 44px; margin-block: -10px; }
@media (max-width: 900px) { .acces--2 { grid-template-columns: 1fr; } }
.acces__a11y { display: flex; gap: 10px; align-items: center; color: var(--alv-ink); }
.acces__a11y svg { width: 22px; height: 22px; flex: none; color: var(--alv-gold-solid); }

/* façade en bandeau au-dessus des deux cartes d'accès (photo du 25/09) */
.acces__photo { max-width: 980px; margin: 0 0 18px; aspect-ratio: 2 / 1; border-radius: var(--alv-radius); border: 1px solid var(--alv-line); box-shadow: var(--alv-shadow-2); }
.acces__photo img { object-position: 50% 30%; }
.acces__photo figcaption { position: absolute; left: 14px; bottom: 12px; padding: 7px 10px; border-radius: 6px; background: rgba(10, 9, 4, .72); backdrop-filter: blur(6px); font: 700 12px/1 var(--alv-font-label); letter-spacing: .16em; text-transform: uppercase; color: var(--alv-cream); }
@media (max-width: 640px) { .acces__photo { aspect-ratio: 4 / 3; } }
