@import url('https://fonts.googleapis.com/css2?family=Cormorant+Garamond:wght@400;500;600&family=Jost:wght@300;400;500&display=swap');:root{--cream:#f7f3ed;--cream-2:#ede6da;--espresso:#2b1e18;--coffee:#4a382c;--gold:#b8985a;--gold-light:#d4bc8a;--sage:#7a8b6f;--sage-light:#a8b5a0;--white:#fff;--line:rgba(43,30,24,.14);--shadow:0 12px 32px rgba(43,30,24,.1);--font-serif:'Cormorant Garamond',serif;--font-sans:'Jost',sans-serif;--space:8px}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--cream);color:var(--espresso);font-family:var(--font-sans);font-weight:400;line-height:1.6}button,a,input,select{font:inherit}button{cursor:pointer}a{color:inherit;text-decoration:none}.app{--surface:var(--cream);--surface-alt:var(--cream-2);--ink:var(--espresso);--muted:rgba(43,30,24,.68);background:var(--surface);color:var(--ink);min-height:100vh;transition:background .4s,color .4s}.theme-dark{--surface:var(--espresso);--surface-alt:#3b2b23;--ink:var(--cream);--muted:rgba(247,243,237,.7);--line:rgba(247,243,237,.17)}

/* Header */
.site-header{align-items:center;background:color-mix(in srgb,var(--surface) 92%,transparent);backdrop-filter:blur(14px);border-bottom:1px solid var(--line);display:flex;height:78px;justify-content:space-between;padding:0 clamp(20px,5vw,80px);position:fixed;top:0;width:100%;z-index:10;transition:background .3s,border-color .3s}.site-header--transparent{background:transparent;border-bottom-color:transparent;backdrop-filter:none}.brand img,.brand-wordmark{display:block;filter:none;height:42px;max-width:150px;object-fit:contain}.brand-wordmark{color:var(--cream);font-family:var(--font-serif);font-size:24px;line-height:.72;white-space:nowrap}.site-header:not(.site-header--transparent) .brand-wordmark{color:var(--ink)}.site-header nav{display:flex;gap:28px}.site-header nav a{color:var(--muted);font-size:12px;letter-spacing:.12em;text-transform:uppercase;transition:color .2s}.site-header nav a:hover,.text-link:hover,.site-header nav a.is-active{color:var(--gold)}.site-header--transparent nav a,.site-header--transparent .header-actions{color:rgba(247,243,237,.88)}.site-header--transparent nav a:hover{color:var(--gold-light)}.site-header--transparent .language-picker select{color:rgba(247,243,237,.88)}.site-header--transparent .theme-toggle{color:rgba(247,243,237,.88)}.site-header--transparent .button--primary{background:rgba(247,243,237,.95);color:var(--espresso)}.header-actions{align-items:center;display:flex;gap:16px}.language-picker{align-items:center;color:var(--muted);display:flex;position:relative}.language-picker select{appearance:none;background:transparent;border:0;color:var(--ink);cursor:pointer;font-size:11px;letter-spacing:.1em;outline:0;padding:6px 18px 6px 4px}.language-picker svg{pointer-events:none;position:absolute;right:0}.sr-only{height:1px;margin:-1px;overflow:hidden;position:absolute;width:1px;clip:rect(0,0,0,0)}.theme-toggle{align-items:center;background:none;border:0;color:var(--ink);display:grid;padding:8px;place-items:center}

/* Buttons */
.button{align-items:center;border:1px solid transparent;display:inline-flex;font-size:12px;gap:12px;justify-content:center;letter-spacing:.1em;min-height:46px;padding:12px 22px;text-transform:uppercase;transition:transform .25s,background .25s,border-color .25s,color .25s}.button:hover{transform:translateY(-2px)}.button--primary{background:var(--gold);color:var(--cream)}.button--primary:hover{background:var(--gold-light);box-shadow:0 8px 24px rgba(184,152,90,.25)}.button--secondary{background:transparent;border-color:currentColor;color:var(--ink)}.button--secondary:hover{background:var(--ink);color:var(--surface)}.text-link{align-items:center;color:var(--gold);display:inline-flex;font-size:12px;gap:10px;letter-spacing:.1em;text-transform:uppercase;cursor:pointer}

/* Hero — immersive */
.hero{align-items:center;display:flex;min-height:100vh;overflow:hidden;padding:120px clamp(20px,10vw,160px) 100px;position:relative}.hero__image{background:var(--espresso);inset:0;position:absolute;transform:scale(1.04)}.hero__content{color:var(--cream);max-width:650px;position:relative;z-index:1}.hero h1{font-family:var(--font-serif);font-size:clamp(52px,8vw,112px);font-weight:500;line-height:.9;margin:24px 0;text-shadow:0 3px 14px rgba(20,9,10,.34)}.hero h1 em{color:var(--gold-light);font-style:italic}.hero p{color:rgba(247,243,237,.85);font-size:18px;font-weight:300;max-width:430px}.hero__actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:32px}.hero__actions .button--secondary{border-color:rgba(247,243,237,.5);color:var(--cream)}.hero__actions .button--secondary:hover{background:rgba(247,243,237,.12);border-color:var(--cream)}.hero__meta{bottom:32px;color:rgba(247,243,237,.65);display:flex;font-size:11px;justify-content:space-between;left:clamp(20px,5vw,80px);letter-spacing:.12em;position:absolute;right:clamp(20px,5vw,80px);text-transform:uppercase;z-index:1}

/* Page hero (sub-pages) */
.page-hero{align-items:center;display:flex;min-height:600px;overflow:hidden;padding:140px clamp(20px,10vw,160px) 100px;position:relative}.page-hero__image{background-position:center;background-size:cover;inset:0;position:absolute;transform:scale(1.03)}.page-hero__image::after{content:'';position:absolute;inset:0;background:linear-gradient(180deg,rgba(43,30,24,.5),rgba(43,30,24,.2) 40%,rgba(43,30,24,.6))}.page-hero__content{color:var(--cream);max-width:620px;position:relative;z-index:1}.page-hero h1{font-family:var(--font-serif);font-size:clamp(48px,7vw,96px);font-weight:500;line-height:.92;margin:22px 0}.page-hero h1 em{color:var(--gold-light);font-style:italic}.page-hero p{color:rgba(247,243,237,.82);font-size:18px;font-weight:300;max-width:440px}.page-hero .button{margin-top:28px}

/* Badge */
.badge{align-items:center;color:var(--gold);display:inline-flex;font-size:10px;gap:8px;letter-spacing:.16em;text-transform:uppercase}.badge:before{background:currentColor;content:'';height:1px;width:24px}.badge--sage{color:var(--sage)}.badge--dark{color:var(--coffee)}.site-header--transparent .badge,.hero .badge,.page-hero .badge{color:var(--gold-light)}

/* Sections */
.section{margin:auto;max-width:1440px;padding:clamp(72px,10vw,144px) clamp(20px,5vw,80px)}.section-heading{margin:0 auto 56px;max-width:660px;text-align:center}.section-heading h2,.feature h2,.cta h2,.chef-block__content h2,.principle-card h3{font-family:var(--font-serif);font-weight:500;line-height:.98;margin:18px 0}.section-heading h2{font-size:clamp(40px,5vw,68px)}.section-heading p,.feature__content p,.cta p{color:var(--muted);font-size:17px;font-weight:300}.section-heading--row{align-items:end;display:flex;gap:40px;justify-content:space-between;max-width:none;text-align:left}.section-heading--row>p{max-width:340px}.label,.caption{color:var(--muted);display:block;font-size:10px;letter-spacing:.15em;text-transform:uppercase}

/* Scroll reveal */
.scroll-reveal{opacity:0;transform:translateY(24px);transition:opacity .36s ease-out,transform .36s ease-out}.scroll-reveal.is-visible{opacity:1;transform:translateY(0)}

/* Cards */
.card{background:var(--surface-alt);overflow:hidden;transition:transform .35s,box-shadow .35s}.card:hover{box-shadow:var(--shadow);transform:translateY(-6px)}.card>img{display:block;height:240px;object-fit:cover;object-position:center 42%;transition:transform .6s;width:100%}.card:hover>img{transform:scale(1.04)}.card__body{padding:36px}.card h3{font-family:var(--font-serif);font-size:34px;font-weight:500;line-height:1;margin:18px 0 12px}.section--services .card h3{color:var(--ink);font-size:clamp(44px,4vw,58px);font-weight:600}.section--services .card>img{aspect-ratio:4 / 5;height:auto;object-fit:cover}.card p{color:var(--muted);font-weight:300;margin:0 0 24px}.services-grid{display:grid;gap:16px;grid-template-columns:repeat(2,1fr);margin:0 auto;max-width:1080px}

/* Intro story */
.intro-story{align-items:center;display:grid;gap:clamp(40px,9vw,140px);grid-template-columns:1fr 1fr}.intro-story__content{max-width:560px}.intro-story__content h2{font-family:var(--font-serif);font-size:clamp(48px,6vw,82px);font-weight:500;line-height:.9;margin:22px 0}.intro-story__content h2 em{color:var(--gold);font-style:italic}.intro-story__content p{color:var(--muted);font-weight:300}.intro-story__lead{font-family:var(--font-serif);font-size:30px;line-height:1.05;margin:28px 0}.intro-story__content .text-link{margin-top:24px}.intro-story__image{position:relative}.intro-story__image img{display:block;height:620px;object-fit:cover;object-position:center 42%;width:100%}.intro-story__image span{background:var(--surface);bottom:-1px;color:var(--ink);font-family:var(--font-serif);font-size:24px;line-height:1.05;padding:20px 24px;position:absolute;right:-1px}

/* Chef block — personal section replacing old feature */
.chef-block{background:var(--surface-alt);display:grid;grid-template-columns:1fr 1fr;align-items:stretch;max-width:1120px;margin:0 auto}.chef-block__image{min-height:460px;overflow:hidden;position:relative}.chef-block__image img{display:block;height:100%;inset:0;object-fit:cover;object-position:center 28%;position:absolute;width:100%}.chef-block__content{align-self:center;display:flex;flex-direction:column;justify-content:center;max-width:560px;padding:56px clamp(28px,7vw,88px);text-align:center}.chef-block__content blockquote{color:var(--ink);font-family:var(--font-serif);font-size:clamp(32px,4vw,52px);font-weight:500;line-height:1.04;margin:28px 0 16px}.chef-block__content .caption{color:var(--gold);margin-bottom:32px}.chef-block__content p{color:var(--muted);font-weight:300;margin:0 auto 28px;max-width:480px}.chef-block__content .text-link{justify-content:center}

/* Feature (used on Demeure page) */
.feature{background:var(--surface-alt);display:grid;grid-template-columns:1fr 1fr;margin-bottom:16px}.feature--reverse{direction:rtl}.feature--reverse>*{direction:ltr}.feature__image{min-height:560px}.feature__image img{height:100%;object-fit:cover;width:100%}.feature__content{align-self:center;max-width:530px;padding:80px clamp(28px,8vw,120px)}.feature__content h2{font-size:clamp(40px,5vw,68px)}.feature__content .text-link{margin-top:22px}.section--features{padding-bottom:0;max-width:none}

/* Gallery */
.gallery{display:grid;gap:12px;grid-template-columns:repeat(3,1fr)}.gallery img{height:330px;object-fit:cover;width:100%}.gallery img:nth-child(1),.gallery img:nth-child(6){height:420px}.gallery__tall{height:500px!important}.section--gallery{padding-bottom:80px}

/* Editorial gallery (Demeure page) */
.editorial-gallery{display:grid;gap:12px;grid-template-columns:repeat(4,1fr)}.editorial-gallery img{height:280px;object-fit:cover;width:100%}.editorial-gallery__tall{height:420px!important}

/* FAQ */
.faq-list{border-top:1px solid var(--line);margin:auto;max-width:860px}.accordion{border-bottom:1px solid var(--line)}.accordion button{align-items:center;background:none;border:0;color:var(--ink);display:flex;font-family:var(--font-serif);font-size:28px;justify-content:space-between;padding:24px 0;text-align:left;width:100%}.accordion button svg{transition:transform .3s}.accordion.is-open button svg{transform:rotate(45deg)}.accordion__content{color:var(--muted);max-width:650px;padding:0 50px 24px 0}.accordion__content p{margin:0}

/* CTA */
.cta{align-items:center;background:var(--coffee);color:var(--cream);display:flex;justify-content:space-between;padding:clamp(56px,8vw,120px) clamp(20px,10vw,160px)}.cta h2{font-size:clamp(42px,6vw,82px);margin:18px 0 8px}.cta p{color:rgba(247,243,237,.7);margin:0}.cta .button--secondary{border-color:rgba(247,243,237,.4);color:var(--cream)}.cta .button--secondary:hover{background:rgba(247,243,237,.12)}

/* Footer */
.site-footer{background:var(--espresso);color:var(--cream);display:grid;gap:40px;grid-template-columns:1.5fr 1fr 1.7fr;padding:80px clamp(20px,5vw,80px) 28px}.site-footer img{height:45px;max-width:160px;object-fit:contain}.site-footer p{color:rgba(247,243,237,.6);font-weight:300}.site-footer .label{color:var(--gold);margin-bottom:18px}.site-footer a{color:rgba(247,243,237,.72);display:block;font-size:14px;margin:8px 0}.site-footer a:hover{color:var(--gold)}.footer-socials{display:flex;gap:18px;margin-top:24px}.footer-socials a{align-items:center;border:1px solid rgba(247,243,237,.22);border-radius:50%;display:flex;height:38px;justify-content:center;margin:0;transition:background .25s,border-color .25s,color .25s;width:38px}.footer-socials a:hover{background:var(--gold);border-color:var(--gold);color:var(--espresso)}.footer-intro p{margin:18px 0 28px}.footer-note{color:var(--gold-light);display:block;font-family:var(--font-serif);font-size:24px;line-height:1.05}.footer-contact a{font-size:16px;margin:12px 0}.footer-caption{color:rgba(247,243,237,.45);display:block;font-size:11px;margin-top:24px}.footer-bottom{border-top:1px solid rgba(247,243,237,.18);color:rgba(247,243,237,.45);display:flex;font-size:10px;gap:24px;grid-column:1/-1;justify-content:space-between;letter-spacing:.12em;margin-top:22px;padding-top:20px;text-transform:uppercase}.footer-bottom a{color:var(--gold-light);margin:0}

/* WhatsApp float */
.testimonials{background-color:var(--coffee);background-image:none;background-attachment:scroll;color:var(--cream);isolation:isolate;overflow:hidden;padding:32px 0;position:relative}.testimonials::before{background:linear-gradient(rgba(43,30,24,.48),rgba(43,30,24,.48)),url('/images/banner.png') center/cover no-repeat;content:'';filter:blur(3px);inset:-6px;position:absolute;z-index:-1}.testimonials__track{animation:testimonials-scroll 42s linear infinite;display:flex;width:max-content}.testimonial{border-right:1px solid rgba(247,243,237,.22);flex:0 0 min(520px,82vw);padding:0 48px;text-align:center;text-shadow:0 2px 10px rgba(20,9,10,.45)}.testimonial__stars{color:var(--gold-light);font-size:16px;letter-spacing:5px;text-shadow:0 2px 8px rgba(20,9,10,.65)}.testimonial blockquote{font-family:var(--font-serif);font-size:20px;line-height:1.12;margin:12px 0}.testimonial span{color:var(--gold-light);font-size:11px;letter-spacing:.14em;text-transform:uppercase}@keyframes testimonials-scroll{from{transform:translateX(0)}to{transform:translateX(-50%)}}@media(max-width:560px){.testimonials{padding:28px 0}.testimonial{padding:0 28px}.testimonial blockquote{font-size:18px}.chef-block{width:100%}}.whatsapp-float{align-items:center;background:#25d366;border-radius:50%;bottom:24px;box-shadow:0 4px 16px rgba(37,211,102,.35);color:#fff;display:flex;height:52px;justify-content:center;opacity:0;position:fixed;right:24px;text-decoration:none;transition:opacity .3s,transform .25s;width:52px;z-index:15}.whatsapp-float:hover{transform:scale(1.08)}.whatsapp-float.is-visible{opacity:1}

/* Menu (Domicile page) */
.menu-grid{display:grid;gap:16px;grid-template-columns:repeat(2,1fr)}.menu-course{background:var(--surface-alt);padding:36px}.menu-course h3{color:var(--gold);font-family:var(--font-serif);font-size:32px;font-weight:500;margin:0 0 20px}.menu-course ul{list-style:none;margin:0;padding:0}.menu-course li{border-bottom:1px solid var(--line);color:var(--muted);font-weight:300;padding:14px 0}.menu-course li:last-child{border-bottom:0}.includes-list{list-style:none;margin:0;padding:0;text-align:left}.includes-list li{border-bottom:1px solid var(--line);color:var(--muted);font-weight:300;padding:14px 0}.includes-list li:before{color:var(--gold);content:'— ';}

/* Principles (Demeure page) */
.principles-grid{display:grid;gap:16px;grid-template-columns:repeat(3,1fr)}.principle-card{background:var(--surface-alt);padding:40px;text-align:center}.principle-card__icon{display:block;font-size:32px;margin-bottom:18px}.principle-card h3{font-size:30px;margin:0 0 14px}.principle-card p{color:var(--muted);font-weight:300;margin:0}

/* Modal */
.modal-backdrop{align-items:center;background:rgba(20,9,10,.58);display:flex;inset:0;justify-content:center;padding:20px;position:fixed;z-index:20}.modal{background:var(--cream);box-shadow:0 24px 80px rgba(20,9,10,.3);color:var(--espresso);max-width:520px;padding:48px;position:relative;width:100%}.modal h2{font-family:var(--font-serif);font-size:56px;font-weight:500;line-height:.95;margin:22px 0 14px}.modal p{color:var(--muted);font-weight:300;margin-bottom:28px}.modal .field{margin:14px 0}.modal .button{margin-top:14px;width:100%}.modal__close{background:none;border:0;color:var(--espresso);padding:4px;position:absolute;right:24px;top:24px}.modal-success .button{margin-top:20px}.modal form{display:grid;gap:2px}.modal form .button{margin-top:18px}

/* Fields */
.field{display:block;position:relative}.field>span{color:var(--muted);display:block;font-size:10px;letter-spacing:.12em;margin:0 0 8px;text-transform:uppercase}.field input,.field select{background:var(--surface);border:1px solid var(--line);border-radius:2px;color:var(--ink);min-height:46px;outline:0;padding:10px 12px;width:100%}.field input:focus,.field select:focus{border-color:var(--gold);box-shadow:0 0 0 3px rgba(184,152,90,.15)}.field>svg{bottom:14px;pointer-events:none;position:absolute;right:12px}.field select{appearance:none}

/* Responsive */
@media(max-width:900px){.site-header nav{display:none}.intro-story{grid-template-columns:1fr}.intro-story__image img{height:520px}.services-grid,.principles-grid,.menu-grid{grid-template-columns:1fr}.feature{grid-template-columns:1fr}.feature__image{min-height:420px}.chef-block{grid-template-columns:1fr}.chef-block__image{min-height:480px}.section-heading--row{align-items:start;display:block}.section-heading--row>p{margin-top:20px}.gallery{grid-template-columns:1fr 1fr}.gallery img,.gallery img:nth-child(1),.gallery img:nth-child(6),.gallery__tall{height:300px!important}.editorial-gallery{grid-template-columns:1fr 1fr}.cta{align-items:start;display:block}.cta .button{margin-top:28px}.site-footer{grid-template-columns:1fr 1fr}.hero{min-height:100vh}}
@media(prefers-reduced-motion:reduce){.scroll-reveal,.scroll-reveal.is-visible{opacity:1;transform:none;transition:none}.testimonials__track{animation:none}.card:hover{transform:none}.card:hover>img{transform:none}}.scroll-reveal.is-visible .services-grid>*:nth-child(2),.scroll-reveal.is-visible .testimonials__track>*:nth-child(2),.scroll-reveal.is-visible .gallery>*:nth-child(2),.scroll-reveal.is-visible .faq-list>*:nth-child(2){transition-delay:.08s}.scroll-reveal.is-visible .services-grid>*:nth-child(3),.scroll-reveal.is-visible .testimonials__track>*:nth-child(3),.scroll-reveal.is-visible .gallery>*:nth-child(3),.scroll-reveal.is-visible .faq-list>*:nth-child(3){transition-delay:.16s}.services-grid>*,.gallery>*,.faq-list>*{transition:opacity .36s ease-out,transform .36s ease-out}.scroll-reveal:not(.is-visible) .services-grid>*,.scroll-reveal:not(.is-visible) .gallery>*,.scroll-reveal:not(.is-visible) .faq-list>*{opacity:0;transform:translateY(18px)}.scroll-reveal.is-visible .services-grid>*,.scroll-reveal.is-visible .gallery>*,.scroll-reveal.is-visible .faq-list>*{opacity:1;transform:translateY(0)}@media(max-width:560px){.site-header{height:66px}.brand img{height:34px;max-width:120px}.header-actions .button{display:none}.hero{min-height:560px;padding:100px 20px 80px}.hero__meta{font-size:9px}.hero__meta span:last-child{display:none}.hero h1{font-size:54px}.page-hero{min-height:480px;padding:110px 20px 80px}.intro-story__image img{height:400px}.intro-story__image span{font-size:20px;padding:16px 18px}.section{padding-bottom:80px;padding-top:80px}.gallery{gap:8px}.gallery img,.gallery img:nth-child(1),.gallery img:nth-child(6),.gallery__tall{height:220px!important}.editorial-gallery{grid-template-columns:1fr}.editorial-gallery img,.editorial-gallery__tall{height:240px!important}.modal{padding:32px 24px}.modal h2{font-size:46px}.site-footer{grid-template-columns:1fr;padding-bottom:52px;padding-top:52px}.whatsapp-float{bottom:16px;right:16px;height:46px;width:46px}.chef-block__content{padding:48px 24px}.chef-block__image{min-height:300px}.menu-course{padding:28px}}
@media(prefers-reduced-motion:reduce){.services-grid>*,.gallery>*,.faq-list>*{opacity:1!important;transform:none!important;transition:none!important}}
/* Point 1 — Espacement avis → bloc « Pourquoi j'ai créé cet univers ».
   Même valeur que l'espace Expériences → Avis (padding-bottom de .section). */
.chef-block{margin-top:clamp(72px,10vw,144px)}
@media(max-width:560px){.chef-block{margin-top:80px}}
/* Point 2 — Mosaïque « collée » de la section Souvenirs (remplace la grille .gallery). */
.mosaic{aspect-ratio:8/5;display:grid;gap:4px;grid-template-areas:"p1 p1 p2 p6" "p1 p1 p2 p6" "p1 p1 p4 p6" "p3 p3 p4 p5" "p3 p3 p4 p5";grid-template-columns:repeat(4,minmax(0,1fr));grid-template-rows:repeat(5,minmax(0,1fr));overflow:hidden}
.mosaic>img{display:block;height:100%;object-fit:cover;width:100%}
.mosaic>img:nth-child(1){grid-area:p1}
.mosaic>img:nth-child(2){grid-area:p2}
.mosaic>img:nth-child(3){grid-area:p3;object-position:center 45%}
.mosaic>img:nth-child(4){grid-area:p4}
.mosaic>img:nth-child(5){grid-area:p5;object-position:center 55%}
.mosaic>img:nth-child(6){grid-area:p6;object-position:center 30%}
@media(max-width:640px){.mosaic{aspect-ratio:4/9;grid-template-areas:"p3 p3" "p3 p3" "p6 p4" "p6 p4" "p6 p4" "p2 p5" "p2 p5" "p1 p1" "p1 p1";grid-template-columns:repeat(2,minmax(0,1fr));grid-template-rows:repeat(9,minmax(0,1fr))}}
/* Fade-in + léger stagger, identiques aux autres groupes de la homepage */
.mosaic>*{transition:opacity .36s ease-out,transform .36s ease-out}
.scroll-reveal:not(.is-visible) .mosaic>*{opacity:0;transform:translateY(18px)}
.scroll-reveal.is-visible .mosaic>*{opacity:1;transform:translateY(0)}
.scroll-reveal.is-visible .mosaic>*:nth-child(2){transition-delay:.08s}
.scroll-reveal.is-visible .mosaic>*:nth-child(3){transition-delay:.16s}
@media(prefers-reduced-motion:reduce){.mosaic>*{opacity:1!important;transform:none!important;transition:none!important}}
/* Point 3 — Mode sombre : compléments aux tokens .theme-dark existants. */
.theme-dark{color-scheme:dark}
html.theme-dark-root,html.theme-dark-root body{background:var(--espresso)}
/* La modale suivait un fond crème fixe alors que ses champs suivent le thème */
.modal{background:var(--surface);color:var(--ink)}
.modal__close{color:var(--ink)}
/* Refonte page « Cheffe à domicile » — réassurance, carte de la cheffe, formules, contact.
   Ne s'appuie que sur les tokens et composants existants (principle-card, menu-course, includes-list, feature, field). */

/* Réassurance : 4 piliers */
.principles-grid--four{grid-template-columns:repeat(4,minmax(0,1fr))}
@media(max-width:1100px){.principles-grid--four{grid-template-columns:repeat(2,minmax(0,1fr))}}
.section--reassurance{padding-bottom:0}

/* Carte de la cheffe : 2 colonnes, la 3e catégorie occupe toute la largeur */
.menu-dish strong{color:var(--ink);display:block;font-family:var(--font-serif);font-size:23px;font-weight:500;line-height:1.15;margin-bottom:4px}
.menu-dish span{display:block;font-size:14px}
.menu-grid--carte>.menu-course:last-child{grid-column:1/-1}
.menu-grid--carte>.menu-course:last-child ul{column-gap:48px;display:grid;grid-template-columns:1fr 1fr}
.menu-grid--carte>.menu-course:last-child li:nth-last-child(2){border-bottom:0}

/* Formules */
.section--extras{padding-bottom:0;padding-top:0}
.section--extras .formulas-extras{margin-top:0}
.formulas-grid{align-items:stretch;display:grid;gap:16px;grid-template-columns:repeat(3,1fr);margin:0 auto;max-width:1080px;padding:24px 0}
.formula-card{align-items:center;background:var(--surface-alt);border:1px solid var(--line);display:flex;flex-direction:column;gap:14px;padding:48px 32px;text-align:center}
.formula-card h3{font-family:var(--font-serif);font-size:34px;font-weight:500;line-height:1;margin:0}
.formula-card__price{color:var(--gold);font-family:var(--font-serif);font-size:clamp(40px,4vw,52px);font-weight:500;line-height:1;margin:6px 0 0}
.formula-card .caption{margin-top:-6px}
.formula-card__description{color:var(--muted);font-weight:300;margin:6px 0 10px;max-width:280px}
.formula-card__note{color:var(--muted);font-size:12px;font-style:italic;font-weight:300;line-height:1.5;margin:6px 0 0;max-width:280px}
.formula-card--featured{border-color:var(--gold);box-shadow:var(--shadow);justify-content:center;margin:-24px 0;padding:48px 36px}
.formulas-extras{background:var(--surface-alt);border:1px solid var(--line);display:grid;gap:clamp(32px,6vw,80px);grid-template-columns:1fr 1fr;margin:56px auto 0;max-width:1080px;padding:clamp(32px,5vw,56px)}
.formulas-extras h3{color:var(--gold);font-family:var(--font-serif);font-size:32px;font-weight:500;margin:0 0 12px}

/* Contact */
.section--contact{padding-top:0}
.domicile-contact{margin-bottom:0}
.domicile-contact .feature__content p{color:var(--muted);font-weight:300}
.domicile-contact form{display:grid;gap:2px;margin-top:20px}
.domicile-contact form .button{margin-top:18px}
.domicile-contact__success h3{font-family:var(--font-serif);font-size:36px;font-weight:500;line-height:1;margin:18px 0 10px}

@media(max-width:900px){
  .menu-grid--carte>.menu-course:last-child ul{grid-template-columns:1fr}
  .menu-grid--carte>.menu-course:last-child li:nth-last-child(2){border-bottom:1px solid var(--line)}
  .formulas-grid{grid-template-columns:1fr;margin:0 auto;max-width:480px}
  .formulas-grid{padding:0}
  .formula-card--featured{margin:0}
  .formulas-extras{grid-template-columns:1fr}
}
@media(max-width:560px){
  .principles-grid--four{grid-template-columns:1fr}
  .principle-card{padding:32px 24px}
  .formula-card{padding:40px 24px}
  .domicile-contact .feature__content{padding:48px 24px}
}
/* Refonte page « Cheffe à demeure » — hero, intro, timeline, mosaïque, zone géographique.
   Tokens et composants existants uniquement (hero de l'accueil, section-heading, .mosaic, .cta). */

/* Hero : même traitement que l'accueil, image définie dans Demeure.jsx (HERO-CHEF-A-DEMEURE) */


/* Intro positionnement */
.section--demeure-intro .section-heading{margin-bottom:0}
.section--demeure-intro .section-heading h2 em{color:var(--gold);font-style:italic}
.section--demeure-intro{padding-bottom:0}

/* Timeline verticale */
.timeline{--progress:0;--track-height:0px;--track-top:24px;margin:0 auto;max-width:760px;position:relative}
.timeline::before,.timeline__fill{content:'';left:23.5px;position:absolute;top:var(--track-top);width:1px;height:var(--track-height)}
.timeline::before{background:var(--line)}
.timeline__fill{background:var(--gold);transform:scaleY(var(--progress));transform-origin:top;transition:transform .15s ease-out}
.timeline ol{list-style:none;margin:0;padding:0}
.timeline__step{display:grid;gap:clamp(20px,4vw,40px);grid-template-columns:48px 1fr;padding-bottom:clamp(40px,6vw,64px)}
.timeline__step:last-child{padding-bottom:0}
.timeline__dot{align-items:center;background:var(--surface);border:1px solid var(--line);border-radius:50%;color:var(--muted);display:flex;font-family:var(--font-serif);font-size:20px;height:48px;justify-content:center;position:relative;transition:background .3s ease-out,border-color .3s ease-out,color .3s ease-out;width:48px;z-index:1}
.timeline__step.is-active .timeline__dot{background:var(--gold);border-color:var(--gold);color:var(--cream)}
.timeline__step h3{font-family:var(--font-serif);font-size:clamp(28px,3vw,36px);font-weight:500;line-height:1.05;margin:6px 0 10px}
.timeline__step p{color:var(--muted);font-weight:300;margin:0;max-width:520px}

/* Mosaïque : la grille .mosaic est partagée avec l'accueil */
.section--demeure-gallery{padding-top:0}

/* Zone géographique */
.section--area{padding-top:0}
.demeure-area{background:var(--surface-alt);margin:0 auto;max-width:1120px;padding:clamp(56px,8vw,112px) clamp(24px,6vw,80px);text-align:center}
.demeure-area p{color:var(--ink);font-family:var(--font-serif);font-size:clamp(34px,4.6vw,60px);font-weight:500;line-height:1.08;margin:24px auto 0;max-width:860px}
.demeure-area em{color:var(--gold);font-style:italic}

@media(max-width:560px){
  .timeline::before,.timeline__fill{left:19.5px}
  .timeline__step{grid-template-columns:40px 1fr}
  .timeline__dot{font-size:18px;height:40px;width:40px}
}
@media(prefers-reduced-motion:reduce){.timeline__fill,.timeline__dot{transition:none}}
/* Pages SEO locales « Cheffe privée » (départements / villes) + bloc « Cheffe privée » du footer.
   Tokens et composants existants uniquement (page-hero, section-heading, services-grid, .mosaic, .cta). */

/* Fil d'Ariane (dans le hero) */
.breadcrumb{margin-bottom:22px}
.breadcrumb ol{display:flex;flex-wrap:wrap;gap:4px 0;list-style:none;margin:0;padding:0}
.breadcrumb li{color:rgba(247,243,237,.72);font-size:11px;letter-spacing:.14em;text-transform:uppercase}
.breadcrumb li+li::before{content:'/';margin:0 10px;opacity:.5}
.breadcrumb a{color:inherit;transition:color .2s}
.breadcrumb a:hover{color:var(--gold-light)}
.breadcrumb [aria-current]{color:var(--gold-light)}

/* Hero : photo en <picture> (srcset) à la place d'un background-image */
.local-hero .page-hero__image picture img{height:100%;inset:0;object-fit:cover;position:absolute;width:100%}
/* Lisibilité du texte du hero : mutualisée dans 08-shared.css */

/* Mosaïque : les cases sont des <picture> (même grille que .mosaic>img) */
.mosaic>picture{display:block;min-height:0;min-width:0}
.mosaic>picture img{display:block;height:100%;object-fit:cover;width:100%}
.mosaic>picture:nth-child(1){grid-area:p1}
.mosaic>picture:nth-child(2){grid-area:p2}
.mosaic>picture:nth-child(3){grid-area:p3}
.mosaic>picture:nth-child(4){grid-area:p4}
.mosaic>picture:nth-child(5){grid-area:p5}
.mosaic>picture:nth-child(6){grid-area:p6}
.place-card__media picture img{display:block;height:100%;object-fit:cover;transition:transform .6s;width:100%}
.place-card:hover .place-card__media picture img{transform:scale(1.04)}

/* Hero : placeholder si aucune photo n'est disponible */
.local-hero__placeholder{background:linear-gradient(135deg,var(--coffee),var(--espresso))}

/* Placeholders photo (hero, cartes villes, mosaïque) */
.local-placeholder{align-items:center;background:var(--surface-alt);border:1px dashed var(--gold);color:var(--muted);display:flex;flex-direction:column;gap:6px;height:100%;justify-content:center;padding:16px;text-align:center;width:100%}
.local-placeholder span{color:var(--gold);font-size:11px;letter-spacing:.16em;text-transform:uppercase}
.local-placeholder small{font-size:11px}
.local-placeholder--hero{background:transparent;border-color:rgba(212,188,138,.6);bottom:24px;height:auto;position:absolute;right:clamp(20px,5vw,80px);width:auto;z-index:1}
.local-placeholder--hero span{color:var(--gold-light)}
.local-placeholder--hero small{color:rgba(247,243,237,.7)}
.mosaic>.local-placeholder:nth-child(1){grid-area:p1}
.mosaic>.local-placeholder:nth-child(2){grid-area:p2}
.mosaic>.local-placeholder:nth-child(3){grid-area:p3}
.mosaic>.local-placeholder:nth-child(4){grid-area:p4}
.mosaic>.local-placeholder:nth-child(5){grid-area:p5}
.mosaic>.local-placeholder:nth-child(6){grid-area:p6}

/* Intro */
.local-intro{max-width:820px;padding-bottom:0;text-align:center}
.local-intro p{color:var(--ink);font-size:clamp(17px,1.5vw,19px);font-weight:300;line-height:1.8;margin:24px 0 0;text-align:left}

/* Cartes villes (page département) */
.local-cities{padding-bottom:0}
.place-grid{display:grid;gap:16px;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));margin:0 auto;max-width:1080px}
.place-card{background:var(--surface-alt);display:block;overflow:hidden;transition:box-shadow .35s,transform .35s}
.place-card:hover{box-shadow:var(--shadow);transform:translateY(-6px)}
.place-card__media{aspect-ratio:4/5;overflow:hidden}
.place-card__media img{display:block;height:100%;object-fit:cover;transition:transform .6s;width:100%}
.place-card:hover .place-card__media img{transform:scale(1.04)}
.place-card__body{align-items:center;display:flex;gap:16px;justify-content:space-between;padding:24px 28px}
.place-card h3{color:var(--ink);font-family:var(--font-serif);font-size:clamp(28px,3vw,36px);font-weight:500;line-height:1;margin:0}

/* Paragraphe local (page ville) */
.local-story{display:grid;gap:clamp(24px,6vw,96px);grid-template-columns:1fr 1.3fr;max-width:1180px;padding-bottom:0}
.local-story h2{font-family:var(--font-serif);font-size:clamp(38px,4.6vw,60px);font-weight:500;line-height:1;margin:18px 0 0}
.local-story p{color:var(--muted);font-size:17px;font-weight:300;line-height:1.8;margin:0 0 24px}

/* Footer : bloc « Cheffe privée » — 4 colonnes (une par région) */
.footer-places{border-top:1px solid rgba(247,243,237,.18);grid-column:1/-1;padding-top:32px}
.site-footer .footer-places__hub{display:inline-block;font-size:10px;margin:0 0 18px}
.site-footer .footer-places__hub:hover{color:var(--gold-light)}
.footer-places__grid{display:grid;gap:24px 40px;grid-template-columns:repeat(4,minmax(0,1fr))}
.site-footer .footer-places__col a{margin:6px 0}
.site-footer .footer-places__dept{color:var(--cream);font-family:var(--font-serif);font-size:20px;margin:0 0 10px}

@media(max-width:900px){
  .local-story{grid-template-columns:1fr}
  .footer-places__grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:560px){
  .footer-places__grid{gap:20px;grid-template-columns:1fr}
  .place-card__body{padding:20px}
  .local-placeholder--hero{bottom:16px}
}
@media(prefers-reduced-motion:reduce){.place-card:hover{transform:none}.place-card:hover .place-card__media img{transform:none}}

/* Cartes d'offre des pages locales : photo en <picture> optimisée (même rendu que .card>img) */
.card>picture{display:block;overflow:hidden}
.card>picture img{display:block;height:240px;object-fit:cover;transition:transform .6s;width:100%}
.section--services .card>picture img{aspect-ratio:4/5;height:auto}
.card:hover>picture img{transform:scale(1.04)}
@media(prefers-reduced-motion:reduce){.card:hover>picture img{transform:none}}
/* Patterns mutualisés pour tout le site. */

/* Lisibilité des textes posés sur une photo de hero (.hero : accueil, demeure ; .page-hero : domicile, pages locales).
   1) ombre portée renforcée sur le H1 et les textes ; 2) voile dégradé discret côté texte, sous le contenu (z-index 1). */
:root{
  --hero-title-shadow:0 1px 2px rgba(20,9,10,.45),0 4px 28px rgba(20,9,10,.55);
  --hero-text-shadow:0 1px 2px rgba(20,9,10,.55),0 2px 14px rgba(20,9,10,.5);
  --hero-scrim:linear-gradient(90deg,rgba(20,9,10,.5) 0%,rgba(20,9,10,.28) 42%,rgba(20,9,10,0) 72%);
}
.hero h1,.page-hero h1{text-shadow:var(--hero-title-shadow)}
.hero__content p,.page-hero__content p,.hero .badge,.page-hero .badge,.hero__meta,.page-hero .breadcrumb{text-shadow:var(--hero-text-shadow)}
.hero::after,.page-hero::after{background:var(--hero-scrim);content:'';inset:0;pointer-events:none;position:absolute}
@media(max-width:700px){
  /* Sur mobile le texte occupe toute la largeur : voile uniforme plutôt que latéral */
  :root{--hero-scrim:linear-gradient(180deg,rgba(20,9,10,.12) 0%,rgba(20,9,10,.38) 45%,rgba(20,9,10,.3) 100%)}
}

/* Footer : crédit « Web Dimension » dans la ligne de copyright (reste en ligne, style des liens du bas de page) */
.site-footer .footer-bottom .footer-credit{display:inline}
.site-footer .footer-bottom a{font-size:inherit}
.footer-bottom{flex-wrap:wrap;row-gap:10px}

/* Footer restructuré : lien légal dans le bloc 1, réseaux sociaux dans le bloc « Écrire à Charlotte »,
   dernier bandeau limité au copyright (centré). */
.site-footer .footer-legal{display:block;margin-top:14px}
.site-footer .footer-contact .footer-socials{margin-top:20px}
.footer-bottom{justify-content:center;text-align:center}

/* Formulaires de contact : piège à robots invisible + message d'erreur d'envoi */
.form-honeypot{height:1px;left:-9999px;opacity:0;position:absolute;width:1px}
.form-error{background:rgba(184,152,90,.12);border-left:2px solid var(--gold);color:var(--ink);font-size:14px;line-height:1.5;margin:14px 0 0;padding:12px 14px}
.form-error a{color:var(--gold);text-decoration:underline;text-underline-offset:2px}
.modal .form-error{margin-bottom:0}

/* Champ message (textarea) aligné sur les champs existants + bouton d'envoi désactivé tant que le formulaire est incomplet */
.field textarea{background:var(--surface);border:1px solid var(--line);border-radius:2px;color:var(--ink);font:inherit;min-height:96px;outline:0;padding:10px 12px;resize:vertical;width:100%}
.field textarea:focus{border-color:var(--gold);box-shadow:0 0 0 3px rgba(184,152,90,.15)}
.button:disabled{cursor:not-allowed;opacity:.45}
.button:disabled:hover{transform:none}

/* Fenêtre de contact : jamais coupée. Centrée si elle tient, sinon défilement interne ;
   sur mobile, version compacte + bouton fermer (haut) et bouton envoyer (bas) toujours visibles. */
.modal{margin:auto;max-height:calc(100vh - 40px);max-height:calc(100dvh - 40px);overflow-y:auto;overscroll-behavior:contain}
@media(max-width:560px){
  .modal-backdrop{padding:12px}
  .modal{max-height:calc(100vh - 24px);max-height:calc(100dvh - 24px);padding:20px 20px 0}
  .modal__close{background:var(--surface,var(--cream));border-radius:50%;float:right;margin:-6px -8px 0 8px;position:sticky;top:0;z-index:2}
  .modal h2{font-size:32px;line-height:1;margin:14px 0 8px}
  .modal p{font-size:14px;line-height:1.45;margin-bottom:12px}
  .modal .field{margin:6px 0}
  .modal .field>span{margin-bottom:5px}
  .modal .field input,.modal .field select{min-height:42px;padding:8px 12px}
  .modal .field textarea{min-height:68px}
  .modal .form-error{margin-top:8px}
  .modal form .button[type=submit]{bottom:0;box-shadow:0 -12px 16px var(--surface,var(--cream));margin:12px 0 0;position:sticky;z-index:1}
  .modal form{padding-bottom:20px}
  .modal-success{padding-bottom:24px}
}

/* Heros Accueil / Demeure : photo en <img srcset> (WebP optimisé) au lieu d'un fond CSS, voile dégradé par-dessus */
.hero__image>img{display:block;height:100%;inset:0;object-fit:cover;object-position:center;position:absolute;width:100%}
.hero__image::after{background:linear-gradient(180deg,rgba(43,30,24,.45) 0%,rgba(43,30,24,.15) 35%,rgba(43,30,24,.55) 100%);content:'';inset:0;position:absolute}
/* Bandeau cookies (fixe en bas, toutes les pages). Sous la modale (z-index 20), au-dessus du reste. */
.cookie-banner{align-items:center;backdrop-filter:blur(6px);background:rgba(28,28,28,.85);bottom:0;color:#fff;display:flex;gap:16px 32px;justify-content:space-between;left:0;padding:16px clamp(20px,5vw,80px);position:fixed;right:0;z-index:19}
.cookie-banner p{color:#fff;font-size:14px;font-weight:400;line-height:1.5;margin:0;max-width:760px}
.cookie-banner p a{color:#fff;text-decoration:underline;text-underline-offset:3px}
.cookie-banner p a:hover{color:var(--gold-light)}
.cookie-banner__actions{display:flex;flex-shrink:0;gap:10px}
.cookie-banner .button{min-height:40px;padding:10px 18px}
.cookie-banner .button--secondary{border-color:rgba(255,255,255,.7);color:#fff}
.cookie-banner .button--secondary:hover{background:rgba(255,255,255,.12);color:#fff}
.cookie-banner .button:focus-visible{outline:2px solid #fff;outline-offset:2px}
/* Le bouton WhatsApp remonte au-dessus du bandeau tant qu'il est affiché */
.has-cookie-banner .whatsapp-float{bottom:calc(var(--cookie-banner-h,0px) + 16px)}
@media(max-width:640px){
  .cookie-banner{align-items:stretch;flex-direction:column;gap:12px;padding:14px 16px calc(14px + env(safe-area-inset-bottom))}
  .cookie-banner p{font-size:13px}
  .cookie-banner__actions .button{flex:1}
}

/* Bouton flottant « Préférences cookies » : bas gauche, symétrique au bouton WhatsApp (même diamètre, même marge) */
.cookie-prefs-trigger{align-items:center;background:var(--espresso);border:1px solid rgba(212,188,138,.45);border-radius:50%;bottom:24px;box-shadow:0 4px 16px rgba(20,9,10,.25);color:var(--gold-light);display:flex;height:52px;justify-content:center;left:24px;padding:0;position:fixed;transition:background .25s,transform .25s;width:52px;z-index:15}
.cookie-prefs-trigger:hover{background:var(--coffee);transform:scale(1.06)}
.cookie-prefs-trigger:focus-visible{outline:2px solid var(--gold);outline-offset:3px}
.has-cookie-banner .cookie-prefs-trigger{bottom:calc(var(--cookie-banner-h,0px) + 16px)}

/* Fenêtre « Préférences des cookies » (s'appuie sur .modal / .modal-backdrop existants) */
.cookie-prefs{max-width:560px}
.cookie-prefs h2{font-size:clamp(34px,4vw,44px);margin:0 40px 0 0}
.cookie-prefs__list{border-top:1px solid var(--line);list-style:none;margin:24px 0 28px;padding:0}
.cookie-prefs__list li{align-items:center;border-bottom:1px solid var(--line);display:flex;gap:20px;justify-content:space-between;padding:18px 0}
.cookie-prefs__list strong{color:var(--ink);display:block;font-family:var(--font-serif);font-size:22px;font-weight:500;line-height:1.1}
.cookie-prefs .cookie-prefs__list p{color:var(--muted);font-size:14px;font-weight:300;line-height:1.5;margin:4px 0 0}
.cookie-switch{background:var(--surface-alt);border:1px solid var(--line);border-radius:13px;cursor:pointer;flex-shrink:0;height:26px;padding:0;position:relative;transition:background .2s,border-color .2s;width:46px}
.cookie-switch span{background:var(--white);border-radius:50%;box-shadow:0 1px 3px rgba(20,9,10,.25);height:20px;left:2px;position:absolute;top:2px;transition:transform .2s;width:20px}
.cookie-switch[aria-checked="true"]{background:var(--gold);border-color:var(--gold)}
.cookie-switch[aria-checked="true"] span{transform:translateX(20px)}
.cookie-switch:disabled{cursor:not-allowed;opacity:.5}
.is-unused .cookie-switch:disabled{background:var(--line);border-color:var(--line);opacity:.6}
.cookie-prefs .cookie-prefs__list .cookie-prefs__unused{color:var(--muted);font-size:12px;font-style:italic;margin-top:6px;opacity:.85}
.cookie-switch:focus-visible{outline:2px solid var(--gold);outline-offset:2px}
.cookie-prefs__actions{display:flex;flex-wrap:wrap;gap:12px}
.cookie-prefs .cookie-prefs__actions .button{flex:1;margin:0;width:auto}

@media(max-width:560px){
  .cookie-prefs-trigger{bottom:16px;height:46px;left:16px;width:46px}
  /* Le dernier bandeau du footer reste lisible au-dessus des deux boutons flottants */
  .site-footer{padding-bottom:84px}
}
@media(prefers-reduced-motion:reduce){.cookie-prefs-trigger,.cookie-switch,.cookie-switch span{transition:none}}
/* Bandeau « La table est prête / Parlons de votre projet » (.cta, toutes les pages) :
   photo de table vue du dessus (photos/1790405211_tmp_IMG_5991.webp) + voile noir 0,45 pour la lisibilité.
   Sources optimisées (AVIF/WebP, 1920 px / 1000 px sur mobile) fournies par src/ctaBackground.js. */
.cta{
  background-color:var(--coffee);
  background-image:linear-gradient(rgba(0,0,0,.45),rgba(0,0,0,.45)),
    image-set(var(--cta-bg-avif) type('image/avif'), var(--cta-bg-webp) type('image/webp'));
  background-position:center 50%;
  background-size:cover;
}
@media(max-width:900px){
  .cta{
    background-image:linear-gradient(rgba(0,0,0,.45),rgba(0,0,0,.45)),
      image-set(var(--cta-bg-avif-sm) type('image/avif'), var(--cta-bg-webp-sm) type('image/webp'));
  }
}

/* Recadrage : la canette et les condiments sont dans la moitié basse de la photo (≈ 56–62 % de sa hauteur).
   Chaque format n'affiche qu'une bande située dans la moitié haute (plats, verres, assiettes). */
.cta{background-position:center 20%}
@media(max-width:900px){.cta{background-position:center 15%}}
@media(max-width:640px){.cta{background-position:center top;background-size:auto 200%}}

/* Bouton aligné verticalement sur le bloc texte (desktop) ; empilé sous le texte sur mobile */
@media(min-width:901px){
  .cta{align-items:center;display:flex;gap:48px;justify-content:space-between}
  .cta>div{max-width:760px}
  .cta>.button{flex-shrink:0}
}
/* Page Mentions légales : hero compact sans photo (fond dégradé, pour garder un header lisible) + sections. */
.legal-hero{min-height:420px}
.legal-hero__image{background:linear-gradient(135deg,var(--coffee),var(--espresso))}
.legal-page{max-width:860px}
.legal-page__section{border-bottom:1px solid var(--line);padding:28px 0}
.legal-page__section:first-child{padding-top:0}
.legal-page__section h2{align-items:baseline;display:flex;font-family:var(--font-serif);font-size:clamp(26px,3vw,34px);font-weight:500;gap:16px;line-height:1.1;margin:0 0 10px}
.legal-page__section h2 span{color:var(--gold);font-family:var(--font-sans);font-size:12px;letter-spacing:.14em}
.legal-page__section p{color:var(--muted);font-weight:300;line-height:1.7;margin:0 0 4px}
.legal-page__section a{color:var(--gold)}
/* Sections 06–07 (paragraphes avec intertitre) : un peu d'air entre les paragraphes ; sections 01–05 inchangées */
.legal-page__section--rich p+p{margin-top:12px}
.legal-page__lead{color:var(--ink);display:block;font-weight:500;margin-bottom:2px}
.legal-page__placeholder{color:var(--muted);font-style:italic;font-weight:300;margin:0}
@media(max-width:560px){.legal-hero{min-height:340px}}
/* Menu mobile : bouton burger (< 900 px) + tiroir latéral droit (palette brun/or, typographies du site) */
.menu-toggle{align-items:center;background:none;border:0;color:var(--ink);display:none;justify-content:center;margin-right:-8px;padding:8px}
.site-header--transparent .menu-toggle{color:rgba(247,243,237,.92)}
.menu-toggle:focus-visible,.mobile-menu button:focus-visible,.mobile-menu a:focus-visible{outline:2px solid var(--gold);outline-offset:3px}
@media(max-width:900px){.menu-toggle{display:flex}}

.mobile-menu-overlay{background:rgba(20,9,10,.55);inset:0;opacity:0;position:fixed;transition:opacity .28s ease,visibility 0s linear .28s;visibility:hidden;z-index:30}
.mobile-menu-overlay.is-open{opacity:1;transition:opacity .28s ease;visibility:visible}
.mobile-menu{background:var(--espresso);bottom:0;box-shadow:-12px 0 40px rgba(20,9,10,.35);color:var(--cream);display:flex;flex-direction:column;max-width:420px;overflow-y:auto;padding:22px 28px calc(28px + env(safe-area-inset-bottom));position:fixed;right:0;top:0;transform:translateX(100%);transition:transform .28s cubic-bezier(.4,0,.2,1),visibility 0s linear .28s;visibility:hidden;width:78vw;z-index:31}
.mobile-menu.is-open{transform:none;transition:transform .28s cubic-bezier(.4,0,.2,1);visibility:visible}
.mobile-menu .label{color:var(--gold)}
.mobile-menu__top{align-items:center;display:flex;justify-content:space-between;margin-bottom:24px}
.mobile-menu__close{background:none;border:0;color:var(--cream);margin-right:-8px;padding:8px}
.mobile-menu__nav{border-top:1px solid rgba(247,243,237,.14);display:flex;flex-direction:column}
.mobile-menu__nav a{border-bottom:1px solid rgba(247,243,237,.14);color:var(--cream);font-family:var(--font-serif);font-size:28px;line-height:1.1;padding:16px 0;transition:color .2s}
.mobile-menu__nav a:hover,.mobile-menu__nav a.is-active{color:var(--gold-light)}
.mobile-menu__langs{margin-top:28px}
.mobile-menu__langs>div{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}
.mobile-menu__langs button{background:none;border:1px solid rgba(247,243,237,.28);color:rgba(247,243,237,.82);font-size:12px;letter-spacing:.08em;padding:9px 12px;text-transform:uppercase}
.mobile-menu__langs button[aria-pressed="true"]{border-color:var(--gold);color:var(--gold-light)}
.mobile-menu__contact{display:flex;flex-direction:column;gap:12px;margin-top:auto;padding-top:32px}
.mobile-menu__contact a{align-items:center;color:rgba(247,243,237,.82);display:inline-flex;font-size:15px;gap:10px}
.mobile-menu__contact a:hover{color:var(--gold-light)}
@media(prefers-reduced-motion:reduce){.mobile-menu,.mobile-menu.is-open,.mobile-menu-overlay,.mobile-menu-overlay.is-open{transition:none}}
/* Page Souvenirs : hero compact (fond dégradé), mosaïques empilées en continu, bouton « Voir plus ». */
/* Hero en bandeau (pas plein écran) : photo IMG_6434 recadrée sur la table, voile sombre léger pour le texte */
.souvenirs-hero{min-height:clamp(420px,62vh,560px)}
.souvenirs-hero__image{background:var(--espresso)}
.souvenirs-hero__image picture img{height:100%;inset:0;object-fit:cover;object-position:center 58%;position:absolute;width:100%}
.souvenirs-hero .page-hero__image::after{background:linear-gradient(180deg,rgba(20,9,10,.42) 0%,rgba(20,9,10,.22) 45%,rgba(20,9,10,.5) 100%)}
.souvenirs-page{padding-bottom:clamp(72px,10vw,144px)}
.souvenirs-gallery{display:grid;gap:4px}
@media(min-width:641px){
  .mosaic--flip{grid-template-areas:"p6 p2 p1 p1" "p6 p2 p1 p1" "p6 p4 p1 p1" "p5 p4 p3 p3" "p5 p4 p3 p3"}
}
.souvenirs-row{display:grid;gap:4px;grid-template-columns:repeat(var(--n),minmax(0,1fr))}
.souvenirs-row picture{aspect-ratio:4/3;display:block;overflow:hidden}
.souvenirs-row img{display:block;height:100%;object-fit:cover;width:100%}
.souvenirs-more,.gallery-more{display:flex;justify-content:center;margin-top:40px}
@media(max-width:560px){.souvenirs-hero{min-height:380px}.souvenirs-hero__image picture img{object-position:center 62%}}
/* Page « À propos » (/a-propos). Uniquement les tokens et composants existants (badge, section-heading, button, intro-story). */

/* Hero : texte sur fond espresso + portrait en cuisine (le header transparent reste lisible) */
.about-hero{background:var(--espresso);color:var(--cream);display:grid;grid-template-columns:1.05fr .95fr;min-height:min(820px,100vh)}
.about-hero__content{align-self:center;max-width:620px;padding:150px clamp(20px,6vw,96px) 96px}
.about-hero h1{font-family:var(--font-serif);font-size:clamp(48px,6.4vw,92px);font-weight:500;line-height:.92;margin:22px 0}
.about-hero h1 em{color:var(--gold-light);font-style:italic}
.about-hero p{color:rgba(247,243,237,.82);font-size:18px;font-weight:300;max-width:470px}
.about-hero .badge{color:var(--gold-light)}
.about-hero__image{min-height:420px;position:relative}
.about-hero__image::after{background:linear-gradient(180deg,rgba(20,9,10,.6),rgba(20,9,10,0) 26%);content:"";inset:0;pointer-events:none;position:absolute}
.about-hero__image picture img,.about-story__image picture img,.about-gallery__item picture img,.about-offer picture img{display:block;height:100%;inset:0;object-fit:cover;position:absolute;width:100%}

/* Histoire : reprend .intro-story, photo verticale à droite */
.about-story .intro-story__content p+p{margin-top:16px}
.about-story__image{aspect-ratio:4/5;position:relative}

/* Parcours : 4 étapes numérotées, reliées par un filet doré sur grand écran */
.about-path{padding-top:0}
.about-path__list{counter-reset:none;display:grid;gap:24px;grid-template-columns:repeat(4,minmax(0,1fr));list-style:none;margin:0;padding:0;position:relative}
.about-step{background:var(--surface-alt);padding:36px 28px 32px;position:relative}
.about-step::before{background:var(--gold);content:'';height:2px;left:28px;position:absolute;top:0;width:40px}
.about-step__number{color:var(--gold);display:block;font-family:var(--font-serif);font-size:44px;font-style:italic;line-height:1}
.about-step__place{color:var(--sage);display:block;font-size:10px;letter-spacing:.16em;margin-top:18px;text-transform:uppercase}
.about-step h3{color:var(--ink);font-family:var(--font-serif);font-size:28px;font-weight:500;line-height:1.02;margin:10px 0 14px}
.about-step p{color:var(--muted);font-size:15px;font-weight:300;line-height:1.6;margin:0}

/* En images : trois photos verticales légendées */
.about-gallery{padding-top:0}
.about-gallery__grid{display:grid;gap:16px;padding-bottom:40px;grid-template-columns:repeat(3,minmax(0,1fr))}
.about-gallery__item{margin:0}
.about-gallery__item picture{aspect-ratio:4/5;display:block;overflow:hidden;position:relative}
.about-gallery__item--set{transform:translateY(40px)}
.about-gallery__item figcaption{color:var(--ink);font-family:var(--font-serif);font-size:22px;font-style:italic;margin-top:14px}

/* Philosophie + signature manuscrite */
.about-philosophy{background:var(--surface-alt);margin:clamp(48px,6vw,96px) auto 0;max-width:1120px;padding:clamp(56px,8vw,104px) clamp(24px,8vw,120px);text-align:center}
.about-philosophy blockquote{color:var(--ink);font-family:var(--font-serif);font-size:clamp(30px,3.6vw,48px);font-weight:500;line-height:1.08;margin:26px auto 22px;max-width:820px}
.about-philosophy p{color:var(--muted);font-weight:300;margin:0 auto;max-width:620px}
.about-signature{display:block;height:auto;margin:36px auto 0;max-width:240px;opacity:.9;width:60%}

/* Deux CTA finaux : Domicile / Demeure */
.about-cta__grid{display:grid;gap:24px;grid-template-columns:1fr 1fr}
.about-offer{color:var(--cream);display:block;min-height:440px;overflow:hidden;position:relative;text-decoration:none}
.about-offer picture{inset:0;position:absolute;transition:transform .6s}
.about-offer::after{background:linear-gradient(180deg,rgba(20,9,10,.1) 15%,rgba(20,9,10,.55) 50%,rgba(20,9,10,.86));content:'';inset:0;position:absolute}
.about-offer:hover picture{transform:scale(1.04)}
.about-offer__body{bottom:0;left:0;padding:36px;position:absolute;right:0;z-index:1}
.about-offer h3{font-family:var(--font-serif);font-size:clamp(34px,3.4vw,46px);font-weight:500;line-height:1;margin:0 0 10px}
.about-offer p{color:rgba(247,243,237,.85);font-weight:300;margin:0 0 22px;max-width:380px}
.about-offer .button--primary{background:var(--gold);color:var(--cream)}
.about-offer:focus-visible{outline:2px solid var(--gold);outline-offset:4px}

@media(max-width:1100px){.about-path__list{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:900px){
  .about-hero{grid-template-columns:1fr;min-height:0}
  .about-hero__content{padding:120px 20px 48px}
  .about-hero__image{aspect-ratio:4/5;min-height:0}
  .about-story__image{order:-1}
  .about-cta__grid{grid-template-columns:1fr}
  .about-offer{min-height:380px}
}
@media(max-width:640px){
  .about-path__list{grid-template-columns:1fr}
  .about-gallery__grid{gap:24px;grid-template-columns:1fr}
  .about-gallery__item--set{transform:none}
  .about-gallery__grid{padding-bottom:0}
  .about-offer__body{padding:24px}
  .about-offer .button{width:100%}
  .about-hero p{font-size:16px}
}
@media(prefers-reduced-motion:reduce){.about-offer picture{transition:none}.about-offer:hover picture{transform:none}}
