/* ====== Phide V2 Styles (Brand: #0075ba & #ffffff) ====== */
:root{
  --primary:#0075ba;
  --bg:#ffffff;
  --text:#0b1220;
  --muted:#516079;
  --soft:#f3f8fc;
  --card:#ffffff;
  --ring:#bfe4f7;
}
*{box-sizing:border-box}
html,body{margin:0;padding:0}
body{
  font-family:'Poppins',system-ui,-apple-system,Segoe UI,Roboto,Arial,sans-serif;
  background:var(--bg);
  color:var(--text);
  line-height:1.55;
  text-rendering:optimizeLegibility;
  -webkit-font-smoothing:antialiased;
}
.container{width:min(1120px,92vw);margin-inline:auto}

/* Header */
.site-header{
  position:sticky;top:0;z-index:40;
  background:rgba(255,255,255,.9);
  backdrop-filter:saturate(160%) blur(10px);
  border-bottom:1px solid #e7eef6;
}
.header-inner{height:72px;display:flex;align-items:center;justify-content:space-between;gap:16px}
.brand{display:inline-flex;align-items:center;gap:12px;color:inherit;text-decoration:none}
.brand-mark{
  width:40px;height:40px;border-radius:12px;display:grid;place-items:center;
  font-weight:700;color:#fff;background:linear-gradient(135deg,var(--primary),#33a4e7);
  box-shadow:0 8px 30px rgba(0,117,186,.35);
}
.brand-name{font-weight:700;letter-spacing:.2px}
.menu-btn{
  display:none;border:0;background:var(--primary);color:#fff;border-radius:10px;padding:10px 12px;cursor:pointer
}
.menu-list{display:flex;gap:18px;list-style:none;margin:0;padding:0}
.menu-list a{font-weight:600;text-decoration:none;color:var(--text);padding:10px 12px;border-radius:10px}
.menu-list a:hover{background:#e6f3fb}
.header-shadow{height:1px;background:linear-gradient(90deg,transparent,var(--ring),transparent)}

/* Mobile nav */
@media (max-width: 860px){
  .menu-btn{display:inline-block}
  .menu-list{
    position:absolute;right:16px;top:76px;background:#fff;border:1px solid #e7eef6;border-radius:14px;
    padding:10px;width:220px;box-shadow:0 18px 40px rgba(0,0,0,.08);display:none;flex-direction:column;gap:8px
  }
  .menu-list.show{display:flex}
}

.section + .section {
  margin-top: 0 !important;
}


/* Hero */
.hero{position:relative;overflow:hidden;background:radial-gradient(1000px 440px at 70% -10%,rgba(0,117,186,.28),rgba(0,117,186,0)),linear-gradient(180deg,rgba(0,117,186,.06),transparent 40%)}
.hero-inner{display:grid;grid-template-columns:1.1fr .9fr;gap:32px;align-items:center;padding:80px 0 56px}
@media (max-width: 980px){.hero-inner{grid-template-columns:1fr;padding:64px 0 28px}}
.pill{display:inline-block;border:1px solid var(--ring);border-radius:999px;padding:6px 10px;font-size:12px;background:#fff}
.hero h1{font-size:clamp(28px,3.2vw,48px);line-height:1.1;margin:12px 0}
.hero h1 .accent{display:block;color:var(--primary)}
.hero p{color:var(--muted);margin:8px 0 18px}
.hero-ctas{display:flex;gap:12px;flex-wrap:wrap}
.hero-bullets{display:flex;gap:14px;flex-wrap:wrap;padding:0;margin:14px 0 0;list-style:none;color:#2a3b52}
.hero-bullets li{display:inline-flex;align-items:center;gap:8px}
.hero-bullets li::before{content:'✓';color:var(--primary);font-weight:700}
.hero-art .mockup{width:100%;max-width:440px;filter:drop-shadow(0 20px 40px rgba(0,0,0,.08))}
.wave{display:block;width:100%;height:auto}

/* Buttons */
.btn{display:inline-block;border-radius:14px;padding:12px 16px;font-weight:700;text-decoration:none;border:2px solid transparent;transition:transform .12s ease,filter .12s ease,background .12s ease}
.btn:active{transform:translateY(1px)}
.btn-primary{background:var(--primary);color:#fff}
.btn-primary:hover{filter:brightness(.96)}
.btn-ghost{border-color:var(--primary);color:var(--primary);background:#ffffff}
.btn-ghost:hover{background:#e6f3fb}
.btn-contrast{background:#0b1220;color:#fff;border-color:#0b1220}
.btn-contrast:hover{filter:brightness(1.05)}
.w100{width:100%}

/* Sections */
.section{padding:72px 0}
.section.alt{background:var(--soft)}
.section-header{text-align:center;margin-bottom:30px}
.section-header h2{margin:0 0 8px 0;font-size:28px}
.section-header p{margin:0;color:var(--muted)}

/* Plans */
.grid{display:grid;gap:18px}
.plans{grid-template-columns:repeat(3,minmax(0,1fr))}
@media (max-width: 900px){.plans{grid-template-columns:1fr}}
.plan{
  background:var(--card);border:10px solid #e7eef6;border-radius:20px;padding:22px;
  box-shadow:0 14px 36px rgba(0,0,0,.06);transition:transform .15s ease, box-shadow .2s ease
}
.plan:hover{transform:translateY(-4px);box-shadow:0 18px 44px rgba(0,0,0,.08)}
.plan-featured{border-color:var(--primary);position:relative;background:linear-gradient(180deg,#ffffff, #f4fbff)}
.ribbon{
  position:absolute;top:-10px;left:18px;background:var(--primary);color:#fff;font-size:12px;padding:6px 10px;border-radius:999px;box-shadow:0 10px 24px rgba(0,117,186,.3)
}
.price{color:var(--muted)} .price strong{font-size:30px;color:var(--text)}
.checks{margin:14px 0 16px 0;padding-left:18px}
.checks li{margin:8px 0}

/* Logos */
.logos{grid-template-columns:repeat(6,minmax(0,1fr))}
@media (max-width: 1000px){.logos{grid-template-columns:repeat(3,1fr)}}
@media (max-width: 560px){.logos{grid-template-columns:repeat(2,1fr)}}
.logo{display:grid;place-items:center;height:78px;border:1px dashed #cfe8f8;border-radius:16px;background:#fff;color:#0b1220;font-weight:700;letter-spacing:1px;transition:transform .12s ease}
.logo:hover{transform:translateY(-2px)}

/* Gallery */
.gallery{grid-template-columns:repeat(4,minmax(0,1fr))}
@media (max-width: 510px){.gallery{grid-template-columns:repeat(2,1fr)}}
@media (max-width: 280px){.gallery{grid-template-columns:1fr}}
.shot{margin:0;background:#fff;border:1px solid #e7eef6;border-radius:18px;overflow:hidden;box-shadow:0 14px 36px rgba(0,0,0,.06)}
.shot-media{
  aspect-ratio:16/10;position:relative;
  background:conic-gradient(from 180deg at 50% 50%, rgba(0,117,186,.15), rgba(0,117,186,.05), rgba(0,117,186,.15));
}
.shot-overlay{
  position:absolute;inset:0;display:grid;place-items:center;background:linear-gradient(180deg,rgba(0,0,0,.0),rgba(0,0,0,.25));
  color:#fff;font-weight:700;opacity:0;transition:opacity .2s ease
}
.shot:hover .shot-overlay{opacity:1}
.shot figcaption{font-size:16px;padding:12px 14px;color:var(--muted)}

/* Contacts */
.contacts{display:grid;gap:16px;grid-template-columns:repeat(3,minmax(0,1fr))}
@media (max-width: 920px){.contacts{grid-template-columns:1fr}}
.contact{
  display:grid;gap:6px;padding:18px;text-decoration:none;color:inherit;background:#fff;border:1px solid #e7eef6;border-radius:18px;
  transition:transform .12s ease,border-color .12s ease,box-shadow .12s ease
}
.contact:hover{border-color:var(--primary);transform:translateY(-2px);box-shadow:0 14px 36px rgba(0,0,0,.06)}
.contact-title{font: weight 1000px;}
.contact-text{color:var(--muted)}

/* CTA */
.cta{background:linear-gradient(135deg,rgba(0,117,186,.06),rgba(0,117,186,.12))}
.cta-inner{text-align:center;display:grid;gap:10px}
.cta-inner h3{margin:0}
.cta-inner p{margin:0;color:var(--muted)}
.cta .btn{justify-self:center}

/* Footer */
.site-footer{border-top:1px solid #e7eef6;background:#fff;padding:24px 0}
.footer-inner{display:flex;align-items:center;justify-content:space-between;gap:12px}
.to-top{text-decoration:none;color:var(--primary);font-weight:700}

/* Float WhatsApp */
.whatsapp-float{
  position:fixed;right:18px;bottom:18px;width:52px;height:52px;border-radius:50%;
  background:#22c55e;display:grid;place-items:center;box-shadow:0 12px 24px rgba(0,0,0,.2);z-index:50;text-decoration:none
}
.whatsapp-float:hover{filter:brightness(1.05)}
.whatsapp-float svg{width:26px;height:26px}

/* Decorative shapes */
.decor{position:absolute;pointer-events:none;filter:blur(30px);opacity:.5}
.decor-1{width:360px;height:360px;right:-80px;top:-80px;background:radial-gradient(circle at 30% 30%, rgba(0,117,186,.35), transparent 60%)}
.decor-2{width:340px;height:340px;left:-120px;bottom:-60px;background:radial-gradient(circle at 60% 60%, rgba(0,117,186,.25), transparent 60%)}

.brand-logo{width:44px;height:44px;border-radius:12px;object-fit:contain;background:#fff}

.header-left{justify-content:flex-start;gap:28px}
.header-left .nav{margin-left:8px}

.clients-single{display:grid;place-items:center}
.client-card{display:grid;gap:10px;justify-items:center;background:#fff;border:1px solid #e7eef6;border-radius:16px;padding:18px;max-width:340px;margin-inline:auto;box-shadow:0 14px 36px rgba(0,0,0,.06)}
.client-logo{width:100%;height:160px;object-fit:contain}
.gallery .shot img{width:100%;height:auto;display:block;aspect-ratio:16/10;object-fit:cover}

.reveal{opacity:0;transform:translateY(18px);transition:opacity .5s ease, transform .5s ease}
.reveal.is-visible{opacity:1;transform:translateY(0)}


/* === v9_13: cores de fundo refinadas === */
:root{
  --primary:#0075ba;
  --bg:#ffffff;
  --bg-soft:#f5f9ff;
  --ink:#0b1220;
  --muted:#516079;
  --ring:#cfe8ff;
}
body{background:var(--bg);color:var(--ink)}
.section{background:transparent}
.section.alt{background:var(--bg-soft)}
.footer{background:var(--bg-soft)}

/* Portfólio imagens com cursor de zoom */
.gallery .shot img{cursor:zoom-in; border-radius:12px;}

/* === Lightbox (click-to-enlarge) === */
.lb-overlay{
  position:fixed; inset:0; background:rgba(0,0,0,.65);
  display:none; align-items:center; justify-content:center; z-index:100;
  padding:24px;
}
.lb-overlay.show{display:flex; animation:lbFade .18s ease-out}
@keyframes lbFade{from{opacity:0}to{opacity:1}}
.lb-img{
  max-width:min(92vw,1200px); max-height:88vh; border-radius:14px;
  box-shadow:0 24px 80px rgba(0,0,0,.5);
  transform:scale(.96); opacity:.0; transition:transform .18s ease-out, opacity .18s ease-out;
}
.lb-overlay.show .lb-img{transform:scale(1); opacity:1}
.lb-close{
  position:fixed; top:18px; right:22px; font-size:28px; line-height:1;
  width:44px; height:44px; border-radius:12px; border:0; cursor:pointer;
  background:#ffffff; color:#0b1220; box-shadow:0 6px 20px rgba(0,0,0,.2);
}
.lb-close:hover{filter:brightness(.96)}

/* v9_14: correção do fundo/bleed do hero e refinamento */
.hero{position:relative; overflow:hidden; background:linear-gradient(180deg,#ffffff, #f9fbff 55%, #ffffff 100%);} /* corta shapes */
.shape{opacity:.35; pointer-events:none; z-index:0}
.section{position:relative; z-index:1} /* garante que as seções não fiquem sob os shapes */


/* === Seção 'Faça um orçamento' === */
.budget{background:var(--bg-soft)}
.budget-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}
@media (max-width:980px){.budget-grid{grid-template-columns:1fr}}
.budget-card{background:#fff;border:1px solid #e6eef6;border-radius:16px;padding:18px;box-shadow:0 14px 36px rgba(0,0,0,.06);display:grid;gap:10px}
.budget-card h3{margin:0}
.budget-card ul{margin:0 0 6px 18px}
.budget-card .btn{justify-self:start}


/* ===== Portfólio (fica branco e termina com respiro curto) ===== */
.section.portfolio{
  background: transparent;
  position: relative;
  padding-bottom: 16px;   /* respiro pequeno, como no print */
  margin-bottom: 0;
}
.section.portfolio .container,
.section.portfolio .gallery,
.section.portfolio .gallery .shot,
.section.portfolio figure{
  margin-bottom: 0;
  padding-bottom: 0;
}
.section.portfolio img:not(.lb-img){
  display: block;         /* evita “linha” por baseline */
  width: 100%;
  height: auto;
  vertical-align: bottom; /* evita “linha” por baseline */
}


/* ===== Orçamento (começa logo abaixo com azul claro) ===== */
.section.budget{
  background: #F3F7FF;    /* mesmo tom do print */
  margin-top: 0 !important;
  padding-top: 64px;       /* respiro DENTRO da área azul */
  position: relative;
  z-index: 1;
}

/* Se existir alguma regra global que cria gap entre sections, neutraliza */
.section + .section{
  margin-top: 0 !important;
}

/* -------------------
   HERO CAROUSEL AJUSTADO
   ------------------- */

.hero-carousel {
  position: relative;
  width: 100%;
  max-width: 1100px;       /* largura máxima centralizada */
  margin: 0 auto;
  overflow: hidden;
  border-radius: 18px;
  box-shadow: 0 18px 42px rgba(0, 0, 0, 0.10);
  background: #fff;
  padding: 20px 0;         /* espaço superior/inferior */
  height: auto;            /* altura se ajusta ao conteúdo */
}

.hero-carousel .track {
  display: flex;
  transition: transform 0.6s ease;
  will-change: transform;
  align-items: center;
}

.hero-carousel .slide {
  min-width: 100%;
  display: flex;
  justify-content: center;
  align-items: center;
}

.hero-carousel .slide img {
  max-width: 320px;        /* tamanho padrão das artes do portfólio */
  max-height: 200px;
  object-fit: contain;     /* sem cortes */
  border-radius: 12px;
  box-shadow: 0 8px 18px rgba(0, 0, 0, 0.12);
}

/* Botões de navegação do carrossel */
.hero-carousel .nav {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  background: rgba(0, 0, 0, 0.5);
  color: #fff;
  border: none;
  padding: 8px 12px;
  cursor: pointer;
  border-radius: 50%;
  font-size: 18px;
  transition: background 0.3s ease;
  z-index: 10;
}

.hero-carousel .nav:hover {
  background: rgba(0, 0, 0, 0.8);
}

.hero-carousel .prev {
  left: 10px;
}

.hero-carousel .next {
  right: 10px;
}

/* -------------------
   PORTFÓLIO (mantém padronização)
   ------------------- */
.grid.gallery {
  display: flex;
  gap: 20px;
  justify-content: center;
  flex-wrap: wrap;
}

.grid.gallery img {
  max-width: 320px;
  max-height: 200px;
  object-fit: cover;
  border-radius: 12px;
  box-shadow: 0 8px 18px rgba(0, 0, 0, 0.12);
  transition: transform 0.3s ease;
}

.grid.gallery img:hover {
  transform: scale(1.05);
}

/* Layout em duas colunas */
.hero-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 40px;
  align-items: center;
}
@media(max-width: 900px){
  .hero-grid { grid-template-columns: 1fr; }
}

/* Hero texto */
.hero-text h1 { font-size: 2rem; margin-bottom: 10px; }
.hero-text p { font-size: 1.1rem; margin-bottom: 15px; }
.hero-bullets li { margin-bottom: 6px; }

/* Hero carrossel */
.hero-carousel {
  position: relative;
  width: 100%;
  max-width: 450px;     /* caixa menor */
  margin: 0 auto;
  overflow: hidden;
  border-radius: 16px;
  box-shadow: 0 10px 28px rgba(0,0,0,.12);
  background: #fff;
  height: 280px;        /* altura controlada */
}
.hero-carousel .track {
  display: flex;
  transition: transform .6s ease;
  height: 100%;
  align-items: center;
}
.hero-carousel .slide {
  min-width: 100%;
  display: flex;
  justify-content: center;
  align-items: center;
}
.hero-carousel .slide img {
  max-width: 100%;
  max-height: 100%;
  object-fit: contain;
  display: block;
  border-radius: 12px;
}

/* Setas */
.hero-carousel .nav {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  width: 42px;
  height: 42px;
  border-radius: 50%;
  background: #0075ba;
  border: none;
  display: flex;
  justify-content: center;
  align-items: center;
  cursor: pointer;
  color: #fff;
  font-size: 22px;
  transition: background .3s;
  z-index: 10;
}
.hero-carousel .nav:hover { background: #005f96; }
.hero-carousel .prev { left: 12px; }
.hero-carousel .next { right: 12px; }

/* Dots */
.hero-carousel .dots {
  position: absolute;
  bottom: 10px;
  left: 0; right: 0;
  display: flex;
  justify-content: center;
  gap: 8px;
}
.hero-carousel .dots button {
  width: 8px; height: 8px;
  border-radius: 50%;
  border: none;
  background: #ccc;
  cursor: pointer;
}
.hero-carousel .dots button.active {
  background: #0075ba;
  width: 20px;
}

/* ======= HERO ======= */
#hero {
  position: relative;
  padding: clamp(48px, 8vw, 88px) 0;
  background:
    radial-gradient(900px 400px at 90% 0%, rgba(0,117,186,.07), transparent 60%),
    #ffffff;
}
#hero .container { width: min(1200px, 92%); margin: 0 auto; }

/* Grid: texto + (espaço para arte futura) */
#hero .hero-wrap {
  display: grid;
  grid-template-columns: 1.15fr .85fr;   /* texto maior */
  gap: clamp(24px, 4vw, 48px);
  align-items: center;
}
@media (max-width: 900px) {
  #hero .hero-wrap { grid-template-columns: 1fr; }
  #hero .hero-art { display: none; }     /* esconde a coluna vazia no mobile */
}

/* Texto */
#hero .chip{
  display: inline-block;
  font-size: .875rem;
  color: #0e2a3b;
  background: #f3f8fc;
  border: 1px solid #e2eef7;
  padding: 6px 12px;
  border-radius: 999px;
  margin-bottom: 14px;
}
#hero .hero-title{
  font-weight: 800;
  line-height: 1.05;
  letter-spacing: -0.02em;
  color: #0e2a3b;
  margin: 6px 0 12px;
  font-size: clamp(32px, 5.2vw, 56px);
}
#hero .hero-title .accent{ color: #0075ba; }
#hero .hero-sub{
  color: #556373;
  font-size: clamp(16px, 1.6vw, 18px);
  line-height: 1.6;
  margin: 0 0 18px;
}

/* Botões */
#hero .hero-cta{ display: flex; gap: 14px; margin: 18px 0 14px; }
#hero .btn{
  --h: 48px;
  display: inline-flex; align-items: center; justify-content: center;
  height: var(--h); padding: 0 22px; border-radius: 12px;
  font-weight: 700; text-decoration: none; transition: .2s ease;
  border: 2px solid transparent;
}
#hero .btn-primary{
  background: #0075ba; color: #fff;
  box-shadow: 0 10px 24px rgba(0,117,186,.25);
}
#hero .btn-primary:hover{ background:#0466a0; transform: translateY(-1px); }
#hero .btn-ghost{
  color:#0075ba; background:#ffffff; border-color:#bfe4f7;
}
#hero .btn-ghost:hover{ background:#e9f5fc; }

/* Bullets */
#hero .hero-bullets{ display:flex; flex-wrap:wrap; gap: 14px 24px; margin-top: 10px; }
#hero .hero-bullets li{
  list-style:none; color:#293544; font-weight:600;
  position:relative; padding-left:22px;
}
#hero .hero-bullets li::before{
  content:"✓"; position:absolute; left:0; top:0; color:#0075ba; font-weight:800;
}

/* Coluna da arte (placeholder) */
#hero .hero-art{
  min-height: 260px; border-radius: 18px;
  background:
    linear-gradient(120deg, rgba(191,228,247,.55), rgba(222,238,249,.25)),
    radial-gradient(600px 300px at 70% 20%, rgba(0,117,186,.10), transparent 60%),
    #ffffff;
  box-shadow: 0 14px 36px rgba(0,0,0,.08);
}
/* ===== HERO layout ===== */
#hero{
  position:relative;
  padding: clamp(48px,8vw,88px) 0;
  background:
    radial-gradient(900px 400px at 90% 0%, rgba(0,117,186,.07), transparent 60%),
    #fff;
}
#hero .container{ width:min(1200px,92%); margin:0 auto; }

#hero .hero-wrap{
  display:grid;
  grid-template-columns: 1.15fr .85fr;    /* texto maior, arte menor */
  gap: clamp(24px,4vw,48px);
  align-items:center;
}
@media (max-width: 900px){
  #hero .hero-wrap{ grid-template-columns:1fr; }
}

/* ===== Texto ===== */
#hero .chip{
  display:inline-block; font-size:.875rem;
  color:#0e2a3b; background:#f3f8fc; border:1px solid #e2eef7;
  padding:6px 12px; border-radius:999px; margin-bottom:14px;
}
#hero .hero-title{
  position:relative; z-index:2;            /* garante sobreposição acima de qualquer pseudo */
  font-weight:800; line-height:1.05; letter-spacing:-.02em;
  color:#0e2a3b; margin:6px 0 12px; font-size: clamp(32px,5.2vw,56px);
}
#hero .hero-title .accent{ color:#0075ba; }
#hero .hero-sub{
  color:#556373; font-size: clamp(16px,1.6vw,18px); line-height:1.6; margin:0 0 18px;
}

#hero .hero-cta{ display:flex; gap:14px; margin:18px 0 14px; }
#hero .btn{
  --h:48px; display:inline-flex; align-items:center; justify-content:center;
  height:var(--h); padding:0 22px; border-radius:12px; font-weight:700;
  text-decoration:none; transition:.2s ease; border:2px solid transparent;
}
#hero .btn-primary{ background:#0075ba; color:#fff; box-shadow:0 10px 24px rgba(0,117,186,.25); }
#hero .btn-primary:hover{ background:#0466a0; transform: translateY(-1px); }
#hero .btn-ghost{ color:#0075ba; background:#fff; border-color:#bfe4f7; }
#hero .btn-ghost:hover{ background:#e9f5fc; }

/* ===== Bullets (correção do “ponto” vazando) ===== */
#hero .hero-bullets{
  position:relative; z-index:1;            /* abaixo do título, não sobrepõe */
  display:flex; flex-wrap:wrap; gap:14px 24px; margin-top:10px;
}
#hero .hero-bullets li{
  list-style:none; color:#293544; font-weight:600;
  position:relative; padding-left:22px; line-height:1.5; /* altura segura */
}
#hero .hero-bullets li::before{
  content:"✓"; position:absolute; left:0; top:.05em; /* evita ficar “alto” e vazar no título */
  color:#0075ba; font-weight:800;
}

/* ===== Coluna da Arte / Carrossel ===== */
#hero .hero-art{
  min-height: 280px;
  display:flex; align-items:center; justify-content:center;
}

/* Caixa menor, centralizada */
#hero .hero-carousel{
  position:relative; width:100%; max-width: 520px; height: 300px;
  overflow:hidden; border-radius:18px; background:#fff;
  box-shadow: 0 14px 36px rgba(0,0,0,.08);
}

/* Trilho e slides */
#hero .hero-carousel .track{
  display:flex; height:100%; align-items:center;
  transition: transform .6s ease;
}
#hero .hero-carousel .slide{
  min-width:100%; height:100%; display:flex; align-items:center; justify-content:center;
}

/* Imagens CENTRALIZADAS e sem corte */
#hero .hero-carousel .slide img{
  max-width: 90%;
  max-height: 90%;
  width:auto; height:auto;
  object-fit: contain; display:block; border-radius:12px;
}

/* Setas mais bonitas */
#hero .hero-carousel .nav{
  position:absolute; top:50%; transform: translateY(-50%);
  width:44px; height:44px; border-radius:999px; border:none; cursor:pointer;
  display:grid; place-items:center; color:#fff; font-size:22px;
  background: linear-gradient(180deg, #118ad2, #0075ba);
  box-shadow: 0 6px 18px rgba(0,117,186,.35);
  transition: transform .15s ease, filter .15s ease;
  z-index:10;
}
#hero .hero-carousel .nav:hover{ filter: brightness(.95); transform: translateY(-50%) scale(1.04); }
#hero .hero-carousel .prev{ left:12px; }
#hero .hero-carousel .next{ right:12px; }

/* Dots */
#hero .hero-carousel .dots{
  position:absolute; left:0; right:0; bottom:12px;
  display:flex; gap:8px; justify-content:center; align-items:center;
}
#hero .hero-carousel .dots button{
  width:8px; height:8px; border-radius:999px; border:0; cursor:pointer; background:#cfd8e3;
}
#hero .hero-carousel .dots button.active{ background:#0075ba; width:22px; }

/* HERO carousel – correções de corte/“pinguinho” */
#hero .hero-carousel { overflow: hidden; }             /* já estava, mantém */
#hero .hero-carousel .track{
  display: flex;
  align-items: center;
  gap: 0;                  /* <— zera qualquer espaço entre slides */
  will-change: transform;
  transition: transform .6s ease;
}
#hero .hero-carousel .slide{
  flex: 0 0 100%;          /* <— força cada slide a ter exatamente 100% */
  min-width: 100%;
  height: 100%;
  display: flex;
  align-items: center;
  justify-content: center;
}
#hero .hero-carousel figure.slide{ margin: 0; }  /* <— remove margem padrão do <figure> */
#hero .hero-carousel .slide img{
  display: block;          /* evita linha fantasma */
  max-width: 90%;
  max-height: 90%;
  width: auto;
  height: auto;
  object-fit: contain;     /* mostra arte inteira */
}
/* HERO – zera qualquer espaço interno do carrossel */
#hero .hero-carousel{
  padding: 0;              /* <- garante sem acolchoamento */
  background: #fff;
  overflow: hidden;        /* já estava, mantém */
}

/* trilho e slides sem gap */
#hero .hero-carousel .track{
  display: flex;
  align-items: stretch;    /* ocupa 100% da altura */
  gap: 0;                  /* <- sem espaço entre slides */
  transition: transform .6s ease;
  will-change: transform;
}
#hero .hero-carousel figure.slide{ margin: 0; }
#hero .hero-carousel .slide{
  flex: 0 0 100%;
  min-width: 100%;
  height: 100%;
  display: flex;
}

/* IMAGEM PREENCHE a caixa (sem sobras) */
#hero .hero-carousel .slide img:not(.lb-img){
  width: 100%;
  height: 100%;
  object-fit: cover;       /* <- elimina a faixa branca */
  border-radius: 18px;     /* acompanha o arredondado da caixa */
  display: block;
}

/* ----- CARROSSEL DO HERO: correção da faixa branca ----- */

/* A caixa do carrossel: raio e clip só aqui */
#hero .hero-carousel{
  position: relative;
  width: 100%;
  max-width: 520px;
  height: 300px;
  border-radius: 18px;
  overflow: hidden;         /* recorta tudo que sobrar */
  background: #fff;         /* pode ser transparente se preferir ver o gradient atrás */
  box-shadow: 0 14px 36px rgba(0,0,0,.08);
  padding: 0;               /* nada de acolchoamento interno */
}

/* Trilho + slides SEM espaço e com alturas/larguras exatas */
#hero .hero-carousel .track{
  display: flex;
  align-items: stretch;
  gap: 0;                   /* sem “fresta” entre slides */
  will-change: transform;
  transition: transform .6s ease;
}

#hero .hero-carousel figure.slide{
  margin: 0;
  flex: 0 0 100%;
  min-width: 100%;
  height: 100%;
  position: relative;       /* canvas absoluto para a mídia dentro */
}

/* Link/Imagem ocupam 100% do slide (sem subpixel) */
#hero .hero-carousel .slide > a{
  position: absolute;
  inset: 0;                 /* top/right/bottom/left = 0 */
  display: block;
}

#hero .hero-carousel .slide img{
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;        /* cobre a área toda, sem “faixa” */
  display: block;
  border-radius: 0;         /* raio só no carrossel, não na imagem */
  -webkit-backface-visibility: hidden;
  backface-visibility: hidden;
}

/* Garantia: setas e dots não alterados */
#hero .hero-carousel .nav{ z-index: 5; }
#hero .hero-carousel .dots{ z-index: 5; }

/* Opcional: se ainda ver 1px em algum navegador, force 0.5px a mais */
@supports (transform: translateZ(0)){
  #hero .hero-carousel .slide img{ transform: translateZ(0); }
}

/* HERO – imagens ocupam toda a caixa, com enquadramento ajustável */
#hero .hero-carousel .slide img{
  width: 100%;
  height: 100%;
  display: block;
  object-fit: cover;  /* preenche a caixa, sem “minimizar” */
  /* use variáveis por imagem para ajustar o foco/enquadramento */
  object-position: var(--ox, 50%) var(--oy, 50%);
  background:#fff; /* evita qualquer “borda” estranha em PNG/JPG */
}
/* Cada slide é uma caixa flexível que centraliza o conteúdo */
#hero .hero-carousel .slide {
  display: flex;
  align-items: center;     /* alinha vertical */
  justify-content: center; /* alinha horizontal */
  overflow: hidden;        /* evita que algo passe da caixa */
  background: #fff;        /* fundo branco uniforme */
}

/* Imagem contida dentro do quadrado */
#hero .hero-carousel .slide img {
  max-width: 100%;
  max-height: 100%;
  object-fit: contain;   /* garante que a imagem inteira apareça */
  object-position: center center; /* centraliza dentro da caixa */
}


/* === Sobre Nós === */
.section.about {
  background: #ffffff;
  padding: 80px 20px;
}

.section.about .container {
  max-width: 900px;
  margin: 0 auto;
  text-align: center;
}

.section.about h2 {
  font-size: 2rem;
  margin-bottom: 20px;
  color: #0075ba;
}

.section.about p {
  font-size: 1.1rem;
  line-height: 1.6;
  color: #333;
  margin-bottom: 15px;
}

/* ===== LIGHTBOX ===== */

  /* === LIGHTBOX: igual ao “mock” da imagem 2 === */
    .lb-overlay{
      position:fixed; inset:0;
      display:none; align-items:center; justify-content:center;
      padding:48px 24px;                 /* dá respiro no topo/rodapé */
      background:rgba(0,0,0,.65);
      backdrop-filter:saturate(140%) blur(2px);
      z-index:9999;                      /* acima de header/WhatsApp */
    }
    .lb-overlay.show{ display:flex; animation:lbFade .18s ease-out; }
    @keyframes lbFade{ from{opacity:0} to{opacity:1} }

    .lb-img{
    /* bloqueia QUALQUER regra global de img */
      display:block !important;
      width:auto !important;
      height:auto !important;
      max-width:min(92vw, 1200px) !important;
      max-height:88vh !important;
      object-fit:contain !important;     /* sem cortes */
      border-radius:14px;
      box-shadow:0 24px 80px rgba(0,0,0,.5);  /* sombra do cartão */
      transform:scale(.96);
      opacity:0;
      transition:transform .18s ease-out, opacity .18s ease-out;
    }
    .lb-overlay.show .lb-img{ transform:scale(1); opacity:1; }

    .lb-close{
      position:fixed; top:18px; right:22px;
      width:44px; height:44px; border:0; border-radius:12px;
      background:#fff; color:#0b1220; font-size:28px; line-height:1;
      box-shadow:0 6px 20px rgba(0,0,0,.2);
      cursor:pointer; z-index:10000;     /* acima da imagem */
    }
    .lb-close:hover{ filter:brightness(.96); }

  /* garante que figure/margens não empurrem nada */
    .lb-overlay figure{ margin:0 !important; }

  /* === LIGHTBOX — CARTÃO CENTRAL SEM CORTE (igual imagem 2) === */

    /* Overlay acima de tudo, com respiro e backdrop */
      .lb-overlay{
        position: fixed; inset: 0;
        display: none; align-items: center; justify-content: center;
        padding: 48px 24px;
        background: rgba(0,0,0,.65);
        backdrop-filter: saturate(140%) blur(2px);
        z-index: 9999;
      }
      .lb-overlay.show{ display:flex; animation: lbFade .18s ease-out; }
      @keyframes lbFade{ from{opacity:0} to{opacity:1} }

    /* 1) O "cartão" (se for figure/div com class .lb-img) NÃO tem altura fixa */
      .lb-overlay .lb-img{
        margin: 0 !important;
        padding: 0;
        border: 0;
        background: none;
        box-shadow: none;          /* a sombra ficará na própria imagem */
        overflow: hidden;         /* NÃO corta o conteúdo */
        border-radius: 14px;
      }

    /* 2) Regras APLICADAS à IMAGEM DENTRO do cartão */
      .lb-overlay .lb-img > img,
      .lb-overlay > img{           /* cobre o caso em que o class está no próprio <img> */
        display: block !important;
        width: auto !important;
        height: auto !important;
        max-width: min(92vw, 1200px) !important;
        max-height: 88vh !important;
        object-fit: contain !important;     /* sem cortes */
        border-radius: 14px;
        box-shadow: 0 24px 80px rgba(0,0,0,.5);
        transform: scale(.96);
        opacity: 0;
        transition: transform .18s ease-out, opacity .18s ease-out;
      }
      .lb-overlay.show .lb-img > img,
      .lb-overlay.show > img{ transform: scale(1); opacity: 1; }

    /* 3) Fecha sem sobrepor a imagem */
      .lb-close{
        position: fixed; top: 18px; right: 22px;
        width: 44px; height: 44px; border: 0; border-radius: 12px;
        background: #fff; color: #0b1220; font-size: 28px; line-height: 1;
        box-shadow: 0 6px 20px rgba(0,0,0,.2);
        cursor: pointer; z-index: 10000;
      }
      .lb-close:hover{ filter: brightness(.96); }

    /* 4) Bloqueia “vazamento” das regras globais do carrossel/galeria */
      .lb-overlay img{ 
        /* anula width/height 100% e object-fit:cover vindos de .gallery/.hero-carousel */
        all: unset;
        display: block;
        width: auto;
        height: auto;
        max-width: min(92vw, 1200px);
        max-height: 88vh;
        object-fit: contain;
        border-radius: 14px;
        box-shadow: 0 24px 80px rgba(0,0,0,.5);
        transform: scale(.96);
        opacity: 0;
        transition: transform .18s ease-out, opacity .18s ease-out;
      }
      .lb-overlay.show img{ transform: scale(1); opacity: 1; }

    /* (opcional) travar o scroll do fundo ao abrir */
       body.lb-open{ overflow: hidden; }
