/* =========================================================
   Marcela Sayuri Gourmet — Cardápio Digital
   Paleta extraída da logotipo: vinho profundo + creme
   ========================================================= */

:root{
  --wine-900:#4c1420;
  --wine-800:#651c2b;
  --wine-700:#7c2436;
  --wine-600:#93304a;
  --cream-100:#fdf8f0;
  --cream-200:#f6ead4;
  --cream-300:#efdcc0;
  --ink:#3a2226;
  --whatsapp:#3fa246;
  --radius-s:6px;
  --radius-m:14px;
  --shadow-1:0 10px 30px -14px rgba(76,20,32,.35);
  --serif:"Playfair Display", "Cormorant Garamond", Georgia, serif;
  --accent-serif:"Cormorant Garamond", Georgia, serif;
  --sans:"Manrope", -apple-system, "Segoe UI", sans-serif;
}

*{box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{
  margin:0;
  background:var(--cream-100);
  color:var(--ink);
  font-family:var(--sans);
  line-height:1.5;
  -webkit-font-smoothing:antialiased;
}
img{max-width:100%;display:block;}
button{font-family:inherit;cursor:pointer;}
input,textarea,select{font-family:inherit;font-size:1rem;}
h1,h2,h3{font-family:var(--serif);margin:0 0 .4em;color:var(--wine-900);font-weight:600;}

/* ---------- header ---------- */
.site-header{
  background:var(--wine-800);
  position:sticky;top:0;z-index:40;
  box-shadow:0 2px 14px rgba(0,0,0,.15);
}
.header-inner{
  max-width:1120px;margin:0 auto;
  display:flex;align-items:center;gap:14px;
  padding:10px 18px;
}
.logo-img{
  width:46px;height:46px;object-fit:cover;border-radius:50%;
  box-shadow:0 0 0 2px var(--cream-200);
}
.brand-text{display:flex;flex-direction:column;line-height:1.1;margin-right:auto;}
.brand-name{
  font-family:var(--serif);color:var(--cream-100);font-size:1.05rem;letter-spacing:.03em;
}
.brand-sub{
  font-family:var(--accent-serif);color:var(--cream-300);font-size:.78rem;letter-spacing:.3em;
}
.cart-toggle{
  position:relative;background:transparent;border:1.5px solid var(--cream-300);
  color:var(--cream-100);border-radius:999px;width:42px;height:42px;
  display:flex;align-items:center;justify-content:center;transition:background .2s;
}
.cart-toggle:hover{background:rgba(255,255,255,.08);}
.cart-count{
  position:absolute;top:-6px;right:-6px;background:var(--cream-200);color:var(--wine-800);
  font-size:.68rem;font-weight:700;border-radius:999px;min-width:18px;height:18px;
  display:flex;align-items:center;justify-content:center;padding:0 4px;
}

/* ---------- carousel ---------- */
.carousel{position:relative;overflow:hidden;background:var(--wine-900);aspect-ratio:16/9;max-height:520px;}
.carousel-track{display:flex;height:100%;transition:transform .5s ease;}
.carousel-track img{width:100%;height:100%;object-fit:cover;flex-shrink:0;}
.carousel-arrow{
  position:absolute;top:50%;translate:0 -50%;background:rgba(76,20,32,.45);
  color:var(--cream-100);border:none;width:38px;height:38px;border-radius:50%;
  font-size:1.4rem;line-height:1;display:flex;align-items:center;justify-content:center;
}
.carousel-arrow.prev{left:12px;}
.carousel-arrow.next{right:12px;}
.carousel-dots{
  position:absolute;bottom:14px;left:0;right:0;display:flex;gap:8px;justify-content:center;
}
.carousel-dots span{
  width:8px;height:8px;border-radius:50%;background:rgba(255,255,255,.45);cursor:pointer;
}
.carousel-dots span.active{background:var(--cream-100);}

/* ---------- intro ---------- */
.intro{max-width:640px;margin:48px auto 8px;text-align:center;padding:0 20px;}
.eyebrow-line{
  font-family:var(--accent-serif);font-style:italic;color:var(--wine-600);font-size:1.05rem;margin:0 0 6px;
}
.intro h1{font-size:2.3rem;}
.intro-text{color:#6b5459;font-size:.98rem;max-width:480px;margin:0 auto;}

/* ---------- menu ---------- */
.menu-section{max-width:1120px;margin:0 auto;padding:24px 18px 60px;}
.category-block{margin-bottom:52px;}
.category-head{
  display:flex;justify-content:space-between;align-items:baseline;gap:12px;
  border-bottom:1px solid var(--cream-300);padding-bottom:10px;margin-bottom:20px;
}
.category-head h2{font-size:1.5rem;margin:0;}
.category-price{
  font-family:var(--accent-serif);font-style:italic;color:var(--wine-600);font-size:1rem;white-space:nowrap;
}
.products-grid{
  display:grid;grid-template-columns:repeat(auto-fill, minmax(220px,1fr));gap:18px;
}
.product-card{
  background:#fff;border:1px solid var(--cream-300);border-radius:var(--radius-m);
  overflow:hidden;display:flex;flex-direction:column;box-shadow:var(--shadow-1);
}
.product-photo{width:100%;aspect-ratio:1/1;object-fit:cover;background:var(--cream-200);}
.product-body{padding:14px 14px 16px;display:flex;flex-direction:column;gap:8px;flex:1;}
.product-body h3{font-size:1.05rem;margin:0;}
.min-order{font-size:.78rem;color:#8a7075;margin:0;}
.price-line{font-size:.85rem;color:var(--wine-700);margin:0;}
.price-line strong{color:var(--wine-900);}
.option-select{
  border:1px solid var(--cream-300);border-radius:var(--radius-s);padding:7px 8px;background:var(--cream-100);
}
.qty-row{display:flex;align-items:center;gap:8px;margin-top:auto;}
.qty-row label{font-size:.78rem;color:#8a7075;}
.qty-input{
  width:70px;border:1px solid var(--cream-300);border-radius:var(--radius-s);padding:6px 8px;text-align:center;
}
.product-total{font-size:.9rem;color:var(--ink);margin:2px 0 0;}
.product-total strong{color:var(--wine-800);}

/* ---------- buttons ---------- */
.btn{border:none;border-radius:999px;padding:11px 18px;font-weight:600;font-size:.92rem;transition:filter .15s, background .15s;}
.btn-solid{background:var(--wine-800);color:var(--cream-100);}
.btn-solid:hover{filter:brightness(1.08);}
.btn-ghost{background:transparent;color:var(--wine-800);border:1.5px solid var(--wine-700);}
.btn-ghost:hover{background:rgba(124,36,54,.06);}
.btn-block{width:100%;}
.btn-whatsapp{background:var(--whatsapp);color:#fff;display:flex;align-items:center;justify-content:center;gap:8px;}
.btn-whatsapp:hover{filter:brightness(1.05);}
.add-btn{margin-top:6px;}

/* ---------- overlay / drawer / modal shared ---------- */
.overlay{
  position:fixed;inset:0;background:rgba(60,20,28,.45);opacity:0;pointer-events:none;
  transition:opacity .25s;z-index:50;
}
.overlay.show{opacity:1;pointer-events:auto;}

.cart-drawer{
  position:fixed;top:0;right:0;height:100%;width:min(400px,92vw);background:var(--cream-100);
  z-index:60;transform:translateX(100%);transition:transform .3s ease;
  display:flex;flex-direction:column;box-shadow:-8px 0 30px rgba(0,0,0,.2);
}
.cart-drawer.open{transform:translateX(0);}
.drawer-head{
  display:flex;justify-content:space-between;align-items:center;
  padding:16px 18px;border-bottom:1px solid var(--cream-300);
}
.icon-close{background:none;border:none;font-size:1.6rem;line-height:1;color:var(--wine-800);}
.cart-items{flex:1;overflow-y:auto;padding:12px 18px;}
.cart-empty{color:#8a7075;text-align:center;margin-top:30px;}
.cart-item{
  display:flex;gap:10px;padding:12px 0;border-bottom:1px solid var(--cream-300);align-items:flex-start;
}
.cart-item-info{flex:1;}
.cart-item-info h4{margin:0 0 3px;font-size:.95rem;font-family:var(--sans);font-weight:700;color:var(--ink);}
.cart-item-opt{font-size:.76rem;color:#8a7075;margin:0 0 4px;}
.cart-item-controls{display:flex;align-items:center;gap:8px;}
.cart-item-controls input{width:56px;padding:4px 6px;border:1px solid var(--cream-300);border-radius:var(--radius-s);text-align:center;}
.cart-item-price{font-weight:700;color:var(--wine-800);font-size:.9rem;white-space:nowrap;}
.remove-item{background:none;border:none;color:#b34a4a;font-size:1.2rem;line-height:1;}
.drawer-foot{padding:16px 18px 20px;border-top:1px solid var(--cream-300);display:flex;flex-direction:column;gap:9px;}
.cart-total-row{display:flex;justify-content:space-between;font-size:1.1rem;margin-bottom:4px;}

.modal{
  position:fixed;inset:0;z-index:70;display:flex;align-items:flex-end;justify-content:center;
  opacity:0;pointer-events:none;transition:opacity .25s;
}
.modal.open{opacity:1;pointer-events:auto;}
.modal-card{
  background:var(--cream-100);width:100%;max-width:520px;max-height:92vh;overflow-y:auto;
  border-radius:20px 20px 0 0;padding:26px 22px 34px;position:relative;
  transform:translateY(20px);transition:transform .3s ease;
}
.modal.open .modal-card{transform:translateY(0);}
@media (min-width:640px){
  .modal{align-items:center;}
  .modal-card{border-radius:20px;}
}
.modal-close{position:absolute;top:12px;right:14px;}

.step label{display:block;font-size:.85rem;color:#6b5459;margin-bottom:12px;}
.step input[type=text], .step input[type=tel], .step textarea, .step input:not([type]){
  display:block;width:100%;margin-top:5px;padding:10px 11px;border:1px solid var(--cream-300);
  border-radius:var(--radius-s);background:#fff;
}
.two-col{display:grid;grid-template-columns:1fr 1fr;gap:12px;}
.pay-options{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-bottom:14px;}
.pay-option{
  border:1.5px solid var(--cream-300);border-radius:var(--radius-s);padding:10px 6px;text-align:center;
  font-size:.85rem;display:flex;flex-direction:column;align-items:center;gap:6px;cursor:pointer;
}
.pay-option input{margin:0;}
.pay-option:has(input:checked){border-color:var(--wine-700);background:rgba(124,36,54,.06);}
.pay-detail{margin-top:6px;margin-bottom:10px;}
.pay-question{font-size:.85rem;color:#6b5459;margin:8px 0 6px;}
.pix-box{display:flex;gap:14px;align-items:center;background:#fff;border:1px solid var(--cream-300);border-radius:var(--radius-m);padding:14px;margin-bottom:12px;}
.pix-qr{width:96px;height:96px;object-fit:cover;border-radius:var(--radius-s);}
.pix-info p{margin:2px 0;font-size:.82rem;color:var(--ink);}
.req{color:#b34a4a;}
.hint{font-size:.78rem;color:#8a7075;margin-top:-4px;}

.order-summary{background:#fff;border:1px solid var(--cream-300);border-radius:var(--radius-m);padding:14px 16px;margin-bottom:16px;font-size:.88rem;}
.order-summary h4{margin:10px 0 6px;font-size:.82rem;text-transform:uppercase;letter-spacing:.05em;color:var(--wine-700);font-family:var(--sans);}
.order-summary h4:first-child{margin-top:0;}
.order-row{display:flex;justify-content:space-between;gap:8px;padding:4px 0;}
.order-total{display:flex;justify-content:space-between;font-weight:700;border-top:1px solid var(--cream-300);margin-top:8px;padding-top:8px;}
.review-actions{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-bottom:12px;}

/* ---------- footer ---------- */
.site-footer{background:var(--wine-900);color:var(--cream-100);padding:50px 20px 30px;margin-top:40px;}
.delivery-card{
  max-width:640px;margin:0 auto 30px;background:var(--wine-700);border-radius:var(--radius-m);
  padding:16px 20px;display:flex;align-items:center;gap:12px;justify-content:center;
  font-family:var(--serif);font-size:1.1rem;box-shadow:var(--shadow-1);
}
.delivery-icon{font-size:1.4rem;}
.party-card{max-width:420px;margin:0 auto;text-align:center;}
.party-card h2{color:var(--cream-100);}
.party-card p{color:var(--cream-300);font-size:.9rem;margin-bottom:16px;}
.party-card label{display:block;text-align:left;font-size:.82rem;color:var(--cream-300);margin-bottom:12px;}
.party-card input{
  display:block;width:100%;margin-top:5px;padding:10px 11px;border:1px solid var(--wine-600);
  border-radius:var(--radius-s);background:var(--wine-800);color:var(--cream-100);
}
.footer-signature{text-align:center;font-family:var(--accent-serif);font-style:italic;color:var(--cream-300);margin-top:40px;font-size:.9rem;letter-spacing:.05em;}

/* ---------- toast ---------- */
.toast{
  position:fixed;left:50%;bottom:26px;translate:-50% 0;background:var(--wine-900);color:var(--cream-100);
  padding:12px 20px;border-radius:999px;font-size:.88rem;opacity:0;pointer-events:none;
  transition:opacity .25s, transform .25s;transform:translate(-50%,10px);z-index:80;box-shadow:var(--shadow-1);
}
.toast.show{opacity:1;transform:translate(-50%,0);}

@media (max-width:480px){
  .intro h1{font-size:1.9rem;}
  .pay-options{grid-template-columns:1fr;}
  .pix-box{flex-direction:column;text-align:center;}
}
