/* ===================== VITRINE PUBLIQUE « TRATTORIA » ===================== */
html:has(body.landing),.landing{overflow-x:clip}
.landing main,.l-foot{position:relative;z-index:1}
.landing :target{scroll-margin-top:90px}
html{scroll-behavior:smooth}
.landing{--wrap:1180px}

/* ---------- Navigation ---------- */
.l-nav{position:sticky;top:0;z-index:20;display:flex;align-items:center;gap:22px;height:74px;padding:0 max(20px,calc((100vw - var(--wrap))/2));
  background:color-mix(in srgb,var(--bg) 88%,transparent);backdrop-filter:blur(14px);border-bottom:1px solid var(--line-2)}
.l-nav::before{content:"";position:absolute;left:0;right:0;top:0;height:3px;background:var(--tricolore)}
.l-brand{display:flex;align-items:center;gap:10px;text-decoration:none}
.l-brand img{width:44px}
.l-brand .wm{font-size:24px}
.l-links{display:flex;gap:2px;margin-left:14px}
.l-links a{padding:8px 12px;text-decoration:none;font-weight:500;color:var(--ink-2);font-size:15px;position:relative}
.l-links a::after{content:"";position:absolute;left:12px;right:12px;bottom:4px;height:1px;background:var(--brand-gold);transform:scaleX(0);transition:transform var(--d-2) var(--ease)}
.l-links a:hover{color:var(--ink)}
.l-links a:hover::after{transform:scaleX(1)}
.l-status{margin-left:auto;display:inline-flex;align-items:center;gap:8px;font-size:var(--t-13);font-weight:500;color:var(--muted);font-style:italic}
.l-status i{width:7px;height:7px;border-radius:50%;background:var(--faint)}
.l-status.on{color:var(--ok)} .l-status.on i{background:var(--ok)}
.l-staff{text-decoration:none}
.l-status[hidden]+.l-staff{margin-left:auto}

/* ---------- Ornement ---------- */
.l-orn{display:flex;align-items:center;gap:10px;color:var(--brand-gold);margin:18px 0}
.l-orn span{height:1px;width:56px;background:currentColor;opacity:.6}
.l-orn svg{width:60px;height:16px}

/* ---------- Accueil ---------- */
.l-hero{max-width:var(--wrap);margin:0 auto;padding:64px 20px 72px;display:grid;grid-template-columns:1.05fr .95fr;gap:56px;align-items:center}
.l-hero h1{font-family:var(--f-display);font-weight:600;font-size:clamp(46px,6.2vw,84px);line-height:1.02;letter-spacing:-.005em;margin:16px 0 0;text-wrap:balance}
.l-hero h1 .hl{font-style:italic;font-weight:500;color:var(--brand-red)}
.l-lead{font-size:19px;line-height:1.6;color:var(--ink-2);max-width:46ch}
.l-ctas{margin-top:28px;gap:12px}
.l-ctas .btn{text-decoration:none}
.l-facts{display:flex;flex-wrap:wrap;gap:0;margin:34px 0 0;padding:0}
.l-facts div{padding:0 22px;border-left:1px solid var(--line-2)}
.l-facts div:first-child{padding-left:0;border-left:0}
.l-facts dt{font-family:var(--f-display);font-size:28px;font-weight:600;line-height:1.1;font-variant-numeric:lining-nums}
.l-facts dd{margin:4px 0 0;font-size:13px;color:var(--muted)}
.l-hero-art{position:relative;margin:0;justify-self:center;width:min(460px,100%)}
.l-arch{position:relative;aspect-ratio:4/5;border-radius:999px 999px 10px 10px;overflow:hidden;background:var(--surface-3);
  box-shadow:0 0 0 1px var(--line-2),0 0 0 10px var(--surface),0 0 0 11px rgba(201,162,74,.55),var(--sh-3)}
.l-arch img{width:100%;height:100%;object-fit:cover;object-position:45% 55%;transform:scale(1.02)}
.l-seal{position:absolute;left:-28px;bottom:54px;width:150px;filter:drop-shadow(0 14px 24px rgba(40,25,10,.35))}
.l-hero-art figcaption{margin-top:30px;text-align:center;font-family:var(--f-display);font-style:italic;font-size:17px;color:var(--muted);letter-spacing:.02em}

/* ---------- La formule ---------- */
.l-formula{max-width:var(--wrap);margin:0 auto 24px;padding:0 20px;display:grid;grid-template-columns:1.1fr .9fr;gap:0;align-items:stretch}
.l-formula-photo{position:relative;min-height:320px;border-radius:var(--r-lg) 0 0 var(--r-lg);overflow:hidden;background:var(--surface-3)}
.l-formula-photo img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.l-formula-txt{padding:44px 44px;background:var(--brand-navy);color:#F4EEE2;border-radius:0 var(--r-lg) var(--r-lg) 0;display:flex;flex-direction:column;justify-content:center}
.l-formula-txt .eyebrow{color:#D8B25E}
.l-formula-txt h2{font-family:var(--f-display);font-weight:600;font-size:clamp(30px,3.4vw,44px);line-height:1.1;margin:12px 0 14px}
.l-formula-txt h2 em{font-style:italic;font-weight:500;color:#E9C772}
.l-formula-txt p{color:rgba(244,238,226,.85);font-size:16px;line-height:1.6}
.l-formula-list{list-style:none;margin:18px 0 0;padding:16px 0 0;border-top:1px solid rgba(244,238,226,.2);display:grid;grid-template-columns:1fr 1fr;gap:8px 18px;font-family:var(--f-display);font-style:italic;font-size:17px}

/* ---------- Sections ---------- */
.l-section{max-width:var(--wrap);margin:0 auto;padding:72px 20px 8px}
.l-head{margin-bottom:30px}
.l-head.center{text-align:center}
.l-head h2,.l-menu-head h2{font-family:var(--f-display);font-weight:600;font-size:clamp(34px,4vw,52px);line-height:1.08;margin-top:10px}
.l-head h2 em,.l-menu-head h2 em{font-style:italic;font-weight:500;color:var(--brand-red)}

/* Préférés */
.l-pop{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
.l-popcard{display:grid;justify-items:center;text-align:center;gap:10px;padding:26px 18px 22px;background:var(--surface);border:1px solid var(--line-2);border-radius:var(--r-lg);position:relative}
.l-popcard .rank{position:absolute;top:12px;left:16px;font-family:var(--f-display);font-style:italic;font-size:22px;color:var(--brand-gold)}
.l-popcard .pl{width:120px;height:120px;border-radius:50%;display:grid;place-items:center;background:radial-gradient(circle,#fff 0 60%,#EFE4D1 61% 66%,transparent 67%)}
.l-popcard .pl svg{width:92px;height:92px}
.l-popcard b{font-family:var(--f-display);font-size:21px;font-weight:600}
.l-popcard .pr{font-family:var(--f-display);font-size:19px;color:var(--brand-red);font-variant-numeric:lining-nums}
.l-popcard .cat{font-size:12px;letter-spacing:.18em;text-transform:uppercase;color:var(--muted)}

/* ---------- La carte : menu imprimé ---------- */
.l-menu{position:relative;background:var(--surface);border-radius:4px;padding:54px 56px 40px;box-shadow:var(--sh-2);
  border:1px solid var(--line-2)}
.l-menu::before{content:"";position:absolute;inset:12px;border:1px solid rgba(201,162,74,.5);pointer-events:none}
.l-menu::after{content:"";position:absolute;inset:16px;border:1px solid rgba(201,162,74,.22);pointer-events:none}
.l-menu-head{text-align:center;margin-bottom:14px}
.l-menu-head .l-orn{justify-content:center}
.l-menu-cols{columns:2;column-gap:64px}
.mc-cat{break-inside:avoid;margin:0 0 30px}
.mc-cat h3{font-family:var(--f-display);font-style:italic;font-weight:500;font-size:28px;color:var(--brand-red);display:flex;align-items:center;gap:14px;margin-bottom:12px}
.mc-cat h3::after{content:"";flex:1;height:1px;background:linear-gradient(90deg,var(--line-3),transparent)}
.mc-cat ul{list-style:none;margin:0;padding:0;display:grid;gap:4px}
.mc-item{display:grid;grid-template-columns:42px minmax(0,auto) 1fr auto;align-items:center;gap:12px;padding:6px 0}
.mc-ill{width:42px;height:42px;border-radius:50%;display:grid;place-items:center;background:var(--surface-2);border:1px solid var(--line)}
.mc-ill svg{width:34px;height:34px}
.mc-name{font-size:17px;font-weight:500;color:var(--ink)}
.mc-name .tag{display:inline-block;margin-left:8px;font-size:10.5px;letter-spacing:.16em;text-transform:uppercase;color:var(--brand-navy);font-weight:600;vertical-align:2px}
.mc-dots{border-bottom:1px dotted var(--line-3);height:1px;align-self:end;margin-bottom:9px;min-width:20px}
.mc-price{font-family:var(--f-display);font-size:19px;font-weight:600;font-variant-numeric:lining-nums tabular-nums;white-space:nowrap}
.mc-price small{font-size:13px;color:var(--muted);margin-left:2px}
.l-note{text-align:center;margin-top:10px;font-style:italic;color:var(--muted);font-size:14px}

/* ---------- Livraison ---------- */
.l-band{max-width:calc(var(--wrap) - 40px);margin:64px auto 0;display:flex;align-items:center;gap:26px;padding:30px 36px;border-radius:var(--r-lg);
  background:#2A2019;color:#F4EADA;position:relative;overflow:hidden}
.l-band::before{content:"";position:absolute;left:0;top:0;bottom:0;width:4px;background:linear-gradient(180deg,#3F7A3A 0 33%,#F4EEE2 33% 66%,#B3362B 66%)}
.l-band .eyebrow{color:#D8B25E}
.l-band-ico{width:58px;height:58px;border-radius:50%;display:grid;place-items:center;border:1px solid rgba(216,178,94,.5);color:#D8B25E;flex:none}
.l-band h3{font-family:var(--f-display);font-weight:600;font-size:28px;line-height:1.15;margin:6px 0}
.l-band p{color:rgba(244,234,218,.75)}
.l-band-price{display:grid;justify-items:end;text-align:right;gap:2px}
.l-band-price .display{font-size:48px;color:#E9C772}
.l-band-price span:last-child{font-size:13px;color:rgba(244,234,218,.7)}

/* ---------- Qualité : chiffres romains ---------- */
.l-quality{display:grid;grid-template-columns:repeat(4,1fr);gap:0;border-top:1px solid var(--line-2);border-bottom:1px solid var(--line-2)}
.l-q{padding:30px 26px;border-left:1px solid var(--line)}
.l-q:first-child{border-left:0}
.l-q .qn{font-family:var(--f-display);font-style:italic;font-size:30px;color:var(--brand-gold);line-height:1}
.l-q h3{font-family:var(--f-display);font-weight:600;font-size:21px;line-height:1.2;margin:12px 0 8px}
.l-q p{color:var(--ink-2);line-height:1.6;font-size:15px}

/* ---------- Partenaires ---------- */
.l-partners{display:flex;flex-wrap:wrap;justify-content:center;gap:12px}
.l-partner{display:flex;align-items:center;gap:14px;padding:14px 20px 14px 14px;border-radius:999px;background:var(--surface);border:1px solid var(--line-2);min-width:220px}
.l-partner b{display:block;font-family:var(--f-display);font-weight:600;font-size:17px}
.l-partner span{font-size:var(--t-12);color:var(--muted)}

/* ---------- Nous trouver ---------- */
.l-find{display:grid;grid-template-columns:1.2fr 1fr;gap:18px}
.l-map{overflow:hidden;min-height:300px;border-radius:var(--r-lg);border:1px solid var(--line-2);background:var(--surface)}
.l-map svg{width:100%;height:100%;display:block}
.l-infos{display:grid;gap:16px;align-content:start;padding:26px;border-radius:var(--r-lg);background:var(--surface);border:1px solid var(--line-2)}
.l-info{display:grid;grid-template-columns:40px 1fr;gap:12px;align-items:start}
.l-info .ii{width:40px;height:40px;border-radius:50%;display:grid;place-items:center;border:1px solid var(--line-2);color:var(--brand-navy)}
.l-info span{display:block;font-size:11px;color:var(--muted);text-transform:uppercase;letter-spacing:.18em;font-weight:600}
.l-info b{font-size:var(--t-16);font-weight:600}
.l-infos .btn{text-decoration:none;justify-self:start}

/* ---------- Pied de page ---------- */
.l-foot{margin-top:80px;background:#211812;color:#F4EADA;position:relative}
.l-foot::before{content:"";position:absolute;left:0;right:0;top:0;height:3px;background:var(--tricolore)}
.l-foot-in{max-width:var(--wrap);margin:0 auto;padding:34px 20px 40px;display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:18px}
.l-foot .wm{font-size:24px;color:#F4EADA}
.l-foot .wm i{color:#E9C772!important}
.l-foot-sub{color:#B8A68E}
.l-foot-links{gap:22px}
.l-foot a{color:#F4EADA;text-decoration:none;font-weight:500}
.l-foot a:hover{color:#E9C772}

/* ---------- Adaptations ---------- */
@media (max-width:980px){
  .l-links{display:none}
  .l-hero{grid-template-columns:1fr;padding-top:36px;gap:40px}
  .l-hero-art{width:min(360px,86%);order:-1}
  .l-formula{grid-template-columns:1fr}
  .l-formula-photo{min-height:220px;border-radius:var(--r-lg) var(--r-lg) 0 0}
  .l-formula-txt{border-radius:0 0 var(--r-lg) var(--r-lg);padding:30px 26px}
  .l-pop{grid-template-columns:1fr}
  .l-menu{padding:40px 26px 30px}
  .l-menu-cols{columns:1}
  .l-quality{grid-template-columns:1fr 1fr}
  .l-q:nth-child(3){border-left:0}
  .l-find{grid-template-columns:1fr}
  .l-band{flex-wrap:wrap;margin-left:20px;margin-right:20px}.l-band-price{justify-items:start;text-align:left}
}
@media (max-width:560px){
  .l-nav{gap:10px;height:64px}
  .l-brand .wm{display:none}
  .l-status{font-size:12px}
  .l-staff span+*{display:none}
  .l-hero h1{font-size:44px}
  .l-seal{width:104px;left:-12px;bottom:40px}
  .l-facts div{padding:0 14px}
  .l-facts dt{font-size:22px}
  .mc-item{grid-template-columns:36px minmax(0,1fr) auto;gap:10px}
  .mc-dots{display:none}
  .mc-ill{width:36px;height:36px}.mc-ill svg{width:30px;height:30px}
  .l-quality{grid-template-columns:1fr}
  .l-q{border-left:0;border-top:1px solid var(--line)}
  .l-q:first-child{border-top:0}
  .l-formula-list{grid-template-columns:1fr}
}

/* Retouches */
.l-links a{white-space:nowrap}
@media (max-width:1180px){ .l-links{display:none} }
.l-partner .avatar{color:#FFFCF6!important;font-family:var(--f-display);font-style:italic}
.l-find{align-items:start}
.l-map{height:300px}
.l-brand{flex:none}.l-brand img{flex:none}
@media (max-width:760px){ .l-status{display:none!important} .l-part{display:none} .l-nav .l-staff:last-child{margin-left:auto} }
@media (max-width:560px){ .l-facts div:nth-child(3){border-left:0;padding-left:0} .l-facts{row-gap:14px} }
/* Discord */
.l-discord{background:#5865F2!important;color:#fff!important;border-color:#5865F2!important;text-decoration:none;display:inline-flex;align-items:center;gap:7px;margin-left:auto}
.l-discord:hover{background:#4752C4!important}
.l-status:not([hidden])~.l-discord{margin-left:0}
.l-info b a{color:var(--brand-red);text-decoration:underline;text-underline-offset:3px}
@media (max-width:560px){ .l-discord span{display:none} .l-discord{padding:0 10px} }
.l-discord:not([hidden])~.l-staff{margin-left:0!important}
.l-status{white-space:nowrap}
.l-nav .l-part{display:none}
.l-nav{gap:16px}
.l-nav .btn svg{flex:none;width:16px;height:16px}
