/* Delfin — estilos base compartilhados por todas as páginas */
body { margin:0; background:#F7F9FC; font-family:'IBM Plex Sans',system-ui,sans-serif; color:#101A2E; -webkit-font-smoothing:antialiased; }
* { box-sizing:border-box; }
a { color:#2F80F7; text-decoration:none; }
a:hover { color:#1B5FCC; }
html { scroll-behavior:smooth; scroll-padding-top:86px; }
[data-r~="spacer"] { height:74px; }
[data-r~="nav"] a { white-space:nowrap; }

/* Entrada do hero e revelação de elementos ao rolar a página (usado em index.html) */
@keyframes delfinRise { from { opacity:0; transform:translateY(14px);} to { opacity:1; transform:none;} }
[data-anim="out"] { opacity:0; transform:translateY(18px); }
[data-anim="in"] { opacity:1; transform:none; }
[data-anim] { transition:opacity .7s cubic-bezier(.22,.7,.3,1), transform .7s cubic-bezier(.22,.7,.3,1); will-change:opacity,transform; }
@media (prefers-reduced-motion:reduce){ [data-anim="out"] { opacity:1; transform:none; } }

/* Carrossel de logos de clientes (index.html) */
@keyframes delfinMarquee { from { transform:translateX(0); } to { transform:translateX(-50%); } }
.logo-carousel { overflow:hidden; -webkit-mask-image:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent); mask-image:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent); }
.logo-carousel-track { display:flex; align-items:center; gap:64px; width:max-content; animation:delfinMarquee 32s linear infinite; }
.logo-carousel:hover .logo-carousel-track { animation-play-state:paused; }
.logo-carousel-track img { height:38px; width:auto; max-width:140px; object-fit:contain; flex-shrink:0; filter:grayscale(1) opacity(.55); transition:filter .25s ease; }
.logo-carousel-track img:hover { filter:grayscale(0) opacity(1); }
@media (prefers-reduced-motion:reduce){
  .logo-carousel-track { animation:none; overflow-x:auto; }
}
@media (max-width:640px){
  .logo-carousel-track { gap:40px; }
  .logo-carousel-track img { height:30px; max-width:110px; }
}

/* Acordeão do FAQ — <details>/<summary> nativos, sem JS */
.faq-item summary { list-style:none; }
.faq-item summary::-webkit-details-marker { display:none; }
.faq-icon::before { content:"+"; }
.faq-item[open] .faq-icon::before { content:"\2212"; }

/* Botão hambúrguer (menu mobile/tablet) */
.nav-toggle { display:none; background:none; border:none; padding:8px; margin:-8px 0 -8px -8px; cursor:pointer; flex-shrink:0; }
.nav-toggle span { display:block; width:22px; height:2px; margin:5px 0; background:#101A2E; border-radius:2px; transition:transform .25s ease, opacity .25s ease; }
header.nav-open .nav-toggle span:nth-child(1) { transform:translateY(7px) rotate(45deg); }
header.nav-open .nav-toggle span:nth-child(2) { opacity:0; }
header.nav-open .nav-toggle span:nth-child(3) { transform:translateY(-7px) rotate(-45deg); }
.nav-cta { display:none; }
body.nav-lock { overflow:hidden; }

@media (max-width:1180px){
  [data-r~="headerbar"] { gap:20px !important; }
  [data-r~="nav"] { gap:18px !important; font-size:14px !important; }
}
@media (max-width:1040px){
  [data-r~="cta"] { display:none !important; }
  .nav-toggle { display:block; margin-left:auto; }
  [data-r~="nav"] {
    position:absolute; top:100%; left:0; right:0;
    flex-direction:column; align-items:stretch; gap:0 !important;
    margin-left:0 !important;
    background:#fff; border-bottom:1px solid #E3E9F2;
    box-shadow:0 16px 32px rgba(16,26,46,.12);
    max-height:0; overflow:hidden; opacity:0; visibility:hidden;
    transition:max-height .3s ease, opacity .25s ease;
    padding:0 28px;
  }
  header.nav-open [data-r~="nav"] {
    max-height:80vh; opacity:1; visibility:visible; overflow-y:auto;
    padding:8px 28px 20px;
  }
  [data-r~="nav"] a { width:100%; padding:14px 2px !important; border-bottom:1px solid #EEF3FB; font-size:15px !important; }
  [data-r~="nav"] a:last-child { border-bottom:none; }
  .nav-cta { display:block; margin-top:14px; text-align:center; background:#2F80F7; color:#fff !important; padding:14px !important; border-radius:11px; font-weight:600; }
  [data-r~="g5"] { grid-template-columns:repeat(3,1fr) !important; }
  [data-r~="g4"] { grid-template-columns:repeat(2,1fr) !important; }
  [data-r~="g3"] { grid-template-columns:repeat(2,1fr) !important; }
  [data-r~="bene"] > div { border-right:none !important; border-bottom:1px solid #E3E9F2; padding:28px 0 !important; }
}
@media (max-width:900px){
  [data-r~="sec"] { padding-top:64px !important; padding-bottom:64px !important; }
  h1 { font-size:38px !important; }
  body[data-page="home"] [data-r~="two"] { grid-template-columns:1fr !important; gap:44px !important; }
  body[data-page="home"] [data-r~="sec"] { padding-top:72px !important; padding-bottom:72px !important; }
  body[data-page="home"] [data-r~="demo"] { padding:40px !important; }
  body[data-page="home"] h1 { font-size:40px !important; }
  body[data-page="home"] h2 { font-size:32px !important; }
}
@media (max-width:640px){
  [data-r~="g5"], [data-r~="g4"], [data-r~="g3"], [data-r~="g2"] { grid-template-columns:1fr !important; }
  [data-r~="sec"] { padding-left:20px !important; padding-right:20px !important; }
  [data-r~="demo"] { padding:28px !important; }
  h1 { font-size:30px !important; }
  body[data-page="home"] h1 { font-size:32px !important; }
}

/* Estados de :hover / :focus (equivalentes aos atributos style-hover / style-focus do protótipo original).
   !important é necessário para vencer o style="" inline de cada elemento. */
.s1:hover{color:#2F80F7 !important}
.s2:hover{background:#1B5FCC !important;color:#fff !important}
.s3:hover{background:#4E97FF !important;color:#fff !important}
.s4:hover{background:rgba(255,255,255,.1) !important;color:#fff !important}
.s5:hover{border-color:#2F80F7 !important}
.s6:hover{background:rgba(255,255,255,.09) !important}
.s7:focus{border-color:#2F80F7 !important}
.s8:hover{background:#1B5FCC !important}
.s9:hover{background:#EEF3FB !important;color:#1B5FCC !important}
.s10:hover{color:#8CE0EB !important}
.s11:focus{border-color:#60C7D6 !important}
.s12:hover{background:#4E97FF !important}
.s13:hover{background:#1EBE5A !important;color:#fff !important}
