:root{
  --bg:#08143b;
  --text:#e7ecff;
  --muted:#b7c2e6;
  --line:rgba(255,255,255,.10);
  --brand:#ff7f51;
  --brand2:#08143b;
  --radius:16px;
  --max:1150px;
  --pad:clamp(18px,2.2vw,26px);
}
*{ box-sizing:border-box; }
body{
  margin:0;
  font-family: 'Montserrat', system-ui, -apple-system, Segoe UI, Roboto, Arial, sans-serif;
  color:var(--text);
  background: linear-gradient(180deg, var(--bg), #050a1f);
  line-height:1.55;
  overflow-x:hidden;
}

/* Splash Screen */
.splash-screen{
  position:fixed;
  top:0;
  left:0;
  width:100%;
  height:100vh;
  background: #ffffff;
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
  display:flex;
  align-items:center;
  justify-content:center;
  z-index:1000;
  transition:opacity 0.8s ease, visibility 0.8s ease;
  pointer-events:none;
  /* Otimização mobile - usar contain para reduzir processamento */
  will-change: opacity, visibility;
  contain: layout style paint;
}
.splash-screen:not(.hidden) ~ main,
.splash-screen:not(.hidden) ~ * {
  position:relative;
  z-index:1;
}
.splash-screen::before{
  display:none;
}
.splash-screen.hidden{
  opacity:0;
  visibility:hidden;
  pointer-events:none;
}
body.splash-visible main#inicio{
  padding-top:100vh;
}
.splash-content{
  position:relative;
  text-align:center;
  padding:var(--pad);
  width:100%;
  max-width:100%;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  min-height:100vh;
  z-index:3;
  isolation:isolate;
}
.splash-logo{
  max-width:280px;
  width:100%;
  height:auto;
  margin-bottom:32px;
  animation:fadeInUp 1s ease;
  transition:opacity 0.6s ease, transform 0.6s ease;
  position:relative;
  z-index:4;
}
.splash-screen.scrolling .splash-logo{
  opacity:0;
  transform:translateY(-30px) scale(0.9);
}
.splash-tagline{
  font-size:clamp(18px, 2.5vw, 28px);
  font-weight:600;
  color:#08143b;
  letter-spacing:2px;
  margin:0 0 80px;
  padding:0 var(--pad);
  width:100%;
  max-width:100%;
  text-align:center;
  animation:fadeInUp 1s ease 0.3s both;
  position:relative;
  z-index:4;
}
.splash-tagline.typing::after{
  content:'|';
  display:inline-block;
  margin-left:4px;
  animation:blink 1s infinite;
  color:#08143b;
  font-weight:400;
}
@keyframes blink{
  0%, 50%{ opacity:1; }
  51%, 100%{ opacity:0; }
}
.scroll-indicator{
  position:absolute;
  bottom:40px;
  left:50%;
  transform:translateX(-50%);
  animation:fadeInUp 1s ease 0.6s both, bounce 2s ease infinite 1.6s;
  z-index:4;
}
.scroll-arrow{
  display:block;
  width:30px;
  height:30px;
  border-right:2px solid var(--brand);
  border-bottom:2px solid var(--brand);
  transform:rotate(45deg);
}
@keyframes fadeInUp{
  from{
    opacity:0;
    transform:translateY(30px);
  }
  to{
    opacity:1;
    transform:translateY(0);
  }
}
@keyframes bounce{
  0%, 20%, 50%, 80%, 100%{
    transform:translateX(-50%) translateY(0);
  }
  40%{
    transform:translateX(-50%) translateY(-10px);
  }
  60%{
    transform:translateX(-50%) translateY(-5px);
  }
}
a{ color:inherit; text-decoration:none; }
.container{ width:min(var(--max), calc(100% - 2*var(--pad))); margin:0 auto; }

/* Splash Nav - Menu Transparente */
.splash-nav{
  position:fixed;
  top:0;
  left:0;
  width:100%;
  background:transparent;
  z-index:1001;
  transition:opacity 0.5s ease, visibility 0.5s ease;
  padding:20px 0;
  border-bottom:none;
}
/* Nas outras páginas (sem classe home-page), o splash-nav fica escondido */
body:not(.home-page) .splash-nav{
  display:none;
}
/* Na página home, o splash-nav aparece e tem estilo branco */
body.home-page .splash-nav{
  display:block;
}
.splash-nav.hidden{
  opacity:0;
  visibility:hidden;
  pointer-events:none;
}
.splash-nav .brand .logo{
  height:40px;
  filter: none;
}
.splash-nav .nav{
  justify-content:center;
}
.splash-nav .menu{
  display:flex;
  gap:18px;
}
.splash-nav .menu a{
  color:#08143b;
  text-shadow:none;
  font-weight:700;
  font-size:14px;
  padding:10px 10px;
  border-radius:12px;
}
.splash-nav .menu a:hover{
  color:var(--brand);
  background:rgba(8,20,59,.1);
}
.splash-nav .btn-primary{
  background:var(--brand);
  color:#ffffff;
}
.splash-nav .menu-toggle{
  color:#08143b;
  filter:none;
  background:rgba(8,20,59,.1);
  border:1px solid rgba(8,20,59,.2);
}
.splash-nav .mobile-panel{
  background:rgba(255,255,255,.95);
  backdrop-filter:blur(10px);
  border-top:1px solid rgba(0,0,0,.1);
}
.splash-nav .mobile-panel a{
  color:#08143b;
}

/* Main Header */
.site-header.main-header{
  position:sticky; top:0; z-index:50;
  backdrop-filter: blur(10px);
  background: #ffffff;
  border-bottom: 1px solid rgba(0,0,0,.1);
  opacity:0;
  transform:translateY(-20px);
  transition:opacity 0.8s ease, transform 0.8s ease;
  visibility:hidden;
}
.site-header.main-header.visible{
  opacity:1;
  transform:translateY(0);
  visibility:visible;
}
.nav{
  display:flex; align-items:center; justify-content:space-between;
  gap:16px; padding:14px 0;
}
.brand{ display:flex; align-items:center; gap:10px; font-weight:800; color:#08143b; }
.brand .logo{ margin:0; }
.logo{
  height:40px;
  width:auto;
  display:block;
  object-fit:contain;
}
.foot-brand .logo{
  height:48px;
}
.menu{ display:flex; gap:18px; }
.menu a{
  color:#08143b; font-weight:700; font-size:14px;
  padding:10px 10px; border-radius:12px;
}
.menu a:hover{ background:rgba(8,20,59,.1); color:#08143b; }

.nav-actions{ display:flex; gap:10px; align-items:center; }
.btn{
  display:inline-flex; align-items:center; justify-content:center;
  font-weight:800; border-radius:14px;
  padding:12px 14px; font-size:14px;
  border:1px solid transparent;
}
.btn-primary{ background:var(--brand); color:#ffffff; }
.btn-ghost{ background:rgba(8,20,59,.05); border-color:var(--brand); color:var(--brand); }
.btn:hover{ transform: translateY(-1px); }

.menu-toggle{
  display:none;
  width:42px; height:42px;
  border-radius:14px;
  background:rgba(8,20,59,.1);
  border:1px solid rgba(8,20,59,.2);
  color:#08143b;
}

.mobile-panel{ display:none; padding:10px 0 16px; }
.mobile-panel a{
  display:block; margin-top:6px;
  padding:10px 12px; border-radius:12px;
  background:rgba(255,255,255,.03);
  border:1px solid rgba(255,255,255,.08);
  color:var(--muted); font-weight:800; font-size:14px;
}
.mobile-panel.show{ display:block; }

.site-footer{
  border-top:1px solid var(--line);
  background: rgba(8,20,59,.75);
  padding:26px 0;
}
.foot{
  display:grid;
  grid-template-columns: 1.3fr 1fr 1fr 1fr 1fr;
  gap:14px;
}
.foot h5{ margin:0 0 10px; font-size:13px; }
.foot a{ display:block; color:var(--muted); font-weight:700; font-size:13px; padding:6px 0; }
.foot a:hover{ color:var(--text); }
.social-links{
  display:flex;
  gap:16px;
  margin-top:8px;
}
.social-link{
  display:flex;
  align-items:center;
  justify-content:center;
  width:40px;
  height:40px;
  border-radius:50%;
  background:rgba(255,255,255,.1);
  color:var(--muted);
  transition:all .3s ease;
  padding:0;
}
.social-link:hover{
  background:var(--brand);
  color:#ffffff;
  transform:translateY(-2px);
}
.social-link svg{
  width:20px;
  height:20px;
}
.muted{ color:var(--muted); font-weight:600; font-size:13px; margin:0; }
.copyright{
  margin-top:14px;
  color: rgba(183,194,230,.75);
  font-size:12px; font-weight:700;
  border-top:1px solid rgba(255,255,255,.06);
  padding-top:14px;
  text-align:center;
}
.copyright > div{
  margin:4px 0;
}

@media (max-width: 980px){
  .menu{ display:none; }
  .menu-toggle{ display:inline-flex; align-items:center; justify-content:center; }
  .foot{ grid-template-columns: 1fr 1fr 1fr; }
  /* Esconder todo o menu do splash-nav no mobile */
  .splash-nav .menu,
  .splash-nav .nav-actions,
  .splash-nav .menu-toggle{
    display:none !important;
  }
  .splash-nav .nav{
    display:none;
  }
}
@media (max-width: 768px){
  .foot{ grid-template-columns: 1fr 1fr; }
}
@media (max-width: 520px){
  .foot{ grid-template-columns: 1fr; }
}

/* Conteúdo básico */
.page{
  padding:42px 0;
}
.page h1{ margin:0 0 10px; }
.page h2{ margin:32px 0 16px; font-size:28px; }
.page h3{ margin:24px 0 12px; font-size:22px; }
.page p{ margin:0 0 16px; color:var(--muted); font-weight:600; line-height:1.8; }
.page ul{ margin:16px 0; padding-left:24px; }
.page li{ margin:8px 0; color:var(--muted); }

/* Hero Section */
.hero-section{
  padding:120px 0 80px;
  background: rgba(8,20,59,.5);
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
  border-bottom:1px solid var(--line);
  position:relative;
  /* Otimização mobile */
  will-change: auto;
  contain: layout style paint;
}
.hero-section::before{
  content:'';
  position:absolute;
  top:0;
  left:0;
  width:100%;
  height:100%;
  background: rgba(8,20,59,.65);
  z-index:0;
}
.hero-section .container{
  position:relative;
  z-index:1;
}
.hero-grid{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:48px;
  align-items:center;
}
.hero-content{
  text-align:left;
}
.hero-subtitle{
  font-size:16px;
  font-weight:700;
  color:var(--brand);
  margin:0 0 12px;
  text-transform:uppercase;
  letter-spacing:1px;
}
.hero-title{
  font-size:clamp(42px, 6vw, 64px);
  font-weight:800;
  margin:0 0 24px;
  color:var(--text);
}
.hero-text{
  font-size:18px;
  line-height:1.8;
  color:#ffffff;
  margin:0;
}

/* Hero Form */
.hero-form-container{
  background:rgba(8,20,59,.85);
  backdrop-filter:blur(10px);
  border:1px solid var(--line);
  border-radius:var(--radius);
  padding:32px;
}
.hero-form h3{
  margin:0 0 8px;
  font-size:24px;
  font-weight:800;
}
.form-subtitle{
  margin:0 0 24px;
  color:var(--muted);
  font-size:14px;
}
.form-group{
  margin-bottom:20px;
}
.form-group label{
  display:block;
  margin-bottom:8px;
  font-weight:700;
  font-size:14px;
  color:var(--text);
}
.form-group input,
.form-group select,
.form-group textarea{
  width:100%;
  padding:12px 16px;
  background:rgba(255,255,255,.05);
  border:1px solid var(--line);
  border-radius:12px;
  color:var(--text);
  font-family:inherit;
  font-size:14px;
  transition:border-color .2s, background .2s;
}
.form-group input:focus,
.form-group select:focus,
.form-group textarea:focus{
  outline:none;
  border-color:var(--brand);
  background:rgba(255,255,255,.08);
}
.form-group input::placeholder,
.form-group textarea::placeholder{
  color:var(--muted);
  opacity:.6;
}
.form-group select{
  cursor:pointer;
}
.form-group select option{
  background:var(--bg);
  color:var(--text);
}
.form-group textarea{
  resize:vertical;
  min-height:100px;
}
.btn-full{
  width:100%;
  margin-top:8px;
}
.btn-large{
  padding:16px 32px;
  font-size:16px;
}

/* Sections */
.section{
  padding:64px 0;
  width:100%;
}

/* Variações de fundo - Dark e Light */
.section-dark{
  background: linear-gradient(180deg, var(--bg), #050a1f);
  color:var(--text);
}
.section-light{
  background:#ffffff;
  color:#08143b;
  width:100%;
}

/* Ajustes para seções com fundo claro */
.section-light .section-header h2{
  color:#08143b;
}
.section-light .section-header p{
  color:#4a5568;
}
.section-light .feature-card{
  background:rgba(8,20,59,.03);
  border-color:rgba(8,20,59,.1);
}
.section-light .feature-card h3{
  color:var(--brand);
}
.section-light .feature-card p{
  color:#4a5568;
}
.section-light .feature-item h4{
  color:#08143b;
}
.section-light .feature-item p{
  color:#4a5568;
}
.section-light .stat-number{
  color:var(--brand);
}
.section-light .stat-label{
  color:#4a5568;
}
.section-light .cta-section{
  background:rgba(8,20,59,.05);
  border-color:rgba(8,20,59,.15);
}
.section-light .cta-section h2{
  color:#08143b;
}
.section-light .cta-section p{
  color:#4a5568;
}
.section-light .btn-ghost{
  background:rgba(8,20,59,.08);
  border-color:var(--brand);
  color:var(--brand);
}
.section-light .btn-ghost:hover{
  background:var(--brand);
  color:#ffffff;
}
.section-diferenciais{
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
  position:relative;
  margin:0;
  width:100%;
}
.section-diferenciais::before{
  content:'';
  position:absolute;
  top:0;
  left:0;
  width:100%;
  height:100%;
  z-index:0;
}
.section-diferenciais.section-dark::before{
  background: rgba(8,20,59,.5);
}
.section-diferenciais.section-light::before{
  background: rgba(255,255,255,.7);
}
.section-diferenciais .container{
  position:relative;
  z-index:1;
}
.section-header{
  text-align:center;
  max-width:700px;
  margin:0 auto 48px;
}
.section-header h2{
  font-size:clamp(32px, 4vw, 42px);
  margin:0 0 16px;
}
.section-header p{
  font-size:18px;
  color:var(--muted);
}

/* Features Grid */
.features-grid{
  display:grid;
  grid-template-columns:repeat(auto-fit, minmax(280px, 1fr));
  gap:24px;
  margin-top:32px;
}
.feature-card{
  padding:32px;
  background:rgba(255,255,255,.03);
  border:1px solid var(--line);
  border-radius:var(--radius);
  transition:transform .2s, border-color .2s;
}
.feature-card:hover{
  transform:translateY(-4px);
  border-color:var(--brand);
}
.feature-card h3{
  margin:0 0 12px;
  font-size:20px;
  color:var(--brand);
}
.feature-card p{
  margin:0;
  color:var(--muted);
  line-height:1.7;
}
.feature-icon-right .service-icon{
  margin-left:auto;
  margin-right:0;
}

.features-grid-4{
  display:grid;
  grid-template-columns:repeat(auto-fit, minmax(240px, 1fr));
  gap:24px;
}
.feature-item{
  padding:24px;
  text-align:center;
}
.feature-item h4{
  margin:0 0 12px;
  font-size:18px;
  color:var(--text);
}
.feature-item p{
  margin:0;
  color:var(--muted);
  font-size:14px;
  line-height:1.6;
}

/* Section Processo */
.section-processo{
  background-size:cover;
  background-position:center;
  background-repeat:no-repeat;
  position:relative;
  padding:64px 0;
  margin:0;
  width:100%;
  /* Otimização mobile */
  contain: layout style paint;
}
.section-processo::before{
  content:'';
  position:absolute;
  top:0;
  left:0;
  width:100%;
  height:100%;
  z-index:0;
}
.section-processo.section-dark::before{
  background:rgba(8,20,59,.7);
}
.section-processo.section-light::before{
  background:rgba(255,255,255,.85);
}
.section-processo .container{
  position:relative;
  z-index:1;
}

/* Process Grid */
.process-grid{
  display:grid;
  grid-template-columns:repeat(auto-fit, minmax(250px, 1fr));
  gap:32px;
  margin-top:48px;
}
.process-step{
  text-align:center;
  padding:32px 24px;
}
.process-number{
  width:64px;
  height:64px;
  margin:0 auto 24px;
  display:flex;
  align-items:center;
  justify-content:center;
  font-size:32px;
  font-weight:800;
  background:var(--brand2);
  color:#ffffff;
  border-radius:50%;
  border:2px solid var(--brand);
  transition:transform 0.3s ease, box-shadow 0.3s ease;
  cursor:pointer;
  position:relative;
}
.process-number::before,
.process-number::after{
  content:'';
  position:absolute;
  left:50%;
  transform:translateX(-50%);
  width:100px;
  height:4px;
  background:linear-gradient(
    to right,
    transparent 0%,
    var(--brand) 20%,
    var(--brand) 80%,
    transparent 100%
  );
  background-image:repeating-linear-gradient(
    to right,
    transparent 0px,
    transparent 7px,
    var(--brand) 7px,
    var(--brand) 9px,
    transparent 9px,
    transparent 16px
  );
  opacity:0.7;
}
.process-number::before{
  top:-16px;
}
.process-number::after{
  bottom:-16px;
}
.process-step:hover .process-number{
  transform:scale(1.15) translateY(-5px);
  box-shadow:0 8px 20px rgba(255,127,81,.4);
}
.process-step:hover .process-number::before,
.process-step:hover .process-number::after{
  width:120px;
  opacity:1;
  transition:width 0.3s ease, opacity 0.3s ease;
}
.process-step h4{
  margin:0 0 12px;
  font-size:20px;
}
.process-step p{
  margin:0;
  color:var(--muted);
  line-height:1.7;
}
.section-light .process-step h4{
  color:#08143b;
}
.section-light .process-step p{
  color:#4a5568;
}

/* Stats Section */
.stats-section{
  padding:64px 0;
  border-top:1px solid var(--line);
  border-bottom:1px solid rgba(0,0,0,.1);
}
.stats-section.section-dark{
  background:rgba(255,255,255,.02);
}
.stats-section.section-light{
  background:#ffffff;
  border-top-color:rgba(8,20,59,.1);
  border-bottom-color:rgba(8,20,59,.1);
}
.stats-grid{
  display:grid;
  grid-template-columns:repeat(auto-fit, minmax(200px, 1fr));
  gap:48px;
  text-align:center;
}
.stat-number{
  font-size:clamp(48px, 6vw, 64px);
  font-weight:800;
  color:var(--brand);
  margin:0 0 8px;
}
.stat-label{
  font-size:16px;
  color:var(--muted);
  font-weight:700;
}

/* CTA Section */
.cta-section{
  text-align:center;
  padding:64px 32px;
  background:rgba(8,20,59,.3);
  border:1px solid var(--line);
  border-radius:var(--radius);
}
.cta-section h2{
  margin:0 0 16px;
  font-size:clamp(32px, 4vw, 42px);
}
.cta-section p{
  font-size:18px;
  color:var(--muted);
  margin:0 0 32px;
}

.text-center{
  text-align:center;
}

@media (max-width: 980px){
  .hero-grid{
    grid-template-columns:1fr;
    gap:32px;
  }
  .hero-content{
    text-align:center;
  }
  .hero-form-container{
    padding:24px;
  }
  .hero-section{ padding:180px 0 60px; }
  .section{ padding:48px 0; }
  .stats-grid{ gap:32px; }
  .features-grid-4{
    grid-template-columns:repeat(2, 1fr);
  }
}
/* Services Grid */
.services-grid{
  display:grid;
  grid-template-columns:repeat(auto-fit, minmax(300px, 1fr));
  gap:24px;
}
.service-card{
  padding:32px;
  background:rgba(255,255,255,.03);
  border:1px solid var(--line);
  border-radius:var(--radius);
  transition:transform .3s ease, border-color .3s ease, box-shadow .3s ease;
}
.service-card:hover{
  transform:translateY(-4px);
  border-color:var(--brand);
  box-shadow:0 8px 24px rgba(255,127,81,.15);
}
.service-icon{
  width:72px;
  height:72px;
  margin:0 0 24px;
  display:block;
  filter: brightness(0) saturate(100%) invert(67%) sepia(98%) saturate(3127%) hue-rotate(335deg) brightness(101%) contrast(101%);
  opacity:1;
  transition:opacity .3s ease, transform .3s ease;
  object-fit:contain;
}
.service-card .service-icon,
.value-card .service-icon,
.feature-card .service-icon{
  width:72px;
  height:72px;
  margin:0 0 24px;
}
.service-card:hover .service-icon,
.value-card:hover .service-icon,
.feature-card:hover .service-icon{
  opacity:0.9;
  transform:scale(1.08);
}
.service-icon[style*="margin: 0"]{
  margin:0 !important;
}
.service-card h3{
  margin:0 0 12px;
  font-size:20px;
  color:var(--brand);
  font-weight:700;
}
.service-card p{
  margin:0;
  color:var(--muted);
  line-height:1.7;
  font-size:15px;
}

/* Value Cards */
.value-card{
  padding:32px;
  background:rgba(255,255,255,.03);
  border:1px solid var(--line);
  border-radius:var(--radius);
  transition:transform .3s ease, border-color .3s ease;
}
.value-card:hover{
  transform:translateY(-4px);
  border-color:var(--brand);
}
.value-item{
  padding:24px;
  background:rgba(255,255,255,.02);
  border:1px solid var(--line);
  border-radius:var(--radius);
  transition:border-color .3s ease;
}
.value-item:hover{
  border-color:var(--brand);
}

/* Clientes Grid */
.clientes-grid{
  display:grid;
  grid-template-columns:repeat(4, 1fr);
  gap:32px;
  align-items:center;
  justify-items:center;
}
.cliente-logo{
  width:100%;
  max-width:200px;
  height:120px;
  display:flex;
  align-items:center;
  justify-content:center;
  padding:20px;
  background:#ffffff;
  border:1px solid rgba(255,255,255,.2);
  border-radius:var(--radius);
  transition:transform .3s ease, border-color .3s ease, box-shadow .3s ease;
}
.cliente-logo:hover{
  transform:translateY(-4px);
  border-color:var(--brand);
  box-shadow:0 8px 24px rgba(255,127,81,.15);
}
.cliente-logo img{
  max-width:100%;
  max-height:100%;
  width:auto;
  height:auto;
  object-fit:contain;
  filter:brightness(0.9);
  transition:filter .3s ease, transform .3s ease;
}
.cliente-logo:hover img{
  filter:brightness(1.1);
  transform:scale(1.05);
}

@media (max-width: 768px){
  .clientes-grid{
    grid-template-columns:repeat(2, 1fr);
    gap:24px;
  }
  .cliente-logo{
    height:100px;
    padding:16px;
  }
}
@media (max-width: 480px){
  .clientes-grid{
    grid-template-columns:repeat(2, 1fr);
    gap:16px;
  }
}

/* Curriculum Form */
.curriculum-form-container{
  max-width:800px;
  margin:0 auto;
  padding:48px;
  background:rgba(255,255,255,.03);
  border:1px solid var(--line);
  border-radius:var(--radius);
}
.curriculum-form{
  width:100%;
}
.curriculum-form .form-row{
  display:grid;
  grid-template-columns:repeat(auto-fit, minmax(250px, 1fr));
  gap:24px;
  margin-bottom:24px;
}
.curriculum-form .form-group{
  margin-bottom:24px;
}
.curriculum-form label{
  display:block;
  margin-bottom:8px;
  font-weight:600;
  color:var(--text);
  font-size:15px;
}
.curriculum-form input[type="text"],
.curriculum-form input[type="email"],
.curriculum-form input[type="tel"],
.curriculum-form select,
.curriculum-form textarea,
.curriculum-form input[type="file"]{
  width:100%;
  padding:14px 18px;
  background:rgba(255,255,255,.05);
  border:1px solid var(--line);
  border-radius:var(--radius);
  color:var(--text);
  font-size:15px;
  font-family:inherit;
  transition:border-color .3s ease, background .3s ease;
}
.curriculum-form input[type="text"]:focus,
.curriculum-form input[type="email"]:focus,
.curriculum-form input[type="tel"]:focus,
.curriculum-form select:focus,
.curriculum-form textarea:focus,
.curriculum-form input[type="file"]:focus{
  outline:none;
  border-color:var(--brand);
  background:rgba(255,255,255,.08);
}
.curriculum-form input[type="file"]{
  padding:12px;
  cursor:pointer;
}
.curriculum-form input[type="file"]::file-selector-button{
  padding:8px 16px;
  margin-right:12px;
  background:var(--brand);
  color:#ffffff;
  border:none;
  border-radius:8px;
  cursor:pointer;
  font-weight:600;
  font-size:14px;
  transition:background .3s ease;
}
.curriculum-form input[type="file"]::file-selector-button:hover{
  background:#ff6b3d;
}
.curriculum-form textarea{
  resize:vertical;
  min-height:120px;
}
.curriculum-form select{
  cursor:pointer;
  appearance:none;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath fill='%23ff7f51' d='M6 9L1 4h10z'/%3E%3C/svg%3E");
  background-repeat:no-repeat;
  background-position:right 18px center;
  padding-right:40px;
}

@media (max-width: 640px){
  .features-grid,
  .features-grid-4,
  .process-grid,
  .services-grid{
    grid-template-columns:1fr;
  }
  .hero-form-container{
    padding:20px;
  }
  .hero-form h3{
    font-size:20px;
  }
}
@media (max-width: 520px){
  .curriculum-form-container{
    padding:32px 24px;
  }
  .curriculum-form .form-row{
    grid-template-columns:1fr;
  }
}

/* Smooth Scroll */
html{
  scroll-behavior:smooth;
}

/* Scroll Reveal Animations */
.fade-in{
  opacity:0;
  transform:translateY(30px);
  transition:opacity 0.6s ease, transform 0.6s ease;
}
.fade-in.visible{
  opacity:1;
  transform:translateY(0);
}
.fade-in-left{
  opacity:0;
  transform:translateX(-30px);
  transition:opacity 0.6s ease, transform 0.6s ease;
}
.fade-in-left.visible{
  opacity:1;
  transform:translateX(0);
}
.fade-in-right{
  opacity:0;
  transform:translateX(30px);
  transition:opacity 0.6s ease, transform 0.6s ease;
}
.fade-in-right.visible{
  opacity:1;
  transform:translateX(0);
}
.scale-in{
  opacity:0;
  transform:scale(0.9);
  transition:opacity 0.6s ease, transform 0.6s ease;
}
.scale-in.visible{
  opacity:1;
  transform:scale(1);
}

/* Delay classes for staggered animations */
.fade-in.delay-1{ transition-delay:0.1s; }
.fade-in.delay-2{ transition-delay:0.2s; }
.fade-in.delay-3{ transition-delay:0.3s; }
.fade-in.delay-4{ transition-delay:0.4s; }

/* Botão Voltar ao Topo */
.back-to-top{
  position:fixed;
  bottom:32px;
  right:32px;
  width:50px;
  height:50px;
  background:var(--brand);
  color:#ffffff;
  border:none;
  border-radius:50%;
  cursor:pointer;
  display:flex;
  align-items:center;
  justify-content:center;
  font-size:24px;
  box-shadow:0 4px 16px rgba(255,127,81,.3);
  opacity:0;
  visibility:hidden;
  transform:translateY(20px);
  transition:opacity 0.3s ease, visibility 0.3s ease, transform 0.3s ease, background 0.3s ease;
  z-index:100;
}
.back-to-top.visible{
  opacity:1;
  visibility:visible;
  transform:translateY(0);
}
.back-to-top:hover{
  background:#ff6b3d;
  transform:translateY(-4px);
  box-shadow:0 6px 20px rgba(255,127,81,.4);
}
.back-to-top:active{
  transform:translateY(-2px);
}
.back-to-top::before{
  content:'↑';
  font-weight:bold;
}

/* Loading Skeleton */
.skeleton{
  background:linear-gradient(90deg, rgba(255,255,255,.05) 25%, rgba(255,255,255,.1) 50%, rgba(255,255,255,.05) 75%);
  background-size:200% 100%;
  animation:loading 1.5s infinite;
  border-radius:var(--radius);
}
@keyframes loading{
  0%{ background-position:200% 0; }
  100%{ background-position:-200% 0; }
}
.skeleton-img{
  width:100%;
  height:200px;
  background:rgba(255,255,255,.05);
  border-radius:var(--radius);
}

/* Microinterações Melhoradas */
.btn{
  position:relative;
  overflow:hidden;
}
.btn::before{
  content:'';
  position:absolute;
  top:50%;
  left:50%;
  width:0;
  height:0;
  border-radius:50%;
  background:rgba(255,255,255,.2);
  transform:translate(-50%, -50%);
  transition:width 0.6s ease, height 0.6s ease;
}
.btn:hover::before{
  width:300px;
  height:300px;
}
.btn:active{
  transform:translateY(0) scale(0.98);
}

/* Card hover improvements */
.service-card,
.value-card,
.feature-card{
  position:relative;
  overflow:hidden;
}
.service-card::before,
.value-card::before,
.feature-card::before{
  content:'';
  position:absolute;
  top:0;
  left:-100%;
  width:100%;
  height:100%;
  background:linear-gradient(90deg, transparent, rgba(255,127,81,.1), transparent);
  transition:left 0.5s ease;
}
.service-card:hover::before,
.value-card:hover::before,
.feature-card:hover::before{
  left:100%;
}

/* Lazy loading image styles */
img[loading="lazy"]{
  opacity:0;
  transition:opacity 0.3s ease;
}
img[loading="lazy"].loaded{
  opacity:1;
}

@media (max-width: 768px){
  .back-to-top{
    bottom:24px;
    right:24px;
    width:44px;
    height:44px;
    font-size:20px;
  }
}

/* ============================================
   AJUSTES FINOS DE RESPONSIVIDADE
   ============================================ */

/* Mobile Pequeno (320px - 480px) */
@media (max-width: 480px){
  /* Otimizações de performance mobile */
  .splash-screen,
  .hero-section,
  .section-diferenciais,
  .section-processo{
    background-attachment: scroll; /* Remove parallax no mobile para melhor performance */
  }
  
  /* Tipografia */
  .splash-tagline{
    font-size:16px;
    letter-spacing:1px;
    margin:0 0 60px;
  }
  .splash-logo{
    max-width:200px;
    margin-bottom:24px;
  }
  .hero-title{
    font-size:clamp(32px, 8vw, 42px);
  }
  .hero-text{
    font-size:16px;
  }
  .section-header h2{
    font-size:clamp(24px, 6vw, 32px);
  }
  .page h1{
    font-size:clamp(24px, 6vw, 32px);
  }
  .page h2{
    font-size:clamp(20px, 5vw, 26px);
  }
  
  /* Header */
  .logo{
    height:32px;
  }
  .nav{
    padding:12px 0;
  }
  .btn{
    padding:10px 12px;
    font-size:13px;
  }
  .menu-toggle{
    width:38px;
    height:38px;
  }
  
  /* Hero Section */
  .hero-subtitle{
    font-size:14px;
  }
  .hero-form-container{
    padding:20px;
  }
  .form-group{
    margin-bottom:16px;
  }
  
  /* Cards */
  .service-card,
  .value-card,
  .feature-card{
    padding:24px 20px;
  }
  .service-icon{
    width:60px;
    height:60px;
    margin:0 0 20px;
  }
  .service-card h3,
  .feature-card h3{
    font-size:18px;
  }
  .service-card p,
  .feature-card p{
    font-size:14px;
  }
  
  /* Stats */
  .stats-grid{
    gap:24px;
  }
  .stat-number{
    font-size:clamp(36px, 8vw, 48px);
  }
  .stat-label{
    font-size:14px;
  }
  
  /* Processo */
  .process-number{
    width:56px;
    height:56px;
    font-size:28px;
  }
  .process-step{
    padding:24px 16px;
  }
  
  /* CTA */
  .cta-section{
    padding:40px 20px;
  }
  .cta-section h2{
    font-size:clamp(24px, 6vw, 32px);
  }
  .cta-section p{
    font-size:16px;
  }
  
  /* Footer */
  .foot{
    gap:20px;
  }
  .social-link{
    width:36px;
    height:36px;
  }
  .social-link svg{
    width:18px;
    height:18px;
  }
  
  /* Clientes */
  .cliente-logo{
    height:90px;
    padding:12px;
  }
  
  /* Forms */
  .curriculum-form-container{
    padding:24px 20px;
  }
  .curriculum-form input[type="text"],
  .curriculum-form input[type="email"],
  .curriculum-form input[type="tel"],
  .curriculum-form select,
  .curriculum-form textarea{
    padding:12px 14px;
    font-size:14px;
  }
  .hero-form-container{
    padding:20px;
  }
  .form-group input,
  .form-group select,
  .form-group textarea{
    padding:12px 14px;
    font-size:14px;
  }
}

/* Mobile Médio (481px - 768px) */
@media (min-width: 481px) and (max-width: 768px){
  .hero-title{
    font-size:clamp(38px, 7vw, 48px);
  }
  .service-card,
  .value-card,
  .feature-card{
    padding:28px 24px;
  }
  .stats-grid{
    grid-template-columns:repeat(2, 1fr);
  }
  .services-grid{
    grid-template-columns:repeat(2, 1fr);
  }
  .features-grid-4{
    grid-template-columns:repeat(2, 1fr);
  }
}

/* Tablet (769px - 1024px) */
@media (min-width: 769px) and (max-width: 1024px){
  .hero-grid{
    gap:40px;
  }
  .services-grid{
    grid-template-columns:repeat(2, 1fr);
  }
  .features-grid-4{
    grid-template-columns:repeat(2, 1fr);
  }
  .foot{
    grid-template-columns: 1.2fr 1fr 1fr 1fr 1fr;
  }
  .clientes-grid{
    grid-template-columns:repeat(3, 1fr);
  }
  .section{
    padding:56px 0;
  }
}

/* Desktop Pequeno (1025px - 1280px) */
@media (min-width: 1025px) and (max-width: 1280px){
  .container{
    padding:0 24px;
    max-width:var(--max);
  }
  .hero-grid{
    gap:44px;
  }
  .services-grid{
    grid-template-columns:repeat(3, 1fr);
  }
}

/* Desktop Grande (1281px+) */
@media (min-width: 1281px){
  .container{
    max-width:var(--max);
  }
  .hero-section{
    padding:140px 0 100px;
  }
  .section{
    padding:80px 0;
  }
}

/* Landscape Mobile */
@media (max-width: 768px) and (orientation: landscape){
  .splash-screen{
    min-height:100vh;
  }
  .hero-section{
    padding:100px 0 60px;
  }
  .splash-logo{
    max-width:200px;
    margin-bottom:20px;
  }
  .splash-tagline{
    margin:0 0 40px;
  }
}

/* Ajustes para telas muito pequenas */
@media (max-width: 360px){
  :root{
    --pad:16px;
  }
  .container{
    padding:0 16px;
  }
  .service-card,
  .value-card,
  .feature-card{
    padding:20px 16px;
  }
  .btn{
    padding:10px;
    font-size:12px;
  }
  .splash-logo{
    max-width:180px;
  }
  .hero-title{
    font-size:28px;
  }
  .section-header h2{
    font-size:24px;
  }
  .service-icon{
    width:56px;
    height:56px;
    margin:0 0 16px;
  }
  .process-number{
    width:48px;
    height:48px;
    font-size:24px;
  }
  .page{
    padding:32px 0;
  }
  .page h1{
    font-size:clamp(24px, 6vw, 28px);
  }
  .page h2{
    font-size:clamp(20px, 5vw, 24px);
  }
  .page h3{
    font-size:clamp(18px, 4vw, 20px);
  }
}

/* Ajustes para telas muito grandes */
@media (min-width: 1600px){
  .container{
    max-width:1400px;
  }
}
