:root{
  --sage-deep:#2E4635;
  --sage-mid:#5C7A5F;
  --sage-pale:#E6EFE1;
  --blush:#F7DBE0;
  --blush-deep:#E8879A;
  --cream:#FBF8F3;
  --ink:#22281D;
  --line:rgba(46,70,53,0.14);
  --radius:22px;
}
*{box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{
  margin:0;
  background:var(--cream);
  color:var(--ink);
  font-family:'Work Sans',sans-serif;
  font-size:16px;
  line-height:1.6;
  -webkit-font-smoothing:antialiased;
}
h1,h2,h3,.serif{
  font-family:'Fraunces',serif;
  font-weight:500;
  color:var(--sage-deep);
  margin:0;
  letter-spacing:-0.01em;
}
a{color:inherit;text-decoration:none;}
img{max-width:100%;display:block;}
.wrap{max-width:1180px;margin:0 auto;padding:0 32px;}

/* header */
header.site{
  position:sticky;top:0;z-index:40;
  background:rgba(251,248,243,0.88);
  backdrop-filter:blur(10px);
  border-bottom:1px solid var(--line);
}
.nav{
  display:flex;align-items:center;justify-content:space-between;
  padding:18px 0;
}
.logo{
  font-family:'Fraunces',serif;
  font-size:1.5rem;
  font-weight:600;
  color:var(--sage-deep);
  display:flex;align-items:center;gap:8px;
}
.logo .dot{
  width:9px;height:9px;border-radius:50%;
  background:var(--blush-deep);
  display:inline-block;
}
.nav-links{
  display:flex;gap:34px;
  font-size:0.95rem;
}
.nav-links a{
  position:relative;padding:4px 0;color:var(--ink);
  transition:color .2s;
}
.nav-links a:hover{color:var(--sage-deep);}
.nav-links a.active{color:var(--sage-deep);font-weight:600;}
.btn{
  display:inline-flex;align-items:center;gap:8px;
  padding:12px 24px;
  border-radius:999px;
  font-size:0.92rem;
  font-weight:600;
  border:1px solid transparent;
  cursor:pointer;
  transition:transform .18s ease, box-shadow .18s ease;
}
.btn:hover{transform:translateY(-1px);}
.btn-primary{
  background:var(--sage-deep);
  color:var(--cream);
}
.btn-primary:hover{box-shadow:0 10px 22px -8px rgba(46,70,53,0.55);}
.btn-outline{
  background:transparent;
  border-color:var(--sage-deep);
  color:var(--sage-deep);
}
.btn-ghost{
  background:transparent;color:var(--sage-deep);
  padding:12px 6px;font-weight:600;
}
.mobile-toggle{display:none;}

/* hero */
.hero{
  padding:74px 0 60px;
  background:linear-gradient(150deg,var(--sage-pale) 0%, var(--cream) 46%, var(--blush) 100%);
  border-bottom:1px solid var(--line);
}
.hero .wrap{
  display:grid;grid-template-columns:1.15fr .85fr;gap:56px;align-items:center;
}
.eyebrow-pill{
  display:inline-flex;align-items:center;gap:8px;
  background:var(--cream);
  border:1px solid var(--line);
  padding:8px 16px;border-radius:999px;
  font-size:0.82rem;color:var(--sage-mid);margin-bottom:22px;
}
.eyebrow-pill .dot{width:7px;height:7px;border-radius:50%;background:var(--blush-deep);}
.hero h1{
  font-size:3.35rem;line-height:1.06;margin-bottom:22px;
}
.hero p.lead{
  font-size:1.12rem;max-width:46ch;color:#42493B;margin-bottom:30px;
}
.hero .cta-row{display:flex;gap:16px;flex-wrap:wrap;align-items:center;}
.tag-orbit{
  display:grid;grid-template-columns:repeat(3,1fr);gap:22px 18px;
}
.tag-item{
  display:flex;flex-direction:column;align-items:center;gap:10px;
  text-align:center;font-size:0.82rem;color:var(--sage-deep);font-weight:600;
}
.tag-circle{
  width:76px;height:76px;border-radius:50%;
  background:var(--blush);
  display:flex;align-items:center;justify-content:center;
  border:2px solid var(--cream);
  box-shadow:0 0 0 1px var(--line);
  font-size:1.6rem;
}
.tag-item:nth-child(even) .tag-circle{background:var(--sage-pale);}

/* manifesto band */
.band{padding:80px 0;}
.band-dark{
  background:var(--sage-deep);color:var(--cream);
}
.band-dark h2,.band-dark .serif{color:var(--cream);}
.band-inner{max-width:760px;margin:0 auto;text-align:center;}
.band-inner h2{font-size:2.1rem;margin-bottom:20px;}
.band-inner p{font-size:1.08rem;opacity:0.88;}
.signature{
  font-family:'Fraunces',serif;font-style:italic;font-size:1.3rem;
  margin-top:26px;color:var(--blush);
}

/* grid sections */
.section-head{
  display:flex;justify-content:space-between;align-items:flex-end;
  margin-bottom:40px;gap:24px;flex-wrap:wrap;
}
.section-head h2{font-size:2.1rem;}
.section-head p{max-width:42ch;color:var(--sage-mid);margin-top:10px;}

.cat-grid{
  display:grid;grid-template-columns:repeat(3,1fr);gap:22px;
}
.cat-card{
  background:var(--cream);
  border:1px solid var(--line);
  border-radius:var(--radius);
  padding:30px 26px;
  transition:border-color .2s, transform .2s;
}
.cat-card:hover{border-color:var(--sage-deep);transform:translateY(-3px);}
.cat-card .num{
  font-family:'Fraunces',serif;font-size:0.85rem;color:var(--blush-deep);
  margin-bottom:14px;letter-spacing:0.02em;
}
.cat-card h3{font-size:1.3rem;margin-bottom:10px;}
.cat-card p{color:#4A5142;font-size:0.94rem;}

/* locations teaser / cards */
.loc-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:22px;}
.loc-card{
  border-radius:var(--radius);
  border:1px solid var(--line);
  padding:28px;background:var(--sage-pale);
}
.loc-card.alt{background:var(--blush);}
.loc-card .kicker{font-size:0.8rem;text-transform:none;color:var(--sage-mid);margin-bottom:6px;}
.loc-card h3{font-size:1.35rem;margin-bottom:8px;}
.loc-card p{color:#42493B;font-size:0.94rem;margin-bottom:4px;}

/* delivery band */
.delivery{
  display:grid;grid-template-columns:1.2fr .8fr;gap:40px;align-items:center;
  background:var(--blush);border-radius:28px;padding:52px;
}
.delivery h2{font-size:1.9rem;margin-bottom:14px;}
.delivery p{color:#4A3540;max-width:48ch;}
.glovo-badge{
  justify-self:end;
  background:var(--cream);
  border-radius:20px;
  padding:26px 30px;
  border:1px solid var(--line);
  text-align:center;
}
.glovo-badge .glovo-word{
  font-family:'Fraunces',serif;font-weight:600;color:#00A082;font-size:1.5rem;
}
.glovo-badge p{font-size:0.85rem;color:var(--sage-mid);margin:8px 0 16px;max-width:none;}

/* menu page */
.menu-hero{padding:56px 0 20px;}
.menu-hero h1{font-size:2.6rem;margin-bottom:14px;}
.menu-hero p{max-width:55ch;color:var(--sage-mid);}
.menu-nav{
  display:flex;gap:10px;flex-wrap:wrap;
  padding:20px 0 44px;border-bottom:1px solid var(--line);margin-bottom:50px;
}
.menu-nav a{
  padding:9px 18px;border-radius:999px;border:1px solid var(--line);
  font-size:0.88rem;color:var(--sage-deep);
}
.menu-nav a:hover{background:var(--sage-pale);}
.menu-section{margin-bottom:64px;scroll-margin-top:110px;}
.menu-section-head{
  display:flex;align-items:baseline;gap:16px;margin-bottom:28px;
  border-bottom:1px solid var(--line);padding-bottom:16px;
}
.menu-section-head h2{font-size:1.7rem;}
.menu-section-head span{color:var(--sage-mid);font-size:0.9rem;}
.menu-items{display:grid;grid-template-columns:repeat(2,1fr);gap:26px 40px;}
.menu-item{display:flex;justify-content:space-between;gap:18px;}
.menu-item .item-name{font-weight:600;color:var(--ink);margin-bottom:4px;}
.menu-item .item-desc{font-size:0.88rem;color:#5B6152;}
.menu-item .item-price{
  font-family:'Fraunces',serif;color:var(--sage-deep);font-weight:600;white-space:nowrap;
}
.note-box{
  background:var(--sage-pale);border-radius:18px;padding:22px 26px;
  font-size:0.9rem;color:var(--sage-deep);margin-bottom:50px;
}

/* points de vente page */
.pv-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:24px;margin-bottom:26px;}
.pv-card{
  border:1px solid var(--line);border-radius:var(--radius);
  padding:30px;background:var(--cream);
}
.pv-card .badge{
  display:inline-block;font-size:0.75rem;font-weight:600;color:var(--blush-deep);
  background:var(--blush);padding:5px 12px;border-radius:999px;margin-bottom:14px;
}
.pv-card h3{font-size:1.35rem;margin-bottom:8px;}
.pv-card p{color:#4A5142;font-size:0.92rem;margin-bottom:4px;}
.pv-more{
  border:1px dashed var(--sage-mid);border-radius:var(--radius);
  padding:34px;text-align:center;color:var(--sage-mid);margin-bottom:60px;
}

/* contact page */
.contact-grid{display:grid;grid-template-columns:1fr 1fr;gap:56px;align-items:start;}
.contact-info h3{font-size:1.15rem;margin:26px 0 8px;}
.contact-info p{color:#4A5142;font-size:0.95rem;}
.contact-info a.link{color:var(--sage-deep);font-weight:600;border-bottom:1px solid var(--sage-deep);}
.field{margin-bottom:18px;}
.field label{display:block;font-size:0.85rem;color:var(--sage-mid);margin-bottom:6px;}
.field input,.field textarea{
  width:100%;border:1px solid var(--line);border-radius:12px;
  padding:13px 15px;font-family:'Work Sans',sans-serif;font-size:0.95rem;
  background:var(--cream);color:var(--ink);
}
.field textarea{min-height:120px;resize:vertical;}
.field input:focus,.field textarea:focus{outline:2px solid var(--sage-deep);outline-offset:1px;}

/* footer */
footer.site{
  background:var(--sage-deep);color:var(--cream);padding:60px 0 26px;margin-top:20px;
}
.footer-grid{
  display:grid;grid-template-columns:1.4fr 1fr 1fr 1fr;gap:40px;
  padding-bottom:40px;border-bottom:1px solid rgba(251,248,243,0.16);
}
.footer-grid h4{
  font-family:'Fraunces',serif;font-size:1rem;margin-bottom:16px;color:var(--blush);
}
.footer-grid p{color:rgba(251,248,243,0.72);font-size:0.9rem;max-width:32ch;}
.footer-grid ul{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:10px;}
.footer-grid a{color:rgba(251,248,243,0.82);font-size:0.9rem;}
.footer-grid a:hover{color:var(--cream);}
.footer-bottom{
  display:flex;justify-content:space-between;padding-top:22px;
  font-size:0.82rem;color:rgba(251,248,243,0.55);flex-wrap:wrap;gap:10px;
}

@media (max-width:860px){
  .nav-links{display:none;}
  .hero .wrap{grid-template-columns:1fr;}
  .hero h1{font-size:2.4rem;}
  .cat-grid{grid-template-columns:1fr 1fr;}
  .loc-grid,.menu-items,.pv-grid,.contact-grid{grid-template-columns:1fr;}
  .delivery{grid-template-columns:1fr;padding:34px;}
  .glovo-badge{justify-self:start;}
  .footer-grid{grid-template-columns:1fr 1fr;}
}
@media (max-width:520px){
  .cat-grid{grid-template-columns:1fr;}
  .hero h1{font-size:2rem;}
  .tag-orbit{grid-template-columns:repeat(3,1fr);gap:14px 10px;}
  .tag-circle{width:60px;height:60px;font-size:1.3rem;}
  .footer-grid{grid-template-columns:1fr;}
}
@media (prefers-reduced-motion:reduce){
  *{transition:none !important;}
}

/* logo mark */
.logo{gap:8px;font-family:'Fredoka',sans-serif;align-items:baseline;}
.logo-mark circle{fill:var(--blush);}
.logo-mark text{fill:var(--sage-deep);font-family:'Fredoka',sans-serif;}
.logo-main{font-size:1.5rem;font-weight:600;color:var(--sage-deep);letter-spacing:-0.01em;}
.logo-hand{font-size:0.95rem;display:inline-block;margin-left:1px;transform:translateY(-2px);}
.logo-sub{font-size:0.92rem;font-weight:500;color:var(--sage-deep);opacity:0.8;margin-left:2px;}
footer .logo-main,footer .logo-sub{color:var(--cream);}

/* photo placeholders (swap with real photos) */
.photo-block{
  border-radius:var(--radius);
  background:linear-gradient(135deg,var(--sage-pale),var(--blush));
  display:flex;align-items:center;justify-content:center;
  color:var(--sage-mid);font-size:0.82rem;text-align:center;
  border:1px dashed var(--sage-mid);
  min-height:220px;
}

/* story page */
.story-hero{padding:56px 0 40px;}
.story-hero h1{font-size:2.6rem;margin-bottom:14px;}
.story-hero p{max-width:60ch;color:var(--sage-mid);}
.story-block{
  display:grid;grid-template-columns:.9fr 1.1fr;gap:52px;align-items:center;
  padding:60px 0;border-bottom:1px solid var(--line);
}
.story-block.reverse{grid-template-columns:1.1fr .9fr;}
.story-block.reverse .photo-block{order:2;}
.story-block h2{font-size:1.7rem;margin-bottom:16px;}
.story-block p{color:#42493B;margin-bottom:14px;}
.founder-quote{
  font-family:'Fraunces',serif;font-style:italic;font-size:1.5rem;
  color:var(--sage-deep);line-height:1.4;max-width:44ch;
}
.founder-sign{margin-top:18px;font-family:'Work Sans',sans-serif;font-style:normal;font-size:0.92rem;color:var(--sage-mid);}
.timeline{display:flex;flex-direction:column;gap:0;margin-top:10px;}
.timeline-item{
  display:grid;grid-template-columns:90px 1fr;gap:24px;
  padding:22px 0;border-top:1px solid var(--line);
}
.timeline-item:last-child{border-bottom:1px solid var(--line);}
.timeline-item .year{font-family:'Fraunces',serif;color:var(--blush-deep);font-size:1.1rem;}
.timeline-item h4{margin-bottom:4px;color:var(--sage-deep);font-family:'Fraunces',serif;font-size:1.1rem;font-weight:500;}
.timeline-item p{color:#4A5142;font-size:0.92rem;margin:0;}

/* loyalty page */
.loyalty-hero{
  background:linear-gradient(150deg,var(--sage-pale) 0%, var(--cream) 46%, var(--blush) 100%);
  padding:60px 0 70px;border-bottom:1px solid var(--line);
}
.loyalty-hero .wrap{display:grid;grid-template-columns:1fr .95fr;gap:50px;align-items:center;}
.loyalty-card{
  background:var(--sage-deep);color:var(--cream);
  border-radius:24px;padding:34px;
  aspect-ratio:1.586/1;
  display:flex;flex-direction:column;justify-content:space-between;
  box-shadow:0 30px 60px -25px rgba(46,70,53,0.55);
  position:relative;overflow:hidden;
}
.loyalty-card::after{
  content:"";position:absolute;right:-40px;top:-40px;width:160px;height:160px;
  border-radius:50%;background:rgba(247,219,224,0.16);
}
.loyalty-card .lc-top{display:flex;justify-content:space-between;align-items:flex-start;position:relative;}
.loyalty-card .lc-brand{font-family:'Fraunces',serif;font-size:1.2rem;}
.loyalty-card .lc-pts{font-family:'Fraunces',serif;font-size:2.1rem;color:var(--blush);position:relative;}
.loyalty-card .lc-bottom{font-size:0.85rem;opacity:0.75;letter-spacing:0.04em;position:relative;}
.tier-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;}
.tier-card{
  border:1px solid var(--line);border-radius:var(--radius);padding:28px 24px;
  background:var(--cream);
}
.tier-card .tier-name{font-family:'Fraunces',serif;font-size:1.15rem;color:var(--sage-deep);margin-bottom:6px;}
.tier-card .tier-req{font-size:0.82rem;color:var(--blush-deep);font-weight:600;margin-bottom:14px;}
.tier-card ul{margin:0;padding-left:18px;color:#42493B;font-size:0.9rem;display:flex;flex-direction:column;gap:6px;}
.how-steps{display:grid;grid-template-columns:repeat(3,1fr);gap:22px;}
.how-step{text-align:center;padding:26px 20px;}
.how-step .step-num{
  width:44px;height:44px;border-radius:50%;background:var(--sage-deep);color:var(--cream);
  display:flex;align-items:center;justify-content:center;margin:0 auto 16px;font-family:'Fraunces',serif;
}
.how-step h4{font-family:'Fraunces',serif;color:var(--sage-deep);font-size:1.05rem;margin-bottom:8px;}
.how-step p{font-size:0.9rem;color:#4A5142;margin:0;}

/* points de vente — city groups */
.city-tabs{display:flex;gap:10px;margin-bottom:32px;}
.city-count{
  font-family:'Fraunces',serif;font-size:2.4rem;color:var(--sage-deep);
}
.city-summary{display:grid;grid-template-columns:repeat(2,1fr);gap:22px;margin-bottom:44px;}
.city-summary-card{border:1px solid var(--line);border-radius:var(--radius);padding:26px;background:var(--sage-pale);}
.city-summary-card.alt{background:var(--blush);}
.city-summary-card p{color:#42493B;font-size:0.9rem;margin-top:4px;}

@media (max-width:860px){
  .story-block,.story-block.reverse{grid-template-columns:1fr;}
  .story-block.reverse .photo-block{order:0;}
  .loyalty-hero .wrap{grid-template-columns:1fr;}
  .tier-grid,.how-steps,.city-summary{grid-template-columns:1fr;}
}

/* real photos */
.photo-real{
  border-radius:var(--radius);
  width:100%;height:100%;object-fit:cover;
  display:block;
  border:1px solid var(--line);
}
.hero-photo-wrap{
  position:relative;border-radius:28px;overflow:hidden;
  box-shadow:0 30px 60px -30px rgba(46,70,53,0.45);
}
.hero-photo-wrap img{width:100%;display:block;object-fit:cover;max-height:560px;}
.hero-photo-tag{
  position:absolute;bottom:18px;left:18px;
  background:rgba(251,248,243,0.92);backdrop-filter:blur(6px);
  padding:8px 16px;border-radius:999px;font-size:0.8rem;color:var(--sage-deep);font-weight:600;
}

/* menu photos */
.menu-items-photo{display:grid;grid-template-columns:.75fr 1.25fr;gap:32px;align-items:start;}
.menu-photo{width:100%;height:100%;max-height:340px;aspect-ratio:4/5;object-fit:cover;}
.mini-note{
  margin-top:18px;font-size:0.88rem;color:var(--sage-mid);
  background:var(--sage-pale);padding:14px 18px;border-radius:14px;
}
@media (max-width:860px){
  .menu-items-photo{grid-template-columns:1fr;}
  .menu-photo{max-height:220px;aspect-ratio:16/9;}
}

/* configurator */
.configurator{
  background:var(--sage-pale);border-radius:28px;padding:44px;margin-bottom:64px;
}
.config-head{max-width:56ch;margin-bottom:32px;}
.config-head h2{font-size:2rem;margin:14px 0 10px;}
.config-head p{color:#42493B;}
.config-body{display:grid;grid-template-columns:1.4fr 1fr;gap:36px;align-items:start;}
.config-group-label{font-weight:600;color:var(--sage-deep);margin:18px 0 12px;font-size:0.95rem;}
.config-group-label:first-child{margin-top:0;}
.config-options{display:flex;flex-wrap:wrap;gap:10px;}
.config-chip{
  padding:10px 18px;border-radius:999px;border:1.5px solid var(--line);
  background:var(--cream);font-family:'Work Sans',sans-serif;font-size:0.88rem;
  color:var(--ink);cursor:pointer;transition:all .15s;
}
.config-chip:hover{border-color:var(--sage-deep);}
.config-chip.active{background:var(--sage-deep);border-color:var(--sage-deep);color:var(--cream);}
.config-summary{
  background:var(--cream);border-radius:20px;padding:28px;border:1px solid var(--line);
  position:sticky;top:100px;
}
.config-summary-label{font-family:'Fraunces',serif;color:var(--sage-deep);font-size:1.1rem;margin-bottom:14px;}
.config-list{list-style:none;padding:0;margin:0 0 18px;display:flex;flex-direction:column;gap:8px;}
.config-list li{
  font-size:0.9rem;color:#42493B;padding-bottom:8px;border-bottom:1px dashed var(--line);
}
.config-total{
  display:flex;justify-content:space-between;align-items:baseline;
  font-family:'Fraunces',serif;color:var(--sage-deep);font-size:1.3rem;font-weight:600;
  padding-top:6px;
}
@media (max-width:860px){
  .config-body{grid-template-columns:1fr;}
  .config-summary{position:static;}
  .configurator{padding:28px;}
}

/* offer banner (homepage) */
.offer-banner{
  display:grid;grid-template-columns:1fr 1fr;gap:0;
  border-radius:28px;overflow:hidden;margin-bottom:0;
  border:1px solid var(--line);
}
.offer-banner img{width:100%;height:100%;object-fit:cover;min-height:320px;}
.offer-copy{
  padding:48px;display:flex;flex-direction:column;justify-content:center;
  background:var(--sage-deep);color:var(--cream);
}
.offer-copy .eyebrow-pill{background:rgba(251,248,243,0.12);border-color:rgba(251,248,243,0.25);color:var(--blush);}
.offer-copy h2{color:var(--cream);font-size:2rem;margin-bottom:14px;}
.offer-copy p{color:rgba(251,248,243,0.82);margin-bottom:24px;max-width:42ch;}
@media (max-width:860px){
  .offer-banner{grid-template-columns:1fr;}
  .offer-banner img{min-height:220px;}
}

/* referral / parrainage */
.referral-box{
  display:grid;grid-template-columns:auto 1fr auto;gap:24px;align-items:center;
  background:var(--cream);border:1px solid var(--line);border-radius:var(--radius);
  padding:30px 34px;
}
.referral-icon{font-size:2rem;}
.referral-box h3{font-size:1.2rem;margin-bottom:6px;}
.referral-box p{color:#4A5142;font-size:0.92rem;margin:0;}
.referral-code{
  font-family:'Fraunces',serif;background:var(--sage-pale);color:var(--sage-deep);
  padding:10px 20px;border-radius:12px;font-size:1.1rem;font-weight:600;white-space:nowrap;
}
@media (max-width:700px){
  .referral-box{grid-template-columns:1fr;text-align:center;}
}

/* language switcher */
.lang-switch{
  display:flex;align-items:center;gap:2px;
  background:var(--sage-pale);border-radius:999px;padding:3px;
  font-family:'Work Sans',sans-serif;
}
.lang-switch button{
  border:none;background:transparent;padding:6px 12px;border-radius:999px;
  font-size:0.78rem;font-weight:600;color:var(--sage-mid);cursor:pointer;
  transition:background .15s, color .15s;
}
.lang-switch button.active{background:var(--sage-deep);color:var(--cream);}
.lang-switch button:hover:not(.active){color:var(--sage-deep);}

/* RTL support (Arabic) */
html[dir="rtl"] body{font-family:'Cairo',sans-serif;}
html[dir="rtl"] h1,html[dir="rtl"] h2,html[dir="rtl"] h3,html[dir="rtl"] .serif{font-family:'Cairo',sans-serif;font-weight:600;}
html[dir="rtl"] .founder-quote{font-family:'Cairo',sans-serif;font-style:normal;}
html[dir="rtl"] .logo{font-family:'Cairo',sans-serif;}
html[dir="rtl"] .config-total,html[dir="rtl"] .lc-brand,html[dir="rtl"] .lc-pts{font-family:'Cairo',sans-serif;}
html[dir="rtl"] .cta-row,html[dir="rtl"] .nav-links,html[dir="rtl"] .footer-bottom{direction:rtl;}
html[dir="rtl"] .menu-item .item-price{font-family:'Cairo',sans-serif;}
