:root{
  --bg:#F8F7F5;
  --text:#222222;
  --primary:#1F2937;
  --wood:#8B5E3C;
  --gold:#D4A373;
  --card:#FFFFFF;

  --radius-xl:28px;
  --radius-lg:20px;
  --radius-md:14px;

  --shadow: 0 18px 50px rgba(17, 24, 39, .12);
  --shadow-soft: 0 10px 30px rgba(17, 24, 39, .10);

  --container: 1120px;
}

*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  margin:0;
  font-family:"Poppins", system-ui, -apple-system, Segoe UI, Roboto, Arial, sans-serif;
  color:var(--text);
  background:var(--bg);
}

img{max-width:100%;display:block}

.skip-link{
  position:absolute;left:-999px;top:auto;width:1px;height:1px;overflow:hidden;
}
.skip-link:focus{left:16px;top:16px;width:auto;height:auto;z-index:9999;background:#fff;padding:10px 12px;border-radius:12px;box-shadow:var(--shadow-soft)}

.container{
  width:100%;
  max-width:var(--container);
  margin:0 auto;
  padding:0 20px;
}

/* Topbar */
.topbar{
  position:fixed;
  top:0;left:0;right:0;
  z-index:50;
  background:rgba(248,247,245,.78);
  backdrop-filter: blur(10px);
  border-bottom:1px solid rgba(31,41,55,.08);
}
.topbar[data-elevate].is-elevated{box-shadow:0 10px 24px rgba(17,24,39,.12)}
.topbar__inner{
  height:72px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:16px;
}
.brand{display:flex;align-items:center;gap:10px;text-decoration:none;color:var(--primary);font-weight:800;letter-spacing:.08em}
.brand__mark{
  width:34px;height:34px;border-radius:12px;
  display:inline-flex;align-items:center;justify-content:center;
  background:linear-gradient(135deg, rgba(212,163,115,.22), rgba(139,94,60,.10));
  border:1px solid rgba(212,163,115,.35);
  color:var(--wood);
}
.brand__name{font-size:13px;line-height:1}

.nav__list{list-style:none;display:flex;gap:18px;margin:0;padding:0;align-items:center}
.nav__link{
  text-decoration:none;
  color:rgba(31,41,55,.92);
  font-weight:600;
  font-size:14px;
  padding:10px 10px;
  border-radius:999px;
  transition: background .2s ease, color .2s ease;
}
.nav__link:hover{background:rgba(31,41,55,.07);color:var(--primary)}

.topbar__cta{display:flex;align-items:center;gap:12px}

/* Buttons */
.btn{
  display:inline-flex;align-items:center;justify-content:center;
  gap:10px;
  border:none;
  cursor:pointer;
  text-decoration:none;
  font-weight:800;
  border-radius:999px;
  transition: transform .15s ease, box-shadow .15s ease, background .2s ease, border-color .2s ease;
  will-change: transform;
}

.btn--primary{
  background:linear-gradient(135deg, #1F2937, #0f172a);
  color:#fff;
  padding:12px 18px;
  box-shadow: 0 18px 40px rgba(31,41,55,.25);
}
.btn--primary:hover{transform: translateY(-1px);box-shadow: 0 22px 55px rgba(31,41,55,.32)}

.btn--ghost{
  padding:12px 18px;
  border:1px solid rgba(31,41,55,.18);
  background:rgba(255,255,255,.35);
  color:var(--primary);
}
.btn--ghost:hover{transform: translateY(-1px);border-color: rgba(212,163,115,.55);box-shadow: 0 14px 30px rgba(31,41,55,.10)}

.btn--lg{padding:14px 22px;font-size:16px}
.btn--sm{padding:10px 14px;font-size:13px}
.btn--full{width:100%}

/* Mobile menu */
.menu-btn{display:none;background:transparent;border:none;width:44px;height:44px;align-items:center;justify-content:center;gap:6px;flex-direction:column;cursor:pointer}
.menu-btn span{display:block;width:22px;height:2px;background:rgba(31,41,55,.9);border-radius:2px}

/* Garantia extra: menu button e mobile-nav só em telas responsivas */
@media screen and (min-width: 993px){
  .menu-btn{display:none !important;}
  .mobile-nav{display:none !important;}
}

.mobile-nav{display:none;
   background:#f8f7f5;
  border-top:1px solid rgba(31,41,55,.08);
}
.mobile-nav.is-open{

  }


.mobile-nav__inner{
  display:flex;
  flex-direction:column;
  padding:20px 0;
  gap:15px;
}

.mobile-nav__link{
  text-decoration:none;
  color:#1F2937;
  font-weight:600;
  padding:12px 0;
}

/* Hero */
.hero{padding-top:92px;position:relative;overflow:hidden}
.hero__bg{
  position:absolute;inset:-200px -200px auto -200px;
  height:620px;
  background:
    radial-gradient(closest-side, rgba(212,163,115,.24), transparent 70%),
    radial-gradient(closest-side, rgba(139,94,60,.18), transparent 68%);
  pointer-events:none;
}

.hero__grid{display:grid;grid-template-columns: 1.05fr .95fr;gap:34px;align-items:center;padding:40px 0 28px}

.hero__content{padding-right:8px}

.badge{
  display:inline-flex;align-items:center;gap:10px;
  background:rgba(31,41,55,.06);
  border:1px solid rgba(31,41,55,.10);
  padding:10px 14px;
  border-radius:999px;
  color:rgba(31,41,55,.95);
  font-weight:700;
  letter-spacing:.02em;
  margin:0 0 14px;
  font-size:13px;
}

.h1{margin:0;font-size:40px;line-height:1.12;letter-spacing:-.02em}
.lead{margin:14px 0 22px;font-size:16px;line-height:1.7;color:rgba(34,34,34,.86);max-width:52ch}

.hero__actions{display:flex;gap:14px;flex-wrap:wrap;align-items:center}

.hero__trust{display:flex;gap:18px;flex-wrap:wrap;margin-top:24px}
.trust-item{display:flex;gap:12px;align-items:flex-start;min-width:240px;padding:12px 14px;border-radius:16px;background:rgba(255,255,255,.55);border:1px solid rgba(31,41,55,.08);box-shadow: 0 10px 24px rgba(17,24,39,.05)}
.trust-item__icon{width:34px;height:34px;border-radius:14px;background:rgba(212,163,115,.18);border:1px solid rgba(212,163,115,.35);display:flex;align-items:center;justify-content:center;color:var(--wood);font-size:16px}
.trust-item__title{font-weight:900}
.trust-item__sub{font-size:12px;color:rgba(31,41,55,.75);margin-top:2px}

.hero__media{display:flex;justify-content:flex-end}
.hero-card{margin:0;position:relative;border-radius:var(--radius-xl);overflow:hidden;box-shadow: var(--shadow)}
.hero-card__img{width:100%;height:420px;object-fit:cover}
.hero-card__cap{
  position:absolute;left:16px;right:16px;bottom:14px;
  display:flex;gap:10px;align-items:center;
  background:rgba(31,41,55,.78);
  color:#fff;
  padding:10px 12px;border-radius:16px;
  font-weight:600;font-size:13px;
  border:1px solid rgba(212,163,115,.25);
}
.dot{width:10px;height:10px;border-radius:99px;background:var(--gold);box-shadow:0 0 0 6px rgba(212,163,115,.18)}

.hero__scroll{padding:10px 0 40px}
.scroll-hint{display:flex;align-items:center;gap:12px;text-decoration:none;color:rgba(31,41,55,.92)}
.scroll-hint__line{width:52px;height:2px;background:rgba(31,41,55,.25);border-radius:99px;position:relative;overflow:hidden}
.scroll-hint__line::after{content:"";position:absolute;inset:0;transform: translateX(-100%);background:linear-gradient(90deg, transparent, rgba(212,163,115,.9), transparent);animation: sweep 2.2s ease-in-out infinite}
@keyframes sweep{0%,40%{transform:translateX(-100%)}70%,100%{transform:translateX(100%)}}
.scroll-hint__text{font-weight:700}

/* Sections */
.section{padding:84px 0}
.section--alt{background:linear-gradient(180deg, rgba(31,41,55,.03), rgba(31,41,55,0) 60%)}

.section-head{margin-bottom:28px}
.h2{margin:0;font-size:30px;line-height:1.2;letter-spacing:-.02em}
.sub{margin:10px 0 0;color:rgba(34,34,34,.78);line-height:1.7;max-width:72ch}

/* Cards / grids */
.grid-3{display:grid;grid-template-columns: repeat(3, minmax(0, 1fr));gap:18px}
.cards{margin-top:16px}

.card{background:var(--card);border-radius:var(--radius-lg);border:1px solid rgba(31,41,55,.10);box-shadow:0 12px 30px rgba(17,24,39,.05);padding:20px}
.card__icon{width:44px;height:44px;border-radius:18px;background:rgba(212,163,115,.18);border:1px solid rgba(212,163,115,.35);display:flex;align-items:center;justify-content:center;color:var(--wood);font-size:18px;margin-bottom:12px}
.card__title{margin:0 0 8px;font-size:16px}
.card__text{margin:0;color:rgba(34,34,34,.78);line-height:1.7;font-size:14px}

/* Projects */
.projects{display:grid;grid-template-columns: repeat(3, minmax(0, 1fr));gap:18px}
.project{border-radius:var(--radius-xl);overflow:hidden;position:relative;border:1px solid rgba(31,41,55,.10);background:#fff;box-shadow:0 12px 30px rgba(17,24,39,.05)}
.project__link{display:block;text-decoration:none;color:inherit}
.project__img{width:100%;height:auto;object-fit:cover;transform: scale(1.02);transition: transform .5s ease}
.project__overlay{position:absolute;inset:0;background:linear-gradient(180deg, rgba(31,41,55,0) 45%, rgba(31,41,55,.78));display:flex;flex-direction:column;justify-content:flex-end;gap:8px;padding:18px;opacity:0;transition: opacity .25s ease}
.project__cat{font-weight:900;color:#fff}
.project__cta{color:rgba(255,255,255,.92);font-weight:700;font-size:13px}
.project:hover .project__img{transform: scale(1.08)}
.project:hover .project__overlay{opacity:1}

.filters{display:flex;gap:10px;flex-wrap:wrap;margin:12px 0 26px}
.chip{
  border:1px solid rgba(31,41,55,.14);
  background:rgba(255,255,255,.45);
  color:rgba(31,41,55,.92);
  border-radius:999px;
  padding:10px 14px;
  font-weight:800;
  cursor:pointer;
  transition: transform .15s ease, border-color .2s ease, background .2s ease;
}
.chip:hover{transform: translateY(-1px);border-color: rgba(212,163,115,.55)}
.chip--active{background:rgba(212,163,115,.18);border-color: rgba(212,163,115,.55);color:var(--wood)}

/* Timeline */
.timeline{position:relative;display:grid;gap:18px;margin-top:10px;padding-left:6px}
.timeline__line{position:absolute;left:18px;top:0;bottom:0;width:2px;background:linear-gradient(180deg, rgba(212,163,115,.65), rgba(31,41,55,.12));border-radius:99px}
.timeline__step{display:grid;grid-template-columns: 52px 1fr;gap:16px;align-items:flex-start;position:relative}
.timeline__num{width:38px;height:38px;border-radius:16px;background:rgba(212,163,115,.18);border:1px solid rgba(212,163,115,.45);display:flex;align-items:center;justify-content:center;color:var(--wood);font-weight:900;position:relative;z-index:1}
.timeline__title{margin:0;font-size:16px}
.timeline__text{margin:6px 0 0;color:rgba(34,34,34,.78);line-height:1.7;font-size:14px}

/* Compare */
.compare-grid{display:grid;grid-template-columns: 1fr 1fr;gap:18px;align-items:stretch}
.compare{background:var(--card);border:1px solid rgba(31,41,55,.10);border-radius:var(--radius-xl);overflow:hidden;box-shadow:0 12px 30px rgba(17,24,39,.05)}
.compare__title{margin:0;padding:16px 18px;border-bottom:1px solid rgba(31,41,55,.08);font-size:15px;font-weight:900}
.compare__frame{position:relative}
.compare__frame img{width:100%;height:auto;object-fit:cover}
.compare__shade{position:absolute;inset:0;background:linear-gradient(135deg, rgba(31,41,55,.10), rgba(31,41,55,.40));mix-blend-mode:multiply}
.compare--after .compare__accent{ background:#fff;
    padding:20px;
    border-radius:20px;
    display:flex;
    justify-content:center;
    align-items:center;
    box-shadow:0 15px 40px rgba(0,0,0,.08);}
.antes-depois{
  width: 100%;
  height: auto;
  object-fit:contain;
  border-radius:18px;
}

/* Quotes */
.quote{padding:22px}
.stars{color:var(--gold);letter-spacing:2px;font-size:14px;margin-bottom:12px}
.quote__text{margin:0;line-height:1.8;color:rgba(34,34,34,.82)}
.quote__meta{display:flex;flex-direction:column;gap:4px;margin-top:16px}
.quote__name{font-weight:900}
.quote__place{font-size:12.5px;color:rgba(31,41,55,.72);font-weight:600}

/* Differentials */
.diff-grid{display:grid;grid-template-columns: repeat(3, minmax(0,1fr));gap:18px}
.diff{background:var(--card);border:1px solid rgba(31,41,55,.10);border-radius:var(--radius-xl);padding:20px;box-shadow:0 12px 30px rgba(17,24,39,.05)}
.diff__num{font-size:22px;font-weight:1000;color:var(--wood)}
.diff__title{margin-top:6px;font-weight:900}
.diff__text{margin:8px 0 0;color:rgba(34,34,34,.78);line-height:1.7;font-size:14px}
.diff--wide{grid-column: span 3;background:linear-gradient(135deg, rgba(31,41,55,.03), rgba(212,163,115,.10));display:grid;grid-template-columns: 1.1fr .9fr;align-items:center;gap:16px}
.diff--wide .btn{justify-self:flex-start}

/* FAQ */
.faq{display:grid;gap:12px}
.faq__item{background:var(--card);border:1px solid rgba(31,41,55,.10);border-radius:var(--radius-lg);padding:0 14px;overflow:hidden;box-shadow:0 12px 30px rgba(17,24,39,.05)}
.faq__summary{list-style:none;cursor:pointer;padding:16px 8px;font-weight:900;line-height:1.4}
.faq__summary::-webkit-details-marker{display:none}
.faq__content{padding:0 8px 16px;color:rgba(34,34,34,.80);line-height:1.8}
.faq__item[open] .faq__summary{color:var(--wood)}

/* Final */
.final{padding:90px 0;background:linear-gradient(135deg, rgba(31,41,55,.98), rgba(31,41,55,.92));color:#fff}
.final__grid{display:grid;grid-template-columns: 1fr 1.05fr;gap:26px;align-items:start}
.h2--contrast{color:#130c0c}
.final__text{margin:14px 0 18px;line-height:1.75;color:rgba(255,255,255,.86)}


/* =========================
   SEÇÃO FINAL / ORÇAMENTO
========================= */

.final {
    padding: 100px 0;
    background: linear-gradient(180deg, #f8f7f5 0%, #ffffff 100%);
}

.final__content {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 50px;
    align-items: start;
}

.final__title {
    font-size: 3rem;
    color: #1F2937;
    line-height: 1.2;
    margin-bottom: 20px;
}

.final__text {
    color: #555;
    font-size: 1.1rem;
    margin-bottom: 30px;
}

.final__bullets {
    display: flex;
    flex-direction: column;
    gap: 15px;
    margin-bottom: 35px;
}

.bullet {
    display: flex;
    align-items: center;
    gap: 10px;
    font-weight: 500;
    color: #1F2937;
}

.bullet span {
    color: #D4A373;
    font-size: 1.3rem;
}

.final__actions {
    display: flex;
    flex-wrap: wrap;
    gap: 15px;
}

/* =========================
   FORMULÁRIO
========================= */

.final__form {
    background: #fff;
    padding: 35px;
    border-radius: 20px;
    box-shadow: 0 15px 40px rgba(0,0,0,.08);
    border: 1px solid rgba(0,0,0,.05);
}

.form-row {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 15px;
    margin-bottom: 20px;
}

.field {
    display: flex;
    flex-direction: column;
}

.field__label {
    font-size: .95rem;
    margin-bottom: 8px;
    font-weight: 600;
    color: #1F2937;
}

.field__input {
    width: 100%;
    padding: 14px 16px;
    border: 1px solid #ddd;
    border-radius: 12px;
    outline: none;
    transition: .3s;
    font-size: 1rem;
}

.field__input:focus {
    border-color: #D4A373;
    box-shadow: 0 0 0 4px rgba(212,163,115,.15);
}

.field__textarea {
    resize: vertical;
    min-height: 120px;
}

.form-actions {
    margin-top: 25px;
}

.form-hint {
    margin-top: 12px;
    color: #777;
    font-size: .9rem;
}

.form-error {
    margin-top: 15px;
    color: #d62828;
    font-weight: 600;
}

/* =========================
   PREVIEW DA MENSAGEM
========================= */

.message-preview {
    margin-top: 30px;
    background: #f8f7f5;
    border-radius: 16px;
    padding: 20px;
    border: 1px solid #ececec;
}

.message-preview__head {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 15px;
}

.message-preview__title {
    font-weight: 700;
    color: #1F2937;
}

.message-preview__tag {
    background: #D4A373;
    color: white;
    padding: 6px 12px;
    border-radius: 999px;
    font-size: .8rem;
}

.message-preview__body {
    white-space: pre-wrap;
    font-family: inherit;
    color: #444;
    line-height: 1.6;
    margin-bottom: 15px;
}

/* =========================
   BOTÕES
========================= */

.btn--lg {
    padding: 16px 30px;
    font-size: 1rem;
}

.btn--sm {
    padding: 10px 18px;
    font-size: .9rem;
}

.btn--primary {
    background: #8B5E3C;
    color: white;
    border: none;
}

.btn--primary:hover {
    background: #6f4a2d;
    transform: translateY(-2px);
}

.btn--ghost {
    background: transparent;
    border: 2px solid #8B5E3C;
    color: #8B5E3C;
}

.btn--ghost:hover {
    background: #8B5E3C;
    color: white;
}

/* =========================
   FOOTER
========================= */

.footer {
    background: #1F2937;
    color: white;
    padding-top: 70px;
}

.footer__grid {
    display: grid;
    grid-template-columns: 2fr 1fr 1fr 1fr;
    gap: 40px;
}

.footer__title {
    margin-bottom: 20px;
    font-size: 1.1rem;
}

.footer__list {
    list-style: none;
}

.footer__list li {
    margin-bottom: 10px;
}

.footer__link {
    color: #dcdcdc;
    transition: .3s;
}

.footer__link:hover {
    color: #D4A373;
}

.footer__text,
.footer__muted {
    color: #b8b8b8;
}

.footer__bottom {
    margin-top: 50px;
    border-top: 1px solid rgba(255,255,255,.1);
}

.footer__bottom-inner {
    padding: 25px 0;
    display: flex;
    justify-content: space-between;
    flex-wrap: wrap;
    gap: 10px;
}

.brand--footer {
    margin-bottom: 20px;
}

.brand__mark {
    color: #D4A373;
}

/* =========================
   RESPONSIVO
========================= */

/* =========================
   TABLETS
========================= */
.menu-btn{
    display:none !important;
}
@media screen and (max-width: 992px){

  .container{
    padding:0 16px;
  }

  .hero__grid,
  .final__grid,
  .compare-grid,
  .footer__grid,
  .projects,
  .grid-3,
  .diff-grid{
    grid-template-columns:1fr;
  }

  .hero__content{
    padding-right:0;
  }

  .hero__media{
    justify-content:center;
  }

  .hero-card{
    width:100%;
  }

  .hero-card__img{
    height:400px;
  }

  .diff--wide{
    grid-column:auto;
    grid-template-columns:1fr;
  }

  .form-row{
    grid-template-columns:1fr;
  }

  .footer__grid{
    gap:30px;
  }

  .final__content{
    grid-template-columns:1fr;
  }

  .nav{
    display:none;
  }

  /* Botão hamburguer deve aparecer e o menu abrir/fechar via JS */
  .menu-btn{
    display:flex;
  }

  .topbar__cta{
    display:none;
  }

  /* Evita conflitos: no mobile o menu só aparece quando recebe .is-open */
  .mobile-nav{
    display:none;
    position:absolute;
    left:0;
    right:0;
    top:72px;
    z-index:60;
    background:#f8f7f5;
    border-bottom:1px solid rgba(31,41,55,.10);
  }

  /* Garante que o botão só apareça no responsivo */

  .menu-btn{
    display:flex !important;
  }
}



/* =========================
   CELULARES
========================= */

@media screen and (max-width:768px){
.mobile-nav{
  display:none;
}

.mobile-nav.is-open{
  display:block;
}
  .section{
    padding:60px 0;
  }

  .h1{
    font-size:2rem;
    line-height:1.2;
  }

  .h2{
    font-size:1.8rem;
  }

  .lead{
    font-size:15px;
  }

  .hero__actions,
  .final__actions{
    flex-direction:column;
  }

  .hero__actions .btn,
  .final__actions .btn{
    width:100%;
  }

  .trust-item{
    min-width:100%;
  }

  .hero-card__img{
    height:300px;
  }

  .project__img{
    height:220px;
  }

  .compare__frame img{
    height:250px;
  }

  .final__form{
    padding:20px;
  }

  .footer__bottom-inner{
    flex-direction:column;
    text-align:center;
  }

  .message-preview__head{
    flex-direction:column;
    gap:10px;
    align-items:flex-start;
  }

  .topbar__inner{
    height:auto;
    min-height:72px;
    padding:10px 0;
  }

  .brand__name{
    font-size:12px;
  }
}

/* =========================
   CELULARES PEQUENOS
========================= */

@media screen and (max-width:480px){
.mobile-nav{
  display:none;
}

.mobile-nav.is-open{
  display:block;
}
  .container{
    padding:0 14px;
  }

  .hero{
    padding-top:90px;
  }

  .h1{
    font-size:1.7rem;
  }

  .h2{
    font-size:1.4rem;
  }

  .badge{
    font-size:11px;
    text-align:center;
  }

  .hero-card__img{
    height:240px;
  }

  .project__img{
    height:180px;
  }

  .compare__frame img{
    height:180px;
  }

  .card,
  .diff,
  .final__form{
    padding:16px;
  }

  .timeline__step{
    grid-template-columns:40px 1fr;
    gap:10px;
  }

  .timeline__num{
    width:32px;
    height:32px;
    font-size:12px;
  }

  .btn--lg{
    padding:14px;
    font-size:14px;
  }

  .field__input{
    padding:12px;
    font-size:14px;
  }

  .footer{
    text-align:center;
  }
}
