:root{
    --bg:#FFFFFF;
    --bg-alt:#FFFFFF;
    --paper:#FFFFFF;
    --ink:#190B3D;
    --ink-soft:#4A4260;
    --teal-900:#1B0850;
    --teal-800:#260A6E;
    --teal-700:#3B1E8C;
    --teal-600:#5B3FB0;
    --amber:#f7c81c;
    --amber-dark:#f7c81c;
    --squiggle:#1F6E60;
    --line:#DAD6E8;
    --line-dark:#2A1B5D;
    --shadow: 0 20px 50px -25px rgba(27,8,80,0.35);
    --radius: 2px;
  }

  *{box-sizing:border-box;}
  html{scroll-behavior:smooth;}
  html, body{overflow-x:hidden;}
  body{
    margin:0;
    background:var(--bg);
    color:var(--ink);
    font-family:'Montserrat', sans-serif;
    font-size:17px;
    line-height:1.6;
    -webkit-font-smoothing:antialiased;
  }
  body.site-menu-open{overflow:hidden;}
  h1,h2,h3,h4{
    font-family:'Montserrat', sans-serif;
    font-weight:800;
    text-transform:uppercase;
    letter-spacing:-0.01em;
    color:var(--teal-900);
    margin:0;
    line-height:1.04;
  }
  .eyebrow{
    font-family:'Montserrat', sans-serif;
    font-weight:600;
    font-size:12.5px;
    letter-spacing:0.16em;
    text-transform:uppercase;
    color:var(--amber-dark);
    font-weight:600;
  }
  p{margin:0;}
  a{color:inherit;}
  img,svg{display:block;max-width:100%;}
  .wrap{width:80%; max-width:1600px; margin:0 auto;}
  section{position:relative; scroll-margin-top:100px;}

  ::selection{background:var(--amber);color:var(--teal-900);}
  :focus-visible{outline:3px solid var(--amber-dark);outline-offset:3px;}

  @media (prefers-reduced-motion: reduce){
    *{animation-duration:0.01ms !important; transition-duration:0.01ms !important; scroll-behavior:auto !important;}
  }

  /* ---------- entrada da página ---------- */
  @keyframes page-enter{
    from{opacity:0;}
    to{opacity:1;}
  }
  body{animation:page-enter 0.6s cubic-bezier(.22,.61,.36,1) both;}

  /* ---------- transição entre páginas (View Transitions API) ----------
     Progressive enhancement: navegadores sem suporte (Firefox/Safari) simplesmente
     ignoram e navegam normal, sem erro. Hoje suportado em Chrome/Edge. */
  @view-transition{
    navigation:auto;
  }
  @keyframes view-fade-out{ to{opacity:0; transform:translateY(-10px) scale(0.99);} }
  @keyframes view-fade-in{ from{opacity:0; transform:translateY(14px) scale(0.99);} }
  ::view-transition-old(root){animation:0.32s cubic-bezier(.4,0,1,1) both view-fade-out;}
  ::view-transition-new(root){animation:0.45s cubic-bezier(.22,.61,.36,1) both view-fade-in;}

  /* ---------- reveal ---------- */
  .reveal{opacity:0; transform:translateY(18px); transition:opacity 0.7s ease, transform 0.7s ease;}
  .reveal.is-visible{opacity:1; transform:translateY(0);}
  /* Efeito cascata: cards no mesmo grid (mesma linha, mesma profundidade de scroll)
     entram em sequência em vez de todos ao mesmo tempo. */
  :is(.grid-cards, .timeline, .mvv, .socios, .split-cards, .presenca-stats, .home-solution-grid, .training-course-grid, .training-format-list, .training-steps, .service-solution-grid, .service-process-grid, .about-facts-grid, .about-timeline, .team-grid, .about-values) > .reveal:nth-child(2){transition-delay:90ms;}
  :is(.grid-cards, .timeline, .mvv, .socios, .split-cards, .presenca-stats, .home-solution-grid, .training-course-grid, .training-format-list, .training-steps, .service-solution-grid, .service-process-grid, .about-facts-grid, .about-timeline, .team-grid, .about-values) > .reveal:nth-child(3){transition-delay:180ms;}
  :is(.grid-cards, .timeline, .mvv, .socios, .split-cards, .presenca-stats, .home-solution-grid, .training-course-grid, .training-format-list, .training-steps, .service-solution-grid, .service-process-grid, .about-facts-grid, .about-timeline, .team-grid, .about-values) > .reveal:nth-child(4){transition-delay:270ms;}
  :is(.grid-cards, .timeline, .mvv, .socios, .split-cards, .presenca-stats, .home-solution-grid, .training-course-grid, .training-format-list, .training-steps, .service-solution-grid, .service-process-grid, .about-facts-grid, .about-timeline, .team-grid, .about-values) > .reveal:nth-child(5){transition-delay:360ms;}
  :is(.grid-cards, .timeline, .mvv, .socios, .split-cards, .presenca-stats, .home-solution-grid, .training-course-grid, .training-format-list, .training-steps, .service-solution-grid, .service-process-grid, .about-facts-grid, .about-timeline, .team-grid, .about-values) > .reveal:nth-child(6){transition-delay:450ms;}

  /* ---------- header ---------- */
  /* Topo em duas faixas: área institucional clara e navegação em barra sólida. */
  header{
    position:sticky; top:0; left:0; right:0; z-index:100;
    background:var(--bg);
    border-bottom:1px solid rgba(27,8,80,0.1);
    box-shadow:0 18px 50px -42px rgba(27,8,80,0.55);
  }
  header::after{
    content:"";
    position:absolute;
    left:0;
    right:0;
    bottom:0;
    height:72px;
    background:var(--teal-900);
    z-index:0;
  }
  header.is-scrolled{
    box-shadow:0 18px 46px -34px rgba(27,8,80,0.5);
  }
  .home-page header,
  .services-page header,
  .training-page header,
  .about-page header,
  .home-page header.is-scrolled,
  .services-page header.is-scrolled,
  .training-page header.is-scrolled,
  .about-page header.is-scrolled{
    background:var(--bg);
    border-bottom-color:rgba(27,8,80,0.1);
  }
  .nav{
    position:relative;
    z-index:1;
    display:grid;
    grid-template-columns:minmax(24px, 10vw) minmax(300px, 46vw) repeat(3, minmax(150px, 1fr));
    grid-template-rows:92px 72px;
    align-items:center;
    width:100%;
    max-width:none;
    margin:0 auto;
  }
  .nav::before{
    content:"";
    grid-column:3 / -1;
    grid-row:1;
    align-self:stretch;
    justify-self:stretch;
    background:
      linear-gradient(90deg,
        transparent calc(33.333% - 0.5px),
        rgba(255,255,255,0.14) 0 calc(33.333% + 0.5px),
        transparent 0 calc(66.666% - 0.5px),
        rgba(255,255,255,0.14) 0 calc(66.666% + 0.5px),
        transparent 0),
      linear-gradient(135deg, var(--teal-700), var(--teal-900));
    z-index:-1;
  }
  .logo{
    grid-column:2;
    grid-row:1;
    display:flex; align-items:center; gap:10px;
    font-family:'Montserrat', sans-serif;
    font-weight:800; font-size:26px; letter-spacing:0.02em;
    color:var(--teal-800); text-decoration:none;
    padding:10px 0;
  }
  .logo-img{height:68px; width:auto; display:block;}
  .logo span{
    font-family:'Montserrat', sans-serif;
    font-size:10px; font-weight:500; letter-spacing:0.12em;
    color:var(--ink-soft); text-transform:uppercase;
    align-self:flex-end; margin-bottom:2px;
  }
  .header-contact{
    grid-column:3;
    grid-row:1;
    align-self:stretch;
    justify-self:stretch;
    display:flex;
    align-items:center;
    gap:14px;
    justify-content:center;
    padding:0 30px;
    background:transparent;
    color:var(--bg);
    text-decoration:none;
    border-left:1px solid rgba(255,255,255,0.14);
  }
  .header-contact::before{
    content:"";
    width:30px;
    height:30px;
    flex:none;
    background:currentColor;
    -webkit-mask-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M6.6 10.8c1.5 3 3.6 5.1 6.6 6.6l2.2-2.2c.3-.3.8-.4 1.2-.3 1.3.4 2.6.6 4 .6.7 0 1.2.5 1.2 1.2v3.5c0 .7-.5 1.2-1.2 1.2C10.7 21.4 2.6 13.3 2.6 3.4c0-.7.5-1.2 1.2-1.2h3.5c.7 0 1.2.5 1.2 1.2 0 1.4.2 2.7.6 4 .1.4 0 .9-.3 1.2l-2.2 2.2Z'/%3E%3C/svg%3E");
    mask-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M6.6 10.8c1.5 3 3.6 5.1 6.6 6.6l2.2-2.2c.3-.3.8-.4 1.2-.3 1.3.4 2.6.6 4 .6.7 0 1.2.5 1.2 1.2v3.5c0 .7-.5 1.2-1.2 1.2C10.7 21.4 2.6 13.3 2.6 3.4c0-.7.5-1.2 1.2-1.2h3.5c.7 0 1.2.5 1.2 1.2 0 1.4.2 2.7.6 4 .1.4 0 .9-.3 1.2l-2.2 2.2Z'/%3E%3C/svg%3E");
    -webkit-mask-repeat:no-repeat;
    mask-repeat:no-repeat;
    -webkit-mask-position:center;
    mask-position:center;
    -webkit-mask-size:contain;
    mask-size:contain;
  }
  .header-contact span{
    font-size:11px;
    font-weight:700;
    letter-spacing:0.14em;
    text-transform:uppercase;
    color:var(--amber);
  }
  .header-contact strong{
    font-size:20px;
    line-height:1.2;
    letter-spacing:0;
    white-space:nowrap;
  }
  .nav-links{
    grid-column:1 / -1;
    grid-row:2;
    display:flex; align-items:center; gap:34px; list-style:none; margin:0; padding:0;
    padding-left:10vw;
    font-family:'Montserrat', sans-serif; font-weight:600; font-size:12px;
    letter-spacing:0.06em; text-transform:uppercase;
  }
  .nav-links a{text-decoration:none; color:var(--bg); position:relative; padding:25px 0 24px;}
  .nav-links a::after{
    content:""; position:absolute; left:0; bottom:0; width:0; height:3px; background:var(--amber-dark);
    transition:width 0.25s ease;
  }
  .nav-links a:hover::after{width:100%;}
  .has-dropdown{position:relative;}
  /* Ponte invisível cobrindo o vão entre o link e o menu (mesma posição/largura do
     .dropdown-menu) — sem ela, o mouse "sai" do elemento em hover ao descer até o menu,
     e o menu já fecha (visibility:hidden é instantâneo) antes do cursor chegar lá. */
  .has-dropdown::after{
    content:""; position:absolute; top:100%; left:50%; transform:translateX(-50%);
    width:230px; height:14px;
  }
  .dropdown-toggle{display:inline-flex; align-items:center; gap:5px;}
  .dropdown-caret{width:9px; height:9px; flex:none; transition:transform 0.2s ease;}
  .has-dropdown:hover .dropdown-caret, .has-dropdown.is-open .dropdown-caret{transform:rotate(180deg);}
  .dropdown-menu{
    position:absolute; top:calc(100% + 14px); left:50%; transform:translate(-50%, -6px);
    background:var(--paper); border:1px solid var(--line); border-radius:12px; box-shadow:var(--shadow);
    padding:10px; min-width:230px; list-style:none; margin:0;
    opacity:0; visibility:hidden; transition:opacity 0.2s ease, transform 0.2s ease;
    z-index:200;
  }
  .has-dropdown:hover .dropdown-menu, .has-dropdown.is-open .dropdown-menu{
    opacity:1; visibility:visible; transform:translate(-50%, 0);
  }
  .dropdown-menu li{list-style:none;}
  .dropdown-menu a{
    display:block; padding:11px 14px; border-radius:7px; text-transform:none; letter-spacing:0;
    font-size:13.5px; font-weight:600; color:var(--ink); white-space:nowrap;
    transition:background 0.15s ease, color 0.15s ease;
  }
  .dropdown-menu a::after{display:none;}
  .dropdown-menu a:hover{background:rgba(247,200,28,0.16); color:var(--teal-900);}
  .nav-cta{
    font-family:'Montserrat', sans-serif; font-weight:700; font-size:12px; letter-spacing:0.06em; text-transform:uppercase;
    background:var(--teal-900); color:var(--bg); text-decoration:none;
    padding:11px 20px; border:1px solid var(--teal-900); border-radius:6px; white-space:nowrap;
    transition:background 0.2s ease, color 0.2s ease, border-color 0.2s ease;
  }
  .nav-cta:hover{background:var(--amber-dark); border-color:var(--amber-dark); color:var(--teal-900);}
  .nav-actions{
    grid-column:4 / -1;
    grid-row:1;
    align-self:stretch;
    justify-self:stretch;
    display:grid;
    grid-template-columns:repeat(2, minmax(0, 1fr));
    align-items:stretch;
    gap:0;
  }
  .internal-card{
    position:relative;
    display:flex;
    align-items:center;
    justify-content:center;
    min-width:0;
    padding:18px 34px 18px 64px;
    border-left:1px solid rgba(255,255,255,0.14);
    color:var(--bg);
    font-family:'Montserrat', sans-serif;
    font-size:12px;
    font-weight:700;
    letter-spacing:0.06em;
    line-height:1.2;
    text-align:left;
    text-decoration:none;
    text-transform:uppercase;
    transition:background 0.2s ease, color 0.2s ease;
  }
  .internal-card::before{
    content:"";
    position:absolute;
    left:28px;
    top:50%;
    width:24px;
    height:24px;
    background:currentColor;
    transform:translateY(-50%);
    -webkit-mask-repeat:no-repeat;
    mask-repeat:no-repeat;
    -webkit-mask-position:center;
    mask-position:center;
    -webkit-mask-size:contain;
    mask-size:contain;
  }
  .internal-card-client::before{
    -webkit-mask-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M12 12.2a5.1 5.1 0 1 0 0-10.2 5.1 5.1 0 0 0 0 10.2Zm0 2.2c-4.5 0-8.3 2.4-8.3 5.4 0 1.2 1 2.2 2.2 2.2h12.2c1.2 0 2.2-1 2.2-2.2 0-3-3.8-5.4-8.3-5.4Z'/%3E%3C/svg%3E");
    mask-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M12 12.2a5.1 5.1 0 1 0 0-10.2 5.1 5.1 0 0 0 0 10.2Zm0 2.2c-4.5 0-8.3 2.4-8.3 5.4 0 1.2 1 2.2 2.2 2.2h12.2c1.2 0 2.2-1 2.2-2.2 0-3-3.8-5.4-8.3-5.4Z'/%3E%3C/svg%3E");
  }
  .internal-card-student::before{
    -webkit-mask-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='m12 3 10 5.4-10 5.4L2 8.4 12 3Zm-6.4 8.6 6.4 3.5 6.4-3.5v4.1c0 2-2.9 4.3-6.4 4.3s-6.4-2.3-6.4-4.3v-4.1Z'/%3E%3C/svg%3E");
    mask-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='m12 3 10 5.4-10 5.4L2 8.4 12 3Zm-6.4 8.6 6.4 3.5 6.4-3.5v4.1c0 2-2.9 4.3-6.4 4.3s-6.4-2.3-6.4-4.3v-4.1Z'/%3E%3C/svg%3E");
  }
  .internal-card:hover,
  .internal-card:focus-visible{
    background:var(--amber-dark);
    color:var(--teal-900);
  }
  .internal-area{
    align-self:stretch;
    justify-self:stretch;
    width:100%;
    position:relative;
    display:flex;
    align-items:center;
  }
  .internal-area::before{
    content:"";
    position:absolute;
    top:100%;
    left:50%;
    transform:translateX(-50%);
    width:230px;
    height:14px;
  }
  .internal-area-toggle{
    position:relative;
    min-width:198px;
    width:100%;
    min-height:100%;
    border:0;
    border-radius:0;
    background:transparent;
    color:var(--bg);
    cursor:pointer;
    font-family:'Montserrat', sans-serif;
    font-size:12px;
    font-weight:700;
    letter-spacing:0.06em;
    line-height:1.2;
    padding:18px 46px 18px 62px;
    text-align:left;
    text-transform:uppercase;
    transition:background 0.2s ease, color 0.2s ease, border-color 0.2s ease;
  }
  .internal-area-toggle::before{
    content:"";
    position:absolute;
    left:28px;
    top:50%;
    width:24px;
    height:24px;
    background:currentColor;
    transform:translateY(-50%);
    -webkit-mask-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M12 12.2a5.1 5.1 0 1 0 0-10.2 5.1 5.1 0 0 0 0 10.2Zm0 2.2c-4.5 0-8.3 2.4-8.3 5.4 0 1.2 1 2.2 2.2 2.2h12.2c1.2 0 2.2-1 2.2-2.2 0-3-3.8-5.4-8.3-5.4Z'/%3E%3C/svg%3E");
    mask-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M12 12.2a5.1 5.1 0 1 0 0-10.2 5.1 5.1 0 0 0 0 10.2Zm0 2.2c-4.5 0-8.3 2.4-8.3 5.4 0 1.2 1 2.2 2.2 2.2h12.2c1.2 0 2.2-1 2.2-2.2 0-3-3.8-5.4-8.3-5.4Z'/%3E%3C/svg%3E");
    -webkit-mask-repeat:no-repeat;
    mask-repeat:no-repeat;
    -webkit-mask-position:center;
    mask-position:center;
    -webkit-mask-size:contain;
    mask-size:contain;
  }
  .internal-area-toggle::after{
    content:"";
    position:absolute;
    right:18px;
    top:50%;
    width:8px;
    height:8px;
    border-right:2px solid currentColor;
    border-bottom:2px solid currentColor;
    transform:translateY(-65%) rotate(45deg);
    pointer-events:none;
    transition:transform 0.2s ease;
  }
  .internal-area:hover .internal-area-toggle,
  .internal-area:focus-within .internal-area-toggle,
  .internal-area.is-open .internal-area-toggle{
    background:var(--amber-dark);
    border-color:transparent;
    color:var(--teal-900);
  }
  .internal-area:hover .internal-area-toggle::after,
  .internal-area:focus-within .internal-area-toggle::after,
  .internal-area.is-open .internal-area-toggle::after{
    transform:translateY(-35%) rotate(225deg);
  }
  .internal-area-menu{
    position:absolute;
    top:calc(100% + 14px);
    left:50%;
    transform:translate(-50%, -6px);
    min-width:186px;
    margin:0;
    padding:10px;
    list-style:none;
    background:var(--paper);
    border:1px solid var(--line);
    border-radius:12px;
    box-shadow:var(--shadow);
    opacity:0;
    visibility:hidden;
    transition:opacity 0.2s ease, transform 0.2s ease;
    z-index:200;
  }
  .internal-area:hover .internal-area-menu,
  .internal-area:focus-within .internal-area-menu,
  .internal-area.is-open .internal-area-menu{
    opacity:1;
    visibility:visible;
    transform:translate(-50%, 0);
  }
  .internal-area-menu li{list-style:none;}
  .internal-area-menu a{
    display:block;
    padding:11px 14px;
    border-radius:7px;
    color:var(--teal-900);
    font-family:'Montserrat', sans-serif;
    font-size:13.5px;
    font-weight:600;
    letter-spacing:0;
    text-decoration:none;
    text-transform:none;
    white-space:nowrap;
    transition:background 0.15s ease, color 0.15s ease;
  }
  .internal-area-menu a:hover,
  .internal-area-menu a:focus-visible{
    background:rgba(247,200,28,0.16);
    color:var(--teal-900);
  }
  .internal-area-toggle:focus-visible{
    outline:3px solid var(--amber-dark);
    outline-offset:3px;
  }
  .burger{display:none; background:none; border:none; cursor:pointer; padding:6px;}
  .burger span{display:block; width:24px; height:2px; background:var(--teal-900); margin:5px 0;}

  /* ---------- hero (carrossel de imagens de fundo) ---------- */
  .hero{
    position:relative; padding:184px 0 110px; overflow:hidden; background:var(--bg);
  }
  /* Cada .hero-slide troca a imagem via background-image inline (veja o HTML) — o gradiente
     aqui é só o placeholder visível enquanto a foto de cada slide ainda não existe: se o
     arquivo não for encontrado, essa camada abaixo continua aparecendo por trás. */
  .hero-slides{position:absolute; inset:0; z-index:0;}
  .hero-slide{
    position:absolute; inset:0; opacity:0; transition:opacity 1.2s ease;
    background-color:var(--bg);
    background-image:
      radial-gradient(1100px 500px at 85% -10%, rgba(247,200,28,0.14), transparent 60%);
    background-size:cover; background-position:center;
  }
  .hero-slide.is-active{opacity:1;}
  /* Vidro branco sobre a imagem: opaco perto do texto (esquerda), some perto da imagem
     (direita) — protege a legibilidade do texto sem escurecer a foto inteira. */
  .hero-overlay{
    position:absolute; inset:0; z-index:1;
    background:linear-gradient(100deg, var(--bg) 0%, var(--bg) 38%, rgba(255,255,255,0.55) 62%, rgba(255,255,255,0.08) 85%);
  }
  .hero-grid{
    position:relative; z-index:2;
    display:grid; grid-template-columns:1.15fr 0.85fr; gap:56px; align-items:center;
  }
  .hero-dots{
    position:relative; z-index:2; display:flex; gap:10px; margin-top:56px;
  }
  .hero-dot{
    width:10px; height:10px; border-radius:50%; padding:0; border:1px solid var(--teal-700);
    background:transparent; cursor:pointer; transition:background 0.2s ease, width 0.2s ease;
  }
  .hero-dot.is-active{background:var(--teal-900); width:26px; border-radius:5px;}
  .hero-arrow{
    position:absolute; top:50%; z-index:2; transform:translateY(-50%);
    width:40px; height:40px; border-radius:50%; border:1px solid var(--line);
    background:rgba(255,255,255,0.85); color:var(--teal-900); cursor:pointer;
    display:flex; align-items:center; justify-content:center;
  }
  .hero-arrow:hover{background:var(--bg);}
  .hero-arrow-prev{left:16px;}
  .hero-arrow-next{right:16px;}
  .hero h1{font-size:clamp(32px, 4.1vw, 50px); letter-spacing:0.005em; line-height:1.08;}
  .hero h1 em, h1 em, h2 em, h3 em, h4 em{
    font-style:normal;
    color:inherit;
    background:linear-gradient(180deg, transparent 18%, rgba(247,200,28,0.86) 18%, rgba(247,200,28,0.86) 84%, transparent 84%);
    padding:0 0.03em;
    box-decoration-break:clone;
    -webkit-box-decoration-break:clone;
  }
  .hero-sub{
    margin-top:26px; max-width:46ch; font-size:18px; color:var(--ink-soft);
  }
  .hero-eyebrow{margin-bottom:10px;}
  .hero-ctas{display:flex; gap:16px; margin-top:38px; flex-wrap:wrap;}
  .btn{
    font-family:'Montserrat', sans-serif; font-weight:700; font-size:13px; letter-spacing:0.06em; text-transform:uppercase;
    text-decoration:none; padding:16px 26px; display:inline-flex; align-items:center; gap:10px;
    border:1px solid var(--teal-900); border-radius:6px; transition:all 0.2s ease;
  }
  .btn:hover{transform:translateY(-2px);}
  .btn:active{transform:translateY(0) scale(0.97);}
  .btn-primary{background:var(--teal-900); color:var(--bg);}
  .btn-primary:hover{background:var(--amber-dark); border-color:var(--amber-dark); color:var(--teal-900);}
  .btn-ghost{background:transparent; color:var(--teal-900);}
  .btn-ghost:hover{background:var(--amber); border-color:var(--amber); color:var(--teal-900);}

  /* stamp cluster (signature element) */
  .stamps{position:relative; height:420px;}
  .stamp{
    position:absolute; display:flex; flex-direction:column; align-items:center; justify-content:center;
    text-align:center; border-radius:50%; border:2px dashed var(--teal-700);
    background:var(--paper); box-shadow:var(--shadow); transition:transform 0.35s ease;
  }
  .stamp:hover{transform:rotate(0deg) scale(1.04);}
  .stamp .num{font-family:'Montserrat', sans-serif; font-weight:800; color:var(--teal-900); line-height:0.9;}
  .stamp .lbl{font-family:'Montserrat', sans-serif; font-weight:600; letter-spacing:0.08em; text-transform:uppercase; color:var(--ink-soft);}
  .stamp-1{width:230px; height:230px; top:0; right:40px; transform:rotate(-6deg);}
  .stamp-1 .num{font-size:64px;}
  .stamp-1 .lbl{font-size:11px; margin-top:6px;}
  .stamp-2{width:170px; height:170px; top:200px; right:250px; transform:rotate(8deg); border-color:var(--amber-dark);}
  .stamp-2 .num{font-size:38px; color:var(--amber-dark);}
  .stamp-2 .lbl{font-size:10px;}
  .stamp-3{width:150px; height:150px; top:270px; right:10px; transform:rotate(-4deg);}
  .stamp-3 .num{font-size:30px;}
  .stamp-3 .lbl{font-size:9.5px;}

  /* ---------- stat bar ---------- */
  .statbar{background:var(--teal-900); color:var(--bg); padding:34px 0;}
  .statbar .wrap{display:grid; grid-template-columns:repeat(4,1fr); gap:24px;}
  .stat b{display:block; font-family:'Montserrat', sans-serif; font-weight:800; font-size:34px; color:var(--amber);}
  .stat span{font-family:'Montserrat', sans-serif; font-weight:600; font-size:11.5px; letter-spacing:0.08em; text-transform:uppercase; color:#C2BBDE;}

  /* ---------- section heads ---------- */
  .section{padding:110px 0;}
  .section-alt{background:var(--bg-alt);}
  .section-head{max-width:640px; margin-bottom:56px;}
  .section-head .eyebrow::after{
    content:""; display:block; width:58px; height:8px; margin-top:8px; opacity:0.82;
    background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 120 20'%3E%3Cpath d='M0,13 L14,7 L26,15 L40,6 L54,14 L68,5 L82,13 L96,7 L110,15 L120,10' fill='none' stroke='%23f7c81c' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") no-repeat left center/contain;
  }
  .section-head h2{font-size:clamp(32px,4vw,46px); margin-top:14px;}
  .section-head p{margin-top:18px; color:var(--ink-soft); font-size:17px;}

  /* ---------- timeline (historia) ---------- */
  #servicos .section-head, #treinamentos .section-head, #servicos-treinamentos .section-head{max-width:640px; margin:0 auto 56px; text-align:center;}
  #servicos .section-head .eyebrow::after, #treinamentos .section-head .eyebrow::after, #servicos-treinamentos .section-head .eyebrow::after{margin-left:auto; margin-right:auto;}
  #servicos .section-head p, #treinamentos .section-head p, #servicos-treinamentos .section-head p{margin-left:auto; margin-right:auto;}
  #lista-servicos,
  .training-page #cursos{
    padding-top:64px;
  }
  #lista-servicos .section-head{
    max-width:920px;
    margin:0 auto 56px;
    text-align:center;
  }
  #lista-servicos .section-head .eyebrow::after{
    margin-left:auto;
    margin-right:auto;
  }
  .training-page #cursos .section-head{
    max-width:920px;
    margin:0 auto 56px;
    text-align:center;
  }
  .training-page #cursos .section-head .eyebrow::after{
    margin-left:auto;
    margin-right:auto;
  }

  .timeline{
    border-top:none; display:grid; grid-template-columns:repeat(3,1fr); gap:32px; align-items:start;
  }
  .tl-item{
    position:relative; text-align:center; display:flex; flex-direction:column; align-items:center;
    padding:0 12px; border-bottom:none;
  }
  .tl-item:not(:last-child)::after{
    content:"→"; position:absolute; top:24px; right:-28px;
    font-size:24px; font-weight:700; color:var(--line-dark); opacity:0.35;
  }
  .tl-year{
    width:76px; height:76px; border-radius:50%; flex:none;
    background:var(--teal-900); color:var(--amber);
    display:flex; align-items:center; justify-content:center;
    font-family:'Montserrat', sans-serif; font-weight:800; font-size:19px;
    margin-bottom:22px; box-shadow:var(--shadow);
  }
  .tl-item h3{font-size:20px; margin-bottom:10px;}
  .tl-item p{color:var(--ink-soft); max-width:34ch; font-size:15px;}

  /* ---------- socios ---------- */
  .socios{display:grid; grid-template-columns:1fr 1fr; gap:40px; margin-top:20px;}
  .socio-card{
    background:var(--paper); border:1px solid var(--line); padding:36px; box-shadow:var(--shadow);
    transition:transform 0.25s ease, box-shadow 0.25s ease;
  }
  .socio-card:hover{transform:translateY(-4px); box-shadow:0 26px 55px -25px rgba(27,8,80,0.4);}
  .socio-card .role{margin-bottom:14px;}
  .socio-card h3{font-size:26px; margin-bottom:16px;}
  .socio-card ul{margin:0; padding-left:18px; color:var(--ink-soft); font-size:15.5px;}
  .socio-card li{margin-bottom:6px;}

  /* ---------- mvv ---------- */
  .mvv{display:grid; grid-template-columns:repeat(3,1fr); gap:1px; background:var(--line); border:1px solid var(--line); margin-top:10px;}
  .mvv-card{background:var(--paper); padding:40px 32px;}
  .mvv-card .eyebrow{margin-bottom:16px;}
  .mvv-card h3{font-size:24px; margin-bottom:16px;}
  .mvv-card p{color:var(--ink-soft); font-size:15.5px;}

  /* ---------- service / training grid (selo cards) ---------- */
  .grid-cards{display:grid; grid-template-columns:repeat(3,1fr); gap:24px; margin-top:10px;}
  #servicos .grid-cards > .selo-card:last-child{grid-column:2;}
  .selo-card{
    background:var(--paper); border:1px solid var(--line); padding:30px 26px 26px;
    display:flex; gap:20px; align-items:flex-start; transition:border-color 0.2s ease, transform 0.2s ease;
  }
  .selo-card:hover{border-color:var(--amber-dark); transform:translateY(-3px);}
  .selo-badge{
    flex:none; width:64px; height:64px; border-radius:50%; border:2px dashed var(--teal-700);
    display:flex; align-items:center; justify-content:center; text-align:center;
  }
  .selo-badge span{font-family:'Montserrat', sans-serif; font-size:10.5px; font-weight:600; color:var(--teal-800); line-height:1.15;}
  .selo-card h4{font-family:'Montserrat', sans-serif; font-weight:800; text-transform:uppercase; font-size:19px; color:var(--teal-900); margin-bottom:8px; line-height:1.05;}
  .selo-card p{font-size:14.5px; color:var(--ink-soft);}
  .selo-card a.saiba{
    display:inline-block; margin-top:10px; font-family:'Montserrat', sans-serif; font-size:11.5px;
    letter-spacing:0.06em; text-transform:uppercase; color:var(--amber-dark); text-decoration:none; border-bottom:1px solid var(--amber-dark);
  }

  /* exames pills */
  .pills{display:flex; flex-wrap:wrap; gap:12px; margin-top:36px;}
  .pill{
    font-family:'Montserrat', sans-serif; font-weight:600; font-size:12.5px; letter-spacing:0.03em;
    padding:11px 20px; border:1px solid var(--teal-700); color:var(--teal-800); background:var(--paper);
  }

  /* ---------- presença ---------- */
  .presenca{background:var(--teal-900); color:var(--bg); position:relative; overflow:hidden;}
  .presenca .wrap{display:grid; grid-template-columns:1fr 1fr; gap:60px; align-items:center;}
  .presenca .eyebrow{color:var(--amber);}
  .presenca h2{color:var(--bg); font-size:clamp(30px,4vw,44px); margin-top:14px;}
  .presenca p{color:#C2BBDE; margin-top:20px; max-width:48ch; font-size:16.5px;}
  .presenca-stats{display:grid; grid-template-columns:1fr 1fr; gap:1px; background:rgba(255,255,255,0.15); border:1px solid rgba(255,255,255,0.15);}
  .p-stat{background:var(--teal-800); padding:34px 26px;}
  .p-stat b{display:block; font-family:'Montserrat', sans-serif; font-weight:800; font-size:42px; color:var(--amber);}
  .p-stat span{font-family:'Montserrat', sans-serif; font-weight:600; font-size:11.5px; letter-spacing:0.06em; text-transform:uppercase; color:#C2BBDE;}

  /* ---------- localizador de clínicas ---------- */
  .finder{
    background:
      linear-gradient(90deg, rgba(27,8,80,0.96) 0%, rgba(27,8,80,0.88) 42%, rgba(27,8,80,0.72) 100%),
      var(--teal-900);
    color:var(--bg);
    position:relative;
    overflow:hidden;
    padding:118px 0;
  }
  .finder:before{
    content:"";
    position:absolute;
    inset:0;
    background:linear-gradient(180deg, rgba(255,255,255,0.045), transparent 32%, rgba(0,0,0,0.14));
    pointer-events:none;
  }
  .finder .wrap{
    position:relative;
    display:grid;
    grid-template-columns:minmax(340px,0.78fr) minmax(520px,1.22fr);
    gap:64px;
    align-items:center;
  }
  .finder-panel{padding:0;}
  .finder .eyebrow{color:var(--amber);}
  .finder h2{
    color:var(--bg);
    font-size:clamp(34px,4.6vw,62px);
    line-height:0.96;
    margin-top:14px;
    max-width:9.5ch;
  }
  .finder-panel p.lead{color:#D8D1EF; margin-top:22px; max-width:42ch; font-size:17px;}
  .finder-filters{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:12px;
    margin-top:34px;
  }
  .finder-field{display:flex; flex-direction:column; gap:8px; min-width:0;}
  .finder-field label{
    font-family:'Montserrat', sans-serif;
    font-weight:700;
    font-size:11.5px;
    letter-spacing:0.08em;
    text-transform:uppercase;
    color:var(--amber);
  }
  .finder-field select{
    width:100%;
    font-family:'Montserrat', sans-serif;
    font-weight:700;
    font-size:15px;
    color:var(--bg);
    background:rgba(255,255,255,0.1);
    border:1px solid rgba(255,255,255,0.26);
    border-radius:6px;
    padding:16px 44px 16px 16px;
    appearance:none;
    background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23f7c81c' stroke-width='2.5'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");
    background-repeat:no-repeat;
    background-position:right 14px center;
    background-size:16px;
    cursor:pointer;
  }
  .finder-field select:focus{outline:2px solid var(--amber); outline-offset:2px;}
  .finder-summary{
    margin-top:18px;
    padding:22px 0 0;
    border-top:1px solid rgba(255,255,255,0.16);
  }
  .finder-summary .count{
    font-family:'Montserrat', sans-serif;
    font-weight:800;
    font-size:15px;
    letter-spacing:0.03em;
    text-transform:uppercase;
    color:var(--amber);
    margin-bottom:14px;
    display:block;
  }
  .finder-clinic{padding:0;}
  .finder-clinic + .finder-clinic{margin-top:14px;}
  .finder-clinic h4{font-size:22px; text-transform:none; color:var(--bg); font-weight:800; margin-bottom:8px;}
  .finder-clinic p{font-size:15.5px; color:#D8D1EF; line-height:1.58; max-width:44ch;}
  .finder-clinic a{color:var(--amber); text-decoration:none; font-weight:700;}
  .finder-clinic a:hover{text-decoration:underline;}
  .finder-actions{
    display:flex;
    gap:12px;
    flex-wrap:wrap;
    margin-top:28px;
  }
  .finder-actions .btn{
    justify-content:center;
    padding:15px 20px;
  }
  .finder-actions .btn-primary{
    background:var(--amber);
    border-color:var(--amber);
    color:var(--teal-900);
  }
  .finder-actions .btn-primary:hover{
    background:var(--bg);
    border-color:var(--bg);
  }
  .finder-actions .btn-ghost{
    border-color:rgba(255,255,255,0.34);
    color:var(--bg);
  }
  .finder-actions .btn-ghost:hover{
    background:rgba(255,255,255,0.1);
    border-color:rgba(255,255,255,0.55);
    color:var(--bg);
  }
  .unit-showcase{min-width:0;}
  .unit-photo-main{
    position:relative;
    margin:0;
    min-height:500px;
    border-radius:8px;
    overflow:hidden;
    background:var(--teal-800);
    box-shadow:0 32px 80px -42px rgba(0,0,0,0.8);
  }
  .unit-photo-main:after{
    content:"";
    position:absolute;
    inset:0;
    background:linear-gradient(180deg, transparent 42%, rgba(27,8,80,0.82));
    pointer-events:none;
  }
  .unit-photo-main img,
  .unit-photo-main iframe{
    width:100%;
    height:100%;
    min-height:500px;
    display:block;
  }
  .unit-photo-main img{
    object-fit:cover;
    filter:saturate(1.05) contrast(1.02);
  }
  .unit-photo-main iframe{border:0; background:var(--teal-800);}
  .unit-photo-main figcaption{
    position:absolute;
    left:28px;
    right:28px;
    bottom:26px;
    z-index:1;
    display:flex;
    align-items:flex-end;
    justify-content:space-between;
    gap:22px;
  }
  .unit-photo-main span{
    font-family:'Montserrat', sans-serif;
    font-weight:800;
    font-size:clamp(24px,2.8vw,42px);
    line-height:1;
    color:var(--bg);
    text-transform:uppercase;
  }
  .unit-photo-main small{
    flex:none;
    font-family:'Montserrat', sans-serif;
    font-weight:800;
    font-size:12px;
    letter-spacing:0.08em;
    color:var(--teal-900);
    text-transform:uppercase;
    background:var(--amber);
    border-radius:999px;
    padding:10px 14px;
  }
  .unit-photo-strip{
    display:grid;
    grid-auto-flow:column;
    grid-auto-columns:minmax(150px,1fr);
    gap:10px;
    margin-top:12px;
    padding-bottom:8px;
    overflow-x:auto;
    overscroll-behavior-inline:contain;
    scrollbar-color:var(--amber) rgba(255,255,255,0.12);
    scrollbar-width:thin;
  }
  .unit-photo-strip[hidden]{display:none;}
  .unit-photo-strip::-webkit-scrollbar{
    height:8px;
  }
  .unit-photo-strip::-webkit-scrollbar-track{
    background:rgba(255,255,255,0.12);
    border-radius:999px;
  }
  .unit-photo-strip::-webkit-scrollbar-thumb{
    background:var(--amber);
    border-radius:999px;
  }
  .unit-thumb{
    position:relative;
    min-height:94px;
    border:1px solid rgba(255,255,255,0.16);
    border-radius:6px;
    overflow:hidden;
    padding:0;
    background:
      radial-gradient(circle at 74% 26%, rgba(247,200,28,0.24), transparent 26%),
      linear-gradient(135deg, rgba(27,8,80,0.98), rgba(54,24,132,0.9));
    cursor:pointer;
    isolation:isolate;
    box-shadow:inset 0 0 0 1px rgba(255,255,255,0.04);
  }
  .unit-thumb-location{
    position:absolute;
    inset:0;
    display:block;
    opacity:0.84;
    transition:opacity 0.2s ease, transform 0.2s ease;
  }
  .unit-thumb-location:before{
    content:"";
    position:absolute;
    inset:-20%;
    background:
      linear-gradient(28deg, transparent 0 35%, rgba(255,255,255,0.13) 36% 37%, transparent 38% 100%),
      linear-gradient(150deg, transparent 0 44%, rgba(255,255,255,0.1) 45% 46%, transparent 47% 100%),
      linear-gradient(90deg, rgba(255,255,255,0.08) 1px, transparent 1px),
      linear-gradient(0deg, rgba(255,255,255,0.08) 1px, transparent 1px);
    background-size:auto, auto, 32px 32px, 32px 32px;
    transform:translate3d(0,0,0) rotate(-3deg);
    animation:unitMapDrift 9s ease-in-out infinite alternate;
  }
  .unit-thumb-location:after{
    content:"";
    position:absolute;
    left:-14%;
    right:-12%;
    top:56%;
    height:4px;
    border-radius:999px;
    background:linear-gradient(90deg, transparent, var(--amber) 18%, #fff1a8 52%, var(--amber) 82%, transparent);
    box-shadow:0 0 18px rgba(247,200,28,0.4);
    transform:rotate(-10deg);
    animation:unitRouteGlow 2.8s ease-in-out infinite;
  }
  .unit-location-pin{
    position:absolute;
    left:50%;
    top:37%;
    z-index:1;
    width:24px;
    height:24px;
    border-radius:50% 50% 50% 0;
    background:var(--amber);
    box-shadow:0 8px 22px rgba(247,200,28,0.36);
    transform:translate(-50%,-50%) rotate(-45deg);
    animation:unitPinBounce 1.9s ease-in-out infinite;
  }
  .unit-location-pin:after{
    content:"";
    position:absolute;
    inset:7px;
    border-radius:50%;
    background:var(--teal-900);
  }
  .unit-location-pulse{
    position:absolute;
    left:50%;
    top:62%;
    width:28px;
    height:10px;
    border-radius:50%;
    background:rgba(247,200,28,0.28);
    transform:translate(-50%,-50%);
    animation:unitPulse 1.9s ease-out infinite;
  }
  .unit-thumb-label{
    position:absolute;
    left:12px;
    right:12px;
    bottom:11px;
    z-index:1;
    font-family:'Montserrat', sans-serif;
    font-weight:800;
    font-size:12px;
    letter-spacing:0.04em;
    color:var(--bg);
    text-transform:uppercase;
    text-align:left;
    text-shadow:0 2px 10px rgba(0,0,0,0.45);
  }
  .unit-thumb.is-active,
  .unit-thumb:hover{border-color:var(--amber);}
  .unit-thumb.is-active .unit-thumb-location,
  .unit-thumb:hover .unit-thumb-location{opacity:1; transform:scale(1.04);}
  @keyframes unitMapDrift{
    from{transform:translate3d(-3px,-2px,0) rotate(-3deg);}
    to{transform:translate3d(4px,3px,0) rotate(-3deg);}
  }
  @keyframes unitRouteGlow{
    0%, 100%{opacity:0.58;}
    50%{opacity:1;}
  }
  @keyframes unitPinBounce{
    0%, 100%{transform:translate(-50%,-50%) rotate(-45deg);}
    50%{transform:translate(-50%,-62%) rotate(-45deg);}
  }
  @keyframes unitPulse{
    0%{opacity:0.6; transform:translate(-50%,-50%) scale(0.62);}
    100%{opacity:0; transform:translate(-50%,-50%) scale(1.55);}
  }
  @media (prefers-reduced-motion:reduce){
    .unit-thumb-location:before,
    .unit-thumb-location:after,
    .unit-location-pin,
    .unit-location-pulse{animation:none;}
  }
  .finder-map-choice{
    appearance:none;
    border:0;
    background:none;
    padding:0;
    margin-top:4px;
    color:var(--amber);
    font:inherit;
    font-weight:800;
    cursor:pointer;
    text-align:left;
  }
  .finder-map-choice:hover,
  .finder-map-choice.is-active{text-decoration:underline;}
  @media (max-width:980px){
    .finder{padding:92px 0;}
    .finder .wrap{grid-template-columns:1fr; gap:42px;}
    .finder h2{max-width:12ch;}
    .unit-photo-main,
    .unit-photo-main img,
    .unit-photo-main iframe{min-height:420px;}
  }
  @media (max-width:640px){
    .finder-filters{grid-template-columns:1fr;}
    .finder-actions .btn{width:100%;}
    .unit-showcase{display:none;}
    .unit-photo-main,
    .unit-photo-main img,
    .unit-photo-main iframe{min-height:360px;}
    .unit-photo-main figcaption{left:18px; right:18px; bottom:18px; flex-direction:column; align-items:flex-start;}
    .unit-photo-strip{grid-auto-columns:minmax(140px,74%);}
  }

  /* ---------- final cta ---------- */
  /* ---------- split cards (servicos/treinamentos teaser) ---------- */
  .split-cards{display:grid; grid-template-columns:1fr 1fr; gap:28px;}
  .split-card{
    position:relative; display:flex; flex-direction:column; align-items:center; text-align:center;
    background:radial-gradient(600px 300px at 50% 0%, rgba(255,212,0,0.12), transparent 60%), var(--teal-900);
    border:1px solid var(--line-dark); padding:52px 28px 40px; text-decoration:none; color:var(--bg);
    transition:transform 0.25s ease, box-shadow 0.25s ease;
  }
  .split-card:hover{transform:translateY(-4px); box-shadow:var(--shadow);}
  .split-icon-badge{
    width:120px; height:120px; border-radius:50%; border:2px dashed rgba(255,212,0,0.55); flex:none;
    display:flex; align-items:center; justify-content:center; margin-bottom:26px;
  }
  .split-icon-badge svg{width:58px; height:58px;}
  .split-card h3{color:var(--bg); font-size:24px; margin-bottom:12px;}
  .split-card p{color:#C2BBDE; font-size:15px; max-width:34ch; margin-bottom:30px;}
  .split-btn{
    display:inline-flex; align-items:center; gap:8px; background:var(--amber); color:var(--teal-900);
    font-family:'Montserrat', sans-serif; font-weight:700; font-size:12.5px; letter-spacing:0.06em; text-transform:uppercase;
    padding:14px 28px; border-radius:999px; transition:background 0.2s ease;
  }
  .split-card:hover .split-btn{background:var(--bg);}

  /* ---------- page banner (subpaginas) ---------- */
  .page-banner{
    padding:184px 0 70px; text-align:center;
    background:radial-gradient(1100px 500px at 85% -10%, rgba(247,200,28,0.14), transparent 60%), var(--bg);
  }
  .page-banner .eyebrow::after{margin-left:auto; margin-right:auto;}
  .page-banner h1{font-size:clamp(32px,4.2vw,48px);}
  .page-banner p{margin-top:18px; max-width:56ch; margin-left:auto; margin-right:auto; color:var(--ink-soft); font-size:17px;}
  .form-page .page-banner{
    padding-top:54px;
  }
  @media (max-width: 680px){
    .form-page .page-banner{
      padding-top:40px;
    }
  }
  .privacy-banner{
    padding-bottom:86px;
  }
  .privacy-section{
    padding:84px 0 96px;
    background:var(--bg);
  }
  .privacy-layout{
    display:grid;
    grid-template-columns:minmax(280px,0.34fr) minmax(0,0.66fr);
    gap:56px;
    align-items:stretch;
  }
  .privacy-summary{
    position:sticky;
    top:118px;
    align-self:stretch;
    height:100%;
    padding:34px;
    background:var(--teal-900);
    color:var(--bg);
    border-radius:8px;
    box-shadow:0 28px 70px -42px rgba(27,8,80,0.55);
  }
  .privacy-summary .eyebrow{
    color:var(--amber);
  }
  .privacy-summary .eyebrow::after{
    margin-left:0;
    margin-right:0;
  }
  .privacy-summary h2{
    font-size:clamp(24px,2.3vw,34px);
    line-height:1.08;
    color:var(--bg);
    margin-top:22px;
  }
  .privacy-summary p{
    margin-top:18px;
    color:#C2BBDE;
    font-size:15.5px;
  }
  .privacy-summary .btn{
    margin-top:28px;
    background:var(--amber);
    color:var(--teal-900);
    border-color:var(--amber);
    box-shadow:none;
  }
  .privacy-summary .btn:hover{
    background:var(--amber-dark);
    border-color:var(--amber-dark);
    color:var(--teal-900);
  }
  .privacy-content{
    display:grid;
    gap:18px;
  }
  .privacy-wide-content{
    grid-column:1 / -1;
    width:80%;
    justify-self:center;
    display:grid;
    gap:18px;
  }
  .privacy-block{
    padding:30px 34px;
    background:#fff;
    border:1px solid var(--line);
    border-radius:8px;
    box-shadow:0 24px 70px -58px rgba(27,8,80,0.45);
  }
  .privacy-block h2{
    font-size:clamp(21px,2vw,28px);
    line-height:1.14;
    margin-bottom:14px;
  }
  .privacy-block p,
  .privacy-block li{
    color:var(--ink-soft);
    font-size:16.5px;
    line-height:1.72;
  }
  .privacy-block p + p{
    margin-top:12px;
  }
  .privacy-block ul{
    margin:0;
    padding-left:20px;
  }
  .privacy-block li + li{
    margin-top:8px;
  }
  .privacy-block a{
    color:var(--teal-900);
    font-weight:600;
    text-decoration-thickness:1px;
    text-underline-offset:3px;
  }
  .page-banner-media{
    min-height:min(70vh, 640px);
    display:flex;
    align-items:center;
    text-align:left;
    padding:184px 0 92px;
    background:
      linear-gradient(90deg, rgba(255,255,255,0.96) 0%, rgba(255,255,255,0.9) 42%, rgba(255,255,255,0.28) 100%),
      linear-gradient(180deg, rgba(255,255,255,0.12), rgba(255,255,255,0.82) 92%, #fff 100%),
      var(--page-banner-image) center right/cover no-repeat;
    overflow:hidden;
  }
  .page-banner-media .eyebrow::after{margin-left:0; margin-right:0;}
  .page-banner-media h1{
    max-width:780px;
    font-size:clamp(34px,4.8vw,64px);
  }
  .page-banner-media p{
    margin-left:0;
    margin-right:0;
    max-width:54ch;
  }
  .service-detail-hero{
    justify-content:center;
    padding-top:82px;
    padding-bottom:78px;
    background:
      linear-gradient(90deg, rgba(255,255,255,0.97) 0%, rgba(255,255,255,0.9) 38%, rgba(255,255,255,0.55) 60%, rgba(255,255,255,0.08) 100%),
      linear-gradient(180deg, rgba(255,255,255,0.16), rgba(255,255,255,0.84) 88%, #fff 100%),
      var(--page-banner-image) center right/cover no-repeat;
  }
  .back-link{
    display:inline-flex; align-items:center; gap:8px; margin-top:24px;
    font-family:'Montserrat', sans-serif; font-weight:600; font-size:13px; letter-spacing:0.04em;
    color:var(--teal-800); text-decoration:none; border-bottom:1px solid var(--teal-800); padding-bottom:2px;
  }

  /* ---------- heroes estruturados ---------- */
  .site-hero{
    min-height:calc(100vh - 144px);
    padding:76px 0 72px;
    overflow:hidden;
    display:flex;
    flex-direction:column;
    justify-content:center;
  }
  .site-hero-copy h1{
    font-size:50px;
    line-height:1.05;
    max-width:58vw;
  }
  .site-hero-copy .hero-sub{
    max-width:50ch;
  }
  .services-hero .site-hero-copy h1,
  .training-hero .site-hero-copy h1,
  .about-hero .site-hero-copy h1{
    max-width:min(46vw, 760px);
  }
  .services-hero .site-hero-copy .hero-sub,
  .training-hero .site-hero-copy .hero-sub,
  .about-hero .site-hero-copy .hero-sub{
    max-width:min(40vw, 56ch);
  }
  .home-hero{
    min-height:clamp(500px, 39vw, 590px);
    height:clamp(500px, 39vw, 590px);
    padding:0;
    background:url('../assets/site/home-slide-conformidade.jpg') top right/cover no-repeat;
  }
  .home-hero-copy{
    text-align:left;
    transition:opacity 0.22s ease, transform 0.22s ease;
  }
  .home-hero-copy.is-changing{
    opacity:0;
    transform:translateY(8px);
  }
  .home-hero-copy h1{
    max-width:min(40vw, 620px);
  }
  .home-hero-copy .hero-sub{
    max-width:min(34vw, 46ch);
  }
  .home-hero-copy .hero-ctas{
    justify-content:flex-start;
  }
  .home-hero-slides{
    position:absolute;
    inset:0;
    z-index:0;
  }
  .home-hero-slide{
    position:absolute;
    inset:0;
    opacity:0;
    background-size:cover;
    background-position:top right;
    background-color:rgba(27,8,80,0.09);
    background-blend-mode:multiply;
    filter:saturate(1.18) contrast(1.12) brightness(0.98);
    transform:scale(1.06);
    transition:transform 0.9s ease;
  }
  .home-hero-slide.is-active{
    opacity:1;
    transform:scale(1);
  }
  .home-hero-overlay{
    position:absolute;
    inset:0;
    z-index:1;
    background:none;
    pointer-events:none;
  }
  .home-hero-arrow{
    position:absolute;
    top:50%;
    z-index:4;
    width:50px;
    height:50px;
    border:0;
    border-radius:6px;
    background:var(--teal-900);
    color:var(--bg);
    display:flex;
    align-items:center;
    justify-content:center;
    cursor:pointer;
    box-shadow:0 14px 28px -18px rgba(27,8,80,0.65);
    transform:translateY(-50%);
    transition:background 0.2s ease, color 0.2s ease, transform 0.2s ease;
  }
  .home-hero-arrow svg{
    width:24px;
    height:24px;
  }
  .home-hero-arrow:hover,
  .home-hero-arrow:focus-visible{
    background:var(--amber);
    color:var(--teal-900);
    transform:translateY(-50%) scale(1.04);
  }
  .home-hero-arrow-prev{left:32px;}
  .home-hero-arrow-next{right:32px;}
  .site-hero-copy{
    position:relative;
    z-index:2;
  }
  .home-hero-dots{
    position:absolute;
    left:50%;
    bottom:28px;
    z-index:4;
    transform:translateX(-50%);
    display:flex;
    gap:10px;
  }
  .home-hero-dot{
    width:10px;
    height:10px;
    border-radius:999px;
    border:1px solid var(--teal-900);
    padding:0;
    background:rgba(255,255,255,0.38);
    cursor:pointer;
    transition:width 0.2s ease, background 0.2s ease;
  }
  .home-hero-dot.is-active{
    width:30px;
    background:var(--teal-900);
  }
  .services-hero{
    min-height:clamp(500px, 39vw, 590px);
    height:clamp(500px, 39vw, 590px);
    justify-content:center;
    padding-top:82px;
    padding-bottom:78px;
    background:url('../assets/site/home-slide-servicos.jpg') top right/cover no-repeat;
  }
  .services-hero.service-detail-hero{
    background:url('../assets/site/servicos-hero-fixa.jpg') center right/cover no-repeat;
  }
  .about-hero{
    min-height:clamp(500px, 39vw, 590px);
    height:clamp(500px, 39vw, 590px);
    justify-content:center;
    padding-top:82px;
    padding-bottom:78px;
    background:url('../assets/site/sobre-hero-equipe.png') top right/cover no-repeat;
  }
  /* ---------- home repaginada ---------- */
  .home-video{
    padding:86px 0 100px;
  }
  .home-video-grid{
    display:grid;
    grid-template-columns:0.7fr 1.3fr;
    gap:48px;
    align-items:center;
  }
  .home-video-copy h2{
    margin-top:14px;
    font-size:clamp(32px,4vw,46px);
  }
  .home-video-copy p:not(.eyebrow){
    margin-top:18px;
    color:var(--ink-soft);
  }
  .home-video-copy .btn{
    margin-top:30px;
  }
  .home-video-frame{
    border-radius:8px;
    overflow:hidden;
    box-shadow:0 28px 64px -36px rgba(27,8,80,0.42);
    background:#000;
  }
  .home-video-frame video,
  .home-video-frame img{
    display:block;
    width:100%;
    aspect-ratio:1080/608;
    height:auto;
    object-fit:cover;
    background:#000;
  }
  .home-solutions{
    background:
      linear-gradient(180deg, rgba(247,200,28,0.08), rgba(247,200,28,0)),
      var(--bg);
  }
  .home-solutions .section-head,
  .home-partners .section-head{
    max-width:760px;
    margin:0 auto 54px;
    text-align:center;
  }
  .home-solutions .section-head .eyebrow::after,
  .home-partners .section-head .eyebrow::after,
  .home-solutions .section-head p{
    margin-left:auto;
    margin-right:auto;
  }
  .home-solution-grid{
    display:grid;
    grid-template-columns:repeat(3, 1fr);
    gap:18px;
  }
  .home-solution-grid-two{
    grid-template-columns:repeat(2, minmax(0, 1fr));
    max-width:1320px;
    margin:0 auto;
    gap:24px;
  }
  .home-solution-card{
    min-height:320px;
    padding:30px 28px;
    border:1px solid var(--line);
    border-radius:8px;
    background:var(--paper);
    text-decoration:none;
    display:flex;
    flex-direction:column;
    transition:transform 0.2s ease, border-color 0.2s ease, box-shadow 0.2s ease;
  }
  .home-solution-card:hover{
    transform:translateY(-4px);
    border-color:var(--amber-dark);
    box-shadow:0 24px 50px -34px rgba(27,8,80,0.5);
  }
  .home-solution-card span{
    width:max-content;
    background:var(--teal-900);
    color:var(--amber);
    border-radius:999px;
    padding:7px 12px;
    font-size:11px;
    line-height:1;
    font-weight:800;
    letter-spacing:0.08em;
  }
  .home-solution-card h3{
    margin-top:24px;
    font-size:25px;
  }
  .home-solution-card p{
    margin-top:13px;
    color:var(--ink-soft);
    font-size:14.5px;
  }
  .home-solution-card b{
    margin-top:auto;
    padding-top:26px;
    color:var(--teal-900);
    font-size:12px;
    letter-spacing:0.08em;
    text-transform:uppercase;
  }
  .home-solution-grid-two .home-solution-card{
    position:relative;
    isolation:isolate;
    min-height:430px;
    overflow:hidden;
    justify-content:center;
    align-items:flex-start;
    padding:42px;
    color:var(--bg);
    border-color:rgba(255,255,255,0.22);
    background:var(--teal-900);
    box-shadow:0 30px 70px -42px rgba(27,8,80,0.72);
  }
  .home-solution-grid-two .home-solution-card::before{
    content:"";
    position:absolute;
    inset:0;
    z-index:-2;
    background-size:cover;
    background-position:center right;
    opacity:0.46;
    transform:scale(1.02);
    transition:transform 0.35s ease, opacity 0.35s ease;
  }
  .home-solution-grid-two .home-solution-card::after{
    content:"";
    position:absolute;
    inset:0;
    z-index:-1;
    background:
      linear-gradient(180deg, rgba(25,11,61,0.12) 0%, rgba(25,11,61,0.72) 52%, rgba(25,11,61,0.98) 100%),
      linear-gradient(90deg, rgba(25,11,61,0.98) 0%, rgba(25,11,61,0.74) 58%, rgba(25,11,61,0.24) 100%);
  }
  .home-solution-grid-two .home-solution-card:nth-child(1)::before{
    background-image:url('../assets/site/servicos-hero.png');
  }
  .home-solution-grid-two .home-solution-card:nth-child(2)::before{
    background-image:url('../assets/site/treinamentos-hero.png');
  }
  .home-solution-grid-two .home-solution-card:hover{
    transform:translateY(-6px);
    border-color:var(--amber);
    box-shadow:0 36px 84px -44px rgba(27,8,80,0.86);
  }
  .home-solution-grid-two .home-solution-card:hover::before{
    opacity:0.58;
    transform:scale(1.08);
  }
  .home-solution-grid-two .home-solution-card span{
    background:var(--amber);
    color:var(--teal-900);
  }
  .home-solution-grid-two .home-solution-card h3{
    color:var(--bg);
    font-size:clamp(30px, 3.3vw, 46px);
    max-width:9ch;
  }
  .home-solution-grid-two .home-solution-card p{
    color:#E5DFF7;
    max-width:42ch;
    font-size:16px;
    min-height:78px;
  }
  .home-solution-grid-two .home-solution-card b{
    align-self:flex-start;
    margin-top:22px;
    padding:14px 20px;
    border-radius:6px;
    background:var(--amber);
    color:var(--teal-900);
    transition:background 0.2s ease, color 0.2s ease;
  }
  .home-solution-grid-two .home-solution-card:hover b{
    background:var(--bg);
  }
  .home-partners{
    padding-bottom:86px;
  }
  .partners-panel{
    display:flex;
    flex-direction:column;
    align-items:center;
    gap:34px;
  }
  .partners-grid{
    display:grid;
    grid-template-columns:repeat(5, minmax(130px, 1fr));
    gap:22px;
    width:100%;
  }
  .partner-logo{
    display:flex;
    align-items:center;
    justify-content:center;
    min-height:104px;
    padding:18px 16px;
    border:1px solid rgba(27,8,80,0.08);
    border-radius:8px;
    background:rgba(255,255,255,0.76);
    box-shadow:0 18px 38px -32px rgba(27,8,80,0.42);
  }
  .partner-logo img{
    display:block;
    width:auto;
    max-width:100%;
    max-height:72px;
    object-fit:contain;
  }
  .partner-logo-extra{
    display:none;
  }
  .partners-panel.is-expanded .partner-logo-extra{
    display:flex;
  }
  .partners-toggle{
    justify-content:center;
    min-width:min(100%, 330px);
    text-align:center;
  }
  /* ---------- página de serviços ---------- */
  .services-intro .section-head{
    max-width:760px;
    margin:0 auto 54px;
    text-align:center;
  }
  .services-intro .section-head .eyebrow::after,
  .services-intro .section-head p{
    margin-left:auto;
    margin-right:auto;
  }
  .service-solution-grid{
    display:grid;
    grid-template-columns:repeat(3, 1fr);
    gap:18px;
  }
  .service-solution{
    background:var(--paper);
    border:1px solid var(--line);
    border-radius:8px;
    padding:28px;
    min-height:260px;
    display:flex;
    flex-direction:column;
    transition:transform 0.2s ease, border-color 0.2s ease, box-shadow 0.2s ease;
  }
  .service-solution:hover{
    transform:translateY(-4px);
    border-color:var(--amber-dark);
    box-shadow:0 24px 50px -34px rgba(27,8,80,0.5);
  }
  .solution-code{
    width:max-content;
    background:var(--teal-900);
    color:var(--amber);
    border-radius:999px;
    padding:7px 12px;
    font-size:11px;
    line-height:1;
    font-weight:800;
    letter-spacing:0.08em;
    text-transform:uppercase;
  }
  .service-solution h3{
    margin-top:22px;
    font-size:24px;
  }
  .service-solution p{
    margin-top:13px;
    color:var(--ink-soft);
    font-size:14.5px;
  }
  .service-process{
    background:var(--teal-900);
    color:var(--bg);
    padding:104px 0;
  }
  .service-process .section-head{
    max-width:760px;
    margin:0 auto 54px;
    text-align:center;
  }
  .service-process .section-head .eyebrow::after{
    margin-left:auto;
    margin-right:auto;
  }
  .service-process h2{
    color:var(--bg);
  }
  .service-process-grid{
    display:grid;
    grid-template-columns:repeat(4, 1fr);
    gap:1px;
    background:rgba(255,255,255,0.18);
    border:1px solid rgba(255,255,255,0.18);
  }
  .service-process-step{
    background:var(--teal-800);
    padding:32px 28px;
    min-height:250px;
  }
  .service-process-step span{
    color:var(--amber);
    font-weight:800;
    font-size:13px;
  }
  .service-process-step h3{
    margin-top:26px;
    color:var(--bg);
    font-size:22px;
  }
  .service-process-step p{
    margin-top:12px;
    color:#C2BBDE;
    font-size:14.5px;
  }

  /* ---------- página sobre ---------- */
  .about-banner{
    background:
      radial-gradient(900px 420px at 18% 0%, rgba(247,200,28,0.18), transparent 58%),
      linear-gradient(180deg, #fff 0%, #fff 72%, rgba(247,200,28,0.08) 100%);
  }
  .about-story-grid{
    display:grid;
    grid-template-columns:0.92fr 1.08fr;
    gap:54px;
    align-items:center;
  }
  .about-story-copy h2{
    margin-top:14px;
    font-size:clamp(32px,4vw,46px);
  }
  .about-story-copy p:not(.eyebrow){
    margin-top:18px;
    color:var(--ink-soft);
  }
  .about-story-media{
    min-height:440px;
    overflow:hidden;
    border-radius:8px;
    box-shadow:0 28px 64px -36px rgba(27,8,80,0.42);
  }
  .about-story-media img{
    width:100%;
    height:100%;
    min-height:440px;
    object-fit:cover;
  }
  .about-facts{
    background:var(--teal-900);
    color:var(--bg);
    padding:0;
  }
  .about-facts-grid{
    display:grid;
    grid-template-columns:repeat(3, 1fr);
    gap:1px;
    background:rgba(255,255,255,0.18);
    border-left:1px solid rgba(255,255,255,0.18);
    border-right:1px solid rgba(255,255,255,0.18);
  }
  .about-fact{
    padding:34px 30px;
    background:var(--teal-800);
  }
  .about-fact b{
    display:block;
    color:var(--amber);
    font-size:34px;
    line-height:1;
    text-transform:uppercase;
  }
  .about-fact span{
    display:block;
    margin-top:10px;
    color:#C2BBDE;
    font-size:14.5px;
  }
  .about-award-grid{
    display:grid;
    grid-template-columns:0.78fr 1fr;
    gap:54px;
    align-items:center;
  }
  .about-award-photo{
    margin:0;
    border-radius:8px;
    overflow:hidden;
    box-shadow:0 28px 64px -36px rgba(27,8,80,0.42);
    background:var(--teal-900);
  }
  .about-award-photo img{
    width:100%;
    height:clamp(460px, 48vw, 720px);
    object-fit:cover;
    object-position:center;
  }
  .about-award-copy h2{
    margin-top:14px;
    font-size:clamp(32px,4vw,46px);
  }
  .about-award-copy p:not(.eyebrow){
    margin-top:18px;
    color:var(--ink-soft);
  }
  .about-timeline-section .section-head,
  .about-team .section-head{
    max-width:760px;
    margin:0 auto 54px;
    text-align:center;
  }
  .about-timeline-section .section-head .eyebrow::after,
  .about-team .section-head .eyebrow::after,
  .about-team .section-head p{
    margin-left:auto;
    margin-right:auto;
  }
  .about-timeline{
    position:relative;
    display:block;
    max-width:980px;
    margin:0 auto;
    padding:8px 0;
  }
  .about-timeline::before{
    content:"";
    position:absolute;
    top:0;
    bottom:0;
    left:50%;
    width:3px;
    background:linear-gradient(180deg, var(--teal-900), var(--amber), var(--teal-900));
    transform:translateX(-50%);
  }
  .about-timeline-item,
  .team-card,
  .about-value{
    border:1px solid var(--line);
    border-radius:8px;
    background:var(--paper);
  }
  .about-timeline-item{
    position:relative;
    width:calc(50% - 58px);
    min-height:auto;
    margin:0 0 46px;
    padding:0;
    border:none;
    background:transparent;
    text-align:right;
  }
  .about-timeline-item:nth-child(even){
    margin-left:auto;
    text-align:left;
  }
  .about-timeline-item:last-child{
    margin-bottom:0;
  }
  .about-timeline-item::before{
    content:"";
    position:absolute;
    top:4px;
    right:-77px;
    width:22px;
    height:22px;
    border-radius:50%;
    background:var(--amber);
    border:8px solid var(--teal-900);
    z-index:1;
    box-shadow:0 0 0 8px #fff;
  }
  .about-timeline-item:nth-child(even)::before{
    right:auto;
    left:-77px;
  }
  .about-timeline-item::after{
    content:"";
    position:absolute;
    top:24px;
    right:-47px;
    width:34px;
    height:2px;
    background:var(--line-dark);
    opacity:0.22;
  }
  .about-timeline-item:nth-child(even)::after{
    right:auto;
    left:-47px;
  }
  .about-timeline-item span,
  .about-value span{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    min-width:48px;
    height:32px;
    padding:0 12px;
    background:var(--teal-900);
    color:var(--amber);
    border-radius:999px;
    font-size:12px;
    font-weight:800;
    text-transform:uppercase;
  }
  .about-timeline-item span{
    margin-bottom:22px;
  }
  .about-timeline-item h3,
  .about-value h3{
    margin-top:0;
    font-size:22px;
  }
  .about-timeline-item h3{
    margin-top:22px;
  }
  .about-value h3{
    margin-top:24px;
  }
  .about-timeline-item p,
  .about-value p{
    margin-top:12px;
    color:var(--ink-soft);
    font-size:14.5px;
  }
  .team-grid{
    display:grid;
    grid-template-columns:repeat(3, 1fr);
    gap:18px;
  }
  .team-feature-photo{
    margin:0 0 28px;
    border-radius:8px;
    overflow:hidden;
    box-shadow:0 28px 64px -36px rgba(27,8,80,0.42);
    background:var(--teal-900);
  }
  .team-feature-photo img{
    width:100%;
    height:clamp(360px, 42vw, 620px);
    object-fit:cover;
    object-position:center 58%;
  }
  .team-card{
    overflow:hidden;
  }
  .team-photo{
    aspect-ratio:4/3;
    width:100%;
    background:
      linear-gradient(135deg, rgba(25,11,61,0.92), rgba(59,30,140,0.86)),
      radial-gradient(420px 220px at 20% 0%, rgba(247,200,28,0.28), transparent 58%);
  }
  .team-photo-placeholder{
    display:flex;
    align-items:center;
    justify-content:center;
  }
  .team-photo-placeholder span{
    color:var(--amber);
    font-size:13px;
    font-weight:800;
    letter-spacing:0.12em;
    text-transform:uppercase;
  }
  .team-card h3{
    padding:26px 26px 0;
    font-size:22px;
  }
  .team-card p{
    padding:12px 26px 28px;
    color:var(--ink-soft);
    font-size:14.5px;
  }
  .about-values-section{
    padding-top:0;
  }
  .about-values{
    display:grid;
    grid-template-columns:repeat(3, 1fr);
    gap:18px;
  }
  .about-value{
    padding:30px 28px;
    min-height:230px;
  }

  /* ---------- página de treinamentos ---------- */
  .training-hero{
    min-height:clamp(500px, 39vw, 590px);
    height:clamp(500px, 39vw, 590px);
    justify-content:center;
    padding-top:82px;
    padding-bottom:78px;
    background:url('../assets/site/home-slide-treinamentos.jpg') top right/cover no-repeat;
    overflow:hidden;
  }
  .training-metrics,
  .about-metrics{
    display:grid;
    grid-template-columns:repeat(3, 1fr);
    gap:1px;
    margin-top:94px;
    background:rgba(255,255,255,0.5);
    border:1px solid rgba(255,255,255,0.58);
    backdrop-filter:blur(10px);
  }
  .training-metrics div,
  .about-metrics div{
    background:rgba(255,255,255,0.76);
    padding:26px 28px;
  }
  .training-metrics b,
  .about-metrics b{
    display:block;
    font-size:22px;
    line-height:1.1;
    color:var(--teal-900);
    text-transform:uppercase;
  }
  .training-metrics span,
  .about-metrics span{
    display:block;
    margin-top:7px;
    color:var(--ink-soft);
    font-size:14px;
  }
  .training-intro .section-head{
    max-width:760px;
    margin:0 auto 54px;
    text-align:center;
  }
  .training-intro .section-head .eyebrow::after{
    margin-left:auto;
    margin-right:auto;
  }
  .training-intro .section-head p{
    margin-left:auto;
    margin-right:auto;
  }
  .training-course-grid{
    display:grid;
    grid-template-columns:repeat(3, 1fr);
    gap:18px;
  }
  .training-course{
    background:var(--paper);
    border:1px solid var(--line);
    border-radius:8px;
    padding:28px;
    min-height:286px;
    display:flex;
    flex-direction:column;
    transition:transform 0.2s ease, border-color 0.2s ease, box-shadow 0.2s ease;
  }
  .training-course:hover{
    transform:translateY(-4px);
    border-color:var(--amber-dark);
    box-shadow:0 24px 50px -34px rgba(27,8,80,0.5);
  }
  .course-code{
    width:max-content;
    background:var(--teal-900);
    color:var(--amber);
    border-radius:999px;
    padding:7px 12px;
    font-size:11px;
    line-height:1;
    font-weight:800;
    letter-spacing:0.08em;
    text-transform:uppercase;
  }
  .training-course h3{
    margin-top:22px;
    font-size:22px;
    line-height:1.08;
  }
  .training-course p{
    margin-top:13px;
    color:var(--ink-soft);
    font-size:14.5px;
  }
  .course-tags{
    display:flex;
    flex-wrap:wrap;
    gap:8px;
    margin-top:auto;
    padding-top:24px;
  }
  .course-tags span{
    border:1px solid var(--line);
    border-radius:999px;
    padding:7px 10px;
    color:var(--teal-800);
    font-size:11.5px;
    font-weight:700;
  }
  .training-formats{
    background:var(--teal-900);
    color:var(--bg);
    padding:104px 0;
  }
  .training-formats-grid{
    display:grid;
    grid-template-columns:0.72fr 1.28fr;
    gap:54px;
    align-items:start;
  }
  .training-format-copy h2{
    margin-top:14px;
    color:var(--bg);
    font-size:42px;
  }
  .training-format-copy p{
    margin-top:18px;
    color:#C2BBDE;
    max-width:42ch;
  }
  .training-format-list{
    display:grid;
    grid-template-columns:repeat(3, 1fr);
    gap:1px;
    background:rgba(255,255,255,0.18);
    border:1px solid rgba(255,255,255,0.18);
  }
  .training-format{
    background:var(--teal-800);
    padding:32px 28px;
    min-height:260px;
  }
  .training-format span{
    color:var(--amber);
    font-size:13px;
    font-weight:800;
  }
  .training-format h3{
    margin-top:26px;
    color:var(--bg);
    font-size:22px;
  }
  .training-format p{
    margin-top:12px;
    color:#C2BBDE;
    font-size:14.5px;
  }
  .training-flow .section-head{
    max-width:700px;
    margin:0 auto 54px;
    text-align:center;
  }
  .training-flow .section-head .eyebrow::after{
    margin-left:auto;
    margin-right:auto;
  }
  .training-steps{
    display:grid;
    grid-template-columns:repeat(4, 1fr);
    gap:18px;
  }
  .training-step{
    position:relative;
    padding:28px 24px;
    border-top:3px solid var(--amber-dark);
    background:linear-gradient(180deg, rgba(247,200,28,0.08), rgba(247,200,28,0)), var(--paper);
  }
  .training-step span{
    display:flex;
    align-items:center;
    justify-content:center;
    width:42px;
    height:42px;
    border-radius:50%;
    background:var(--teal-900);
    color:var(--amber);
    font-weight:800;
    margin-bottom:24px;
  }
  .training-step h3{
    font-size:20px;
  }
  .training-step p{
    margin-top:10px;
    color:var(--ink-soft);
    font-size:14.5px;
  }
  .training-cta{
    padding:0 0 108px;
  }
  .training-cta-inner{
    display:grid;
    grid-template-columns:1fr 0.78fr;
    gap:48px;
    align-items:center;
    background:var(--teal-900);
    color:var(--bg);
    border-radius:8px;
    padding:54px;
  }
  .training-cta h2{
    color:var(--bg);
    font-size:42px;
  }
  .training-cta p{
    color:#C2BBDE;
    margin-bottom:28px;
  }
  .training-cta .btn-primary{
    background:var(--amber);
    border-color:var(--amber);
    color:var(--teal-900);
  }
  .training-cta .btn-primary:hover{
    background:var(--bg);
    border-color:var(--bg);
  }
  .services-cta{
    padding:96px 0 112px;
    background:var(--bg);
  }
  .services-cta .training-cta-inner{
    background:var(--teal-900);
    border-radius:8px;
    padding:54px;
    box-shadow:0 28px 64px -38px rgba(27,8,80,0.52);
  }
  .services-cta p{
    color:#C2BBDE;
  }

  .cta-final{padding:76px 0 84px; text-align:center;}
  .cta-final h2{font-size:clamp(34px,5vw,54px); max-width:24ch; margin:0 auto;}
  .cta-final p{margin:18px auto 0; max-width:76ch; color:var(--ink-soft); font-size:17px;}
  .cta-final .hero-ctas{justify-content:center; margin-top:28px;}

  /* ---------- footer ---------- */
  footer{background:var(--teal-900); color:#C2BBDE; padding:64px 0 32px;}
  .footer-grid{display:grid; grid-template-columns:1.45fr repeat(3, minmax(150px, 1fr)); gap:34px;}
  .footer-grid > div:nth-child(2){
    grid-column:3;
    grid-row:1;
  }
  .footer-grid > div:nth-child(3){
    grid-column:3;
    grid-row:2;
  }
  .footer-grid > div:nth-child(4){
    grid-column:4;
    grid-row:1;
  }
  .footer-grid > div:nth-child(5){
    grid-column:2;
    grid-row:1;
  }
  .footer-grid > div:nth-child(6){
    grid-column:2;
    grid-row:2;
  }
  footer h4{color:var(--bg); font-size:14px; letter-spacing:0.08em; margin-bottom:18px;
    font-family:'Montserrat', sans-serif; text-transform:uppercase; font-weight:600;}
  .footer-logo{height:58px; width:auto;}
  .footer-tag{margin-top:14px; font-size:14.5px; max-width:32ch; color:#A79EC9;}
  .footer-legal{
    margin-top:16px;
    max-width:34ch;
    font-size:12.5px;
    line-height:1.55;
    color:#8F84B9;
  }
  footer ul{list-style:none; margin:0; padding:0;}
  footer li{margin-bottom:10px; font-size:14.5px;}
  footer a{text-decoration:none; color:#C2BBDE; transition:color 0.2s ease;}
  footer a:hover{color:var(--amber);}
  .footer-contact-list{
    display:grid;
    gap:12px;
  }
  .footer-contact-list li{
    margin:0;
  }
  .footer-contact-link{
    display:flex;
    align-items:center;
    gap:10px;
    line-height:1.35;
  }
  .footer-contact-icon{
    width:18px;
    height:18px;
    flex:0 0 18px;
    background:var(--amber);
    -webkit-mask:center/contain no-repeat;
    mask:center/contain no-repeat;
  }
  .footer-contact-whatsapp{
    -webkit-mask-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M20.5 3.5A10.4 10.4 0 0 0 12 0 10.5 10.5 0 0 0 2.4 15.4L0 22l6.8-2.4A10.5 10.5 0 0 0 12 21a10.5 10.5 0 0 0 8.5-17.5ZM12 19a8.1 8.1 0 0 1-4.4-1.3l-.3-.2-3.2 1 1-3.1-.2-.3A8.2 8.2 0 1 1 20.2 12 8.2 8.2 0 0 1 12 19Zm4.6-5.8c-.3-.1-1.6-.8-1.8-.9-.2-.1-.4-.1-.6.1-.2.3-.7.9-.8 1-.2.2-.3.2-.6.1-.3-.1-1.1-.4-2.1-1.3-.8-.7-1.3-1.5-1.5-1.8-.2-.3 0-.4.1-.6l.4-.5c.1-.2.2-.3.3-.5.1-.2 0-.4 0-.5 0-.1-.6-1.5-.9-2.1-.2-.5-.5-.5-.7-.5h-.6c-.2 0-.5.1-.8.4-.3.3-1.1 1.1-1.1 2.6 0 1.5 1.1 3 1.3 3.2.2.2 2.2 3.4 5.3 4.7.7.3 1.3.5 1.8.6.8.2 1.4.2 2 0 .6-.1 1.6-.7 1.8-1.3.2-.6.2-1.2.2-1.3-.1-.2-.3-.3-.6-.4Z'/%3E%3C/svg%3E");
    mask-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M20.5 3.5A10.4 10.4 0 0 0 12 0 10.5 10.5 0 0 0 2.4 15.4L0 22l6.8-2.4A10.5 10.5 0 0 0 12 21a10.5 10.5 0 0 0 8.5-17.5ZM12 19a8.1 8.1 0 0 1-4.4-1.3l-.3-.2-3.2 1 1-3.1-.2-.3A8.2 8.2 0 1 1 20.2 12 8.2 8.2 0 0 1 12 19Zm4.6-5.8c-.3-.1-1.6-.8-1.8-.9-.2-.1-.4-.1-.6.1-.2.3-.7.9-.8 1-.2.2-.3.2-.6.1-.3-.1-1.1-.4-2.1-1.3-.8-.7-1.3-1.5-1.5-1.8-.2-.3 0-.4.1-.6l.4-.5c.1-.2.2-.3.3-.5.1-.2 0-.4 0-.5 0-.1-.6-1.5-.9-2.1-.2-.5-.5-.5-.7-.5h-.6c-.2 0-.5.1-.8.4-.3.3-1.1 1.1-1.1 2.6 0 1.5 1.1 3 1.3 3.2.2.2 2.2 3.4 5.3 4.7.7.3 1.3.5 1.8.6.8.2 1.4.2 2 0 .6-.1 1.6-.7 1.8-1.3.2-.6.2-1.2.2-1.3-.1-.2-.3-.3-.6-.4Z'/%3E%3C/svg%3E");
  }
  .footer-contact-email{
    -webkit-mask-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M3 5h18a1.7 1.7 0 0 1 1.7 1.7v10.6A1.7 1.7 0 0 1 21 19H3a1.7 1.7 0 0 1-1.7-1.7V6.7A1.7 1.7 0 0 1 3 5Zm17.2 2.6H3.8L12 13l8.2-5.4ZM3.7 16.9h16.6V9.8l-7.8 5.1a1 1 0 0 1-1.1 0L3.7 9.8v7.1Z'/%3E%3C/svg%3E");
    mask-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M3 5h18a1.7 1.7 0 0 1 1.7 1.7v10.6A1.7 1.7 0 0 1 21 19H3a1.7 1.7 0 0 1-1.7-1.7V6.7A1.7 1.7 0 0 1 3 5Zm17.2 2.6H3.8L12 13l8.2-5.4ZM3.7 16.9h16.6V9.8l-7.8 5.1a1 1 0 0 1-1.1 0L3.7 9.8v7.1Z'/%3E%3C/svg%3E");
  }
  .footer-contact-instagram{
    -webkit-mask-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M7.2 2h9.6A5.2 5.2 0 0 1 22 7.2v9.6a5.2 5.2 0 0 1-5.2 5.2H7.2A5.2 5.2 0 0 1 2 16.8V7.2A5.2 5.2 0 0 1 7.2 2Zm0 2.2a3 3 0 0 0-3 3v9.6a3 3 0 0 0 3 3h9.6a3 3 0 0 0 3-3V7.2a3 3 0 0 0-3-3H7.2ZM12 7.3a4.7 4.7 0 1 1 0 9.4 4.7 4.7 0 0 1 0-9.4Zm0 2.2a2.5 2.5 0 1 0 0 5 2.5 2.5 0 0 0 0-5Zm5-2.7a1.2 1.2 0 1 1 0 2.4 1.2 1.2 0 0 1 0-2.4Z'/%3E%3C/svg%3E");
    mask-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M7.2 2h9.6A5.2 5.2 0 0 1 22 7.2v9.6a5.2 5.2 0 0 1-5.2 5.2H7.2A5.2 5.2 0 0 1 2 16.8V7.2A5.2 5.2 0 0 1 7.2 2Zm0 2.2a3 3 0 0 0-3 3v9.6a3 3 0 0 0 3 3h9.6a3 3 0 0 0 3-3V7.2a3 3 0 0 0-3-3H7.2ZM12 7.3a4.7 4.7 0 1 1 0 9.4 4.7 4.7 0 0 1 0-9.4Zm0 2.2a2.5 2.5 0 1 0 0 5 2.5 2.5 0 0 0 0-5Zm5-2.7a1.2 1.2 0 1 1 0 2.4 1.2 1.2 0 0 1 0-2.4Z'/%3E%3C/svg%3E");
  }
  .footer-bottom{
    margin-top:56px; padding-top:24px; border-top:1px solid rgba(255,255,255,0.12);
    display:flex; justify-content:space-between; font-family:'Montserrat', sans-serif; font-size:11.5px; color:#8478AC;
  }

  /* ---------- voltar ao topo ---------- */
  .to-top{
    position:fixed;
    left:24px;
    bottom:24px;
    z-index:80;
    width:50px;
    height:50px;
    border:0;
    border-radius:6px;
    background:var(--amber);
    color:var(--teal-900);
    display:flex;
    align-items:center;
    justify-content:center;
    cursor:pointer;
    box-shadow:0 14px 28px -18px rgba(27,8,80,0.65);
    opacity:0;
    transform:translateY(12px);
    visibility:hidden;
    pointer-events:none;
    transition:opacity 0.25s ease, transform 0.25s ease, visibility 0.25s ease, background 0.2s ease, color 0.2s ease;
  }
  .to-top.is-visible{
    opacity:1;
    transform:translateY(0);
    visibility:visible;
    pointer-events:auto;
  }
  .to-top:hover,
  .to-top:focus-visible{
    transform:translateY(-4px) scale(1.06);
  }
  .to-top svg{width:22px; height:22px;}
  @media (max-width: 680px){
    .to-top{left:16px; bottom:16px; width:44px; height:44px;}
  }

  /* ---------- widget whatsapp ---------- */
  .wa-widget{
    position:fixed;
    right:24px;
    bottom:24px;
    z-index:90;
    display:flex;
    flex-direction:column;
    align-items:flex-end;
    gap:14px;
    font-family:'Montserrat', sans-serif;
  }
  .wa-fab{
    position:relative;
    width:60px;
    height:60px;
    border:0;
    border-radius:999px;
    background:#25D366;
    color:#fff;
    display:flex;
    align-items:center;
    justify-content:center;
    cursor:pointer;
    box-shadow:0 16px 32px -16px rgba(9,74,44,0.55);
    transition:transform 0.2s ease, box-shadow 0.2s ease;
  }
  .wa-fab:hover,
  .wa-fab:focus-visible{
    transform:scale(1.05);
    box-shadow:0 20px 38px -16px rgba(9,74,44,0.65);
  }
  .wa-fab::before{
    content:"";
    position:absolute;
    inset:0;
    border-radius:999px;
    background:#25D366;
    opacity:0.55;
    pointer-events:none;
    animation:wa-fab-pulse 2s ease-out infinite;
  }
  .wa-widget.is-open .wa-fab::before{
    animation:none;
    opacity:0;
  }
  @keyframes wa-fab-pulse{
    0%{transform:scale(1); opacity:0.55;}
    100%{transform:scale(1.7); opacity:0;}
  }
  .wa-fab i{position:relative; font-size:28px; line-height:1;}
  .wa-panel{
    width:min(320px, calc(100vw - 48px));
    background:#fff;
    border-radius:16px;
    overflow:hidden;
    box-shadow:0 28px 60px -24px rgba(27,8,80,0.45);
    opacity:0;
    transform:translateY(12px) scale(0.98);
    visibility:hidden;
    pointer-events:none;
    transform-origin:bottom right;
    transition:opacity 0.2s ease, transform 0.2s ease, visibility 0.2s ease;
  }
  .wa-widget.is-open .wa-panel{
    opacity:1;
    transform:translateY(0) scale(1);
    visibility:visible;
    pointer-events:auto;
  }
  .wa-panel-header{
    position:relative;
    background:#25D366;
    color:#fff;
    padding:20px 40px 20px 22px;
    font-size:15px;
    font-weight:600;
    line-height:1.4;
  }
  .wa-panel-close{
    position:absolute;
    top:12px;
    right:12px;
    width:26px;
    height:26px;
    border:0;
    border-radius:999px;
    background:rgba(255,255,255,0.18);
    color:#fff;
    display:flex;
    align-items:center;
    justify-content:center;
    cursor:pointer;
    transition:background 0.2s ease;
  }
  .wa-panel-close:hover,
  .wa-panel-close:focus-visible{
    background:rgba(255,255,255,0.32);
  }
  .wa-panel-close svg{width:14px; height:14px;}
  .wa-panel-body{
    display:flex;
    align-items:center;
    gap:14px;
    padding:18px 20px;
    text-decoration:none;
    color:var(--ink);
    transition:background 0.2s ease;
  }
  .wa-panel-body:hover{
    background:#F5F3FB;
  }
  .wa-avatar{
    width:46px;
    height:46px;
    border-radius:999px;
    object-fit:cover;
    flex:none;
    box-shadow:0 0 0 1px var(--line);
  }
  .wa-info{
    display:flex;
    flex-direction:column;
    gap:3px;
    min-width:0;
  }
  .wa-info strong{
    font-size:14.5px;
    color:var(--ink);
  }
  .wa-info span{
    font-size:13px;
    color:var(--ink-soft);
  }
  .wa-status{
    display:flex;
    align-items:center;
    gap:6px;
    margin-top:2px;
  }
  .wa-status::before{
    content:"";
    width:8px;
    height:8px;
    border-radius:999px;
    background:#25D366;
    flex:none;
    animation:wa-pulse 1.8s ease-out infinite;
  }
  @keyframes wa-pulse{
    0%{box-shadow:0 0 0 0 rgba(37,211,102,0.55);}
    70%{box-shadow:0 0 0 8px rgba(37,211,102,0);}
    100%{box-shadow:0 0 0 0 rgba(37,211,102,0);}
  }
  @media (max-width: 680px){
    .wa-widget{right:16px; bottom:16px; gap:10px;}
    .wa-fab{width:54px; height:54px;}
    .wa-fab i{font-size:25px;}
  }

  /* ---------- responsive ---------- */
  @media (max-width: 980px){
    .hero-grid{grid-template-columns:1fr;}
    .stamps{height:280px; margin-top:20px;}
    .stamp-1{width:170px;height:170px;right:10px;}
    .stamp-1 .num{font-size:46px;}
    .stamp-2{width:130px;height:130px;top:120px;right:180px;}
    .stamp-3{display:none;}
    .socios{grid-template-columns:1fr;}
    .mvv{grid-template-columns:1fr;}
    .grid-cards{grid-template-columns:1fr 1fr;}
    #servicos .grid-cards > .selo-card:last-child{grid-column:auto;}
    .presenca .wrap{grid-template-columns:1fr;}
    .footer-grid{grid-template-columns:1fr 1fr; row-gap:36px;}
    .footer-grid > div:nth-child(2),
    .footer-grid > div:nth-child(3),
    .footer-grid > div:nth-child(4),
    .footer-grid > div:nth-child(5),
    .footer-grid > div:nth-child(6){
      grid-column:auto;
      grid-row:auto;
    }
    .privacy-layout{grid-template-columns:1fr; gap:32px;}
    .privacy-summary{position:relative; top:auto; height:auto;}
    .privacy-wide-content{width:100%;}
    .statbar .wrap{grid-template-columns:1fr 1fr; row-gap:24px;}
    .timeline{gap:20px;}
    .tl-item{padding:0 4px;}
    .tl-item:not(:last-child)::after{right:-16px;}
    .site-hero{
      min-height:100vh;
      padding-top:108px;
      padding-bottom:64px;
    }
    .home-hero{
      min-height:clamp(540px, 66vw, 660px);
      height:clamp(540px, 66vw, 660px);
      padding:0;
    }
    .site-hero-copy h1{font-size:42px; max-width:72vw;}
    .services-hero .site-hero-copy h1,
    .training-hero .site-hero-copy h1,
    .about-hero .site-hero-copy h1{max-width:58vw;}
    .services-hero .site-hero-copy .hero-sub,
    .training-hero .site-hero-copy .hero-sub,
    .about-hero .site-hero-copy .hero-sub{max-width:50vw;}
    .home-hero-copy h1{max-width:54vw;}
    .home-hero-copy .hero-sub{max-width:44vw;}
    .home-hero{
      background:url('../assets/site/home-slide-conformidade.jpg') top right/cover no-repeat;
    }
    .home-hero-overlay{
      background:none;
    }
    .services-hero{
      min-height:clamp(540px, 66vw, 660px);
      height:clamp(540px, 66vw, 660px);
      padding-top:112px;
      padding-bottom:72px;
      background:url('../assets/site/home-slide-servicos.jpg') top right/cover no-repeat;
    }
    .about-hero{
      min-height:clamp(540px, 66vw, 660px);
      height:clamp(540px, 66vw, 660px);
      padding-top:112px;
      padding-bottom:72px;
      background:url('../assets/site/sobre-hero-equipe.png') top right/cover no-repeat;
    }
    .home-video-grid{grid-template-columns:1fr; gap:34px;}
    .home-video-frame{order:1;}
    .home-video-copy{order:2; max-width:680px;}
    .home-solution-grid{grid-template-columns:1fr 1fr;}
    .service-solution-grid{grid-template-columns:1fr 1fr;}
    .service-process-grid{grid-template-columns:1fr 1fr;}
    .service-process-step{min-height:auto;}
    .about-story-grid{grid-template-columns:1fr; gap:34px;}
    .about-story-media,
    .about-story-media img{min-height:360px;}
    .about-award-grid{grid-template-columns:1fr; gap:34px;}
    .about-award-photo img{height:clamp(420px, 84vw, 680px);}
    .about-timeline{
      max-width:720px;
    }
    .about-timeline::before{
      left:18px;
      transform:none;
    }
    .about-timeline-item,
    .about-timeline-item:nth-child(even){
      width:auto;
      margin-left:64px;
      text-align:left;
    }
    .about-timeline-item::before,
    .about-timeline-item:nth-child(even)::before{
      left:-65px;
      right:auto;
    }
    .about-timeline-item::after,
    .about-timeline-item:nth-child(even)::after{
      left:-31px;
      right:auto;
    }
    .team-grid{grid-template-columns:1fr 1fr;}
    .training-hero{
      min-height:clamp(540px, 66vw, 660px);
      height:clamp(540px, 66vw, 660px);
      padding-top:150px;
      padding-bottom:72px;
      background:url('../assets/site/home-slide-treinamentos.jpg') top right/cover no-repeat;
    }
    .training-course-grid{grid-template-columns:1fr 1fr;}
    .training-formats-grid{grid-template-columns:1fr; gap:34px;}
    .training-format-list{grid-template-columns:1fr;}
    .training-format{min-height:auto;}
    .training-steps{grid-template-columns:1fr 1fr;}
    .training-cta-inner{grid-template-columns:1fr; padding:42px;}
    .services-cta .training-cta-inner{padding:42px;}
    .page-banner-media{
      min-height:min(74vh, 620px);
      background:
        linear-gradient(90deg, rgba(255,255,255,0.96) 0%, rgba(255,255,255,0.88) 54%, rgba(255,255,255,0.46) 100%),
        linear-gradient(180deg, rgba(255,255,255,0.16), rgba(255,255,255,0.86) 92%, #fff 100%),
        var(--page-banner-image) center right/cover no-repeat;
    }
    .service-detail-hero{
      padding-top:112px;
      padding-bottom:72px;
      background:url('../assets/site/servicos-hero-fixa.jpg') center right/cover no-repeat;
    }
  }
  @media (max-width: 680px){
    header::after{display:none;}
    header{
      min-height:82px;
      --mobile-menu-width:min(88vw, 380px);
    }
    header.menu-open::before{
      content:"";
      position:fixed;
      inset:0;
      background:rgba(25,11,61,0.52);
      backdrop-filter:blur(2px);
      z-index:0;
    }
    .nav{
      display:flex;
      position:relative;
      z-index:1;
      align-items:center;
      gap:12px;
      grid-template-columns:none;
      grid-template-rows:none;
      min-height:82px;
      padding:10px 16px;
    }
    .nav::before{display:none;}
    .header-contact{display:none;}
    .logo{
      order:1;
      position:relative;
      z-index:160;
      min-width:0;
      max-width:calc(100% - 64px);
      padding:6px 0;
    }
    .logo-img{
      width:auto;
      height:54px;
      max-width:100%;
      object-fit:contain;
    }
    header.menu-open .logo{
      position:fixed;
      top:18px;
      left:calc(100vw - var(--mobile-menu-width) + 20px);
      z-index:170;
      width:calc(var(--mobile-menu-width) - 92px);
      max-width:none;
      height:46px;
      padding:0;
      align-items:center;
    }
    header.menu-open .logo-img{
      height:46px;
      max-width:100%;
    }
    .burger{
      order:2;
      margin-left:auto;
      position:relative;
      z-index:160;
      width:46px;
      height:46px;
      border-radius:6px;
      display:flex;
      flex-direction:column;
      align-items:center;
      justify-content:center;
      background:var(--teal-900);
      box-shadow:0 14px 28px -20px rgba(27,8,80,0.78);
      transition:background 0.2s ease, transform 0.2s ease;
    }
    .burger span{
      width:24px;
      margin:3px 0;
      background:var(--bg);
      transition:transform 0.22s ease, opacity 0.22s ease;
    }
    header.menu-open .burger{
      position:fixed;
      top:18px;
      right:20px;
      background:var(--amber);
      transform:scale(0.96);
    }
    header.menu-open .burger span{
      background:var(--teal-900);
    }
    header.menu-open .burger span:nth-child(1){
      transform:translateY(8px) rotate(45deg);
    }
    header.menu-open .burger span:nth-child(2){
      opacity:0;
    }
    header.menu-open .burger span:nth-child(3){
      transform:translateY(-8px) rotate(-45deg);
    }
    .nav-links{
      position:fixed;
      top:0;
      right:0;
      bottom:0;
      width:var(--mobile-menu-width);
      display:flex;
      flex-direction:column;
      align-items:stretch;
      gap:6px;
      margin:0;
      padding:92px 20px 160px;
      background:#fff;
      border-left:1px solid var(--line);
      box-shadow:-28px 0 60px -36px rgba(27,8,80,0.7);
      overflow-y:auto;
      text-align:left;
      transform:translateX(105%);
      visibility:hidden;
      pointer-events:none;
      transition:transform 0.28s ease, visibility 0.28s ease;
      z-index:140;
    }
    .nav-links::before{
      content:"";
      position:absolute;
      top:0;
      left:0;
      right:0;
      height:5px;
      background:var(--amber);
    }
    .nav-links li{
      width:100%;
    }
    header.menu-open .nav-links{
      transform:translateX(0);
      visibility:visible;
      pointer-events:auto;
    }
    header.menu-open .nav-links > li > a{
      display:flex;
      align-items:center;
      justify-content:flex-start;
      gap:10px;
      width:100%;
      min-height:48px;
      padding:13px 14px;
      border-bottom:0;
      border-radius:8px;
      background:rgba(27,8,80,0.045);
      color:var(--teal-900);
      font-size:13px;
      line-height:1.2;
      text-align:left;
    }
    header.menu-open .nav-links > li > a:hover,
    header.menu-open .nav-links > li > a:focus-visible{
      background:var(--teal-900);
      color:var(--bg);
    }
    header.menu-open .dropdown-toggle{
      justify-content:space-between;
    }
    header.menu-open .nav-links a::after{display:none;}
    .has-dropdown::after{display:none;}
    .dropdown-menu{
      position:static;
      top:auto;
      left:auto;
      right:auto;
      transform:none;
      min-width:0;
      max-width:100%;
      width:100%;
      margin:2px 0 4px;
      padding:8px 0 8px 12px;
      border:none;
      border-left:3px solid var(--amber);
      border-radius:8px;
      box-shadow:none;
      background:rgba(27,8,80,0.035);
      display:none;
      opacity:1;
      visibility:visible;
    }
    header.menu-open .has-dropdown.is-open .dropdown-menu{
      display:block;
      transform:none;
    }
    .has-dropdown.is-open .dropdown-caret{transform:rotate(180deg);}
    .dropdown-menu a{
      padding:9px 12px;
      white-space:normal;
      color:var(--ink-soft);
      font-size:12.5px;
      text-align:left;
      border-radius:6px;
    }
    .dropdown-menu a:hover,
    .dropdown-menu a:focus-visible{
      background:rgba(247,200,28,0.2);
      color:var(--teal-900);
    }
    .nav-actions{
      position:fixed;
      right:0;
      bottom:max(12px, env(safe-area-inset-bottom));
      width:var(--mobile-menu-width);
      display:flex;
      flex-direction:column;
      gap:8px;
      padding:14px 20px 0;
      background:linear-gradient(180deg, rgba(255,255,255,0), #fff 18px);
      border-left:1px solid var(--line);
      border-top:0;
      transform:translateX(105%);
      visibility:hidden;
      pointer-events:none;
      transition:transform 0.28s ease, visibility 0.28s ease;
      z-index:145;
    }
    header.menu-open .nav-actions{
      transform:translateX(0);
      visibility:visible;
      pointer-events:auto;
    }
    header.menu-open .internal-area,
    header.menu-open .internal-area-toggle{
      width:100%;
      min-width:0;
    }
    header.menu-open .internal-area-toggle{
      min-height:48px;
      border-radius:8px;
      background:var(--teal-900);
      color:var(--bg);
      padding:13px 42px 13px 52px;
      box-shadow:0 18px 34px -26px rgba(27,8,80,0.7);
    }
    header.menu-open .internal-area-toggle::before{
      left:22px;
      width:22px;
      height:22px;
    }
    header.menu-open .internal-area-toggle::after{
      right:20px;
    }
    header.menu-open .internal-area::before{display:none;}
    header.menu-open .internal-area-menu{
      position:static;
      transform:none;
      width:100%;
      min-width:0;
      margin-top:8px;
    }
    header.menu-open .internal-area.is-open .internal-area-menu{
      transform:none;
    }
    .burger{display:flex;}
    .hero h1{font-size:29px; line-height:1.15;}
    .grid-cards{grid-template-columns:1fr;}
    .split-cards{grid-template-columns:1fr;}
    .timeline{grid-template-columns:1fr; gap:40px;}
    .tl-item:not(:last-child)::after{display:none;}
    .footer-grid{grid-template-columns:1fr 1fr; column-gap:22px; row-gap:34px;}
    .footer-grid > div{min-width:0;}
    .footer-grid > div:first-child{grid-column:1 / -1;}
    .footer-logo{height:48px;}
    .footer-tag,
    footer li{font-size:13.5px;}
    .footer-contact-link{align-items:flex-start; overflow-wrap:anywhere;}
    .footer-bottom{flex-direction:column; align-items:center; text-align:center; gap:10px;}
    .privacy-section{padding:58px 0 72px;}
    .privacy-block,
    .privacy-summary{padding:26px;}
    .privacy-block p,
    .privacy-block li{font-size:15.5px;}
    .section{padding:76px 0;}
    #lista-servicos,
    .training-page #cursos{
      padding-top:48px;
    }
    .site-hero{
      position:relative;
      min-height:100vh;
      padding-top:110px;
      padding-bottom:56px;
    }
    .site-hero::before{
      content:"";
      position:absolute;
      inset:0;
      z-index:1;
      background:
        linear-gradient(90deg, rgba(255,255,255,0.94) 0%, rgba(255,255,255,0.84) 48%, rgba(255,255,255,0.42) 76%, rgba(255,255,255,0.1) 100%),
        linear-gradient(180deg, rgba(255,255,255,0.28) 0%, rgba(255,255,255,0.08) 42%, rgba(255,255,255,0.5) 100%);
      pointer-events:none;
    }
    .home-hero::before{
      display:none;
    }
    .site-hero-copy{
      position:relative;
      z-index:2;
    }
    .home-hero{
      min-height:clamp(600px, 76vh, 700px);
      height:auto;
      padding:38px 0 64px;
    }
    .site-hero-copy h1{
      font-size:33px;
      max-width:100%;
      line-height:1.12;
      text-shadow:0 2px 14px rgba(255,255,255,0.86);
    }
    .services-hero .site-hero-copy h1,
    .training-hero .site-hero-copy h1,
    .about-hero .site-hero-copy h1{
      max-width:100%;
    }
    .services-hero .site-hero-copy .hero-sub,
    .training-hero .site-hero-copy .hero-sub,
    .about-hero .site-hero-copy .hero-sub{
      max-width:100%;
    }
    .home-hero-copy h1{max-width:100%;}
    .home-hero-copy .hero-sub{max-width:100%;}
    .home-hero-copy .hero-ctas{gap:12px;}
    .home-hero-copy .btn{width:100%; justify-content:center;}
    .site-hero-copy .hero-sub{
      color:rgba(27,8,80,0.88);
      font-size:16px;
      font-weight:500;
      text-shadow:0 1px 12px rgba(255,255,255,0.88);
    }
    .site-hero-copy .hero-eyebrow{
      text-shadow:0 1px 10px rgba(255,255,255,0.88);
    }
    .home-hero-copy .btn-ghost,
    .site-hero-copy .btn-ghost{
      background:rgba(255,255,255,0.84);
      color:var(--teal-900);
      border-color:rgba(27,8,80,0.82);
      backdrop-filter:blur(4px);
    }
    .home-hero-arrow{display:none;}
    .home-hero-dots{bottom:18px;}
    .home-hero{
      background:url('../assets/site/home-slide-conformidade.jpg') top right/cover no-repeat;
    }
    .home-hero-overlay{
      background:
        linear-gradient(90deg, rgba(255,255,255,0.94) 0%, rgba(255,255,255,0.82) 48%, rgba(255,255,255,0.38) 76%, rgba(255,255,255,0.08) 100%),
        linear-gradient(180deg, rgba(255,255,255,0.22) 0%, rgba(255,255,255,0.04) 42%, rgba(255,255,255,0.48) 100%);
    }
    .home-hero-slide{
      background-position:center top;
      background-size:cover;
    }
    .home-hero-slide:nth-child(1){
      background-image:url('../assets/site/home-slide-conformidade-mobile.webp') !important;
    }
    .home-hero-slide:nth-child(2){
      background-image:url('../assets/site/home-slide-servicos-mobile.webp') !important;
    }
    .home-hero-slide:nth-child(3){
      background-image:url('../assets/site/home-slide-treinamentos-mobile.webp') !important;
    }
    .services-hero{
      min-height:clamp(600px, 76vh, 700px);
      height:auto;
      padding-top:104px;
      padding-bottom:64px;
      background:url('../assets/site/home-slide-servicos-mobile.webp') center top/cover no-repeat;
    }
    .about-hero{
      min-height:clamp(600px, 76vh, 700px);
      height:auto;
      padding-top:104px;
      padding-bottom:64px;
      background:url('../assets/site/sobre-hero-equipe-mobile.png') center top/cover no-repeat;
    }
    .home-video{padding:76px 0;}
    .home-solution-grid{grid-template-columns:1fr;}
    .home-solution-card{min-height:auto; padding:24px;}
    .home-solution-grid-two .home-solution-card{
      min-height:360px;
      padding:30px 24px;
    }
    .home-solution-grid-two .home-solution-card h3{
      font-size:32px;
    }
    .home-solution-grid-two .home-solution-card p{
      font-size:15px;
    }
    .partners-grid{
      grid-template-columns:repeat(3, minmax(0, 1fr));
    }
    .service-solution-grid{grid-template-columns:1fr;}
    .service-solution{min-height:auto; padding:24px;}
    .service-process{padding:76px 0;}
    .service-process-grid{grid-template-columns:1fr;}
    .about-story-media,
    .about-story-media img{min-height:300px;}
    .about-award-photo img{height:clamp(360px, 118vw, 560px);}
    .about-facts-grid,
    .about-timeline,
    .team-grid,
    .about-values{grid-template-columns:1fr;}
    .about-fact{padding:28px 24px;}
    .about-value{min-height:auto; padding:28px 24px;}
    .about-timeline-item,
    .about-timeline-item:nth-child(even){
      padding:0;
      margin-left:58px;
    }
    .about-timeline-item::before,
    .about-timeline-item:nth-child(even)::before{
      left:-59px;
    }
    .about-timeline-item::after,
    .about-timeline-item:nth-child(even)::after{
      left:-27px;
      width:28px;
    }
    .team-feature-photo img{
      height:clamp(260px, 66vw, 420px);
      object-position:center 58%;
    }
    .training-hero{
      min-height:clamp(600px, 76vh, 700px);
      height:auto;
      padding-top:104px;
      padding-bottom:64px;
      background:url('../assets/site/home-slide-treinamentos-mobile.webp') center top/cover no-repeat;
    }
    .training-metrics{grid-template-columns:1fr; margin-top:42px;}
    .about-metrics{grid-template-columns:1fr; margin-top:42px;}
    .training-metrics div{padding:20px;}
    .about-metrics div{padding:20px;}
    .training-course-grid{grid-template-columns:1fr;}
    .training-course{min-height:auto; padding:24px;}
    .training-format-copy h2, .training-cta h2{font-size:32px;}
    .training-formats{padding:76px 0;}
    .training-steps{grid-template-columns:1fr;}
    .training-cta{padding-bottom:76px;}
    .training-cta-inner{padding:30px 24px;}
    .services-cta{padding:76px 0 84px;}
    .services-cta .training-cta-inner{padding:30px 24px;}
    .page-banner-media{
      min-height:clamp(600px, 76vh, 700px);
      padding-top:128px;
      text-align:left;
      background:
        linear-gradient(180deg, rgba(255,255,255,0.94) 0%, rgba(255,255,255,0.86) 54%, rgba(255,255,255,0.68) 100%),
        var(--page-banner-image) center right/cover no-repeat;
    }
    .service-detail-hero{
      min-height:clamp(600px, 76vh, 700px);
      height:auto;
      padding-top:104px;
      padding-bottom:64px;
      background:url('../assets/site/home-slide-servicos-mobile.webp') center top/cover no-repeat;
    }
    .page-banner-media h1{font-size:33px; max-width:100%; line-height:1.12;}
    .page-banner-media p{font-size:16px;}
  }

  /* ---------- página de contato ---------- */
  .contact-section{padding:20px 0 110px;}
  .contact-grid{display:grid; grid-template-columns:1.1fr 0.9fr; gap:56px; align-items:start;}
  .contact-form{background:var(--paper); border:1px solid var(--line); border-radius:12px; padding:40px; box-shadow:var(--shadow);}
  .contact-field{margin-bottom:22px;}
  .contact-field label{
    display:block; font-family:'Montserrat', sans-serif; font-weight:600; font-size:12px;
    letter-spacing:0.06em; text-transform:uppercase; color:var(--ink-soft); margin-bottom:8px;
  }
  .contact-field input, .contact-field select, .contact-field textarea{
    width:100%; font-family:'Montserrat', sans-serif; font-size:15px; color:var(--ink);
    background:var(--bg); border:1px solid var(--line); border-radius:6px; padding:13px 16px;
  }
  .contact-field input:focus, .contact-field select:focus, .contact-field textarea:focus{
    outline:2px solid var(--amber-dark); outline-offset:1px; border-color:var(--amber-dark);
  }
  .contact-field textarea{min-height:120px; resize:vertical; font-family:inherit;}
  .contact-row{display:grid; grid-template-columns:1fr 1fr; gap:20px;}
  .contact-form .btn{width:100%; justify-content:center; border:none; cursor:pointer; font-size:14px;}
  .form-status{
    margin:14px 0 0;
    font-size:13.5px;
    line-height:1.45;
    color:var(--muted);
  }
  .form-status.is-success{color:#18794E; font-weight:600;}
  .form-status.is-error{color:#B42318; font-weight:600;}
  .contact-channels{display:flex; flex-direction:column; gap:20px;}
  .channel-card{
    background:var(--teal-900); color:var(--bg); border-radius:12px; padding:30px 28px;
    display:flex; gap:18px; align-items:flex-start;
    transition:transform 0.25s ease, box-shadow 0.25s ease;
  }
  .channel-card:hover{transform:translateY(-4px); box-shadow:var(--shadow);}
  .channel-icon{
    flex:none; width:52px; height:52px; border-radius:50%; border:2px dashed var(--amber);
    display:flex; align-items:center; justify-content:center;
  }
  .channel-icon svg{width:24px; height:24px;}
  .channel-card h4{color:var(--bg); font-size:16px; text-transform:none; margin-bottom:6px; font-weight:700;}
  .channel-card p{color:#C2BBDE; font-size:14.5px;}
  .channel-card a{color:var(--amber); text-decoration:none; font-weight:600;}
  .channel-card a:hover{text-decoration:underline;}
  @media (max-width:980px){
    .contact-grid{grid-template-columns:1fr;}
  }
  @media (max-width:560px){
    .contact-row{grid-template-columns:1fr;}
    .contact-form{padding:28px 22px;}
  }

  /* cards da página de serviços: título e texto centralizados */
  #lista-servicos .selo-card{
    flex-direction:column; align-items:center; text-align:center;
  }
  #lista-servicos .selo-card h4{margin-bottom:10px;}

  /* ---------- área interna (links no topo) ---------- */
  .nav-actions{
    display:grid;
    grid-template-columns:repeat(2, minmax(0, 1fr));
    align-items:stretch;
    gap:0;
  }
  .nav-login{
    font-family:'Montserrat', sans-serif; font-weight:700; font-size:12px; letter-spacing:0.06em; text-transform:uppercase;
    background:transparent; color:var(--teal-900); text-decoration:none;
    padding:11px 20px; border:1px solid var(--teal-900); border-radius:6px; white-space:nowrap;
    transition:background 0.2s ease, color 0.2s ease;
  }
  .nav-login:hover{background:var(--teal-900); color:var(--bg);}

  @media (max-width:680px){
    .nav-actions{display:none;}
    header.menu-open .nav-actions{display:flex;}
    header.menu-open .internal-card{
      width:100%;
      min-height:48px;
      justify-content:flex-start;
      border-left:0;
      border-radius:8px;
      background:var(--teal-900);
      color:var(--bg);
      padding:13px 20px 13px 52px;
      font-size:12px;
      box-shadow:0 18px 34px -26px rgba(27,8,80,0.7);
    }
    header.menu-open .internal-card::before{
      left:20px;
      width:21px;
      height:21px;
    }
    header.menu-open .internal-card:hover,
    header.menu-open .internal-card:focus-visible{
      background:var(--amber-dark);
      color:var(--teal-900);
    }
  }

  /* ---------- páginas importadas de serviços e treinamentos ---------- */
  .service-two-col{
    display:grid;
    grid-template-columns:minmax(0, 1fr) minmax(0, 1fr);
    gap:56px;
    align-items:start;
  }
  .service-two-col > *{
    min-width:0;
  }
  .service-two-col > .reveal:first-child p{
    color:var(--ink);
    font-size:17px;
    line-height:1.72;
    margin-bottom:18px;
  }
  .service-two-col > .reveal:first-child p:last-child{
    margin-bottom:0;
  }
  .service-side{
    display:flex;
    flex-direction:column;
    align-items:stretch;
    padding-top:44px;
  }
  .service-copy-back{
    display:inline-flex;
    margin-top:0;
    margin-bottom:22px;
  }

  .cards-center .selo-card{flex-direction:column; align-items:center; text-align:center;}
  .cards-center .selo-card h4{margin-bottom:10px;}

  #cursos .selo-card{
    flex-direction:column; align-items:center; text-align:center;
  }
  #cursos .selo-card h4{margin-bottom:10px;}
  #cursos .grid-cards{
    display:flex; flex-wrap:wrap; justify-content:center; gap:24px;
  }
  #cursos .grid-cards > .selo-card{
    flex:0 1 calc(33.333% - 16px);
  }

  .service-highlight{
    background:var(--paper); border:1px solid var(--line); padding:28px;
    box-shadow:var(--shadow);
  }
  .service-highlight h3{
    font-family:'Montserrat', sans-serif; font-weight:800; font-size:18px;
    color:var(--teal-900); margin-bottom:14px;
  }
  .service-highlight ul{margin:0; padding-left:20px; color:var(--ink-soft); font-size:15px; line-height:1.7;}
  .service-highlight li{margin-bottom:8px;}

  .accordion-modulo{border-bottom:1px solid var(--line);}
  .accordion-modulo:last-child{border-bottom:none;}
  .accordion-header{
    width:100%; border:0; background:transparent; padding:16px 0; cursor:pointer;
    display:flex; align-items:center; justify-content:space-between; gap:16px; text-align:left;
    font-family:'Montserrat', sans-serif; font-weight:700; color:var(--teal-900);
  }
  .accordion-header .modulo-titulo{flex:1;}
  .accordion-header .modulo-duracao{
    flex:none; color:var(--amber-dark); font-size:12px; letter-spacing:0.06em; text-transform:uppercase;
  }
  .accordion-caret{flex:none; margin-left:4px; transition:transform 0.25s ease; color:var(--amber-dark);}
  .accordion-modulo.open .accordion-caret{transform:rotate(180deg);}
  .accordion-body{max-height:0; overflow:hidden; transition:max-height 0.3s ease;}
  .accordion-body ul{margin:0 0 14px; padding-left:0; list-style:none; color:var(--ink-soft); font-size:13.5px; line-height:1.6;}
  .accordion-body li{margin-bottom:8px; display:flex; align-items:flex-start; gap:10px;}
  .accordion-body li::before{content:""; width:6px; height:6px; border-radius:50%; background:var(--teal-600); margin-top:7px; flex:none;}
  .accordion-body li .aula-duracao{flex:none; color:var(--ink-soft); opacity:0.65; font-size:12.5px; white-space:nowrap;}

  .course-cards-grid{display:grid; grid-template-columns:repeat(2,1fr); gap:32px;}
  .course-card{
    background:var(--paper); border:1px solid var(--line); box-shadow:var(--shadow);
    overflow:hidden; transition:transform 0.2s ease, border-color 0.2s ease;
  }
  .course-card:hover{transform:translateY(-3px); border-color:var(--amber-dark);}
  .course-card-media{
    min-height:180px; background:var(--teal-900); color:var(--amber);
    display:flex; align-items:center; justify-content:center;
    font-family:'Montserrat', sans-serif; font-weight:800; letter-spacing:0.08em; text-transform:uppercase;
  }
  .course-card-body{padding:28px 26px 30px;}
  .course-card-body h3{
    font-size:22px; margin-bottom:12px; color:var(--teal-900);
  }
  .course-card-body p{color:var(--ink-soft); font-size:14px; line-height:1.65;}

  #etapas .grid-cards{gap:52px;}
  #etapas .selo-card{position:relative; padding:26px 18px 22px;}
  #etapas .selo-card:not(:last-child)::after{
    content:""; position:absolute; top:50%; right:-34px; width:18px; height:2px;
    background:var(--line-dark); opacity:0.35;
  }

  @media (min-width:981px){
    #etapas .grid-cards:has(.selo-card:nth-child(4)){grid-template-columns:repeat(4,1fr);}
    #etapas .grid-cards:not(:has(.selo-card:nth-child(4))){grid-template-columns:repeat(3,1fr);}
  }

  @media (max-width:980px){
    .service-two-col{
      grid-template-columns:1fr;
      gap:28px;
    }
    .service-side{
      padding-top:0;
    }
    .service-copy-back{
      margin-bottom:18px;
    }
    #cursos .grid-cards > .selo-card{flex:0 1 calc(50% - 12px);}
    #etapas .grid-cards{grid-template-columns:repeat(2,1fr);}
    #etapas .selo-card::after{display:none;}
    .course-cards-grid{grid-template-columns:1fr;}
  }

  @media (max-width:680px){
    #cursos .grid-cards > .selo-card{flex:0 1 100%;}
    #etapas .grid-cards{grid-template-columns:1fr;}
  }

  @media (max-width:680px){
    .services-hero,
    .training-hero,
    .about-hero,
    .service-detail-hero{
      background-size:cover;
      background-repeat:no-repeat;
    }
    .home-hero,
    .home-hero-slide{
      background-position:62% top;
    }
    .home-hero-slide:nth-child(2),
    .services-hero,
    .service-detail-hero{
      background-position:58% top;
    }
    .home-hero-slide:nth-child(3),
    .training-hero{
      background-position:72% top;
    }
    .about-hero{
      background-position:70% top;
    }
    .page-banner-media{
      background-size:auto, auto, auto 100%;
      background-position:center, center, 62% center;
      background-repeat:no-repeat;
    }
    .home-video-frame video,
    .home-video-frame img{
      aspect-ratio:4/3;
      object-fit:cover;
      object-position:center;
    }
    .about-story-media,
    .about-award-photo,
    .team-feature-photo{
      min-height:0;
      height:auto;
      overflow:hidden;
    }
    .about-story-media,
    .about-award-photo{
      aspect-ratio:4/3;
    }
    .team-feature-photo{
      aspect-ratio:16/10;
    }
    .about-story-media img,
    .about-award-photo img,
    .team-feature-photo img{
      width:100%;
      height:100%;
      object-fit:cover;
    }
    .about-story-media img{
      object-position:center;
    }
    .about-award-photo img{
      object-position:center;
    }
    .team-feature-photo img{
      object-position:center 58%;
    }
    .partners-grid{
      grid-template-columns:repeat(2, minmax(0, 1fr));
      gap:12px;
    }
    .partner-logo{
      min-height:88px;
      padding:14px 12px;
    }
    .partner-logo img{
      max-height:58px;
    }
    .partners-toggle{
      justify-content:center;
      min-width:100%;
      padding-left:14px;
      padding-right:14px;
      text-align:center;
    }
    .footer-logo{
      max-width:min(100%, 220px);
      height:auto;
    }
  }
