:root{
  --ink:#17130F;
  --ink-soft:#5B5348;
  --paper:#FFFFFF;
  --line:rgba(23,19,15,0.14);
  --line-soft:rgba(23,19,15,0.08);
  --plum:#C2402A;
}
@media (prefers-color-scheme: dark){
  :root:not([data-theme="light"]){
    --ink:#EFEAE1;
    --ink-soft:#B4AA9A;
    --paper:#121009;
    --line:rgba(239,234,225,0.18);
    --line-soft:rgba(239,234,225,0.1);
    --plum:#F0917E;
  }
}
:root[data-theme="dark"]{
  --ink:#EFEAE1;
  --ink-soft:#B4AA9A;
  --paper:#121009;
  --line:rgba(239,234,225,0.18);
  --line-soft:rgba(239,234,225,0.1);
  --plum:#F0917E;
}

*{box-sizing:border-box;}
body{
  background:var(--paper);
  color:var(--ink);
  margin:0;
  font-family:"Archivo", -apple-system, "Segoe UI", sans-serif;
  line-height:1.6;
  -webkit-font-smoothing:antialiased;
  display:flex;flex-direction:column;
  min-height:100vh;min-height:100dvh;
}
/* Pied de page collé en bas quand la page est courte ; l'accueil est centré dans l'espace libre */
main{flex:1 0 auto;}
main:has(> .hero){display:flex;flex-direction:column;justify-content:center;}
main > .hero{width:100%;}
h1,h2,h3{
  font-family:"Fraunces", Georgia, "Iowan Old Style", serif;
  font-weight:440;
  text-wrap:balance;
  margin:0;
  color:var(--plum);
}
em{font-style:italic;}
p{margin:0;text-align:justify;text-align-last:left;}
blockquote{text-align:justify;text-align-last:left;}
a{color:inherit;}
:focus-visible{outline:2px solid var(--plum);outline-offset:2px;}
.wrap{max-width:640px;margin:0 auto;padding-inline:20px;}
.wrap-wide{max-width:1160px;margin:0 auto;padding-inline:20px;}

.caps{text-transform:uppercase;letter-spacing:0.11em;font-weight:600;}

.topnav{
  padding-block:16px;
  border-bottom:1px solid var(--line);
}
.topnav-row{
  display:flex;align-items:center;justify-content:space-between;
  gap:16px;flex-wrap:wrap;
}
.nav-group{display:flex;align-items:center;gap:22px;flex-wrap:wrap;}
.brand-link{
  font-family:"Fraunces", serif;
  font-style:italic;
  font-weight:500;
  font-size:1.02rem;
  text-decoration:none;
  display:inline-flex;align-items:center;gap:9px;
}
.brand-link img{width:24px;height:24px;display:block;}
@media (prefers-color-scheme: dark){
  :root:not([data-theme="light"]) .brand-link img{filter:invert(1);}
}
:root[data-theme="dark"] .brand-link img{filter:invert(1);}

.nav-links{
  display:flex;align-items:center;gap:22px;flex-wrap:wrap;
  font-size:0.78rem;letter-spacing:0.08em;text-transform:uppercase;font-weight:600;
}
.nav-links a{
  text-decoration:none;color:var(--ink-soft);
  padding-block:4px;border-bottom:1px solid transparent;
}
.nav-links a.is-active{color:var(--ink);border-bottom-color:var(--plum);}

.btn-book{
  font-size:0.76rem;letter-spacing:0.08em;text-transform:uppercase;font-weight:700;
  border:1px solid var(--ink);color:var(--ink);text-decoration:none;
  padding:9px 16px;white-space:nowrap;
}
.btn-book.is-active{background:var(--ink);color:var(--paper);}

.mobile-break{display:none;}
@media (max-width:640px){
  .topnav-row{display:block;text-align:center;}
  .mobile-break{display:inline;}
  .nav-group{display:inline-flex;align-items:center;margin-top:12px;flex-wrap:nowrap;gap:12px;vertical-align:top;}
  .nav-links{flex-wrap:nowrap;gap:12px;font-size:0.66rem;letter-spacing:0.03em;}
  .btn-book{padding:6px 10px;font-size:0.64rem;letter-spacing:0.03em;}
}

/* ---- pages ---- */
.page{padding-block:52px 72px;}
.page-head{margin-bottom:30px;}
.page-head .eyebrow{display:block;margin-bottom:10px;font-size:0.76rem;color:var(--plum);}
.page-head h2{font-size:clamp(1.6rem,4.2vw,2.1rem);}
.page-head p{color:var(--ink-soft);margin-top:12px;max-width:52ch;}

/* ---- accueil / hero ---- */
.hero{padding-block:clamp(24px,4vh,56px) clamp(28px,5vh,72px);}
.hero-grid{display:grid;grid-template-columns:auto 1fr 0.95fr;gap:48px;align-items:center;}
.hero-logo-col{align-self:center;}
.hero-photo{align-self:stretch;}
.hero-photo img{width:100%;height:100%;max-height:min(600px, calc(100vh - 340px));object-fit:cover;display:block;}
.logo-mark-hero{width:210px;height:210px;display:block;}
@media (prefers-color-scheme: dark){
  :root:not([data-theme="light"]) .logo-mark-hero{filter:invert(1);}
}
:root[data-theme="dark"] .logo-mark-hero{filter:invert(1);}
.eyebrow{display:inline-block;font-size:0.78rem;letter-spacing:0.09em;text-transform:uppercase;color:var(--plum);font-weight:600;margin-bottom:16px;}
.hero h1{font-size:clamp(2.1rem,5vw,2.9rem);line-height:1.06;}
.hero .tagline{margin-top:18px;font-size:1.08rem;color:var(--ink-soft);max-width:36ch;}
.meta-line{margin-top:24px;font-size:0.86rem;color:var(--ink-soft);}
.meta-line span{color:var(--plum);font-weight:600;}
.meta-line span + span::before{content:" \00b7 ";padding-inline:2px;}
.cta-row{margin-top:32px;display:flex;gap:24px;flex-wrap:wrap;align-items:center;}
.hero-note{margin-top:18px;font-size:0.82rem;color:var(--ink-soft);font-style:italic;max-width:36ch;}
@media (max-width:800px){
  .hero-grid{grid-template-columns:1fr;gap:32px;}
  .hero-photo img{max-height:360px;}
  .logo-mark-hero{margin-inline:auto;}
}
.btn-primary{
  display:inline-flex;align-items:center;justify-content:center;
  padding:13px 24px;font-weight:600;font-size:0.92rem;
  text-decoration:none;background:var(--ink);color:var(--paper);
  letter-spacing:0.02em;
}
.btn-text{
  font-size:0.9rem;font-weight:600;text-decoration:underline;text-underline-offset:4px;
  color:var(--ink);
}

/* ---- ardoise / formule ---- */
.ardoise{border:1px solid var(--line);padding:26px 24px;}
.ardoise-top{
  display:flex;justify-content:space-between;align-items:baseline;gap:12px;flex-wrap:wrap;
  border-bottom:1px dashed var(--line);padding-bottom:14px;margin-bottom:16px;
}
.ardoise-top h3{font-size:1.15rem;font-style:italic;font-weight:500;}
.ardoise-top .when{font-size:0.8rem;color:var(--ink-soft);}
.formule{display:flex;justify-content:space-between;align-items:center;gap:12px;padding-block:11px;border-bottom:1px solid var(--line-soft);}
.formule:last-child{border-bottom:none;}
.formule .name{font-size:0.96rem;}
.formule .price{font-family:"Fraunces", serif;font-weight:600;color:var(--plum);white-space:nowrap;font-variant-numeric:tabular-nums;}

.subhead{display:block;margin-top:96px;padding-top:40px;border-top:1px solid var(--line);margin-bottom:4px;font-size:0.76rem;color:var(--plum);}
.subhead + h3{font-size:1.3rem;margin-bottom:14px;}

/* plat list */
.plat-list{margin-top:4px;}
.plat-row{display:flex;gap:16px;align-items:baseline;padding-block:15px;border-bottom:1px solid var(--line-soft);}
.plat-row:first-child{border-top:1px solid var(--line-soft);}
.plat-num{font-size:0.72rem;color:var(--plum);font-variant-numeric:tabular-nums;flex:none;width:1.6em;}
.plat-body h3{font-style:italic;font-weight:500;font-size:1.02rem;}
.plat-body p{opacity:0.72;font-size:0.86rem;margin-top:4px;}

/* menu du jour */
.menu-updated{margin-top:2px;font-size:0.8rem;color:var(--ink-soft);font-style:italic;}
.menu-cat{margin-top:28px;}
.menu-cat:first-child{margin-top:0;}
.menu-cat h4{font-size:0.82rem;letter-spacing:0.04em;text-transform:uppercase;color:var(--plum);margin-bottom:6px;}
.menu-list{margin-top:4px;}
.menu-row{display:flex;justify-content:space-between;align-items:baseline;gap:16px;padding-block:13px;border-bottom:1px solid var(--line-soft);}
.menu-row:first-child{border-top:1px solid var(--line-soft);}
.menu-body h5{font-style:italic;font-weight:500;font-size:0.98rem;margin:0;color:var(--plum);}
.menu-body p{opacity:0.72;font-size:0.85rem;margin-top:3px;}
.menu-price{font-family:"Fraunces", serif;font-weight:600;color:var(--plum);white-space:nowrap;font-variant-numeric:tabular-nums;flex:none;}

.order-strip{margin-top:22px;display:flex;align-items:center;gap:8px;flex-wrap:wrap;font-size:0.85rem;opacity:0.85;row-gap:4px;}
.order-strip a{color:var(--plum);font-weight:600;text-decoration:none;border-bottom:1px solid currentColor;}
.order-contact{display:inline-flex;align-items:center;gap:8px;white-space:nowrap;}

/* traiteur */
.traiteur-list{margin-top:4px;}
.traiteur-item{display:flex;gap:12px;align-items:baseline;padding-block:12px;border-bottom:1px solid var(--line-soft);}
.traiteur-item:first-child{border-top:1px solid var(--line-soft);}
.traiteur-item .dash{color:var(--plum);flex:none;}
.traiteur-item p{font-size:0.92rem;}

/* a propos */
.apropos blockquote{
  margin:0;font-family:"Fraunces", serif;font-style:italic;font-weight:400;
  font-size:1.3rem;line-height:1.5;border-left:2px solid var(--plum);padding-left:20px;
  max-width:46ch;
}
.apropos p.bio{margin-top:24px;opacity:0.78;font-size:0.94rem;max-width:60ch;}
.apropos p.story{margin-bottom:28px;font-size:1.02rem;line-height:1.7;max-width:62ch;}
.apropos-photo{margin-bottom:36px;max-width:720px;}
.apropos-photo img{width:100%;height:auto;display:block;}
.apropos-illu-wrap{margin-bottom:40px;background:none;display:flex;justify-content:center;padding:8px 16px;max-width:720px;}
.apropos-illu{width:100%;max-width:360px;height:auto;display:block;}

/* infos */
.infos-grid{display:grid;grid-template-columns:1fr 1fr;gap:40px;}
@media (max-width:560px){.infos-grid{grid-template-columns:1fr;gap:32px;}}
.infos-photo{margin-top:48px;background:none;display:flex;justify-content:center;padding:8px 16px;}
.infos-illu{width:100%;max-width:480px;height:auto;display:block;}
.carte-illu-wrap{margin:24px 0 40px;display:flex;justify-content:center;padding:8px 16px;}
.carte-illu{width:100%;max-width:340px;height:auto;display:block;}
.infos-grid h3{font-size:0.78rem;margin-bottom:14px;color:var(--plum);}
.hours-table{width:100%;border-collapse:collapse;font-size:0.9rem;}
.hours-table td{padding:7px 0;border-bottom:1px solid var(--line-soft);}
.hours-table td:last-child{text-align:right;font-variant-numeric:tabular-nums;color:var(--ink-soft);}
.hours-table tr.closed td:last-child{color:var(--ink-soft);opacity:0.6;}
.contact-line{display:flex;align-items:center;gap:10px;padding-block:9px;font-size:0.92rem;}
.contact-line a{text-decoration:none;color:inherit;}
.contact-line svg{flex:none;color:var(--plum);}

/* reservation form */
.resa-form{display:grid;gap:16px;margin-top:24px;}
.field{display:grid;gap:6px;}
.field label{font-size:0.8rem;color:var(--ink-soft);font-weight:600;}
.field label .req{color:var(--plum);}
.field input, .field select, .field textarea{
  font:inherit;font-size:1rem;padding:12px 12px;border:1px solid var(--line);
  background:var(--paper);color:var(--ink);min-height:46px;
}
.field textarea{resize:vertical;min-height:70px;}
.field .hint{font-size:0.76rem;color:var(--ink-soft);}
.row-2{display:grid;grid-template-columns:1fr 1fr;gap:14px;}
@media (max-width:520px){.row-2{grid-template-columns:1fr;}}
.resa-note{font-size:0.82rem;color:var(--ink-soft);}
.resa-error{font-size:0.85rem;color:var(--plum);display:none;}
.resa-success{font-size:0.9rem;font-weight:600;color:var(--plum);}
.resa-form button[type="submit"]{min-height:48px;border:none;cursor:pointer;}

footer{padding-block:28px 40px;border-top:1px solid var(--line);}
.footer-home{display:inline-flex;align-items:center;gap:6px;font-size:0.82rem;font-weight:600;color:var(--plum);text-decoration:none;margin-bottom:16px;}
.footer-home:hover{text-decoration:underline;}
.footer-row{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap;}
.footer-text{font-family:"Fraunces", serif;font-style:italic;font-size:0.86rem;color:var(--ink-soft);letter-spacing:0.01em;}
.footer-maps-link{color:inherit;text-decoration:underline;text-underline-offset:2px;}
.footer-maps-link:hover{color:var(--plum);}
.footer-note{margin-top:10px;font-size:0.76rem;color:var(--ink-soft);opacity:0.85;}
.footer-legal-link{display:inline-block;margin-top:10px;font-size:0.76rem;color:var(--ink-soft);text-decoration:underline;text-underline-offset:2px;}
.footer-legal-link:hover{color:var(--plum);}
.footer-social{display:flex;gap:14px;align-items:center;flex:none;}
.footer-social a{color:var(--ink-soft);display:inline-flex;text-decoration:none;}
.footer-social a:hover{color:var(--plum);}
.footer-social svg{width:17px;height:17px;display:block;}

/* mobile sticky action bar */
.stickybar{
  display:none;
  position:fixed;left:0;right:0;bottom:0;
  justify-content:center;align-items:center;gap:0;
  background:var(--paper);border-top:1px solid var(--line);
  padding:12px 16px calc(12px + env(safe-area-inset-bottom, 0px));
  z-index:20;
}
.stickybar a{
  flex:1;text-align:center;font-size:0.86rem;font-weight:600;letter-spacing:0.03em;
  text-decoration:none;color:var(--ink);padding-block:6px;
}
.stickybar .sep{width:1px;align-self:stretch;background:var(--line);margin-inline:4px;}
@media (max-width:640px){
  .stickybar{display:flex;}
  body{padding-bottom:56px;}
}

@media (prefers-reduced-motion: no-preference){
  .page{animation:rise .35s ease-out both;}
  @keyframes rise{from{opacity:0;transform:translateY(6px);}to{opacity:1;transform:translateY(0);}}
}


@media (max-width:640px){
  .page{padding-block:36px 44px;border-top:1px solid var(--line);}
  .hero.page{border-top:none;padding-top:44px;}
}
</style>

/* ---- illustrations (inline SVG) ---- */
.crt-ink{fill:none;stroke:var(--ink);stroke-width:5;stroke-linecap:round;stroke-linejoin:round;}
.crt-inkthin{fill:none;stroke:var(--ink);stroke-width:3;stroke-linecap:round;stroke-linejoin:round;}
.crt-steam{fill:none;stroke:var(--ink);stroke-width:3.5;stroke-linecap:round;opacity:0.35;}
.crt-red{fill:var(--plum);}
.crt-wood{fill:#C99A5B;stroke:var(--ink);stroke-width:3;stroke-linejoin:round;stroke-linecap:round;}
.crt-pot{fill:#F4EFE6;stroke:var(--ink);stroke-width:5;stroke-linejoin:round;stroke-linecap:round;}
.apr2-ink{fill:none;stroke:var(--ink);stroke-width:5;stroke-linecap:round;stroke-linejoin:round;}
.apr2-inkthin{fill:none;stroke:var(--ink);stroke-width:3;stroke-linecap:round;stroke-linejoin:round;}
.apr2-red{fill:var(--plum);}
.apr2-wheat{fill:#C99A5B;stroke:var(--ink);stroke-width:2.5;stroke-linejoin:round;}
.apr2-leaf{fill:#7C8B5A;stroke:var(--ink);stroke-width:3;stroke-linejoin:round;}
.apr2-basket{fill:none;stroke:var(--ink);stroke-width:4;stroke-linecap:round;stroke-linejoin:round;}
.illu-ink{fill:none;stroke:var(--ink);stroke-width:5;stroke-linecap:round;stroke-linejoin:round;}
.illu-inkfill{fill:var(--ink);}
.illu-red{fill:var(--plum);}
.illu-redline{fill:var(--plum);stroke:var(--ink);stroke-width:5;stroke-linejoin:round;stroke-linecap:round;}
.illu-wood{fill:#C99A5B;stroke:var(--ink);stroke-width:5;stroke-linejoin:round;stroke-linecap:round;}
.illu-glass{fill:none;stroke:var(--ink);stroke-width:4;stroke-linecap:round;stroke-linejoin:round;}
.illu-leaf{fill:#7C8B5A;stroke:var(--ink);stroke-width:3.5;stroke-linejoin:round;}

/* ---- server-side form feedback ---- */
.resa-error{display:block;}
.field.field-with-errors input, .field.field-with-errors select, .field.field-with-errors textarea{border-color:var(--plum);}
.field .field-error{font-size:0.76rem;color:var(--plum);}
.resa-form button[type="submit"]:disabled{opacity:0.6;cursor:wait;}
