:root{
  --cream:#FFF8FB;
  --cream-2:#FCE3EF;
  --wine:#E23E8C;
  --wine-deep:#9E1F63;
  --choc:#4A1030;
  --gold:#C6A15B;
  --gold-soft:#E4CE9C;
  --blush:#F8CFE3;
  --rose:#F06BAE;
  --line: rgba(74,16,48,0.12);
}
*{margin:0;padding:0;box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{
  background:var(--cream);
  color:var(--choc);
  font-family:'Jost', sans-serif;
  font-weight:400;
  overflow-x:hidden;
  -webkit-font-smoothing:antialiased;
}
h1,h2,h3,.display{
  font-family:'Fraunces', serif;
  font-weight:500;
  letter-spacing:-0.01em;
}
.italic-serif{font-family:'Fraunces', serif; font-style:italic; font-weight:400;}
a{color:inherit; text-decoration:none;}
img{max-width:100%; display:block;}
.wrap{max-width:1180px; margin:0 auto; padding:0 32px;}
.eyebrow{
  font-family:'Jost', sans-serif;
  text-transform:uppercase;
  letter-spacing:0.22em;
  font-size:0.72rem;
  font-weight:600;
  color:var(--wine);
}
@media(max-width:640px){ .wrap{padding:0 22px;} }

/* ===== Scalloped icing divider ===== */
.scallop{width:100%; height:34px; display:block; line-height:0;}
.scallop svg{width:100%; height:100%; display:block;}

/* ===== Reveal on scroll ===== */
.reveal{opacity:0; transform:translateY(26px); transition:opacity .9s ease, transform .9s cubic-bezier(.2,.7,.2,1);}
.reveal.in{opacity:1; transform:translateY(0);}

/* ===== Header ===== */
header{
  position:fixed; top:0; left:0; right:0; z-index:50;
  padding:20px 0;
  transition: background .4s ease, padding .4s ease, box-shadow .4s ease;
}
header.scrolled{
  background:rgba(253,246,243,0.92);
  backdrop-filter:blur(10px);
  padding:12px 0;
  box-shadow:0 1px 0 var(--line);
}
header .wrap{display:flex; align-items:center; justify-content:space-between;}
.logo{
  font-family:'Fraunces', serif; font-style:italic; font-weight:500; font-size:1.35rem;
  color:var(--wine); display:flex; align-items:center; gap:10px;
}
.logo-img{height:44px; width:44px; border-radius:50%; display:block; object-fit:cover; transition:height .3s ease, width .3s ease; box-shadow:0 2px 8px rgba(74,16,48,0.18);}
header.scrolled .logo-img{height:38px; width:38px;}
nav.links{display:flex; gap:34px; align-items:center;}
nav.links a{font-size:0.85rem; letter-spacing:0.03em; color:var(--choc); position:relative; padding:4px 0;}
nav.links a::after{
  content:''; position:absolute; left:0; bottom:0; height:1px; width:0%;
  background:var(--wine); transition:width .3s ease;
}
nav.links a:hover::after{width:100%;}
nav.links a.active::after{width:100%;}
.btn{
  display:inline-flex; align-items:center; gap:8px; padding:12px 24px; border-radius:2px;
  font-size:0.82rem; letter-spacing:0.05em; text-transform:uppercase; font-weight:600;
  border:1px solid var(--wine); transition:all .3s ease;
}
.btn-solid{background:var(--wine); color:var(--cream);}
.btn-solid:hover{background:var(--wine-deep); border-color:var(--wine-deep);}
.btn-outline{background:transparent; color:var(--wine);}
.btn-outline:hover{background:var(--wine); color:var(--cream);}
.nav-toggle{display:none; flex-direction:column; gap:5px; cursor:pointer; background:none; border:none;}
.nav-toggle span{width:24px; height:1.5px; background:var(--choc);}

@media(max-width:860px){
  nav.links{
    position:fixed; top:0; right:0; height:100vh; width:min(78vw,320px);
    background:var(--cream); flex-direction:column; justify-content:center; align-items:flex-start;
    padding:40px; gap:26px; transform:translateX(100%); transition:transform .45s ease;
    box-shadow:-8px 0 30px rgba(0,0,0,0.08);
  }
  nav.links.open{transform:translateX(0);}
  nav.links a{font-size:1.1rem;}
  .nav-toggle{display:flex;}
  header .btn-solid.desktop-only{display:none;}
}

/* ===== Hero ===== */
.hero{
  position:relative; min-height:100vh; display:flex; align-items:center; padding:140px 0 90px;
  background:
    radial-gradient(1100px 620px at 82% -10%, var(--blush) 0%, transparent 60%),
    radial-gradient(800px 500px at -10% 110%, var(--gold-soft) 0%, transparent 55%),
    var(--cream);
  overflow:hidden;
}
.hero .wrap{display:grid; grid-template-columns:1.05fr 0.95fr; gap:60px; align-items:center;}
.hero .eyebrow{margin-bottom:22px; display:flex; align-items:center; gap:12px;}
.hero .eyebrow .dash{width:30px; height:1px; background:var(--wine); display:inline-block;}
.hero h1{font-size:clamp(2.6rem, 5vw, 4.1rem); line-height:1.06; color:var(--wine-deep);}
.hero h1 em{font-style:italic; color:var(--rose); font-weight:400;}
.hero .tagline{
  font-family:'Fraunces', serif; font-style:italic; font-weight:500;
  font-size:clamp(1.3rem,2.4vw,1.75rem); color:var(--rose); margin-top:14px;
}
.hero p.lead{margin-top:24px; max-width:460px; font-size:1.08rem; line-height:1.7; color:#5c3742;}
.hero .cta-row{margin-top:38px; display:flex; gap:16px; flex-wrap:wrap;}
.hero .stats{margin-top:56px; display:flex; gap:42px; flex-wrap:wrap;}
.hero .stats div b{font-family:'Fraunces', serif; font-size:1.8rem; color:var(--wine); display:block;}
.hero .stats div span{font-size:0.78rem; color:#7a5561; letter-spacing:0.02em;}

.cake-art{position:relative; height:520px; display:flex; align-items:flex-end; justify-content:center;}
.cake-art svg{width:100%; max-width:400px; height:auto; overflow:visible;}
.tier-stroke{
  fill:none; stroke:var(--wine); stroke-width:1.4;
  stroke-dasharray:1400; stroke-dashoffset:1400;
  animation:draw 2.4s cubic-bezier(.2,.7,.2,1) forwards .3s;
}
.tier-fill{opacity:0; animation:fadein 1.2s ease forwards 1.6s;}
@keyframes draw{to{stroke-dashoffset:0;}}
@keyframes fadein{to{opacity:1;}}
.cake-caption{
  position:absolute; bottom:14px; left:50%; transform:translateX(-50%);
  font-family:'Fraunces', serif; font-style:italic; font-size:0.85rem; color:var(--rose);
  opacity:0; animation:fadein 1s ease forwards 2.6s; white-space:nowrap;
}
@media(max-width:860px){
  .hero .wrap{grid-template-columns:1fr; text-align:left;}
  .cake-art{height:340px; order:-1;}
}

/* ===== Section headings ===== */
.section-head{max-width:620px; margin-bottom:56px;}
.section-head .eyebrow{margin-bottom:14px;}
.section-head h2{font-size:clamp(2rem,3.4vw,2.7rem); color:var(--wine-deep);}
.section-head p{margin-top:16px; color:#6b4a54; line-height:1.7; font-size:1rem;}
section{position:relative; padding:100px 0;}

/* ===== Sobre ===== */
.sobre .wrap{display:grid; grid-template-columns:0.85fr 1.15fr; gap:70px; align-items:center;}
.sobre-photo{
  position:relative; aspect-ratio:4/5; border-radius:2px;
  background: linear-gradient(160deg, var(--blush), var(--gold-soft));
  display:flex; align-items:center; justify-content:center; overflow:hidden;
}
.sobre-photo::before{content:''; position:absolute; inset:18px; border:1px solid rgba(255,255,255,0.55);}
.sobre-photo .initials{font-family:'Fraunces', serif; font-style:italic; font-size:5.5rem; color:rgba(158,31,99,0.28);}
.sobre-photo .logo-center{width:68%; max-width:280px;}
.sobre-badge{
  position:absolute; bottom:-26px; right:-26px; background:var(--wine); color:var(--cream);
  width:130px; height:130px; border-radius:50%;
  display:flex; align-items:center; justify-content:center; text-align:center;
  font-family:'Fraunces', serif; font-size:0.95rem; line-height:1.25; padding:10px;
  box-shadow:0 14px 30px rgba(158,31,99,0.28);
}
.sobre-badge b{display:block; font-size:1.9rem;}
.sobre-text p{color:#5c3742; line-height:1.85; font-size:1.02rem; margin-bottom:18px;}
.sobre-text p:first-of-type::first-letter{
  font-family:'Fraunces', serif; font-size:3.2rem; float:left; line-height:0.8;
  margin:8px 8px 0 0; color:var(--wine);
}
.marks{display:flex; gap:30px; margin-top:34px; flex-wrap:wrap;}
.marks div{display:flex; gap:10px; align-items:flex-start; max-width:190px;}
.marks .dot{width:6px; height:6px; border-radius:50%; background:var(--gold); margin-top:8px; flex-shrink:0;}
.marks span{font-size:0.88rem; color:#6b4a54; line-height:1.5;}
@media(max-width:860px){
  .sobre .wrap{grid-template-columns:1fr;}
  .sobre-badge{width:110px; height:110px; bottom:-20px; right:12px;}
}

/* ===== Especialidades ===== */
/* ===== Destaques ===== */
.destaque-grid{display:grid; grid-template-columns:repeat(auto-fit, minmax(320px, 1fr)); gap:36px;}
.destaque-card{
  background:var(--cream-2); border-radius:2px; overflow:hidden;
  display:grid; grid-template-columns:1fr; box-shadow:0 18px 40px rgba(74,16,48,0.12);
}
.destaque-photo{aspect-ratio:4/3; overflow:hidden;}
.destaque-photo img{width:100%; height:100%; object-fit:cover; display:block; transition:transform .5s ease;}
.destaque-card:hover .destaque-photo img{transform:scale(1.04);}
.destaque-body{padding:32px 34px 36px;}
.destaque-body .tier-num{font-family:'Fraunces', serif; font-style:italic; font-size:0.85rem; color:var(--wine); margin-bottom:8px; display:block;}
.destaque-body h3{font-size:1.5rem; color:var(--wine-deep); font-weight:500; margin-bottom:14px;}
.destaque-body p{font-size:0.95rem; line-height:1.75; color:#6b4a54;}

.especialidades{background:var(--wine-deep); color:var(--cream);}
.especialidades .eyebrow{color:var(--gold-soft);}
.especialidades .section-head h2{color:var(--cream);}
.especialidades .section-head p{color:rgba(253,246,243,0.72);}
.tiers{display:grid; grid-template-columns:repeat(4,1fr); gap:2px; background:rgba(253,246,243,0.14);}
.tier-card{
  background:var(--wine-deep); padding:44px 30px; display:flex; flex-direction:column; gap:18px;
  transition:background .35s ease, transform .35s ease; position:relative;
}
.tier-card:nth-child(1){padding-top:44px;}
.tier-card:nth-child(2){padding-top:64px;}
.tier-card:nth-child(3){padding-top:84px;}
.tier-card:nth-child(4){padding-top:104px;}
.tier-card:hover{background:#C2226F; transform:translateY(-6px);}
.tier-num{font-family:'Fraunces', serif; font-style:italic; font-size:0.85rem; color:var(--gold-soft);}
.tier-card h3{font-size:1.35rem; color:var(--cream); font-weight:500;}
.tier-card p{font-size:0.88rem; line-height:1.65; color:rgba(253,246,243,0.68);}
.tier-icon{width:38px; height:38px;}
.tier-icon svg{width:100%; height:100%; stroke:var(--gold-soft); fill:none; stroke-width:1.2;}
@media(max-width:900px){
  .tiers{grid-template-columns:repeat(2,1fr);}
  .tier-card:nth-child(1),.tier-card:nth-child(2),.tier-card:nth-child(3),.tier-card:nth-child(4){padding-top:44px;}
}
@media(max-width:520px){ .tiers{grid-template-columns:1fr;} }

/* ===== Galeria ===== */
.galeria .head-row{display:flex; justify-content:space-between; align-items:flex-end; flex-wrap:wrap; gap:20px; margin-bottom:50px;}
.gal-grid{display:grid; grid-template-columns:repeat(6,1fr); grid-auto-rows:130px; gap:6px;}
.gal-item{position:relative; overflow:hidden; border-radius:1px; display:flex; align-items:flex-end; padding:14px;}
.gal-item img{position:absolute; inset:0; width:100%; height:100%; object-fit:cover; z-index:0;}
.gal-item span{position:relative; z-index:2;
  font-size:0.72rem; letter-spacing:0.04em; color:rgba(255,255,255,0.9);
  opacity:0; transform:translateY(6px); transition:all .3s ease;
  font-family:'Fraunces', serif; font-style:italic;
}
.gal-item:hover span{opacity:1; transform:translateY(0);}
.gal-item::after{
  content:''; position:absolute; inset:0; z-index:1; background:linear-gradient(0deg, rgba(74,16,48,0.55), transparent 55%);
  opacity:0; transition:opacity .3s ease;
}
.gal-item:hover::after{opacity:1;}
.gal-item:nth-child(1){grid-column:span 2; grid-row:span 2; background:linear-gradient(150deg,#F8CFE3,#F06BAE);}
.gal-item:nth-child(2){background:linear-gradient(150deg,#FCE3EF,#C6A15B);}
.gal-item:nth-child(3){background:linear-gradient(150deg,#E4CE9C,#E23E8C);}
.gal-item:nth-child(4){grid-column:span 2; background:linear-gradient(150deg,#E23E8C,#F06BAE);}
.gal-item:nth-child(5){background:linear-gradient(150deg,#C6A15B,#F8CFE3);}
.gal-item:nth-child(6){grid-column:span 2; background:linear-gradient(150deg,#F06BAE,#9E1F63);}
.gal-item:nth-child(7){background:linear-gradient(150deg,#FCE3EF,#F8CFE3);}
.gal-item:nth-child(8){grid-column:span 2; grid-row:span 2; background:linear-gradient(150deg,#9E1F63,#C6A15B);}
.gal-item:nth-child(9){background:linear-gradient(150deg,#F8CFE3,#E23E8C);}
@media(max-width:760px){
  .gal-grid{grid-template-columns:repeat(3,1fr); grid-auto-rows:100px;}
  .gal-item:nth-child(1),.gal-item:nth-child(8){grid-column:span 2; grid-row:span 2;}
  .gal-item:nth-child(4),.gal-item:nth-child(6){grid-column:span 1;}
}

/* ===== Depoimentos ===== */
.depoimentos{background:var(--cream-2);}
.quotes{display:grid; grid-template-columns:repeat(3,1fr); gap:2px; background:var(--line);}
.quote-card{background:var(--cream-2); padding:40px 34px; display:flex; flex-direction:column; gap:20px;}
.quote-mark{font-family:'Fraunces', serif; font-style:italic; font-size:2.6rem; color:var(--gold); line-height:0.5; height:20px;}
.quote-card p{font-size:0.98rem; line-height:1.75; color:#5c3742;}
.quote-who{display:flex; align-items:center; gap:12px; margin-top:auto;}
.quote-avatar{width:38px; height:38px; border-radius:50%; background:linear-gradient(150deg,var(--blush),var(--gold-soft));}
.quote-who b{display:block; font-size:0.86rem; font-weight:500;}
.quote-who span{font-size:0.76rem; color:#96707c;}
@media(max-width:860px){ .quotes{grid-template-columns:1fr;} }

/* ===== Contato / CTA ===== */
.contato{background: linear-gradient(160deg, var(--wine) 0%, var(--wine-deep) 100%); color:var(--cream); text-align:center;}
.contato .wrap{display:flex; flex-direction:column; align-items:center;}
.contato .eyebrow{color:var(--gold-soft);}
.contato h2{font-size:clamp(2rem,4.4vw,3.2rem); max-width:680px; margin-top:16px; line-height:1.15;}
.contato p{margin-top:20px; max-width:480px; color:rgba(253,246,243,0.75); line-height:1.7;}
.contato .cta-row{margin-top:38px; display:flex; gap:16px; flex-wrap:wrap; justify-content:center;}
.contato .btn-outline{border-color:var(--gold-soft); color:var(--cream);}
.contato .btn-outline:hover{background:var(--gold-soft); color:var(--wine-deep);}
.contato .btn-solid{background:var(--gold-soft); border-color:var(--gold-soft); color:var(--wine-deep);}
.contato .btn-solid:hover{background:var(--cream); border-color:var(--cream);}
.contato-info{
  margin-top:56px; display:flex; gap:56px; flex-wrap:wrap; justify-content:center;
  padding-top:40px; border-top:1px solid rgba(253,246,243,0.18); width:100%; max-width:700px;
}
.contato-info div{text-align:center;}
.contato-info .eyebrow{color:var(--gold-soft); margin-bottom:8px;}
.contato-info p{margin:0; color:var(--cream); font-family:'Fraunces', serif; font-size:1.02rem;}

/* ===== Cardápio page ===== */
.cardapio-hero{
  padding:150px 0 60px;
  background: radial-gradient(900px 500px at 85% -10%, var(--blush) 0%, transparent 60%), var(--cream);
  text-align:center;
}
.cardapio-hero .eyebrow{justify-content:center; display:flex; gap:12px; align-items:center;}
.cardapio-hero h1{font-size:clamp(2.2rem,4.4vw,3.4rem); color:var(--wine-deep); margin-top:16px;}
.cardapio-hero p{max-width:520px; margin:18px auto 0; color:#6b4a54; line-height:1.7;}

.cat-nav{display:flex; gap:10px; justify-content:center; flex-wrap:wrap; margin-top:36px;}
.cat-nav a{
  padding:9px 20px; border:1px solid var(--wine); border-radius:30px;
  font-size:0.78rem; letter-spacing:0.04em; text-transform:uppercase; color:var(--wine);
  transition:all .3s ease;
}
.cat-nav a:hover{background:var(--wine); color:var(--cream);}

.menu-section{padding:70px 0;}
.menu-section:nth-of-type(even){background:var(--cream-2);}
.menu-cat-title{display:flex; align-items:center; gap:18px; margin-bottom:40px;}
.menu-cat-title h2{font-size:clamp(1.6rem,2.6vw,2.1rem); color:var(--wine-deep); white-space:normal;}
.menu-cat-title .rule{height:1px; background:var(--line); width:100%;}

.menu-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:28px;}
@media(max-width:900px){ .menu-grid{grid-template-columns:repeat(2,1fr);} }
@media(max-width:640px){ .menu-grid{grid-template-columns:1fr;} }

.menu-card{background:var(--cream); border:1px solid var(--line); border-radius:2px; overflow:hidden; display:flex; flex-direction:column;}
.menu-cat-title + .menu-grid .menu-card, .menu-section:nth-of-type(even) .menu-card{background:var(--cream);}
.menu-photo{aspect-ratio:4/3; position:relative; overflow:hidden;}
.menu-photo img{width:100%; height:100%; object-fit:cover; display:block;}
.menu-photo span{
  position:absolute; bottom:10px; left:10px; background:rgba(74,16,48,0.55); color:var(--cream);
  font-size:0.68rem; padding:4px 9px; border-radius:20px; letter-spacing:0.03em;
  font-family:'Fraunces', serif; font-style:italic;
}
.menu-body{padding:20px 22px 24px; display:flex; flex-direction:column; gap:8px; flex:1;}
.menu-body .row{display:flex; justify-content:space-between; align-items:baseline; gap:10px;}
.menu-body h3{font-size:1.1rem; color:var(--wine-deep); font-weight:500;}
.menu-body .price{font-family:'Fraunces', serif; font-style:italic; color:var(--wine); font-size:1.05rem; white-space:nowrap;}
.menu-body p{font-size:0.86rem; line-height:1.55; color:#6b4a54;}
.menu-note{
  margin-top:50px; text-align:center; font-size:0.85rem; color:#8a606c;
  font-family:'Fraunces', serif; font-style:italic;
}

/* ===== Footer ===== */
footer{background:var(--choc); color:rgba(253,246,243,0.55); padding:34px 0; text-align:center; font-size:0.8rem;}
footer .logo-f{font-family:'Fraunces', serif; font-style:italic; color:var(--cream); font-size:1.1rem; margin-bottom:8px;}

/* ===== Floating WhatsApp button ===== */
.whatsapp-float{
  position:fixed; bottom:24px; right:24px; z-index:60;
  width:60px; height:60px; border-radius:50%;
  background:#25D366; display:flex; align-items:center; justify-content:center;
  box-shadow:0 10px 26px rgba(37,211,102,0.45), 0 2px 8px rgba(0,0,0,0.15);
  transition:transform .25s ease, box-shadow .25s ease;
  animation:float-pulse 2.6s ease-in-out infinite;
}
.whatsapp-float:hover{transform:scale(1.08); box-shadow:0 14px 32px rgba(37,211,102,0.55);}
.whatsapp-float svg{width:30px; height:30px;}
@keyframes float-pulse{
  0%,100%{box-shadow:0 10px 26px rgba(37,211,102,0.45), 0 0 0 0 rgba(37,211,102,0.4);}
  50%{box-shadow:0 10px 26px rgba(37,211,102,0.45), 0 0 0 10px rgba(37,211,102,0);}
}
.whatsapp-float .tip{
  position:absolute; right:72px; top:50%; transform:translateY(-50%);
  background:var(--choc); color:var(--cream); padding:8px 14px; border-radius:6px;
  font-size:0.8rem; white-space:nowrap; opacity:0; pointer-events:none; transition:opacity .25s ease;
  font-family:'Jost', sans-serif;
}
.whatsapp-float:hover .tip{opacity:1;}
@media(max-width:640px){
  .whatsapp-float{width:54px; height:54px; bottom:18px; right:18px;}
  .whatsapp-float .tip{display:none;}
}

/* Focus visibility */
a:focus-visible, button:focus-visible{outline:2px solid var(--gold); outline-offset:3px;}
@media (prefers-reduced-motion: reduce){
  *{animation-duration:0.01ms !important; transition-duration:0.01ms !important;}
  .reveal{opacity:1; transform:none;}
}