/* ==========================================================================
   HOME / HERO — Firma
   Base desktop 1920×1080 (layout atual), com variáveis para ajustes
   ========================================================================== */

:root{
  /* Paleta / efeitos */
  --hero-accent: #009DE0;
  --hero-glow-strong: 0 0 6px rgba(0,157,224,.75);
  --hero-glow-soft:   0 0 5px rgba(0,157,224,.45);

  /* Posição base do bloco de texto (desktop 1920) */
  --hero-left: 235px;     /* distância a partir da esquerda da página */
  --hero-top:  190px;     /* ~70px após o header */

  /* Dimensões do bloco de copy */
  --copy-w: 650px;
  --copy-h: 700px;

  /* Tipografia base (desktop) */
  --fz-eyebrow: 30px;  --lh-eyebrow: 1.1;  --ls-eyebrow: 4px;   /* tracking 4px */
  --fz-title:   75px;  --lh-title:   1.05;
  --fz-slogan:  32px;  --lh-slogan:  1.2;
  --fz-body:    16px;  --lh-body:    1.6;

  /* CTA */
  --cta-h: 70px;
  --cta-bw: 2px;               /* espessura do traço */
  --cta-radius: 70px 8px 44px 0;

  /* Fatiamento da imagem (3 retângulos) */
  --slice1: 350px;   /* esquerda  */
  --slice2: 330px;   /* meio      */
  --slice3: 100px;   /* direita   */

  /* Offsets/medidas dos elementos de canto (ancorados na HERO) */
  --fx-bar-w: var(--media-w);  /* mesma largura do conjunto de fatias */
  --fx-bar-h: 50px;
  --fx-bar-bottom: -20px;      /* posiciona encostado à base da hero */
  --fx-firma-w: 200px;
  --fx-firma-right: 25px;
  --fx-firma-bottom: 0px;
  --fx-scroll-w: 110px;
  --fx-scroll-h: 93px;
  --fx-scroll-bottom: -15px;

  /* Dots */
  --dot-size: 27px;
  --dot-gap:  25px;

      /* vars FLUIDAS (clamp direto) */
  --media-w: clamp(500px, calc(500px + (360 * (100vw - 1000px) / 920)), 860px);
  --media-h: clamp(445.274px, calc(445.274px + (209.726 * (100vw - 1000px) / 920)), 655px);
  --slice-gap: clamp(30px, calc(30px + (10 * (100vw - 1000px) / 920)), 40px);

  /* grid: soma original 350+330+100 = 780 (mantemos as proporções) */
  --gridW: calc(var(--media-w) - (2 * var(--slice-gap)));
  --slice1: calc(var(--gridW) * 0.4487179487); /* 350/780 */
  --slice2: calc(var(--gridW) * 0.4230769231); /* 330/780 */
  --slice3: calc(var(--gridW) * 0.1282051282); /* 100/780 */

  --t: clamp(0, (100vw - 1000px) / 920px, 1);
  --uw-k: 0.25;
  --uw: clamp(0px, 100vw - 1920px, 640px);
}

/* =========================
   Contêiner da sessão
   ========================= */
.hero{
    position: relative;
    min-height: 720px;
    padding-top: var(--hero-top);
  }

/* =========================
   Bloco de texto (copy)
   ========================= */
.hero__copy{
    width: 650px;
    min-height: 700px;
    margin-left: clamp(67px, 11vw, 250px);
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    color: #fff;
  }
/* clamp(67px, 14vw, 250px); */

.hero__eyebrow{
    margin: 0;
    font: 500 clamp(17px, 1.3vw, 30px) "Poppins", system-ui, -apple-system, Segoe UI, Roboto, "Helvetica Neue", Arial, "Noto Sans", "Liberation Sans", sans-serif;
    letter-spacing: 4px;               /* pedido: 4px de tracking */
    color: var(--hero-accent);
    
  }

  /* título */
  .hero__title{
    margin: 5px 0 0 0;               /* 25px abaixo do eyebrow */
    font: 600 clamp(42px, 4vw, 80px) "Poppins", sans-serif;
    line-height: 1.1;
    color: #fff;
    text-transform: uppercase;
  }

.hero__slogan{
  margin: 15px 0 0 0; /* 15px abaixo do título */
  font: 600 clamp(18px, 1.77vw, 38px)/var(--lh-slogan) "Poppins", sans-serif;
  text-transform: uppercase;
  color: var(--hero-accent);
  text-shadow: var(--hero-glow-soft);  /* brilho só no texto azul */
}

  .hero__body{
    margin: 30px 0 0 0;               /* 35px abaixo do slogan */
    font-family: 'Poppins', system-ui, -apple-system, Segoe UI, Roboto, Arial, sans-serif;
    font-weight: 300;
    font-size: clamp(9px, 0.81vw, 18px);
    color: #fff;
    text-align: left;
    max-width: clamp(48%, 30vw, 100%);     /* quebra ~30px antes do limite */
    overflow-wrap: break-word;
    hyphens: auto;
  
    /* clamp suave de segurança (até ~11 linhas) */
    display: -webkit-box;
    /* -webkit-line-clamp: 11; */
    -webkit-box-orient: vertical;
    overflow: hidden;
  }

/* =========================
   CTA — glow só no traço
   ========================= */
.cta-firma{
  position: relative;
  display: inline-flex;
  align-items: center;
  gap: 10px;
  height: clamp(39px, 3.5vw, 70px);
  min-width: 160px;
  padding: 0 24px 0 58px;       /* espaço para o desenho curvado */
  color: #fff;
  text-decoration: none;
  isolation: isolate;           /* evita o ::before afetar filhos */
  margin-top: 50px;
}
.cta-firma::before{
  content: "";
  position: absolute;
  inset: 0;
  border: var(--cta-bw) solid var(--hero-accent);
  border-radius: var(--cta-radius); /* TL TR BR BL */
  pointer-events: none;
  background: transparent;
  filter: drop-shadow(var(--hero-glow-strong)); /* glow NA BORDA */
}
.cta-firma > *{ filter: none; }  /* impede herdar drop-shadow */

.cta-firma__text{
  font: 600 clamp(15px, 1.2vw, 27px)/1 "Poppins", sans-serif;
  letter-spacing: 1.5px; /* aproximação do “50” do Illustrator */
}
.cta-firma__icon{
  width: 30px; height: 28px; display: inline-block;
}

/* =========================
   Trilho azul (barra vertical à esquerda)
   altura vem por JS via --rail-h
   ========================= */
.hero__rail{
  position: absolute;
  width: clamp(8px, 1vw, 12px);
  left: clamp(25px, 8.5vw, 190px);
  top: var(--hero-top);
  height: var(--rail-h, 120px);
  background: var(--hero-accent);
  filter: drop-shadow(0 0 4px rgba(0,157,224,.75));
  pointer-events: none;
}

/* =========================
   Mídia fatiada — uma imagem em 3 retângulos
   ========================= */
.hero__media{
  position: absolute;
  top: clamp(141px, calc(141px + (42 * (100vw - 1000px) / 920)), 160px);
  right: 0;
  width: var(--media-w);
  height: var(--media-h);
  display: flex;
  gap: var(--slice-gap);
  pointer-events: none;
  z-index: 1;
  will-change: width, height;
}

/* Cada fatia usa a MESMA imagem, recortada via background-position */
.hero__media .slice{
  display: block;
  height: 100%;
  width: 100%;
  background-image: var(--hero-img, url('../img/home/render-casa.png')); /* ← manter assim */
  background-repeat: no-repeat;
  background-size: var(--bg-w, var(--media-w)) var(--bg-h, var(--media-h));
}

/* Larguras/posições das 3 colunas (mantêm o seu naming) */
.hero__media .s-left  { width: var(--slice1); background-position:   0 center; }

.hero__media .s-mid   {
  width: var(--slice2);
  background-position: calc(-1 * (var(--slice1) + var(--slice-gap))) center;
}

.hero__media .s-right {
  width: var(--slice3);
  background-position: calc(-1 * (var(--slice1) + var(--slice-gap) + var(--slice2) + var(--slice-gap))) center;
}
/* =========================
   UI do canto (ancorada à HERO)
   ========================= */
.fx-ui{
  position: absolute;  /* Fica “dentro” da hero, não acompanha o scroll */
  inset: 0;
  z-index: 10;
  pointer-events: none;
}

/* 1) Barra azul de base (canto direito) */
.fx-bar{
  position: absolute;
  right: 0;
  bottom: 2.6px;
  width: var(--fx-bar-w);
  height: var(--fx-bar-h);
  background: var(--hero-accent);
  filter: drop-shadow(var(--hero-glow-strong));
}

/* 2) Ícone Firma (sobre a barra) */
.fx-firma{
  position: absolute;
  right: var(--fx-firma-right);
  bottom: 7px;
  width: clamp(100px, 11vw, 200px);
  height: auto;
  /* filter: drop-shadow(0 0 5px rgba(255, 255, 255, 0.35)); */
}

/* 3) Botão central com seta animada */
.fx-scroll{
  position: absolute;
  left: 50%;
  margin-bottom: 15px;
  bottom: var(--fx-scroll-bottom);
  translate: -50% 0;
  width: var(--fx-scroll-w);
  height: var(--fx-scroll-h);
  background: transparent;
  border: 1.5px solid var(--hero-accent);
  filter: drop-shadow(var(--hero-glow-strong));
  display: grid;
  place-items: center;
  cursor: pointer;
  pointer-events: auto; /* clicável */
}

@keyframes cueDrop {
  0%   { transform: translateY(-14px); opacity: 0; }
  20%  { opacity: 1; }
  70%  { transform: translateY(8px);  opacity: 1; }
  100% { transform: translateY(16px); opacity: 0; }
}
.fx-scroll .fx-arrow{ animation: cueDrop 1.4s infinite ease-in-out; width: 40px; height: 40px;}

/* =========================
   Dots do slider
   ========================= */
.hero__dots{
  position: absolute;
  top: clamp(540px, 38vw, 750px);
  left: clamp(368px, 37vw, 780px);
  display: flex;
  flex-direction: row-reverse;   /* cresce para a esquerda */
  gap: clamp(15px, 2vw, 25px);
  align-items: center;
}
.hero__dots .dot{
  width: clamp(17px, 1.5vw, 27px);
  height: clamp(17px, 1.5vw, 27px);
  border-radius: 50%;
  border: 0;
  background: #fff;
  cursor: pointer;
}
.hero__dots .dot.is-active,
.hero__dots .dot[aria-selected="true"]{   /* extra fail-safe */
  background: var(--hero-accent);
}
.hero__dots .dot:focus-visible{
  outline: 2px solid var(--hero-accent);
  outline-offset: 2px;
}



/* ==========================================================================
   SESSÃO 2 — MISSÕES
   ========================================================================== */
   .missions{
    position: relative;
    margin-top: 10px;          /* 10px abaixo da sessão de cima */
    width: 100vw;
    height: 782px;
    background: #323131;       /* sobrepõe o bg */
    overflow: visible;         /* permite a faixa “por fora” */
  }
  
  /* Título */
  .missions__heading{
    position: absolute;
    top: 10px;
    left: 50%;
    translate: -50% 0;
    font-family: "Poppins", sans-serif;
    font-weight: 800;          /* bold da família carregada */
    font-size: 50px;
    letter-spacing: 4px;
    color: #BABABA;
    text-transform: uppercase;
    line-height: 1;
    white-space: nowrap;
  }
  
  /* Palco (container 1472×444 centralizado) */
  .missions__stage{
    position: absolute;
    left: 50%;
    margin-top: 144px;                 /* 10px (topo) + 50px (título) + 24px */
    translate: -50% 0;
    width: 1472px;
    height: 444px;
  }
  
  /* Cards (posicionados) */
  .missions__card{
    position: absolute;
    border-radius: 0 63px 0 63px;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    padding: 0 24px;
    box-sizing: border-box;
    cursor: pointer; /* agora fica claro que é clicável */
    transition:
      left .7s cubic-bezier(.22,.61,.36,1),
      top .7s cubic-bezier(.22,.61,.36,1),
      width .7s, height .7s,
      opacity .7s, transform .7s, background-color .7s, box-shadow .7s, border-color .7s;
  }

  .missions__title{
    margin: 0;
    font-family: "Poppins", sans-serif;
    font-weight: 800;
    text-transform: uppercase;
    line-height: 1.05;
  }
  .missions__body{
    margin: 12px 0 0 0;
    font-family: "Poppins", sans-serif;
    font-weight: 500;          /* Medium */
    font-size: 17px;
    line-height: 1.6;
  }
  
  /* Laterais (outline) */
  .missions__card.is-left,
  .missions__card.is-right{
    width: 431px;
    height: 361px;
    border: 3px solid #BABABA;
    background: transparent;
    color: #FFF;
    opacity: .85;
  }
  .missions__card.is-left  { left: 0;                     top: calc((444px - 361px)/2); }
  .missions__card.is-right { left: calc(1472px - 431px);  top: calc((444px - 361px)/2); }
  
  .missions__card.is-left .missions__title,
  .missions__card.is-right .missions__title{
    font-size: 50px;
    color: #FFFFFF;
    padding-top: 17px;         /* pedido */
  }
  .missions__card.is-left .missions__body,
  .missions__card.is-right .missions__body{
    color: #BABABA;
    max-width: 382px;
    max-height: 173.5px;
  }
  
  /* Centro (featured) */
  .missions__card.is-center{
    width: 494px;
    height: 441px;
    left: calc((1472px - 494px)/2);
    top: calc((444px - 441px)/2);
    background: #BABABA;
    border: none;
    box-shadow: 0 0 7px rgba(186,186,186,.75); /* brilho 7px 75% */
    color: #323131;
    opacity: 1;
  }
  .missions__card.is-center .missions__title{
    font-size: 58px;
    color: #323131;
    margin-top: 45px;          /* pedido */
  }
  .missions__card.is-center .missions__body{
    color: #212121;
    max-width: 448px;
    max-height: 173.5px;
  }
  
  /* leve sensação de “passagem” (opacidade/offset lados) */
  .missions__card.is-left  { transform: translateX(-12px); }
  .missions__card.is-right { transform: translateX( 12px); }
  
  /* Seta central cinza — 664px do topo da sessão */
  .missions__scroll{
    position: absolute;
    left: 50%;
    top: 664px;
    translate: -50% 0;
    width: 110px;
    height: 93px;
    background: transparent;
    border: 1.5px solid #BABABA;
    display: grid;
    place-items: center;
    cursor: pointer;
    pointer-events: auto;
  }

  .missions__scroll_arrow{
    width: 40px;
    height: 40px;
  }
  
  /* Faixa com ícone repetido (por fora) */
  .missions__pattern{
    position: absolute;
    left: 0;
    top: calc(100% + 10px);    /* 10px abaixo do fundo da sessão */
    width: 100vw;
    height: 81.5px;
    background-image: url("../img-padrao/repete icone firma.svg");
    background-repeat: repeat-x;
    background-size: auto 81.5px;
  }
  
  /* selo branco dentro do card (só aparece no card central) */
  .missions__brand{
    position: absolute;
    right: 15px;
    bottom: 15px;
    width: 80px;
    height: auto;
    pointer-events: none;
    user-select: none;
    display: none;                 /* oculto por padrão */
  }
  .missions__card.is-center .missions__brand{
    display: block;                /* visível apenas no destaque */
  }

  /* ==========================================================================
   SESSÃO 3 — PROJETOS (desktop→mobile)
   ========================================================================== */
.projects{
  position: relative;
  margin-top: 226px;                   /* 226px abaixo da sessão anterior */
  /* helper local da faixa 1000↔1920 (0..1) p/ gaps fluidos */
  --t: clamp(0, (100vw - 1000px) / 920px, 1);
  --filters-gap: clamp(28px, calc(28px + (100px - 28px) * var(--t)), 100px);
  --card-w: clamp(320px, calc(320px + (546px - 320px) * var(--t)), 546px);
  --card-h: calc(var(--card-w) * (365 / 546)); /* mantém proporção 546×365 */
}

/* Título */
.projects__heading{
  margin: 60px 0 50px 170px;             /* topo 60px; left 170px */
  font-family: "Poppins", sans-serif;
  font-weight: 800;
  font-size: 50px;
  letter-spacing: 5px;
  color: #BABABA;
  text-transform: uppercase;
  line-height: 1;
  white-space: nowrap;
}

/* Filtros */
.projects__filters{
  margin: 24px 0 0 170px;
  display: flex;
  align-items: center;
  gap: 100px;          /* antes: gap: var(--filters-gap) */
  flex-wrap: wrap;
}
.projects__filter{
  appearance: none;
  background: none;
  border: 0;
  padding: 0;
  font-family: "Poppins", sans-serif;
  font-weight: 600;                    /* Medium */
  font-size: 25px;                     /* default */
  color: #fff;
  text-transform: uppercase;
  line-height: 1.1;
  cursor: default;
  position: relative;
}
.projects__filter.is-active{
  font-size: 35px;
  cursor: default;
}
.projects__filter.is-active::before{
  margin-top: 17px;
  content: "";
  position: absolute;
  inset: 18% -6px 18% -6px;           /* “hover de seleção” atrás da letra */
  background: #009DE0;
  filter: drop-shadow(0 0 6px rgba(0,157,224,.65));
  z-index: -1;
  height: 10px;
}

.projects__grid{
  width: 1638px;
  margin: 40px auto 0 auto;         /* centraliza na tela */
  display: grid;
  grid-template-columns: repeat(3, 546px);
  grid-auto-rows: 365px;            /* altura fixa de cada linha */
  gap: 0;                           /* “encostadas” */
}

/* Cartão de projeto (imagem ajustável via --x) */
.projects__card{
  width: 100%;
  height: 100%;
  overflow: hidden;
  border-radius: 0px;
  background: none;
}
.projects__card > img{
  width: 100%;
  height: 100%;
  object-fit: cover;
  /* deslocamento horizontal por card (px): style="--x:3.7px" */
  --x: 0px;
  object-position: calc(50% + var(--x)) center;
  display: block;
}

/* CTA “Mostrar mais” central — 70px abaixo da última fileira */
.projects__more{
  display: inline-flex;
  align-items: center;
  gap: 8px;
  margin: 70px auto 0 auto;            /* centralizado */
  left: 50%;
  transform: translateX(-50%);
  position: relative;                   /* mantém estilo da .cta-firma */
}

/* Modificador: seta para baixo (45°) — não mexe no botão original */
.cta-rotate-90{
  transform: rotate(90deg);
}


/* ==========================================================================
   FOOTER — desktop
   ========================================================================== */
   .site-footer{
    position: relative;
    margin-top: 90px;            /* 90px abaixo da sessão anterior */
    height: 100px;
  }
  
  /* retângulo azul 1534x100, zerado à esquerda */
  .footer__bar{
    position: absolute;
    width: 1534px;
    height: 100px;
    background: #009DE0;
    overflow: visible;           /* deixa a forma "sair" se precisar */
  }
  
  /* forma sobreposta (100px de altura), encostada no bottom
     e levemente deslocada 50px para a direita */
  .footer__shape_azul{
    position: absolute;
    right: -15px;
    bottom: 0;
    height: 100px;
    transform: translateX(50px); /* “afastada 50px para a direita” */
    pointer-events: none;
    user-select: none;
    z-index: 10;
  }

  .footer__shape_branco{
    position: absolute;
    right: -65px;
    bottom: 0;
    height: 100px;
    transform: translateX(50px); /* “afastada 50px para a direita” */
    pointer-events: none;
    user-select: none;
    z-index: 9;
  }

  .footer__shape_cinza{
    position: absolute;
    right: -105px;
    bottom: 0;
    height: 100px;
    transform: translateX(50px); /* “afastada 50px para a direita” */
    pointer-events: none;
    user-select: none;
    z-index: 8;
  }
  
  
  /* ícone firma branco (80px), fixo no rodapé */
  .footer__brand{
    position: absolute;
    left: 25px;
    bottom: 14px;
    width: 80px;
    height: auto;
    pointer-events: none;
    user-select: none;
  }
  
  /* navegação inferior — começa 50px após o selo (25 + 80 + 50 = 155px) */
  .footer__nav{
    position: absolute;
    left: 155px;
    top: 50%;
    transform: translateY(-50%);
    display: flex;
    align-items: center;
    z-index: 11;
    gap: 20px;
  }
  .footer__link{
    font-family: "Poppins", sans-serif;
    font-weight: 600;                 /* Semibold */
    font-size: 40px;
    letter-spacing: -2.5px;
    color: #FFF;
    text-decoration: none;
  }
  .footer__sep{
    font-family: "Poppins", sans-serif;
    font-weight: 300;                 /* Semibold */
    font-size: 60px;
    margin: 0 10px;                   /* gap de 80px entre os botões */
    color: #FFF;
    font-size: 40px;
    line-height: 1;
  }
  
  /* crédito do desenvolvedor — 660px depois do bloco de navegação */
  .footer__dev{
    position: absolute;
    left: clamp(300px, 60vw, 1200px);
    top: 50%;
    transform: translateY(-50%);
    display: inline-flex;
    align-items: baseline;
    gap: 10px;                        /* gap entre os dois textos */
    color: #FFF;
    z-index: 11;
  }

  .footer__dev-label{
    font-family: "Poppins", sans-serif;
    font-weight: 400;
    font-size: 20px;
    letter-spacing: 5px;
  }

  .footer__dev-name{
    font-family: "Poppins", sans-serif;
    font-weight: 600;                 /* Semibold */
    font-size: 35px;
    letter-spacing: 4px;              /* ajuste fino; aumente se quiser mais “respiro” */
  }
  

/* ==========================================================================
  RESPONSIVO — Esqueleto pronto para ajustes finos
  (mantém o visual atual e te dá alavancas para tunar por breakpoint)
  ========================================================================== */


@media (max-width: 1400px){
  :root{
    --fz-title: 68px;
    --fz-slogan: 30px;
  }
}

@media (max-width: 1900px){
  .fx-scroll{
    margin-left: clamp(-70px, 100vw, -370px);
  }
}


@media (max-width: 1200px){
  :root{
    --hero-left: 180px;
    --fz-title: 62px;
    --fz-slogan: 28px;
  }
}

/* ====== TABLET 1000 → 600 (ponte entre desktop e mobile) ====== */
@media (min-width: 601px) and (max-width: 1000px){

  /* helper 600→1000 (0..1) para gaps/fluidos neste range */
  :root{
    --t600: clamp(0, (100vw - 600px) / 400, 1);
  }

  /* HERO — copy menor + alinhamento pedido para tablet */
  .hero{
    /* mantém a altura, só segura um pouco mais o topo */
    padding-top: 160px;
    /* recalibra as fatias para caberem ao lado da copy */
    --media-w: clamp(420px, 48vw, 500px);
    --media-h: calc(var(--media-w) * 0.7616); /* 655/860 */
    --slice-gap: 28px;
  }
  .hero__copy{
    width: clamp(400px, 48vw, 520px);
    min-height: unset;
    margin-left: 67px;                     /* pedido (conjunto) */
  }
  .hero__eyebrow{ font-size: 17px; letter-spacing: 4px; }
  .hero__title{   font-size: 42px; }
  .hero__slogan{  font-size: 18px; }
  .hero__body{    font-size: 10px; max-width: 100%; }

  .cta-firma{
    height: 40px;                           /* 192×40 */
    padding: 0 20px 0 52px;
  }
  .cta-firma__text{ font-size: 15px; }

  .hero__rail{
    left: 27px;                              /* pedido */
    width: 9px;
  }

  .hero__dots{
    gap: 13px;                               /* pedido */
  }
  .hero__dots .dot{
    width: 15px; height: 15px;               /* pedido */
  }

  /* MISSÕES — escala o palco inteiro (sem reescrever posições) */
  .missions__stage{
    width: 1472px; height: 444px;            /* base desktop */
    left: 50%; translate: -50% 0;
    transform-origin: center top;
    /* 600px => 53.5% ; 1000px => 100% */
    --m-scale: calc(0.535 + (1 - 0.535) * var(--t600));
    transform: scale(var(--m-scale));
  }

  /* PROJETOS — gap dos filtros suave neste range */
  .projects__filters{
    gap: clamp(28px, calc(28px + (100px - 28px) * var(--t600)), 100px);
  }
}


@media (max-width: 600px){

  /* ============== sessão 01 ==================*/
  .hero{
    min-height: 200px;
    padding-top: 105px;
  }

  .hero__copy{
    width: 330px;
    min-height: 615px;
    margin-left: 58px;
  }

  .hero__eyebrow{
    font-size: 15px;
    letter-spacing: 2px; 
  }

  /* título */
  .hero__title{
    margin-top: 0px;
    font-size: 21px;
    /* letter-spacing: 1px;          */
  }

  .hero__slogan{
    margin: 3px 0 0 0;
    font-size: 16px;
    letter-spacing: 0.5px;
  }

    .hero__body{
      margin: 10px 0 0 0;              
      font-size: 9.5px;
      max-width: 315px; 
    }

    .cta-firma{
      gap: 5px;
      height: 26px;
      min-width: 100px;
      padding: 0 10px 0 30px;       /* espaço para o desenho curvado */
      margin-top: 10px;
    }
    .cta-firma::before{
      content: "";
      position: absolute;
      inset: 0;
      border: var(--cta-bw) solid var(--hero-accent);
      border-radius: var(--cta-radius); /* TL TR BR BL */
      pointer-events: none;
      background: transparent;
      filter: drop-shadow(var(--hero-glow-strong)); /* glow NA BORDA */
    }
    .cta-firma > *{ filter: none; }
    
    .cta-firma__text{
      font: 600 12px/1 "Poppins", sans-serif;
      letter-spacing: 1.5px; /* aproximação do “50” do Illustrator */
    }
    .cta-firma__icon{
      width: 14px; height: 100%; display: inline-block;
    }

    .hero__rail{
      width: 6px;
      left: clamp(25px, 8.5vw, 190px);
      top: 108px;
    }

    .hero__dots{
      top: 292px;
      left: 288px;
      gap: 13px;
    }
    .hero__dots .dot{
      width: 14px;
      height: 14px;
    }
    .hero__media{
      top: 345px;
      right: 0;
      width: 415px;
      height: 326.5px;
      gap: 20px;
    }
    .hero__media .s-left  { 
      width: 150.7px; 
      background-position:   0 0; 
    }

    .hero__media .s-mid   {
      width: 150.7px;
      background-position:   -175.18px 0px;
    }

    .hero__media .s-right {
      width: 64.9px;
      background-position:   -350.08px 0px;
    }

    .fx-bar{
      bottom: 0px;
      width: 360px;
      height: 27px;
    }
    
    /* 2) Ícone Firma (sobre a barra) */
    .fx-firma{
      right: 7px;
      bottom: 7px;
      width: 90px;
      height: auto;
      /* filter: drop-shadow(0 0 5px rgba(255, 255, 255, 0.35)); */
    }
    
    /* 3) Botão central com seta animada */
    .fx-scroll{
      left: 28px;
      width: 45px;
      height: 35px;
    }

    .fx-scroll .fx-arrow{
      width: 14px; 
      height: 16px;
    }
    /* ===========================================*/
    /* ============== sessão 02 ==================*/

    .missions{
      margin-top: 0px;          /* 10px abaixo da sessão de cima */
      width: 100vw;
      height: 442px;
      background: #323131;       /* sobrepõe o bg */
      overflow: visible;         /* permite a faixa “por fora” */
    }

    /* Título */
  .missions__heading{
    top: 15px;
    font-size: 27px;
    letter-spacing: 2px;
  }
  
  /* Palco (container 1472×444 centralizado) */
  .missions__stage{
    margin-top: 95px;
    width: 788px;
    height: 235.5px;
  }
  
  /* Cards (posicionados) */
  .missions__card{
    border-radius: 0 40px 0 40px;
  }
  .missions__title{
    margin: 0;
    line-height: 1.05;
  }
  .missions__body{
    margin: 12px 0 0 0;
    font-size: 11px;
    line-height: 1.1;
  }
  
  /* Laterais (outline) */
  .missions__card.is-left,
  .missions__card.is-right{
    width: 230px;
    height: 192.7px;
  }
  .missions__card.is-left  { left: 0;                     top: calc((235.5px - 192.7px)/2); }
  .missions__card.is-right { left: calc(788px - 235.5px);  top: calc((235.5px - 192.7px)/2); }
  
  .missions__card.is-left .missions__title,
  .missions__card.is-right .missions__title{
    font-size: 28px;
    color: #FFFFFF;
    padding-top: 15px;         /* pedido */
  }
  .missions__card.is-left .missions__body,
  .missions__card.is-right .missions__body{
    color: #BABABA;
    max-width: 204px;
    max-height: 90px;
    font-size: 8px;
  }
  
  /* Centro (featured) */
  .missions__card.is-center{
    width: 263px;
    height: 235px;
    left: calc((788px - 263px)/2);
    top: calc((235.5px - 235px)/2);
  }
  .missions__card.is-center .missions__title{
    font-size: 29px;
    margin-top: 27px;
  }
  .missions__card.is-center .missions__body{
    max-width: 238.7px;
    max-height: 92.61px;
  }
  
  
  /* Seta central cinza — 664px do topo da sessão */
  .missions__scroll{
    left: 50%;
    top: 370px;
    width: 45px;
    height: 35px;
  }

  .missions__scroll_arrow{
    width: 16px;
    height: 20px;
  }
  
  /* Faixa com ícone repetido (por fora) */
  .missions__pattern{
    top: calc(100% + 5px);    /* 10px abaixo do fundo da sessão */
    width: 100vw;
    height: 50px;
    background-image: url("../img-padrao/repete icone firma.svg");
    background-repeat: repeat-x;
    background-size: auto 50px;
  }
  
  /* selo branco dentro do card (só aparece no card central) */
  .missions__brand{
    position: absolute;
    right: 6.5px;
    bottom: 6.5px;
    width: 40px;
    height: auto;
    pointer-events: none;
    user-select: none;
    display: none;                 /* oculto por padrão */
  }
  .missions__card.is-center .missions__brand{
    display: block;                /* visível apenas no destaque */
  }

  /* ===========================================*/
  /* ============== sessão 03 ==================*/

  .projects{
    position: relative;
    margin-top: 100px;                   /* 226px abaixo da sessão anterior */
  }
  
  /* Título */
  .projects__heading{
    margin: 20px 0 20px 20px;             /* topo 60px; left 170px */
    font-size: 35px;
    letter-spacing: 2px;
  }
  
  /* Filtros */
  .projects__filters{
    margin: 0px 0 0 23px;
    gap: 25px;          /* antes: gap: var(--filters-gap) */
  }
  .projects__filter{
    font-weight: 300;
    font-size: 13px;                     /* default */
  }
  .projects__filter.is-active{
    font-weight: 600;
    font-size: 20px;
  }
  .projects__filter.is-active::before{
    margin-top: 10px;
    inset: 18% -5px 18% -5px; 
    height: 6px;
  }
  
  .projects__grid{
    width: 360px;
    margin-top: 20px;
    margin-left: -11px;
    grid-template-columns: repeat(1, 360px);
    grid-auto-rows: 240px;            /* altura fixa de cada linha */
    gap: 0;                           /* “encostadas” */
  }
  
  /* CTA “Mostrar mais” central — 70px abaixo da última fileira */
  .projects__more{
    gap: 8px;
    margin: 50px auto 0 auto;     
    height: 40px;
    padding: 0 20px 0 30px;
  }

  /* ===========================================*/
  /* ============== footer ==================*/
  
  .site-footer{
    position: relative;
    margin-top: 40px;            /* 90px abaixo da sessão anterior */
    height: 73px;
  }
  
  /* retângulo azul 1534x100, zerado à esquerda */
  .footer__bar{
    position: absolute;
    left: 0;
    bottom: 0px;
    width: 300px;
    height: 40px;
    background: #009DE0;
    overflow: visible;           /* deixa a forma "sair" se precisar */
  }
  
  /* forma sobreposta (100px de altura), encostada no bottom
     e levemente deslocada 50px para a direita */
  .footer__shape_azul{
    position: absolute;
    right: -15px;
    bottom: 0;
    height: 40px;
    transform: translateX(50px); /* “afastada 50px para a direita” */
    pointer-events: none;
    user-select: none;
    z-index: 10;
  }

  .footer__shape_branco{
    position: absolute;
    right: -36px;
    bottom: 0;
    height: 40px;
    transform: translateX(50px); /* “afastada 50px para a direita” */
    pointer-events: none;
    user-select: none;
    z-index: 9;
  }

  .footer__shape_cinza{
    position: absolute;
    right: -57px;
    bottom: 0;
    height: 40px;
    transform: translateX(50px); /* “afastada 50px para a direita” */
    pointer-events: none;
    user-select: none;
    z-index: 8;
  }
  
  
  /* ícone firma branco (80px), fixo no rodapé */
  .footer__brand{
    left: 5px;
    bottom: 3px;
    width: 35px;
  }
  
  /* navegação inferior — começa 50px após o selo (25 + 80 + 50 = 155px) */
  .footer__nav{
    margin-top: 15px;
    left: 55px;
    gap: 2px;
  }
  .footer__link{
    font-weight: 400;
    font-size: 12px;
    letter-spacing: 0px;

  }
  .footer__sep{
    font-family: "Poppins", sans-serif;
    font-weight: 200;                 /* Semibold */
    font-size: 5px;
    margin: -3px 5px 0 5px;                   /* gap de 80px entre os botões */
    color: #FFF;
    font-size: 40px;
    line-height: 1;
  }
  
  /* crédito do desenvolvedor — 660px depois do bloco de navegação */
  .footer__dev{
    margin-top: 15px;
    left: 250px;
    top: 50%;
    display: grid;
    align-items: center;
    gap: 0px;                        
  }

  .footer__dev-label{
    font-family: "Poppins", sans-serif;
    font-weight: 400;
    font-size: 8px;
    letter-spacing: 0px;
    margin-bottom: -6px;
    margin-left: 13px;
  }

  .footer__dev-name{
    font-family: "Poppins", sans-serif;
    font-weight: 600;                 /* Semibold */
    font-size: 18px;
    letter-spacing: 6px;              /* ajuste fino; aumente se quiser mais “respiro” */
  }

}
