/* ===========================================================
   Vitor Davanzo — vitordavanzo.com.br
   Paleta e tipografia seguem o padrão de marca já em uso
   =========================================================== */

:root{
  --cream:#FAF7F1;
  --cream2:#F0ECD4;
  --ink:#1C1B1F;
  --ink2:#4A4852;
  --gold:#A07C3C;
  --gold-l:#D2AF69;
  --line:#DCD3BE;
  --navy:#0E1A2B;
  --navy2:#16273D;
}

*{box-sizing:border-box; margin:0; padding:0;}
html{scroll-behavior:smooth;}
body{
  font-family:'Poppins', sans-serif;
  background:var(--cream);
  color:var(--ink);
  line-height:1.7;
  -webkit-font-smoothing:antialiased;
}
a{color:inherit; text-decoration:none;}
img{max-width:100%; display:block;}
.serif{font-family:Georgia, 'Times New Roman', serif;}

.wrap{max-width:1080px; margin:0 auto; padding:0 32px;}

/* ---------------- HEADER / NAV ---------------- */
header.site{
  position:sticky; top:0; z-index:50;
  background:rgba(250,247,241,0.96);
  border-bottom:1px solid var(--line);
  backdrop-filter:blur(6px);
  box-shadow:0 2px 12px rgba(14,26,43,0.05);
}
.nav-inner{
  max-width:1080px; margin:0 auto; padding:0 32px;
  display:flex; align-items:center; justify-content:space-between;
  height:76px;
}
.brand{display:flex; align-items:center;}
.brand img{margin-right:12px;}
.brand img{width:30px; height:30px;}
.brand .name{
  font-family:Georgia, serif;
  font-weight:700;
  font-size:19px;
  letter-spacing:0.3px;
  color:var(--navy);
}
nav.links{display:flex; align-items:center;}
nav.links a{
  font-size:14px; font-weight:400; color:var(--ink2);
  position:relative; padding:4px 0; margin-right:32px;
}
nav.links a:hover{color:var(--ink);}
nav.links a.active{color:var(--ink); font-weight:500;}
nav.links a.active::after{
  content:''; position:absolute; left:0; right:0; bottom:-4px;
  height:2px; background:var(--gold);
}
.nav-cta{
  padding:10px 20px; border:1px solid var(--ink); border-radius:2px;
  font-size:13px; font-weight:500; white-space:nowrap;
}
.nav-cta:hover{background:var(--navy); border-color:var(--navy); color:var(--cream);}

.burger{display:none; width:26px; height:20px; position:relative; cursor:pointer; border:none; background:none;}
.burger span{
  position:absolute; left:0; width:100%; height:2px; background:var(--ink);
}
.burger span:nth-child(1){top:0;}
.burger span:nth-child(2){top:9px;}
.burger span:nth-child(3){top:18px;}
#nav-toggle{display:none;}

@media (max-width:820px){
  nav.links{
    position:absolute; top:76px; left:0; right:0;
    background:var(--cream); border-bottom:1px solid var(--line);
    flex-direction:column; align-items:flex-start; gap:0;
    max-height:0; overflow:hidden; transition:max-height 0.25s ease;
  }
  nav.links a{width:100%; padding:16px 32px; border-bottom:1px solid var(--line);}
  nav.links a.active::after{display:none;}
  .nav-cta{margin:16px 32px; display:inline-block;}
  #nav-toggle:checked ~ nav.links{max-height:400px;}
  .burger{display:block;}
}

/* ---------------- HERO ---------------- */
.hero{
  position:relative; overflow:hidden;
  max-width:820px; margin:0 auto; padding:108px 32px 80px; text-align:center;
}
.hero::before{
  content:''; position:absolute; inset:0; z-index:0; pointer-events:none;
  background:
    radial-gradient(ellipse 620px 320px at 50% 0%, rgba(160,124,60,0.10), transparent 70%),
    radial-gradient(circle, rgba(14,26,43,0.05) 1px, transparent 1.4px);
  background-size:auto, 22px 22px;
}
.hero > *{position:relative; z-index:1;}
.hero .hero-mark{width:52px; height:52px; margin:0 auto 30px; filter:drop-shadow(0 4px 10px rgba(160,124,60,0.25));}
.hero .eyebrow{font-size:14px; color:var(--gold); letter-spacing:1.5px; margin-bottom:20px; font-weight:500; text-transform:uppercase;}
.hero h1{
  font-family:Georgia, serif; font-weight:700; font-size:50px; line-height:1.2; letter-spacing:-0.5px;
  color:var(--navy); margin-bottom:24px;
}
.hero p.lead{font-size:18px; color:var(--ink2); font-weight:300; max-width:600px; margin:0 auto 36px;}
.hero-actions{display:flex; justify-content:center; flex-wrap:wrap;}
.hero-actions .btn{margin:0 8px;}

.btn{
  display:inline-block; padding:14px 30px; font-size:14px; font-weight:500;
  border-radius:3px; transition:background 0.2s ease, color 0.2s ease, transform 0.2s ease, box-shadow 0.2s ease;
}
.btn:hover{transform:translateY(-2px);}
.btn.primary{background:var(--navy); color:var(--cream); box-shadow:0 6px 16px rgba(14,26,43,0.22);}
.btn.primary:hover{background:var(--gold); box-shadow:0 10px 22px rgba(160,124,60,0.30);}
.btn.ghost{background:transparent; border:1px solid var(--navy); color:var(--navy);}
.btn.ghost:hover{background:var(--navy); color:var(--cream);}

/* ---------------- SECTION GENERIC ---------------- */
section{padding:72px 0;}
section.alt{background:var(--cream2);}
.section-head{max-width:640px; margin:0 auto 48px; text-align:center;}
.section-head .kicker{font-size:13px; color:var(--gold); font-weight:500; margin-bottom:10px;}
.section-head h2{font-family:Georgia, serif; font-size:32px; font-weight:700; color:var(--navy);}
.section-head p{color:var(--ink2); font-weight:300; margin-top:14px; font-size:16px;}

/* ---------------- STATS BAR ---------------- */
.stats{
  display:flex; justify-content:center; flex-wrap:wrap;
  background:var(--cream2);
  border-radius:8px;
  padding:36px 20px;
  margin-bottom:8px;
}
.stats .stat{margin:0 40px; padding:0 40px; position:relative;}
.stats .stat:not(:last-child)::after{
  content:''; position:absolute; right:-40px; top:50%; transform:translateY(-50%);
  width:1px; height:36px; background:var(--line);
}
.stat{text-align:center;}
.stat .n{font-family:Georgia, serif; font-size:30px; font-weight:700; color:var(--navy);}
.stat .l{font-size:13px; color:var(--ink2); margin-top:6px;}
@media (max-width:640px){
  .stats .stat{margin:0 16px; padding:12px 0;}
  .stats .stat::after{display:none;}
}

/* ---------------- PRODUCT CARDS (grid) ---------------- */
.grid-products{
  display:flex; flex-wrap:wrap; margin:-10px; border:none;
}
.card{
  background:var(--cream); padding:44px 34px; display:flex; flex-direction:column;
  flex:1 1 280px; margin:10px; border:1px solid var(--line); min-width:0;
  border-radius:6px; box-shadow:0 4px 18px rgba(14,26,43,0.05);
  transition:transform 0.25s ease, box-shadow 0.25s ease;
}
.card:hover{transform:translateY(-4px); box-shadow:0 14px 30px rgba(14,26,43,0.10);}
.card .icon{
  width:44px; height:44px; margin-bottom:20px; color:var(--gold);
}
.card .icon svg{width:100%; height:100%;}
.card .tag{font-size:12px; color:var(--gold); font-weight:500; margin-bottom:14px;}
.card h3{font-family:Georgia, serif; font-size:22px; font-weight:700; margin-bottom:14px; color:var(--navy);}
.card p{font-size:15px; color:var(--ink2); font-weight:300; margin-bottom:24px; flex-grow:1;}
.card .price{font-size:14px; color:var(--ink2); margin-bottom:16px;}
.card .price b{color:var(--ink); font-size:16px; font-weight:600;}
.card.soon{opacity:0.7;}
.card.soon .tag{color:var(--ink2);}

/* ---------------- LONG PRODUCT SECTIONS (used on Produtos page) ---------------- */
.product-full{
  max-width:920px; margin:0 auto; padding:56px 32px;
  display:flex; align-items:flex-start; gap:40px;
  border-top:1px solid var(--line);
}
.product-full:last-of-type{border-bottom:1px solid var(--line);}
.product-full .num{flex:0 0 70px; font-family:Georgia, serif; font-size:56px; color:var(--cream2); font-weight:700; line-height:1; padding-top:6px;}
.product-full .content{flex:1 1 auto; min-width:0;}
.product-full .kicker{font-size:13px; color:var(--gold); font-weight:500; margin-bottom:10px;}
.product-full h3{font-family:Georgia, serif; font-size:28px; font-weight:700; margin-bottom:16px; color:var(--navy);}
.product-full .body{max-width:60ch; color:var(--ink2); font-weight:300; font-size:16px; margin-bottom:22px;}
.product-full .body strong{font-weight:600; color:var(--ink);}
.product-full .meta{display:flex; align-items:center; flex-wrap:wrap;}
.product-full .meta > *{margin:0 12px 12px 0;}

@media (max-width:640px){
  .product-full{flex-direction:column; gap:4px;}
  .product-full .num{display:none;}
}

/* ---------------- ABOUT / BIO ---------------- */
.bio-grid{
  display:flex; flex-wrap:wrap; align-items:flex-start; gap:0;
  max-width:920px; margin:0 auto; padding:0 32px;
}
.bio-grid .bio-photo{margin-right:56px; margin-bottom:24px;}
.bio-grid .bio-text{flex:1 1 400px; min-width:0;}
.bio-photo{
  width:220px; height:220px; border-radius:4px; border:1px solid var(--gold);
  padding:10px;
}
.bio-photo-inner{
  width:100%; height:100%; background:linear-gradient(155deg, var(--navy), var(--navy2)); border-radius:2px;
  display:flex; align-items:center; justify-content:center;
}
.bio-photo-inner span{font-family:Georgia, serif; font-size:44px; color:var(--gold-l); font-weight:700;}
.bio-text p{margin-bottom:18px; color:var(--ink2); font-weight:300; font-size:16px;}
.bio-text p strong{color:var(--ink); font-weight:600;}
@media (max-width:700px){
  .bio-grid .bio-photo{margin:0 auto 24px;}
}

.credentials{max-width:920px; margin:48px auto 0; padding:0 32px;}
.credentials ul{list-style:none;}
.credentials li{
  padding:16px 0; border-top:1px solid var(--line); font-size:15px; color:var(--ink2);
  display:flex; justify-content:space-between; gap:24px; flex-wrap:wrap;
}
.credentials li:last-child{border-bottom:1px solid var(--line);}
.credentials li b{color:var(--ink); font-weight:600; min-width:180px;}

/* ---------------- CONTACT ---------------- */
.contact-grid{
  display:flex; flex-wrap:wrap; margin:-10px; border:none;
  max-width:940px; margin-left:auto; margin-right:auto;
}
.contact-card{
  background:var(--cream); padding:44px 32px; text-align:center;
  flex:1 1 240px; margin:10px; border:1px solid var(--line); min-width:0;
  border-radius:6px; box-shadow:0 4px 18px rgba(14,26,43,0.05);
  transition:transform 0.25s ease, box-shadow 0.25s ease;
}
.contact-card:hover{transform:translateY(-4px); box-shadow:0 14px 30px rgba(14,26,43,0.10);}
.contact-card .icon{
  width:52px; height:52px; margin:0 auto 20px; border-radius:50%;
  background:linear-gradient(155deg, var(--navy), var(--navy2));
  display:flex; align-items:center; justify-content:center;
  font-family:Georgia, serif; color:var(--gold-l); font-size:18px; font-weight:700;
  box-shadow:0 6px 16px rgba(14,26,43,0.18);
}
.contact-card h3{font-family:Georgia, serif; font-size:18px; margin-bottom:10px;}
.contact-card p{font-size:14px; color:var(--ink2); margin-bottom:20px;}

/* ---------------- CTA BAND ---------------- */
.cta-band{
  background:var(--navy); color:var(--cream); text-align:center; padding:72px 32px;
}
.cta-band h2{font-family:Georgia, serif; font-size:28px; margin-bottom:16px; font-weight:700;}
.cta-band p{color:var(--cream2); font-weight:300; margin-bottom:28px; max-width:520px; margin-left:auto; margin-right:auto;}

/* ---------------- FOOTER ---------------- */
footer.site{background:var(--navy); color:var(--cream2); text-align:center; padding:56px 32px 40px;}
footer.site .sig-name{font-family:Georgia, serif; font-size:20px; font-weight:700; color:var(--cream); margin-bottom:6px;}
footer.site .sig-role{font-size:14px; color:var(--gold-l); margin-bottom:4px;}
footer.site .sig-loc{font-size:13px; color:var(--cream2); opacity:0.7; margin-bottom:28px;}
footer.site .footer-links{display:flex; justify-content:center; flex-wrap:wrap; margin-bottom:32px;}
footer.site .footer-links a{font-size:14px; color:var(--cream2); margin:0 14px; border-bottom:1px solid transparent;}
footer.site .footer-links a:hover{border-bottom-color:var(--gold);}
footer.site .footer-tag{font-size:11px; letter-spacing:2px; color:var(--gold-l); opacity:0.8;}

/* ---------------- MOBILE POLISH ---------------- */
@media (max-width:640px){
  .hero{padding:64px 24px 48px;}
  .hero h1{font-size:30px;}
  .section-head h2{font-size:24px;}
  .cta-band h2{font-size:22px;}
}

/* CTA band tem fundo navy — o botão primário precisa inverter pra dourado aqui,
   senão fica navy-sobre-navy e o botão some visualmente. */
.cta-band .btn.primary{
  background:var(--gold); color:var(--navy);
  box-shadow:0 10px 24px rgba(0,0,0,0.25);
}
.cta-band .btn.primary:hover{background:var(--gold-l); box-shadow:0 12px 26px rgba(0,0,0,0.3);}

/* Ícones dentro dos blocos de produto na página Produtos */
.product-full .icon{
  width:34px; height:34px; color:var(--gold); margin-bottom:16px;
}
.product-full .icon svg{width:100%; height:100%;}
