:root{
  --green-900:#1F4320;
  --green-700:#638B35;
  --gold-600:#C6A74A;
  --soil-700:#573410;
  --sage-500:#899878;
  --paper:#F6F4EF;
  --paper-2:#EFECE4;

  --bg: var(--paper);
  --bg2: var(--paper-2);
  --text: #132515;
  --muted: #4C5D4E;
  --muted2: #6B7B6C;
  --line: rgba(31,67,32,.14);

  --shadow: 0 18px 45px rgba(31,67,32,.12);
  --shadow2: 0 10px 25px rgba(31,67,32,.10);
  --radius: 18px;
}

*{ box-sizing:border-box; }
html,body{ height:100%; }
body{
  margin:0;
  font-family: Inter, system-ui, -apple-system, Segoe UI, Roboto, Arial, sans-serif;
  color:var(--text);
  background:
    radial-gradient(900px 520px at 15% -10%, rgba(99,139,53,.18), transparent 60%),
    radial-gradient(900px 520px at 90% 0%, rgba(198,167,74,.18), transparent 58%),
    linear-gradient(180deg, var(--bg), var(--bg2));
}

a{ color:inherit; text-decoration:none; }
.container{ width:min(1120px, calc(100% - 40px)); margin:0 auto; }
.small{ font-size: .9rem; }
.muted{ color:var(--muted); }

.pill{
  border:1px solid var(--line);
  padding:.35rem .6rem;
  border-radius:999px;
  font-size:.85rem;
  color:var(--muted);
  background: rgba(255,255,255,.45);
}
.divider{ height:1px; background: var(--line); margin:14px 0; }

/* Topbar */
.topbar{
  position:sticky; top:0; z-index:50;
  background: rgba(246,244,239,.75);
  backdrop-filter: blur(10px);
  border-bottom:1px solid var(--line);
}
.topbar__inner{ display:flex; align-items:center; justify-content:space-between; padding:10px 0; gap:12px; }
.topbar__left{ display:flex; align-items:center; gap:10px; }
.topbar__sep{ color: rgba(31,67,32,.25); }
.topbar__right{ display:flex; align-items:center; gap:10px; }
.topbar__link{ color:var(--muted); font-size:.95rem; font-weight:700; }
.topbar__link:hover{ color:var(--green-900); }

/* Header */
.header{
  position:relative;
  border-bottom:1px solid var(--line);
  background: rgba(246,244,239,.65);
  backdrop-filter: blur(10px);
}
.header__inner{
  display:flex; align-items:center; justify-content:space-between;
  padding:18px 0; gap:18px;
}
.brand{ display:flex; align-items:center; gap:12px; }
.brand__mark{
  width:42px;height:42px; border-radius:14px;
  display:grid;place-items:center;
  background: linear-gradient(135deg, var(--green-700), var(--gold-600));
  color: #0f1f12;
  font-weight:900;
  box-shadow: 0 12px 28px rgba(31,67,32,.18);
}
.brand__name{ font-weight:900; letter-spacing:.2px; color: var(--soil-700); }
.brand__sub{ color:var(--green-900); font-size:.9rem; margin-top:2px; opacity:.92; }

.nav{ display:flex; align-items:center; gap:16px; }
.nav a{ color:var(--muted); font-weight:800; font-size:.95rem; }
.nav a:hover{ color:var(--green-900); }

/* Mobile menu */
.navbtn{
  display:none; width:44px;height:44px; border-radius:14px;
  border:1px solid var(--line); background: rgba(255,255,255,.55);
  cursor:pointer;
}
.navbtn span{
  display:block; width:18px; height:2px; background: var(--green-900);
  margin:5px auto; border-radius:99px; opacity:.9;
}
.mobilenav{
  border-top:1px solid var(--line);
  background: rgba(246,244,239,.85);
  backdrop-filter: blur(10px);
}
.mobilenav__inner{ padding:14px 0 18px; display:grid; gap:10px; }
.mobilenav__link{
  padding:12px 14px; border:1px solid var(--line); border-radius:16px;
  color:var(--muted); background: rgba(255,255,255,.55); font-weight:800;
}
.mobilenav__link:hover{ color:var(--green-900); }

/* ✅ Botão Orçamento (visível) */
.btn{
  display:inline-flex; align-items:center; justify-content:center; gap:.5rem;
  padding:12px 18px;
  border-radius:16px;
  border:none;

  background:#1F4320;
  color:#ffffff;

  font-weight:900;
  font-size:15px;

  box-shadow:0 6px 14px rgba(0,0,0,.15);
  transition:.2s;
}
.btn:hover{ background:#638B35; transform:translateY(-2px); }
.btn--small{ padding:9px 12px; border-radius:14px; font-weight:900; font-size:.92rem; }
.btn--full{ width:100%; }

/* Botão secundário */
.btn--ghost{
  background: rgba(255,255,255,.58);
  border:1px solid var(--line);
  color:var(--green-900);
  box-shadow:none;
}
.btn--ghost:hover{ background: rgba(255,255,255,.75); transform:translateY(-2px); }

/* ✅ Botão Login */
.btn-login{
  display:inline-flex; align-items:center; justify-content:center;
  padding:10px 16px;
  border-radius:14px;
  border:2px solid #1F4320;
  color:#1F4320;
  font-weight:900;
  background: rgba(255,255,255,.60);
  transition:.2s;
}
.btn-login:hover{ background:#1F4320; color:#fff; transform:translateY(-2px); }

.btn-login--small{ padding:9px 12px; border-radius:14px; font-size:.92rem; }
.btn-login--full{ width:100%; }

/* Hero */
.hero{ position:relative; padding:44px 0 20px; }
.hero__inner{ display:grid; grid-template-columns: 1.1fr .9fr; gap:28px; align-items:start; }
h1{
  font-size: clamp(2rem, 3.4vw, 3.2rem);
  line-height:1.08; margin:0 0 14px; letter-spacing:-.6px;
  color: var(--green-900);
}
.grad{
  background: linear-gradient(135deg, var(--soil-700), var(--gold-600));
  -webkit-background-clip:text; background-clip:text; color:transparent;
}
.lead{ font-size:1.06rem; line-height:1.55; color:var(--muted); margin:0 0 18px; }
.hero__cta{ display:flex; gap:12px; flex-wrap:wrap; margin:10px 0 18px; }

.hero__stats{ display:grid; grid-template-columns: repeat(3, 1fr); gap:12px; margin-top:18px; }
.stat{
  border:1px solid var(--line);
  background: rgba(255,255,255,.55);
  border-radius: var(--radius);
  padding:12px 12px;
  box-shadow: 0 10px 18px rgba(31,67,32,.06);
}
.stat__n{ font-weight:900; color: var(--soil-700); }
.stat__t{ color:var(--muted2); font-size:.92rem; margin-top:4px; }

.hero__card .card{
  border:1px solid var(--line);
  background: rgba(255,255,255,.62);
  border-radius: 22px;
  padding:16px;
  box-shadow: var(--shadow);
}
.card__top{ display:flex; align-items:flex-start; justify-content:space-between; gap:12px; margin-bottom:14px; }
.card__kicker{ color:var(--muted2); font-size:.9rem; }
.card__title{ font-weight:900; font-size:1.1rem; margin-top:4px; color: var(--green-900); }
.badge{
  border:1px solid rgba(198,167,74,.45);
  background: rgba(198,167,74,.20);
  color: var(--soil-700);
  padding:.35rem .55rem;
  border-radius:999px;
  font-weight:900;
  font-size:.85rem;
}
.card__grid{ display:grid; grid-template-columns: 1fr; gap:10px; }
.mini{
  display:flex; gap:10px; padding:12px 12px;
  border-radius:18px; border:1px solid var(--line);
  background: rgba(255,255,255,.55);
}
.mini__icon{ font-size:1.2rem; }
.mini__h{ font-weight:900; color: var(--green-900); }
.mini__p{ color:var(--muted2); font-size:.92rem; margin-top:2px; }
.card__bottom{ margin-top:14px; }

.hero__wave{
  position:absolute; left:0; right:0; bottom:-1px;
  height:60px;
  background: linear-gradient(180deg, rgba(246,244,239,0), rgba(239,236,228,1));
}

/* Sections */
.section{ padding:56px 0; }
.section--alt{
  background: linear-gradient(180deg, rgba(31,67,32,.04), rgba(31,67,32,0));
  border-top:1px solid var(--line);
  border-bottom:1px solid var(--line);
}
.section__head{ margin-bottom:18px; }
.section__head h2{
  font-size: clamp(1.5rem, 2.3vw, 2.1rem);
  margin:0 0 8px; letter-spacing:-.3px;
  color: var(--green-900);
}
.section__head p{ margin:0; }

.grid3{ display:grid; grid-template-columns: repeat(3, 1fr); gap:14px; }
.grid2{ display:grid; grid-template-columns: repeat(2, 1fr); gap:14px; }

.tile, .feature, .quote, .panel{
  border:1px solid var(--line);
  background: rgba(255,255,255,.58);
  border-radius: 22px;
  padding:18px;
  box-shadow: 0 10px 24px rgba(31,67,32,.07);
}
.tile h3, .feature h3, .panel h3{ margin:0 0 8px; color: var(--soil-700); }
.tile p, .feature p, .panel p{ margin:0 0 10px; color:var(--muted); line-height:1.5; }

.check{ margin:0; padding-left:18px; color:var(--muted2); }
.check li{ margin:6px 0; }

.feature__icon{
  width:44px;height:44px; display:grid;place-items:center; border-radius:16px;
  background: rgba(99,139,53,.14);
  border:1px solid rgba(99,139,53,.30);
  margin-bottom:10px;
}
.quote p{ margin:0 0 10px; color: var(--green-900); line-height:1.5; }
.quote footer{ color:var(--muted2); font-size:.92rem; }

.panel{ display:flex; gap:14px; align-items:flex-start; }
.panel__icon{
  width:44px;height:44px; border-radius:16px; display:grid;place-items:center;
  background: rgba(198,167,74,.18);
  border:1px solid rgba(198,167,74,.35);
}
.tags{ display:flex; flex-wrap:wrap; gap:8px; margin-top:10px; }
.tag{
  font-size:.85rem; color:var(--muted);
  border:1px solid var(--line);
  padding:.3rem .55rem;
  border-radius:999px;
  background: rgba(255,255,255,.55);
}

/* Contact */
.contact{ display:grid; grid-template-columns: 1.1fr .9fr; gap:14px; align-items:start; }
.form{
  border:1px solid var(--line);
  border-radius:22px;
  background: rgba(255,255,255,.60);
  padding:18px;
  box-shadow: var(--shadow);
}
.form label{
  display:grid; gap:8px;
  font-weight:900; color:var(--green-900);
  margin-bottom:12px;
}
.form input, .form textarea{
  width:100%;
  padding:12px 12px;
  border-radius:16px;
  border:1px solid rgba(31,67,32,.18);
  background: rgba(255,255,255,.75);
  color:var(--text);
  outline:none;
}
.form input::placeholder, .form textarea::placeholder{ color: rgba(76,93,78,.65); }
.form input:focus, .form textarea:focus{
  border-color: rgba(99,139,53,.50);
  box-shadow: 0 0 0 4px rgba(99,139,53,.18);
}
.form__row{ display:grid; grid-template-columns: 1fr 1fr; gap:12px; }

.aside{ display:grid; gap:14px; }
.aside__box{
  border:1px solid var(--line);
  border-radius:22px;
  background: rgba(255,255,255,.60);
  padding:18px;
  box-shadow: var(--shadow2);
}
.plain{ list-style:none; padding:0; margin:0; }
.plain li{ margin:8px 0; }

/* Footer */
.footer{
  border-top:1px solid var(--line);
  padding:22px 0;
  background: rgba(239,236,228,.85);
}
.footer__inner{
  display:grid;
  grid-template-columns: 1.2fr .8fr 1fr;
  gap:12px;
  align-items:center;
}
.footer__brand{ display:flex; align-items:center; gap:12px; }
.footer__name{ font-weight:900; color: var(--soil-700); }
.footer__links{ display:flex; gap:14px; justify-content:center; }
.footer__links a{ color:var(--muted); font-weight:800; }
.footer__links a:hover{ color:var(--green-900); }
.footer__copy{ text-align:right; }

/* Responsive */
@media (max-width: 980px){
  .hero__inner, .contact{ grid-template-columns: 1fr; }
  .hero__stats{ grid-template-columns: 1fr; }
  .grid3{ grid-template-columns: 1fr; }
  .grid2{ grid-template-columns: 1fr; }
  .footer__inner{ grid-template-columns: 1fr; text-align:left; }
  .footer__links{ justify-content:flex-start; }
  .footer__copy{ text-align:left; }
}
@media (max-width: 860px){
  .nav{ display:none; }
  .navbtn{ display:block; }
  .form__row{ grid-template-columns: 1fr; }
}

/* ===========================
   TerraNorte — PRO EFFECTS
   cole no FINAL do styles.css
   =========================== */

/* Links do menu com underline animado */
.nav a{
  position:relative;
}
.nav a::after{
  content:"";
  position:absolute;
  left:0;
  bottom:-8px;
  width:0%;
  height:2px;
  background: linear-gradient(90deg, var(--green-900), var(--gold-600));
  border-radius:99px;
  transition: width .25s ease;
  opacity:.9;
}
.nav a:hover::after{ width:100%; }

/* Botões com efeito "shine" */
.btn{
  position:relative;
  overflow:hidden;
}
.btn::before{
  content:"";
  position:absolute;
  top:-40%;
  left:-60%;
  width:50%;
  height:180%;
  transform: rotate(18deg);
  background: linear-gradient(90deg, transparent, rgba(255,255,255,.35), transparent);
  transition: left .55s ease;
}
.btn:hover::before{
  left:120%;
}

/* Botão ghost com brilho discreto */
.btn--ghost{
  position:relative;
  overflow:hidden;
}
.btn--ghost:hover{
  box-shadow: 0 14px 28px rgba(31,67,32,.14);
}

/* Login com leve "lift" */
.btn-login{
  box-shadow: 0 10px 20px rgba(31,67,32,.08);
}
.btn-login:hover{
  box-shadow: 0 16px 30px rgba(31,67,32,.16);
}

/* Cards/tiles com hover 3D e highlight de borda */
.tile, .feature, .quote, .panel, .stat, .card{
  position:relative;
  transition: transform .22s ease, box-shadow .22s ease, border-color .22s ease;
  transform: translateZ(0);
}
.tile:hover, .feature:hover, .quote:hover, .panel:hover, .stat:hover, .card:hover{
  transform: translateY(-6px);
  box-shadow: 0 22px 46px rgba(31,67,32,.16);
  border-color: rgba(31,67,32,.22);
}

/* Halo sutil no hover (deixa "super avançado") */
.tile::before, .feature::before, .quote::before, .panel::before, .card::before{
  content:"";
  position:absolute;
  inset:-1px;
  border-radius: 22px;
  pointer-events:none;
  opacity:0;
  transition: opacity .22s ease;
  background: radial-gradient(420px 180px at 20% 10%, rgba(198,167,74,.22), transparent 60%),
              radial-gradient(420px 180px at 80% 0%, rgba(99,139,53,.18), transparent 60%);
}
.tile:hover::before, .feature:hover::before, .quote:hover::before, .panel:hover::before, .card:hover::before{
  opacity:1;
}

/* Micro-interação nos ícones */
.feature__icon, .panel__icon{
  transition: transform .22s ease;
}
.feature:hover .feature__icon,
.panel:hover .panel__icon{
  transform: rotate(-3deg) scale(1.05);
}

/* Animação de entrada (scroll reveal) */
.reveal{
  opacity:0;
  transform: translateY(14px);
  transition: opacity .6s ease, transform .6s ease;
}
.reveal.is-visible{
  opacity:1;
  transform: translateY(0);
}

/* Preferência de usuário: reduzir animações */
@media (prefers-reduced-motion: reduce){
  .reveal{ transition:none; transform:none; opacity:1; }
  .tile, .feature, .quote, .panel, .stat, .card{ transition:none; }
  .btn::before{ display:none; }
}