/*
Theme Name: Real Estate Empire
Theme URI: https://realstateempire.pt/
Author: Real Estate Empire
Author URI: https://realstateempire.pt/
Description: Tema WordPress personalizado "standalone" para a Real Estate Empire — imobiliária de luxo em Portugal. Não depende de builders (Elementor/Gutenberg) para renderizar o layout, evitando conflitos de CSS/JS.
Version: 1.0.0
Requires at least: 5.9
Requires PHP: 7.4
Text Domain: real-estate-empire
*/

/* ============================================
   DESIGN TOKENS
   ============================================ */
:root{
  --azul-marinho:#272B56;
  --azul-profundo:#06142F;
  --dourado:#E4B460;
  --dourado-suave: rgba(228,180,96,.35);
  --branco:#FFFFFF;
  --cinza-claro:#F8F9FB;
  --azul-acinzentado:#8890AE;
  --azul-linha: rgba(255,255,255,.14);

  --font-display:'Poppins', sans-serif;
  --font-body:'Montserrat', sans-serif;

  --container: 1280px;
  --gutter: clamp(20px, 5vw, 80px);
  --radius-s: 4px;
  --radius-m: 10px;
  --radius-l: 18px;

  --ease: cubic-bezier(.16,.84,.44,1);
  --dur: .7s;
  --header-h: 100px;
}

*,*::before,*::after{box-sizing:border-box;}
html{
  scroll-behavior:smooth;
  overflow-x:hidden;
  width:100%;
  max-width:100%;
}
@media (prefers-reduced-motion: reduce){
  html{scroll-behavior:auto;}
  *,*::before,*::after{animation-duration:.001ms !important; animation-iteration-count:1 !important; transition-duration:.001ms !important; scroll-behavior:auto !important;}
}
body{
  margin:0;
  width:100%;
  max-width:100%;
  font-family:var(--font-body);
  color:var(--azul-profundo);
  background:var(--branco);
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
  position:relative;
}
img{max-width:100%; display:block;}
a{color:inherit; text-decoration:none;}
ul{margin:0; padding:0; list-style:none;}
h1,h2,h3,h4{font-family:var(--font-display); margin:0; font-weight:700; letter-spacing:-.01em; color:var(--azul-profundo);}
p{margin:0;}
button{font-family:inherit; cursor:pointer;}
input,textarea,select{font-family:inherit;}

:focus-visible{
  outline:2px solid var(--dourado);
  outline-offset:3px;
}

.container{
  max-width:var(--container);
  margin:0 auto;
  padding:0 var(--gutter);
  width:100%;
}

.eyebrow{
  display:inline-flex;
  align-items:center;
  gap:10px;
  font-family:var(--font-body);
  font-size:.72rem;
  letter-spacing:.22em;
  text-transform:uppercase;
  font-weight:600;
  color:var(--dourado);
}
.eyebrow::before{
  content:'';
  width:26px; height:1px;
  background:var(--dourado);
  display:inline-block;
}

.section-head{
  max-width:640px;
  margin-bottom:56px;
}
.section-head h2{
  font-size:clamp(2rem, 3.4vw, 2.85rem);
  line-height:1.14;
  margin-top:14px;
}
.section-head p{
  margin-top:18px;
  color:var(--azul-acinzentado);
  font-size:1.02rem;
  line-height:1.7;
}
.section-head.center{
  margin-left:auto; margin-right:auto; text-align:center;
}
.section-head.center .eyebrow::before{display:none;}
.section-head.light h2, .section-head.light p{color:var(--branco);}
.section-head.light p{color:rgba(255,255,255,.68);}

.gold-rule{
  width:1px;
  background:linear-gradient(to bottom, transparent, var(--dourado-suave) 20%, var(--dourado-suave) 80%, transparent);
}

/* Buttons */
.btn{
  display:inline-flex;
  align-items:center;
  gap:10px;
  padding:16px 30px;
  font-size:.82rem;
  letter-spacing:.06em;
  text-transform:uppercase;
  font-weight:600;
  border-radius:2px;
  border:1px solid transparent;
  transition:all .45s var(--ease);
  white-space:nowrap;
}
.btn svg{width:15px; height:15px; transition:transform .4s var(--ease); flex-shrink:0;}
.btn:hover svg{transform:translateX(4px);}
.btn-gold{
  background:var(--dourado);
  color:var(--azul-profundo);
}
.btn-gold:hover{background:#efc687; box-shadow:0 14px 30px -10px rgba(228,180,96,.55);}
.btn-outline{
  border-color:rgba(255,255,255,.4);
  color:var(--branco);
  background:transparent;
}
.btn-outline:hover{border-color:var(--branco); background:rgba(255,255,255,.08);}
.btn-outline-dark{
  border-color:rgba(6,20,47,.25);
  color:var(--azul-profundo);
}
.btn-outline-dark:hover{border-color:var(--azul-profundo); background:rgba(6,20,47,.05);}


/* ============================================
   HERO
   ============================================ */
.hero{
  position:relative;
  min-height:100vh;
  display:flex;
  align-items:flex-end;
  overflow:hidden;
  background:var(--azul-profundo);
}
.hero-bg{
  position:absolute; inset:0;
  z-index:0;
}
.hero-bg img{
  width:100%; height:100%; object-fit:cover;
  transform:scale(1.08);
  animation:heroZoom 26s ease-in-out infinite alternate;
}
@keyframes heroZoom{
  from{transform:scale(1.08) translateY(0);}
  to{transform:scale(1.16) translateY(-1.5%);}
}
.hero-bg::after{
  content:'';
  position:absolute; inset:0;
  background:
    linear-gradient(180deg, rgba(6,20,47,.55) 0%, rgba(6,20,47,.35) 32%, rgba(6,20,47,.55) 62%, rgba(6,20,47,.94) 100%),
    linear-gradient(100deg, rgba(6,20,47,.72) 0%, rgba(6,20,47,.28) 55%);
}
.hero-content{
  position:relative;
  z-index:2;
  width:100%;
  padding-top:180px;
  padding-bottom:0;
}
.hero-top{
  display:grid;
  grid-template-columns:1fr auto;
  gap:60px;
  align-items:flex-end;
  padding-bottom:120px;
}
.hero-kicker{
  display:flex;
  align-items:center;
  gap:14px;
  color:var(--dourado);
  font-size:.74rem;
  letter-spacing:.26em;
  text-transform:uppercase;
  font-weight:600;
  margin-bottom:26px;
}
.hero-kicker::before{content:'';width:44px;height:1px;background:var(--dourado); flex-shrink:0;}
.hero h1{
  color:var(--branco);
  font-size:clamp(2.6rem, 6vw, 5.2rem);
  line-height:1.02;
  font-weight:700;
  max-width:none;
}
.hero h1 em{
  font-style:normal;
  color:var(--dourado);
}
.hero-sub{
  color:rgba(255,255,255,.72);
  font-size:1.04rem;
  line-height:1.75;
  max-width:440px;
  margin-top:26px;
  font-weight:300;
}
.hero-cta-row{
  display:flex;
  gap:18px;
  margin-top:44px;
  flex-wrap:wrap;
}

.hero-card{
  width:280px;
  max-width:100%;
  padding:28px 26px;
  border-radius:var(--radius-m);
  background:rgba(255,255,255,.07);
  border:1px solid rgba(255,255,255,.16);
  backdrop-filter:blur(18px) saturate(160%);
  -webkit-backdrop-filter:blur(18px) saturate(160%);
  color:var(--branco);
  transform:translateY(0);
  animation:floatCard 7s ease-in-out infinite;
}
@keyframes floatCard{
  0%,100%{transform:translateY(0);}
  50%{transform:translateY(-12px);}
}
.hero-card .hc-label{
  font-size:.66rem; letter-spacing:.18em; text-transform:uppercase;
  color:var(--dourado); font-weight:600;
}
.hero-card .hc-value{
  font-family:var(--font-display);
  font-size:2.1rem;
  margin-top:8px;
}
.hero-card .hc-desc{
  margin-top:10px;
  font-size:.82rem;
  color:rgba(255,255,255,.6);
  line-height:1.6;
}


.search-field{
  padding:0 28px;
  border-right:1px solid rgba(6,20,47,.1);
}
.search-field:first-child{padding-left:6px;}
.search-field label{
  display:block;
  font-size:.62rem;
  letter-spacing:.16em;
  text-transform:uppercase;
  color:var(--azul-acinzentado);
  font-weight:600;
  margin-bottom:8px;
}
.search-field select,
.search-field input{
  width:100%;
  border:none;
  font-size:.94rem;
  color:var(--azul-profundo);
  background:transparent;
  font-weight:500;
}
.search-field select:focus,
.search-field input:focus{outline:none;}
.search-submit{
  display:flex; align-items:center; justify-content:center;
  gap:10px;
  background:var(--azul-profundo);
  color:var(--branco);
  border:none;
  padding:0 34px;
  font-size:.78rem;
  letter-spacing:.08em;
  text-transform:uppercase;
  font-weight:600;
  border-radius:0 var(--radius-s) var(--radius-s) 0;
  transition:background .4s;
}
.search-submit:hover{background:var(--azul-marinho);}

.scroll-indicator{
  position:absolute;
  right:var(--gutter);
  bottom:120px;
  z-index:2;
  display:flex;
  flex-direction:column;
  align-items:center;
  gap:10px;
  color:rgba(255,255,255,.55);
}
.scroll-indicator span{
  writing-mode:vertical-rl;
  font-size:.66rem;
  letter-spacing:.24em;
  text-transform:uppercase;
}
.scroll-line{
  width:1px; height:52px;
  background:rgba(255,255,255,.28);
  position:relative;
  overflow:hidden;
}
.scroll-line::after{
  content:'';
  position:absolute; top:-100%; left:0; right:0; height:100%;
  background:var(--dourado);
  animation:scrollLine 2.4s ease-in-out infinite;
}
@keyframes scrollLine{
  0%{top:-100%;}
  60%{top:100%;}
  100%{top:100%;}
}

/* ============================================
   REVEAL
   ============================================ */
.reveal{
  opacity:0;
  transform:translateY(34px);
  transition:opacity 1s var(--ease), transform 1s var(--ease);
}
.reveal.in{opacity:1; transform:translateY(0);}
.reveal-delay-1{transition-delay:.12s;}
.reveal-delay-2{transition-delay:.24s;}
.reveal-delay-3{transition-delay:.36s;}
.reveal-delay-4{transition-delay:.48s;}

/* ============================================
   SECTION SPACING
   ============================================ */
section{position:relative; overflow-x:hidden;}
.section-pad{padding:130px 0;}
.section-pad-sm{padding:90px 0;}
.bg-cinza{background:var(--cinza-claro);}
.bg-azul{background:var(--azul-profundo); color:var(--branco);}
.bg-azul-marinho{background:var(--azul-marinho); color:var(--branco);}

/* ============================================
   FEATURED DEVELOPMENTS (Empreendimentos)
   ============================================ */
.feat-head{
  display:flex;
  justify-content:space-between;
  align-items:flex-end;
  gap:40px;
  margin-bottom:70px;
}
.feat-track{
  display:grid;
  grid-template-columns:repeat(3, 1fr);
  gap:32px;
}
.feat-card{
  position:relative;
  border-radius:var(--radius-m);
  overflow:hidden;
  aspect-ratio:3/4;
  isolation:isolate;
}
.feat-card img{
  width:100%; height:100%; object-fit:cover;
  transition:transform 1.1s var(--ease);
}
.feat-card:hover img{transform:scale(1.09);}
.feat-card::before{
  content:'';
  position:absolute; inset:0;
  background:linear-gradient(0deg, rgba(6,20,47,.92) 0%, rgba(6,20,47,.15) 55%, rgba(6,20,47,0) 75%);
  z-index:1;
}
.feat-card-body{
  position:absolute; left:0; right:0; bottom:0;
  z-index:2;
  padding:30px;
  color:var(--branco);
}
.feat-card-tag{
  font-size:.64rem; letter-spacing:.18em; text-transform:uppercase;
  color:var(--dourado); font-weight:600; margin-bottom:10px; display:block;
}
.feat-card-body h3{
  color:var(--branco);
  font-size:1.35rem;
  line-height:1.25;
}
.feat-card-loc{
  margin-top:10px;
  font-size:.82rem;
  color:rgba(255,255,255,.68);
  display:flex; align-items:center; gap:6px;
}
.feat-card-arrow{
  position:absolute; top:24px; right:24px; z-index:2;
  width:42px; height:42px;
  border-radius:50%;
  border:1px solid rgba(255,255,255,.4);
  display:flex; align-items:center; justify-content:center;
  background:rgba(255,255,255,.06);
  backdrop-filter:blur(6px);
  transition:all .4s var(--ease);
}
.feat-card:hover .feat-card-arrow{
  background:var(--dourado);
  border-color:var(--dourado);
  transform:rotate(45deg);
}
.feat-card-arrow svg{width:16px; height:16px; color:var(--branco);}
.feat-card:hover .feat-card-arrow svg{color:var(--azul-profundo);}

/* ============================================
   QUEM SOMOS
   ============================================ */
.about-grid{
  display:grid;
  grid-template-columns:.9fr 1.1fr;
  gap:90px;
  align-items:center;
}
.about-media{
  position:relative;
  padding:26px 0 0 26px;
}
.about-media .img-main{
  border-radius:var(--radius-m);
  overflow:hidden;
  aspect-ratio:4/5;
}
.about-media .img-main img{width:100%; height:100%; object-fit:cover;}
.about-media .img-float{
  position:absolute;
  left:-30px;
  bottom:-40px;
  width:52%;
  border-radius:var(--radius-m);
  overflow:hidden;
  border:8px solid var(--branco);
  box-shadow:0 30px 60px -20px rgba(6,20,47,.35);
  aspect-ratio:4/3;
}
.about-media .img-float img{width:100%; height:100%; object-fit:cover;}
.about-media .badge-float{
  position:absolute;
  top:-24px; right:-16px;
  background:var(--azul-profundo);
  color:var(--branco);
  padding:20px 22px;
  border-radius:var(--radius-m);
  box-shadow:0 24px 50px -18px rgba(6,20,47,.5);
  text-align:center;
  z-index:3;
}
.badge-float .bf-num{
  font-family:var(--font-display);
  font-size:1.9rem;
  color:var(--dourado);
  line-height:1;
}
.badge-float .bf-label{
  font-size:.64rem;
  letter-spacing:.1em;
  text-transform:uppercase;
  margin-top:6px;
  color:rgba(255,255,255,.7);
}
.about-copy p{
  color:var(--azul-acinzentado);
  line-height:1.85;
  font-size:1.02rem;
}
.about-copy p + p{margin-top:20px;}
.about-list{
  margin-top:36px;
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:20px 30px;
}
.about-list li{
  display:flex;
  align-items:flex-start;
  gap:12px;
  font-size:.9rem;
  color:var(--azul-profundo);
  font-weight:500;
}
.about-list svg{width:18px; height:18px; color:var(--dourado); flex-shrink:0; margin-top:2px;}
.about-copy .btn{margin-top:40px;}

/* ============================================
   NÚMEROS (STATS)
   ============================================ */
.stats-bar{
  display:grid;
  grid-template-columns:repeat(4, 1fr);
  border:1px solid rgba(255,255,255,.14);
  border-radius:var(--radius-m);
  overflow:hidden;
}
.stat-card{
  padding:44px 34px;
  border-right:1px solid rgba(255,255,255,.14);
  display:flex;
  flex-direction:column;
  gap:16px;
}
.stat-card:last-child{border-right:none;}
.stat-card svg{width:26px; height:26px; color:var(--dourado);}
.stat-value{
  font-family:var(--font-display);
  font-size:2.6rem;
  color:var(--branco);
  display:flex; align-items:baseline; gap:2px;
}
.stat-label{
  font-size:.78rem;
  color:rgba(255,255,255,.6);
  letter-spacing:.04em;
}

/* ============================================
   SERVIÇOS
   ============================================ */
.services-grid{
  display:grid;
  grid-template-columns:repeat(3, 1fr);
  gap:1px;
  background:rgba(6,20,47,.08);
  border:1px solid rgba(6,20,47,.08);
}
.service-card{
  background:var(--branco);
  padding:48px 40px;
  transition:background .4s var(--ease);
}
.service-card:hover{background:var(--cinza-claro);}
.service-num{
  font-family:var(--font-display);
  font-size:.72rem;
  color:var(--dourado);
  letter-spacing:.12em;
  font-weight:700;
}
.service-icon{
  width:48px; height:48px;
  border-radius:50%;
  border:1px solid rgba(6,20,47,.14);
  display:flex; align-items:center; justify-content:center;
  margin:22px 0 26px;
  transition:all .4s var(--ease);
}
.service-card:hover .service-icon{
  border-color:var(--dourado);
  background:var(--azul-profundo);
}
.service-icon svg{width:20px; height:20px; color:var(--azul-profundo); transition:color .4s;}
.service-card:hover .service-icon svg{color:var(--dourado);}
.service-card h3{font-size:1.14rem; margin-bottom:12px;}
.service-card p{color:var(--azul-acinzentado); font-size:.92rem; line-height:1.7;}

/* ============================================
   DIFERENCIAIS
   ============================================ */
.diff-wrap{
  display:grid;
  grid-template-columns:.85fr 1.15fr;
  gap:80px;
}
.diff-list{
  border-top:1px solid rgba(6,20,47,.1);
}
.diff-item{
  padding:30px 0;
  border-bottom:1px solid rgba(6,20,47,.1);
  display:grid;
  grid-template-columns:60px 1fr;
  gap:26px;
  align-items:flex-start;
}
.diff-item .d-num{
  font-family:var(--font-display);
  font-size:1rem;
  color:var(--dourado);
  font-weight:700;
}
.diff-item h4{font-size:1.08rem; margin-bottom:8px;}
.diff-item p{color:var(--azul-acinzentado); font-size:.9rem; line-height:1.7;}
.diff-media{
  position:relative;
  border-radius:var(--radius-m);
  overflow:hidden;
}
.diff-media img{width:100%; height:100%; object-fit:cover;}

/* ============================================
   PROCESSO
   ============================================ */
.process-row{
  display:grid;
  grid-template-columns:repeat(4, 1fr);
  gap:0;
  position:relative;
}
.process-row::before{
  content:'';
  position:absolute;
  top:27px; left:calc(12.5% + 4px); right:calc(12.5% + 4px);
  height:1px;
  background:linear-gradient(90deg, var(--dourado-suave), rgba(228,180,96,.6), var(--dourado-suave));
}
.process-step{
  text-align:center;
  padding:0 24px;
  position:relative;
}
.process-dot{
  width:56px; height:56px;
  border-radius:50%;
  background:var(--branco);
  border:1px solid var(--dourado);
  color:var(--dourado);
  font-family:var(--font-display);
  font-weight:700;
  display:flex; align-items:center; justify-content:center;
  margin:0 auto 26px;
  position:relative; z-index:1;
}
.process-step h4{font-size:1.02rem; margin-bottom:10px;}
.process-step p{color:var(--azul-acinzentado); font-size:.86rem; line-height:1.7;}

/* ============================================
   IMÓVEIS PREMIUM
   ============================================ */
.prop-grid{
  display:grid;
  grid-template-columns:repeat(3, 1fr);
  gap:34px;
  margin-top:56px;
}
.prop-card{
  background:var(--branco);
  border-radius:var(--radius-m);
  overflow:hidden;
  border:1px solid rgba(6,20,47,.08);
  transition:box-shadow .5s var(--ease), transform .5s var(--ease);
}
.prop-card:hover{
  box-shadow:0 40px 70px -30px rgba(6,20,47,.28);
  transform:translateY(-6px);
}
.prop-media{position:relative; aspect-ratio:4/3; overflow:hidden;}
.prop-media img{width:100%; height:100%; object-fit:cover; transition:transform .9s var(--ease);}
.prop-card:hover .prop-media img{transform:scale(1.08);}
.prop-tag{
  position:absolute; top:18px; left:18px;
  background:rgba(6,20,47,.75);
  backdrop-filter:blur(6px);
  color:var(--branco);
  font-size:.62rem;
  letter-spacing:.1em;
  text-transform:uppercase;
  padding:8px 14px;
  border-radius:2px;
}
.prop-fav{
  position:absolute; top:16px; right:16px;
  width:36px; height:36px;
  border-radius:50%;
  background:rgba(255,255,255,.9);
  display:flex; align-items:center; justify-content:center;
}
.prop-fav svg{width:16px; height:16px; color:var(--azul-profundo);}
.prop-body{padding:26px 26px 28px;}
.prop-loc{
  display:flex; align-items:center; gap:6px;
  font-size:.76rem; color:var(--azul-acinzentado);
  letter-spacing:.04em; text-transform:uppercase;
}
.prop-loc svg{width:13px; height:13px; color:var(--dourado); flex-shrink:0;}
.prop-body h3{font-size:1.18rem; margin-top:12px;}
.prop-price{
  font-family:var(--font-display);
  color:var(--azul-profundo);
  font-size:1.3rem;
  margin-top:14px;
}
.prop-price span{font-size:.7rem; color:var(--azul-acinzentado); font-weight:400; font-family:var(--font-body);}
.prop-meta{
  display:flex;
  gap:18px;
  margin-top:18px;
  padding-top:18px;
  border-top:1px solid rgba(6,20,47,.08);
  flex-wrap:wrap;
}
.prop-meta div{
  display:flex; align-items:center; gap:7px;
  font-size:.8rem; color:var(--azul-marinho);
}
.prop-meta svg{width:16px; height:16px; color:var(--dourado); flex-shrink:0;}


/* ============================================
   PLANOS DE GESTÃO
   ============================================ */
.plans-track{
  display:grid;
  grid-template-columns:repeat(4, 1fr);
  gap:26px;
  align-items:start;
  position:relative;
}
.plans-plus{
  display:none;
}
.plan-card{
  background:var(--branco);
  border-radius:var(--radius-m);
  border:1px solid rgba(6,20,47,.08);
  overflow:hidden;
  display:flex;
  flex-direction:column;
  transition:transform .5s var(--ease), box-shadow .5s var(--ease);
}
.plan-card:hover{
  transform:translateY(-8px);
  box-shadow:0 40px 80px -36px rgba(6,20,47,.3);
}
.plan-card.featured{
  border:1px solid var(--dourado);
}
.plan-head{
  position:relative;
  padding:34px 26px 44px;
  text-align:center;
  background:linear-gradient(135deg, var(--azul-profundo), var(--azul-marinho));
  color:var(--branco);
}
.plan-card.featured .plan-head{
  background:linear-gradient(135deg, #B8863C, var(--dourado));
}
.plan-head h3{
  color:var(--branco);
  font-size:1.14rem;
  line-height:1.3;
  position:relative;
  z-index:1;
}
.plan-badge{
  position:absolute;
  left:50%; bottom:-26px;
  transform:translateX(-50%);
  width:56px; height:56px;
  border-radius:50%;
  background:var(--branco);
  color:var(--azul-profundo);
  display:flex; align-items:center; justify-content:center;
  font-family:var(--font-display);
  font-weight:700;
  font-size:.92rem;
  box-shadow:0 12px 24px -8px rgba(6,20,47,.35);
  z-index:2;
}
.plan-body{
  flex:1;
  padding:44px 28px 30px;
  display:flex;
  flex-direction:column;
}
.plan-list{
  flex:1;
  display:flex;
  flex-direction:column;
}
.plan-list li{
  display:flex;
  align-items:flex-start;
  gap:12px;
  padding:14px 0;
  border-bottom:1px solid rgba(6,20,47,.08);
  font-size:.85rem;
  color:var(--azul-marinho);
  line-height:1.5;
}
.plan-list li:last-child{border-bottom:none;}
.plan-list svg{
  width:18px; height:18px;
  color:var(--dourado);
  flex-shrink:0;
  margin-top:1px;
}
.plan-select{
  margin-top:30px;
  width:100%;
  justify-content:center;
  background:var(--azul-acinzentado);
  color:var(--branco);
  border-radius:24px;
  padding:14px 20px;
}
.plan-select:hover{background:var(--azul-profundo);}
.plan-card.featured .plan-select{background:var(--dourado); color:var(--azul-profundo);}
.plan-card.featured .plan-select:hover{background:#efc687;}
.plans-note{
  text-align:center;
  margin-top:44px;
  font-size:.85rem;
  color:var(--azul-acinzentado);
}

/* ============================================
   DEPOIMENTOS
   ============================================ */
.testi-wrap{position:relative; max-width:820px; margin:0 auto;}
.testi-slide{
  display:none;
  background:var(--branco);
  border-radius:var(--radius-l);
  padding:56px clamp(24px,6vw,72px);
  text-align:center;
  box-shadow:0 40px 90px -40px rgba(6,20,47,.25);
}
.testi-slide.active{display:block; animation:fadeIn .7s var(--ease);}
@keyframes fadeIn{from{opacity:0; transform:translateY(14px);} to{opacity:1; transform:translateY(0);}}
.testi-quote{width:38px; height:38px; color:var(--dourado); margin:0 auto 26px;}
.testi-text{
  font-size:1.22rem;
  line-height:1.7;
  color:var(--azul-marinho);
  font-weight:400;
  font-style:italic;
}
.testi-person{
  display:flex; align-items:center; justify-content:center; gap:14px;
  margin-top:32px;
}
.testi-avatar{
  width:52px; height:52px; border-radius:50%; overflow:hidden;
  border:2px solid var(--dourado);
  flex-shrink:0;
}
.testi-avatar img{width:100%; height:100%; object-fit:cover;}
.testi-person .t-name{font-weight:700; font-size:.92rem;}
.testi-person .t-role{font-size:.76rem; color:var(--azul-acinzentado);}
.testi-stars{display:flex; gap:3px; justify-content:center; margin-top:16px;}
.testi-stars svg{width:14px; height:14px; color:var(--dourado);}
.testi-dots{display:flex; justify-content:center; gap:10px; margin-top:36px;}
.testi-dot{
  width:8px; height:8px; border-radius:50%;
  background:rgba(6,20,47,.18);
  border:none; padding:0;
  transition:all .4s;
}
.testi-dot.active{background:var(--dourado); width:24px; border-radius:5px;}

/* ============================================
   PARCEIROS
   ============================================ */
.partners-row{
  display:flex;
  justify-content:space-between;
  align-items:center;
  flex-wrap:wrap;
  gap:40px;
  padding:50px 0;
  border-top:1px solid rgba(6,20,47,.08);
  border-bottom:1px solid rgba(6,20,47,.08);
}
.partner-name{
  font-family:var(--font-display);
  font-size:1.2rem;
  font-weight:700;
  color:var(--azul-acinzentado);
  letter-spacing:.02em;
  opacity:.6;
  transition:opacity .4s, color .4s;
}
.partner-name:hover{opacity:1; color:var(--azul-profundo);}

/* ============================================
   CTA
   ============================================ */
.cta-section{
  position:relative;
  overflow:hidden;
  text-align:center;
}
.cta-section .cta-bg{position:absolute; inset:0; z-index:0;}
.cta-section .cta-bg img{width:100%; height:100%; object-fit:cover;}
.cta-section .cta-bg::after{
  content:'';
  position:absolute; inset:0;
  background:linear-gradient(180deg, rgba(6,20,47,.88), rgba(39,43,86,.88));
}
.cta-inner{position:relative; z-index:1; max-width:680px; margin:0 auto;}
.cta-inner h2{color:var(--branco); font-size:clamp(1.9rem,3.6vw,3rem); line-height:1.18;}
.cta-inner p{color:rgba(255,255,255,.7); margin-top:20px; font-size:1.02rem; line-height:1.7;}
.cta-btns{display:flex; gap:18px; justify-content:center; margin-top:40px; flex-wrap:wrap;}

/* ============================================
   CONTATO
   ============================================ */
.contact-grid{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:0;
  border-radius:var(--radius-l);
  overflow:hidden;
  box-shadow:0 50px 100px -50px rgba(6,20,47,.45);
}
.contact-form-wrap{
  background:var(--branco);
  padding:64px 56px;
}
.contact-form-wrap h3{font-size:1.6rem; margin-bottom:14px;}
.contact-form-wrap > p{color:var(--azul-acinzentado); margin-bottom:36px; line-height:1.7;}
.form-row{display:grid; grid-template-columns:1fr 1fr; gap:20px;}
.form-group{margin-bottom:22px;}
.form-group label{
  display:block;
  font-size:.68rem;
  letter-spacing:.1em;
  text-transform:uppercase;
  color:var(--azul-acinzentado);
  font-weight:600;
  margin-bottom:9px;
}
.form-group input, .form-group select, .form-group textarea{
  width:100%;
  border:none;
  border-bottom:1px solid rgba(6,20,47,.16);
  padding:10px 2px;
  font-size:.95rem;
  color:var(--azul-profundo);
  background:transparent;
  transition:border-color .35s;
}
.form-group input:focus, .form-group select:focus, .form-group textarea:focus{
  outline:none;
  border-color:var(--dourado);
}
.form-group textarea{resize:vertical; min-height:90px;}
.contact-form-wrap .btn{margin-top:10px; width:100%; justify-content:center;}

.contact-map-wrap{
  position:relative;
  background:var(--azul-profundo);
  padding:64px 56px;
  color:var(--branco);
  display:flex;
  flex-direction:column;
  justify-content:space-between;
}
.contact-info-list{display:flex; flex-direction:column; gap:26px; margin-top:30px;}
.contact-info-item{display:flex; gap:18px; align-items:flex-start;}
.contact-info-item .ci-icon{
  width:44px; height:44px; border-radius:50%;
  border:1px solid var(--dourado-suave);
  display:flex; align-items:center; justify-content:center;
  flex-shrink:0;
}
.contact-info-item .ci-icon svg{width:18px; height:18px; color:var(--dourado);}
.contact-info-item .ci-label{font-size:.68rem; letter-spacing:.1em; text-transform:uppercase; color:rgba(255,255,255,.5);}
.contact-info-item .ci-value{font-size:.98rem; margin-top:5px; font-weight:500; word-break:break-word;}
.map-static{
  margin-top:40px;
  border-radius:var(--radius-m);
  overflow:hidden;
  border:1px solid rgba(255,255,255,.14);
  aspect-ratio:16/9;
}
.map-static iframe{width:100%; height:100%; border:0; filter:grayscale(.3) contrast(1.05);}


/* ============================================
   BACK TO TOP
   ============================================ */
.to-top{
  position:fixed;
  right:28px; bottom:28px;
  width:50px; height:50px;
  border-radius:50%;
  background:var(--azul-profundo);
  border:1px solid var(--dourado-suave);
  display:flex; align-items:center; justify-content:center;
  z-index:150;
  opacity:0; visibility:hidden;
  transform:translateY(12px);
  transition:all .4s var(--ease);
}
.to-top.show{opacity:1; visibility:visible; transform:translateY(0);}
.to-top svg{width:18px; height:18px; color:var(--dourado);}
.to-top:hover{background:var(--azul-marinho);}

/* ============================================
   MOBILE NAV OVERLAY
   ============================================ */
.mobile-nav{
  position:fixed; inset:0;
  background:var(--azul-profundo);
  z-index:190;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:30px;
  transform:translateY(-100%);
  transition:transform .55s var(--ease);
  overflow-y:auto;
  padding:100px 24px 60px;
}
.mobile-nav.open{transform:translateY(0);}
.mobile-nav a{
  font-family:var(--font-display);
  color:var(--branco);
  font-size:1.5rem;
  font-weight:600;
  text-align:center;
}
.mobile-nav a:hover{color:var(--dourado);}
.mobile-nav-cta{
  margin-top:10px;
}

/* ============================================
   RESPONSIVE
   ============================================ */
@media (max-width:1080px){
  .about-grid, .diff-wrap, .map-wrap{grid-template-columns:1fr;}
  .about-media{margin-bottom:80px;}
  .feat-track{grid-template-columns:1fr 1fr;}
  .prop-grid{grid-template-columns:1fr 1fr;}
  .services-grid{grid-template-columns:1fr 1fr;}
  .stats-bar{grid-template-columns:1fr 1fr;}
  .stat-card{border-bottom:1px solid rgba(255,255,255,.14);}
  .footer-top{grid-template-columns:1fr 1fr;}
  .process-row{grid-template-columns:1fr 1fr; row-gap:50px;}
  .process-row::before{display:none;}
  .plans-track{grid-template-columns:1fr 1fr;}
  .main-nav ul{gap:22px;}
}

@media (max-width:860px){
  .main-nav, .header-actions .lang-toggle{display:none;}
  .burger{display:block;}
  .brand img{height:38px;}
  .hero-content{padding-top:130px;}
  .hero-top{grid-template-columns:1fr; gap:36px;}
  .hero-card{width:100%;}
  .scroll-indicator{display:none;}
  .search-field{border-right:none; padding:0 6px;}
  .search-submit{grid-column:1/-1; border-radius:var(--radius-s); padding:16px;}
  .contact-grid, .feat-track, .prop-grid, .services-grid, .footer-top{grid-template-columns:1fr;}
  .diff-item{grid-template-columns:1fr; gap:10px;}
  .contact-form-wrap, .contact-map-wrap{padding:44px 30px;}
  .form-row{grid-template-columns:1fr;}
  .partners-row{justify-content:center; text-align:center; gap:28px;}
  .about-list{grid-template-columns:1fr;}
  .about-media{padding:0; margin-bottom:70px;}
  .about-media .img-float{left:16px; bottom:-36px; width:56%;}
  .about-media .badge-float{top:-20px; right:16px; padding:16px 18px;}
  .badge-float .bf-num{font-size:1.5rem;}
  .plans-track{grid-template-columns:1fr;}
  .plans-track .plan-card{max-width:420px; margin:0 auto; width:100%;}
  .feat-head{flex-direction:column; align-items:flex-start; gap:22px;}
  .section-pad{padding:80px 0;}
  .section-pad-sm{padding:60px 0;}
}

@media (max-width:600px){
  .feat-track{grid-template-columns:1fr;}
  .prop-grid{grid-template-columns:1fr;}
}

@media (max-width:520px){
  .hero-content{padding-top:112px;}
  .hero h1{font-size:2.15rem;}
  .hero-sub{font-size:.96rem;}
  .section-pad{padding:64px 0;}
  .section-pad-sm{padding:48px 0;}
  .stats-bar{grid-template-columns:1fr;}
  .stat-card{padding:30px 26px;}
  .stat-value{font-size:2.15rem;}
  .process-row{grid-template-columns:1fr;}
  .to-top{right:16px; bottom:16px; width:44px; height:44px;}
  .testi-text{font-size:1.05rem;}
  .btn{padding:14px 24px; font-size:.78rem;}
  .contact-form-wrap, .contact-map-wrap{padding:36px 22px;}
}

@media (max-width:520px){
  .plan-head{padding:24px 20px 34px;}
  .plan-head h3{font-size:.95rem;}
  .plan-badge{width:46px; height:46px; font-size:.78rem; bottom:-20px;}
  .plan-body{padding:34px 20px 24px;}
  .plan-list li{padding:11px 0; font-size:.78rem; gap:9px;}
  .plan-list svg{width:15px; height:15px;}
  .plan-select{padding:12px 16px; font-size:.72rem; margin-top:22px;}
  .plans-note{font-size:.78rem;}
}

@media (max-width:400px){
  .brand-name span{display:none;}
  .hero h1{font-size:1.85rem;}
  .btn{padding:13px 20px;}
}
