/* AnaVe — shared brand tokens, base styles and components.
   Used by anave-home.html, anave-servico-raiz.html, anave-servico-vereda.html. */

:root{
  --red:#b02506; --red-deep:#8a1c04;
  --green:#012913; --green-soft:#0e3b22;
  --cream:#fff8f8; --blush:#f4dfd6;
  --line:rgba(1,41,19,0.14);
  --rose:#e8b39f;
}
*{ margin:0; padding:0; box-sizing:border-box; }
html{ scroll-behavior:smooth; }
body{ background:var(--cream); color:var(--green); font-family:'Montserrat',sans-serif; line-height:1.6; overflow-x:hidden; }
h1,h2,h3,h4,.display{ font-family:'Playfair Display',serif; font-weight:600; line-height:1.12; letter-spacing:-0.01em; }
em{ font-style:italic; color:var(--red); }
a{ color:inherit; text-decoration:none; }
.wrap{ max-width:1180px; margin:0 auto; padding:0 32px; }
section{ padding:100px 32px; }

/* Header / nav */
header{ position:sticky; top:0; z-index:50; background:rgba(255,248,248,0.88); backdrop-filter:blur(10px); border-bottom:1px solid var(--line); }
nav{ display:flex; align-items:center; justify-content:space-between; padding:20px 32px; max-width:1180px; margin:0 auto; }
.logo{ font-family:'Playfair Display',serif; font-size:1.4rem; font-weight:700; letter-spacing:0.02em; }
.logo span{ color:var(--red); }
.nav-links{ display:flex; gap:40px; font-size:0.8rem; letter-spacing:0.08em; text-transform:uppercase; font-weight:500; }
.nav-links a{ position:relative; padding-bottom:4px; }
.nav-links a::after{ content:''; position:absolute; left:0; bottom:0; height:1px; width:0; background:var(--red); transition:width 0.3s ease; }
.nav-links a:hover::after{ width:100%; }
.nav-cta{ background:var(--red); color:var(--cream); padding:11px 22px; border-radius:2px; font-size:0.76rem; letter-spacing:0.08em; text-transform:uppercase; font-weight:600; transition:background 0.25s ease; }
.nav-cta:hover{ background:var(--red-deep); }

/* Buttons */
.btn-primary{ display:inline-block; background:var(--red); color:var(--cream); padding:16px 34px; font-size:0.8rem; letter-spacing:0.1em; text-transform:uppercase; font-weight:600; border-radius:2px; transition:background 0.25s ease, transform 0.25s ease; }
.btn-primary:hover{ background:var(--red-deep); transform:translateY(-2px); }
.btn-ghost{ display:inline-block; border:1px solid var(--green); color:var(--green); padding:15px 32px; font-size:0.8rem; letter-spacing:0.1em; text-transform:uppercase; font-weight:600; border-radius:2px; margin-left:14px; transition:all 0.25s ease; }
.btn-ghost:hover{ background:var(--green); color:var(--cream); }

/* Small tag */
.eyebrow{ font-size:0.78rem; letter-spacing:0.16em; text-transform:uppercase; color:var(--red); font-weight:600; margin-bottom:18px; display:block; }

/* Big editorial section label */
.section-label-row{ display:flex; align-items:baseline; gap:14px; margin-bottom:36px; flex-wrap:wrap; }
.section-label-row.center{ justify-content:center; text-align:center; }
.section-label{ font-family:'Playfair Display',serif; font-weight:700; font-size:clamp(1.5rem,3vw,1.9rem); text-transform:uppercase; color:var(--green); }
.section-label::after{ content:'.'; color:var(--red); }
.section-label-sub{ font-size:0.8rem; color:var(--green-soft); }
.section-label-row.on-dark .section-label{ color:var(--cream); }
.section-label-row.on-dark .section-label-sub{ color:rgba(255,248,248,0.7); }

/* Hero (home + service pages) */
.hero{ padding:90px 32px 80px; }
.hero-grid{ max-width:1180px; margin:0 auto; display:grid; grid-template-columns:1fr 1fr; gap:56px; align-items:center; }
.hero-text h1{ font-size:clamp(2.1rem,4.2vw,3.4rem); margin-bottom:26px; }
.hero-text p.lead{ max-width:440px; color:var(--green-soft); margin-bottom:30px; }
.pills{ display:flex; flex-wrap:wrap; gap:10px; margin-bottom:30px; }
.pill{ font-size:0.74rem; letter-spacing:0.02em; background:var(--blush); color:var(--red-deep); padding:8px 16px; border-radius:20px; font-weight:600; }
.hero-photo{ position:relative; }
.hero-photo .photo{
  aspect-ratio:4/5; border-radius:4px; overflow:hidden;
  background:linear-gradient(90deg,var(--cream) 0%, rgba(255,248,248,0) 32%), var(--blush);
  border:1px solid var(--line);
  display:flex; align-items:center; justify-content:center;
  font-family:'Playfair Display',serif; font-style:italic; color:var(--red-deep); opacity:0.55;
  font-size:0.9rem; text-align:center; padding:16px;
}
.float-card{ position:absolute; left:-18px; bottom:26px; background:var(--cream); border:1px solid var(--line);
  border-radius:10px; padding:16px 20px; box-shadow:0 12px 28px rgba(1,41,19,0.14); max-width:180px; }
.float-card .num{ font-family:'Playfair Display',serif; font-style:italic; color:var(--red); font-size:1.7rem; line-height:1; margin-bottom:4px; }
.float-card .lbl{ font-size:0.72rem; color:var(--green-soft); }

/* Numbered pillars (methodology) */
.pillars{ display:grid; grid-template-columns:repeat(var(--n,3),1fr); gap:26px; }
.pillar{ border-top:2px solid var(--red); padding-top:16px; }
.pillar .n{ font-family:'Playfair Display',serif; font-weight:700; font-size:2.2rem; color:var(--blush);
  -webkit-text-stroke:1px var(--red-deep); line-height:1; margin-bottom:10px; display:block; }
.pillar h3{ font-family:'Playfair Display',serif; font-weight:600; font-size:1.1rem; margin-bottom:8px; }
.pillar p{ font-size:0.88rem; color:var(--green-soft); }
@supports not (-webkit-text-stroke: 1px black){
  .pillar .n{ color:var(--red-deep); opacity:0.35; }
}

/* Device-frame mockup (entregáveis) */
.device-frame{ border-radius:8px; overflow:hidden; border:1px solid var(--line); box-shadow:0 10px 24px rgba(1,41,19,0.10); }
.device-frame .bar{ background:var(--blush); padding:8px 10px; display:flex; gap:5px; }
.device-frame .bar span{ width:7px; height:7px; border-radius:50%; background:rgba(1,41,19,0.25); display:inline-block; }
.device-frame .screen{ aspect-ratio:16/10; background:linear-gradient(135deg,var(--cream),var(--blush));
  display:flex; align-items:center; justify-content:center; font-family:'Playfair Display',serif;
  font-style:italic; color:var(--red-deep); opacity:0.55; font-size:0.82rem; text-align:center; padding:12px; }

/* Service template — shared between Raiz and Vereda */
.promessa{ background:var(--green); color:var(--cream); text-align:center; }
.promessa .eyebrow{ color:var(--rose); }
.promessa h2{ font-size:clamp(1.9rem,4vw,3rem); max-width:780px; margin:0 auto; color:var(--cream); }

.entregaveis-grid{ max-width:1080px; margin:0 auto; display:grid; grid-template-columns:repeat(3,1fr); gap:44px 36px; }
.entrega-card h3{ font-family:'Playfair Display',serif; font-weight:600; font-size:1.15rem; color:var(--red-deep); margin-bottom:10px; }
.entrega-card p{ font-size:0.9rem; color:var(--green-soft); margin-bottom:16px; }

.fit{ background:var(--blush); }
.fit-grid{ max-width:1000px; margin:0 auto; display:grid; grid-template-columns:1fr 1fr; gap:40px; }
.fit-col h3{ font-size:1.25rem; margin-bottom:20px; }
.fit-col.is h3{ color:var(--red); }
.fit-col.isnot h3{ color:var(--green-soft); opacity:0.75; }
.fit-col ul{ list-style:none; }
.fit-col li{ font-size:0.94rem; padding:9px 0; border-bottom:1px solid rgba(1,41,19,0.1); color:var(--green-soft); }
.fit-col li:last-child{ border-bottom:none; }
.cross-link{ color:var(--red); font-weight:600; }
.fit-col.isnot li{ opacity:0.75; }

.cta{ text-align:center; }
.cta h2{ font-size:clamp(1.8rem,3.4vw,2.4rem); max-width:600px; margin:0 auto 30px; }

.sobre{ background:var(--green); color:var(--cream); }
.sobre-grid{ max-width:1000px; margin:0 auto; display:grid; grid-template-columns:0.7fr 1.3fr; gap:50px; align-items:center; }
.sobre .portrait{ aspect-ratio:4/5; background:var(--green-soft); border:1px solid rgba(255,248,248,0.16); display:flex; align-items:center; justify-content:center; font-family:'Playfair Display',serif; font-style:italic; color:rgba(255,248,248,0.4); font-size:0.85rem; }
.sobre h3{ color:var(--cream); font-size:clamp(1.6rem,3vw,2.2rem); margin-bottom:18px; }
.sobre p{ color:rgba(255,248,248,0.75); font-size:0.98rem; }
.stats-row{ display:flex; gap:40px; margin-top:32px; flex-wrap:wrap; }
.stats-row .stat{ display:flex; flex-direction:column; }
.stats-row .num{ font-family:'Playfair Display',serif; font-style:italic; color:var(--rose); font-size:1.7rem; line-height:1; margin-bottom:6px; }
.stats-row .label{ font-size:0.76rem; letter-spacing:0.05em; color:rgba(255,248,248,0.65); }

.duvidas{ max-width:760px; margin:0 auto; padding:100px 32px; }
details{ border-bottom:1px solid var(--line); padding:20px 0; }
summary{ cursor:pointer; font-family:'Playfair Display',serif; font-size:1.05rem; font-weight:600; list-style:none; display:flex; justify-content:space-between; align-items:center; }
summary::-webkit-details-marker{ display:none; }
summary::after{ content:'+'; color:var(--red); font-size:1.3rem; font-family:'Montserrat',sans-serif; }
details[open] summary::after{ content:'–'; }
details p{ margin-top:14px; color:var(--green-soft); font-size:0.94rem; max-width:600px; }

.whats{ background:var(--blush); text-align:center; padding:70px 32px; }
.whats h2{ font-size:clamp(1.6rem,3vw,2.1rem); margin-bottom:26px; }

footer{ background:var(--green); color:rgba(255,248,248,0.6); padding:50px 32px; text-align:center; font-size:0.8rem; }
footer .logo{ color:var(--cream); margin-bottom:10px; display:inline-block; }
[id]{ scroll-margin-top:80px; }

@media (max-width:1100px){
  .pillars{ grid-template-columns:repeat(auto-fit,minmax(160px,1fr)); }
}
@media (max-width:860px){
  .nav-links{ display:none; }
  .hero-grid{ grid-template-columns:1fr; }
  .hero-photo{ order:-1; }
  .hero-photo .photo{ aspect-ratio:16/10; background:linear-gradient(180deg,var(--cream) 0%, rgba(255,248,248,0) 32%), var(--blush); }
  .hero-photo .float-card{ position:static; margin-top:14px; left:0; bottom:0; }
  .pillars{ grid-template-columns:1fr; }
  .entregaveis-grid, .fit-grid, .sobre-grid{ grid-template-columns:1fr; }
  .sobre .portrait{ aspect-ratio:16/10; }
}
@media (prefers-reduced-motion:reduce){ html{ scroll-behavior:auto; } *{ transition:none !important; } }
