:root{
  --bg:#fff8ef;--paper:#fff;--ink:#201816;--muted:#746763;--primary:#d7261e;--primary-2:#ff8a00;--green:#148f4b;--gold:#ffd166;--line:#f0dfcf;--shadow:0 18px 45px rgba(58,35,18,.12);--radius:22px
}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;font-family:Inter,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Arial,sans-serif;background:radial-gradient(circle at top left,#fff1dc 0,#fff8ef 34%,#fff 100%);color:var(--ink);line-height:1.55}a{color:inherit}.header{position:sticky;top:0;z-index:50;background:rgba(32,24,22,.92);backdrop-filter:blur(14px);color:white;padding:14px clamp(16px,4vw,44px);display:flex;justify-content:space-between;align-items:center;box-shadow:0 10px 30px rgba(0,0,0,.14)}.logo{font-weight:900;text-decoration:none;font-size:clamp(20px,2vw,28px);letter-spacing:-.04em}.logo::after{content:"";display:inline-block;width:9px;height:9px;border-radius:50%;background:var(--green);margin-left:7px;box-shadow:0 0 0 5px rgba(20,143,75,.18)}.header nav{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.header nav a{color:white;text-decoration:none;font-weight:700;font-size:14px;padding:10px 14px;border:1px solid rgba(255,255,255,.12);border-radius:999px;transition:.25s}.header nav a:hover{background:white;color:var(--primary);transform:translateY(-1px)}.hero{position:relative;overflow:hidden;color:white;text-align:center;padding:88px 18px 74px;background:linear-gradient(135deg,rgba(215,38,30,.96),rgba(255,138,0,.92)),url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" width="160" height="160"><circle cx="25" cy="25" r="7" fill="rgba(255,255,255,.16)"/><circle cx="112" cy="56" r="11" fill="rgba(255,255,255,.12)"/><circle cx="74" cy="122" r="8" fill="rgba(255,255,255,.10)"/></svg>')}.hero::before,.hero::after{content:"";position:absolute;border-radius:50%;filter:blur(1px);opacity:.28}.hero::before{width:310px;height:310px;background:#fff;left:-100px;top:-120px}.hero::after{width:240px;height:240px;background:#2ecc71;right:-80px;bottom:-90px}.hero>*{position:relative;z-index:1}.hero h1{font-size:clamp(36px,6vw,70px);line-height:.98;margin:0 auto 14px;max-width:980px;letter-spacing:-.07em}.hero p{font-size:clamp(16px,2vw,22px);opacity:.95;margin:0 auto;max-width:720px}.container{max-width:1220px;margin:auto;padding:clamp(22px,4vw,46px)}h1,h2,h3{letter-spacing:-.04em;line-height:1.1}h2{font-size:clamp(26px,3vw,42px);margin:0 0 22px}.search-box{background:rgba(255,255,255,.96);box-shadow:0 24px 55px rgba(104,50,7,.24);border:1px solid rgba(255,255,255,.55);padding:12px;border-radius:999px;max-width:1050px;margin:30px auto 0;display:grid;grid-template-columns:minmax(240px,2fr) 1fr 1fr auto;gap:8px}.search-box input,.search-box select,.form input,.form textarea,.form select,main input,main textarea,main select{width:100%;border:1px solid var(--line);background:#fffaf5;border-radius:16px;padding:14px 15px;font:inherit;color:var(--ink);outline:none;transition:.2s}.search-box input,.search-box select{border:0;background:#fff3e8}.search-box input:focus,.search-box select:focus,.form input:focus,.form textarea:focus,.form select:focus,main input:focus,main textarea:focus,main select:focus{box-shadow:0 0 0 4px rgba(215,38,30,.13);border-color:#f3b28d}.form textarea,main textarea{min-height:130px;resize:vertical}button,.btn{appearance:none;background:linear-gradient(135deg,var(--primary),#b91510);color:#fff;border:0;border-radius:999px;padding:13px 18px;font-weight:900;text-decoration:none;display:inline-flex;align-items:center;justify-content:center;gap:8px;cursor:pointer;box-shadow:0 14px 24px rgba(215,38,30,.24);transition:.22s}button:hover,.btn:hover{transform:translateY(-2px);box-shadow:0 18px 34px rgba(215,38,30,.32)}button:active,.btn:active{transform:translateY(0)}.hero>p button{margin-top:14px;background:rgba(255,255,255,.18);border:1px solid rgba(255,255,255,.35);box-shadow:none}.grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(380px,.9fr);gap:26px;align-items:start}.card,.form{position:relative;background:rgba(255,255,255,.92);border:1px solid rgba(240,223,207,.9);border-radius:var(--radius);padding:22px;box-shadow:var(--shadow);margin-bottom:16px;transition:.25s}.card:hover{transform:translateY(-3px);box-shadow:0 24px 55px rgba(58,35,18,.16)}.card h3{font-size:24px;margin:0 0 9px}.card h3 a{text-decoration:none}.card h3 a:hover{color:var(--primary)}.meta,.card p{color:var(--muted)}.stars{color:#ffb000;font-weight:900;letter-spacing:1px}.badge{display:inline-flex;align-items:center;width:max-content;background:#eaf8ef;color:#13763d;border:1px solid #ccefd7;border-radius:999px;padding:7px 12px;font-weight:800;font-size:13px}.badge::before{content:"✓";margin-right:7px}.service-pills{display:flex;gap:8px;flex-wrap:wrap;margin:12px 0}.service-pills span{background:#fff3e8;border:1px solid var(--line);border-radius:999px;padding:7px 11px;font-weight:800;font-size:13px}.restaurant-cover{width:100%;max-height:420px;object-fit:cover;border-radius:24px;box-shadow:var(--shadow);margin:15px 0}.footer{text-align:center;padding:28px;color:#8a7a74;background:#fff;border-top:1px solid var(--line)}#map{height:560px;border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow);border:6px solid white;position:sticky;top:86px;background:#f4eadf}.leaflet-popup-content-wrapper{border-radius:18px;box-shadow:0 18px 40px rgba(0,0,0,.2)}.leaflet-popup-content{font-family:Inter,Arial,sans-serif}.map-popup strong{font-size:17px}.map-popup a{display:inline-block;margin-top:7px;color:#fff;background:var(--primary);padding:7px 10px;border-radius:999px;text-decoration:none;font-weight:800}.gallery-public{display:grid;grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:16px;margin:22px 0}.gallery-public a{display:block;border-radius:22px;overflow:hidden;box-shadow:var(--shadow);background:#fff}.gallery-public img{width:100%;height:170px;object-fit:cover;display:block;transition:.3s}.gallery-public a:hover img{transform:scale(1.05)}.gallery-admin{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:15px;margin-top:15px}.gallery-admin div{background:#fff8ef;border:1px solid var(--line);padding:10px;border-radius:18px}.gallery-admin img{width:100%;height:120px;object-fit:cover;border-radius:14px}.danger{color:#dc3545;font-weight:900;text-decoration:none}code{background:#fff3e8;border:1px solid var(--line);padding:3px 6px;border-radius:7px}.form label{display:block;font-weight:900;margin:12px 0 7px}.form form p label{display:inline-flex;align-items:center;gap:7px;margin-right:14px}.form input[type=checkbox]{width:auto;accent-color:var(--primary)}input[type=file]{background:#fff;border:1px dashed #e3c8ad}.notice{background:#eaf8ef;color:#13763d;border:1px solid #ccefd7;border-radius:18px;padding:14px 16px;font-weight:800}.empty-state{text-align:center;padding:40px;color:var(--muted)}.reveal{opacity:0;transform:translateY(18px);transition:.55s}.reveal.is-visible{opacity:1;transform:none}@media(max-width:920px){.header{position:relative;align-items:flex-start;gap:12px;flex-direction:column}.grid{grid-template-columns:1fr}.search-box{border-radius:24px;grid-template-columns:1fr;padding:14px}.hero{padding:62px 16px 52px}#map{position:relative;top:auto;height:420px}.header nav a{padding:8px 11px}}@media(max-width:560px){.container{padding:18px}.card,.form{padding:18px;border-radius:18px}.hero h1{font-size:34px}#map{height:340px}.gallery-public{grid-template-columns:1fr 1fr}.gallery-public img{height:130px}}

/* Patch V3 - Recherche AJAX + carte dynamique */
.search-layout{display:grid;grid-template-columns:minmax(0,1fr) minmax(420px,.95fr);gap:26px;align-items:start}.search-toolbar{display:flex;justify-content:space-between;gap:12px;align-items:center;margin:18px 0;flex-wrap:wrap}.result-count{font-weight:900;color:var(--primary)}.ajax-status{font-weight:800;color:var(--muted)}.restaurants-list{min-height:220px}.restaurant-card{display:grid;grid-template-columns:120px minmax(0,1fr);gap:16px;align-items:start}.restaurant-thumb{width:120px;height:105px;border-radius:18px;object-fit:cover;background:#fff3e8;border:1px solid var(--line)}.restaurant-thumb.placeholder{display:grid;place-items:center;font-size:34px;color:#d7261e}.restaurant-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:12px}.btn-small{padding:9px 12px;font-size:13px;box-shadow:none}.btn-secondary{background:#fff3e8;color:var(--ink);border:1px solid var(--line)}.btn-secondary:hover{color:var(--primary);box-shadow:0 12px 22px rgba(104,50,7,.12)}.distance-pill{background:#201816;color:white;border-radius:999px;padding:6px 10px;font-size:12px;font-weight:900;display:inline-flex}.service-tags{display:flex;gap:6px;flex-wrap:wrap;margin:8px 0}.service-tags span{font-size:12px;font-weight:800;background:#fff3e8;border:1px solid var(--line);border-radius:999px;padding:5px 8px}.search-box.ajax-enabled{position:relative}.search-box.ajax-enabled input[name=q]{padding-left:18px}.map-sticky{position:sticky;top:86px}.loading-card{background:linear-gradient(90deg,#fff,#fff3e8,#fff);background-size:200% 100%;animation:tpShimmer 1.1s infinite;border-radius:var(--radius);height:138px;margin-bottom:16px;border:1px solid var(--line)}@keyframes tpShimmer{0%{background-position:200% 0}100%{background-position:-200% 0}}.map-popup .popup-title{font-weight:900;font-size:16px;margin-bottom:4px}.map-popup .popup-actions{display:flex;gap:6px;flex-wrap:wrap;margin-top:8px}.map-popup .popup-actions a{margin:0}.empty-search{background:#fff;border:1px dashed var(--line);border-radius:var(--radius);padding:32px;text-align:center;color:var(--muted);font-weight:800}.use-location-row{display:flex;gap:10px;justify-content:center;align-items:center;flex-wrap:wrap;margin-top:14px}.use-location-row button{background:rgba(255,255,255,.18);border:1px solid rgba(255,255,255,.35);box-shadow:none}.map-error{background:#fff3e8;border:1px solid var(--line);padding:14px;border-radius:18px;margin:10px 0;color:#8a4b00;font-weight:800}@media(max-width:980px){.search-layout{grid-template-columns:1fr}.map-sticky{position:relative;top:auto}.restaurant-card{grid-template-columns:92px minmax(0,1fr)}.restaurant-thumb{width:92px;height:86px}.search-toolbar{align-items:flex-start}}@media(max-width:560px){.restaurant-card{grid-template-columns:1fr}.restaurant-thumb{width:100%;height:180px}.restaurant-actions .btn,.restaurant-actions .btn-small{width:100%}}
