
*{margin:0;padding:0;box-sizing:border-box;}
:root{
  --mint:#a8d8c8;--mint-light:#d6f0ea;--mint-dark:#5fa891;
  --choco:#3d1c0e;--choco-mid:#7a3e1a;--cream:#fdf8f2;
  --rose:#f0c8c0;--gold:#c9975a;--text:#2a1506;
}
html{scroll-behavior:smooth;}
body{font-family:'Lato',sans-serif;background:var(--cream);color:var(--text);overflow-x:hidden;}

/* NAV */
nav{position:fixed;top:0;left:0;right:0;z-index:100;background:rgba(253,248,242,0.93);backdrop-filter:blur(12px);border-bottom:1px solid rgba(168,216,200,0.4);padding:0 2rem;display:flex;align-items:center;justify-content:space-between;height:64px;}
.nav-logo{font-family:'Dancing Script',cursive;font-size:1.8rem;color:var(--choco);letter-spacing:.02em;text-decoration:none;}
.nav-links{display:flex;gap:2rem;list-style:none;}
.nav-links a{text-decoration:none;color:var(--choco-mid);font-size:.85rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;transition:color .2s;}
.nav-links a:hover{color:var(--mint-dark);}

/* HERO */
.hero{min-height:100vh;display:grid;grid-template-columns:1fr 1fr;align-items:center;padding:80px 6vw 0;position:relative;overflow:hidden;}
.hero::before{content:'';position:absolute;top:-120px;right:-120px;width:600px;height:600px;border-radius:50%;background:radial-gradient(circle,var(--mint-light) 0%,transparent 70%);z-index:0;}
.hero-text{position:relative;z-index:1;}
.hero-tag{display:inline-block;background:var(--mint);color:var(--choco);font-size:.75rem;font-weight:700;letter-spacing:.15em;text-transform:uppercase;padding:.4rem 1rem;border-radius:100px;margin-bottom:1.5rem;}
.hero-title{font-family:'Playfair Display',serif;font-size:clamp(2.8rem,5vw,4.8rem);line-height:1.05;color:var(--choco);margin-bottom:1rem;}
.hero-title em{font-style:italic;color:var(--choco-mid);}
.hero-sub{font-size:1.05rem;font-weight:300;line-height:1.7;color:#5a3a22;max-width:420px;margin-bottom:2.5rem;}
.hero-ctas{display:flex;gap:1rem;flex-wrap:wrap;}
.btn-primary{background:var(--choco);color:var(--cream);padding:.85rem 2rem;border-radius:100px;text-decoration:none;font-weight:700;font-size:.9rem;letter-spacing:.05em;transition:background .2s,transform .15s;display:inline-flex;align-items:center;gap:.5rem;}
.btn-primary:hover{background:var(--choco-mid);transform:translateY(-2px);}
.btn-secondary{border:2px solid var(--mint-dark);color:var(--choco-mid);padding:.85rem 2rem;border-radius:100px;text-decoration:none;font-weight:700;font-size:.9rem;letter-spacing:.05em;transition:all .2s;}
.btn-secondary:hover{background:var(--mint);}
.hero-image{position:relative;z-index:1;display:flex;justify-content:center;align-items:center;}
.hero-logo-wrap {width:min(520px,48vw);transform:scale(1.3);transform-origin:right center;}
.hero-logo-wrap img{width:100%;height:auto;display:block;}
@keyframes float{0%,100%{transform:translateY(0);}50%{transform:translateY(-18px);}}

/* SECTION HEADER */
.section-header{text-align:center;margin-bottom:3.5rem;}
.section-tag{display:inline-block;font-size:.75rem;font-weight:700;letter-spacing:.15em;text-transform:uppercase;color:var(--mint-dark);margin-bottom:.8rem;}
.section-title{font-family:'Playfair Display',serif;font-size:clamp(2rem,3.5vw,3rem);color:var(--choco);}
.section-title em{font-style:italic;}
.section-divider{width:60px;height:3px;background:linear-gradient(90deg,var(--mint),var(--choco));margin:1rem auto 0;border-radius:2px;}

/* PORTFOLIO FILTERS */
.portfolio-filters{display:flex;justify-content:center;gap:.75rem;flex-wrap:wrap;margin-bottom:2.5rem;}
.filter-btn{background:white;border:2px solid rgba(168,216,200,.6);color:var(--choco-mid);padding:.5rem 1.5rem;border-radius:100px;font-size:.82rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;cursor:pointer;transition:all .2s;}
.filter-btn:hover{border-color:var(--mint-dark);color:var(--choco);}
.filter-btn.active{background:var(--choco);border-color:var(--choco);color:white;}
.gallery-item.hidden{display:none;}

/* GALLERY */
#portfolio{padding:6rem 5vw;}
.gallery-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1.2rem;}
.gallery-item{position:relative;overflow:hidden;border-radius:16px;cursor:pointer;box-shadow:0 4px 20px rgba(61,28,14,.12);transition:transform .3s,box-shadow .3s;aspect-ratio:4/5;background:#efe7dd;}
.gallery-item:hover{transform:translateY(-6px);box-shadow:0 12px 40px rgba(61,28,14,.2);}
.gallery-item img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .5s;}
.gallery-item:hover img{transform:scale(1.06);}
.gallery-item.tall{grid-row:span 2;aspect-ratio:auto;}
.gallery-item.wide{grid-column:span 2;aspect-ratio:16/8;}
.gallery-caption{position:absolute;bottom:0;left:0;right:0;background:linear-gradient(transparent,rgba(61,28,14,.85));color:var(--cream);padding:2rem 1.2rem 1rem;opacity:0;transition:opacity .3s;font-family:'Playfair Display',serif;font-size:1rem;font-style:italic;}
.gallery-item:hover .gallery-caption{opacity:1;}

/* MONTE */
#monte{padding:6rem 5vw;background:var(--choco);}
#monte .section-title{color:var(--cream);}
#monte .section-tag{color:var(--mint);}
#monte .section-divider{background:linear-gradient(90deg,var(--mint),var(--rose));}
.monte-intro{color:rgba(253,248,242,.7);margin-top:1rem;font-size:.95rem;}
.simulador{max-width:860px;margin:0 auto;background:var(--cream);border-radius:28px;padding:3rem 3.5rem;box-shadow:0 30px 80px rgba(0,0,0,.35);}
.steps{display:flex;justify-content:center;gap:0;margin-bottom:3rem;}
.step-dot{display:flex;flex-direction:column;align-items:center;gap:.4rem;position:relative;flex:1;max-width:130px;}
.step-dot:not(:last-child)::after{content:'';position:absolute;top:18px;left:calc(50% + 18px);width:calc(100% - 36px);height:2px;background:rgba(168,216,200,.4);z-index:0;}
.step-dot.active:not(:last-child)::after,.step-dot.done:not(:last-child)::after{background:var(--mint-dark);}
.dot{width:36px;height:36px;border-radius:50%;border:2px solid rgba(168,216,200,.4);background:var(--cream);color:#aaa;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:.85rem;z-index:1;transition:all .3s;}
.step-dot.active .dot{background:var(--mint-dark);border-color:var(--mint-dark);color:white;}
.step-dot.done .dot{background:var(--choco);border-color:var(--choco);color:white;}
.step-dot span{font-size:.7rem;color:#999;font-weight:700;letter-spacing:.08em;text-transform:uppercase;text-align:center;}
.step-dot.active span,.step-dot.done span{color:var(--choco);}
.sim-panel{display:none;}
.sim-panel.active{display:block;animation:fadeUp .3s ease;}
@keyframes fadeUp{from{opacity:0;transform:translateY(12px);}to{opacity:1;transform:translateY(0);}}
.sim-label{font-family:'Playfair Display',serif;font-size:1.4rem;color:var(--choco);margin-bottom:.4rem;}
.sim-sub{font-size:.85rem;color:#8a6a4a;margin-bottom:1.5rem;line-height:1.5;}
.size-cards{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem;}
.size-card{border:2px solid rgba(168,216,200,.5);border-radius:16px;padding:1.5rem 1rem;text-align:center;cursor:pointer;transition:all .2s;background:white;display:flex;flex-direction:column;justify-content:flex-end;}
.size-card:hover{border-color:var(--mint-dark);transform:translateY(-3px);}
.size-card.selected{border-color:var(--choco);background:rgba(61,28,14,.04);}
.size-card .size-icon{margin-bottom:.5rem;line-height:1;display:block;}
.size-card .size-icon--p{font-size:3rem;}
.size-card .size-icon--m{font-size:3.5rem;}
.size-card .size-icon--g{font-size:4rem;}
.size-card .size-name{font-family:'Playfair Display',serif;font-size:1.3rem;color:var(--choco);font-weight:700;}
.size-card .size-fatias{font-size:.8rem;color:#8a6a4a;margin:.2rem 0;}
.size-card .size-price{font-size:1.3rem;font-weight:700;color:var(--choco-mid);margin-top:.5rem;}
.check-group{display:grid;grid-template-columns:1fr 1fr;gap:.6rem;}
.check-item{display:flex;align-items:center;gap:.7rem;background:white;border:1.5px solid rgba(168,216,200,.5);border-radius:10px;padding:.6rem .9rem;cursor:pointer;transition:all .2s;font-size:.88rem;color:var(--text);user-select:none;}
.check-item:hover{border-color:var(--mint-dark);}
.check-item.selected{border-color:var(--choco);background:rgba(61,28,14,.04);font-weight:700;}
.check-item input{display:none;}
.check-icon{width:18px;height:18px;border-radius:5px;border:2px solid #ccc;flex-shrink:0;display:flex;align-items:center;justify-content:center;transition:all .2s;font-size:.7rem;}
.check-item.selected .check-icon{background:var(--choco);border-color:var(--choco);color:white;}
/* ── Massa step ──────────────────────────────────────────── */
.massa-layout{display:grid;grid-template-columns:1fr 1fr;gap:2rem;align-items:start;margin-bottom:1.2rem;}
.massa-opcoes{display:flex;flex-direction:column;gap:.8rem;}
/* cards de sabor */
.sabor-card{display:flex;align-items:center;justify-content:center;border-radius:12px;padding:.75rem 1.1rem;cursor:pointer;font-size:.95rem;font-weight:700;transition:all .2s;user-select:none;border:3px solid transparent;letter-spacing:.04em;}
.sabor-chocolate{background:#4a1e08;color:#fff;border-color:#4a1e08;}
.sabor-baunilha{background:#f5e6c8;color:#3d1c0e;border-color:#d4b896;}
.sabor-card:hover{transform:translateY(-2px);box-shadow:0 6px 18px rgba(0,0,0,.18);}
.sabor-card.sabor-ativo.sabor-chocolate{border-color:#fff;box-shadow:0 0 0 3px rgba(74,30,8,.4);}
.sabor-card.sabor-ativo.sabor-baunilha{border-color:#7a3e1a;box-shadow:0 0 0 3px rgba(203,184,150,.5);}
.sabor-card.dragging{opacity:.4;transform:scale(.95);}
.massa-instrucao{font-size:.75rem;color:rgba(90,58,34,.75);line-height:1.5;margin-top:.2rem;}
/* bolo com camadas clicáveis */
.massa-preview{display:flex;flex-direction:column;align-items:center;gap:0;}
.cake-preview-label{font-size:.82rem;font-weight:700;letter-spacing:.15em;text-transform:uppercase;color:var(--mint);opacity:1;margin-bottom:.6rem;}
.cake-wrap{position:relative;display:flex;flex-direction:column;align-items:center;gap:0;width:100%;}
.camada-drop{position:relative;width:100%;cursor:pointer;transition:filter .2s;border-radius:6px;margin-top:-14px;}
.camada-drop:first-child{margin-top:0;z-index:3;}
.camada-drop:nth-child(2){z-index:2;}
.camada-drop:nth-child(3){z-index:1;}
.camada-drop:hover{filter:brightness(1.12);}
.camada-drop.drop-hl{filter:brightness(1.2);outline:2px dashed var(--mint);}
.camada-drop.camada-preenchida .camada-label{font-weight:700;font-size:1rem;right:auto;left:50%;top:50%;transform:translate(-50%,-50%);text-align:center;letter-spacing:.04em;text-shadow:0 1px 3px rgba(0,0,0,.25);}
#drop-c1.camada-preenchida .camada-label{top:50%;transform:translate(-50%,10%);}
#drop-c2.camada-preenchida .camada-label{top:50%;transform:translate(-50%,15%);}
#drop-c3.camada-preenchida .camada-label{top:50%;transform:translate(-50%,30%);}
.camada-svg{display:block;width:100%;height:auto;overflow:visible;}
.camada-svg rect,.camada-svg ellipse{transition:fill .35s ease;}
.camada-label{position:absolute;right:-2.8rem;top:40%;transform:translateY(-50%);font-size:.78rem;color:rgba(90,58,34,.7);letter-spacing:.05em;white-space:nowrap;}
.vela-svg{width:30px;height:auto;margin-top:-4px;display:block;}
/* btn reset */
.btn-reset-massa{background:none;border:1.5px solid rgba(90,58,34,.4);color:rgba(90,58,34,.85);border-radius:8px;padding:.4rem .9rem;font-size:.78rem;cursor:pointer;transition:all .2s;align-self:flex-start;letter-spacing:.04em;margin-top:.2rem;}
.btn-reset-massa:hover{border-color:var(--mint);color:var(--mint);}
.radio-group{display:grid;grid-template-columns:1fr 1fr;gap:.6rem;}
.radio-item{display:flex;align-items:center;gap:.7rem;background:white;border:1.5px solid rgba(168,216,200,.5);border-radius:10px;padding:.7rem 1rem;cursor:pointer;transition:all .2s;font-size:.88rem;color:var(--text);user-select:none;}
.radio-item:hover{border-color:var(--mint-dark);}
.radio-item.selected{border-color:var(--choco);background:rgba(61,28,14,.04);font-weight:700;}
.radio-dot{width:18px;height:18px;border-radius:50%;border:2px solid #ccc;flex-shrink:0;transition:all .2s;position:relative;}
.radio-item.selected .radio-dot{border-color:var(--choco);background:var(--choco);}
.radio-item.selected .radio-dot::after{content:'';position:absolute;inset:3px;border-radius:50%;background:white;}
.obs-box{background:rgba(201,151,90,.1);border:1px solid rgba(201,151,90,.4);border-radius:10px;padding:.8rem 1rem;font-size:.8rem;color:var(--choco-mid);margin-top:1rem;line-height:1.5;}
.resumo{background:white;border:2px solid rgba(168,216,200,.6);border-radius:16px;padding:1.5rem;}
.resumo-row{display:flex;justify-content:space-between;align-items:flex-start;padding:.5rem 0;border-bottom:1px solid rgba(168,216,200,.3);font-size:.88rem;gap:1rem;}
.resumo-row:last-of-type{border-bottom:none;}
.resumo-row .rl{color:#8a6a4a;font-weight:700;text-transform:uppercase;font-size:.75rem;letter-spacing:.05em;}
.resumo-row .rv{color:var(--choco);font-weight:700;text-align:right;}
.resumo-total{display:flex;justify-content:space-between;align-items:center;padding:1rem 0 0;margin-top:.5rem;border-top:2px solid var(--mint);}
.resumo-total .tl{font-family:'Playfair Display',serif;font-size:1.2rem;color:var(--choco);}
.resumo-total .tv{font-family:'Playfair Display',serif;font-size:1.8rem;color:var(--choco-mid);font-weight:700;}
.obs-acrescimo{font-size:.75rem;color:var(--gold);font-weight:700;margin-top:.75rem;display:none;}
.sim-nav{display:flex;justify-content:space-between;align-items:center;margin-top:2rem;gap:1rem;}
.btn-sim{padding:.75rem 1.8rem;border-radius:100px;font-weight:700;font-size:.9rem;cursor:pointer;border:none;transition:all .2s;}
.btn-prev{background:transparent;border:2px solid var(--mint-dark);color:var(--choco-mid);}
.btn-prev:hover{background:var(--mint-light);}
.btn-next{background:var(--choco);color:white;}
.btn-next:hover{background:var(--choco-mid);transform:translateY(-2px);}
.btn-whats{display:inline-flex;align-items:center;gap:.7rem;background:#25D366;color:white;padding:.9rem 2rem;border-radius:100px;font-weight:700;font-size:.95rem;text-decoration:none;box-shadow:0 8px 25px rgba(37,211,102,.3);transition:all .2s;border:none;cursor:pointer;}
.btn-whats:hover{transform:translateY(-3px);box-shadow:0 12px 35px rgba(37,211,102,.4);}
.step-error{color:#c0392b;font-size:.8rem;margin-top:.75rem;display:none;}

/* SOBRE */
#sobre{padding:6rem 5vw;background:linear-gradient(135deg,var(--mint-light) 0%,var(--cream) 60%);}
.sobre-grid{display:grid;grid-template-columns:1fr 1fr;gap:5vw;align-items:center;max-width:1100px;margin:0 auto;}
.sobre-text .section-header{text-align:left;}
.sobre-text .section-divider{margin:1rem 0 0;}
.sobre-body{font-size:1.05rem;line-height:1.8;color:#4a2a14;margin-top:1.5rem;}
.sobre-body p{margin-bottom:1rem;}
.sobre-img{border-radius:24px;overflow:hidden;box-shadow:0 20px 60px rgba(61,28,14,.2);aspect-ratio:4/5;}
.sobre-img img{width:100%;height:100%;object-fit:cover;display:block;}

/* PEDIDOS */
#pedidos{padding:6rem 5vw;text-align:center;}
.pedidos-content{max-width:640px;margin:0 auto;}
.pedidos-body{font-size:1.05rem;line-height:1.8;color:#4a2a14;margin:1.5rem 0 2.5rem;}
.pedidos-cards{display:flex;justify-content:center;gap:1.5rem;flex-wrap:wrap;margin-bottom:2.5rem;}
.pedido-card{background:white;border-radius:16px;padding:1.5rem 2rem;box-shadow:0 4px 20px rgba(61,28,14,.08);border:1px solid rgba(168,216,200,.6);flex:1;min-width:180px;max-width:220px;}
.pedido-card .icon{font-size:2rem;margin-bottom:.5rem;}
.pedido-card h3{font-family:'Playfair Display',serif;font-size:1rem;color:var(--choco);margin-bottom:.4rem;}
.pedido-card p{font-size:.85rem;color:#7a5a3a;}
.whatsapp-btn{display:inline-flex;align-items:center;gap:.7rem;background:#25D366;color:white;padding:1rem 2.5rem;border-radius:100px;text-decoration:none;font-weight:700;font-size:1rem;box-shadow:0 8px 25px rgba(37,211,102,.3);transition:transform .2s,box-shadow .2s;}
.whatsapp-btn:hover{transform:translateY(-3px);box-shadow:0 12px 35px rgba(37,211,102,.4);}

/* INSTAGRAM */
#instagram{padding:5rem 5vw;background:var(--choco);text-align:center;}
#instagram .section-title{color:var(--cream);}
#instagram .section-tag{color:var(--mint);}
#instagram .section-divider{background:linear-gradient(90deg,var(--mint),var(--rose));}
.insta-handle{font-family:'Dancing Script',cursive;font-size:2rem;color:var(--mint);margin:1.5rem 0;text-decoration:none;display:inline-block;transition:color .2s;}
.insta-handle:hover{color:var(--rose);}
.insta-body{color:rgba(253,248,242,.75);font-size:1rem;line-height:1.7;max-width:500px;margin:0 auto 2rem;}

/* FOOTER */
footer{background:var(--choco);border-top:1px solid rgba(168,216,200,.2);padding:2rem 3rem;display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:1rem;}
.footer-logo{font-family:'Dancing Script',cursive;font-size:1.5rem;color:var(--mint);}
footer p{color:rgba(253,248,242,.6);font-size:.8rem;}

/* LIGHTBOX */
.lightbox{display:none;position:fixed;inset:0;z-index:1000;background:rgba(20,8,2,.92);justify-content:center;align-items:center;padding:2rem;}
.lightbox.active{display:flex;}
.lightbox img{max-width:90vw;max-height:90vh;border-radius:12px;box-shadow:0 30px 80px rgba(0,0,0,.5);}
.lightbox-close{position:absolute;top:1.5rem;right:1.5rem;background:none;border:none;color:white;font-size:2rem;cursor:pointer;line-height:1;}

/* RESPONSIVE */
@media(max-width:768px){
  .hero{grid-template-columns:1fr;padding-top:100px;text-align:center;gap:2rem;}
  .hero-sub{max-width:100%;}
  .hero-ctas{justify-content:center;}
  .hero-logo-wrap{width:320px;transform:scale(1.2);transform-origin: center;}
  .gallery-grid{grid-template-columns:1fr 1fr;}
  .gallery-item.tall{grid-row:span 1;aspect-ratio:4/5;}
  .gallery-item.wide{grid-column:span 2;aspect-ratio:16/10;}
  .sobre-grid{grid-template-columns:1fr;}
  .sobre-img{aspect-ratio:16/9;}
  footer{justify-content:center;text-align:center;}
  .nav-links{display:none;}
  .simulador{padding:2rem 1.5rem;}
  .size-cards{grid-template-columns:1fr;}
  .check-group{grid-template-columns:1fr;}
  .massa-layout{grid-template-columns:1fr;gap:1.2rem;}
  .massa-preview{order:-1;padding-right:3rem;}
  .camada-label{right:-2.4rem;font-size:.72rem;}
  .radio-group{grid-template-columns:1fr;}
  .steps{gap:0;}
  .step-dot span{display:none;}
}
