* { margin:0; padding:0; box-sizing:border-box; }

:root{
  --primary:#0d3b66;
  --primary-dark:#092845;
  --secondary:#e63946;
  --secondary-dark:#c62834;
  --accent:#f4a261;
  --dark:#1d2733;
  --light:#f7f9fb;
  --gray:#6c7a89;
  --whatsapp:#25d366;
}

html{ scroll-behavior:smooth; }

body{
  font-family:'Segoe UI', system-ui, sans-serif;
  color:var(--dark);
  line-height:1.7;
  background:var(--light);
  overflow-x:hidden;
}

a{ color:inherit; }

/* ================= HEADER / NAV ================= */
header{
  position:fixed;
  top:0; width:100%;
  background:rgba(255,255,255,.97);
  backdrop-filter:blur(12px);
  z-index:1000;
  box-shadow:0 4px 25px rgba(13,59,102,.08);
  transition:box-shadow .4s;
}

nav{
  max-width:1400px;
  margin:0 auto;
  display:flex;
  justify-content:space-between;
  align-items:center;
  padding:1.2rem 3rem;
}

.logo-main{
  font-size:1.9rem;
  font-weight:800;
  color:var(--primary);
  letter-spacing:-1px;
}
.logo-main span{ color:var(--secondary); }
.logo-sub{
  font-size:.7rem;
  color:var(--gray);
  letter-spacing:1.5px;
  text-transform:uppercase;
}

.nav-links{ list-style:none; display:flex; align-items:center; gap:2.2rem; }
nav a{
  color:var(--dark);
  text-decoration:none;
  font-weight:600;
  font-size:.95rem;
  position:relative;
  transition:color .3s;
}
.nav-links > li > a::after{
  content:'';
  position:absolute;
  bottom:-6px; left:0;
  width:0; height:2px;
  background:var(--secondary);
  transition:width .35s ease;
}
.nav-links > li > a:hover::after{ width:100%; }
.nav-links > li > a:hover{ color:var(--secondary); }

.nav-cta{
  background:var(--secondary) !important;
  color:#fff !important;
  padding:.7rem 1.5rem;
  border-radius:8px;
  font-weight:700 !important;
  box-shadow:0 8px 20px rgba(230,57,70,.3);
  transition:transform .3s, box-shadow .3s;
}
.nav-cta:hover{ transform:translateY(-3px); box-shadow:0 12px 28px rgba(230,57,70,.4); color:#fff !important; }
.nav-cta::after{ display:none !important; }

.nav-toggle{ display:none; background:none; border:none; font-size:1.6rem; color:var(--primary); cursor:pointer; }

/* ================= HERO ================= */
.hero{
  min-height:95vh;
  margin-top:88px;
  display:flex;
  align-items:center;
  justify-content:center;
  text-align:center;
  color:#fff;
  padding:2rem;
  position:relative;
  overflow:hidden;
  background-color:var(--primary-dark);
}
.hero-carousel{
  position:absolute;
  top:0; left:0;
  width:100%; height:100%;
  z-index:0;
}
.hero-bg-img{
  position:absolute;
  top:0; left:0;
  width:100%; height:100%;
  object-fit:cover;
  opacity:0;
  transition:opacity 1.4s ease;
}
.hero-bg-img.active{ opacity:1; }
.hero-dots{
  position:absolute;
  bottom:1.6rem; left:50%; transform:translateX(-50%);
  z-index:2; display:flex; gap:.6rem;
}
.hero-dots button{
  width:10px; height:10px; border-radius:50%;
  border:2px solid rgba(255,255,255,.7);
  background:transparent; cursor:pointer; padding:0;
  transition:background .3s;
}
.hero-dots button.active{ background:#fff; }
.hero-overlay{
  position:absolute;
  top:0; left:0;
  width:100%; height:100%;
  background:linear-gradient(135deg, rgba(13,59,102,.62), rgba(29,39,51,.55));
  z-index:1;
}
.hero-content{ position:relative; z-index:2; max-width:850px; animation:fadeUp 1s ease; }
.hero-eyebrow{
  display:inline-flex; align-items:center; gap:.5rem;
  background:rgba(255,255,255,.12);
  border:1px solid rgba(255,255,255,.3);
  padding:.5rem 1.1rem; border-radius:30px;
  font-size:.82rem; font-weight:700; letter-spacing:.5px;
  margin-bottom:1.4rem;
}
.hero h1{ font-size:3.6rem; font-weight:800; margin-bottom:1.2rem; letter-spacing:-1px; }
.hero p{ font-size:1.25rem; opacity:.92; margin-bottom:2.2rem; font-weight:300; }
.hero-actions{ display:flex; gap:0; justify-content:center; flex-wrap:wrap; }

.btn{
  display:inline-flex; align-items:center; gap:.5rem;
  background:var(--secondary);
  color:#fff;
  padding:1rem 2.6rem;
  border-radius:8px;
  font-weight:700;
  text-decoration:none;
  border:none;
  cursor:pointer;
  font-size:1rem;
  box-shadow:0 10px 30px rgba(230,57,70,.35);
  transition:all .35s cubic-bezier(.4,0,.2,1);
}
.btn:hover{ transform:translateY(-4px); box-shadow:0 16px 40px rgba(230,57,70,.45); }
.btn.outline{
  background:transparent;
  border:2px solid #fff;
  margin-left:1rem;
}
.btn.outline:hover{ background:#fff; color:var(--primary); }
.btn.whatsapp{ background:var(--whatsapp); box-shadow:0 10px 30px rgba(37,211,102,.35); }
.btn.whatsapp:hover{ box-shadow:0 16px 40px rgba(37,211,102,.45); }
.btn.small{ padding:.75rem 1.6rem; font-size:.9rem; }

/* ================= TRUST BAR ================= */
.trust-bar{ background:#fff; border-bottom:1px solid #eef1f4; padding:1.6rem 2rem; }
.trust-bar .container{ max-width:1400px; margin:0 auto; display:grid; grid-template-columns:repeat(4,1fr); gap:1.5rem; }
.trust-item{ display:flex; align-items:center; gap:.9rem; justify-content:center; }
.trust-icon{ width:44px; height:44px; min-width:44px; border-radius:12px; background:var(--light); display:flex; align-items:center; justify-content:center; font-size:1.3rem; }
.trust-item b{ display:block; font-size:.92rem; color:var(--primary); }
.trust-item span{ font-size:.8rem; color:var(--gray); }

/* ================= SECTIONS GENERAL ================= */
section:not(.hero){ padding:6.5rem 2rem; opacity:0; transform:translateY(40px); transition:opacity .8s ease, transform .8s ease; }
section.visible{ opacity:1; transform:translateY(0); }
.container{ max-width:1400px; margin:0 auto; }

.section-title{ text-align:center; margin-bottom:3.5rem; }
.section-title span.tag{
  display:inline-block;
  color:var(--secondary);
  font-weight:700;
  letter-spacing:2px;
  font-size:.85rem;
  text-transform:uppercase;
  margin-bottom:.8rem;
}
.section-title h2{ font-size:2.7rem; color:var(--primary); font-weight:800; margin-bottom:.8rem; }
.section-title p{ color:var(--gray); font-size:1.1rem; max-width:650px; margin:0 auto; }

/* ================= ABOUT / HISTORY ================= */
.about{ background:#fff; }
.about-grid{ display:grid; grid-template-columns:1fr 1fr; gap:4.5rem; align-items:center; }
.about-img{ border-radius:18px; overflow:hidden; height:460px; box-shadow:0 25px 60px rgba(13,59,102,.2); }
.about-img img{ width:100%; height:100%; object-fit:cover; transition:transform .6s; opacity:0; }
.about-img img.loaded{ opacity:1; animation:fadeIn .8s ease; }
.about-img:hover img{ transform:scale(1.08); }

.about-text h3{ color:var(--primary); font-size:1.7rem; margin-bottom:1rem; font-weight:700; }
.about-text p{ color:var(--gray); margin-bottom:1.4rem; font-size:1.05rem; }

.stats{ display:grid; grid-template-columns:repeat(3,1fr); gap:1.5rem; margin-top:2rem; }
.stat{ text-align:center; background:var(--light); border-radius:14px; padding:1.5rem 1rem; transition:transform .35s; }
.stat:hover{ transform:translateY(-6px); }
.stat b{ display:block; font-size:2rem; color:var(--secondary); font-weight:800; }
.stat span{ font-size:.85rem; color:var(--gray); }

/* ================= SEGMENTS ================= */
.segments{ background:linear-gradient(180deg,#fff, var(--light)); }
.segments-grid{ display:grid; grid-template-columns:repeat(auto-fit,minmax(340px,1fr)); gap:2.5rem; }
.segment-card{ background:#fff; border-radius:20px; overflow:hidden; box-shadow:0 12px 40px rgba(13,59,102,.1); transition:all .45s cubic-bezier(.4,0,.2,1); }
.segment-card:hover{ transform:translateY(-12px); box-shadow:0 24px 60px rgba(13,59,102,.2); }
.segment-img{ height:230px; overflow:hidden; position:relative; }
.segment-img img{ width:100%; height:100%; object-fit:cover; transition:transform .7s; opacity:0; }
.segment-img img.loaded{ opacity:1; animation:fadeIn .8s ease; }
.segment-card:hover .segment-img img{ transform:scale(1.13); }
.segment-img::after{ content:''; position:absolute; inset:0; background:linear-gradient(135deg, rgba(13,59,102,.5), rgba(230,57,70,.25)); opacity:.55; transition:opacity .4s; }
.segment-card:hover .segment-img::after{ opacity:.25; }
.segment-badge{ position:absolute; top:1rem; left:1rem; background:var(--secondary); color:#fff; padding:.35rem .9rem; border-radius:20px; font-size:.75rem; font-weight:700; letter-spacing:.5px; z-index:2; }
.segment-content{ padding:1.8rem; }
.segment-content h3{ color:var(--primary); font-size:1.4rem; margin-bottom:.8rem; font-weight:700; }
.segment-content p{ color:var(--gray); font-size:.98rem; }

/* ================= PRODUCTS PREVIEW ================= */
.products-preview{ background:#fff; }
.pp-grid{ display:grid; grid-template-columns:repeat(auto-fit,minmax(280px,1fr)); gap:2rem; }
.pp-card{ position:relative; border-radius:18px; overflow:hidden; height:280px; box-shadow:0 12px 35px rgba(13,59,102,.15); }
.pp-card img{ width:100%; height:100%; object-fit:cover; transition:transform .6s; opacity:0; }
.pp-card img.loaded{ opacity:1; animation:fadeIn .8s ease; }
.pp-card:hover img{ transform:scale(1.1); }
.pp-overlay{ position:absolute; inset:0; background:linear-gradient(0deg, rgba(13,59,102,.92) 0%, rgba(13,59,102,.15) 60%, transparent 100%); display:flex; flex-direction:column; justify-content:flex-end; padding:1.6rem; }
.pp-overlay h3{ color:#fff; font-size:1.25rem; margin-bottom:.4rem; }
.pp-overlay p{ color:rgba(255,255,255,.85); font-size:.88rem; margin-bottom:.8rem; }
.pp-overlay a{ color:#fff; font-weight:700; font-size:.88rem; text-decoration:none; display:inline-flex; align-items:center; gap:.3rem; }
.pp-cta-card{ background:linear-gradient(135deg, var(--secondary), var(--secondary-dark)); display:flex; flex-direction:column; align-items:center; justify-content:center; text-align:center; padding:2rem; color:#fff; }
.pp-cta-card h3{ font-size:1.3rem; margin-bottom:.6rem; }
.pp-cta-card p{ font-size:.9rem; opacity:.9; margin-bottom:1.2rem; }

/* ================= CATEGORIES ================= */
.categories{ background:#fff; }
.cat-tabs{ display:flex; justify-content:center; gap:1rem; margin-bottom:3rem; flex-wrap:wrap; }
.cat-tab{ padding:.8rem 2rem; border-radius:30px; border:2px solid var(--primary); background:transparent; color:var(--primary); font-weight:700; cursor:pointer; transition:all .3s; font-size:.95rem; }
.cat-tab.active, .cat-tab:hover{ background:var(--primary); color:#fff; }

.cat-grid{ display:grid; grid-template-columns:repeat(auto-fill,minmax(230px,1fr)); gap:1.3rem; }
.cat-item{ background:var(--light); border-radius:14px; padding:1.4rem 1.2rem; display:flex; align-items:center; gap:1rem; transition:all .3s; border:1px solid transparent; cursor:default; }
.cat-item:hover{ background:#fff; border-color:var(--secondary); transform:translateX(6px); box-shadow:0 8px 25px rgba(13,59,102,.1); }
.cat-icon{ width:42px; height:42px; min-width:42px; border-radius:10px; background:var(--primary); color:#fff; display:flex; align-items:center; justify-content:center; font-weight:800; font-size:1.1rem; }
.cat-item span{ font-size:.92rem; font-weight:600; color:var(--dark); }
.cat-panel{ display:none; }
.cat-panel.active{ display:grid; animation:fadeIn .5s ease; }
.cat-footer-cta{ text-align:center; margin-top:3rem; padding-top:2.5rem; border-top:1px solid #eee; }
.cat-footer-cta p{ color:var(--gray); margin-bottom:1.2rem; font-size:1.05rem; }

/* ================= TESTIMONIALS ================= */
.testimonials{ background:var(--light); }
.testi-grid{ display:grid; grid-template-columns:repeat(auto-fit,minmax(300px,1fr)); gap:2rem; }
.testi-card{ background:#fff; border-radius:18px; padding:2rem; box-shadow:0 12px 35px rgba(13,59,102,.08); transition:transform .35s; }
.testi-card:hover{ transform:translateY(-6px); }
.testi-stars{ color:var(--accent); font-size:1rem; margin-bottom:1rem; letter-spacing:2px; }
.testi-card p{ color:var(--dark); font-size:.98rem; margin-bottom:1.5rem; font-style:italic; }
.testi-author{ display:flex; align-items:center; gap:.9rem; }
.avatar-badge{ width:48px; height:48px; min-width:48px; border-radius:50%; background:linear-gradient(135deg, var(--primary), var(--primary-dark)); color:#fff; display:flex; align-items:center; justify-content:center; font-weight:800; font-size:1rem; }
.testi-author b{ display:block; color:var(--primary); font-size:.95rem; }
.testi-author span{ font-size:.8rem; color:var(--gray); }

/* ================= CTA BANNER ================= */
.cta-banner{ background:linear-gradient(120deg, var(--primary), var(--primary-dark)); color:#fff; padding:4rem 2rem; position:relative; overflow:hidden; }
.cta-banner::before{ content:''; position:absolute; inset:0; background:url('https://images.unsplash.com/photo-1601758228041-f3b2795255f1?w=1400&q=60') center/cover; opacity:.12; }
.cta-banner .container{ position:relative; display:flex; align-items:center; justify-content:space-between; gap:2rem; flex-wrap:wrap; }
.cta-banner h3{ font-size:1.9rem; margin-bottom:.5rem; font-weight:800; }
.cta-banner p{ opacity:.85; font-size:1.05rem; }

/* ================= WHY US ================= */
.why{ background:var(--primary); color:#fff; }
.why .section-title h2, .why .section-title p{ color:#fff; }
.why .section-title p{ opacity:.85; }
.why-split{ display:grid; grid-template-columns:.9fr 1.1fr; gap:3rem; align-items:center; }
.why-img{ border-radius:18px; overflow:hidden; height:420px; box-shadow:0 25px 60px rgba(0,0,0,.3); }
.why-img img{ width:100%; height:100%; object-fit:cover; opacity:0; }
.why-img img.loaded{ opacity:1; animation:fadeIn .8s ease; }
.why-grid{ display:grid; grid-template-columns:repeat(auto-fit,minmax(220px,1fr)); gap:1.6rem; }
.why-card{ background:rgba(255,255,255,.08); border:1px solid rgba(255,255,255,.15); border-radius:16px; padding:1.8rem 1.4rem; text-align:center; transition:all .35s; backdrop-filter:blur(6px); }
.why-card:hover{ background:rgba(255,255,255,.15); transform:translateY(-8px); }
.why-icon{ font-size:2.1rem; margin-bottom:.8rem; }
.why-card h3{ font-size:1.05rem; margin-bottom:.5rem; font-weight:700; }
.why-card p{ font-size:.88rem; opacity:.85; }

/* ================= CONTACT ================= */
.contact{ background:var(--light); }
.contact-grid{ display:grid; grid-template-columns:1fr 1fr; gap:3rem; align-items:start; }
.contact-info-card{ background:#fff; border-radius:18px; padding:2.5rem; box-shadow:0 15px 45px rgba(13,59,102,.1); }
.contact-row{ display:flex; gap:1rem; padding:1rem 0; border-bottom:1px solid #eee; }
.contact-row:last-child{ border-bottom:none; }
.contact-row b{ color:var(--primary); display:block; margin-bottom:.2rem; }
.contact-row span, .contact-row a{ color:var(--gray); text-decoration:none; }
.contact-row a:hover{ color:var(--secondary); }

.map-box{ border-radius:18px; overflow:hidden; height:100%; min-height:400px; box-shadow:0 15px 45px rgba(13,59,102,.15); }
.map-box iframe{ width:100%; height:100%; min-height:400px; border:0; display:block; }

/* ================= FOOTER ================= */
footer{ background:var(--dark); color:#fff; padding:4rem 2rem 1.5rem; }
.footer-grid{ max-width:1400px; margin:0 auto; display:grid; grid-template-columns:1.5fr 1fr 1fr 1fr; gap:2.5rem; padding-bottom:2.5rem; border-bottom:1px solid rgba(255,255,255,.1); }
.footer-logo{ font-size:1.7rem; font-weight:800; margin-bottom:1rem; }
.footer-logo span{ color:var(--secondary); }
.footer-col h4{ font-size:1rem; margin-bottom:1.1rem; color:#fff; }
.footer-col p, .footer-col a{ display:block; color:rgba(255,255,255,.65); text-decoration:none; font-size:.9rem; margin-bottom:.7rem; transition:color .3s; }
.footer-col a:hover{ color:var(--secondary); }
.footer-social{ display:flex; gap:.8rem; margin-top:.5rem; }
.footer-social a{ width:38px; height:38px; border-radius:50%; background:rgba(255,255,255,.08); display:flex; align-items:center; justify-content:center; margin-bottom:0; }
.footer-social a:hover{ background:var(--secondary); }
.footer-info{ opacity:.6; margin-top:2rem; font-size:.85rem; text-align:center; max-width:1400px; margin-left:auto; margin-right:auto; display:flex; justify-content:center; gap:1.5rem; flex-wrap:wrap; }
.footer-info a{ color:rgba(255,255,255,.6); text-decoration:underline; }

/* ================= WHATSAPP FLOAT ================= */
.whatsapp-float{
  position:fixed; bottom:26px; right:26px; z-index:900;
  width:62px; height:62px; border-radius:50%;
  background:var(--whatsapp); color:#fff;
  display:flex; align-items:center; justify-content:center;
  box-shadow:0 10px 30px rgba(37,211,102,.5);
  text-decoration:none; font-size:1.7rem;
  animation:pulseWA 2.4s infinite;
}
.whatsapp-float:hover{ transform:scale(1.08); }
@keyframes pulseWA{
  0%{ box-shadow:0 0 0 0 rgba(37,211,102,.55); }
  70%{ box-shadow:0 0 0 16px rgba(37,211,102,0); }
  100%{ box-shadow:0 0 0 0 rgba(37,211,102,0); }
}

/* ================= COOKIE BANNER (LGPD) ================= */
.cookie-banner{
  position:fixed; left:0; right:0; bottom:-200px;
  background:#fff; z-index:1200;
  box-shadow:0 -10px 40px rgba(13,59,102,.18);
  padding:1.6rem 2rem; transition:bottom .5s ease;
}
.cookie-banner.show{ bottom:0; }
.cookie-inner{ max-width:1300px; margin:0 auto; display:flex; align-items:center; gap:2rem; flex-wrap:wrap; justify-content:space-between; }
.cookie-inner p{ color:var(--gray); font-size:.92rem; max-width:700px; }
.cookie-inner p b{ color:var(--primary); }
.cookie-actions{ display:flex; gap:.8rem; flex-wrap:wrap; }
.btn-cookie{ padding:.75rem 1.5rem; border-radius:8px; font-weight:700; font-size:.88rem; cursor:pointer; border:2px solid var(--primary); background:transparent; color:var(--primary); transition:all .3s; }
.btn-cookie.primary{ background:var(--primary); color:#fff; }
.btn-cookie:hover{ opacity:.85; }

/* ================= WELCOME MODAL ================= */
.modal-overlay{
  position:fixed; inset:0; background:rgba(13,20,30,.72);
  z-index:1500; display:flex; align-items:center; justify-content:center;
  opacity:0; visibility:hidden; transition:opacity .4s ease;
  padding:1.5rem;
}
.modal-overlay.show{ opacity:1; visibility:visible; }
.welcome-modal{
  background:#fff; border-radius:20px; max-width:420px; width:100%;
  overflow:hidden; position:relative;
  transform:scale(.9) translateY(20px); transition:transform .4s ease;
  box-shadow:0 40px 80px rgba(0,0,0,.4);
}
.modal-overlay.show .welcome-modal{ transform:scale(1) translateY(0); }
.welcome-modal-banner{
  background:linear-gradient(135deg, var(--primary), var(--primary-dark));
  color:#fff; padding:2rem 2rem 1.4rem; text-align:center; position:relative;
}
.modal-close{ position:absolute; top:.8rem; right:1rem; background:none; border:none; color:#fff; font-size:1.5rem; cursor:pointer; opacity:.8; }
.modal-close:hover{ opacity:1; }
.welcome-modal-banner .wm-icon{ font-size:2.4rem; margin-bottom:.6rem; }
.welcome-modal-banner h3{ font-size:1.35rem; font-weight:800; margin-bottom:.4rem; }
.welcome-modal-banner p{ font-size:.9rem; opacity:.9; }
.welcome-modal-body{ padding:1.8rem 2rem 2.2rem; }
.wm-field{ margin-bottom:1rem; }
.wm-field label{ display:block; font-size:.85rem; font-weight:700; color:var(--primary); margin-bottom:.4rem; }
.wm-field input{ width:100%; padding:.85rem 1rem; border-radius:10px; border:2px solid #e4e9ee; font-size:.95rem; font-family:inherit; transition:border-color .3s; }
.wm-field input:focus{ outline:none; border-color:var(--secondary); }
.wm-submit{ width:100%; margin-top:.4rem; justify-content:center; }
.wm-skip{ display:block; text-align:center; margin-top:1rem; font-size:.85rem; color:var(--gray); text-decoration:underline; cursor:pointer; background:none; border:none; font-family:inherit; }
.wm-note{ font-size:.75rem; color:var(--gray); text-align:center; margin-top:1rem; }
.wm-success{ text-align:center; padding:1rem 0; }
.wm-success .wm-icon{ font-size:2.6rem; color:var(--whatsapp); margin-bottom:.8rem; }

@keyframes fadeUp{ from{opacity:0; transform:translateY(35px);} to{opacity:1; transform:translateY(0);} }
@keyframes fadeIn{ from{opacity:0; transform:scale(1.05);} to{opacity:1; transform:scale(1);} }

@media (max-width:900px){
  .footer-grid{ grid-template-columns:1fr 1fr; }
  .trust-bar .container{ grid-template-columns:1fr 1fr; }
  .why-split{ grid-template-columns:1fr; }
  .why-img{ height:280px; }
}

@media (max-width:768px){
  .nav-links{
    position:fixed; top:80px; left:0; right:0; bottom:0;
    background:#fff; flex-direction:column; padding:2rem;
    gap:1.6rem; align-items:flex-start;
    transform:translateX(100%); transition:transform .4s ease;
    overflow-y:auto;
  }
  .nav-links.open{ transform:translateX(0); }
  .nav-toggle{ display:block; }
  .hero h1{ font-size:2.4rem; }
  .about-grid, .contact-grid{ grid-template-columns:1fr; }
  section{ padding:4rem 1.3rem; }
  .stats{ grid-template-columns:1fr 1fr; }
  .footer-grid{ grid-template-columns:1fr; text-align:left; }
  .cookie-inner{ flex-direction:column; align-items:flex-start; }
  .whatsapp-float{ bottom:18px; right:18px; width:56px; height:56px; font-size:1.5rem; }
}
