/* =========================================================
   LELLIS TRATTORIA — NOVO VISUAL DO APP CLIENTE
   Camada visual moderna — Outubro/2026
   ========================================================= */

/* ---------- BASE ---------- */

:root{
  --lellis-red:#8f2229;
  --lellis-red-dark:#741a20;
  --lellis-green:#2f6f4e;
  --lellis-cream:#fffaf3;
  --lellis-cream-soft:#f8f1e7;
  --lellis-text:#352923;
  --lellis-muted:#756a64;
  --lellis-border:rgba(93,65,49,.12);
}

body{
  background:#f2ede6 !important;
  color:var(--lellis-text) !important;
}

.app-shell{
  background:var(--lellis-cream) !important;
}


/* ---------- CABEÇALHO PRINCIPAL ---------- */

.top{
  background:
    linear-gradient(
      135deg,
      #fffdf9 0%,
      #fff8ef 55%,
      #f7eee3 100%
    ) !important;

  border-bottom:1px solid var(--lellis-border) !important;
  box-shadow:0 3px 14px rgba(65,42,29,.07) !important;
}

.top .brand{
  color:var(--lellis-red) !important;
}


/* ---------- HOME ---------- */

.home-wrap{
  background:var(--lellis-cream) !important;
}


/* ---------- BARRA DO LOGO ---------- */

.home-brandbar{
  background:transparent !important;
  padding-top:4px !important;
  padding-bottom:6px !important;
}


/* ---------- BANNER PRINCIPAL ---------- */

.hero-v09{
  min-height:300px !important;
  border-radius:20px !important;
  overflow:hidden !important;

  background-color:#eee4d8 !important;
  background-position:center !important;
  background-size:cover !important;

  box-shadow:0 8px 24px rgba(55,35,24,.10) !important;
  border:1px solid rgba(83,55,39,.08) !important;
}


/* Remove as antigas camadas escuras */

.hero-v09::before{
  content:none !important;
}

.hero-v09::after{
  content:"" !important;
  position:absolute !important;
  inset:0 !important;

  background:
    linear-gradient(
      90deg,
      rgba(255,250,243,.94) 0%,
      rgba(255,250,243,.80) 34%,
      rgba(255,250,243,.25) 64%,
      rgba(255,250,243,0) 82%
    ) !important;

  pointer-events:none !important;
}


/* ---------- TEXTO DO BANNER ---------- */

.hero-v09 .hero-copy{
  position:relative !important;
  z-index:2 !important;

  max-width:55% !important;
  padding:34px 28px !important;

  color:var(--lellis-text) !important;
}

.hero-v09 .hero-copy h2{
  color:var(--lellis-red) !important;
  font-family:Georgia, "Times New Roman", serif !important;
  font-size:36px !important;
  line-height:1.05 !important;

  text-shadow:none !important;
}

.hero-v09 .hero-copy p{
  color:#554943 !important;
  font-size:16px !important;
  line-height:1.45 !important;

  text-shadow:none !important;
}


/* ---------- TÍTULOS DA HOME ---------- */

.home-heading{
  margin-top:24px !important;
  margin-bottom:12px !important;
}

.home-heading h2{
  color:var(--lellis-red) !important;
  font-family:Georgia, "Times New Roman", serif !important;
}

.home-heading span{
  color:var(--lellis-muted) !important;
}


/* ---------- DETALHE ITALIANO ---------- */

.home-heading::after{
  content:"" !important;
  display:block !important;

  width:54px !important;
  height:3px !important;

  margin-top:7px !important;
  border-radius:10px !important;

  background:
    linear-gradient(
      90deg,
      var(--lellis-green) 0 33%,
      #f3eee6 33% 66%,
      var(--lellis-red) 66% 100%
    ) !important;
}


/* ---------- CELULAR ---------- */

@media (max-width:600px){

  .hero-v09{
    min-height:245px !important;
    border-radius:17px !important;
  }

  .hero-v09::after{
    background:
      linear-gradient(
        90deg,
        rgba(255,250,243,.96) 0%,
        rgba(255,250,243,.82) 45%,
        rgba(255,250,243,.18) 78%,
        rgba(255,250,243,0) 100%
      ) !important;
  }

  .hero-v09 .hero-copy{
    max-width:68% !important;
    padding:25px 18px !important;
  }

  .hero-v09 .hero-copy h2{
    font-size:27px !important;
  }

  .hero-v09 .hero-copy p{
    font-size:14px !important;
  }

}

/* =========================================================
   HOME V2 — MODELO CANTINA ITALIANA
   ========================================================= */

/* Na nova Home o cardápio é o protagonista.
   Mantemos os destaques no HTML, mas fora da apresentação. */
#s0 .feature-row{
  display:none !important;
}

#s0 .home-heading:not(#cardapioSection){
  display:none !important;
}
/* =========================================================
   HOME V2 — CABEÇALHO
   ========================================================= */

/* Cabeçalho principal claro, inspirado na identidade italiana */
#s0.active ~ *{
  --home-v2-active:1;
}

.top{
  background:#fffdf8 !important;
  border-bottom:1px solid rgba(108,75,51,.10) !important;
  box-shadow:0 2px 12px rgba(66,43,28,.06) !important;
  padding:10px 18px !important;
}

.top .brand{
  position:relative !important;
  display:flex !important;
  align-items:center !important;
  justify-content:center !important;
  min-height:64px !important;
}

.top .brand img{
  width:118px !important;
  max-height:58px !important;
  object-fit:contain !important;
  margin:0 auto !important;
}

/* Carrinho compacto no lado direito */
.top .brand .top-cart{
  position:absolute !important;
  right:0 !important;
  top:50% !important;
  transform:translateY(-50%) !important;

  width:42px !important;
  height:42px !important;
  min-width:42px !important;
  padding:0 !important;
  border-radius:50% !important;

  font-size:0 !important;
  background:#fff !important;
  border:1px solid rgba(108,75,51,.12) !important;
  box-shadow:0 2px 8px rgba(66,43,28,.08) !important;
}

/* Ícone simples de sacola/carrinho */
.top .brand .top-cart::before{
  content:"🛒" !important;
  display:block !important;
  font-size:20px !important;
  line-height:40px !important;
  text-align:center !important;
}

/* Contador */
.top .brand .top-cart .cart-count{
  position:absolute !important;
  top:-4px !important;
  right:-4px !important;
  min-width:19px !important;
  height:19px !important;
  padding:0 5px !important;
  display:flex !important;
  align-items:center !important;
  justify-content:center !important;
  border-radius:999px !important;
  background:#2f7d4a !important;
  color:#fff !important;
  font-size:11px !important;
  font-weight:800 !important;
}

/* O stepper antigo não pertence à nova Home */
#s0.active ~ .stepper,
.top .stepper{
  display:none !important;
}

/* A segunda barra da Home fica responsável apenas pela busca */
#s0 .home-brandbar{
  display:block !important;
  margin:12px 0 16px !important;
}

/* Logo e carrinho duplicados da Home */
#s0 .home-brandbar > img,
#s0 .home-brandbar > .top-cart{
  display:none !important;
}

#s0 .home-search-wrap{
  width:100% !important;
  max-width:none !important;
  margin:0 !important;
}

#s0 .home-search{
  width:100% !important;
  height:46px !important;
  border-radius:15px !important;
  border:1px solid rgba(108,75,51,.15) !important;
  background:#fff !important;
  box-shadow:0 2px 10px rgba(66,43,28,.05) !important;
}
/* =========================================================
   HOME V2 — GRADE DINÂMICA DE CATEGORIAS
   ========================================================= */

#cardapioSection{
  margin-top:18px !important;
  margin-bottom:14px !important;
}

#cardapioSection h2{
  margin-bottom:3px !important;
  font-size:25px !important;
  color:var(--lellis-red) !important;
}

#cardapioSection span{
  font-size:13px !important;
}

/* A quantidade de categorias pode aumentar ou diminuir */
#s0 .menu-grid-v09{
  display:grid !important;
  grid-template-columns:repeat(3,minmax(0,1fr)) !important;
  gap:15px 12px !important;
  align-items:start !important;
}

/* Card claro: fotografia em cima, nome embaixo */
#s0 .menu-tile{
  position:relative !important;
  min-width:0 !important;
  min-height:132px !important;
  height:auto !important;

  padding:98px 8px 10px !important;

  border:0 !important;
  border-radius:16px !important;
  overflow:hidden !important;

  background-color:#fff !important;
  background-repeat:no-repeat !important;
  background-position:center top !important;
  background-size:100% 98px !important;

  box-shadow:0 3px 12px rgba(58,38,25,.08) !important;
}

/* Nenhuma sombra/gradiente CSS sobre a fotografia */
#s0 .menu-tile::before,
#s0 .menu-tile::after{
  content:none !important;
  display:none !important;
}

#s0 .menu-tile .label{
  position:static !important;
  display:flex !important;
  align-items:center !important;
  justify-content:center !important;

  min-height:28px !important;
  margin:0 !important;
  padding:7px 2px 0 !important;

  color:var(--lellis-red) !important;
  font-family:Georgia,"Times New Roman",serif !important;
  font-size:14px !important;
  font-weight:700 !important;
  line-height:1.12 !important;
  text-align:center !important;

  text-shadow:none !important;
}

/* Indisponível continua visível, porém claramente desabilitado */
#s0 .menu-tile.disabled{
  opacity:.55 !important;
  filter:saturate(.65) !important;
}

/* Tablets e telas maiores: a grade cresce automaticamente */
@media (min-width:700px){
  #s0 .menu-grid-v09{
    grid-template-columns:repeat(auto-fit,minmax(135px,1fr)) !important;
    gap:18px !important;
  }

  #s0 .menu-tile{
    min-height:160px !important;
    padding-top:120px !important;
    background-size:100% 120px !important;
  }

  #s0 .menu-tile .label{
    font-size:15px !important;
  }
}

/* Celulares muito estreitos: evita nomes espremidos */
@media (max-width:350px){
  #s0 .menu-grid-v09{
    grid-template-columns:repeat(2,minmax(0,1fr)) !important;
  }

  #s0 .menu-tile .label{
    font-size:14px !important;
  }
}
/* =========================================================
   HOME V2 — BANNER PRINCIPAL
   ========================================================= */

#s0 #homeBannerMain{
  position:relative !important;
  min-height:205px !important;
  margin:6px 0 18px !important;
  border-radius:18px !important;
  overflow:hidden !important;

  background-position:center !important;
  background-size:cover !important;
  background-repeat:no-repeat !important;

  border:1px solid rgba(91,61,42,.10) !important;
  box-shadow:0 5px 18px rgba(58,38,25,.09) !important;
}

/* Neutraliza completamente as máscaras antigas */
#s0 #homeBannerMain::before{
  content:none !important;
  display:none !important;
}

#s0 #homeBannerMain::after{
  content:"" !important;
  display:block !important;
  position:absolute !important;
  inset:0 !important;
  z-index:1 !important;

  background:linear-gradient(
    90deg,
    rgba(255,250,242,.97) 0%,
    rgba(255,250,242,.91) 30%,
    rgba(255,250,242,.58) 48%,
    rgba(255,250,242,.08) 72%
  ) !important;

  pointer-events:none !important;
}

#s0 #homeBannerMain .hero-copy{
  position:relative !important;
  z-index:2 !important;

  display:flex !important;
  flex-direction:column !important;
  align-items:flex-start !important;
  justify-content:center !important;

  min-height:205px !important;
  max-width:53% !important;
  padding:22px 18px !important;
}

#s0 #homeBannerMain .hero-copy h2{
  margin:0 0 7px !important;
  color:var(--lellis-red) !important;

  font-family:Georgia,"Times New Roman",serif !important;
  font-size:27px !important;
  line-height:1.04 !important;
  text-shadow:none !important;
}

#s0 #homeBannerMain .hero-copy p{
  margin:0 0 13px !important;
  color:#574a42 !important;

  font-size:13.5px !important;
  line-height:1.35 !important;
  text-shadow:none !important;
}

#s0 #homeBannerMain .primary{
  min-height:37px !important;
  padding:8px 15px !important;
  border-radius:10px !important;

  background:var(--lellis-red) !important;
  border-color:var(--lellis-red) !important;
  color:#fff !important;

  font-size:13px !important;
  box-shadow:none !important;
}

#s0 #homeBannerMain .primary:hover{
  background:var(--lellis-red-dark) !important;
}

/* Mantém o banner elegante também em telas bem estreitas */
@media (max-width:380px){
  #s0 #homeBannerMain{
    min-height:190px !important;
  }

  #s0 #homeBannerMain .hero-copy{
    min-height:190px !important;
    max-width:60% !important;
    padding:18px 14px !important;
  }

  #s0 #homeBannerMain .hero-copy h2{
    font-size:23px !important;
  }

  #s0 #homeBannerMain .hero-copy p{
    font-size:12.5px !important;
  }
}
/* =========================================================
   HOME V2 — NAVEGAÇÃO INFERIOR
   ========================================================= */

#s0 .bottom-nav-v09{
  position:sticky !important;
  bottom:0 !important;
  z-index:30 !important;

  display:grid !important;
  grid-template-columns:repeat(4,1fr) !important;

  margin:22px -18px -20px !important;
  padding:7px 8px calc(7px + env(safe-area-inset-bottom)) !important;

  background:rgba(255,253,248,.97) !important;
  border-top:1px solid rgba(91,61,42,.10) !important;
  box-shadow:0 -3px 14px rgba(58,38,25,.06) !important;
  backdrop-filter:blur(10px) !important;
}

#s0 .bottom-nav-v09 .navitem{
  display:flex !important;
  flex-direction:column !important;
  align-items:center !important;
  justify-content:center !important;
  gap:3px !important;

  min-height:48px !important;
  padding:4px 2px !important;

  color:#8a817b !important;
  font-size:11px !important;
  font-weight:600 !important;
  text-align:center !important;

  background:transparent !important;
  border:0 !important;
}

#s0 .bottom-nav-v09 .navitem b{
  display:block !important;
  color:inherit !important;
  font-size:20px !important;
  line-height:1 !important;
  font-weight:400 !important;
}

#s0 .bottom-nav-v09 .navitem.active{
  color:var(--lellis-red) !important;
  font-weight:800 !important;
}

/* Pequeno indicador da seção ativa */
#s0 .bottom-nav-v09 .navitem.active::after{
  content:"" !important;
  width:18px !important;
  height:2px !important;
  margin-top:1px !important;
  border-radius:999px !important;
  background:var(--lellis-green) !important;
}

/* =========================================================
   HOME V3 — NOVA ESTRUTURA LIMPA
   ========================================================= */

#s0 .home-v2{
  width:100%;
  max-width:1180px;
  margin:0 auto;
  padding:14px 18px 96px;
}

/* Busca */
#s0 .home-search-area{
  position:relative;
  margin:2px 0 18px;
}

#s0 .home-search-area .home-search-wrap{
  margin:0;
  width:100%;
}

#s0 .home-search-area .home-search{
  width:100%;
  height:48px;
  padding:0 46px 0 17px;
  border:1px solid #eadfd2;
  border-radius:15px;
  background:#fff;
  color:#30251f;
  font-size:15px;
  outline:none;
  box-shadow:0 4px 14px rgba(70,45,30,.05);
}

#s0 .home-search-area .home-search:focus{
  border-color:#a71920;
  box-shadow:0 0 0 3px rgba(167,25,32,.08);
}

#s0 .home-search-area .home-search-icon{
  position:absolute;
  right:16px;
  top:50%;
  transform:translateY(-50%);
  color:#a71920;
  font-size:21px;
  pointer-events:none;
}

/* Banner principal */
#s0 .home-main-banner{
  position:relative;
  min-height:210px;
  margin:0 0 25px;
  border:0;
  border-radius:22px;
  overflow:hidden;
  background-color:#f5eee5;
  background-position:center;
  background-repeat:no-repeat;
  background-size:cover;
  box-shadow:0 9px 26px rgba(71,46,29,.10);
}

#s0 .home-main-banner::before{
  content:"";
  position:absolute;
  inset:0;
  display:block;
  background:linear-gradient(
    90deg,
    rgba(255,252,247,.97) 0%,
    rgba(255,252,247,.90) 31%,
    rgba(255,252,247,.40) 57%,
    rgba(255,252,247,.05) 78%
  );
  pointer-events:none;
}

#s0 .home-main-banner::after{
  content:"";
  position:absolute;
  left:0;
  top:0;
  bottom:0;
  width:5px;
  background:linear-gradient(
    to bottom,
    #1d6a42 0 33.33%,
    #f7f3eb 33.33% 66.66%,
    #a71920 66.66% 100%
  );
  pointer-events:none;
}

#s0 .home-main-banner .hero-copy{
  position:relative;
  z-index:2;
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  justify-content:center;
  min-height:210px;
  width:52%;
  max-width:440px;
  padding:27px 10px 27px 27px;
  text-align:left;
}

#s0 .home-main-banner .hero-copy h2{
  margin:0 0 8px;
  color:#8f171d;
  font-family:Georgia,"Times New Roman",serif;
  font-size:clamp(25px,4.8vw,38px);
  line-height:1.02;
  font-weight:700;
}

#s0 .home-main-banner .hero-copy p{
  margin:0 0 17px;
  color:#5e5148;
  font-size:14px;
  line-height:1.45;
}

#s0 .home-main-banner .hero-copy .primary{
  min-height:40px;
  padding:9px 18px;
  border:0;
  border-radius:999px;
  background:#a71920;
  color:#fff;
  font-size:13px;
  font-weight:700;
  box-shadow:0 5px 13px rgba(167,25,32,.18);
}

/* Título do cardápio */
#s0 #cardapioSection{
  display:flex;
  align-items:flex-end;
  justify-content:space-between;
  gap:12px;
  margin:0 2px 15px;
}

#s0 #cardapioSection h2{
  margin:0;
  color:#8f171d;
  font-family:Georgia,"Times New Roman",serif;
  font-size:25px;
  line-height:1.1;
}

#s0 #cardapioSection span{
  color:#88766a;
  font-size:12px;
  white-space:nowrap;
}

/* Grade de categorias */
#s0 .home-category-grid{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:17px 12px;
  margin:0;
}

#s0 .home-category-card{
  appearance:none;
  -webkit-appearance:none;
  display:flex;
  flex-direction:column;
  align-items:stretch;
  min-width:0;
  min-height:0;
  height:auto;
  padding:0;
  margin:0;
  overflow:hidden;
  border:1px solid #eee4d8;
  border-radius:17px;
  background:#fff;
  color:#342922;
  font:inherit;
  text-align:center;
  cursor:pointer;
  box-shadow:0 5px 16px rgba(68,45,31,.07);
  transition:transform .16s ease,box-shadow .16s ease,border-color .16s ease;
}

#s0 .home-category-card:active{
  transform:scale(.98);
}

#s0 .home-category-card .category-photo{
  display:block;
  width:100%;
  aspect-ratio:1.34 / 1;
  background:#f4eee6;
  background-position:center;
  background-repeat:no-repeat;
  background-size:cover;
}

#s0 .home-category-card .label{
  position:static;
  display:flex;
  align-items:center;
  justify-content:center;
  min-height:45px;
  width:100%;
  padding:7px 6px 8px;
  margin:0;
  background:#fff;
  color:#8f171d;
  font-family:Georgia,"Times New Roman",serif;
  font-size:14px;
  font-weight:700;
  line-height:1.12;
  text-shadow:none;
}

/* Pequeno detalhe italiano abaixo de cada foto */
#s0 .home-category-card .category-photo{
  border-bottom:3px solid transparent;
  border-image:linear-gradient(
    to right,
    #1d6a42 0 33.33%,
    #f3eee5 33.33% 66.66%,
    #a71920 66.66% 100%
  ) 1;
}

/* Rodapé */
#s0 .site-footer{
  margin-top:28px;
  padding:18px 8px 8px;
  border-top:1px solid #eee3d7;
  color:#7d6c61;
  background:transparent;
  font-size:11px;
}

#s0 .footer-one-line{
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  justify-content:center;
  gap:5px 8px;
}

/* Responsividade */
@media (min-width:700px){
  #s0 .home-category-grid{
    grid-template-columns:repeat(auto-fit,minmax(145px,1fr));
    gap:20px 16px;
  }

  #s0 .home-category-card .label{
    min-height:49px;
    font-size:15px;
  }

  #s0 .home-main-banner{
    min-height:245px;
  }

  #s0 .home-main-banner .hero-copy{
    min-height:245px;
  }
}

@media (max-width:420px){
  #s0 .home-v2{
    padding-left:13px;
    padding-right:13px;
  }

  #s0 .home-category-grid{
    gap:14px 9px;
  }

  #s0 .home-category-card{
    border-radius:14px;
  }

  #s0 .home-category-card .label{
    min-height:43px;
    padding-left:4px;
    padding-right:4px;
    font-size:13px;
  }

  #s0 .home-main-banner .hero-copy{
    width:59%;
    padding-left:20px;
  }
}

@media (max-width:350px){
  #s0 .home-category-grid{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }

  #s0 .home-category-card .label{
    font-size:14px;
  }
}
/* =========================================================
   HOME V3.1 — CORREÇÃO DE PROPORÇÕES DOS CARDS
   ========================================================= */

#s0 .home-category-grid .home-category-card{
  position:relative !important;
  display:flex !important;
  flex-direction:column !important;
  align-items:stretch !important;

  height:auto !important;
  min-height:0 !important;
  max-height:none !important;

  padding:0 !important;
  margin:0 !important;

  background:#fff !important;
  background-image:none !important;

  overflow:hidden !important;
  border:1px solid #eee4d8 !important;
  border-radius:17px !important;
}

#s0 .home-category-grid .home-category-card::before,
#s0 .home-category-grid .home-category-card::after{
  content:none !important;
  display:none !important;
}

#s0 .home-category-grid .home-category-card .category-photo{
  position:relative !important;
  inset:auto !important;

  display:block !important;
  flex:none !important;

  width:100% !important;
  height:auto !important;
  min-height:0 !important;
  aspect-ratio:1.35 / 1 !important;

  margin:0 !important;
  padding:0 !important;

  background-color:#f3ede4 !important;
  background-position:center !important;
  background-repeat:no-repeat !important;
  background-size:cover !important;

  border:0 !important;
  border-bottom:3px solid transparent !important;
  border-image:linear-gradient(
    to right,
    #1d6a42 0 33.33%,
    #f3eee5 33.33% 66.66%,
    #a71920 66.66% 100%
  ) 1 !important;
}

#s0 .home-category-grid .home-category-card .label{
  position:relative !important;
  inset:auto !important;

  display:flex !important;
  align-items:center !important;
  justify-content:center !important;

  width:100% !important;
  min-height:46px !important;

  margin:0 !important;
  padding:8px 5px !important;

  background:#fff !important;
  color:#8f171d !important;

  font-family:Georgia,"Times New Roman",serif !important;
  font-size:14px !important;
  font-weight:700 !important;
  line-height:1.15 !important;

  transform:none !important;
  text-shadow:none !important;
}

/* Em celular estreito, evita cards excessivamente comprimidos */
@media (max-width:420px){
  #s0 .home-category-grid{
    grid-template-columns:repeat(3,minmax(0,1fr)) !important;
  }

  #s0 .home-category-grid .home-category-card .label{
    min-height:44px !important;
    font-size:13px !important;
  }
}

@media (max-width:350px){
  #s0 .home-category-grid{
    grid-template-columns:repeat(2,minmax(0,1fr)) !important;
  }
}