/* ============================================================
   Juliane Ganem — sistema base
   ============================================================ */

:root{
  /* verdes da marca */
  --verde-950:#04170F;
  --verde-900:#062018;
  --verde-800:#0A2A21;
  --verde-700:#0B3B2E;
  --verde-600:#0F4A38;
  --verde-500:#1A5C46;
  --sage:#56754F;
  --sage-400:#7E9877;
  --sage-100:#E3EADF;

  /* dourado / champanhe */
  --ouro-200:#F3E1CB;
  --ouro:#E6C9A6;
  --ouro-600:#C9A275;
  --ouro-800:#9A7647;

  /* neutros */
  --creme:#F8F4EC;
  --creme-200:#EFE8DC;
  --areia:#D9CFC0;
  --branco:#FFFFFF;
  --tinta:#17231D;
  --tinta-mid:#4A5B52;

  --serif:"Cormorant Garamond",Georgia,"Times New Roman",serif;
  --sans:"Montserrat",-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,sans-serif;

  --raio:20px;
  --raio-lg:28px;
  --raio-full:999px;

  --sombra-sm:0 2px 10px rgba(6,32,24,.08);
  --sombra:0 18px 46px -18px rgba(6,32,24,.35);
  --sombra-lg:0 40px 90px -30px rgba(6,32,24,.55);

  --max:1180px;
  --gut:clamp(20px,5vw,48px);
  --ease:cubic-bezier(.22,.61,.36,1);
}

*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
body{
  margin:0;
  font-family:var(--sans);
  font-size:clamp(15px,.42vw + 14px,17px);
  line-height:1.72;
  color:var(--tinta);
  background:var(--creme);
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
  overflow-x:hidden;
  overflow-x:clip;
}
img,svg,video{max-width:100%;height:auto;display:block}
a{color:inherit;text-decoration:none}
button{font:inherit;color:inherit;background:none;border:0;cursor:pointer}
ul{margin:0;padding:0;list-style:none}
h1,h2,h3,h4,p{margin:0}
::selection{background:var(--ouro);color:var(--verde-900)}

/* ---------- tipografia ---------- */
.display{
  font-family:var(--serif);
  font-weight:300;
  line-height:1.04;
  letter-spacing:-.015em;
}
.eyebrow{
  font-size:.7rem;
  letter-spacing:.32em;
  text-transform:uppercase;
  font-weight:600;
  color:var(--ouro-600);
}
.eyebrow--claro{color:var(--ouro)}
.lead{font-size:clamp(1rem,.5vw + .95rem,1.16rem);line-height:1.8}

/* ---------- layout ---------- */
.wrap{width:100%;max-width:var(--max);margin-inline:auto;padding-inline:var(--gut)}
.wrap--slim{max-width:820px}
.sec{padding-block:clamp(64px,9vw,132px);position:relative}
.sec--tight{padding-block:clamp(48px,6vw,88px)}
.center{text-align:center}

/* ---------- ornamento ---------- */
.orn{display:flex;align-items:center;justify-content:center;gap:14px;color:var(--ouro-600)}
.orn::before,.orn::after{
  content:"";height:1px;width:min(74px,12vw);
  background:linear-gradient(90deg,transparent,currentColor);
}
.orn::after{background:linear-gradient(270deg,transparent,currentColor)}
.orn i{width:7px;height:7px;transform:rotate(45deg);background:currentColor;display:block;flex:none}

/* ---------- botões ---------- */
.btn{
  --bg:var(--verde-700);--fg:var(--creme);--bd:transparent;
  display:inline-flex;align-items:center;justify-content:center;gap:.6em;
  padding:1.05em 2.2em;
  background:var(--bg);color:var(--fg);
  border:1px solid var(--bd);
  border-radius:var(--raio-full);
  font-size:.815rem;font-weight:700;
  letter-spacing:.13em;text-transform:uppercase;
  line-height:1;text-align:center;
  transition:transform .35s var(--ease),box-shadow .35s var(--ease),background .3s,color .3s,border-color .3s;
  box-shadow:0 12px 28px -14px rgba(6,32,24,.7);
}
.btn:hover{transform:translateY(-3px);box-shadow:0 20px 40px -16px rgba(6,32,24,.6)}
.btn:active{transform:translateY(-1px)}
.btn:focus-visible{outline:2px solid var(--ouro);outline-offset:3px}
.btn--ouro{--bg:linear-gradient(135deg,var(--ouro-200),var(--ouro) 55%,var(--ouro-600));--fg:var(--verde-900)}
.btn--linha{--bg:transparent;--fg:var(--ouro);--bd:var(--ouro-600);box-shadow:none}
.btn--linha:hover{--bg:var(--ouro);--fg:var(--verde-900)}
.btn--escuro{--bg:var(--verde-900);--fg:var(--creme)}
.btn--bloco{width:100%}
.btn--g{padding:1.2em 2.6em;font-size:.87rem}

/* ---------- topo ---------- */
.topo{
  position:fixed;inset:0 0 auto;z-index:60;
  padding-block:14px;
  transition:background .4s var(--ease),box-shadow .4s var(--ease),padding .4s var(--ease);
}
.topo__in{display:flex;align-items:center;justify-content:space-between;gap:20px}
.topo__marca{display:flex;align-items:center;gap:11px;font-family:var(--serif);font-size:1.28rem;letter-spacing:.02em;color:var(--creme);transition:color .4s}
.topo__marca img{width:36px;height:36px;border-radius:50%}
.topo__nav{display:flex;align-items:center;gap:30px}
.topo__nav a{font-size:.74rem;letter-spacing:.16em;text-transform:uppercase;font-weight:600;color:rgba(248,244,236,.82);transition:color .3s;position:relative}
.topo__nav a::after{content:"";position:absolute;left:0;right:100%;bottom:-6px;height:1px;background:var(--ouro);transition:right .35s var(--ease)}
.topo__nav a:hover{color:var(--creme)}
.topo__nav a:hover::after{right:0}
.topo.is-fixo{background:rgba(6,32,24,.92);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);box-shadow:0 1px 0 rgba(230,201,166,.16);padding-block:9px}
.topo__menu{display:none}
@media (max-width:860px){
  .topo__nav{display:none}
  .topo__menu{display:inline-flex;align-items:center;gap:9px;font-size:.72rem;letter-spacing:.14em;text-transform:uppercase;font-weight:700;color:var(--ouro)}
}

/* ---------- rodapé ---------- */
.rodape{background:var(--verde-950);color:rgba(248,244,236,.72);padding-block:clamp(52px,7vw,80px) 30px}
.rodape a{transition:color .3s}
.rodape a:hover{color:var(--ouro)}
.rodape__grade{display:grid;gap:44px;grid-template-columns:1.4fr 1fr 1fr}
@media (max-width:760px){.rodape__grade{grid-template-columns:1fr;gap:34px}}
.rodape__marca{display:flex;align-items:center;gap:12px;font-family:var(--serif);font-size:1.5rem;color:var(--creme);margin-bottom:14px}
.rodape__marca img{width:44px;height:44px;border-radius:50%}
.rodape h4{font-size:.7rem;letter-spacing:.24em;text-transform:uppercase;color:var(--ouro);margin-bottom:16px;font-weight:700}
.rodape li+li{margin-top:11px}
.rodape li a{font-size:.92rem}
.rodape__fim{
  margin-top:clamp(40px,6vw,64px);padding-top:24px;
  border-top:1px solid rgba(230,201,166,.16);
  display:flex;flex-wrap:wrap;gap:12px;justify-content:space-between;align-items:center;
  font-size:.76rem;letter-spacing:.03em;color:rgba(248,244,236,.5);
}

/* ---------- whatsapp flutuante ---------- */
.zap{
  position:fixed;right:clamp(14px,3vw,26px);bottom:clamp(14px,3vw,26px);z-index:70;
  width:56px;height:56px;border-radius:50%;
  display:grid;place-items:center;
  background:#25D366;color:#fff;
  box-shadow:0 14px 30px -8px rgba(37,211,102,.55);
  transition:transform .35s var(--ease);
}
.zap:hover{transform:scale(1.08)}
.zap svg{width:29px;height:29px}
.zap::after{
  content:"";position:absolute;inset:0;border-radius:50%;
  border:2px solid #25D366;animation:pulso 2.6s ease-out infinite;
}
@keyframes pulso{0%{transform:scale(1);opacity:.7}70%{transform:scale(1.7);opacity:0}100%{opacity:0}}
@media (prefers-reduced-motion:reduce){.zap::after{animation:none}}

/* ---------- revelação ao rolar ---------- */
.rev{opacity:0;transform:translateY(26px);transition:opacity .9s var(--ease),transform .9s var(--ease)}
.rev.vis{opacity:1;transform:none}
@media (prefers-reduced-motion:reduce){.rev{opacity:1;transform:none;transition:none}}

/* ---------- utilidades ---------- */
.sr{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}
.grao{
  position:absolute;inset:0;pointer-events:none;opacity:.42;mix-blend-mode:overlay;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='200' height='200'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='3'/%3E%3C/filter%3E%3Crect width='200' height='200' filter='url(%23n)' opacity='.5'/%3E%3C/svg%3E");
}
