/* ==========================================================================
   Mise en page « bistrot » — éditoriale, la carte au premier plan
   ========================================================================== */
.b-hero{padding:3.5rem 0 2.5rem;position:relative;overflow:hidden}
.b-hero::before{content:"";position:absolute;inset:-30% -10% auto auto;width:60vw;height:60vw;max-width:720px;max-height:720px;border-radius:50%;background:radial-gradient(closest-side,rgba(var(--accent-rgb,201,168,76),.22),transparent 70%);pointer-events:none}
.b-hero-grid{display:grid;gap:2.5rem;align-items:center;position:relative}
@media (min-width:900px){.b-hero-grid{grid-template-columns:1.15fr .85fr;gap:4rem}.b-hero{padding:5rem 0 3.5rem}}
.b-hero h1{max-width:14ch}
.b-hero .lead{max-width:46ch;color:var(--muted)}
.b-status{margin:1.4rem 0 0;font-size:.95rem}
.b-hero-visual{position:relative;display:flex;justify-content:center}
.b-ardoise{display:block;position:relative;transform:rotate(2deg);transition:transform .4s;max-width:420px;width:100%}
.b-ardoise:hover{transform:rotate(0) scale(1.02)}
.b-ardoise img{border-radius:var(--radius-lg);box-shadow:0 30px 60px -20px rgba(0,0,0,.6);border:8px solid var(--card);max-height:70vh;object-fit:cover;width:100%}
.b-tag{position:absolute;top:-14px;left:-14px;background:var(--accent);color:var(--on-accent);font-weight:800;padding:.45rem .9rem;border-radius:999px;font-size:.85rem;transform:rotate(-6deg);box-shadow:0 8px 20px rgba(0,0,0,.3);text-transform:uppercase;letter-spacing:.08em}
.b-photo{border-radius:var(--radius-lg);box-shadow:var(--shadow);aspect-ratio:4/5;object-fit:cover;width:100%;max-width:460px}

/* bandeau défilant */
.marquee{overflow:hidden;background:var(--accent);color:var(--on-accent);padding:.7rem 0;font-family:var(--font-display);font-size:1.15rem;font-weight:600;white-space:nowrap;border-block:1px solid rgba(0,0,0,.1)}
.marquee-track{display:inline-flex;gap:1.4rem;align-items:center;animation:marquee 45s linear infinite;padding-left:1rem}
.marquee i{font-style:normal;opacity:.6;font-size:.7em}
.marquee:hover .marquee-track{animation-play-state:paused}
@keyframes marquee{to{transform:translateX(-50%)}}

.widgets{display:grid;gap:1rem;grid-template-columns:1fr;margin-top:2.5rem}
@media (min-width:760px){.widgets{grid-template-columns:1fr 1fr 1.3fr}}

/* la carte sur l'accueil */
.b-carte{padding:4rem 0 1rem}
.b-carte-grid{display:grid;gap:1.2rem;grid-template-columns:1fr}
@media (min-width:700px){.b-carte-grid{grid-template-columns:repeat(2,1fr)}}
@media (min-width:1000px){.b-carte-grid{grid-template-columns:repeat(3,1fr)}}
.b-cat{background:var(--card);border:1px solid var(--line);border-radius:var(--radius-lg);padding:1.4rem 1.5rem;box-shadow:var(--shadow);position:relative;overflow:hidden}
.b-cat::after{content:"";position:absolute;left:0;top:0;bottom:0;width:4px;background:var(--accent)}
.b-cat h3{color:var(--accent);font-size:1.35rem;margin-bottom:.6rem}
.b-cat ul{list-style:none;margin:0;padding:0}
.b-cat li{display:flex;justify-content:space-between;gap:.8rem;padding:.4rem 0;border-bottom:1px dashed var(--line);font-size:.98rem}
.b-cat li:last-child{border-bottom:0}
.b-cat b{color:var(--accent-2);white-space:nowrap;font-variant-numeric:tabular-nums}
.b-note{margin:1.4rem 0 1rem;padding:.9rem 1.2rem;border-left:3px solid var(--accent);background:var(--bg-alt);border-radius:0 var(--radius) var(--radius) 0;font-weight:500}

/* étapes */
.b-steps{padding:4rem 0;background:var(--bg-alt);margin-top:3rem}
.steps{list-style:none;margin:0;padding:0;display:grid;gap:1.5rem;grid-template-columns:1fr;counter-reset:s}
@media (min-width:760px){.steps{grid-template-columns:repeat(3,1fr)}}
.steps li{position:relative;padding:1.6rem 1.6rem 1.6rem 1.6rem;background:var(--card);border-radius:var(--radius-lg);border:1px solid var(--line)}
.step-n{display:inline-grid;place-items:center;width:44px;height:44px;border-radius:50%;background:var(--accent);color:var(--on-accent);font-family:var(--font-display);font-weight:700;font-size:1.3rem;margin-bottom:.9rem}
.steps h3{margin-bottom:.3em}
.steps p{margin:0;color:var(--muted)}

/* à propos */
.b-about{display:grid;gap:2.5rem;padding:4rem 0 1rem;align-items:center}
@media (min-width:900px){.b-about{grid-template-columns:1.1fr .9fr;gap:4rem}}
.b-about-text p{font-size:1.08rem}
.atouts{list-style:none;margin:1.2rem 0 0;padding:0;display:flex;flex-wrap:wrap;gap:.6rem}
.atouts li{display:inline-flex;align-items:center;gap:.5rem;padding:.5rem .9rem;border:1px solid var(--line);border-radius:999px;background:var(--card);font-size:.92rem;font-weight:600}
.b-about-photos{position:relative;display:grid;grid-template-columns:repeat(3,1fr);gap:.6rem;align-items:end}
.b-about-photos img{border-radius:var(--radius);aspect-ratio:3/4;object-fit:cover;transform:rotate(var(--r));box-shadow:var(--shadow);border:5px solid var(--card);transition:transform .4s}
.b-about-photos img:nth-child(2){margin-bottom:2rem}
.b-about-photos img:hover{transform:rotate(0) scale(1.05);z-index:2}

/* galerie mosaïque */
.gal-masonry{columns:2;column-gap:.9rem}
@media (min-width:700px){.gal-masonry{columns:3}}
@media (min-width:1000px){.gal-masonry{columns:4}}
.gal-masonry .gal-item{break-inside:avoid;margin-bottom:.9rem}
.gal-masonry .gal-item img{aspect-ratio:auto}
.gal-masonry .gal-video{column-span:all}
