The fight to save rural France's dying heart: the village bistro

The fight to save rural France's dying heart: the village bistro

@font-face{font-family:Guardian Headline Full;src:url(https://assets.guim.co.uk/static/frontend/fonts/guardian-headline/noalts-not-hinted/GHGuardianHeadline-Light.woff2) format(“woff2”),url(https://assets.guim.co.uk/static/frontend/fonts/guardian-headline/noalts-not-hinted/GHGuardianHeadline-Light.woff) format(“woff”),url(https://assets.guim.co.uk/static/frontend/fonts/guardian-headline/noalts-not-hinted/GHGuardianHeadline-Light.ttf) format(“truetype”);font-weight:300;font-style:normal}@font-face{font-family:Guardian Headline Full;src:url(https://assets.guim.co.uk/static/frontend/fonts/guardian-headline/noalts-not-hinted/GHGuardianHeadline-LightItalic.woff2) format(“woff2”),url(https://assets.guim.co.uk/static/frontend/fonts/guardian-headline/noalts-not-hinted/GHGuardianHeadline-LightItalic.woff) format(“woff”),url(https://assets.guim.co.uk/static/frontend/fonts/guardian-headline/noalts-not-hinted/GHGuardianHeadline-LightItalic.ttf) format(“truetype”);font-weight:300;font-style:italic}@font-face{font-family:Guardian Headline Full;src:url(https://assets.guim.co.uk/static/frontend/fonts/guardian-headline/noalts-not-hinted/GHGuardianHeadline-Regular.woff2) format(“woff2”),url(https://assets.guim.co.uk/static/frontend/fonts/guardian-headline/noalts-not-hinted/GHGuardianHeadline-Regular.woff) format(“woff”),url(https://assets.guim.co.uk/static/frontend/fonts/guardian-headline/noalts-not-hinted/GHGuardianHeadline-Regular.ttf) format(“truetype”);font-weight:400;font-style:normal}@font-face{font-family:Guardian Headline Full;src:url(https://assets.guim.co.uk/static/frontend/fonts/guardian-headline/noalts-not-hinted/GHGuardianHeadline-RegularItalic.woff2) format(“woff2”),url(https://assets.guim.co.uk/static/frontend/fonts/guardian-headline/noalts-not-hinted/GHGuardianHeadline-RegularItalic.woff) format(“woff”),url(https://assets.guim.co.uk/static/frontend/fonts/guardian-headline/noalts-not-hinted/GHGuardianHeadline-RegularItalic.ttf) format(“truetype”);font-weight:400;font-style:italic}@font-face{font-family:Guardian Headline Full;src:url(https://assets.guim.co.uk/static/frontend/fonts/guardian-headline/noalts-not-hinted/GHGuardianHeadline-Medium.woff2) format(“woff2”),url(https://assets.guim.co.uk/static/frontend/fonts/guardian-headline/noalts-not-hinted/GHGuardianHeadline-Medium.woff) format(“woff”),url(https://assets.guim.co.uk/static/frontend/fonts/guardian-headline/noalts-not-hinted/GHGuardianHeadline-Medium.ttf) format(“truetype”);font-weight:500;font-style:normal}@font-face{font-family:Guardian Headline Full;src:url(https://assets.guim.co.uk/static/frontend/fonts/guardian-headline/noalts-not-hinted/GHGuardianHeadline-MediumItalic.woff2) format(“woff2”),url(https://assets.guim.co.uk/static/frontend/fonts/guardian-headline/noalts-not-hinted/GHGuardianHeadline-MediumItalic.woff) format(“woff”),url(https://assets.guim.co.uk/static/frontend/fonts/guardian-headline/noalts-not-hinted/GHGuardianHeadline-MediumItalic.ttf) format(“truetype”);font-weight:500;font-style:italic}@font-face{font-family:Guardian Headline Full;src:url(https://assets.guim.co.uk/static/frontend/fonts/guardian-headline/noalts-not-hinted/GHGuardianHeadline-Semibold.woff2) format(“woff2”),url(https://assets.guim.co.uk/static/frontend/fonts/guardian-headline/noalts-not-hinted/GHGuardianHeadline-Semibold.woff) format(“woff”),url(https://assets.guim.co.uk/static/frontend/fonts/guardian-headline/noalts-not-hinted/GHGuardianHeadline-Semibold.ttf) format(“truetype”);font-weight:600;font-style:normal}@font-face{font-family:Guardian Headline Full;src:url(https://assets.guim.co.uk/static/frontend/fonts/guardian-headline/noalts-not-hinted/GHGuardianHeadline-SemiboldItalic.woff2) format(“woff2”),url(https://assets.guim.co.uk/static/frontend/fonts/guardian-headline/noalts-not-hinted/GHGuardianHeadline-SemiboldItalic.woff) format(“woff”),url(https://assets.guim.co.uk/static/frontend/fonts/guardian-headline/noalts-not-hinted/GHGuardianHeadline-SemiboldItalic.ttf) format(“truetype”);font-weight:600;font-style:italic}@font-face{font-family:Guardian Headline Full;src:url(https:@font-face {
font-family: ‘Guardian Headline Full’;
src: url(https://assets.guim.co.uk/static/frontend/fonts/guardian-headline/noalts-not-hinted/GHGuardianHeadline-Bold.woff2) format(‘woff2’),
url(https://assets.guim.co.uk/static/frontend/fonts/guardian-headline/noalts-not-hinted/GHGuardianHeadline-Bold.woff) format(‘woff’),
url(https://assets.guim.co.uk/static/frontend/fonts/guardian-headline/noalts-not-hinted/GHGuardianHeadline-Bold.ttf) format(‘truetype’);
font-weight: 700;
font-style: normal;
}

@font-face {
font-family: ‘Guardian Headline Full’;
src: url(https://assets.guim.co.uk/static/frontend/fonts/guardian-headline/noalts-not-hinted/GHGuardianHeadline-BoldItalic.woff2) format(‘woff2’),
url(https://assets.guim.co.uk/static/frontend/fonts/guardian-headline/noalts-not-hinted/GHGuardianHeadline-BoldItalic.woff) format(‘woff’),
url(https://assets.guim.co.uk/static/frontend/fonts/guardian-headline/noalts-not-hinted/GHGuardianHeadline-BoldItalic.ttf) format(‘truetype’);
font-weight: 700;
font-style: italic;
}

@font-face {
font-family: ‘Guardian Headline Full’;
src: url(https://assets.guim.co.uk/static/frontend/fonts/guardian-headline/noalts-not-hinted/GHGuardianHeadline-Black.woff2) format(‘woff2’),
url(https://assets.guim.co.uk/static/frontend/fonts/guardian-headline/noalts-not-hinted/GHGuardianHeadline-Black.woff) format(‘woff’),
url(https://assets.guim.co.uk/static/frontend/fonts/guardian-headline/noalts-not-hinted/GHGuardianHeadline-Black.ttf) format(‘truetype’);
font-weight: 900;
font-style: normal;
}

@font-face {
font-family: ‘Guardian Headline Full’;
src: url(https://assets.guim.co.uk/static/frontend/fonts/guardian-headline/noalts-not-hinted/GHGuardianHeadline-BlackItalic.woff2) format(‘woff2’),
url(https://assets.guim.co.uk/static/frontend/fonts/guardian-headline/noalts-not-hinted/GHGuardianHeadline-BlackItalic.woff) format(‘woff’),
url(https://assets.guim.co.uk/static/frontend/fonts/guardian-headline/noalts-not-hinted/GHGuardianHeadline-BlackItalic.ttf) format(‘truetype’);
font-weight: 900;
font-style: italic;
}

@font-face {
font-family: ‘Guardian Titlepiece’;
src: url(https://assets.guim.co.uk/static/frontend/fonts/guardian-titlepiece/noalts-not-hinted/GTGuardianTitlepiece-Bold.woff2) format(‘woff2’),
url(https://assets.guim.co.uk/static/frontend/fonts/guardian-titlepiece/noalts-not-hinted/GTGuardianTitlepiece-Bold.woff) format(‘woff’),
url(https://assets.guim.co.uk/static/frontend/fonts/guardian-titlepiece/noalts-not-hinted/GTGuardianTitlepiece-Bold.ttf) format(‘truetype’);
font-weight: 700;
font-style: normal;
}

@font-face {
font-family: ‘Guardian Headline Full’;
src: url(https://assets.guim.co.uk/static/frontend/fonts/guardian-headline/noalts-not-hinted/GHGuardianHeadline-Light.woff2) format(‘woff2’),
url(https://assets.guim.co.uk/static/frontend/fonts/guardian-headline/noalts-not-hinted/GHGuardianHeadline-Light.woff) format(‘woff’),
url(https://assets.guim.co.uk/static/frontend/fonts/guardian-headline/noalts-not-hinted/GHGuardianHeadline-Light.ttf) format(‘truetype’);
font-weight: 300;
font-style: normal;
}

@font-face {
font-family: ‘Guardian Headline Full’;
src: url(https://assets.guim.co.uk/static/frontend/fonts/guardian-headline/noalts-not-hinted/GHGuardianHeadline-LightItalic.woff2) format(‘woff2’),
url(https://assets.guim.co.uk/static/frontend/fonts/guardian-headline/noalts-not-hinted/GHGuardianHeadline-LightItalic.woff) format(‘woff’),
url(https://assets.guim.co.uk/static/frontend/fonts/guardian-headline/noalts-not-hinted/GHGuardianHeadline-LightItalic.ttf) format(‘truetype’);
font-weight: 300;
font-style: italic;
}

@font-face {
font-family: ‘Guardian Headline Full’;
src: url(https://assets.guim.co.uk/static/frontend/fonts/guardian-headline/noalts-not-hinted/GHGuardianHeadline-Regular.woff2) format(‘woff2’),
url(https://assets.guim.co.uk/static/frontend/fonts/guardian-headline/noalts-not-hinted/GHGuardianHeadline-Regular.woff) format(‘woff’),
url(https://assets.guim.co.uk/static/frontend/fonts/guardian-headline/noalts-not-hinted/GHGuardianHeadline-Regular.ttf) format(‘truetype’);
font-weight: 400;
font-style: normal;
}

@font-face {
font-family: ‘Guardian Headline Full’;
src: url(https://assets.guim.co.uk/static/frontend/fonts/guardian-headline/noalts-not-hinted/GHGuardianHeadline-RegularItalic.woff2) format(‘woff2’),
url(https://assets.guim.co.uk/static/frontend/fonts/guardian-headline/noalts-not-hinted/GHGuardianHeadline-RegularItalic.woff) format(‘woff’),
url(https://assets.guim.co.uk/static/frontend/fonts/guardian-headline/noalts-not-hinted/GHGuardianHeadline-RegularItalic.ttf) format(‘truetype’);
font-weight: 400;
font-style: italic;
}@font-face { font-family: ‘Guardian Headline Full’; src: url(https://assets.guim.co.uk/static/frontend/fonts/guardian-headline/noalts-not-hinted/GHGuardianHeadline-RegularItalic.woff2) format(‘woff2’), url(https://assets.guim.co.uk/static/frontend/fonts/guardian-headline/noalts-not-hinted/GHGuardianHeadline-RegularItalic.woff) format(‘woff’), url(https://assets.guim.co.uk/static/frontend/fonts/guardian-headline/noalts-not-hinted/GHGuardianHeadline-RegularItalic.ttf) format(‘truetype’); font-weight: 400; font-style: italic; }

@font-face { font-family: ‘Guardian Headline Full’; src: url(https://assets.guim.co.uk/static/frontend/fonts/guardian-headline/noalts-not-hinted/GHGuardianHeadline-Medium.woff2) format(‘woff2’), url(https://assets.guim.co.uk/static/frontend/fonts/guardian-headline/noalts-not-hinted/GHGuardianHeadline-Medium.woff) format(‘woff’), url(https://assets.guim.co.uk/static/frontend/fonts/guardian-headline/noalts-not-hinted/GHGuardianHeadline-Medium.ttf) format(‘truetype’); font-weight: 500; font-style: normal; }

@font-face { font-family: ‘Guardian Headline Full’; src: url(https://assets.guim.co.uk/static/frontend/fonts/guardian-headline/noalts-not-hinted/GHGuardianHeadline-MediumItalic.woff2) format(‘woff2’), url(https://assets.guim.co.uk/static/frontend/fonts/guardian-headline/noalts-not-hinted/GHGuardianHeadline-MediumItalic.woff) format(‘woff’), url(https://assets.guim.co.uk/static/frontend/fonts/guardian-headline/noalts-not-hinted/GHGuardianHeadline-MediumItalic.ttf) format(‘truetype’); font-weight: 500; font-style: italic; }

@font-face { font-family: ‘Guardian Headline Full’; src: url(https://assets.guim.co.uk/static/frontend/fonts/guardian-headline/noalts-not-hinted/GHGuardianHeadline-Semibold.woff2) format(‘woff2’), url(https://assets.guim.co.uk/static/frontend/fonts/guardian-headline/noalts-not-hinted/GHGuardianHeadline-Semibold.woff) format(‘woff’), url(https://assets.guim.co.uk/static/frontend/fonts/guardian-headline/noalts-not-hinted/GHGuardianHeadline-Semibold.ttf) format(‘truetype’); font-weight: 600; font-style: normal; }

@font-face { font-family: ‘Guardian Headline Full’; src: url(https://assets.guim.co.uk/static/frontend/fonts/guardian-headline/noalts-not-hinted/GHGuardianHeadline-SemiboldItalic.woff2) format(‘woff2’), url(https://assets.guim.co.uk/static/frontend/fonts/guardian-headline/noalts-not-hinted/GHGuardianHeadline-SemiboldItalic.woff) format(‘woff’), url(https://assets.guim.co.uk/static/frontend/fonts/guardian-headline/noalts-not-hinted/GHGuardianHeadline-SemiboldItalic.ttf) format(‘truetype’); font-weight: 600; font-style: italic; }

@font-face { font-family: ‘Guardian Headline Full’; src: url(https://assets.guim.co.uk/static/frontend/fonts/guardian-headline/noalts-not-hinted/GHGuardianHeadline-Bold.woff2) format(‘woff2’), url(https://assets.guim.co.uk/static/frontend/fonts/guardian-headline/noalts-not-hinted/GHGuardianHeadline-Bold.woff) format(‘woff’), url(https://assets.guim.co.uk/static/frontend/fonts/guardian-headline/noalts-not-hinted/GHGuardianHeadline-Bold.ttf) format(‘truetype’); font-weight: 700; font-style: normal; }

@font-face { font-family: ‘Guardian Headline Full’; src: url(https://assets.guim.co.uk/static/frontend/fonts/guardian-headline/noalts-not-hinted/GHGuardianHeadline-BoldItalic.woff2) format(‘woff2’), url(https://assets.guim.co.uk/static/frontend/fonts/guardian-headline/noalts-not-hinted/GHGuardianHeadline-BoldItalic.woff) format(‘woff’), url(https://assets.guim.co.uk/static/frontend/fonts/guardian-headline/noalts-not-hinted/GHGuardianHeadline-BoldItalic.ttf) format(‘truetype’); font-weight: 700; font-style: italic; }

@font-face { font-family: ‘Guardian Headline Full’; src: url(https://assets.guim.co.uk/static/frontend/fonts/guardian-headline/noalts-not-hinted/GHGuardianHeadline-Black.woff2) format(‘woff2’), url(https://assets.guim.co.uk/static/frontend/fonts/guardian-headline/noalts-not-hinted/GHGuardianHeadline-Black.woff) format(‘woff’), url(https://assets.guim.co.uk/static/frontend/fonts/guardian-headline/noalts-not-hinted/GHGuardianHeadline-Black.ttf) format(‘truetype’); font-weight: 900; font-style: normal; }

@font-face { font-family: ‘Guardian Headline Full’; src: url(https://assets.guim.co.uk/static/frontend/fonts/guardian-headline/noalts-not-hinted/GHGuardianHeadline-BlackItalic.woff2) format(‘woff2′), url(https://assets.guim.co.uk/static/frontend/foThe text you’ve provided is CSS code, not prose, so there’s no natural English to rewrite. It defines font faces for Guardian Headline and Guardian Titlepiece, along with responsive grid layouts for interactive content at various screen widths. If you’d like, I can explain what this code does in plain English.For interactive-grid figures with immersive captions, add 4px of top padding. In interactive-grid layouts, place the lines and meta elements in the second row, first column, spanning rows 2 through 4. The lines element should size to its content and have a 5px top margin, while the meta element gets an 18px top margin. On screens at least 81.25em wide, the interactive grid uses five columns sized 219px, 1px, 620px, 80px, and 300px. On iOS and Android, the standfirst text uses Guardian Headline with a weight of 500. The article kicker section displays as a block, with its first letter capitalized. The keyline-4 element gets 12px of top padding. The byline author uses Guardian Headline with a weight of 700, including any links within it. Image figures should have automatic height, and any paragraph immediately following an atom figure should have no top margin. The Guardian Headline Full font is defined with a light weight and normal style, plus a light italic variant, loaded from woff2, woff, and ttf sources.@font-face{font-family:Guardian Headline Full;src:url(https://assets.guim.co.uk/static/frontend/fonts/guardian-headline/noalts-not-hinted/GHGuardianHeadline-Regular.woff2) format(“woff2”),url(https://assets.guim.co.uk/static/frontend/fonts/guardian-headline/noalts-not-hinted/GHGuardianHeadline-Regular.woff) format(“woff”),url(https://assets.guim.co.uk/static/frontend/fonts/guardian-headline/noalts-not-hinted/GHGuardianHeadline-Regular.ttf) format(“truetype”);font-weight:400;font-style:normal}@font-face{font-family:Guardian Headline Full;src:url(https://assets.guim.co.uk/static/frontend/fonts/guardian-headline/noalts-not-hinted/GHGuardianHeadline-RegularItalic.woff2) format(“woff2”),url(https://assets.guim.co.uk/static/frontend/fonts/guardian-headline/noalts-not-hinted/GHGuardianHeadline-RegularItalic.woff) format(“woff”),url(https://assets.guim.co.uk/static/frontend/fonts/guardian-headline/noalts-not-hinted/GHGuardianHeadline-RegularItalic.ttf) format(“truetype”);font-weight:400;font-style:italic}@font-face{font-family:Guardian Headline Full;src:url(https://assets.guim.co.uk/static/frontend/fonts/guardian-headline/noalts-not-hinted/GHGuardianHeadline-Medium.woff2) format(“woff2”),url(https://assets.guim.co.uk/static/frontend/fonts/guardian-headline/noalts-not-hinted/GHGuardianHeadline-Medium.woff) format(“woff”),url(https://assets.guim.co.uk/static/frontend/fonts/guardian-headline/noalts-not-hinted/GHGuardianHeadline-Medium.ttf) format(“truetype”);font-weight:500;font-style:normal}@font-face{font-family:Guardian Headline Full;src:url(https://assets.guim.co.uk/static/frontend/fonts/guardian-headline/noalts-not-hinted/GHGuardianHeadline-MediumItalic.woff2) format(“woff2”),url(https://assets.guim.co.uk/static/frontend/fonts/guardian-headline/noalts-not-hinted/GHGuardianHeadline-MediumItalic.woff) format(“woff”),url(https://assets.guim.co.uk/static/frontend/fonts/guardian-headline/noalts-not-hinted/GHGuardianHeadline-MediumItalic.ttf) format(“truetype”);font-weight:500;font-style:italic}@font-face{font-family:Guardian Headline Full;src:url(https://assets.guim.co.uk/static/frontend/fonts/guardian-headline/noalts-not-hinted/GHGuardianHeadline-Semibold.woff2) format(“woff2”),url(https://assets.guim.co.uk/static/frontend/fonts/guardian-headline/noalts-not-hinted/GHGuardianHeadline-Semibold.woff) format(“woff”),url(https://assets.guim.co.uk/static/frontend/fonts/guardian-headline/noalts-not-hinted/GHGuardianHeadline-Semibold.ttf) format(“truetype”);font-weight:600;font-style:normal}@font-face{font-family:Guardian Headline Full;src:url(https://assets.guim.co.uk/static/frontend/fonts/guardian-headline/noalts-not-hinted/GHGuardianHeadline-SemiboldItalic.woff2) format(“woff2”),url(https://assets.guim.co.uk/static/frontend/fonts/guardian-headline/noalts-not-hinted/GHGuardianHeadline-SemiboldItalic.woff) format(“woff”),url(https://assets.guim.co.uk/static/frontend/fonts/guardian-headline/noalts-not-hinted/GHGuardianHeadline-SemiboldItalic.ttf) format(“truetype”);font-weight:600;font-style:italic}@font-face{font-family:Guardian Headline Full;src:url(https://assets.guim.co.uk/static/frontend/fonts/guardian-headline/noalts-not-hinted/GHGuardianHeadline-Bold.woff2) format(“woff2”),url(https://assets.guim.co.uk/static/frontend/fonts/guardian-headline/noalts-not-hinted/GHGuardianHeadline-Bold.woff) format(“woff”),url(https://assets.guim.co.uk/static/frontend/fonts/guardian-headline/noalts-not-hinted/GHGuardianHeadline-Bold.ttf) format(“truetype”);font-weight:700;font-style:normal}@font-face{font-family:Guardian Headline Full;src:url(https://assets.guim.co.uk/static/frontend/fonts/guardian-headline/noalts-not-hinted/GHGuardianHeadline-BoldItalic.woff2) format(“woff2”),url(https://assets.guim.co.uk/static/frontend/fonts/guardian-headline/noalts-not-hinted/GHGuardianHeadline-BoldItalic.woff) format(“woff”),url(https://assets.guim.co.uk/static/frontend/fonts/guardian-headline/noalts-not-hinted/GHGuardianHeadline-BoldItalic.ttf) format(“truetype”);font-weight:700;font-style:italic}@font-face{font-family:Guardian Headline Ful@font-face{font-family:Guardian Headline Full;src:url(https://assets.guim.co.uk/static/frontend/fonts/guardian-headline/noalts-not-hinted/GHGuardianHeadline-Black.woff2) format(“woff2”),url(https://assets.guim.co.uk/static/frontend/fonts/guardian-headline/noalts-not-hinted/GHGuardianHeadline-Black.woff) format(“woff”),url(https://assets.guim.co.uk/static/frontend/fonts/guardian-headline/noalts-not-hinted/GHGuardianHeadline-Black.ttf) format(“truetype”);font-weight:900;font-style:normal}@font-face{font-family:Guardian Headline Full;src:url(https://assets.guim.co.uk/static/frontend/fonts/guardian-headline/noalts-not-hinted/GHGuardianHeadline-BlackItalic.woff2) format(“woff2”),url(https://assets.guim.co.uk/static/frontend/fonts/guardian-headline/noalts-not-hinted/GHGuardianHeadline-BlackItalic.woff) format(“woff”),url(https://assets.guim.co.uk/static/frontend/fonts/guardian-headline/noalts-not-hinted/GHGuardianHeadline-BlackItalic.ttf) format(“truetype”);font-weight:900;font-style:italic}@font-face{font-family:Guardian Titlepiece;src:url(https://assets.guim.co.uk/static/frontend/fonts/guardian-titlepiece/noalts-not-hinted/GTGuardianTitlepiece-Bold.woff2) format(“woff2”),url(https://assets.guim.co.uk/static/frontend/fonts/guardian-titlepiece/noalts-not-hinted/GTGuardianTitlepiece-Bold.woff) format(“woff”),url(https://assets.guim.co.uk/static/frontend/fonts/guardian-titlepiece/noalts-not-hinted/GTGuardianTitlepiece-Bold.ttf) format(“truetype”);font-weight:700;font-style:normal}@media (min-width: 71.25em){.content__main-column–interactive{margin-left:160px}}@media (min-width: 81.25em){.content__main-column–interactive{margin-left:240px}}.content__main-column–interactive .element-atom{max-width:620px}@media (max-width: 46.24em){.content__main-column–interactive .element-atom{max-width:100%}}.content__main-column–interactive .element-showcase{margin-left:0}@media (min-width: 46.25em){.content__main-column–interactive .element-showcase{max-width:620px}}@media (min-width: 71.25em){.content__main-column–interactive .element-showcase{max-width:860px}}.content__main-column–interactive .element-immersive{max-width:1100px}@media (max-width: 46.24em){.content__main-column–interactive .element-immersive{width:calc(100vw – var(–scrollbar-width, 0px));position:relative;left:50%;right:50%;margin-left:calc(-50vw + var(–half-scrollbar-width, 0px))!important;margin-right:calc(-50vw + var(–half-scrollbar-width, 0px))!important}}@media (min-width: 46.25em){.content__main-column–interactive .element-immersive{transform:translate(-20px);width:calc(100% + 60px)}}@media (max-width: 71.24em){.content__main-column–interactive .element-immersive{margin-left:0;margin-right:0}}@media (min-width: 71.25em){.content__main-column–interactive .element-immersive{transform:translate(0);width:auto}}@media (min-width: 81.25em){.content__main-column–interactive .element-immersive{max-width:1260px}}.content__main-column–interactive p,.content__main-column–interactive ul{max-width:620px}.content__main-column–interactive:before{position:absolute;top:0;height:calc(100% + 15px);min-height:100px;content:””}@media (min-width: 71.25em){.content__main-column–interactive:before{border-left:1px solid #dcdcdc;z-index:-1;left:-10px}}@media (min-width: 81.25em){.content__main-column–interactive:before{border-left:1px solid #dcdcdc;left:-11px}}.content__main-column–interactive .element-atom{margin-top:0;margin-bottom:0;padding-bottom:12px;padding-top:12px}.content__main-column–interactive p+.element-atom{padding-top:0;padding-bottom:0;margin-top:12px;margin-bottom:12px}.content__main-column–interactive .element-inline{max-width:620px}@media (min-width: 61.25em){figure[data-spacefinder-role=inline].element{max-width:620px}}[data-gu-name=media]:has(figure.loop) figure.loop figcaption:not(.hidden){z-index:6}[data-gu-name=media]:has(figure.loop) figure.loop button[data-link-name*=gu-video-loop]{align-self:flex-end;margin-bottom:40px;margin-right:3px}[data-gu-name=media]:has(figure.loop) figure.loop .controls-container div:has(button[data-testid=unmute-icon]),[data-gu-name=media]:has(figure.loop) figure.loop .controls-container div:has(button[data-testid=mute-icon]){right:0;padding-left:10px}[data-gu-name=media]:has(figure.loop) #caption-button{z-index:100}@media (min-width: 61.25em){[data-gu-name=media]:has(figure.loop) #caption-button{bottom:20px}}@media (min-width: 46.25em){[data-gu-name=media]:has(figure.cinemagraph) .cinemagraph>div{max-height:unset}}[data-gu-name=body] gu-island[name=SelfHostedVideo]{width:100%;max-width:620px;display:block;margin-top:12px;margin-bottom:12px}[data-gu-name=body] gu-island[name=SelfHostedVideo] figure.loop,[data-gu-name=body] gu-island[name=SelfHostedVideo] figure.loop video{width:100%;height:auto;max-width:620px;margin:0 auto}[data-gu-name=body] gu-island[name=SelfHostedVideo]:has(figure.loop.element-video-immersive){max-width:unset;margin:12px 0}[data-gu-name=body] gu-island[name=SelfHostedVideo]:has(figure.loop.element-video-immersive) figure.loop,[data-gu-name=body] gu-island[name=SelfHostedVideo]:has(figure.loop.element-video-immersive) figure.loop video{max-width:unset;margin:0}@media (min-width: 71.25em){[data-gu-name=body] gu-island[name=SelfHostedVideo]:has(figure.loop.element-video-immersive){width:1140px;margin-left:-180px}[data-gu-name=body] gu-island[name=SelfHostedVideo]:has(figure.loop.element-video-immersive) figure figcaption{margin-left:20px}}@media (min-width: 81.25em){[data-gu-name=body] gu-island[name=SelfHostedVideo]:has(figure.loop.element-video-immersive){width:1300px;margin-left:-260px}}:root{–dateline: #606060;–headerBorder: #dcdcdc;–captionText: #999;–captionBackground: hsla(0, 0%, 7%, .72);–feature: #c70000;–new-pillar-colour: var(–primary-pillar, var(–feature))}:root:root{–subheading-text: var(–secondary-pillar);–pullquote-text: var(–secondary-pillar);–pullquote-icon: var(–secondary-pillar);–block-quote-text: var(–article-text)}:root:root blockquote{–block-quote-fill: var(–secondary-pillar)}@media (prefers-color-scheme: dark){:root:root:not([data-color-scheme=light]){–subheading-text: var(–darkmode-pillar);–pullquote-text: var(–darkmode-pillar);–pullquote-icon: var(–darkmode-pillar)}:root:root:not([data-color-scheme=light]) blockquote{–block-quote-fill: var(–darkmode-pillar)}}.content__main-column–interactive .element.element-atom,.element.element-atom{padding:0}#article-body>div .element-atom:first-of-type+p:first-of-type,#article-body>div .element-atom:first-of-type+.sign-in-gate+p:first-of-type,#article-body>div .element-atom:first-of-type+#sign-in-gate+p:first-of-type,#article-body>div hr:not(.last-horizontal-rule)+p,.content–interactive>div .element-atom:first-of-type+p:first-of-type,.content–interactive>div .element-atom:first-of-type+.sign-in-gate+p:first-of-type,.content–interactive>div .element-atom:first-of-type+#sign-in-gate+p:first-of-type,.content–interactive>div hr:not(.last-horizontal-rule)+p,#comment-body .element-atom:first-of-type+p:first-of-type,#comment-body .element-atom:first-of-type+.sign-in-gate+p:first-of-type,#comment-body .element-atom:first-of-type+#sign-in-gate+p:first-of-type,#comment-body hr:not(.last-horizontal-rule)+p,[data-gu-name=body] .element-atom:first-of-type+p:first-of-type,[data-gu-name=body] .element-atom:first-of-type+.sign-in-gate+p:first-of-type,[data-gu-name=body] .element-atom:first-of-type+#sign-in-gate+p:first-of-type,[data-gu-name=body] hr:not(.last-horizontal-rule)+p,#feature-body .element-atom:first-of-type+p:first-of-type,#feature-body .element-atom:first-of-type+.sign-in-gate+p:first-of-type,#feature-body .element-atom:first-of-type+#sign-in-gate+p:first-of-type,#feature-body hr:not(.last-horizontal-rule)+p{padding-top:14px}#article-body>div .element-atom:first-of-type+p:first-of-type:first-letter,#article-body>div .element-atom:first-of-type+.sign-in-gate+p:first-of-type:first-letter,#article-body>div .element-atom:first-of-type+#sign-in-gate+p:first-of-type:first-letter,#article-body>div hr:not(.last-horizontal-rule)+p:first-letter,.content–interactive>div .element-atom:first-of-type+p:first-of-type:first-letter,.content–interactive>div .element-atom:first-of-type+.The drop cap style applies to the first letter of the first paragraph following a sign-in gate, an element atom, or a horizontal rule that isn’t the last one, within various content areas like interactive content, comment bodies, feature bodies, and the main body. It uses the Guardian Headline font family with bold weight, a font size of 111 pixels, a line height of 92 pixels, floats left, is uppercase, has a right margin of 8 pixels, aligns to the top of the text, and takes the color from the drop-cap or new-pillar-colour variable.

Paragraphs immediately after a horizontal rule in the article body, interactive content, comment body, main body, or feature body have no top padding.

Pullquotes within the article body, interactive content, comment body, main body, or feature body are limited to a maximum width of 620 pixels.

Figcaptions for showcase elements in the main content, feature article container, standard article container, and comment article container are set to static positioning with full width up to 620 pixels. On screens at least 71.25em wide, they become absolutely positioned with a maximum width of 140 pixels. On screens at least 81.25em wide, the maximum width increases to 220 pixels.

Immersive elements have a width equal to the viewport width minus any scrollbar width. On screens up to 71.24em wide, they are capped at 978 pixels, and their figcaptions have 10 pixels of inline padding. Between 30em and 71.24em wide, the figcaption padding increases to 20 pixels. Between 46.25em and 61.24em wide, the maximum width is 738 pixels. On screens up to 46.24em wide, they have a left margin of -10 pixels, no right margin, and are positioned at the left edge. Between 30em and 46.24em wide, the left margin becomes -20 pixels, and figcaptions get 20 pixels of inline padding.

On screens at least 71.25em wide, showcase figures within the main body or interactive main column have a left margin of -160 pixels. On screens at least 81.25em wide, the rule continues but is cut off.figure.element.element–showcase.element-showcase, [data-gu-name=body] .content__main-column–interactive figure.element.element–showcase.element-showcase { margin-left: -240px !important; }

@media (min-width: 61.25em) {
.furniture-wrapper {
display: grid;
grid-column-gap: 20px;
grid-row-gap: 0px;
grid-template-columns: [title-start headline-start meta-start standfirst-start] repeat(5, 1fr) [title-end headline-end meta-end standfirst-end portrait-start] repeat(5, 1fr) [portrait-end];
grid-template-rows: [title-start portrait-start] .25fr [title-end headline-start] 1fr [headline-end standfirst-start] .75fr [standfirst-end meta-start] auto [meta-end portrait-end];
}

.furniture-wrapper #headline > div:first-child,
.furniture-wrapper [data-gu-name=headline] > div:first-child,
.furniture-wrapper .headline > div:first-child {
border-top: 1px solid var(–headerBorder);
}

.furniture-wrapper #meta,
.furniture-wrapper [data-gu-name=meta] {
position: relative;
padding-top: 2px;
margin-right: 0;
}

.furniture-wrapper .standfirst .content__standfirst,
.furniture-wrapper #standfirst .content__standfirst,
.furniture-wrapper [data-gu-name=standfirst] .content__standfirst {
margin-bottom: 4px;
}

.furniture-wrapper .standfirst ul li,
.furniture-wrapper #standfirst ul li,
.furniture-wrapper [data-gu-name=standfirst] ul li {
font-size: 20px;
}

.furniture-wrapper .standfirst li a,
.furniture-wrapper .standfirst a,
.furniture-wrapper #standfirst li a,
.furniture-wrapper #standfirst a,
.furniture-wrapper [data-gu-name=standfirst] li a,
.furniture-wrapper [data-gu-name=standfirst] a {
border-bottom: none;
background-image: none !important;
text-decoration: underline;
text-underline-offset: 6px;
text-decoration-color: var(–headerBorder, #dcdcdc);
}

.furniture-wrapper .standfirst li a:hover,
.furniture-wrapper .standfirst a:hover,
.furniture-wrapper #standfirst li a:hover,
.furniture-wrapper #standfirst a:hover,
.furniture-wrapper [data-gu-name=standfirst] li a:hover,
.furniture-wrapper [data-gu-name=standfirst] a:hover {
text-decoration-color: var(–new-pillar-colour);
}

.furniture-wrapper .standfirst p:first-of-type,
.furniture-wrapper #standfirst p:first-of-type,
.furniture-wrapper [data-gu-name=standfirst] p:first-of-type {
border-top: 1px solid var(–headerBorder);
padding-bottom: 0;
}
}

@media (min-width: 61.25em) and (min-width: 71.25em) {
.furniture-wrapper .standfirst p:first-of-type,
.furniture-wrapper #standfirst p:first-of-type,
.furniture-wrapper [data-gu-name=standfirst] p:first-of-type {
border-top: unset;
}
}

@media (min-width: 61.25em) {
.furniture-wrapper figure {
margin: 0 0 0 -10px;
}

.furniture-wrapper figure[data-spacefinder-role=inline].element {
max-width: 630px;
}
}

@media (min-width: 71.25em) {
.furniture-wrapper {
grid-template-columns: [title-start headline-start meta-start] repeat(2, 1fr) [meta-end standfirst-start] repeat(5, 1fr) [title-end headline-end standfirst-end portrait-start] repeat(7, 1fr) [portrait-end];
grid-template-rows: [title-start portrait-start] 80px [title-end headline-start] auto [headline-end standfirst-start meta-start] auto [standfirst-end meta-end portrait-end];
}

.furniture-wrapper #meta:before,
.furniture-wrapper [data-gu-name=meta]:before {
content: “”;
width: 540px;
position: absolute;
top: 0;
background-color: var(–headerBorder);
height: 1px;
}

.furniture-wrapper .standfirst p,
.furniture-wrapper #standfirst p,
.furniture-wrapper [data-gu-name=standfirst] p {
border-top: unset;
}

.furniture-wrapper .standfirst:before,
.furniture-wrapper #standfirst:before,
.furniture-wrapper [data-gu-name=standfirst]:before {
content: “”;
width: 1px;
background-color: var(–headerBorder);
height: 100%;
position: absolute;
top: 0;
left: .5px;
}
}

@media (min-width: 81.25em) {
.furniture-wrapper {
grid-template-columns: [title-start headline-start meta-start] repeat(3, 1fr) [meta-end standfirst-start] repeat(5, 1fr) [title-end headline-end standfirst-end portrait-start] repeat(8, 1fr) [portrait-end];
grid-template-rows: [title-start portrait-start] .25fr [title-end headline-start] 1fr [headline-end standfirst-start meta-start] .75fr [standfirst-end meta-end portrait-end];
}

.furniture-wrapper #meta:before,
.furniture-wrapper [data-gu-name=meta]:before {
width: 620px;
}

.furniture-wrapper .standfirst:before,
.furniturThe standfirst text is positioned slightly to the left with some padding, and on wider screens it gets a small top padding. The paragraph inside it uses a regular weight, 20px font size, and has 14px of bottom padding.

The main media area is set relative to its container with no top margin and a 2px bottom margin, placed in the portrait grid area. On larger screens the bottom margin is removed. On smaller screens it stretches to the full viewport width and shifts left by 10px, or 20px on slightly wider small screens.

Figcaptions are absolutely positioned at the bottom with padding and a background and text color from variables. They have a minimum height of 46px and no bottom margin. Inside, the first span is hidden and the second is shown with a max width of 90%. On wider screens the padding increases. A hidden class sets opacity to zero.

The caption button is displayed as a block, absolutely positioned at the bottom right, with a circular background, no border, and some padding. Its SVG is scaled down slightly. On wider screens it shifts right a bit more.

For interactive main columns on very wide screens, a pseudo-element is repositioned and resized. Headings inside interactive main columns have a max width of 620px.

When the root element contains iOS or Android classes, dark background and feature colors are defined, including a dark mode feature color and a new pillar color that falls back to the primary pillar or feature color. In dark mode, the new pillar color falls back to a dark mode pillar or dark mode feature color.

For iOS feature article containers, the first element atom followed by a paragraph is targeted.For iOS and Android devices, the first letter of the first paragraph in feature, standard, and comment article containers—whether or not it follows a sign-in gate—will be colored using the secondary pillar color, defaulting to black.

On iOS and Android, the article header in feature, standard, and comment containers will have zero height.

On iOS and Android, the furniture wrapper in feature, standard, and comment containers will have padding of 4px top, 10px left and right, and 0 bottom.

On iOS and Android, the content labels inside the furniture wrapper in feature, standard, and comment containers will use bold weight, the Guardian Headline font family with Georgia and serif fallbacks, the new pillar color, and capitalized text.

On iOS and Android, the main headline inside the furniture wrapper in feature, standard, and comment containers will be 32px, bold, with 12px bottom padding, and colored #121212 with important priority.

On iOS and Android, the figure element image inside the furniture wrapper in feature, standard, and comment containers will be styled as follows:figure.element-image{position:relative;margin:14px 0 0 -10px;width:calc(100vw – var(–scrollbar-width, 0px));height:auto}body.ios #feature-article-container .furniture-wrapper figure.element-image .figure__inner,body.ios #feature-article-container .furniture-wrapper figure.element-image img,body.ios #feature-article-container .furniture-wrapper figure.element-image a,body.ios #standard-article-container .furniture-wrapper figure.element-image .figure__inner,body.ios #standard-article-container .furniture-wrapper figure.element-image img,body.ios #standard-article-container .furniture-wrapper figure.element-image a,body.ios #comment-article-container .furniture-wrapper figure.element-image .figure__inner,body.ios #comment-article-container .furniture-wrapper figure.element-image img,body.ios #comment-article-container .furniture-wrapper figure.element-image a,body.android #feature-article-container .furniture-wrapper figure.element-image .figure__inner,body.android #feature-article-container .furniture-wrapper figure.element-image img,body.android #feature-article-container .furniture-wrapper figure.element-image a,body.android #standard-article-container .furniture-wrapper figure.element-image .figure__inner,body.android #standard-article-container .furniture-wrapper figure.element-image img,body.android #standard-article-container .furniture-wrapper figure.element-image a,body.android #comment-article-container .furniture-wrapper figure.element-image .figure__inner,body.android #comment-article-container .furniture-wrapper figure.element-image img,body.android #comment-article-container .furniture-wrapper figure.element-image a{background-color:transparent;width:calc(100vw – var(–scrollbar-width, 0px));height:auto!important}body.ios #feature-article-container .furniture-wrapper .standfirst,body.ios #standard-article-container .furniture-wrapper .standfirst,body.ios #comment-article-container .furniture-wrapper .standfirst,body.android #feature-article-container .furniture-wrapper .standfirst,body.android #standard-article-container .furniture-wrapper .standfirst,body.android #comment-article-container .furniture-wrapper .standfirst{padding-top:4px;padding-bottom:24px;margin-right:-10px}body.ios #feature-article-container .furniture-wrapper .standfirst__inner p,body.ios #standard-article-container .furniture-wrapper .standfirst__inner p,body.ios #comment-article-container .furniture-wrapper .standfirst__inner p,body.android #feature-article-container .furniture-wrapper .standfirst__inner p,body.android #standard-article-container .furniture-wrapper .standfirst__inner p,body.android #comment-article-container .furniture-wrapper .standfirst__inner p{font-family:Guardian Headline,Guardian Egyptian Web,Guardian Headline Full,Georgia,serif}body.ios #feature-article-container .furniture-wrapper .standfirst__inner li a,body.ios #feature-article-container .furniture-wrapper .standfirst__inner a,body.ios #standard-article-container .furniture-wrapper .standfirst__inner li a,body.ios #standard-article-container .furniture-wrapper .standfirst__inner a,body.ios #comment-article-container .furniture-wrapper .standfirst__inner li a,body.ios #comment-article-container .furniture-wrapper .standfirst__inner a,body.android #feature-article-container .furniture-wrapper .standfirst__inner li a,body.android #feature-article-container .furniture-wrapper .standfirst__inner a,body.android #standard-article-container .furniture-wrapper .standfirst__inner li a,body.android #standard-article-container .furniture-wrapper .standfirst__inner a,body.android #comment-article-container .furniture-wrapper .standfirst__inner li a,body.android #comment-article-container .furniture-wrapper .standfirst__inner a{color:var(–new-pillar-colour)!important;background-image:none!important;text-decoration:underline;text-underline-offset:6px;text-decoration-color:var(–headerBorder, #dcdcdc);border-bottom:none}body.ios #feature-article-container .furniture-wrapper .standfirst__inner li a:hover,body.ios #feature-article-container .furniture-wrapper .standfirst__inneOn iOS and Android devices, when you hover over links in the standfirst section of feature, standard, or comment article containers, the underline color changes to the new pillar colour. The meta section in these article containers has no margin. The byline, byline author, author links, and byline spans within the meta section are all colored with the new pillar colour. The meta misc section has no padding.For .meta__misc svg, set the stroke to var(–new-pillar-colour). On iOS and Android devices, for the feature, standard, and comment article containers, the caption button inside the furniture wrapper of the showcase element should be displayed as a flex container, centered both horizontally and vertically, with 5px padding, a width and height of 28px, and positioned 14px from the right. Also on iOS and Android, the article body in these containers should have 0 12px padding. For image figures in the article body that are not thumbnails or immersive, set margin to 0, width to calc(100vw – 24px – var(–scrollbar-width, 0px)), and height to auto; their figcaptions should have no padding. For immersive image figures, set width to calc(100vw – var(–scrollbar-width, 0px)). In the prose section of the article body, the before pseudo-element of quoted blockquotes should use var(–new-pillar-colour) for its color, and links should follow the specified styles.In article containers, links within the article body have no background image, are underlined with a color offset of 6px, and use the primary pillar color for text and the header border color for the underline. On iOS and Android, when hovering over these links, the underline color changes to the new pillar color. In dark mode, the furniture wrapper background becomes #1a1a1a. The content labels use the new pillar color. The main headline has no background color and uses the header border color. The standfirst paragraphs use the header border color. Links in the standfirst, as well as the byline author and its links, use the new pillar color. The meta miscellaneous SVG elements also follow this styling.When the body has the class “ios” or “android”, SVG icons inside the meta section of the furniture wrapper within the feature, standard, or comment article containers are stroked with the new pillar colour. Captions for showcase images in the same containers are coloured with the dateline colour. Quoted blockquotes in the article body prose use the new pillar colour. The main article body, interactive content, feature body, comment body, and any element with the data attribute “gu-name” set to “body” within those containers get the dark background colour applied with priority. Additionally, the first letter of the first paragraph following an atom element, a sign-in gate, or an element with the ID “sign-in-gate” inside those body containers is styled.This CSS selector targets the first letter of paragraphs that follow specific elements (like `.element-atom`, `.sign-in-gate`, or `#sign-in-gate`) within various article and comment containers, applying different styles depending on whether the device is iOS or Android.On Android devices, the first letter of paragraphs following certain elements—such as `.element-atom`, `.sign-in-gate`, or `#sign-in-gate`—within various article containers (including `#feature-article-container`, `#standard-article-container`, and `#comment-article-container`) and their sub-sections (`#article-body`, `.content–interactive`, `#feature-body`, `[data-gu-name=body]`, `#comment-body`) will be colored using the `–new-pillar-colour` variable, defaulting to white.

For comment-type articles on both iOS and Android, the `.standfirst` inside `.furniture-wrapper` within `#comment-article-container` has a top padding of 24px and no top margin.

Headings (`h2`) within `.prose` have a font size of 24px.

On iOS, the `#caption-button` inside `#feature-article-container`, `#standard-article-container`, or `#comment-article-container` has padding of 6px top, 5px left and right, and 0 bottom.The caption button in the feature, standard, and comment article containers on Android devices has 4px padding on the top and sides.

When dark mode is enabled, the following colors are applied: follow text becomes light gray (#dcdcdc), the follow icon fill uses the dark mode pillar color, standfirst text becomes light gray, and both standfirst link text and its border use the dark mode pillar color. The byline also uses the dark mode pillar color.

On iOS and Android, the content labels and headline in the furniture wrapper for feature, standard, and comment article containers all use a font weight of 500. The same applies to the headline and standfirst paragraphs in the furniture wrapper.

The page background uses a light pink color (#fff4f2) for the weekend essay, and the article section and sub-meta backgrounds match this color.

The lines element is hidden.

The furniture wrapper is positioned relatively. On screens at least 81.25em wide, it uses a grid layout with three rows: the first row holds the title and portrait, the second holds the headline, and the third holds the standfirst and meta information.

The article header and title elements are 70px tall. The content labels inside them inherit this height. A decorative book icon (70x70px, or 110x110px on wider screens) is positioned at the bottom right using a GIF background image.

Inside the content labels, a horizontal divider line is drawn at the bottom, spanning the viewport width minus the scrollbar. On screens at least 46.25em wide, it extends 20px to the left and is 738px wide. On screens at least 61.25em wide, this divider is hidden.

The article header and title height increases to 80px on screens at least 71.25em wide, and to 125px on screens at least 81.25em wide.

On screens at least 81.25em wide, the headline gets a margin-top of -2px..furniture-wrapper .headline > div > div { padding-bottom: 0; }

.furniture-wrapper #headline .portrait-mainmedia__headline-wrapper,
.furniture-wrapper [data-gu-name=”headline”] .portrait-mainmedia__headline-wrapper,
.furniture-wrapper .headline .portrait-mainmedia__headline-wrapper {
height: 100%;
position: relative;
overflow: hidden;
padding-bottom: 24px;
}

.furniture-wrapper #headline .portrait-mainmedia__headline-wrapper h1,
.furniture-wrapper #headline .portrait-mainmedia__headline-wrapper a,
.furniture-wrapper [data-gu-name=”headline”] .portrait-mainmedia__headline-wrapper h1,
.furniture-wrapper [data-gu-name=”headline”] .portrait-mainmedia__headline-wrapper a,
.furniture-wrapper .headline .portrait-mainmedia__headline-wrapper h1,
.furniture-wrapper .headline .portrait-mainmedia__headline-wrapper a {
max-width: unset;
}

.furniture-wrapper #headline .portrait-mainmedia__headline-wrapper h1:hover,
.furniture-wrapper #headline .portrait-mainmedia__headline-wrapper a:hover,
.furniture-wrapper [data-gu-name=”headline”] .portrait-mainmedia__headline-wrapper h1:hover,
.furniture-wrapper [data-gu-name=”headline”] .portrait-mainmedia__headline-wrapper a:hover,
.furniture-wrapper .headline .portrait-mainmedia__headline-wrapper h1:hover,
.furniture-wrapper .headline .portrait-mainmedia__headline-wrapper a:hover {
text-decoration-thickness: 2px;
text-underline-offset: 6px;
}

.furniture-wrapper #headline .portrait-mainmedia__headline-wrapper h1,
.furniture-wrapper #headline .portrait-mainmedia__headline-wrapper a,
.furniture-wrapper #headline .portrait-mainmedia__headline-wrapper .byline span,
.furniture-wrapper [data-gu-name=”headline”] .portrait-mainmedia__headline-wrapper h1,
.furniture-wrapper [data-gu-name=”headline”] .portrait-mainmedia__headline-wrapper a,
.furniture-wrapper [data-gu-name=”headline”] .portrait-mainmedia__headline-wrapper .byline span,
.furniture-wrapper .headline .portrait-mainmedia__headline-wrapper h1,
.furniture-wrapper .headline .portrait-mainmedia__headline-wrapper a,
.furniture-wrapper .headline .portrait-mainmedia__headline-wrapper .byline span {
line-height: 115%;
font-weight: 500;
font-size: 36px;
}

@media (min-width: 71.25em) {
.furniture-wrapper #headline .portrait-mainmedia__headline-wrapper h1,
.furniture-wrapper #headline .portrait-mainmedia__headline-wrapper a,
.furniture-wrapper #headline .portrait-mainmedia__headline-wrapper .byline span,
.furniture-wrapper [data-gu-name=”headline”] .portrait-mainmedia__headline-wrapper h1,
.furniture-wrapper [data-gu-name=”headline”] .portrait-mainmedia__headline-wrapper a,
.furniture-wrapper [data-gu-name=”headline”] .portrait-mainmedia__headline-wrapper .byline span,
.furniture-wrapper .headline .portrait-mainmedia__headline-wrapper h1,
.furniture-wrapper .headline .portrait-mainmedia__headline-wrapper a,
.furniture-wrapper .headline .portrait-mainmedia__headline-wrapper .byline span {
font-size: 50px;
}
}

.furniture-wrapper .standfirst,
.furniture-wrapper #standfirst,
.furniture-wrapper [data-gu-name=”standfirst”] {
position: relative;
padding-top: 4px;
}

@media (min-width: 61.25em) {
.furniture-wrapper .standfirst,
.furniture-wrapper #standfirst,
.furniture-wrapper [data-gu-name=”standfirst”] {
padding-top: 0;
}
}

@media (min-width: 71.25em) {
.furniture-wrapper .standfirst,
.furniture-wrapper #standfirst,
.furniture-wrapper [data-gu-name=”standfirst”] {
padding-top: 2px;
}
}

.furniture-wrapper #meta .content__meta-container_dcr gu-island[name=”Branding”],
.furniture-wrapper [data-gu-name=”meta”] .content__meta-container_dcr gu-island[name=”Branding”] {
display: block;
}

.furniture-wrapper #main-media,
.furniture-wrapper [data-gu-name=”media”] {
position: relative;
}

@media (min-width: 61.25em) {
.furniture-wrapper #main-media,
.furniture-wrapper [data-gu-name=”media”] {
grid-area: portrait;
}
}

.furniture-wrapper #main-media > div,
.furniture-wrapper [data-gu-name=”media”] > div {
position: relative;
}

.furniture-wrapper #main-media div + span,
.furniture-wrapper [data-gu-name=”media”] div + span {
display: block;
}

.furniture-wrapper #main-media figure,
.furniture-wrapper [data-gu-name=”media”] figure {
height: 100%;
margin-left: 10px;
}

.furniture-wrapper #main-media figure picture img,
.furniture-wrapper #main-media figure figcaption,
.furniture-The media figure and caption inside the wrapper are set to fill the viewport width minus 40px and any scrollbar, with automatic height, a 10px left margin, and 10px vertical padding. Inside the main media area, the figure caption has a 10px bottom margin and 10px padding. The figure also gets a decorative frame: a centered, contained background image positioned absolutely at the top, spanning the viewport width minus 20px and any scrollbar, with a 10px left offset and inherited height.

For cinemagraph figures, the first inner div has a transparent background. The video is 92% wide with a 16px top margin and 8px side margins, while the caption is 93% wide with a 2px left margin and 12px bottom margin.

At viewport widths of 23.4375em and up, the cinemagraph video becomes 94% wide, and the caption becomes 91% wide with a 9px left margin and 12px bottom margin.

At 46.25em and up, the figure loses its left margin. The picture image becomes 670px wide with automatic height, a 5px left margin, and 15px top/bottom and 10px side padding. The decorative frame becomes 700px wide and shifts 10px to the left. The caption becomes 650px wide with a 15px left margin, 15px bottom margin, and 15px top/bottom and 10px side padding. The cinemagraph video becomes 96% wide with an 18px top margin and 6px side margins, and its caption becomes 96% wide with a 6px left margin and 17px bottom margin.

At 61.25em and up, the decorative frame becomes 470px wide. The picture image and caption both become 450px wide with no left margin. The picture image padding becomes 10px top/bottom and 0 side. The caption bottom margin becomes 10px. The cinemagraph video gets a 10px top margin and 6px side margins, and its caption gets a 6px left margin and 12px bottom margin.

At 71.25em and up, the decorative frame becomes 550px wide. The picture image becomes 520px wide with a 5px left margin and 10px top/bottom and 5px side padding. The caption becomes 510px wide with a 10px left margin and 10px bottom margin. The cinemagraph video gets a 12px top margin and 6px side margins, and its caption…The caption for the furniture wrapper’s media figure has a left margin of 6px and a bottom margin of 15px.

On screens at least 81.25em wide, the main media figure and the media figure in the furniture wrapper get a before element that is 630px wide. Their picture images are 600px wide with 15px of padding above and below. Their captions are 600px wide with a 5px left margin and a 15px bottom margin. For cinemagraph figures, the video has a top margin of 16px and side margins of 8px, and the caption has an 8px left margin.

The caption button in the main media and media wrapper is positioned 15px from the right and 20px from the bottom. On screens at least 46.25em wide, it moves to 45px from the right and 30px from the bottom. On screens at least 61.25em wide, it goes back to 15px from the right and 20px from the bottom. On screens at least 71.25em wide, it is 20px from the right. On screens at least 81.25em wide, it is 30px from the bottom.

When the main media or media wrapper contains a cinemagraph, the caption button is 20px from the right. On screens at least 46.25em wide, it is 35px from the right and 25px from the bottom. On screens at least 61.25em wide, it is 25px from the right and 20px from the bottom. On screens at least 71.25em wide, it is 25px from the bottom.

The no-media div in the main media and media wrapper uses flexbox to center its content, taking up the full width. Its paragraph text is 24px, weight 500, with 115% line height, colored with the byline anchor variable, bold, underlined, and displayed as a block.

On screens at least 71.25em wide, the interactive main column has no left margin, and its before element is hidden.

An aside in the interactive main column with a supporting spacefinder role that contains a blockquote gets a background color of #fff4f2, or the weekend essay background variable if set.

The first paragraph’s first letter in the interactive main column has a font weight of 300. The first letter of the first paragraph after an hr, after a progress bar wrapper, or in a drop-cap paragraph uses the Guardian Headline font family with a weight of 300, a font size of 111px, a line height of 92px, uppercase text, floated left, with an 8px right margin, aligned to the top of the text, box-sizing border-box, and colored with the drop-cap or new pillar colour variable.

H2 headings in the interactive main column are colored #8d2700, with a font size of 28px, normal style, weight 300, normal line height, and an 8px bottom margin. On screens at least 71.25em wide, the font size is 32px. If the h2 contains a strong element, the font weight is 500.

A figure in the interactive main column that contains an iframe gets a background color of #fff4f2, or the weekend essay background variable if set.

On screens at least 71.25em wide, the figcaption of a figure with the element-showcase class in the interactive main column is positioned absolutely.[data-rendering-target=apps] .meta__byline gu-island[name=FollowWrapper], [data-rendering-target=apps] [data-component=meta-byline] gu-island[name=FollowWrapper], [data-app-os=ios] .meta__byline gu-island[name=FollowWrapper], [data-app-os=ios] [data-component=meta-byline] gu-island[name=FollowWrapper], [data-app-os=android] .meta__byline gu-island[name=FollowWrapper], [data-app-os=android] [data-component=meta-byline] gu-island[name=FollowWrapper] { display: block; margin-top: 10px; }

[data-rendering-target=apps] .meta__byline gu-island[name=FollowWrapper] span, [data-rendering-target=apps] [data-component=meta-byline] gu-island[name=FollowWrapper] span, [data-app-os=ios] .meta__byline gu-island[name=FollowWrapper] span, [data-app-os=ios] [data-component=meta-byline] gu-island[name=FollowWrapper] span, [data-app-os=android] .meta__byline gu-island[name=FollowWrapper] span, [data-app-os=android] [data-component=meta-byline] gu-island[name=FollowWrapper] span { font-size: 14px !important; }

[data-rendering-target=apps] #main-media div, [data-rendering-target=apps] #main-media figure, [data-rendering-target=apps] #main-media picture, [data-rendering-target=apps] [data-gu-name=media] div, [data-rendering-target=apps] [data-gu-name=media] figure, [data-rendering-target=apps] [data-gu-name=media] picture, [data-app-os=ios] #main-media div, [data-app-os=ios] #main-media figure, [data-app-os=ios] #main-media picture, [data-app-os=ios] [data-gu-name=media] div, [data-app-os=ios] [data-gu-name=media] figure, [data-app-os=ios] [data-gu-name=media] picture, [data-app-os=android] #main-media div, [data-app-os=android] #main-media figure, [data-app-os=android] #main-media picture, [data-app-os=android] [data-gu-name=media] div, [data-app-os=android] [data-gu-name=media] figure, [data-app-os=android] [data-gu-name=media] picture { width: -moz-fit-content; width: fit-content; }

@media (prefers-color-scheme: dark) {
[data-rendering-target=apps] body, [data-app-os=ios] body, [data-app-os=android] body {
–article-section-background: #1a1a1a;
–weekend-essay-bg: #1a1a1a;
}

[data-rendering-target=apps] .furniture-wrapper .article-header:after, [data-rendering-target=apps] .furniture-wrapper [data-gu-name=title] .content__labels:after, [data-app-os=ios] .furniture-wrapper .article-header:after, [data-app-os=ios] .furniture-wrapper [data-gu-name=title] .content__labels:after, [data-app-os=android] .furniture-wrapper .article-header:after, [data-app-os=android] .furniture-wrapper [data-gu-name=title] .content__labels:after {
background-image: url(https://interactive.guim.co.uk/atoms/2025/04/2025-weekend-essay-test/assets/v/1784045269/book-white.gif);
}

[data-rendering-target=apps] .furniture-wrapper .meta__byline gu-island[name=FollowWrapper] svg path, [data-rendering-target=apps] .furniture-wrapper [data-component=meta-byline] gu-island[name=FollowWrapper] svg path, [data-app-os=ios] .furniture-wrapper .meta__byline gu-island[name=FollowWrapper] svg path, [data-app-os=ios] .furniture-wrapper [data-component=meta-byline] gu-island[name=FollowWrapper] svg path, [data-app-os=android] .furniture-wrapper .meta__byline gu-island[name=FollowWrapper] svg path, [data-app-os=android] .furniture-wrapper [data-component=meta-byline] gu-island[name=FollowWrapper] svg path {
fill: var(–byline-anchor, #ffffff) !important;
}

[data-rendering-target=apps] .furniture-wrapper #main-media figure:before, [data-rendering-target=apps] .furniture-wrapper [data-gu-name=media] figure:before, [data-app-os=ios] .furniture-wrapper #main-media figure:before, [data-app-os=ios] .furniture-wrapper [data-gu-name=media] figure:before, [data-app-os=android] .furniture-wrapper #main-media figure:before, [data-app-os=android] .furniture-wrapper [data-gu-name=media] figure:before {
background-image: url(https://interactive.guim.co.uk/atoms/2025/04/2025-weekend-essay-test/assets/v/1784045269/frame-white.png) !important;
}
}

body.ios, body.android {
background-color: #fff;
}

body.ios #feature-article-container .furniture-wrapper .content__labels, body.ios #standard-article-container .furniture-wrapper .content__labels, body.ios #comment-article-container .furniture-wrapper .content__labels, body.andThe labels in the furniture wrapper of the feature, standard, and comment article containers on Android and iOS devices should use a font weight of 500. On iOS and Android devices, when the light color scheme is preferred, the background color should be set to the weekend essay background color, defaulting to #fff4f2. For iOS and Android devices, the opinion primary color, byline anchor, and primary pillar should all be set to #c74600. When the dark color scheme is preferred, the weekend essay background should be #1a1a1a and the opinion primary color should be #ff7f0f. Also in dark mode, the article body and tags of opinion pillar articles that are not media type on iOS should have no background color. The feature, standard, and comment article containers on iOS and Android should have a background color of the weekend essay background, defaulting to #fff4f2. On screens at least 61.25em wide, the furniture wrapper in these containers on iOS and Android should use a grid layout with a 20px column gap, no row gap, and specific grid template columns and rows. The title and gif wrapper inside the furniture wrapper should be a flex container with row direction, no wrapping, space-between justification, and relative positioning. The content labels inside the title and gif wrapper should have a font size of 17px, normal style, font weight of 700, and line height of 115%.On Android, links in the content labels of the feature, standard, and comment article containers use the new pillar colour, defaulting to #c74600, and are not forced to uppercase. On iOS and Android, the GIF containers and their images in the title-and-gif wrappers of those article containers are set to 70 by 70 pixels. GIF containers with the book-gif-white class, and any images inside them, are hidden on both iOS and Android. When the device is set to dark mode, the book-gif containers and their images on iOS and Android are affected by the following rules.On iOS and Android devices, hide the book GIF in the title and GIF wrapper of the furniture wrapper inside the feature, standard, and comment article containers.

On iOS and Android devices, show the white book GIF in the title and GIF wrapper of the furniture wrapper inside the feature, standard, and comment article containers.

On iOS and Android devices, add a horizontal line after the title and GIF wrapper in the furniture wrapper inside the feature, standard, and comment article containers. This line should be 100vw wide, 1px tall, colored #dcdcdc, positioned absolutely at the bottom and 10px from the left.

On screens at least 61.25em wide, on iOS and Android devices, place the title and GIF wrapper in the title grid area of the furniture wrapper inside the feature, standard, and comment article containers. The horizontal line after it should be 50vw wide.

In dark mode, on iOS and Android devices, change the horizontal line after the title and GIF wrapper in the furniture wrapper inside the feature, standard, and comment article containers to #606060.

On screens at least 61.25em wide, on iOS and Android devices, apply styles to the portrait main media headline wrapper in the furniture wrapper inside the feature, standard, and comment article containers.On Android devices, the headline area for feature, standard, and comment article containers is set to the headline grid area. On iOS and Android devices, the headline, byline, and byline links for feature, standard, and comment article containers use a font size of 36px, normal style, medium weight, and 115% line height. On iOS and Android devices, the byline and byline links for feature, standard, and comment article containers use the color defined by the new pillar color variable, defaulting to #c70000. In dark mode, the same byline and byline link styles apply on iOS devices.On iOS and Android, for the feature, standard, and comment article containers, the byline text and links inside the furniture wrapper are set to the new pillar color (#c74600) with important priority. On both iOS and Android, the avatar in the byline is hidden. The headline has no bottom margin or padding. The byline is italicized, but the author name inside it is not. The main media area has automatic height, a 4:5 aspect ratio, and a transparent background. The figure element inside it takes full height and has no left margin.For iOS and Android devices, the main media figure inside the furniture wrapper of the feature, standard, and comment article containers should have its inner element positioned relative to the top left. The inner element should have a transparent background, visible overflow, and no padding. Images inside the figure or its inner element should be as wide as the viewport minus 40 pixels, with a 20-pixel left margin and a 25-pixel top margin. On iOS and Android, images inside the inner element should have a 13-pixel top margin. The figure caption should have automatic height. On iOS, the caption’s paragraphs and spans should also follow this styling.On iOS and Android devices, within the feature, standard, and comment article containers, the caption text inside the main media figure is displayed as a block element with no maximum height, positioned relatively, and colored using the caption text variable (defaulting to #999).

On screens at least 46.25em wide, the main media figure in these article containers is allowed to exceed its normal maximum width. A pseudo-element before the figure is positioned 10px from the left with a width calculated as the full viewport width minus 20px. Images inside the figure are sized to the viewport width minus 60px, with a 30px left margin and a 40px top margin.

On screens at least 61.25em wide, the pseudo-element before the figure is instead sized to half the viewport width minus 20px and any scrollbar width.The image inside the main media figure within the furniture wrapper of the feature, standard, or comment article containers on iOS and Android devices should be sized to half the viewport width minus 40 pixels and any scrollbar width, with an 18-pixel left margin, automatic height, no padding, and a 10-pixel top margin.

On screens at least 71.25em wide, the same figure’s pseudo-element should be shifted up by 4 pixels.

On screens at least 81.25em wide, that pseudo-element should move 20 pixels to the left, and the image should be sized to half the viewport width minus 90 pixels and any scrollbar width, with a 12-pixel left margin, automatic height, a -10-pixel top margin, and 21 pixels of top padding.

In dark mode, the pseudo-element should use a white frame background image.

When the figure is the first image, its pseudo-element should span the full viewport width minus 20 pixels and any scrollbar width, positioned at the left edge.This CSS code adjusts the layout of the first image in an article for iOS and Android devices. On smaller screens, the image takes up nearly the full viewport width with some padding. On medium screens (at least 61.25em wide), the image width is set to about half the viewport, with adjusted margins and padding. On larger screens (at least 81.25em wide), the width is slightly reduced further, and the image is shifted upward. The figure containing the image is also constrained to a maximum width of 620px on medium screens and above, with a pseudo-element positioned to the left. Additionally, on screens at least 46.25em wide, a caption button is styled for these devices.On iOS and Android devices, for feature, standard, and comment article containers, the caption button inside the main media furniture wrapper is positioned 45px from the bottom.

On screens at least 61.25em wide, on iOS and Android, the main media furniture wrapper in feature, standard, and comment article containers uses the portrait grid area, has a maximum width of 620px, and its height adjusts automatically.

On iOS and Android, the figure element inside the furniture wrapper in feature, standard, and comment article containers is positioned relatively with no top margin. Its inner figure is absolutely positioned 15px from the top and 20px from the left, with a width equal to the viewport width minus 40px and automatic height. Images inside fill the space with object-fit cover. The caption button sits 24px from the right and 20px from the bottom.

On screens at least 46.25em wide, the inner figure becomes 680px wide with automatic height, positioned 10px from the top and 10px from the left. The caption button positioning remains the same.At the bottom: 25px. For screens at least 61.25em wide, on iOS and Android devices, figures inside the furniture wrapper of the feature, standard, and comment article containers are set to a width of 50vw minus 20px minus the scrollbar width (defaulting to 0px). On those same devices and containers, the standfirst has no top margin, 8px top padding, and 10px right padding. Its before pseudo-element is hidden. Text inside the standfirst—paragraphs, links, and list items—is 20px, normal style, medium weight, 115% line height, with no bottom padding. At the same wide breakpoint, the standfirst is placed in the standfirst grid area. The meta section has no top padding.For iOS and Android devices, the published metadata within the furniture wrapper of the feature, standard, and comment article containers is set to a relative position. On iOS and Android, this published metadata gets a pseudo-element that is a full viewport width, 1 pixel tall, light gray line positioned at the bottom and shifted 10 pixels to the left. On screens at least 61.25em wide, the metadata block in these containers is assigned to the meta grid area and displayed as a block, and the pseudo-element line becomes 50vw wide. On screens at least 81.25em wide, the miscellaneous metadata within the meta block has its left margin removed. In dark mode, the pseudo-element line changes to a dark gray color. Also, on iOS and Android, the meta and keyline elements within the furniture wrapper of these article containers have their before pseudo-elements hidden.On iOS and Android, hide the furniture-wrapper aside.element-rich-link in the feature, standard, and comment article containers. Also hide the comment-header cutout-container in those same containers. Set the article-body and feature-body background color to var(–weekend-essay-bg, #fff4f2) with a 6px top margin. Style horizontal rules in article-body and feature-body as 1px tall, no border, 3px bottom margin, #dcdcdc background, 150px wide, left-aligned, with a 48px top margin. Apply drop caps to the first letter of the first paragraph without a span, or the first paragraph after a horizontal rule, in article-body and feature-body: use Guardian Headline, Guardian Egyptian Web, Guardian Headline Full, Georgia, serif; font-weight 300; font-size 111px; line-height 92px; float left; uppercase; box-sizing border-box; 8px right margin; vertical-align text-top; color var(–drop-cap, var(–secondary-pillar)). Make h2 elements containing strong, or strong/b inside .prose h2, font-weight 500. In dark mode, set horizontal rules in article-body and feature-body to #606060; set the drop cap color for the first paragraph after a horizontal rule to var(–new-pillar-colour, #ff5943); and remove text decoration from links inside paragraphs in article-body and feature-body. Set the drop cap font-weight to 500 for the first paragraph after the first element-atom inside a div in article-body and feature-body. Also set the drop cap font-weight to 500 for the first paragraph after an element-atom, or after an element-atom plus .sign-in-gate or #sign-in-gate, inside #comment-body or [data-gu-name=body].It is just past noon on a weekday, and every table at the Au Bon Accueil cafe-bistro in the northern Burgundy village of Saint-Martin-sur-Ouanne is already taken. Today’s three-course lunch menu—which includes a choice of a thick steak with chips or a hearty lasagne—costs just €18, but the villagers aren’t only there for the food. After being closed for eight months, the bistro, formerly called Café de la Gare, has recently reopened—and locals want it to stay that way.

“It’s so important to have a cafe-bistro in a village like this. We couldn’t let it stay closed,” said Nadia Letellier, the new manager. “And we’re doing well, as you can see. People seem really happy it’s open again.”

Hervé Chapuis, a farmer and the village mayor, is part of the local council team that saved Saint-Martin’s last public-facing business since the boulangerie across the road closed eight years ago. “People come here every morning to have a coffee and a chat,” he said. “Our aim is to keep this kind of business open to support the social fabric. It’s part of village life and people missed it. Now, village life has returned to its proper rhythm.”

France’s celebrated cafe-bistros are in trouble. In 1900 there were an estimated 500,000 such establishments; by the 1960s more than half had closed. Today, only about 30,000-40,000 remain, and even they are reportedly shutting at a rate of two a day.

Alain Fontaine, who runs Le Mesturet bistro near Paris’s stock exchange and is president of France’s Association of Bistros and Cafes, says the closures leave rural communities deserted and villagers, especially elderly people, isolated. “Every day, the art of living we enjoy in our bistros is gradually disappearing from our communities,” Fontaine said. “Villages are being left like deserts with no shops, no businesses, nothing. In losing our local bistros, cafes and restaurants, we are losing part of the French life balance.”

The reasons for the closures of what the 19th-century writer and statesman Léon Gambetta called “salons de la démocratie” or “people’s parliaments” are economic and sociological. The number of people living in rural areas has declined over the last half a century, television and devices encourage more people to spend their evenings at home, and the average French person now drinks about 80 litresPeople now drink about one litre of alcohol a year, compared with 200 litres in the 1960s. Finding people willing to run bars, cafes or bistros is also a problem, says Fontaine, who is campaigning for the government to submit these establishments to Unesco for intangible cultural heritage listing. She argues that this recognition would encourage more people to consider taking them on. “Without a cafe or bistro, communities are effectively deprived of any social life. We cannot resign ourselves to this trend,” he said. “In bistros and cafes, people don’t just eat and drink, they catch up with each other, meet new people, debate, laugh, read, write and sometimes fall in love. This is a way of life and an expression of freedom unique to France, something that tourists from all over the world come to seek out in Paris, in other major cities, and our villages.”

Customers in the Au Bon Accueil restaurant in Saint-Martin-sur-Ouanne. Photograph: Ed Alcock/The Guardian

Solène Joucla’s family have run the historic Le Grand Café at Camplong, in the Hérault near Montpellier, since 1898. When her father, Pierre, retired, she faced having to let it close or give up her job as a high-school English teacher. Instead, she and her sister, Katell, set up an association to run it. “We closed for three years after Covid, which was a difficult period, and opened in September last year. We wanted to find someone to take it over and run it, but it’s a small village of 220 people and it was complicated. Now we run it with volunteers,” Joucla said. “Our aim is to encourage people to go out so they are not isolated, and so we know how they are doing. People come here for a chat, to have a laugh, listen to music … we are the cultural centre of the village. My sister and I grew up in this bar and have plenty of memories here. We’re fighting to keep its place at the heart of the village, but it’s a daily challenge just to stay open. And not just for us; this is a battle that’s happening all over France.”

Customers at the bar of the Au Bon Accueil restaurant. Photograph: Ed Alcock/The Guardian

A report submitted to the French senate in 2023 suggested the government should ease regulations on small rural café-bistros, hotels and restaurants. It pointed out the negative impact of the widespread closure of such places on rural communities, concluding their presence contributed to “economic vitality and social cohesion”. The National Federation of Country Bistros says “rural bistros are unique as places for socialising, building community ties, exploring new experiences and fostering local cultural life. Often, these bistros are the only local service providers still operating in villages.” It adds: “Supporting the village bistro means helping to keep it alive, so the heart of our countryside continues to beat.”

A recent report by Oxford Economics examined the economic and social contribution of bars and pubs to communities in five markets, including the UK and US. It concluded they had “a central role … in bringing people together and supporting social connection”. In France, the 1,000 Cafés association was set up in 2020 to combat the “social fracture” highlighted by the gilets jaunes protest movement by helping communes of fewer than 3,500 people save their cafes or open new ones. It found more than 60% of people in rural villages had no local commerce, and this left many feeling abandoned and ignored. Camille Sebaux, the director of 1,000 Cafés, told France Info radio the association had worked in more than 300 communities, often helping cafes to diversify by stocking food essentials, or becoming drop-off points for online shopping deliveries. “Cafes have been closing in villages for the last 50 years, and we don’t have any magic wand or miracle answer,” Sebaux said. “Plus, running a village cafe is not an easy job. Our aim is to help small communities find solutions.”

People dining in a square in the village of Collobrières, in the Provence-Alpes-Côte d’Azur regiAurélien Pécot, mayor of the 14 villages and small towns—including Saint-Martin-sur-Ouanne—that make up the Charny-Orée-de-Puisaye commune in the Yonne department, ran a bistro for seven years before being elected this year. He believes such places are essential to rural communities.

“I noticed the same people would come in every morning at the same time, sit at the same table, and order the same coffee or a glass of white wine. The cafe-bistro was their anchor. If it disappears, there is nothing left for them,” he says.

His local authority owns five properties in the area—the Saint-Martin bistro, a restaurant, and three bakeries—and spent €25,000 on essential repairs at Au Bon Accueil before it reopened. Local officials also advised Letellier on setting up the business.

Pécot says many remember a time when almost every village had a bar, cafe, bistro, and bakery, but he says that is no longer realistic or economically viable in many cases.

“It’s taxpayers’ money we’re spending to save these places, so people need to see it’s being well spent. Not every village can have its own bistro,” he says.

Over an aperitif at Au Bon Accueil, Nicole Deviterne, mayor of a neighboring village with no cafe-bistro, said: “It’s an element of village life that’s extremely important. It’s a way of combating rural isolation, but there has to be a real willingness among local people and local councils to save these places, to bring villages back to life.”

Frequently Asked Questions
FAQs The Fight to Save Rural Frances Dying Village Bistro

1 What is a village bistro in France
Its a small casual local eatery and baroften the only one in a rural villagewhere people eat simple meals have a drink and socialize

2 Why are rural bistros disappearing
Fewer residents an aging population declining foot traffic rising costs and owners retiring without anyone to take over

3 Why does losing a bistro matter
Its often the last public meeting place Without it the village loses its social heart and remaining residents become more isolated

4 What counts as rural Frances dying heart
The phrase refers to the decline of small villages themselvesshrinking populations and shuttered local businesseswith the bistro as the most visible symbol

5 Are only bistros closing
No Bakeries small shops and post offices are closing too The bistro gets attention because its a social hub not just a business

6 Who is most affected when a bistro closes
Elderly residents people without cars and anyone who relied on it for daily contact and a cheap hot meal

7 Is this a new problem
No Rural decline has been building for decades but the closures have accelerated since the 2000s

8 What usually kills a bistro first
Not enough regular customers Costs are fixed so even a small drop in daily traffic can make it unviable

9 What are the main financial problems
Thin margins high labor and energy costs expensive renovations and difficulty getting loans for a business seen as risky

10 Why is succession such a big issue
Many owners are near retirement and their children dont want the long hours Without a buyer the bistro just closes

11 What are communes and how do they help
A commune is the smallest French administrative unitbasically a village and its surrounding area Some buy or subsidize the bistro to keep it open

12 How can a village save its bistro
Options include turning it into a cooperative getting municipal support diversifying or attracting a new owner with incentives