/* Partout — Lieux v1. No remote fonts, trackers or assets. */
.pl-fiche {
  --pl-ink: #173b37; --pl-green: #176653; --pl-soft: #eef3ed;
  --pl-line: #dce4dd; --pl-muted: #586963; --pl-white: #fff;
  color: var(--pl-ink); font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  font-size: 16px; line-height: 1.6;
}
.pl-fiche.e-con, .pl-fiche { max-width: 1160px; margin-inline: auto; }
.pl-fiche *, .pl-fiche *::before, .pl-fiche *::after { box-sizing: border-box; }
.pl-fiche h1, .pl-fiche h2, .pl-fiche h3, .pl-fiche p, .pl-fiche figure { margin: 0; }
.pl-fiche h1 { font-size: clamp(30px, 4vw, 49px); line-height: 1.15; letter-spacing: -.035em; font-weight: 700; color: var(--pl-ink); }
.pl-fiche h2 { font-size: 21px; line-height: 1.3; letter-spacing: -.025em; font-weight: 650; color: var(--pl-ink); margin-bottom: 20px; }
.pl-fiche h3 { font-size: 15px; line-height: 1.5; color: var(--pl-ink); }
.pl-fiche a { color: var(--pl-green); text-decoration: none; }
.pl-fiche a:hover { text-decoration: underline; }
.pl-fiche a:focus-visible { outline: 3px solid #bd683c; outline-offset: 4px; border-radius: 3px; }
.pl-fiche .pl-icon { width: 21px; height: 21px; flex: 0 0 21px; vertical-align: middle; }
.pl-breadcrumb { font-size: 12px; color: var(--pl-muted); }
.pl-breadcrumb ol { display: flex; flex-wrap: wrap; list-style: none; padding: 0; margin: 0; gap: 5px 0; }
.pl-breadcrumb li { display: flex; align-items: center; }
.pl-breadcrumb li + li::before { content: "/"; margin-inline: 10px; color: #899a90; }
.pl-fiche .pl-breadcrumb a { color: var(--pl-muted); }
.pl-intro { padding-block: 4px 8px; }
.pl-chips { display: flex; gap: 12px; flex-wrap: wrap; align-items: center; margin-bottom: 16px; }
.pl-chip { background: #e5eee7; color: #21563f; border-radius: 5px; padding: 5px 11px; font-size: 12px; letter-spacing: .02em; font-weight: 650; }
.pl-status { font-size: 12px; font-weight: 500; color: #306b4e; }
.pl-status span { font-size: 9px; margin-right: 4px; }
.pl-status-closed { color: #94512d; }
.pl-fiche .pl-subtitle { margin-top: 15px; color: var(--pl-muted); font-size: 16px; }
.pl-photo { overflow: hidden; border-radius: 14px; width: 100%; background: var(--pl-soft); aspect-ratio: 3 / 2; }
.pl-fiche .pl-featured-image { display: block; width: 100%; height: 100%; object-fit: cover; }
.pl-photo-empty { display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 14px; color: #607d69; background: radial-gradient(ellipse at 20% 20%, #e1e9d6 0, transparent 62%), linear-gradient(140deg,#e9efdf,#d9e5dc); }
.pl-fiche .pl-photo-empty .pl-icon { width: 56px; height: 56px; flex-basis: 56px; stroke-width: 1; }
.pl-photo-empty span { font-size: 13px; letter-spacing: .04em; }
.pl-fiche .pl-card { background: var(--pl-white); border: 1px solid var(--pl-line); border-radius: 14px; padding: 25px; }
.pl-contact { box-shadow: 0 5px 24px rgba(23,59,55,.035); }
.pl-address { display: flex; align-items: flex-start; gap: 12px; font-size: 15px; margin-bottom: 24px; }
.pl-address .pl-icon { margin-top: 3px; }
.pl-address address { font-style: normal; }
.pl-actions { display: flex; flex-direction: column; gap: 10px; }
.pl-actions:empty { display: none; }
.pl-fiche .pl-button { display: flex; align-items: center; justify-content: space-between; gap: 12px; border-radius: 7px; min-height: 48px; padding: 11px 16px; font-size: 14px; font-weight: 650; border: 1px solid var(--pl-green); }
.pl-fiche .pl-button:hover { text-decoration: none; filter: brightness(.96); }
.pl-fiche .pl-button-primary { color: #fff; background: var(--pl-green); }
.pl-fiche .pl-button-secondary { color: var(--pl-green); background: #f6f8f2; border-color: #ccdacd; }
.pl-contact-links { display: flex; flex-direction: column; margin-top: 20px; border-top: 1px solid var(--pl-line); padding-top: 8px; }
.pl-fiche .pl-link { display: flex; justify-content: space-between; align-items: center; gap: 12px; min-height: 44px; font-size: 14px; overflow-wrap: anywhere; }
.pl-fiche .pl-link .pl-icon { width: 17px; height: 17px; flex-basis: 17px; }
.pl-fiche .pl-hours h2 { display: flex; align-items: center; gap: 9px; }
.pl-week { padding: 0; margin: 0; font-size: 12px; }
.pl-week > div { display: grid; grid-template-columns: 70px minmax(0,1fr); gap: 8px; padding-block: 10px; border-bottom: 1px solid #edf1ec; }
.pl-week > div:last-child { border: 0; }
.pl-week dt, .pl-week dd { margin: 0; padding: 0; font-weight: 400; }
.pl-week dd { text-align: right; color: #304e43; }
.pl-fiche .pl-fine-print { font-size: 11px; color: var(--pl-muted); margin-top: 14px; }
.pl-exceptions { margin-top: 16px; border-top: 1px solid var(--pl-line); padding-top: 15px; }
.pl-exceptions ul { padding-left: 17px; margin: 8px 0 0; font-size: 12px; }
.pl-details { padding-block: 5px 18px; }
.pl-details dl { margin: 0; }
.pl-details dl > div { padding: 16px 0; border-bottom: 1px solid var(--pl-line); display: grid; grid-template-columns: minmax(0,1.4fr) minmax(0,1fr); gap: 20px; font-size: 14px; }
.pl-details dt { font-weight: 500; }
.pl-details dd { margin: 0; color: var(--pl-muted); }
.pl-source { padding-top: 18px; border-top: 1px solid var(--pl-line); font-size: 12px; color: var(--pl-muted); }
.pl-source .pl-link { display: inline-flex; font-size: 12px; min-height: 30px; }
.pl-fiche .pl-muted { color: var(--pl-muted); font-size: 14px; line-height: 1.7; }
.pl-fiche .pl-prose { color: #40584d; font-size: 16px; line-height: 1.8; }
.pl-fiche .pl-prose p + p { margin-top: 16px; }
.pl-fiche .pl-prose h2, .pl-fiche .pl-prose h3 { margin-block: 20px 12px; }
.pl-fiche .pl-prose h2:first-child { margin-top: 0; }
.pl-editor-note { padding: 20px; background: #f4f6ee; border: 1px solid #cedcc9; }
.pl-fiche .pl-sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; border: 0; }
.pl-fiche .elementor-widget-shortcode, .pl-fiche .elementor-widget-theme-post-content { width: 100%; }
.pl-fiche .elementor-shortcode:empty, .pl-fiche .elementor-widget-shortcode:has(.elementor-shortcode:empty) { display: none; }
.pl-fiche .elementor-widget-theme-post-content:has(> .elementor-widget-container:empty) { display: none; }
@media (max-width: 767px) {
  .pl-fiche h1 { font-size: 32px; }
  .pl-fiche h2 { font-size: 20px; }
  .pl-fiche .pl-card { padding: 21px; }
  .pl-breadcrumb { font-size: 11px; }
  .pl-breadcrumb li + li::before { margin-inline: 7px; }
  .pl-details dl > div { grid-template-columns: 1fr; gap: 4px; }
}
