.public-body{--brand:#C9202C;--brand-dark:#A41923}
.public-body .site-header{width:min(1040px,calc(100% - 48px));max-width:1040px;min-height:0;margin:24px auto 0;padding:16px 24px;display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:20px;background:#fff;border:1px solid #d8dfe9;border-radius:24px;box-shadow:0 8px 30px -4px #0f172a12}
.public-body .site-header .logo{grid-column:1;grid-row:1;min-width:0}
.public-body .site-header .logo img{width:116px;height:40px;object-fit:contain;object-position:center center}
.public-body .site-header .language-switch{grid-column:2;grid-row:1;justify-content:center;gap:10px;margin:0;font-size:12px}
.public-body .site-header nav{grid-column:3;grid-row:1;margin:0;justify-content:flex-end;flex-wrap:wrap;gap:12px;min-width:0;font-size:14px}
.public-body .site-header nav>a{padding:9px 12px;background:#f5f6f8;border-radius:10px;line-height:1.3}
.public-body .site-header nav>a:hover{color:var(--brand);background:#fff0f1}
.public-body .site-footer{width:min(1040px,calc(100% - 48px));max-width:1040px;margin:28px auto 24px;padding:22px 24px;display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:24px;background:#fff;border:1px solid #d8dfe9;border-radius:24px;color:#647083;font-size:14px;text-align:start;box-shadow:0 8px 30px -4px #0f172a0a}
.public-body .site-footer .logo img{width:100px;height:35px;object-fit:contain;object-position:center center}
.public-body .site-footer p{margin:0;max-width:none;font-size:14px;line-height:1.6;overflow-wrap:anywhere}
.public-body .site-footer>a:last-child{margin:0;max-width:260px;color:var(--brand);font-size:14px;font-weight:650;line-height:1.4;padding:11px 14px;border:1px solid #e7b8bd;border-radius:12px;text-align:center;overflow-wrap:anywhere}
.public-body .restaurant-card{display:block;min-height:0;overflow:hidden;background:#fff;border:1px solid #d8dfe9;border-radius:12px;box-shadow:0 8px 30px -4px #0f172a0a;transition:box-shadow .2s,border-color .2s}
.public-body .restaurant-card:hover{border-color:#d6a7ad;box-shadow:0 12px 30px -4px #0f172a16}
.public-body .restaurant-card-link{display:grid;grid-template-columns:34% minmax(0,1fr);grid-template-areas:"photo title" "photo details";grid-template-rows:auto 1fr;min-height:210px;color:inherit;text-decoration:none}
.public-body .restaurant-card-link:focus-visible{outline:3px solid var(--brand);outline-offset:-4px;border-radius:12px}
.public-body .card-title{grid-area:title;min-width:0;font-size:23px;line-height:1.3;letter-spacing:-.025em;margin:24px 24px 10px;overflow-wrap:anywhere}
.public-body .card-photo{grid-area:photo;min-width:0;background:#f5f6f8;overflow:hidden}
.public-body .card-photo img{display:block;width:100%;height:100%;min-height:210px;max-height:none;object-fit:cover;object-position:center center}
.public-body .card-content{grid-area:details;min-width:0;padding:0 24px 24px;display:flex;flex-direction:column;gap:10px;align-items:flex-start}
.public-body .card-specialties{display:flex;flex-wrap:wrap;gap:6px;min-width:0}
.public-body .card-specialty{font-size:12px;line-height:1.4;letter-spacing:0;margin:0;padding:2px 4px;border-radius:5px;background:#fff0f1;color:var(--brand);text-transform:none;overflow-wrap:anywhere}
.public-body .card-content p{font-size:14px;margin:0;line-height:1.5;overflow-wrap:anywhere}
.public-body .card-content .card-city{color:var(--brand);font-weight:600}
.public-body .card-area + .card-location{margin-inline-start:23px;max-width:calc(100% - 23px)}
.public-body .card-area{display:flex;align-items:flex-start;gap:6px}
.public-body .card-area .card-icon{margin-top:2px}
.public-body .card-icon{width:17px;height:17px;flex:none;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
@media(max-width:760px){
.public-body .site-header,.public-body .site-footer{width:calc(100% - 24px)}
.public-body .site-header{margin-top:12px;padding:12px 14px;gap:8px;border-radius:20px}
.public-body .site-header .logo img{width:88px;height:34px}
.public-body .site-header nav{font-size:12px;gap:8px;max-width:160px}
.public-body .site-header nav>a{padding:9px 10px}
.public-body .site-header .language-switch{font-size:11px;gap:7px}
.public-body .site-footer{grid-template-columns:minmax(0,1fr);justify-items:center;text-align:center;border-radius:20px;padding:24px 20px;gap:14px;margin:20px auto}
.public-body .site-footer p{font-size:14px}
.public-body .site-footer>a:last-child{width:100%;max-width:none;min-height:44px}
.public-body .restaurant-card-link{grid-template-columns:116px minmax(0,1fr);grid-template-areas:"photo title" "photo details";grid-template-rows:auto 1fr;min-height:0;padding:8px;column-gap:10px;row-gap:4px}
.public-body .card-title{font-size:16.8px;line-height:1.3;margin:0}
.public-body .card-photo{width:116px;height:116px;align-self:start;border:1px solid #edf0f4;border-radius:12px;background:#fff}
.public-body .card-photo img{width:100%;height:100%;min-height:0;max-height:none}
.public-body .card-content{padding:0;gap:6px;align-self:start}
.public-body .card-specialties{gap:4px}
.public-body .card-specialty{font-size:12px;padding:2px 4px;border-radius:5px}
.public-body .card-content p{font-size:11.6px;line-height:1.5}
}
@media(max-width:370px){.public-body .site-header nav>a{padding:9px 7px}.public-body .card-title{font-size:16px}}
@media(prefers-reduced-motion:reduce){.public-body .restaurant-card{transition:none}}

/* Essai : cards desktop compactes. */
@media(min-width:761px){
.public-body .restaurant-card-link{grid-template-columns:200px minmax(0,1fr);grid-template-areas:"photo ." "photo title" "photo details" "photo .";grid-template-rows:minmax(20px,1fr) auto auto minmax(20px,1fr);min-height:200px}
.public-body .card-photo{width:200px;height:auto;min-height:200px;align-self:stretch;position:relative}
.public-body .card-photo img{position:absolute;inset:0;width:100%;height:100%;min-height:0;max-height:none}
.public-body .card-title{margin:0 24px 14px}
.public-body .card-content{padding:0 24px;gap:14px}
}

/* Compact card details, keeping the restaurant name dominant. */
.public-body .restaurant-card .opening-status{font-size:12px;font-weight:500;margin:0;line-height:1.5}
.public-body .restaurant-card .opening-status .hours-clock{width:16px;height:16px;flex-basis:16px}
.city-page .card-location .card-city,.city-page .card-location-separator{display:none}
.city-page .card-location:not(.has-zone){display:none}
.city-page .card-location .card-zone{color:var(--brand);font-weight:600}

.public-body .public-header-actions .header-jobs{color:var(--brand);font-size:13px;font-weight:650;white-space:nowrap}
@media(max-width:430px){.public-body .public-header-actions .header-jobs{font-size:12px;padding:8px 4px}}
