:root {
  --primary-color: #73cc34;
  /* --secondary-color: #73cc34; */
  --text-color: #013972;
  /* --font-family: 'Arial', sans-serif; */
}

* {
  margin: 0;
  box-sizing: border-box;
  color: var(--text-color);
}

h1,
h2,
h3,
h4,
h5,
h6 {
  font-family: "Bebas Neue", sans-serif !important;
  font-weight: 400;
  font-style: normal;
}

body {
  height: 100%;
  font-family: "Montserrat", sans-serif;
  font-optical-sizing: auto;
  font-style: normal;
}

/* Boot Css */
.container {
  max-width: 1600px;
  margin: 0 auto;
  padding: 0 2%;
}
.left {
  float: left;
}
.right {
  float: right;
}
.w55 {
  width: 55%;
}
.w50 {
  width: 50%;
}
.w45 {
  width: 45%;
}
.w33 {
  width: 33.33%;
}

.w25 {
  width: 25%;
}

.flex {
  display: flex;
}

.flex-row {
  flex-direction: row;
}

.btn {
  display: inline-block;
  padding: 7px 20px;
  background-color: var(--text-color);
  color: white;
  text-decoration: none;
  border-radius: 10px;
  transition: background-color 0.3s ease;
  text-transform: uppercase;
}

.btn-green {
  background: linear-gradient(90deg, #8be05a 0%, #58b947 100%);
}
/*Fim Boot Css */

body > header {
  background-image: url("../assets/banner.png");
  background-position: center;
  background-size: cover;
  background-repeat: no-repeat;
  min-height: 80vh;
  padding: 60px;
}

body > header .logo {
  margin: 0 auto;
  text-align: center;
  padding-top: 55px;
}

body > header .logo img {
  max-width: 175px;
}

body > header .content {
  color: white;
  max-width: 85%;
  padding-top: 5px;
}

body > header .content h1 {
  font-size: 4.4rem;
  text-transform: uppercase;
  max-width: 70%;
  margin: 15px auto;
}

body > header .content .wrapper-p {
  margin: 40px auto;
  width: 70%;
}

body > header .content p {
  font-size: 1rem;
  max-width: 300px;
  border-left: 3px solid var(--primary-color);
  padding-left: 10px;
}

body > header .content .wrapper-btn {
  max-width: 70%;
  margin: 25px auto;
}

section.differences {
  background-image: url("../assets/bg01.png");
  background-position: center;
  background-size: cover;
  background-repeat: no-repeat;
  padding: 90px 0 60px 0;
}

section.differences .container {
  max-width: 1100px;
}

section.differences .card {
  width: 30.33%;
  margin: 10px 1% 60px 1%;
  text-align: center;
  border: 2px solid var(--primary-color);
  border-radius: 15px;
  padding: 7px 12px;
}

section.differences .card img {
  width: 80%;
  position: relative;
  top: -50px;
  border-radius: 15px;
  max-height: 150px;
}

section.differences .card h2 {
  position: relative;
  top: -20px;
  font-family: "montserrat", sans-serif !important;
  font-weight: 700;
  font-size: 1.3rem;
}

section.soluctions {
  background-image: url("../assets/bg02.png");
  background-position: center;
  background-size: cover;
  background-repeat: no-repeat;
  padding: 60px 2%;
  text-align: center;
}

section.soluctions .title {
  align-items: center;
  justify-content: center;
  padding-bottom: 40px;
}
section.soluctions .title img {
  width: 60px;
}

section.soluctions .title h2 {
  padding: 0 10px;
  font-size: 1.8rem;
}

section.soluctions span:not(section.soluctions .title span) {
  background-color: var(--primary-color);
  font-weight: 600;
  color: white;
  padding: 2px 6px 5px 6px;
  border-radius: 6px;
}

section.soluctions p {
  max-width: 650px;
  margin: 0 auto;
  font-size: 1rem;
  padding: 15px 0 30px 0;
  font-weight: 500;
}

section.brands {
  background-image: url("../assets/bg03.png");
  background-position: center;
  background-size: cover;
  background-repeat: no-repeat;
  padding: 50px 2%;
  text-align: center;
}

section.brands h2 {
  font-size: 2.2rem;
  max-width: 610px;
  margin: 0 auto 30px auto;
  text-transform: uppercase;
}
section.brands .gallery {
  max-width: 1000px;
  margin: 0 auto;
}

section.brands .line {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  align-items: center;
  gap: clamp(12px, 2.5vw, 28px);
  padding: 20px 0;
  width: 100%; /* todas as linhas com a mesma largura */
  margin: 0 auto;
}

section.brands .line .gallery-item {
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 6px 10px;
  height: auto; /* deixa a altura natural */
  flex: 0 1 auto;
}

section.brands .line .gallery-item img {
  display: block;
  height: clamp(36px, 6vw, 64px); /* todas as logos com a mesma altura */
  width: auto; /* preserva proporção */
  max-width: 180px; /* evita estourar em logos muito largas */
  object-fit: contain;
}

section.assistance {
  background-image: url("../assets/bg04.png");
  background-position: center;
  background-size: cover;
  background-repeat: no-repeat;
  padding: 90px 2% 0 2%;
}

section.assistance .half01 {
  position: relative;
}

section.assistance .half01 h2 {
  color: white;
  font-size: 4rem;
  line-height: 70px;
  position: absolute;
  left: 60%;
  top: 45px;
  text-transform: uppercase;
}

section.assistance .half02 {
  text-align: center;
}
section.assistance .half02 img {
  width: 80%;
}
section.assistance .half03 p {
  font-size: 0.9rem;
}
section.assistance .half03 b {
  font-size: 1.18rem;
}
section.assistance .half03 p,
section.assistance .half03 b {
  max-width: 220px;
  margin: 20px 0;
  color: white;
}

section.assistance .half03 p,
section.assistance .half03 a {
  top: -20px;
  left: -13%;
  position: relative;
}

section.assistance .half03 p .line {
  border-bottom: 3px solid black;
  width: 40%;
  margin-top: 30px;
  left: 4px;
  position: absolute;
}

section.assistance .half03 a {
  top: 100px;
}

section.best-products {
  background-image: url("../assets/bg05.png");
  background-position: center;
  background-size: cover;
  background-repeat: no-repeat;
  padding: 100px 2% 90px 2%;
  text-align: center;
}

section.best-products h2 {
  font-size: 2.2rem;
  text-transform: uppercase;
  background-color: var(--primary-color);
  display: inline;
  padding: 4px 10px 2px 10px;
}

section.best-products p {
  max-width: 600px;
  margin: 15px auto 0px auto;
  font-size: 1rem;
  font-weight: 400;
  color: white;
}
section.best-products b {
  font-weight: 600;
  color: white;
}

section.products {
  background-image: url("../assets/bg06.png");
  background-position: center;
  background-size: cover;
  background-repeat: no-repeat;
  padding: 90px 0;
  text-align: center;
}

section.products .container {
  max-width: 1000px;
}

section.products .container .card header .wrapper-item {
  width: 80%;
  position: relative;
  padding-top: 60.25%; /* altura proporcional */
  margin: 0 auto;
}

section.products .container .card header .wrapper-item .item {
  position: absolute;
  top: 0;
  left: 0;
  height: 100%;
  width: 100%;
  background-size: contain;
  background-position: center;
  background-repeat: no-repeat;
  border-radius: 20px;
  background-color: white;
}

section.products .container .card header h1 {
  font-size: 1.15rem;
  margin: 15px auto 10px auto;
  font-weight: 600;
  font-family: "montserrat", sans-serif !important;
  max-width: 70%;
}

section.products .triple-line {
  position: relative;
  margin: 60px 0;
  width: 100%;
}
section.products .triple-line .line {
  width: 28%;
  border-bottom: 4px solid var(--text-color);
}
section.products .triple-line .line:first-child {
  position: absolute;
  left: 0;
}
section.products .triple-line .line:nth-child(2) {
  position: absolute;
  right: 0;
}

section.products .triple-line .line-center-green {
  border-bottom: 4px solid var(--primary-color);
  width: 40%;
  margin: 0 auto;
}

section.products .container .btn {
  margin-top: 60px;
  width: 35%;
}

/* ====== Seção ====== */
section.last-projects {
  background-image: url("../assets/bg07.png");
  background-position: center;
  background-size: cover;
  background-repeat: no-repeat;
  padding: 90px 0;
}

/* Container e grid 2 colunas */
.last-projects .container {
  max-width: 1180px;
  margin: 0 auto;
  padding: 0 24px;
  display: grid;
  grid-template-columns: 1fr 1.1fr;
  align-items: center;
  gap: 40px;
}
/* ===== LAST-PROJECTS: proteções gerais ===== */
.last-projects {
  overflow: hidden;
} /* evita scroll horizontal se as setas passarem da borda */
.last-projects .half01,
.last-projects .half02 {
  min-width: 0;
}
.last-projects .half01 h2 {
  font-size: 5rem;
  line-height: 1.05;
  text-transform: uppercase;
  letter-spacing: 0.02em;
  font-weight: 500;
  color: white;
  display: inline;
  position: relative;
  left: 30%;
}
/* ====== WRAPPER DO SLIDER ====== */
/* Faz a .half02 ser a caixa de referência das setas (mesma largura do swiper) */
.last-projects .half02 {
  position: relative;
  width: 100%;
  max-width: 640px; /* mesmo limite do swiper */
  margin-inline: auto; /* centraliza o conjunto */
}

/* ====== Swiper / Slider ====== */
.last-projects .half02 .swiper {
  width: 100%;
  max-width: 100%; /* herda da .half02 */
  margin-inline: auto;
  position: relative;
  overflow: hidden; /* nada transborda do slide */
  padding-inline: 0;
}

/* ====== Moldura branca arredondada ====== */
.last-projects .slide-frame {
  position: relative;
  padding: clamp(8px, 1.5vw, 14px);
  border: 2px solid #fff;
  border-radius: 32px;
  aspect-ratio: 16 / 11;
  display: grid;
  overflow: hidden;
  z-index: 1;
  padding: 20px;
}

/* ====== Bloco com background (substitui <img>) ====== */
.last-projects .slide-frame .slide-bg {
  width: 100%;
  height: 100%;
  border-radius: 14px;
  background-size: cover;
  background-repeat: no-repeat;
  background-position: center;
}

/* Utilitários de posição (ajuste de foco) */
.last-projects .slide-frame .pos-top {
  background-position: 50% 0%;
}
.last-projects .slide-frame .pos-bottom {
  background-position: 50% 100%;
}
.last-projects .slide-frame .pos-left {
  background-position: 0% 50%;
}
.last-projects .slide-frame .pos-right {
  background-position: 100% 50%;
}
.last-projects .slide-frame .pos-center-30 {
  background-position: 50% 30%;
}
.last-projects .slide-frame .pos-center-40 {
  background-position: 50% 40%;
}
.last-projects .slide-frame .pos-center-top {
  background-position: 50% 25%;
}

/* =======================
   BOTÕES DE NAVEGAÇÃO
   (estão FORA do .swiper)
   ======================= */
.last-projects .half02 > .swiper-button-prev,
.last-projects .half02 > .swiper-button-next {
  position: absolute; /* posiciona relativo à .half02 */
  top: 50%;
  transform: translateY(50%);
  width: 30px;
  height: 30px;
  border-radius: 999px;
  background: #fff;
  box-shadow: 0 6px 18px rgba(0, 0, 0, 0.18);
  color: #0a0a0a;
  z-index: 20; /* acima da moldura/slide */
  pointer-events: auto;
}

.last-projects .half02 > .swiper-button-prev {
  left: -15px;
}
.last-projects .half02 > .swiper-button-next {
  right: -15px;
}

.last-projects .half02 > .swiper-button-prev::after,
.last-projects .half02 > .swiper-button-next::after {
  font-size: 16px;
  font-weight: 900;
}

/* ====== Paginação (opcional) ====== */
.last-projects .swiper-pagination-bullet {
  opacity: 1;
}

section.about {
  background-image: url("../assets/bg08.png");
  background-position: center;
  background-size: cover;
  background-repeat: no-repeat;
  padding: 90px 0;
  text-align: center;
}

section.about h2 {
  font-size: 3rem;
  font-weight: 500;
  color: #0d2d55; /* Azul escuro */
  text-transform: uppercase;
  margin-bottom: 40px;
}

section.about h2 span {
  color: #58b947; /* Verde */
}

section.about .box-content {
  display: inline-block;
  min-width: 430px;
  padding: 30px 30px;
  max-width: 500px;
  margin: 0 auto;
  margin-bottom: 40px;
  position: relative;
  background-image: url("../assets/box-stars.png");
  background-position: center;
  background-size: contain;
  background-repeat: no-repeat;
}

section.about p {
  font-size: 16px;
  padding-top: 5px;
  color: #0d2d55;
  font-weight: 500;
  line-height: 1.5;
}

section.sistemig-irrigacao {
  background-image: url("../assets/bg09.png");
  background-position: center;
  background-size: cover;
  background-repeat: no-repeat;
  padding: 90px 0;
  text-align: center;
}

section.sistemig-irrigacao img {
  max-width: 180px;
}

section.events {
  position: relative;
  background-image: url("../assets/bg10.png");
  background-position: center;
  background-size: cover;
  background-repeat: no-repeat;
  padding: 80px 0 90px;
  text-align: center;
  color: #fff;
}

section.events h2 {
  font-size: 3rem;
  font-weight: 500;
  color: #0d2d55; /* Azul escuro */
  text-transform: uppercase;
  color: #ffffff;
}

section.events .bg-gradient {
  display: inline-block;
  padding: 6px 12px;
  color: #fff;
  background: linear-gradient(90deg, #7fd552 0%, #58b947 28%, #073a7a 100%);
  -webkit-box-decoration-break: clone;
  box-decoration-break: clone;
}

section.events .cards {
  position: relative;
  z-index: 1; /* fica acima do overlay */
  display: flex;
  align-items: center;
  justify-content: center;
  gap: clamp(16px, 3vw, 36px);
  margin-top: 50px;
  flex-wrap: wrap;
}

/* item/card */
section.events .item {
  border-radius: 16px;
  max-width: min(360px, 90vw);
}

section.events .item img {
  display: block;
  width: 100%;
  height: auto;
  border-radius: 12px;
  object-fit: cover;
}

/* ====== PRESENCE (corrigido) ====== */
section.presence {
  position: relative;
  background-image: url("../assets/bg11.png");
  background-position: center;
  background-size: cover;
  background-repeat: no-repeat;
  padding: 80px 0 90px;
}

section.presence .container {
  max-width: 1120px;
  margin: 0 auto;
  padding: 0 24px;
  display: flex;
  align-items: center;
}

section.presence .half01 h2 {
  margin: 0 0 14px 0;
  color: #0d2d55; /* azul escuro */
  font-weight: 500;
  text-transform: uppercase;
  letter-spacing: 0.5px;
  line-height: 1.05;
  font-size: 3.6rem;
  max-width: 420px;
}

section.presence h2 span {
  display: inline-block;
  font-family: "Montserrat", sans-serif;
  margin-top: 10px;
  padding: 8px 14px;
  border-radius: 5px;
  color: #fff;
  font-weight: 600;
  font-size: 0.5rem;
  line-height: 1.2;
  background: var(--primary-color);
  text-transform: capitalize;

  max-width: 220px;
}

section.presence .half02 img {
  display: block;
  width: 100%;
  max-width: 500px;
}

/* ===== PARTNER – base (mobile-first) ===== */
section.partner {
  background-image: url("../assets/bg12.png");
  background-position: center;
  background-size: cover;
  background-repeat: no-repeat;
  padding: 60px 0; /* espaçamento ao redor da moldura */
}

/* a “moldura” verde é um bg com proporção fixa */
section.partner .box-partner {
  position: relative;
  width: min(92vw, 1055px); /* limita a largura e mantém folga nas laterais */
  aspect-ratio: 1055 / 369; /* >> NÃO deforma o PNG << */
  margin: 0 auto;
  background: url("../assets/box-anos.png") center top / contain no-repeat;
  display: grid;
  place-items: center;
  padding: 0; /* o espaço útil vem do próprio PNG */
}

/* texto interno – centralizado e com largura controlada */
section.partner .box-partner p {
  color: #fff;
  text-align: center;
  width: 80%; /* área de leitura dentro da moldura */
  max-width: 820px; /* evita linhas longas no desktop grande */
  font-size: clamp(12px, 2.8vw, 18px);
  line-height: clamp(1.35, 2.2vw, 1.6);
  margin: 0;
}

/* ====== MAP ====== */
section.map {
  background-image: url("../assets/bg13.png");
  background-position: center;
  background-size: cover;
  background-repeat: no-repeat;
  padding: 80px 0 90px;
}

section.map h2 {
  margin: 0 0 14px 0;
  color: #0d2d55; /* azul do layout */
  text-transform: uppercase;
  font-weight: 900;
  line-height: 1.05;
  letter-spacing: 0.5px;
  font-size: clamp(28px, 3.4vw, 48px);
}
section.map h2 span {
  display: block; /* força quebra de linha */
  font-size: clamp(40px, 6vw, 72px);
}

/* parágrafo */
section.map p {
  margin: 0 0 22px 0;
  max-width: 310px;
  color: #0d2d55;
  font-size: 1rem;
  line-height: 1.55;
  font-weight: 500;
}

section.map .half01 {
  display: flex;
  justify-content: center;
  align-items: end;
  flex-direction: column;
  padding: 0 5%;
}

/* ===== CTAs do mapa (WhatsApp) ===== */
.cta-map {
  display: flex;
  flex-wrap: wrap;
  gap: 16px;
  margin-top: 18px;
  flex-direction: column;
}

.btn-wa {
  display: inline-flex;
  align-items: center;
  font-size: 12px;
  gap: 10px;
  border-radius: 14px;
  padding: 8px 18px;
  font-weight: 600;
  letter-spacing: 0.3px;
  text-transform: uppercase;
  border: 2px solid transparent;
  transition: transform 0.15s ease, box-shadow 0.2s ease, background 0.2s ease,
    color 0.2s ease;
  min-width: 280px; /* mantém o mesmo tamanho visual */
  justify-content: center; /* centraliza o conteúdo */
}

.btn-wa i {
  font-size: 20px;
  line-height: 1;
}

/* Primário (verde WhatsApp) com texto azul da paleta */
.btn-wa--primary {
  background: linear-gradient(158deg, #8be059 -143%, #58b947 28%);
  color: #0d2d55; /* seu azul escuro */
}

/* Secundário (azul sólido) com ícone verde */
.btn-wa--secondary span {
  color: #ffffff;
}
.btn-wa--secondary {
  background: #0d2d55;
}

/* Cores dos ícones */
.btn-wa--primary i {
  color: #0d2d55;
}
.btn-wa--secondary i {
  color: #7fd552;
}

/* Hover/focus */
.btn-wa:hover {
  transform: translateY(-1px);
  box-shadow: 0 10px 20px rgba(0, 0, 0, 0.12);
}
.btn-wa:focus {
  outline: 2px solid #7fd552;
  outline-offset: 2px;
}

/* Mobile: um por linha */
@media (max-width: 992px) {
  .cta-map .btn {
    width: 100%;
  }
}

section.map .box-map {
  width: 100%;
  max-width: 520px;
  aspect-ratio: 16 / 11; /* mantém proporção */
  border-radius: 16px;
  overflow: hidden;
  background: #e9eef3; /* fallback */
  position: relative;
}

/* se usar <iframe> ou <img> dentro da .box-map, ele preenche tudo */
section.map .box-map iframe,
section.map .box-map img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  border: 0;
  object-fit: cover;
}

/* --- ajustes base para mobile-first --- */
.flex {
  display: flex;
  flex-wrap: wrap;
}
.w55,
.w50,
.w45,
.w33,
.w25 {
  width: 100%;
} /* empilha no mobile */

/* ===== desktop ≥ 993px ===== */
@media screen and (min-width: 993px) {
  .w50:not(.presence *) {
    width: 50%;
  }
  .w45:not(.presence *) {
    width: 45%;
  }
  .w33:not(.presence *) {
    width: 33.33%;
  }
  .w25 :not(.presence *) {
    width: 25%;
  }

  /* Presence: 2 colunas reais */
  section.presence .container {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(420px, 560px);
    align-items: center;
    gap: 48px;
  }
}

/* ≥1280px — trava no tamanho máximo do arquivo */
@media screen and (min-width: 1280px) {
  section.partner .box-partner {
    width: 1055px;
  } /* PNG no tamanho nativo */
  /* o aspect-ratio calcula a altura automaticamente: 1055/369 */
}

/* ≥1024px — estado “cheio”, sem quebrar o PNG */
@media screen and (min-width: 1024px) {
  section.partner {
    padding: 100px 0;
  }
  section.partner .box-partner {
    width: min(78vw, 1055px);
  }
  section.partner .box-partner p {
    width: 68%;
    font-size: 17px; /* mantém o equilíbrio com a moldura */
    line-height: 1.55;
  }
}

/* ===== até 1100px ===== */
@media screen and (max-width: 1100px) {
  /* Assistência: remove absolutos e centraliza */
  section.assistance .half01 h2 {
    position: static;
    text-align: center;
    font-size: clamp(28px, 8vw, 56px);
    line-height: 1.05;
    margin-bottom: 16px;
    order: 1;
  }

  section.assistance .half02 {
    order: 2;
  }
  section.assistance .half02 img {
    width: 100%;
    max-width: 420px;
    margin: 0 auto;
  }
  section.assistance .half03 {
    padding-bottom: 40px;
  }
  section.assistance .half03 p,
  section.assistance .half03 a {
    text-align: center;
    position: static;
    left: 0;
    top: 0;
  }
  section.assistance .half03 p,
  section.assistance .half03 b {
    max-width: none;
    text-align: center;
  }
  section.assistance .half03 a {
    display: block;
    width: 100%;
    max-width: 300px;
    margin: 10px auto 0;
  }
  section.differences .card {
    flex: 1 1 calc(33.33% - 24px);
  }

  section.assistance .half03 p .line {
    left: 50%;
    transform: translateX(-50%);
  }

  section.assistance .half03 p b {
    display: block;
    margin-top: 10px;
  }
}

/* ===== até 992px ===== */
@media screen and (max-width: 992px) {
  /* HERO */
  body > header {
    background: linear-gradient(0deg, rgba(0, 0, 0, 0), rgba(0, 0, 0, 0.1)),
      url("../assets/banner.png");
    padding: 40px 16px;
    min-height: auto;
    background-size: 175% 100%;
    opacity: 1;
  }

  body > header .content {
    max-width: 100%;
    text-align: center;
  }
  body > header .content h1 {
    font-size: clamp(28px, 8vw, 48px);
    line-height: 1.05;
    max-width: 100%;
  }
  body > header .content .wrapper-p {
    width: 100%;
    margin: 20px auto;
  }
  body > header .content p {
    border-left: 0;
    padding-left: 0;
    max-width: 100%;
  }
  body > header .content .wrapper-btn {
    max-width: 420px;
    margin: 20px auto 0;
  }
  .btn.btn-large {
    width: 100%;
  }

  section.differences .card img {
    max-height: 230px;
  }

  /* DIFERENCIAIS: vira grade fluida */
  section.differences .flex {
    gap: 24px;
    justify-content: center;
  }
  section.differences .card {
    width: auto;
    flex: 1 1 100%;
    max-width: 520px;
    margin: 30px 0;
  }

  /* ===== até 768px ===== */
  @media screen and (min-width: 768px) {
    section.differences .card img {
      max-height: 300px;
    }
    section.differences .card {
      flex: 1 1 calc(50% - 24px);
    }

    section.brands .line .gallery-item img {
      height: 44px;
    }
    section.events {
      padding: 60px 0 70px;
    }
    section.events .bg-gradient {
      margin-top: 8px;
    }
    section.partner {
      padding: 90px 0;
    }
    section.partner .box-partner {
      width: min(84vw, 1055px);
    }
    section.partner .box-partner p {
      width: 74%;
      font-size: clamp(14px, 1.8vw, 18px);
      line-height: 1.55;
    }
  }

  /* PRODUTOS: 2 colunas */
  section.products .flex {
    gap: 24px;
  }
  section.products .card {
    flex: 1 1 calc(50% - 24px);
  }

  /* LAST PROJECTS */
  section.last-projects {
    padding: 56px 0;
  }
  .last-projects .container {
    grid-template-columns: 1fr;
    gap: 24px;
  }
  .last-projects .half01 h2 {
    left: 50%;
    transform: translateX(-50%);
    text-align: center;
    font-size: clamp(36px, 12vw, 50px);
    display: inline-block;
    text-align: center;
    margin: 0 auto;
  }

  .last-projects .half01 h2 br {
    display: none;
  }

  .last-projects .half02 {
    max-width: 560px;
    margin-inline: auto;
  }
  .last-projects .half02 > .swiper-button-prev {
    left: 6px;
  }
  .last-projects .half02 > .swiper-button-next {
    right: 6px;
  }

  section.presence {
    background-position: 40%;
  }

  /* PRESENCE: empilha */
  section.presence .container {
    display: block;
    text-align: center;
  }
  section.presence .half01 h2 {
    font-size: clamp(26px, 6vw, 40px);
    max-width: none;
    margin-bottom: 10px;
  }
  section.presence h2 span {
    font-size: 11px;
    display: inline-block;
    margin-top: 10px;
    max-width: 345px;
    text-align: left;
  }
  section.presence .half02 img {
    max-width: 450px;
    margin: 16px auto 0;
  }

  /* MAP: empilha e centraliza */
  section.map .container {
    display: flex;
    flex-wrap: wrap;
    gap: 28px;
  }
  section.map .half01 {
    text-align: center;
    align-items: center;
    padding: 0;
    width: 100%;
  }

  section.map .box-map {
    margin: 0 auto;
  }
  section.map p {
    margin-left: auto;
    margin-right: auto;
  }
  section.map .half02 {
    justify-self: center;
    width: 100%;
  }
}

/* ≥640px — texto mais confortável */
@media screen and (max-width: 640px) {
  section.partner {
    padding: 80px 0;
  }
  section.partner .box-partner {
    width: min(92vw, 1055px);
  }

  section.partner {
    padding: 70px 0;
  }
  section.partner .box-partner p {
    font-size: 13px;
    line-height: 1.3;
  }
}

/* ===== até 520px ===== */
@media screen and (max-width: 520px) {
  /* PRODUTOS: 1 coluna */
  section.products .card {
    flex: 1 1 100%;
  }

  /* Swiper: cantos maiores e setas adequadas */
  .last-projects .slide-frame {
    border-radius: 18px;
  }
  .last-projects .half02 {
    max-width: 100%;
  }
  .last-projects .half02 > .swiper-button-prev,
  .last-projects .half02 > .swiper-button-next {
    width: 34px;
    height: 34px;
  }

  section.partner .box-partner {
    background-size: 100% 120%;
  }

  section.partner .box-partner p {
    padding-top: 30px;
    padding-bottom: 30px;
  }
}

/* ===== até 480px ===== */
@media screen and (max-width: 480px) {
  section.differences {
    padding: 56px 0 24px;
  }
  section.products {
    padding: 56px 0;
  }
  section.events {
    padding: 56px 0;
  }
  section.map .box-map {
    max-width: 680px;
    margin: 0 auto;
  }
  section.brands .line .gallery-item img {
    height: 36px;
  }
}

/* ===== fix: setas do swiper sempre centralizadas ===== */
@media screen and (min-width: 0px) {
  .last-projects .half02 > .swiper-button-prev,
  .last-projects .half02 > .swiper-button-next {
    top: 50%;
    transform: translateY(-50%); /* estava 50% (errado) */
  }
}
