/* Cards */
.c-line{border:1px solid var(--border);border-radius:var(--r-lg);padding:24px;background:transparent;transition:border-color var(--t-fast), background var(--t-fast)}
.c-line:hover{border-color:color-mix(in srgb, var(--accent) 50%, var(--border));background:color-mix(in srgb,var(--surface) 70%, transparent)}

/* card = row (layout impose) */
.c-row{
  display:grid;grid-template-columns:auto 1fr auto;gap:18px;
  align-items:center;
  padding:22px 0;
}
.c-row__icon{
  width:46px;height:46px;flex-shrink:0;
  border-radius:50%;
  display:grid;place-items:center;
  background:var(--accent-soft);
  color:var(--accent);
}
.c-row__icon svg{width:22px;height:22px}
.c-row__title{font-family:var(--ff-display);font-size:1.05rem;color:var(--text);margin:0 0 .15em}
.c-row__desc{color:var(--text-2);font-size:.9rem;line-height:1.55;margin:0}
.c-row__chev{color:var(--accent);font-size:1.1rem;font-family:var(--ff-display);flex-shrink:0}

/* Chips */
.chip{
  display:inline-flex;align-items:center;gap:8px;
  padding:8px 14px;
  border:1px solid var(--border);
  border-radius:50px;
  font-family:var(--ff-ui);font-size:.78rem;font-weight:500;color:var(--text-2);
  background:var(--surface);
}
.chip svg{width:13px;height:13px;color:var(--accent)}
.chip-accent{background:var(--accent);color:var(--primary);border-color:transparent}
.chip-accent svg{color:var(--primary)}

/* Tags */
.tag{
  display:inline-flex;align-items:center;gap:6px;
  font-family:var(--ff-ui);font-size:.7rem;text-transform:uppercase;letter-spacing:.16em;
  color:var(--accent);font-weight:600;
}
.tag::before{content:"";width:18px;height:1px;background:var(--accent)}

/* Form */
.form{display:grid;gap:14px}
.field{display:flex;flex-direction:column;gap:6px;min-width:0}
.field label{font-family:var(--ff-ui);font-size:.78rem;text-transform:uppercase;letter-spacing:.14em;color:var(--text-2);font-weight:600}
.field input,.field select,.field textarea{
  width:100%;min-width:0;
  padding:13px 14px;
  border:1px solid var(--border);
  border-radius:var(--r-md);
  background:var(--surface);
  color:var(--text);
  font-size:.95rem;
  font-family:var(--ff-body);
  transition:border-color var(--t-fast), background var(--t-fast);
}
.field input:focus,.field select:focus,.field textarea:focus{
  outline:none;border-color:var(--accent);background:var(--bg);
}
.field textarea{resize:vertical;min-height:120px}

/* Map */
.map-wrapper{
  width:100%;
  border-radius:var(--r-lg);
  overflow:hidden;
  border:1px solid var(--border);
  background:var(--surface);
}
.map-wrapper iframe{display:block;width:100%;height:340px;border:0}

/* Badges */
.badge-open{
  display:inline-flex;align-items:center;gap:8px;
  padding:5px 12px;
  border-radius:50px;
  font-family:var(--ff-ui);font-size:.76rem;font-weight:600;
}
.badge-open.is-open{background:color-mix(in srgb,#16a34a 18%, transparent);color:#16a34a}
.badge-open.is-closed{background:color-mix(in srgb,#dc2626 16%, transparent);color:#dc2626}
.badge-open .dot{width:7px;height:7px;border-radius:50%;background:currentColor;flex-shrink:0;animation:pulse 2.4s infinite}
.badge-open.is-closed .dot{animation:none}
@keyframes pulse{0%{opacity:1}50%{opacity:.4}100%{opacity:1}}

/* Horaires table */
.horaires{
  width:100%;
  border-collapse:collapse;
  font-family:var(--ff-ui);font-size:.92rem;
}
.horaires tr{border-bottom:1px solid var(--border)}
.horaires tr:last-child{border-bottom:none}
.horaires td{padding:11px 4px;color:var(--text-2)}
.horaires td:first-child{text-transform:capitalize;font-weight:500;color:var(--text)}
.horaires td:last-child{text-align:right;font-variant-numeric:tabular-nums}
.horaires tr.is-today td{color:var(--accent);font-weight:600}
.horaires tr.is-today td:first-child::before{content:"";display:inline-block;width:6px;height:6px;border-radius:50%;background:var(--accent);margin-right:8px;vertical-align:middle}
.horaires tr.is-closed td{color:var(--text-mute)}

/* Modal mentions legales */
.ml-modal{
  position:fixed;inset:0;
  z-index:var(--z-modal);
  display:flex;align-items:center;justify-content:center;
  padding:20px;
}
.ml-overlay{position:absolute;inset:0;background:rgba(31,34,36,.62);backdrop-filter:blur(3px)}
.ml-box{
  position:relative;
  width:100%;max-width:560px;max-height:84vh;
  overflow-y:auto;
  background:var(--bg);
  border-radius:var(--r-lg);
  padding:36px 28px 32px;
  box-shadow:0 24px 60px rgba(0,0,0,.18);
}
.ml-close{
  position:absolute;top:14px;right:14px;
  width:36px;height:36px;
  display:grid;place-items:center;
  border-radius:50%;
  color:var(--text-2);
  transition:background var(--t-fast),color var(--t-fast);
}
.ml-close:hover{background:var(--bg-alt);color:var(--text)}
.ml-box h2{font-size:1.4rem;margin-bottom:18px;font-family:var(--ff-display)}
.ml-box h3{font-size:.82rem;text-transform:uppercase;letter-spacing:.14em;color:var(--accent);margin:18px 0 6px;font-family:var(--ff-ui);font-weight:600}
.ml-box p{font-size:.88rem;color:var(--text-2);line-height:1.6;margin-bottom:6px}
