:root{
  --ground:#faf3e8;
  --ground-raised:#ffffff;
  --ink:#2c1810;
  --ink-soft:#6b5344;
  --spice:#a8471f;
  --spice-deep:#7c3413;
  --gold:#b8862f;
  --gold-soft:#e8d4a8;
  --line:#e2d3ba;
  --ok:#3f7a4e;
  --ok-soft:#e1efe3;
  --danger:#a5402f;
  --danger-soft:#f6e3df;
  --shadow:0 12px 32px -16px rgba(44,24,16,0.28);
}

*{box-sizing:border-box;}
body{
  margin:0;
  background:var(--ground);
  color:var(--ink);
  font-family:'Jost', 'Work Sans', sans-serif;
  padding-inline:20px;
}
h1,h2,h3,.brand{
  font-family:'Cormorant Garamond', 'Marcellus', Georgia, serif;
}
a{color:inherit;}
img{max-width:100%;display:block;}
button{font-family:inherit;}

.wrap{max-width:1040px;margin:0 auto;}
.wrap-wide{max-width:1180px;margin:0 auto;}

.maquette-flag{
  max-width:1180px;margin:18px auto 0;
  background:var(--gold-soft);border:1px solid var(--gold);
  color:var(--ink);border-radius:10px;
  padding:10px 16px;font-size:0.85rem;letter-spacing:0.01em;
}
.maquette-flag b{color:var(--spice-deep);}

.eyebrow{
  font-size:0.8rem;letter-spacing:0.14em;text-transform:uppercase;
  color:var(--gold);font-weight:600;
}
.btn{
  display:inline-flex;align-items:center;gap:8px;
  padding:13px 24px;border-radius:999px;font-size:0.92rem;
  text-decoration:none;font-weight:500;border:none;cursor:pointer;
}
.btn-primary{background:var(--spice);color:#fff8ef;}
.btn-ghost{border:1px solid var(--line);color:var(--ink);background:transparent;}
.btn-sm{padding:8px 16px;font-size:0.82rem;}

.flash{
  background:var(--ok-soft);color:var(--ok);border:1px solid var(--ok);
  border-radius:10px;padding:10px 16px;margin-bottom:16px;font-size:0.9rem;
}

/* ---- header / nav (site public) ---- */
header.site{
  display:flex;align-items:center;justify-content:space-between;
  padding-block:22px;border-bottom:1px solid var(--line);
  max-width:1040px;margin:0 auto;flex-wrap:wrap;gap:12px;
}
.brand{font-size:1.5rem;font-weight:600;letter-spacing:0.02em;}
.brand em{font-style:normal;color:var(--spice);}
nav.site a{font-size:0.85rem;text-transform:uppercase;letter-spacing:0.06em;text-decoration:none;color:var(--ink-soft);}
footer.site{border-top:1px solid var(--line);padding-block:26px 40px;text-align:center;color:var(--ink-soft);font-size:0.85rem;}

/* ---- carte publique ---- */
.carte-hero{padding-block:34px 0;}
.carte-hero h1{font-size:clamp(1.9rem,4.6vw,2.6rem);margin:0 0 22px;}
.delivery-note{
  display:flex;gap:12px;align-items:flex-start;
  background:var(--ground-raised);border:1px solid var(--line);border-radius:14px;
  padding:16px 18px;margin-block:28px;font-size:0.9rem;color:var(--ink-soft);line-height:1.55;
}
.delivery-note .ic{font-size:1.3rem;line-height:1;}
.delivery-note b{color:var(--ink);font-weight:600;}
.menu-list{padding-block:12px 60px;display:grid;gap:20px;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));}
.menu-item{background:var(--ground-raised);border:1px solid var(--line);border-radius:16px;overflow:hidden;box-shadow:var(--shadow);display:flex;flex-direction:column;}
.menu-item .pic{aspect-ratio:1/1;}
.menu-item .pic img{width:100%;height:100%;object-fit:cover;}
.menu-item .info{padding:18px 18px 20px;display:flex;flex-direction:column;gap:10px;flex:1;}
.menu-item h3{font-size:1.15rem;margin:0;line-height:1.25;}
.menu-item .story{font-size:0.85rem;color:var(--ink-soft);line-height:1.55;margin:0;}
.price-tiers{display:flex;flex-direction:column;gap:6px;padding-top:12px;border-top:1px dashed var(--line);margin-top:auto;}
.price-tiers .tier{display:flex;justify-content:space-between;align-items:baseline;font-size:0.88rem;}
.price-tiers .tier .label{color:var(--ink-soft);}
.price-tiers .tier .amount{font-weight:600;color:var(--spice-deep);font-variant-numeric:tabular-nums;}
.price-tiers .tier .amount small{font-weight:400;color:var(--ink-soft);}
.options-note{font-size:0.78rem;color:var(--ink-soft);border-top:1px dashed var(--line);padding-top:10px;line-height:1.5;}

/* ---- GATE (mot de passe) ---- */
.gate-box{
  max-width:420px;margin:14vh auto 0;background:var(--ground-raised);
  border:1px solid var(--line);border-radius:18px;box-shadow:var(--shadow);
  padding:34px 30px;text-align:center;
}
.gate-box h1{font-size:1.6rem;margin:6px 0 10px;}
.gate-box p{color:var(--ink-soft);font-size:0.92rem;margin:0 0 20px;line-height:1.5;}
.gate-box form{display:flex;flex-direction:column;gap:12px;}
.gate-box input{
  border:1px solid var(--line);border-radius:10px;padding:12px 14px;
  background:var(--ground);color:var(--ink);font-family:inherit;font-size:0.95rem;text-align:center;
}
.gate-box .btn{justify-content:center;}
.gate-error{color:var(--danger)!important;font-size:0.86rem!important;margin-top:14px!important;}

.admin-topbar{
  display:flex;justify-content:space-between;align-items:center;
  padding-block:18px;border-bottom:1px solid var(--line);margin-bottom:8px;flex-wrap:wrap;gap:10px;
}
.admin-topbar .brand{font-size:1.2rem;}
.admin-topbar .sub{color:var(--ink-soft);font-family:'Jost',sans-serif;font-size:0.85rem;}
.admin-topbar a{font-size:0.85rem;color:var(--ink-soft);text-decoration:none;}

/* ---- ESPACE FATIMA (admin) ---- */
.admin-shell{padding-block:26px 70px;display:grid;grid-template-columns:220px 1fr;gap:26px;}
.admin-head{margin-bottom:4px;}
.admin-head h1{font-size:1.9rem;margin:0 0 4px;}
.admin-sidebar{display:flex;flex-direction:column;gap:4px;border-right:1px solid var(--line);padding-right:18px;height:fit-content;}
.admin-tab{
  text-align:left;padding:10px 12px;border-radius:10px;border:none;background:transparent;
  color:var(--ink-soft);font-size:0.92rem;cursor:pointer;text-decoration:none;display:block;
}
.admin-tab[aria-current="true"]{background:var(--ground-raised);color:var(--spice-deep);font-weight:600;box-shadow:var(--shadow);}
.admin-panel{min-width:0;}
.panel-head{display:flex;justify-content:space-between;align-items:flex-end;gap:16px;margin-bottom:18px;flex-wrap:wrap;}
.panel-head h2{font-size:1.5rem;margin:0 0 4px;}
.panel-head p{color:var(--ink-soft);margin:0;font-size:0.88rem;}

.card-block{
  background:var(--ground-raised);border:1px solid var(--line);border-radius:16px;
  box-shadow:var(--shadow);padding:20px 22px;margin-bottom:20px;
}
.card-block h3{font-size:1.02rem;margin:0 0 14px;}

table.admin-table{width:100%;border-collapse:collapse;font-size:0.88rem;}
table.admin-table th{
  text-align:left;font-size:0.72rem;text-transform:uppercase;letter-spacing:0.06em;
  color:var(--ink-soft);font-weight:600;padding:0 10px 10px;border-bottom:1px solid var(--line);
}
table.admin-table td{padding:10px;border-bottom:1px solid var(--line);vertical-align:middle;}
table.admin-table tr:last-child td{border-bottom:none;}
.prod-thumb{width:44px;height:44px;border-radius:8px;object-fit:cover;}
.prod-name{font-weight:600;}
.prod-name .sub{display:block;font-weight:400;color:var(--ink-soft);font-size:0.78rem;}
.pill{display:inline-flex;align-items:center;gap:5px;padding:3px 11px;border-radius:999px;font-size:0.76rem;font-weight:600;}
.pill-ok{background:var(--ok-soft);color:var(--ok);}
.pill-off{background:var(--danger-soft);color:var(--danger);}
.table-actions{display:flex;gap:8px;}
.icon-btn{border:1px solid var(--line);background:var(--ground-raised);border-radius:8px;padding:6px 10px;font-size:0.8rem;cursor:pointer;color:var(--ink-soft);text-decoration:none;display:inline-block;}
td.num{font-variant-numeric:tabular-nums;white-space:nowrap;}

.form-grid{display:grid;grid-template-columns:180px 1fr 1fr;gap:16px;}
.field{display:flex;flex-direction:column;gap:6px;}
.field label{font-size:0.78rem;color:var(--ink-soft);}
.field input, .field textarea{
  border:1px solid var(--line);border-radius:9px;padding:9px 11px;
  background:var(--ground);color:var(--ink);font-family:inherit;font-size:0.9rem;
}
.field textarea{resize:vertical;min-height:64px;}
.field-span2{grid-column:span 2;}
.field-span3{grid-column:1/-1;}
.upload-zone{
  border:1.5px dashed var(--line);border-radius:12px;overflow:hidden;
  aspect-ratio:1/1;display:flex;align-items:center;justify-content:center;
  color:var(--ink-soft);font-size:0.8rem;text-align:center;padding:10px;background:var(--ground);
}
.upload-zone img{width:100%;height:100%;object-fit:cover;}
.checkline{display:flex;align-items:center;gap:8px;font-size:0.86rem;color:var(--ink-soft);}
.checkline input{width:15px;height:15px;}
.form-actions{display:flex;gap:10px;justify-content:flex-end;margin-top:16px;}

.setting-row{display:flex;justify-content:space-between;align-items:center;gap:16px;padding-block:12px;border-bottom:1px solid var(--line);}
.setting-row:last-child{border-bottom:none;}
.setting-row .desc{max-width:60ch;}
.setting-row .desc b{display:block;font-size:0.92rem;color:var(--ink);}
.setting-row .desc span{font-size:0.82rem;color:var(--ink-soft);}
.setting-row .val{display:flex;align-items:center;gap:8px;flex:none;}
.setting-row .val input{
  width:80px;border:1px solid var(--line);border-radius:9px;padding:8px 10px;
  background:var(--ground);color:var(--ink);font-family:inherit;font-size:0.9rem;text-align:right;
}
.setting-row .val .unit{font-size:0.82rem;color:var(--ink-soft);}

.faq-row{border-bottom:1px solid var(--line);padding-block:14px;}
.faq-row:last-child{border-bottom:none;}
.faq-row .q{font-weight:600;font-size:0.94rem;margin-bottom:6px;}
.faq-row .a{font-size:0.86rem;color:var(--ink-soft);line-height:1.55;}

.pay-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:16px;}
.pay-card{border:1px solid var(--line);border-radius:14px;padding:18px;text-align:center;display:flex;flex-direction:column;gap:10px;align-items:center;background:var(--ground);}
.pay-card .logo{font-family:'Cormorant Garamond',serif;font-size:1.4rem;font-weight:700;}
.pay-card .status{font-size:0.78rem;color:var(--ink-soft);}

@media (max-width:760px){
  .admin-shell{grid-template-columns:1fr;}
  .admin-sidebar{flex-direction:row;flex-wrap:wrap;border-right:none;border-bottom:1px solid var(--line);padding-right:0;padding-bottom:12px;}
  .form-grid{grid-template-columns:1fr 1fr;}
  .form-grid .field-span2, .upload-zone{grid-column:1/-1;}
}
@media (max-width:640px){
  header.site{flex-direction:column;gap:10px;align-items:flex-start;}
  .menu-list{grid-template-columns:1fr;}
  .form-grid{grid-template-columns:1fr;}
}
