/* ── Mini-site d'un établissement PRO ── */
.pro { padding-top:var(--nav-h, 72px); }
.pro-hero { position:relative; min-height:78vh; display:flex; align-items:flex-end; color:#fff; background:#111; overflow:hidden; isolation:isolate; }
.pro-hero-img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; z-index:-2; animation:proZoom 12s ease-out both; }
.pro-hero::before { content:""; position:absolute; inset:0; z-index:-1; background:linear-gradient(180deg, rgba(0,0,0,.15) 20%, rgba(0,0,0,.82)); }
.pro-hero-inner { width:100%; max-width:1280px; margin:0 auto; padding:0 48px 64px; }
.pro-logo { display:inline-flex; background:#fff; border-radius:18px; padding:14px 18px; margin-bottom:22px; box-shadow:0 10px 30px rgba(0,0,0,.25); }
.pro-logo img { height:48px; width:auto; }
.pro-badge { display:inline-flex; align-items:center; gap:6px; font-size:12px; font-weight:800; letter-spacing:1.4px; text-transform:uppercase; background:rgba(255,255,255,.14); backdrop-filter:blur(8px); padding:7px 12px; border-radius:999px; margin:0 0 16px; }
.pro-hero h1 { font-size:clamp(40px,6vw,84px); font-weight:900; letter-spacing:-2.5px; line-height:1; margin:0; }
.pro-tagline { font-size:clamp(18px,2vw,24px); color:rgba(255,255,255,.85); margin:14px 0 0; }
.pro-where { display:inline-flex; align-items:center; gap:8px; font-size:15px; color:rgba(255,255,255,.75); margin:18px 0 0; }
.pro-actions { display:flex; gap:12px; flex-wrap:wrap; margin-top:30px; }
.pro-btn { display:inline-flex; align-items:center; justify-content:center; height:52px; padding:0 26px; border-radius:999px; font-size:15px; font-weight:700; text-decoration:none; transition:transform .15s, background .15s, color .15s; }
.pro-btn:hover { transform:translateY(-2px); }
.pro-btn-light { background:#fff; color:#111; }
.pro-btn-ghost { border:1.5px solid rgba(255,255,255,.5); color:#fff; }
.pro-btn-ghost:hover { background:#fff; color:#111; }
.pro-btn-dark { background:#111; color:#fff; }
.pro-btn:focus-visible, .pro-link:focus-visible, .pro-subnav a:focus-visible { outline:2px solid currentColor; outline-offset:3px; }

.pro-subnav { position:sticky; top:var(--nav-h, 72px); z-index:30; display:flex; justify-content:center; gap:6px; background:rgba(255,255,255,.96); backdrop-filter:blur(8px); border-bottom:1px solid #e8e8e8; padding:10px 16px; overflow-x:auto; }
.pro-subnav a { padding:9px 16px; border-radius:999px; font-size:15px; font-weight:600; color:#444; white-space:nowrap; }
.pro-subnav a:hover { background:#111; color:#fff; }

.pro-sec { max-width:1280px; margin:0 auto; padding:88px 48px 0; scroll-margin-top:140px; }
.pro-sec h2 { font-size:clamp(28px,3vw,40px); font-weight:800; letter-spacing:-1.2px; margin:0 0 32px; }
.pro-grid { display:grid; grid-template-columns:repeat(auto-fill, minmax(260px, 1fr)); gap:32px 22px; }
.pro-prices { margin-top:56px; background:#f5f5f3; border-radius:24px; padding:30px 32px; }
.pro-prices h3 { font-size:20px; font-weight:800; margin:0 0 12px; }
.pro-prices table { width:100%; border-collapse:collapse; font-size:15px; }
.pro-prices th, .pro-prices td { text-align:left; padding:14px 10px; border-bottom:1px solid #e3e3e0; }
.pro-prices thead th { font-size:12px; text-transform:uppercase; letter-spacing:1px; color:#777; }
.pro-prices tbody tr:last-child > * { border-bottom:0; }
.pro-link { font-weight:700; color:#111; text-decoration:underline; text-underline-offset:3px; white-space:nowrap; }

.pro-about { display:grid; grid-template-columns:1.1fr 1fr; gap:56px; align-items:center; }
.pro-about p { font-size:18px; line-height:1.7; color:#444; margin:0; }
.pro-about img { width:100%; aspect-ratio:4 / 3; object-fit:cover; border-radius:24px; }

.pro-gallery { display:grid; grid-template-columns:repeat(4,1fr); grid-auto-rows:210px; gap:12px; }
.pro-gallery a { display:block; border-radius:18px; overflow:hidden; }
.pro-gallery a.is-big { grid-column:span 2; grid-row:span 2; }
.pro-gallery img { width:100%; height:100%; object-fit:cover; transition:transform .5s; }
.pro-gallery a:hover img { transform:scale(1.05); }

.pro-info { display:grid; grid-template-columns:1fr 1.2fr; gap:40px; align-items:stretch; padding-bottom:96px; }
.pro-contact dl { display:grid; grid-template-columns:120px 1fr; gap:14px 16px; margin:0 0 28px; font-size:16px; }
.pro-contact dt { font-weight:700; color:#777; }
.pro-contact dd { margin:0; color:#111; }
.pro-contact dd a { color:#111; text-decoration:underline; text-underline-offset:3px; }
.pro-links { display:flex; align-items:center; gap:18px; flex-wrap:wrap; }
.pro-map { min-height:340px; border-radius:24px; overflow:hidden; background:#eee; }
.pro-map .leaflet-tile { filter:grayscale(1) contrast(1.04); }
.pro-pin { width:20px; height:20px; border-radius:50%; background:#111; border:4px solid #fff; box-shadow:0 2px 10px rgba(0,0,0,.35); }

@keyframes proZoom { from { transform:scale(1.08); } to { transform:scale(1); } }
@media (prefers-reduced-motion: reduce) { .pro-hero-img { animation:none; } }
@media (max-width:1024px) {
  .pro-hero { min-height:70vh; }
  .pro-hero-inner { padding:0 20px 40px; }
  .pro-subnav { justify-content:flex-start; }
  .pro-sec { padding:56px 16px 0; }
  .pro-about, .pro-info { grid-template-columns:1fr; gap:28px; }
  .pro-gallery { grid-template-columns:1fr 1fr; grid-auto-rows:150px; }
  .pro-prices { padding:22px 16px; overflow-x:auto; }
  .pro-prices td:nth-child(2), .pro-prices th:nth-child(2) { display:none; }
}
