:root{
  --terre:#8E2B12;
  --terre-deep:#4F1707;
  --safran:#D49B2A;
  --safran-soft:#F1CB6D;
  --creme:#FBF4E2;
  --creme-deep:#F2E6C5;
  --ink:#2A1F12;
  --rule:#D8C6A2;
  --muted:#7A6C50;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;font-family:'Inter',system-ui,sans-serif;color:var(--ink);background:var(--creme);font-size:16px;line-height:1.7;-webkit-font-smoothing:antialiased}
@media (prefers-reduced-motion: reduce){*{animation:none!important;transition:none!important}html{scroll-behavior:auto}}
a{color:var(--terre);text-decoration:underline;text-underline-offset:3px}
a:hover{color:var(--safran)}
a:focus-visible,button:focus-visible{outline:3px solid var(--safran);outline-offset:3px}
.skip{position:absolute;left:-999px;top:0;background:var(--terre);color:#fff;padding:.5rem 1rem;z-index:99}
.skip:focus{left:0}

h1,h2,h3,h4{font-family:'Fraunces','Georgia',serif;line-height:1.1;margin:0;font-weight:600;color:var(--terre-deep)}
.display{font-size:clamp(2.8rem,7vw,6rem);letter-spacing:-.02em;font-weight:700}

/* Cover band, distinct from all previous heroes */
.cover{padding:6rem 6vw 5rem;text-align:center;background:var(--terre-deep);color:var(--creme);position:relative;overflow:hidden}
.cover::before,.cover::after{
  content:'';position:absolute;left:50%;transform:translateX(-50%);
  width:80%;height:8px;
  background:repeating-linear-gradient(90deg,var(--safran) 0 12px,transparent 12px 24px);
  opacity:.6;
}
.cover::before{top:1.5rem}
.cover::after{bottom:1.5rem}
.cover .ornament{font-family:'Fraunces',serif;font-size:1rem;letter-spacing:.4em;color:var(--safran);text-transform:uppercase;margin-bottom:1.2rem;font-style:italic}
.cover h1{color:var(--creme)}
.cover h1 em{font-style:italic;color:var(--safran);font-weight:400}
.cover .tagline{font-family:'Fraunces',serif;font-style:italic;font-size:clamp(1.1rem,2vw,1.5rem);color:var(--safran-soft);margin-top:1.5rem;max-width:40ch;margin-left:auto;margin-right:auto;line-height:1.4}
.cover .meta-row{display:flex;justify-content:center;gap:3rem;flex-wrap:wrap;margin-top:2.5rem;font-family:'Inter',sans-serif;font-size:.82rem;text-transform:uppercase;letter-spacing:.18em;color:rgba(251,244,226,.55)}
.cover .meta-row span strong{display:block;color:var(--safran);font-family:'Fraunces',serif;font-size:1.2rem;font-style:italic;text-transform:none;letter-spacing:0;margin-top:.3rem;font-weight:600}

/* Section frame */
.frame{padding:6rem 6vw}
.frame-creme{background:var(--creme)}
.frame-cream-deep{background:var(--creme-deep)}
.frame-terre{background:var(--terre);color:var(--creme)}
.frame-terre h2{color:var(--creme)}
.frame-safran{background:var(--safran);color:var(--ink)}

/* Section header with arabic-inspired ornament rule */
.section-title{text-align:center;margin-bottom:3rem}
.section-title .label{font-family:'Fraunces',serif;font-style:italic;font-size:1rem;letter-spacing:.16em;text-transform:uppercase;color:var(--safran);margin-bottom:1rem;display:inline-block}
.frame-creme .section-title .label,.frame-cream-deep .section-title .label{color:var(--terre)}
.section-title h2{font-size:clamp(2.2rem,4.6vw,3.6rem)}
.section-title .rule{display:flex;align-items:center;justify-content:center;margin:1.2rem auto 0;max-width:200px}
.section-title .rule::before,.section-title .rule::after{content:'';flex:1;height:1px;background:currentColor;opacity:.3}
.section-title .rule .diamond{margin:0 .8rem;color:var(--safran);font-size:1.2rem}

/* CARTE — vraie carte typographique (variation propre) */
.carte{max-width:780px;margin:0 auto}
.carte-section{margin-bottom:3rem}
.carte-section h3{font-family:'Fraunces',serif;font-size:1.6rem;font-style:italic;color:var(--terre-deep);margin-bottom:1.5rem;text-align:center}
.frame-terre .carte-section h3{color:var(--safran)}
.dish{display:flex;align-items:baseline;gap:.8rem;padding:.9rem 0;border-bottom:1px dotted var(--rule)}
.frame-terre .dish{border-bottom-color:rgba(212,155,42,.3)}
.dish-name{font-family:'Fraunces',serif;font-size:1.25rem;font-weight:600;color:var(--terre-deep);white-space:nowrap;flex-shrink:0}
.frame-terre .dish-name{color:var(--creme)}
.dish-desc{flex:1;color:var(--muted);font-size:.95rem;font-style:italic;line-height:1.4;border-bottom:1px dotted var(--rule);align-self:flex-end;margin-bottom:.2rem;padding-bottom:0}
.frame-terre .dish-desc{color:var(--safran-soft);border-bottom-color:rgba(212,155,42,.2)}
.dish-price{font-family:'Fraunces',serif;font-size:1.3rem;color:var(--terre);font-weight:600;white-space:nowrap;flex-shrink:0}
.frame-terre .dish-price{color:var(--safran)}
.dish-veg::after{content:' · v';font-size:.7rem;color:var(--safran);font-weight:700;letter-spacing:.1em}

/* Banner stripes (decorative tile pattern in CSS) */
.tile-band{height:50px;background:
  linear-gradient(135deg,transparent 25%,var(--safran) 25%,var(--safran) 50%,transparent 50%,transparent 75%,var(--safran) 75%) 0 0/40px 40px,
  var(--terre-deep);
  opacity:.85;
}

/* Histoire — two-col */
.histoire-grid{max-width:980px;margin:0 auto;display:grid;grid-template-columns:1fr 1fr;gap:4rem}
.histoire-col h3{font-family:'Fraunces',serif;font-style:italic;font-size:1.5rem;margin-bottom:1rem;color:var(--terre)}
.histoire-col p{font-size:1.05rem;color:var(--muted);line-height:1.7}
.histoire-col p strong{color:var(--terre-deep);font-weight:600}
@media (max-width:780px){.histoire-grid{grid-template-columns:1fr;gap:2.5rem}}

/* Services trio */
.services-trio{display:grid;grid-template-columns:repeat(3,1fr);gap:2rem;max-width:1100px;margin:0 auto}
.serv-card{background:var(--creme);padding:2rem;border:1px solid rgba(251,244,226,.2);text-align:center;color:var(--ink)}
.serv-card .icon{font-family:'Fraunces',serif;font-size:3.5rem;line-height:1;color:var(--terre);display:block;margin-bottom:1rem;font-style:italic}
.serv-card h3{font-size:1.4rem;color:var(--terre-deep);margin-bottom:.7rem}
.serv-card p{color:var(--muted);font-size:.97rem;margin:0}
@media (max-width:780px){.services-trio{grid-template-columns:1fr;gap:1.5rem}}

/* Quote band */
.quote-band{padding:5rem 6vw;text-align:center;background:var(--safran);color:var(--terre-deep)}
.quote-band blockquote{font-family:'Fraunces',serif;font-style:italic;font-size:clamp(1.4rem,3vw,2.4rem);max-width:32ch;margin:0 auto;line-height:1.4;font-weight:600}
.quote-band cite{display:block;margin-top:1.5rem;font-style:normal;font-family:'Inter',sans-serif;font-size:.78rem;text-transform:uppercase;letter-spacing:.2em;color:var(--terre-deep)}

/* Pratique 3-col */
.pratique-grid{max-width:980px;margin:0 auto;display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--rule);border:1px solid var(--rule)}
.pratique-cell{background:var(--creme);padding:1.8rem;text-align:center}
.pratique-cell .label{font-family:'Inter',sans-serif;font-size:.72rem;letter-spacing:.18em;text-transform:uppercase;color:var(--muted);display:block;margin-bottom:.6rem}
.pratique-cell .v{font-family:'Fraunces',serif;font-size:1.3rem;color:var(--terre-deep);font-weight:600}
.pratique-cell a{color:var(--terre-deep);text-decoration:none}
@media (max-width:680px){.pratique-grid{grid-template-columns:1fr}}

/* FAQ */
.faq-list{max-width:780px;margin:0 auto}
.faq-item{border-bottom:1px solid var(--rule)}
.faq-item summary{padding:1.2rem 0;cursor:pointer;font-family:'Fraunces',serif;font-size:1.3rem;color:var(--terre-deep);list-style:none;display:flex;justify-content:space-between;align-items:center;font-weight:600}
.faq-item summary::-webkit-details-marker{display:none}
.faq-item summary::after{content:'+';font-size:1.8rem;color:var(--safran);transition:transform .2s;font-weight:400}
.faq-item[open] summary::after{content:'×'}
.faq-item p{padding:0 0 1.2rem;color:var(--muted);font-style:italic}

/* Contact final big */
.contact-final{padding:6rem 6vw;background:var(--terre-deep);color:var(--creme);text-align:center}
.contact-final h2{color:var(--creme);font-size:clamp(2rem,4vw,3.2rem)}
.contact-final h2 em{color:var(--safran);font-style:italic}
.contact-final .phone-big{display:inline-block;margin:2rem 0 1rem;font-family:'Fraunces',serif;font-style:italic;font-weight:600;font-size:clamp(2rem,5vw,3.5rem);color:var(--safran);text-decoration:none;border-bottom:2px dotted var(--safran);padding-bottom:.3rem}
.contact-final .phone-big:hover{color:var(--creme);border-bottom-color:var(--creme)}
.contact-final p{color:rgba(251,244,226,.7)}

footer{padding:1.5rem 0;background:#000;color:rgba(251,244,226,.5);font-size:.85rem;text-align:center}
