/* ============================================================
   SANCOIA — folha de estilo compartilhada pelas 3 páginas
   ============================================================ */

:root{
  /* Impede o navegador de "escurecer" a página sozinho.
     Sem isto, o modo escuro do celular inverte os fundos claros
     e o texto navy fica ilegível. */
  color-scheme: only light;

  --cream:#DDD1C1;
  --cream2:#CFC0AD;
  --navy:#071C31;
  --navy2:#0D2A45;
  --navy3:#123A5C;
  --deep:#020B14;
  --gold:#C9983D;
  --gold2:#D9B263;
  --white:#F6F2EC;
  --muted:#AAB5C0;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;font-family:Arial,Helvetica,sans-serif;color:var(--navy);background:var(--cream);overflow-x:hidden}
a{text-decoration:none;color:inherit}
.wrap{width:min(100% - 28px,1140px);margin:auto}
header{position:sticky;top:0;z-index:100;background:rgba(2,11,20,.95);backdrop-filter:blur(12px);border-bottom:1px solid rgba(217,178,99,.28)}
.topbar{height:76px;display:flex;align-items:center;justify-content:space-between;gap:20px}
.logo img{width:190px;max-height:58px;object-fit:contain;display:block}
nav{display:flex;align-items:center;gap:8px}
nav a{color:var(--white);font-size:13px;padding:10px 14px;border-radius:999px;border:1px solid transparent;transition:.2s}
nav a:hover,nav a.active{border-color:rgba(217,178,99,.55);color:var(--gold2)}
.nav-cta{background:linear-gradient(180deg,#D8AD59,#C38B2B)!important;color:var(--navy)!important;font-weight:800}
.hero{position:relative;padding:72px 0 74px;background:
 radial-gradient(circle at 92% 12%,rgba(201,152,61,.12),transparent 28%),
 radial-gradient(circle at 8% 30%,rgba(13,42,69,.08),transparent 26%),
 linear-gradient(180deg,#E2D7C8 0%,#D8CBBB 100%)}
.hero:after{content:"";position:absolute;left:0;right:0;bottom:0;height:1px;background:linear-gradient(90deg,transparent,rgba(201,152,61,.55),transparent)}
.hero-grid{display:grid;grid-template-columns:1.15fr .85fr;gap:50px;align-items:center}
.kicker{font-size:12px;letter-spacing:.22em;text-transform:uppercase;color:#9A6B14;font-weight:800;margin-bottom:16px}
h1{font-size:clamp(38px,5vw,64px);line-height:1.02;letter-spacing:-1.5px;margin:0}
.hero p{font-size:clamp(18px,2vw,22px);line-height:1.55;color:rgba(7,28,49,.76);max-width:720px}
.actions{display:flex;gap:12px;flex-wrap:wrap;margin-top:28px}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:9px;min-height:50px;padding:0 20px;border-radius:14px;font-size:14px;font-weight:800;transition:.2s}
.btn:hover{transform:translateY(-2px)}
.btn-primary{background:linear-gradient(180deg,#D8AD59,#C38B2B);color:var(--navy);box-shadow:0 10px 24px rgba(201,152,61,.16)}
.btn-secondary{border:1px solid rgba(7,28,49,.48);background:rgba(255,255,255,.18)}
.profile{position:relative;border-radius:30px;padding:28px;background:
 radial-gradient(circle at 50% 5%,rgba(18,58,92,.72),transparent 46%),
 linear-gradient(180deg,var(--navy2),var(--deep));
 color:var(--white);border:1px solid rgba(217,178,99,.70);box-shadow:0 24px 54px rgba(3,17,31,.20);text-align:center}
.profile:before{content:"";position:absolute;inset:12px;border:1px solid rgba(217,178,99,.14);border-radius:22px;pointer-events:none}
.photo{width:164px;height:164px;border-radius:50%;overflow:hidden;border:2px solid var(--gold2);margin:0 auto 18px;background:#ddd}
.photo img{width:100%;height:100%;object-fit:cover;object-position:50% 12%;transform:scale(1.56);transform-origin:50% 16%;display:block}
.profile h2{font-size:23px;margin:0}.profile p{font-size:14px;line-height:1.5;color:rgba(246,242,236,.70);margin:8px auto 0;max-width:260px}

.section{padding:68px 0}
.section.dark{background:
 radial-gradient(circle at 50% 0%,rgba(18,58,92,.42),transparent 45%),
 linear-gradient(180deg,#092238 0%,var(--navy2) 55%,var(--navy) 100%);color:var(--white)}
.section-title{text-align:center;max-width:800px;margin:0 auto 38px}
.section-title span{font-size:11px;letter-spacing:.22em;text-transform:uppercase;color:var(--gold2);font-weight:800}
.section-title h2{font-size:clamp(28px,3.3vw,40px);line-height:1.08;margin:11px 0 0}
.section-title p{font-size:16px;line-height:1.55;color:rgba(246,242,236,.70);max-width:680px;margin:12px auto 0}

.product-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px}
.product{
 position:relative;overflow:hidden;border-radius:28px;padding:32px;
 background:linear-gradient(180deg,rgba(13,42,69,.97),rgba(3,17,31,.99));
 border:1px solid rgba(217,178,99,.58);box-shadow:0 18px 42px rgba(0,0,0,.20);min-height:390px;
 display:flex;flex-direction:column
}
.product:after{content:"";position:absolute;right:-80px;top:-80px;width:220px;height:220px;border-radius:50%;background:radial-gradient(circle,rgba(217,178,99,.12),transparent 64%)}
.product .num{width:46px;height:46px;border-radius:50%;border:1px solid rgba(217,178,99,.7);display:grid;place-items:center;color:var(--gold2);font-weight:800;margin-bottom:22px}
.product h3{font-size:26px;line-height:1.15;margin:0;color:var(--white)}
.product .lead{font-size:16px;line-height:1.55;color:rgba(246,242,236,.75);margin:14px 0 18px}
.points{display:grid;gap:9px;margin:0 0 22px;padding:0;list-style:none}
.points li{display:flex;gap:9px;align-items:flex-start;color:rgba(246,242,236,.82);font-size:14px;line-height:1.4}
.points li:before{content:"•";color:var(--gold2);font-size:20px;line-height:.8}
.metric{font-size:14px;color:rgba(246,242,236,.82);margin-top:5px}
.metric b{color:var(--gold2)}
.product .product-btn{margin-top:auto;display:inline-flex;width:max-content;padding:12px 16px;border-radius:12px;background:linear-gradient(180deg,#D8AD59,#C38B2B);color:var(--navy);font-weight:800;font-size:14px}

.info-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}
.info{padding:24px;border-radius:20px;background:rgba(255,255,255,.24);border:1px solid rgba(7,28,49,.13)}
.info .ico{width:38px;height:38px;border-radius:50%;border:1px solid rgba(201,152,61,.7);display:grid;place-items:center;color:#9A6B14;font-weight:800;margin-bottom:14px}
.info h3{font-size:18px;margin:0 0 7px}.info p{font-size:14px;line-height:1.5;color:rgba(7,28,49,.68);margin:0}

.steps{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
.step{padding:24px;border-radius:22px;border:1px solid rgba(217,178,99,.38);background:rgba(2,11,20,.30)}
.step .n{color:var(--gold2);font-weight:800;font-size:12px;letter-spacing:.18em}.step h3{font-size:19px;margin:10px 0 7px}.step p{font-size:14px;line-height:1.5;color:rgba(246,242,236,.70);margin:0}

.cta{padding:62px 0;background:linear-gradient(180deg,#D8CBBB,#CDBDAA)}
.cta-box{position:relative;overflow:hidden;border-radius:28px;padding:40px;text-align:center;background:rgba(246,242,236,.58);border:1px solid rgba(7,28,49,.24);box-shadow:0 18px 44px rgba(3,17,31,.08)}
.cta-box:after{content:"";position:absolute;left:50%;top:-120px;transform:translateX(-50%);width:300px;height:300px;border-radius:50%;background:radial-gradient(circle,rgba(201,152,61,.10),transparent 64%)}
.cta-box h2{position:relative;font-size:clamp(26px,3vw,36px);margin:0}.cta-box p{position:relative;font-size:16px;line-height:1.55;color:rgba(7,28,49,.70);max-width:680px;margin:12px auto 22px}
footer{background:linear-gradient(180deg,var(--navy),var(--deep));color:rgba(246,242,236,.70);padding:28px 0}
.footer{display:flex;flex-direction:column;align-items:center;gap:12px;text-align:center;font-size:12px}
.socials{display:flex;gap:12px}.socials a{width:32px;height:32px;border-radius:50%;border:1px solid rgba(217,178,99,.55);display:grid;place-items:center;color:var(--gold2)}
.socials svg{width:18px;height:18px;fill:currentColor}

@media(max-width:820px){
 .hero-grid,.product-grid,.info-grid,.steps{grid-template-columns:1fr}
 .hero{padding-top:46px}.product{min-height:unset}
}
@media(max-width:560px){
 .logo img{width:170px}.hero{padding:42px 0 48px}.section{padding:52px 0}
 h1{font-size:clamp(33px,9.7vw,46px)}.product h3{font-size:23px}.photo{width:142px;height:142px}
 .cta-box{padding:28px 20px}
}


/* AJUSTE: cards mais enxutos + tipografia maior */
.product-grid{gap:18px}
.product{
  padding:24px 26px;
  border-radius:24px;
  min-height:0;
}
.product .num{
  width:42px;height:42px;
  margin-bottom:17px;
  font-size:15px;
}
.product h3{
  font-size:28px;
  line-height:1.12;
  margin-bottom:10px;
}
.product .lead{
  font-size:18px;
  line-height:1.48;
  margin:8px 0 14px;
}
.points{
  gap:7px;
  margin-bottom:15px;
}
.points li{
  font-size:16px;
  line-height:1.42;
}
.metric{
  font-size:16px;
  line-height:1.42;
  margin-top:2px;
}
.product .product-btn{
  margin-top:14px;
  padding:13px 17px;
  font-size:15px;
}
.info-grid{gap:14px}
.info{
  padding:19px 21px;
  border-radius:18px;
}
.info .ico{
  width:36px;height:36px;
  margin-bottom:10px;
}
.info h3{
  font-size:20px;
  margin-bottom:6px;
}
.info p{
  font-size:16px;
  line-height:1.45;
}
.steps{gap:14px}
.step{
  padding:20px 21px;
  border-radius:19px;
}
.step h3{font-size:20px}
.step p{font-size:16px;line-height:1.45}

@media(max-width:560px){
  .product{padding:21px 20px}
  .product h3{font-size:25px}
  .product .lead{font-size:17px}
  .points li,.metric{font-size:15.5px}
  .info{padding:18px}
  .info h3{font-size:19px}
  .info p{font-size:15.5px}
}


/* Cards das etapas — contraste e legibilidade */
.steps{
  gap:14px;
}
.step{
  background:linear-gradient(180deg,#E8DED1 0%,#DDD1C1 100%);
  border:1px solid rgba(7,28,49,.20);
  box-shadow:0 8px 22px rgba(7,28,49,.06);
  padding:21px 22px;
  border-radius:20px;
}
.step .n{
  color:#A87316;
  font-size:13px;
  font-weight:800;
  letter-spacing:.16em;
}
.step h3{
  color:#071C31;
  font-size:21px;
  line-height:1.2;
  margin:10px 0 8px;
}
.step p{
  color:#35495C;
  font-size:16px;
  line-height:1.5;
  margin:0;
}
@media(max-width:560px){
  .step{
    padding:20px 19px;
  }
  .step h3{
    font-size:20px;
  }
  .step p{
    font-size:16px;
    line-height:1.48;
  }
}


/* CTA WhatsApp animado no bloco "Sua obra precisa de capital para seguir?" */
.whatsapp-animated{
  position:relative;
  overflow:hidden;
  margin-top:16px;
  width:100%;
  min-height:54px;
  padding:0 18px;
  border-radius:14px;
  display:flex;
  align-items:center;
  justify-content:center;
  gap:10px;
  background:linear-gradient(180deg,#D8AD59 0%,#C38B2B 100%);
  color:#071C31 !important;
  font-weight:800;
  font-size:16px;
  border:1px solid rgba(217,178,99,.85);
  box-shadow:0 12px 28px rgba(0,0,0,.22);
  animation:waFloat 2.5s ease-in-out infinite;
  transition:transform .2s ease, box-shadow .2s ease;
}

.whatsapp-animated::after{
  content:"";
  position:absolute;
  top:-50%;
  left:-35%;
  width:24%;
  height:200%;
  transform:rotate(20deg);
  background:linear-gradient(90deg,transparent,rgba(255,255,255,.33),transparent);
  animation:waShine 3.4s ease-in-out infinite;
}

.whatsapp-animated:hover{
  transform:translateY(-3px) scale(1.01);
  box-shadow:0 16px 34px rgba(0,0,0,.28);
}

.whatsapp-animated .wa-icon{
  width:27px;
  height:27px;
  flex:0 0 27px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
}

.whatsapp-animated .wa-icon svg{
  width:100%;
  height:100%;
  fill:#071C31;
}

.whatsapp-animated .wa-arrow{
  font-size:20px;
  line-height:1;
}

@keyframes waFloat{
  0%,100%{transform:translateY(0)}
  50%{transform:translateY(-5px)}
}

@keyframes waShine{
  0%,58%{left:-35%;opacity:0}
  65%{opacity:1}
  88%{left:115%;opacity:0}
  100%{left:115%;opacity:0}
}

@media (prefers-reduced-motion: reduce){
  .whatsapp-animated,
  .whatsapp-animated::after{
    animation:none !important;
  }
}

@media(max-width:560px){
  .whatsapp-animated{
    min-height:52px;
    font-size:15px;
    padding:0 14px;
  }
}


/* Ajuste específico do CTA final */
.cta-box .final-wa{
  width:min(100%, 430px);
  margin:22px auto 0;
}
.cta-box .final-wa span{
  position:relative;
  z-index:1;
}


/* O CTA do bloco azul fica estático; somente o CTA final permanece animado */
.product .product-btn{
  animation:none !important;
  transform:none !important;
}
.product .product-btn::after{animation:none !important;}


.home-choice-btn{
  width:100%;
  justify-content:center;
  text-align:center;
  margin-top:18px !important;
  padding:13px 18px !important;
  border-radius:13px !important;
  font-size:15px !important;
}


/* Refinamento tipográfico: títulos ~10% menores */
h1{font-size:clamp(32px,4.5vw,52px) !important;}
.section-title h2{font-size:clamp(27px,3.25vw,35px) !important;}
.product h3{font-size:25px !important;}
.info h3{font-size:18px !important;}
.step h3{font-size:19px !important;}
.cta-box h2{font-size:clamp(27px,3.25vw,35px) !important;}

@media(max-width:560px){
  h1{font-size:32px !important;}
  .section-title h2{font-size:27px !important;}
  .product h3{font-size:23px !important;}
  .info h3{font-size:17px !important;}
  .step h3{font-size:18px !important;}
  .cta-box h2{font-size:27px !important;}
}

/* ============================================================
   CORREÇÕES — bloco único. Tudo abaixo desta linha é correção
   de falha; o layout acima permanece como estava.
   ============================================================ */

/* --- 1. Ícone do WhatsApp renderizava em 0x0 fora do botão animado --- */
.wa-icon{
  width:26px;
  height:26px;
  flex:0 0 26px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
}
.wa-icon svg{
  width:100%;
  height:100%;
  fill:currentColor;
  display:block;
}
.product-btn{
  display:inline-flex;
  align-items:center;
  gap:9px;
  min-height:46px;
}
.product-btn .wa-arrow{ font-size:18px; line-height:1; }

/* --- 2. Botões dos cards voltam a alinhar no rodapé do card --- */
.home-choice-btn{ margin-top:auto !important; }
.product .points,
.product .metric{ margin-bottom:16px; }

/* --- 3. Contraste: o dourado sumia nas seções claras (1,33:1) --- */
.section:not(.dark) .section-title span{ color:#74500D; }
.kicker{ color:#74500D; }

/* --- 4. Âncoras paravam atrás do header fixo --- */
[id]{ scroll-margin-top:92px; }

/* --- 5. Alvos de toque abaixo de 44px --- */
nav a{ min-height:44px; display:inline-flex; align-items:center; }
.socials a{ width:44px; height:44px; }
.socials svg{ width:19px; height:19px; }
.logo{ display:inline-flex; align-items:center; min-height:44px; }

/* --- 6. Menu do celular (o nav sumia sem substituto abaixo de 820px) --- */
.menu-toggle{
  display:none;
  width:46px;
  height:46px;
  border-radius:12px;
  border:1px solid rgba(217,178,99,.55);
  background:rgba(2,11,20,.5);
  cursor:pointer;
  padding:0;
  align-items:center;
  justify-content:center;
}
.menu-toggle span{
  display:block;
  position:relative;
  width:20px;
  height:2px;
  background:var(--gold2);
  transition:background .2s ease;
}
.menu-toggle span::before,
.menu-toggle span::after{
  content:"";
  position:absolute;
  left:0;
  width:20px;
  height:2px;
  background:var(--gold2);
  transition:transform .22s ease, top .22s ease;
}
.menu-toggle span::before{ top:-6px; }
.menu-toggle span::after{ top:6px; }
.menu-toggle[aria-expanded="true"] span{ background:transparent; }
.menu-toggle[aria-expanded="true"] span::before{ top:0; transform:rotate(45deg); }
.menu-toggle[aria-expanded="true"] span::after{ top:0; transform:rotate(-45deg); }

/* quatro itens no menu: o painel entra a partir de 1100px */
@media(max-width:1100px){
  .topbar{ justify-content:space-between; }
  .menu-toggle{ display:inline-flex; }

  nav{
    position:absolute;
    top:100%;
    left:0;
    right:0;
    display:none;
    flex-direction:column;
    align-items:stretch;
    gap:6px;
    padding:12px 14px calc(14px + env(safe-area-inset-bottom));
    background:#020B14;
    border-bottom:1px solid rgba(217,178,99,.30);
    box-shadow:0 22px 44px rgba(0,0,0,.42);
  }
  nav.is-open{ display:flex; }
  nav a{
    min-height:50px;
    display:flex;
    align-items:center;
    justify-content:center;
    font-size:15px;
    border:1px solid rgba(217,178,99,.30);
    border-radius:12px;
  }
  nav a.active{
    border-color:rgba(217,178,99,.75);
    background:rgba(217,178,99,.08);
  }
}

/* --- 7. Botão flutuante do WhatsApp (o header ficava sem CTA no celular) --- */
.wa-float{
  position:fixed;
  right:max(16px, env(safe-area-inset-right));
  bottom:calc(18px + env(safe-area-inset-bottom));
  z-index:900;
  width:58px;
  height:58px;
  border-radius:50%;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  color:#071C31;
  background:linear-gradient(180deg,#D8AD59,#C38B2B);
  border:1px solid rgba(217,178,99,.85);
  box-shadow:0 14px 32px rgba(3,17,31,.32);
  opacity:0;
  visibility:hidden;
  transform:translateY(14px);
  transition:opacity .25s ease, transform .25s ease, visibility .25s;
}
.wa-float.is-visible{ opacity:1; visibility:visible; transform:translateY(0); }
.wa-float svg{ width:30px; height:30px; fill:#071C31; }
body.cookie-open .wa-float{ bottom:calc(155px + env(safe-area-inset-bottom)); }

/* --- 8. Cookies e Política de Privacidade eram texto morto --- */
.footer-links{
  display:flex;
  justify-content:center;
  align-items:center;
  gap:4px;
  flex-wrap:wrap;
}
.footer-links button{
  min-height:44px;
  padding:0 10px;
  border:0;
  background:none;
  color:rgba(246,242,236,.78);
  cursor:pointer;
  text-decoration:underline;
  text-underline-offset:3px;
  font:inherit;
  font-size:12px;
}

.cookie-banner{
  position:fixed;
  left:50%;
  bottom:max(12px, env(safe-area-inset-bottom));
  transform:translateX(-50%);
  width:min(calc(100% - 22px), 640px);
  z-index:1000;
  padding:18px;
  color:var(--white);
  border:1px solid var(--gold);
  border-radius:18px;
  background:rgba(2,11,20,.98);
  box-shadow:0 20px 60px rgba(0,0,0,.45);
}
.cookie-banner p{
  margin:0 0 14px;
  font-size:14px;
  line-height:1.45;
  color:var(--white);
}
.cookie-actions{
  display:grid;
  grid-template-columns:repeat(auto-fit, minmax(150px,1fr));
  gap:8px;
}
.cookie-actions button,
.modal-actions button{
  min-height:46px;
  padding:8px 12px;
  border-radius:11px;
  border:1px solid var(--gold);
  cursor:pointer;
  font-weight:700;
  font-size:14px;
  line-height:1.2;
}
.accept{ background:var(--gold); color:var(--deep); }
.ghost{ background:transparent; color:var(--white); }

.modal{
  position:fixed;
  inset:0;
  z-index:1100;
  display:grid;
  place-items:center;
  padding:16px;
  background:rgba(0,0,0,.74);
}
.cookie-banner[hidden],
.modal[hidden],
[hidden]{ display:none !important; }

.modal-card{
  width:min(100%,650px);
  max-height:82vh;
  max-height:82dvh;
  overflow:auto;
  padding:24px;
  color:var(--white);
  border-radius:22px;
  border:1px solid var(--gold);
  background:linear-gradient(180deg,var(--navy2),var(--deep));
  -webkit-overflow-scrolling:touch;
}
.modal-card h2{ margin:0 0 14px; font-size:22px; color:var(--white); }
.modal-card p{ font-size:14px; line-height:1.6; color:rgba(246,242,236,.88); }
.consent-row{
  display:flex;
  align-items:center;
  gap:10px;
  margin-top:16px;
  min-height:44px;
  cursor:pointer;
  font-size:15px;
}
.consent-row input{ width:20px; height:20px; accent-color:var(--gold); flex:none; }
.modal-actions{
  margin-top:20px;
  display:flex;
  gap:10px;
  flex-wrap:wrap;
  justify-content:flex-end;
}

/* --- 9. Foco visível para navegação por teclado --- */
a:focus-visible,
button:focus-visible,
input:focus-visible{
  outline:3px solid var(--gold2);
  outline-offset:3px;
  border-radius:8px;
}

/* --- 10. Ajustes gerais --- */
html{ -webkit-text-size-adjust:100%; text-size-adjust:100%; }
body{ overflow-wrap:break-word; }
.photo{ background:var(--navy2); }   /* era #ddd: clarão cinza antes da foto carregar */

@media(max-width:560px){
  .cta-box .final-wa{ width:100%; }
  .modal-card{ padding:20px; }
  .modal-actions button{ flex:1 1 auto; }
}

@media(max-width:520px){
  .cookie-actions{ grid-template-columns:1fr; }
}

@media (prefers-reduced-motion: reduce){
  html{ scroll-behavior:auto; }
  *,*::before,*::after{
    animation-duration:.001ms !important;
    animation-iteration-count:1 !important;
    transition-duration:.001ms !important;
  }
}


/* ============================================================
   BLINDAGEM CONTRA ESCURECIMENTO DO NAVEGADOR
   Navegadores embutidos em apps escurecem o fundo da página.
   Tudo que era translúcido passava a mostrar preto por baixo
   em vez do creme. Cada superfície clara agora tem cor sólida
   própria e não depende mais do fundo do body.
   ============================================================ */

html{ background:var(--cream); }
body{ background-color:var(--cream); }

/* seções claras deixam de ser transparentes */
.section:not(.dark){ background-color:var(--cream); }

/* cards de informação: eram rgba(255,255,255,.24) sobre o body */
.info{ background:#E5DCD0; }

/* botão secundário: era rgba(255,255,255,.18) */
.btn-secondary{ background:#E7DED2; }

/* caixa do CTA final: era rgba(246,242,236,.58) */
.cta-box{ background:#E7DFD4; }

/* faixa do CTA já tinha gradiente próprio — só reforça a base */
.cta{ background-color:#D8CBBB; }


/* --- Logo 20% maior (190 -> 228px no desktop, 170 -> 204px no celular) --- */
.logo img{ width:228px; max-height:56px; }
.topbar{ height:82px; }   /* um pouco mais de respiro para a logo maior */
@media(max-width:560px){
  .logo img{ width:204px; }
}
@media(max-width:360px){
  .logo img{ width:186px; }
}


/* --- Cards de informação mais compactos no celular ---
   O ícone sai de cima e vai para o lado do texto: usa a largura
   que sobra em vez de esticar a altura do card. --- */
@media(max-width:820px){
  .info-grid{ gap:12px; }

  .info{
    display:grid;
    grid-template-columns:auto 1fr;
    column-gap:15px;
    row-gap:2px;
    align-items:center;
    padding:15px 18px;
    border-radius:16px;
  }

  .info .ico{
    grid-column:1;
    grid-row:1 / span 2;
    width:42px;
    height:42px;
    margin-bottom:0;
    align-self:center;
  }

  .info h3{
    grid-column:2;
    grid-row:1;
    margin:0;
    align-self:end;
  }

  .info p{
    grid-column:2;
    grid-row:2;
    margin:0;
    align-self:start;
  }
}


/* --- Ícones dos cards com o mesmo peso visual ---
   "⌂" e "✓" eram caracteres de texto: renderizavam finos e
   pequenos ao lado de "R$" e "240". Viraram ícones desenhados,
   e o círculo ganhou um traço um pouco mais firme. --- */
.info .ico{
  border-width:1.5px;
  border-color:rgba(201,152,61,.85);
  font-size:15px;
  letter-spacing:.02em;
}
.info .ico svg{
  width:21px;
  height:21px;
  fill:currentColor;
  display:block;
}
@media(max-width:820px){
  .info .ico svg{ width:23px; height:23px; }
}


/* --- Casa vazada: contorno com traço na mesma espessura visual
       das letras "R$" e "240" (que são font-weight 800) --- */
.info .ico svg.ico-linha{
  fill:none;
  stroke:currentColor;
  stroke-width:2.1;
  stroke-linecap:round;
  stroke-linejoin:round;
}


/* --- Valores em destaque dentro dos itens da lista ---
   No card 02 da index os valores ficavam dentro de <li>, que não
   tinha a regra dourada do .metric usada no card 01. --- */
.product .points li b{
  color:var(--gold2);
  font-weight:800;
}


/* --- Topo levemente clareado: #061725 (era #020B14) --- */
header{
  background:rgba(6,23,37,.96);
}


/* --- Linha do CNPJ no rodapé --- */
.cnpj{
  display:inline-block;
  margin-top:3px;
  font-size:12px;
  opacity:.82;
}


/* --- Imóveis aceitos como garantia (home equity) --- */
.aceitos{
  max-width:760px;
  margin:26px auto 0;
  padding:24px 26px;
  border:1px solid rgba(7,28,49,.16);
  border-radius:20px;
  background:#E5DCD0;
}
.aceitos h3{
  margin:0 0 14px;
  font-size:19px;
  color:var(--navy);
}
.aceitos-lista{
  margin:0;
  padding:0;
  list-style:none;
  display:grid;
  gap:10px;
}
.aceitos-lista li{
  position:relative;
  padding-left:26px;
  font-size:16px;
  line-height:1.5;
  color:rgba(7,28,49,.82);
}
.aceitos-lista li::before{
  content:"";
  position:absolute;
  left:2px;
  top:.62em;
  width:8px;
  height:8px;
  border-radius:50%;
  background:#74500D;
}
.aceitos-nota{
  margin:16px 0 0;
  font-size:14px;
  line-height:1.5;
  color:rgba(7,28,49,.62);
}
@media(max-width:560px){
  .aceitos{ padding:20px; border-radius:16px; }
  .aceitos h3{ font-size:18px; }
  .aceitos-lista li{ font-size:15px; }
}


/* --- Destaque dentro do bloco de imóveis aceitos --- */
.aceitos-destaque{
  margin:16px 0 0;
  padding-top:15px;
  border-top:1px solid rgba(7,28,49,.14);
  font-size:16px;
  line-height:1.55;
  color:rgba(7,28,49,.86);
}
.aceitos-destaque strong{ color:var(--navy); }
@media(max-width:560px){
  .aceitos-destaque{ font-size:15px; }
}


/* --- Grade dos cards de condições ---
   A página de garantia tem 4 cards e usa .info-grid-4.
   A de construção tem 3 e mantém a grade padrão de 3 colunas. --- */
@media(min-width:821px){
  .info-grid-4{ grid-template-columns:repeat(4, minmax(0,1fr)); }
}
@media(min-width:561px) and (max-width:820px){
  .info-grid,
  .info-grid-4{ grid-template-columns:repeat(2, minmax(0,1fr)) !important; }
}
/* segundo destaque sem a linha divisória dupla */
.aceitos-destaque + .aceitos-destaque{
  margin-top:10px;
  padding-top:0;
  border-top:0;
}

/* OPCAO D */
/* --- Lista de imóveis em duas colunas no computador ---
   Usa colunas de texto em vez de grade: com número ímpar de itens
   a grade igualava a altura das fileiras e abria um vão antes do
   último item. Com colunas, eles fluem sem espaço sobrando. --- */
@media(min-width:700px){
  .aceitos-lista{
    display:block;
    columns:2;
    column-gap:28px;
  }
  .aceitos-lista li{
    break-inside:avoid;
    -webkit-column-break-inside:avoid;
    margin-bottom:10px;
  }
  .aceitos-lista li:last-child{ margin-bottom:0; }
}
.aceitos-mais{ margin:18px 0 0; padding-top:16px; border-top:1px solid rgba(7,28,49,.14);
  font-size:15.5px; line-height:1.6; color:rgba(7,28,49,.78); }
.aceitos-mais strong{ color:var(--navy); }
.mais-tag{ display:inline-block; margin-right:7px; padding:3px 10px; border-radius:999px;
  background:#74500D; color:#F3EDE3; font-size:11px; font-weight:800; letter-spacing:.1em; text-transform:uppercase; vertical-align:2px; }
.livre-banner{ max-width:760px; margin:16px auto 0; padding:18px 22px; border-radius:18px;
  border:1px solid rgba(201,152,61,.60); background:linear-gradient(180deg, rgba(201,152,61,.14), rgba(201,152,61,.07)); }
.livre-tag{ display:block; margin-bottom:6px; font-size:12px; font-weight:800; letter-spacing:.15em; text-transform:uppercase; color:#74500D; }
.livre-banner p{ margin:0; font-size:16px; line-height:1.55; color:rgba(7,28,49,.84); }
@media(max-width:560px){ .livre-banner{ padding:16px 18px; border-radius:16px; } .livre-banner p{ font-size:15px; } }


/* --- CORREÇÃO: botões dos cards eram cortados em telas estreitas ---
   O width:max-content deixava o botão do tamanho do texto, ignorando
   a largura do card. Agora ele se ajusta e quebra linha quando precisa. --- */
.product .product-btn,
.product .home-choice-btn{
  width:auto;
  max-width:100%;
  white-space:normal;
  text-align:center;
  justify-content:center;
  align-items:center;
  line-height:1.25;
}

@media(max-width:560px){
  .product .product-btn,
  .product .home-choice-btn{
    width:100%;
    padding:13px 14px;
  }
}

@media(max-width:360px){
  .product .product-btn,
  .product .home-choice-btn{
    font-size:13.5px;
    padding:13px 10px;
  }
}


/* --- "Aceitamos também" separado em dois itens --- */
.aceitos-mais .mais-tag{ margin:0 0 12px; vertical-align:baseline; }
.mais-lista{ margin:0; padding:0; list-style:none; display:grid; gap:11px; }
.mais-lista li{
  position:relative;
  padding-left:20px;
  font-size:15.5px;
  line-height:1.55;
  color:rgba(7,28,49,.76);
}
.mais-lista li::before{
  content:"";
  position:absolute;
  left:2px;
  top:.66em;
  width:7px;
  height:7px;
  border-radius:50%;
  background:#74500D;
}
.mais-lista strong{ color:var(--navy); }
@media(min-width:700px){ .mais-lista{ grid-template-columns:1fr 1fr; gap:14px 24px; } }
@media(max-width:560px){ .mais-lista li{ font-size:15px; } }


/* --- Comportamento de rolagem padrão ---
   A elasticidade do iPhone/Android fica ativa, como na maioria dos
   sites. O fundo do <html> é navy: ao esticar no topo ou no fim,
   aparece a cor do cabeçalho e do rodapé, não o creme do miolo. --- */
html{ background:#061725; }
body{ background-color:var(--cream); }


/* --- Cabeçalho que some ao descer e volta ao subir ---
   Libera tela no celular durante a leitura e reaparece assim que
   o visitante sobe, deixando o menu sempre a um gesto de distância. --- */
header{
  transition:transform .28s ease;
  will-change:transform;
}
header.escondido{
  transform:translateY(-100%);
}
@media (prefers-reduced-motion: reduce){
  header{ transition:none; }
}


/* --- Lista dentro da faixa dourada (página de construção) --- */
.livre-banner .mais-lista{ margin-top:4px; }
.livre-banner .mais-lista li{
  font-size:15.5px;
  color:rgba(7,28,49,.80);
}
.livre-banner .mais-lista li::before{ background:#74500D; }
.livre-banner .mais-lista strong{ color:var(--navy); }
@media(min-width:700px){ .livre-banner .mais-lista{ grid-template-columns:1fr; gap:11px; } }
@media(max-width:560px){ .livre-banner .mais-lista li{ font-size:15px; } }


/* --- Hero sem o card da foto --- */
.hero-solo{ max-width:760px; }
.hero-solo h1{ margin-bottom:0; }
.hero-solo p:last-child{ margin-bottom:0; }

/* --- Seção "Quem conduz a sua operação" (página inicial) --- */
.quem{ background:var(--deep) !important; color:#fff; }
.quem-grid{
  display:grid;
  grid-template-columns:300px 1fr;
  gap:52px;
  align-items:center;
}
.quem-foto img{
  width:100%;
  height:auto;
  display:block;
  border-radius:18px;
  border:1px solid rgba(217,178,99,.34);
}
.quem-txt .kicker{
  display:block;
  margin-bottom:12px;
  color:var(--gold2);
}
.quem-txt h2{
  margin:0 0 16px;
  color:#fff;
  font-size:31px;
  letter-spacing:-.015em;
}
.quem-txt p{
  margin:0 0 14px;
  color:rgba(255,255,255,.78);
  font-size:17px;
  line-height:1.68;
  max-width:60ch;
}
.quem-txt p:last-child{ margin-bottom:0; }
@media(max-width:820px){
  .quem-grid{ grid-template-columns:1fr; gap:26px; }
  .quem-foto{ max-width:280px; }
  .quem-txt h2{ font-size:27px; }
}
@media(max-width:560px){
  .quem-grid{ gap:22px; }
  .quem-foto{ max-width:none; }
  .quem-txt h2{ font-size:25px; }
  .quem-txt p{ font-size:16px; }
}

.quem .kicker{ color:var(--gold2) !important; }


/* --- Página de cartas contempladas --- */

/* a sequência tem quatro etapas, não três */
@media(min-width:900px){
  .steps-4{ grid-template-columns:repeat(4, minmax(0,1fr)); }
}
@media(min-width:561px) and (max-width:899px){
  .steps-4{ grid-template-columns:repeat(2, minmax(0,1fr)) !important; }
}

/* ressalva legal no fim da página */
/* Linha curta de orientacao logo abaixo do botao final */
.cta-nota{
  position:relative;
  margin:14px auto 0 !important;
  font-size:13.5px !important;
  color:rgba(7,28,49,.52) !important;
}

/* Quadro de aviso — sempre separado da caixa de CTA, nunca dentro dela */
.aviso-box{
  margin:16px auto 0;
  max-width:720px;
  padding:16px 20px;
  border:1px solid rgba(7,28,49,.16);
  border-radius:14px;
  background:rgba(255,255,255,.26);
  text-align:left;
}
.aviso-rot{
  display:block;
  margin-bottom:6px;
  font-size:10.5px;
  font-weight:700;
  letter-spacing:.14em;
  text-transform:uppercase;
  color:rgba(7,28,49,.46);
}
.aviso-box p{
  margin:0;
  font-size:12.5px;
  line-height:1.6;
  color:rgba(7,28,49,.58);
}
@media(max-width:560px){
  .aviso-box{ padding:15px 17px; }
  .aviso-box p{ font-size:12px; }
}


/* --- Três soluções na página inicial --- */
@media(min-width:980px){
  .product-grid{ grid-template-columns:repeat(3, minmax(0,1fr)); }
}
/* entre 821 e 979 ficam dois em cima e o terceiro ocupando a linha inteira */
@media(min-width:821px) and (max-width:979px){
  .product-grid > .product:last-child{ grid-column:1 / -1; }
}



/* ============================================================
   TITULOS 25% MENORES
   Base: os tamanhos que estao no ar hoje.
   Titulos de card caem menos (12%) porque a 25% ficariam do
   mesmo tamanho do texto corrido e deixariam de ser titulo.
   ============================================================ */
h1{ font-size:clamp(24px,3.4vw,39px) !important; line-height:1.08 !important; }
.section-title h2{ font-size:clamp(21px,2.5vw,27px) !important; }
.cta-box h2{ font-size:clamp(21px,2.5vw,27px) !important; }
.quem-txt h2{ font-size:24px !important; }
.product h3{ font-size:21px !important; }
.step h3{ font-size:17px !important; }
.info h3{ font-size:16px !important; }

@media(max-width:560px){
  h1{ font-size:24px !important; }
  .section-title h2{ font-size:21px !important; }
  .cta-box h2{ font-size:21px !important; }
  .quem-txt h2{ font-size:21px !important; }
  .product h3{ font-size:20px !important; }
  .step h3{ font-size:16px !important; }
  .info h3{ font-size:16px !important; }
}


/* ============================================================
   REFINO DA PAGINA INICIAL  —  itens 1 a 10
   ============================================================ */

/* --- 8. Logo maior sem engordar a barra -------------------
   Escalonada por largura: a 320px ela precisa dividir a barra
   com o botao do menu, que tem 44px de area de toque. */
.logo img{ width:268px; max-height:60px; }
.topbar{ height:84px; }
@media(max-width:1100px){ .logo img{ width:244px; } }
@media(max-width:820px){  .logo img{ width:224px; } .topbar{ height:80px; } }
@media(max-width:560px){  .logo img{ width:200px; } .topbar{ height:74px; } }
@media(max-width:374px){  .logo img{ width:172px; } }

/* --- 9. Menu maior e com mais respiro --------------------- */
nav a{ font-size:14.5px; padding:11px 17px; letter-spacing:.005em; }
nav{ gap:4px; }
@media(min-width:1101px){ nav{ gap:8px; } }

/* --- 1. Bloco bege mais baixo ----------------------------- */
.hero.hero-curto{ padding:52px 0 0; }
@media(max-width:820px){ .hero.hero-curto{ padding:40px 0 0; } }
@media(max-width:560px){ .hero.hero-curto{ padding:34px 0 0; } }

/* --- 2. Acoes dentro do bloco bege ------------------------ */
.hero-solo h1{ margin-bottom:14px; }
.hero-acoes{
  display:flex; flex-wrap:wrap; gap:12px; margin-top:26px;
}
.hero-acoes .btn{ min-height:52px; padding:0 24px; font-size:15px; }
.btn-ghost{
  background:transparent;
  color:rgba(7,28,49,.80);
  border:1px solid rgba(7,28,49,.26);
  box-shadow:none;
}
.btn-ghost:hover{ border-color:rgba(7,28,49,.52); background:rgba(255,255,255,.26); }
@media(max-width:480px){
  .hero-acoes{ flex-direction:column; align-items:stretch; }
  .hero-acoes .btn{ width:100%; }
}

/* --- 3. Cards invadem o bloco bege ------------------------
   O titulo da secao passou para dentro do bloco bege (no HTML).
   A grade sobe 46px acima da divisa, entao os cards cruzam a
   linha entre o bege e o azul em vez de comecarem depois dela. */
.hero-curto:after{ display:none; }          /* o filete sairia por cima dos cards */
.hero-curto .section-title{ margin-top:54px; padding-bottom:74px; }
.section-title-claro h2{ color:var(--navy); }
.section-title-claro span{ color:#9A6B14; }
.section-title-claro p{ color:rgba(7,28,49,.70); }

#solucoes{ padding-top:46px; }
#solucoes .product-grid{ margin-top:-92px; position:relative; z-index:2; }

@media(max-width:820px){
  .hero-curto .section-title{ margin-top:44px; padding-bottom:66px; }
  #solucoes{ padding-top:40px; }
  #solucoes .product-grid{ margin-top:-78px; }
}

/* --- 4 e 5. Cards maiores, texto maior, mais entrelinha --- */
.product{ padding:34px 30px; }
.product h3{ font-size:23px !important; line-height:1.2; }
.product .lead{
  font-size:16.5px; line-height:1.62;
  color:rgba(246,242,236,.86);
  margin:10px 0 20px;
}
.product .points li{ font-size:15.5px; line-height:1.55; gap:10px; }
.product .points{ gap:11px; }
@media(max-width:560px){
  .product{ padding:28px 22px; }
  .product .lead{ font-size:16px; }
  .product .points li{ font-size:15px; }
}

/* --- 6. Icone no lugar do 01 / 02 / 03 -------------------- */
.ico-prod{
  width:52px; height:52px; margin-bottom:20px;
  display:grid; place-items:center;
  border:1px solid rgba(201,152,61,.42);
  border-radius:10px;
}
.ico-prod svg{
  width:28px; height:28px;
  fill:none; stroke:var(--gold2); stroke-width:2;
  stroke-linecap:round; stroke-linejoin:round;
}

/* --- 7. Dourado so onde precisa chamar atencao ------------ */
.product .product-btn{
  background:transparent;
  color:var(--gold2);
  border:1px solid rgba(201,152,61,.55);
  padding:13px 18px;
  font-size:14.5px;
  transition:background .18s ease, color .18s ease, border-color .18s ease;
}
.product .product-btn:hover,
.product .product-btn:focus-visible{
  background:var(--gold); border-color:var(--gold); color:var(--navy);
}

/* ============================================================
   CORRECAO — palavra em destaque saltava para o fim da linha

   .points li era um flex container. Num flex container cada
   elemento filho vira um item proprio, entao o <b> deixava de
   fluir dentro do texto e virava uma coluna ao lado dele. Enquanto
   o item cabia numa linha nao dava para perceber; quando quebrava
   em duas, a palavra em destaque ficava pendurada na direita.

   A solucao e tirar o flex: o item volta a ser texto corrido e o
   marcador passa a ser posicionado, mantendo o recuo pendurado.
   ============================================================ */
.points li{
  display:block;
  position:relative;
  padding-left:17px;
  gap:0;
}
.points li:before{
  position:absolute;
  left:0;
  top:0;
  line-height:inherit;
  font-size:inherit;
}
.product .points li{ padding-left:18px; }

/* linha secundaria dentro de um card de informacao:
   complementa sem competir com a frase principal */
.info-extra{
  margin-top:8px !important;
  font-size:13.5px !important;
  line-height:1.5 !important;
  color:rgba(7,28,49,.55) !important;
}
.section.dark .info-extra{ color:rgba(246,242,236,.55) !important; }

/* Ate 820px o card de informacao vira grade de duas colunas com linhas
   fixas: icone na coluna 1, titulo na linha 1 e texto na linha 2. Um
   segundo paragrafo cairia na mesma celula do primeiro e ficaria por
   cima dele — por isso ele ganha a linha 3. */
@media(max-width:820px){
  .info .info-extra{
    grid-column:2;
    grid-row:3;
    margin-top:6px !important;
  }
  .info:has(.info-extra) .ico{ grid-row:1 / span 3; }
}

/* botão que leva ao simulador: mesmo peso do CTA final, mas é
   navegação interna, não WhatsApp — por isso o dourado da marca */
.btn-simular{
  background:var(--gold) !important;
  color:var(--navy) !important;
  text-decoration:none;
}
.btn-simular:hover{ background:#B8882F !important; }
.btn-simular .wa-icon svg{ width:20px; height:20px; fill:none; }


/* --- O circulo dourado do CTA engolia o clique do botao ---
   .cta-box:after e um enfeite: um circulo de 300px no alto do quadro.
   Como e posicionado em absoluto e vem depois do conteudo, era pintado
   POR CIMA do botao e recebia o clique no lugar dele.

   No celular o titulo e o paragrafo quebram em mais linhas, empurram o
   botao para baixo e ele escapava do circulo — por isso a falha so
   aparecia em tela larga, onde o quadro fica baixo.

   Enfeite nao deve receber clique. Vale para o CTA final de TODAS as
   paginas, nao so o botao do simulador. */
.cta-box:after{ pointer-events:none; }
