/* Blocs partages du portail (accueil + pages /restaurants/...) : en-tetes de section, tuiles, pied de page */
.pb-wrap{max-width:1240px;margin:0 auto;padding:0 24px}
.pb-section{padding:44px 0 6px}
.pb-head{display:flex;align-items:flex-end;justify-content:space-between;gap:14px;flex-wrap:wrap;margin-bottom:18px}
.pb-head h2{margin:0;font-size:clamp(1.35rem,3vw,1.8rem);line-height:1.2;color:var(--text,#1F2328);display:flex;align-items:center;gap:12px}
.pb-head h2::before{content:"";width:5px;height:1.2em;border-radius:3px;background:var(--brand,#ff6749)}
.pb-head p{margin:6px 0 0;color:var(--muted,#5C6570);font-size:.97rem;max-width:62ch}
.pb-more{display:inline-flex;align-items:center;gap:8px;min-height:44px;padding:0 18px;border-radius:999px;border:1px solid var(--line,#E7E2DD);background:#fff;color:var(--brand,#ff6749);font-weight:700;font-size:.93rem;text-decoration:none;white-space:nowrap}
.pb-more:hover{border-color:var(--brand,#ff6749);background:var(--soft,#FFF1F4)}

.pb-tiles{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:16px}
.pb-tile{display:flex;flex-direction:column;height:100%;background:#fff;border:1px solid var(--line,#E7E2DD);border-radius:18px;overflow:hidden;text-decoration:none;color:var(--text,#1F2328);transition:box-shadow .18s,transform .18s,border-color .18s}
.pb-tile:hover{box-shadow:0 12px 28px rgba(31,35,40,.12);transform:translateY(-3px);border-color:#ffd2c6}
.pb-tile-img{display:block;aspect-ratio:3/2;background:linear-gradient(135deg,var(--soft,#fff1ec),#F1ECE8);overflow:hidden}
.pb-tile-img img{width:100%;height:100%;object-fit:cover;display:block}
.pb-tile-img .ph{display:flex;width:100%;height:100%;align-items:center;justify-content:center;font-size:2.6rem;font-weight:700;color:var(--brand,#ff6749)}
.pb-logo{background:#fff;display:flex;align-items:center;justify-content:center;padding:14px;aspect-ratio:3/2}
.pb-logo img{max-width:80%;max-height:100%;object-fit:contain;width:auto;height:auto}
.pb-tile-body{display:flex;flex-direction:column;gap:2px;padding:12px 16px 16px}
.pb-tile-body b{font-size:1rem;line-height:1.3}
.pb-tile-body small{color:var(--muted,#5C6570);font-size:.85rem}
.pb-ot{grid-template-columns:repeat(auto-fill,minmax(230px,1fr))}

.pb-footer{background:var(--bg_dark,#1F2328);color:var(--text_light,#c9ced6);margin-top:56px;font-family:inherit}
.pb-foot-wrap{max-width:1240px;margin:0 auto;padding:46px 24px 30px;display:grid;grid-template-columns:1.5fr 1fr 1fr 1fr;gap:34px}
.pb-foot-logo{display:inline-flex;align-items:center;gap:10px;color:#fff;font-weight:700;font-size:1.35rem;text-decoration:none;margin-bottom:10px}
.pb-foot-brand p{margin:0;font-size:.93rem;line-height:1.6;max-width:42ch}
.pb-foot-col h2{margin:0 0 12px;font-size:.82rem;letter-spacing:.14em;text-transform:uppercase;color:#fff}
.pb-foot-col ul{list-style:none;margin:0;padding:0}
.pb-foot-col a{display:inline-block;padding:5px 0;color:var(--text_light,#c9ced6);text-decoration:none;font-size:.93rem}
.pb-foot-col a:hover{color:#fff;text-decoration:underline}
.pb-foot-bar{border-top:1px solid rgba(255,255,255,.12);max-width:1240px;margin:0 auto;padding:16px 24px 24px;font-size:.85rem;color:#98a0ab}

/* "Ou manger aujourd'hui" : de 1 a 4 communes selon la largeur de l'ecran */
.pb-oc-list{list-style:none;margin:22px 0 0;padding:0;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px}
.pb-oc{background:#fff;border:1px solid var(--line,#E7E2DD);border-radius:18px;padding:16px 18px 18px;display:flex;flex-direction:column;gap:14px}
.pb-oc-name{display:flex;flex-direction:column;gap:3px;text-decoration:none;color:var(--text,#1F2328)}
.pb-oc-name b{font-size:1.1rem;line-height:1.25}
.pb-oc-name small{color:var(--muted,#5C6570);font-size:.86rem;line-height:1.4}
.pb-oc-name:hover b{color:var(--brand,#ff6749)}
.pb-oc-btns{display:flex;gap:8px;margin-top:auto}
.pb-oc-btns a{flex:1 1 0;min-width:0;display:inline-flex;align-items:center;justify-content:center;gap:6px;min-height:42px;padding:0 10px;border-radius:999px;background:var(--soft,#fff1ec);color:var(--brand,#ff6749);font-weight:700;font-size:.88rem;text-decoration:none;white-space:nowrap}
.pb-oc-btns a b{background:#fff;border-radius:999px;padding:1px 8px;font-size:.82rem}
.pb-oc-btns a:hover{background:var(--brand,#ff6749);color:#fff}
.pb-oc-btns a.off{background:#F1F2F4;color:#8A929C}
.pb-oc-btns a.off:hover{background:#E4E6EA;color:var(--muted,#5C6570)}
@media (max-width:1100px){.pb-oc-list{grid-template-columns:repeat(3,minmax(0,1fr))}.pb-oc:nth-child(n+4){display:none}}
@media (max-width:820px){.pb-oc-list{grid-template-columns:repeat(2,minmax(0,1fr))}.pb-oc:nth-child(n+3){display:none}}
@media (max-width:480px){.pb-oc-list{grid-template-columns:minmax(0,1fr)}.pb-oc:nth-child(n+2){display:none}}

/* Pages "toutes les communes" et "tous les offices" : moteur de recherche + cartes */
.pc-search{position:relative;margin:6px 0 14px;max-width:620px}
.pc-search input{width:100%;min-height:54px;border:1px solid var(--line,#E7E2DD);border-radius:999px;padding:0 22px 0 52px;font:inherit;font-size:1rem;color:var(--text,#1F2328);background:#fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='20' height='20' viewBox='0 0 24 24' fill='none' stroke='%235C6570' stroke-width='2' stroke-linecap='round'%3E%3Ccircle cx='11' cy='11' r='7'/%3E%3Cpath d='m21 21-4.3-4.3'/%3E%3C/svg%3E") 20px center no-repeat}
.pc-search input:focus{outline:3px solid #ffd9ce;border-color:var(--brand,#ff6749)}
.pc-count{margin:0 0 16px;color:var(--muted,#5C6570);font-size:.95rem}
.pc-grid{list-style:none;margin:0 0 34px;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:18px}
.pc-card{display:flex;flex-direction:column;background:#fff;border:1px solid var(--line,#E7E2DD);border-radius:18px;overflow:hidden;transition:box-shadow .18s,transform .18s,border-color .18s}
.pc-card:hover{box-shadow:0 12px 28px rgba(31,35,40,.12);transform:translateY(-3px);border-color:#ffd2c6}
.pc-card[hidden]{display:none}
.pc-card .pb-tile-img{display:block;text-decoration:none}
.pc-body{display:flex;flex-direction:column;gap:10px;padding:14px 16px 16px;flex:1}
.pc-body h3{margin:0;font-size:1.08rem;line-height:1.25}
.pc-body h3 a{color:var(--text,#1F2328);text-decoration:none}
.pc-body h3 a:hover{color:var(--brand,#ff6749)}
.pc-body small{color:var(--muted,#5C6570);font-size:.86rem;display:block;margin-top:3px}
.pc-pills{display:flex;gap:8px;margin-top:auto}
.pc-pills a{flex:1 1 0;min-width:0;display:inline-flex;align-items:center;justify-content:center;gap:6px;min-height:38px;border-radius:999px;background:var(--soft,#fff1ec);color:var(--brand,#ff6749);font-weight:700;font-size:.85rem;text-decoration:none;white-space:nowrap}
.pc-pills a b{background:#fff;border-radius:999px;padding:1px 8px;font-size:.8rem}
.pc-pills a.off{background:#F1F2F4;color:#8A929C}
.pc-none{margin:24px 0;padding:22px;background:#fff;border:1px dashed var(--line,#E7E2DD);border-radius:14px}
.auto-filter{margin:20px 0 -10px;padding:12px 16px;background:var(--soft,#FFF1F4);border:1px solid #ffd2c6;border-radius:14px;font-size:.95rem;display:flex;gap:10px;align-items:center;justify-content:space-between;flex-wrap:wrap}
.auto-filter[hidden]{display:none}
.auto-filter button{border:0;background:none;color:var(--brand,#ff6749);font:700 .95rem inherit;cursor:pointer;text-decoration:underline;padding:6px 2px}

@media (max-width:900px){
  .pb-foot-wrap{grid-template-columns:1fr 1fr}
  .pb-foot-brand{grid-column:1/-1}
}
@media (max-width:560px){
  .pb-wrap{padding:0 16px}
  .pb-tiles,.pb-ot{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
  .pb-foot-wrap{grid-template-columns:1fr}
}
@media (prefers-reduced-motion:reduce){.pb-tile,.pc-card{transition:none}.pb-tile:hover,.pc-card:hover{transform:none}}

/* ===== Menu burger plein ecran ===== */
.pm-burger{display:inline-flex;flex-direction:column;justify-content:center;gap:5px;width:46px;height:46px;padding:0 12px;border:1px solid var(--line,#E7E2DD);border-radius:50%;background:#fff;cursor:pointer;flex:none}
.pm-burger span{display:block;height:2px;border-radius:2px;background:var(--text,#1F2328);transition:transform .2s}
.pm-burger:hover{border-color:var(--brand,#ff6749)}
.pm-burger:focus-visible,.pm-close:focus-visible,.pm-menu a:focus-visible{outline:3px solid #ffd9ce;outline-offset:3px}
.pm-menu{position:fixed;inset:0;z-index:99999;background:var(--bg_dark,#1F2328);color:#fff;display:flex;flex-direction:column;overflow:auto;opacity:0;transform:translateY(-12px);transition:opacity .22s,transform .22s;font-family:inherit}
.pm-menu[hidden]{display:none}
.pm-menu.on{opacity:1;transform:none}
.pm-top{display:flex;align-items:center;justify-content:space-between;padding:16px 24px;max-width:1240px;width:100%;margin:0 auto;box-sizing:border-box}
.pm-logo{color:#fff;font-weight:700;font-size:1.35rem;text-decoration:none}
.pm-close{position:relative;width:46px;height:46px;border:1px solid rgba(255,255,255,.35);border-radius:50%;background:transparent;cursor:pointer}
.pm-close span{position:absolute;left:12px;right:12px;top:50%;height:2px;background:#fff;border-radius:2px}
.pm-close span:first-child{transform:rotate(45deg)}.pm-close span:last-child{transform:rotate(-45deg)}
.pm-close:hover{background:rgba(255,255,255,.12)}
.pm-body{max-width:1240px;width:100%;margin:0 auto;padding:10px 24px 48px;box-sizing:border-box;display:grid;grid-template-columns:1.2fr 1fr;gap:40px;align-items:start}
.pm-main{display:flex;flex-direction:column}
.pm-main a{color:#fff;text-decoration:none;font-weight:700;font-size:clamp(1.6rem,4.2vw,2.8rem);line-height:1.15;padding:12px 0;border-bottom:1px solid rgba(255,255,255,.14);transition:color .15s,padding-left .15s}
.pm-main a:hover{color:var(--brand,#ff6749);padding-left:10px}
.pm-cols{display:grid;grid-template-columns:1fr 1fr;gap:28px}
.pm-cols h2{margin:0 0 12px;font-size:.8rem;letter-spacing:.16em;text-transform:uppercase;color:rgba(255,255,255,.65)}
.pm-cols ul{list-style:none;margin:0;padding:0}
.pm-cols a{display:inline-block;padding:7px 0;color:#fff;text-decoration:none;font-size:1.02rem;opacity:.92}
.pm-cols a:hover{color:var(--brand,#ff6749);opacity:1}
html.pm-lock{overflow:hidden}
@media (max-width:820px){.pm-body{grid-template-columns:1fr;gap:26px}.pm-top{padding:14px 18px}.pm-body{padding:6px 18px 40px}}
@media (max-width:480px){.pm-cols{grid-template-columns:1fr}}
@media (prefers-reduced-motion:reduce){.pm-menu{transition:none}.pm-main a{transition:none}}
