/* ===== Tokens (Figma: EXODO — Design System, tema vermelho) ===== */
:root {
  /* 1 px do design (frame de 2560, pensado p/ ultrawide) = --u.
     Ultrawide (≥2560) = 100%; monitor normal (≤1920) = 75%, padrão 1920. */
  --u: clamp(0.75px, calc(100vw / 2560), 1px);

  --red: #ff0040;
  --red-mid: #cf0034;
  --red-dark: #a40113;
  --red-deep: #9a0127;
  --red-footer: #d9002e;
  --red-end: #990026;
  --white: #fff;
  --black: #000;
  --text-secondary: #525252;
  --gray-card: #d9d9d9;
  --gray-tag: #878787;
  --gray-tag-border: #bebebe;

  --grad-pill: linear-gradient(90deg, #ff0040, #990026);

  --font: "Inter", system-ui, -apple-system, "Segoe UI", sans-serif;
  --container: calc(1280 * var(--u));
  --gutter: calc(24 * var(--u));
  --header-h: calc(80 * var(--u));
}

*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; scroll-behavior: smooth; overflow-x: clip; }

body {
  margin: 0;
  font-family: var(--font);
  color: var(--black);
  background: var(--white);
  overflow-x: clip; /* emblemas 3D e foto vazam a grade de 1280 px */
}

img { display: block; max-width: 100%; }
a { color: inherit; text-decoration: none; }
ul { list-style: none; margin: 0; padding: 0; }
h1, h2, h3, p { margin: 0; }

.container { width: 100%; max-width: var(--container); margin-inline: auto; }

/* ===== Botões / pílulas ===== */
.btn, .pill {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-weight: 600;
  letter-spacing: calc(-0.6 * var(--u));
  border-radius: calc(65 * var(--u));
  transition: transform .15s, filter .15s, background .15s;
}
.btn { height: calc(65 * var(--u)); font-size: calc(20 * var(--u)); }
.btn:hover { transform: translateY(calc(-2 * var(--u))); filter: brightness(1.05); }

.btn--dark     { width: calc(261 * var(--u)); background: var(--red-dark); color: var(--white); }
.btn--light    { width: calc(218 * var(--u)); background: var(--white);    color: var(--red-mid); }
.btn--gradient { width: calc(350 * var(--u)); background: var(--grad-pill); color: var(--white); }
.btn--outline  { width: calc(350 * var(--u)); border: 1px solid var(--red); color: var(--red); }
.btn--catalog  { width: calc(518 * var(--u)); }

.chip {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: calc(139 * var(--u));
  height: calc(28 * var(--u));
  white-space: nowrap;
  border-radius: calc(65 * var(--u));
  background: var(--red);
  color: var(--white);
  font-size: calc(13 * var(--u));
  font-weight: 600;
  letter-spacing: calc(-0.39 * var(--u));
  transition: background .15s;
}
.chip:hover { background: var(--red-mid); }

.pill-outline {
  display: flex;
  align-items: center;
  justify-content: center;
  height: calc(69 * var(--u));
  border: 1px solid var(--white);
  border-radius: calc(65 * var(--u));
  color: var(--white);
  font-size: calc(20 * var(--u));
  font-weight: 600;
  letter-spacing: calc(-0.6 * var(--u));
  transition: background .15s, color .15s;
}
.pill-outline:hover { background: var(--white); color: var(--red-deep); }
.pill-outline--motivo { justify-content: flex-start; gap: calc(14 * var(--u)); padding-inline: calc(32 * var(--u)); text-align: left; }
.pill-outline--motivo::before { content: ""; flex: none; width: calc(22 * var(--u)); height: calc(22 * var(--u)); min-width: 14px; min-height: 14px; border-radius: 50%; background: var(--white) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%239a0127' stroke-width='3.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 12.5l4 4 8-9'/%3E%3C/svg%3E") center / 70% no-repeat; }
.pill-outline--motivo:hover { background: transparent; color: var(--white); }

.section-title {
  font-size: calc(64 * var(--u));
  font-weight: 700;
  line-height: calc(78 * var(--u));
  letter-spacing: calc(-0.96 * var(--u));
  color: var(--red);
}
.section-title--center { text-align: center; }

/* ===== Header ===== */
.site-header { position: relative; z-index: 10; height: var(--header-h); background: var(--white); }
.site-header__bar { display: flex; align-items: center; height: 100%; }
.logo img { width: calc(164 * var(--u)); height: calc(42 * var(--u)); object-fit: cover; }

.nav {
  display: flex;
  gap: calc(43 * var(--u));
  margin-left: calc(131 * var(--u)); /* links começam a 295 px da borda da grade */
  font-size: calc(20 * var(--u));
  font-weight: 600;
  letter-spacing: calc(-0.6 * var(--u));
}
.nav a:hover { color: var(--red); }

.pill--header {
  margin-left: auto;
  width: calc(305 * var(--u));
  height: calc(42 * var(--u));
  background: var(--red);
  color: var(--white);
  font-size: calc(20 * var(--u));
}
.pill--header:hover { background: var(--red-mid); }

/* ===== Hero ===== */
.hero { position: relative; z-index: 3; min-height: calc(797 * var(--u)); color: var(--white); }

.hero__bg {
  position: absolute;
  inset: 0;
  overflow: hidden;
  background: conic-gradient(from 90deg at 50% 50%,
    #ff0040 -35%, #cf0034 12.7%, #ff0040 65.1%, #cf0034 112.7%);
}
.hero__swirl {
  position: absolute;
  left: calc(50% - calc(558 * var(--u)));
  top: calc(-353 * var(--u));
  width: calc(2013 * var(--u));
  height: calc(1939 * var(--u));
  max-width: none;
}

.hero__inner { position: relative; min-height: calc(797 * var(--u)); padding-top: calc(147 * var(--u)); }
.hero__content { position: relative; z-index: 2; }

.hero__title {
  margin-bottom: calc(23 * var(--u));
  width: calc(693 * var(--u));
  max-width: 100%;
  font-size: calc(100 * var(--u));
  font-weight: 700;
  line-height: calc(78 * var(--u));
  letter-spacing: calc(-1.5 * var(--u));
}
.hero__text { margin: 0 0 calc(22 * var(--u)) calc(9 * var(--u)); max-width: calc(581 * var(--u)); font-size: calc(24 * var(--u)); line-height: calc(27 * var(--u)); }
.hero__actions { display: flex; gap: calc(10 * var(--u)); flex-wrap: wrap; }

.hero__emblem {
  position: absolute;
  z-index: 1;
  top: calc(66 * var(--u));
  left: calc(564 * var(--u));
  width: calc(926 * var(--u));
  height: calc(926 * var(--u));
  max-width: none;
  object-fit: cover;
  pointer-events: none;
  filter: drop-shadow(calc(55 * var(--u)) calc(27 * var(--u)) calc(50 * var(--u)) rgba(0, 0, 0, .15));
}

/* ===== Faixa de números ===== */
.stats { position: relative; z-index: 4; height: calc(151 * var(--u)); background: var(--red-dark); }
.stats__inner { position: relative; height: 100%; }
.stats__img {
  position: absolute;
  left: 50%;
  top: calc(42 * var(--u));
  transform: translateX(-50%);
  width: calc(1275 * var(--u));
  height: calc(68 * var(--u));
  max-width: none;
}
.stats__divider { position: absolute; top: calc(26 * var(--u)); width: calc(2 * var(--u)); height: calc(100 * var(--u)); background: var(--white); }
.stats__divider--1 { left: calc(217 * var(--u)); }  /* 857 px no frame */
.stats__divider--2 { left: calc(782 * var(--u)); }  /* 1422 px no frame */

/* ===== Cards (serviços e produtos) ===== */
.cards { display: grid; grid-template-columns: repeat(4, 1fr); gap: calc(22 * var(--u)); }

.card {
  display: flex;
  flex-direction: column;
  border: 1px solid var(--red);
  border-radius: calc(33 * var(--u));
  overflow: hidden;
  background: var(--white);
}
.card__media { height: calc(212 * var(--u)); background: var(--gray-card); overflow: hidden; }
.card__media img { width: 100%; height: 100%; object-fit: cover; }
.card__body { display: flex; flex-direction: column; align-items: flex-start; padding: calc(25 * var(--u)) calc(28 * var(--u)) calc(22 * var(--u)); }
.card__title {
  font-size: calc(32 * var(--u));
  font-weight: 700;
  line-height: calc(30 * var(--u));
  letter-spacing: calc(-0.48 * var(--u));
  color: var(--red);
  margin-bottom: calc(9 * var(--u));
}
.card__text { font-size: calc(14 * var(--u)); line-height: calc(20 * var(--u)); color: var(--text-secondary); }

.cards--services .card { height: calc(409 * var(--u)); }
.cards--services .card__text { min-height: calc(40 * var(--u)); margin-bottom: calc(13 * var(--u)); }

.cards--products { row-gap: calc(32 * var(--u)); }
.card--product { height: calc(364 * var(--u)); }
.card--product .card__body { padding: calc(18 * var(--u)) calc(26 * var(--u)) 0; }
.card--product .card__title { margin-bottom: calc(4 * var(--u)); }

.tag {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: calc(112 * var(--u));
  height: calc(21 * var(--u));
  margin-bottom: calc(8 * var(--u));
  border: 1px solid var(--gray-tag-border);
  border-radius: calc(200 * var(--u));
  font-size: calc(14 * var(--u));
  letter-spacing: calc(-0.84 * var(--u));
  color: var(--gray-tag);
}

/* ===== Serviços ===== */
.services { background: var(--white); padding: calc(113 * var(--u)) 0 calc(128 * var(--u)); }
.services__lead {
  margin: calc(12 * var(--u)) 0 calc(56 * var(--u));
  text-align: center;
  font-size: calc(22 * var(--u));
  line-height: calc(27 * var(--u));
  letter-spacing: calc(-1.32 * var(--u));
  color: var(--text-secondary);
}

/* ===== Sobre ===== */
.about { position: relative; z-index: 2; min-height: calc(1486 * var(--u)); }

.about__band {
  position: absolute;
  inset: 0 0 auto 0;
  height: calc(689 * var(--u));
  background: linear-gradient(104.86deg, #ff0040 0%, #d9002e 101.31%);
}
.about__photo {
  position: absolute;
  top: 0;
  left: calc(50% - calc(698 * var(--u)));   /* 582 px no frame */
  width: calc(2119 * var(--u));
  height: calc(689 * var(--u));
  overflow: hidden;
  pointer-events: none;
}
.about__photo img { position: absolute; left: 0; top: -4.79%; width: 100%; height: 131.79%; max-width: none; }

.about__emblem {
  position: absolute;
  top: calc(-150 * var(--u));
  left: calc(50% - calc(1492 * var(--u)));  /* -212 px no frame */
  width: calc(1699 * var(--u));
  height: calc(1699 * var(--u));
  max-width: none;
  pointer-events: none;
}

.about__inner { position: relative; padding-top: calc(1046 * var(--u)); } /* título a 2928 px */
.about__content { margin-left: calc(497 * var(--u)); } /* 1137 px no frame */

.about__title {
  max-width: calc(808 * var(--u));
  font-size: calc(74 * var(--u));
  font-weight: 700;
  line-height: calc(64 * var(--u));
  letter-spacing: calc(-1.11 * var(--u));
  color: var(--red);
}
.about__text { margin-top: calc(30 * var(--u)); max-width: calc(675 * var(--u)); font-size: calc(24 * var(--u)); line-height: calc(28 * var(--u)); color: var(--text-secondary); }
.about__actions { display: flex; gap: calc(20 * var(--u)); margin-top: calc(33 * var(--u)); flex-wrap: wrap; }

/* ===== Produtos ===== */
.products { padding: calc(95 * var(--u)) 0 calc(134 * var(--u)); }
.products__head { display: flex; align-items: center; justify-content: space-between; gap: calc(32 * var(--u)); margin-bottom: calc(57 * var(--u)); }

/* ===== Por que escolher ===== */
.why { position: relative; min-height: calc(712 * var(--u)); background: var(--red-deep); overflow: hidden; }
.why__bg { position: absolute; inset: 0; overflow: hidden; }
.why__swirl {
  position: absolute;
  left: calc(50% - calc(2066 * var(--u)));
  top: calc(-664 * var(--u));
  width: calc(2013 * var(--u));
  height: calc(1939 * var(--u));
  max-width: none;
}
.why__inner {
  position: relative;
  display: grid;
  grid-template-columns: calc(652 * var(--u)) calc(622 * var(--u));
  min-height: calc(712 * var(--u));
}
.why__title {
  align-self: center;
  width: calc(472 * var(--u));
  font-size: calc(96 * var(--u));
  font-weight: 700;
  line-height: calc(78 * var(--u));
  letter-spacing: calc(-1.44 * var(--u));
  color: transparent;
  background: linear-gradient(-55.14deg, #ff0040 15.9%, #990026 105.5%);
  -webkit-background-clip: text;
  background-clip: text;
}
.why__list { display: flex; flex-direction: column; gap: calc(18.6 * var(--u)); padding: calc(87 * var(--u)) 0 calc(118 * var(--u)); }

/* ===== Footer (Figma: Footer — 2560) ===== */
.site-footer {
  height: calc(446 * var(--u));
  background: linear-gradient(104.91deg, #ff0040 27.722%, #a40113 107.19%);
  color: var(--white);
}
.site-footer__inner { position: relative; width: 100%; max-width: var(--container); height: 100%; margin-inline: auto; }
.site-footer__cols { position: absolute; inset: calc(87 * var(--u)) 0 auto 0; display: flex; align-items: flex-start; }
.site-footer__col { display: flex; flex-direction: column; font-size: calc(21 * var(--u)); line-height: calc(33 * var(--u)); letter-spacing: calc(-0.84 * var(--u)); }
.site-footer__col--brand   { width: calc(304 * var(--u)); gap: calc(24 * var(--u)); line-height: calc(27 * var(--u)); }
.site-footer__col--nav     { width: calc(90 * var(--u)); margin-left: calc(105 * var(--u)); }
.site-footer__col--contact { width: calc(265 * var(--u)); margin-left: calc(105 * var(--u)); }
.site-footer__col--map     { width: calc(316 * var(--u)); margin-left: calc(94 * var(--u)); }
.site-footer__logo { width: calc(304 * var(--u)); height: calc(78 * var(--u)); object-fit: cover; }
.site-footer__title { font-size: inherit; font-weight: 600; line-height: inherit; letter-spacing: inherit; }
.site-footer a:hover { text-decoration: underline; }
.site-footer__map { margin-top: calc(8 * var(--u)); width: calc(316 * var(--u)); height: calc(157 * var(--u)); border-radius: calc(12 * var(--u)); background: var(--white); overflow: hidden; }
.site-footer__map iframe { display: block; width: 100%; height: 100%; border: 0; }
.site-footer__divider { position: absolute; left: 50%; top: calc(343 * var(--u)); width: calc(1276 * var(--u)); height: 1px; margin: 0; border: 0; background: rgba(255, 255, 255, .42); transform: translateX(-50%); }
.site-footer__legal { position: absolute; left: 0; right: 0; top: calc(370 * var(--u)); text-align: center; font-size: calc(12 * var(--u)); line-height: calc(16 * var(--u)); }

/* home: produtos em destaque (dados reais) */
.card__link { display: flex; flex-direction: column; height: 100%; color: inherit; border-radius: inherit; }
.card--product .card__media { background: #f4f4f4; }
.card--product .card__media img { width: 100%; height: 100%; object-fit: contain; padding: calc(12 * var(--u)); mix-blend-mode: multiply; }
.card--product .card__title { min-height: calc(60 * var(--u)); }
.card--product .card__title--long { display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; font-size: calc(22 * var(--u)); line-height: calc(26 * var(--u)); letter-spacing: calc(-0.3 * var(--u)); min-height: calc(78 * var(--u)); }
.card--product:hover { box-shadow: 0 calc(8 * var(--u)) calc(24 * var(--u)) rgba(255, 0, 64, .15); }
.cards--products .card__link:focus-visible { outline: 2px solid var(--black); outline-offset: 2px; }

/* ===== Página /sobre (Figma: Sobre Nós) ===== */
.sp-hero {
  position: relative;
  height: calc(235 * var(--u));
  overflow: hidden;
  background: linear-gradient(-43.47deg, #cf0034 28.133%, #ff0040 71.27%);
}
.sp-hero__bg { position: absolute; inset: 0; pointer-events: none; }
.sp-hero__swirl { position: absolute; max-width: none; }
.sp-hero__swirl--1 {
  left: calc(50% - 1667 * var(--u));
  top: calc(-315 * var(--u));
  width: calc(1402 * var(--u));
  height: calc(1021 * var(--u));
}
.sp-hero__swirl--2 {
  left: calc(50% + 305 * var(--u));
  top: calc(-348 * var(--u));
  width: calc(1428 * var(--u));
  height: calc(1100 * var(--u));
  transform: rotate(-177.37deg);
}
.sp-hero__title {
  position: relative;
  padding-top: calc(86 * var(--u));
  text-align: center;
  color: var(--white);
  font-size: calc(74 * var(--u));
  font-weight: 700;
  line-height: calc(64 * var(--u));
  letter-spacing: calc(-1.11 * var(--u));
}

.sp-stats { position: relative; height: calc(151 * var(--u)); overflow: hidden; background: var(--red-dark); }
.sp-stats img {
  position: absolute;
  left: 50%;
  top: 0;
  transform: translateX(-50%);
  width: calc(2560 * var(--u));
  height: calc(151 * var(--u));
  max-width: none;
}

.about--sobre { min-height: calc(1537 * var(--u)); }
.about--sobre .about__photo { top: 0; }
.about--sobre .about__emblem {
  top: calc(-108 * var(--u));
  left: calc(50% - 1447 * var(--u));
  width: calc(1609 * var(--u));
  height: calc(1609 * var(--u));
}

.sp-text { padding: 0 0 calc(151 * var(--u)); }
.sp-text .container { max-width: calc(1280 * var(--u)); }
.sp-text p {
  margin: 0 0 calc(34 * var(--u));
  text-align: center;
  font-size: calc(36 * var(--u));
  line-height: calc(34 * var(--u));
  letter-spacing: calc(-1.44 * var(--u));
  color: var(--text-secondary);
}
.sp-text p:last-child { margin-bottom: 0; }

/* ===== Página /contato (Figma: Fale Conosco) ===== */
.sp-hero__swirl--ct {
  left: calc(50% - 1667 * var(--u));
  top: calc(-252 * var(--u));
  width: calc(1402 * var(--u));
  height: calc(747 * var(--u));
}

.ct-stats { position: relative; height: calc(237 * var(--u)); background: var(--red-dark); }
.ct-stats__inner { position: relative; height: 100%; }
.ct-stats img {
  position: absolute;
  left: calc(2 * var(--u));
  top: calc(69 * var(--u));
  width: calc(1275 * var(--u));
  height: calc(100 * var(--u));
  max-width: none;
}

.ct { position: relative; z-index: 2; min-height: calc(1318 * var(--u)); }
.ct__grid { display: grid; grid-template-columns: calc(452 * var(--u)) calc(825 * var(--u)); align-items: start; }

.ct__intro { padding-top: calc(111 * var(--u)); }
.ct__title {
  font-size: calc(74 * var(--u));
  font-weight: 700;
  line-height: calc(64 * var(--u));
  letter-spacing: calc(-1.11 * var(--u));
  color: var(--red);
}
.ct__lead { margin-top: calc(42 * var(--u)); width: calc(373 * var(--u)); }
.ct__lead p, .ct__steps p {
  font-size: calc(24 * var(--u));
  line-height: calc(28 * var(--u));
  letter-spacing: calc(-2.4 * var(--u));
  color: var(--text-secondary);
}
.ct__lead p + p { margin-top: calc(28 * var(--u)); }

.ct__steps { position: relative; margin-top: calc(71 * var(--u)); list-style: none; padding: 0; }
.ct__steps::before {
  content: "";
  position: absolute;
  left: calc(11 * var(--u));
  top: calc(13 * var(--u));
  width: calc(2 * var(--u));
  height: calc(516 * var(--u));
  background: linear-gradient(to bottom, #525252 61.538%, rgba(184, 184, 184, 0));
}
.ct__steps li { position: relative; min-height: calc(180 * var(--u)); padding-left: calc(41 * var(--u)); }
.ct__steps li:last-child { min-height: 0; }
.ct__steps p { width: calc(259 * var(--u)); }
.ct__steps strong { font-weight: 600; }
.ct__step-num {
  position: absolute;
  left: 0;
  top: 0;
  display: grid;
  place-items: center;
  width: calc(25 * var(--u));
  height: calc(25 * var(--u));
  border-radius: 50%;
  background: var(--red);
  color: var(--white);
  font-size: calc(20 * var(--u));
  font-weight: 700;
  line-height: 1;
  letter-spacing: 0;
}

/* card do formulário */
.ct-form {
  margin-top: calc(-28 * var(--u));
  border-radius: calc(32 * var(--u));
  background: var(--red);
  color: var(--white);
  overflow: hidden;
}
.ct-form__head {
  display: flex;
  align-items: center;
  gap: calc(35 * var(--u));
  height: calc(198 * var(--u));
  padding: 0 calc(69 * var(--u));
  background: #ed003b;
}
.ct-form__head p {
  width: calc(562 * var(--u));
  font-size: calc(28 * var(--u));
  line-height: calc(28 * var(--u));
  letter-spacing: calc(-2.8 * var(--u));
}
.ct-form__seal { position: relative; flex: none; width: calc(90 * var(--u)); height: calc(90 * var(--u)); }
.ct-form__seal-bg { position: absolute; inset: 0; width: 100%; height: 100%; max-width: none; }
.ct-form__seal-emblem {
  position: absolute;
  left: calc(10.2 * var(--u));
  top: calc(10.2 * var(--u));
  width: calc(69.5 * var(--u));
  height: calc(69.5 * var(--u));
  max-width: none;
}

.ct-form__body { display: flex; flex-direction: column; gap: calc(18 * var(--u)); padding: calc(64 * var(--u)) calc(69 * var(--u)) calc(76 * var(--u)); }
.field { display: flex; flex-direction: column; gap: calc(12 * var(--u)); min-width: 0; }
.field-row { display: grid; grid-template-columns: 1fr 1fr; gap: calc(17 * var(--u)); }
.field--message { margin-top: calc(-6 * var(--u)); }

.field label, .field__label {
  font-size: calc(24 * var(--u));
  line-height: calc(28 * var(--u));
  letter-spacing: calc(-2.4 * var(--u));
}

.field input[type="text"], .field input[type="tel"], .field input[type="email"], .field textarea {
  width: 100%;
  height: calc(54 * var(--u));
  padding: 0 calc(20 * var(--u));
  border: 0;
  border-radius: calc(10 * var(--u));
  background: var(--white);
  color: #262626;
  font: inherit;
  font-size: calc(20 * var(--u));
  outline: none;
}
.field input::placeholder, .field textarea::placeholder { color: #9a9a9a; opacity: 1; letter-spacing: 0; }
.field textarea { height: calc(310 * var(--u)); padding: calc(16 * var(--u)) calc(20 * var(--u)); resize: none; }
.field input:focus-visible, .field textarea:focus-visible { box-shadow: 0 0 0 3px rgba(255, 255, 255, .55), 0 0 0 5px #990026; }

.actions { display: grid; grid-template-columns: 1fr 1fr; gap: calc(17 * var(--u)); }
.file, .send {
  display: flex;
  align-items: center;
  justify-content: center;
  height: calc(94 * var(--u));
  border: 0;
  border-radius: calc(10 * var(--u));
  font-family: inherit;
  font-size: calc(24 * var(--u));
  font-weight: 500;
  letter-spacing: calc(-2.4 * var(--u));
  cursor: pointer;
  transition: filter .15s;
}
.file { gap: calc(14 * var(--u)); background: var(--white); color: var(--text-secondary); }
.file input { position: absolute; width: 1px; height: 1px; opacity: 0; pointer-events: none; }
.file:focus-within { box-shadow: 0 0 0 3px rgba(255, 255, 255, .55), 0 0 0 5px #990026; }
.file img { width: calc(33 * var(--u)); height: calc(34 * var(--u)); }
.file__name { max-width: calc(220 * var(--u)); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.send { background: #990026; color: var(--white); }
.file:hover, .send:hover { filter: brightness(.96); }
.send:focus-visible { outline: 3px solid var(--white); outline-offset: 3px; }

.ct-form__status { font-size: calc(20 * var(--u)); line-height: 1.3; letter-spacing: calc(-0.4 * var(--u)); }

/* ===== Página /catalogo (Figma: Catálogo de Produtos) ===== */
.sp-hero__swirl--cat {
  left: calc(50% - 1667 * var(--u));
  top: calc(-237 * var(--u));
  width: calc(1402 * var(--u));
  height: calc(683 * var(--u));
}

.cat { display: flex; align-items: flex-start; min-height: calc(900 * var(--u)); background: var(--white); }
.cat__grid { display: flex; align-items: flex-start; gap: calc(32 * var(--u)); }

.cat__filters { flex: none; display: flex; flex-direction: column; align-items: flex-start; gap: calc(24 * var(--u)); width: calc(256 * var(--u)); }
.cat__overline { font-size: calc(12 * var(--u)); font-weight: 600; line-height: calc(16 * var(--u)); letter-spacing: calc(0.18 * var(--u)); text-transform: uppercase; color: var(--text-secondary); }
.cat__h { font-size: calc(20 * var(--u)); font-weight: 600; line-height: calc(28 * var(--u)); }
.cat__chips { display: flex; flex-direction: column; align-items: flex-start; gap: calc(24 * var(--u)); }

.cat-field { display: flex; flex-direction: column; gap: calc(8 * var(--u)); width: 100%; }
.cat-field label { font-size: calc(14 * var(--u)); font-weight: 500; line-height: calc(20 * var(--u)); }
.cat-field input {
  width: 100%;
  padding: calc(12 * var(--u)) calc(16 * var(--u));
  border: 1px solid #e5e5e5;
  border-radius: calc(8 * var(--u));
  background: var(--white);
  color: var(--black);
  font: inherit;
  font-size: calc(16 * var(--u));
  line-height: calc(24 * var(--u));
}
.cat-field input::placeholder { color: var(--text-secondary); opacity: 1; }
.cat-field input:focus-visible { outline: 2px solid var(--black); outline-offset: 1px; }

/* selo / chip (componente Badge do design system) */
.badge {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: calc(4 * var(--u)) calc(12 * var(--u));
  border: 1px solid var(--black);
  border-radius: 999px;
  background: transparent;
  color: var(--black);
  font: inherit;
  font-size: calc(14 * var(--u));
  font-weight: 500;
  line-height: calc(20 * var(--u));
  white-space: nowrap;
  cursor: pointer;
  transition: background .15s, color .15s;
}
.badge:hover:not(:disabled):not(.is-active) { background: #f4f4f4; }
.badge.is-active { background: var(--black); color: var(--white); }
.badge:disabled { opacity: .35; cursor: default; }
.badge:focus-visible { outline: 2px solid var(--black); outline-offset: 2px; }

.cat__main { flex: 1 1 0; min-width: 0; display: flex; flex-direction: column; gap: calc(32 * var(--u)); }
.cat__cards { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: calc(32 * var(--u)); }
.cat__pages { display: flex; align-items: center; justify-content: center; gap: calc(12 * var(--u)); }
.cat__empty { padding: calc(48 * var(--u)) 0; text-align: center; font-size: calc(16 * var(--u)); color: var(--text-secondary); }

.pcard {
  display: flex;
  flex-direction: column;
  gap: calc(16 * var(--u));
  padding: calc(16 * var(--u));
  border: 1px solid #e5e5e5;
  border-radius: calc(16 * var(--u));
  background: var(--white);
}
.pcard__img {
  display: flex;
  align-items: center;
  justify-content: center;
  height: calc(180 * var(--u));
  border-radius: calc(8 * var(--u));
  background: #f4f4f4;
  color: #a3a3a3;
  font-size: calc(12 * var(--u));
  line-height: calc(16 * var(--u));
}
.pcard__cat { font-size: calc(12 * var(--u)); font-weight: 600; line-height: calc(16 * var(--u)); letter-spacing: calc(0.18 * var(--u)); text-transform: uppercase; color: var(--text-secondary); }
.pcard__name { font-size: calc(20 * var(--u)); font-weight: 600; line-height: calc(28 * var(--u)); }
.pcard__text { font-size: calc(14 * var(--u)); line-height: calc(20 * var(--u)); color: var(--text-secondary); }

/* catálogo: botão de filtros (só no mobile) */
.cat__toggle, .cat__select { display: none; }

/* catálogo: filtros ativos */
.cat__ativos[hidden] { display: none; }
.cat__ativos { display: flex; flex-wrap: wrap; align-items: center; gap: calc(8 * var(--u)); margin-bottom: calc(14 * var(--u)); padding: calc(10 * var(--u)) calc(14 * var(--u)); border: 1px solid var(--red); border-radius: calc(12 * var(--u)); background: #fff0f3; }
.cat__ativos-rot { font-size: calc(13 * var(--u)); font-weight: 600; color: var(--red-dark); }
.cat__tag, .cat__limpar { padding: calc(4 * var(--u)) calc(12 * var(--u)); border-radius: 999px; font: inherit; font-size: calc(13 * var(--u)); line-height: calc(20 * var(--u)); cursor: pointer; }
.cat__tag { border: 1px solid var(--red); background: var(--white); color: var(--red-dark); }
.cat__limpar { margin-left: auto; border: 0; background: transparent; color: var(--red-dark); font-weight: 600; text-decoration: underline; }
.cat__tag:focus-visible, .cat__limpar:focus-visible { outline: 2px solid var(--black); outline-offset: 2px; }

/* catálogo: dados reais */
.cat { min-height: calc(900 * var(--u)); padding: calc(64 * var(--u)) 0; }
.cat__count { font-size: calc(14 * var(--u)); line-height: calc(20 * var(--u)); color: var(--text-secondary); margin-bottom: calc(-16 * var(--u)); }
.cat__chips { max-width: 100%; }
.cat__chips .badge { white-space: normal; text-align: left; }
.cat__reticencias { color: var(--text-secondary); font-size: calc(14 * var(--u)); }
.cat__pages { flex-wrap: wrap; }

.pcard { padding: 0; }
.pcard__btn {
  display: flex;
  flex-direction: column;
  gap: calc(16 * var(--u));
  width: 100%;
  padding: calc(16 * var(--u));
  border: 0;
  border-radius: inherit;
  background: transparent;
  color: inherit;
  font: inherit;
  text-align: left;
  cursor: pointer;
  transition: background .15s;
}
.pcard { transition: box-shadow .2s, border-color .2s; }
.pcard:hover { border-color: var(--black); }
.pcard__btn:focus-visible { outline: 2px solid var(--black); outline-offset: 2px; }
.pcard__img { overflow: hidden; background: #f4f4f4; }
.pcard__img img { width: 100%; height: 100%; object-fit: contain; padding: calc(10 * var(--u)); mix-blend-mode: multiply; }
.pcard__name {
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
  min-height: calc(56 * var(--u));
}

body.is-locked { overflow: hidden; }
.pmodal { width: min(calc(980 * var(--u)), 94vw); max-height: 90vh; padding: 0; border: 0; border-radius: calc(16 * var(--u)); background: var(--white); color: var(--black); overflow: hidden; }
.pmodal::backdrop { background: rgba(0, 0, 0, .55); }
.pmodal__box { position: relative; display: grid; grid-template-columns: 1fr 1.2fr; max-height: 90vh; overflow: auto; }
.pmodal__close { position: absolute; top: calc(12 * var(--u)); right: calc(16 * var(--u)); z-index: 2; width: calc(40 * var(--u)); height: calc(40 * var(--u)); min-width: 32px; min-height: 32px; border: 1px solid var(--black); border-radius: 50%; background: var(--white); color: var(--black); font-size: calc(26 * var(--u)); line-height: 1; cursor: pointer; }
.pmodal__img { display: flex; align-items: center; justify-content: center; padding: calc(32 * var(--u)); background: #f4f4f4; min-height: calc(320 * var(--u)); }
.pmodal__img img { max-width: 100%; max-height: calc(520 * var(--u)); object-fit: contain; }
.pmodal__body { display: flex; flex-direction: column; gap: calc(16 * var(--u)); padding: calc(40 * var(--u)); }
.pmodal__title { font-size: calc(32 * var(--u)); font-weight: 700; line-height: 1.15; letter-spacing: calc(-0.5 * var(--u)); color: var(--red); }
.pmodal__text { font-size: calc(16 * var(--u)); line-height: 1.5; color: var(--text-secondary); }
.pmodal__list { margin: 0; padding-left: calc(20 * var(--u)); font-size: calc(14 * var(--u)); line-height: 1.5; color: var(--text-secondary); list-style: disc; }
.pmodal__ids { display: grid; grid-template-columns: auto 1fr; gap: calc(4 * var(--u)) calc(12 * var(--u)); margin: 0; font-size: calc(13 * var(--u)); color: var(--text-secondary); }
.pmodal__ids dt { font-weight: 600; }
.pmodal__ids dd { margin: 0; overflow-wrap: anywhere; }
.pmodal__cta { width: 100%; max-width: calc(350 * var(--u)); margin-top: calc(8 * var(--u)); }

/* ===== Responsivo ===== */
@media (max-width: 1100px) {
  :root { --u: 1px; }
  .container { max-width: none; padding-inline: 24px; }
  .nav { display: none; }

  /* /catalogo */
  .cat { min-height: 0; padding: 48px 0 64px; }
  .cat__grid { flex-direction: column; gap: 32px; }
  .cat__filters { width: 100%; }
  .cat__grid { gap: 16px; }
  .cat__toggle { display: flex; align-items: center; gap: 8px; width: 100%; height: 48px; padding: 0 16px; border: 1px solid #e5e5e5; border-radius: 12px; background: #fff; font: inherit; font-weight: 600; font-size: 16px; color: #000; cursor: pointer; }
  .cat__toggle-n { min-width: 22px; height: 22px; padding: 0 6px; border-radius: 11px; background: var(--red); color: #fff; font-size: 13px; line-height: 22px; text-align: center; }
  .cat__toggle-n[hidden] { display: none; }
  .cat__toggle-seta { margin-left: auto; transition: transform .2s; }
  .cat__toggle[aria-expanded="true"] .cat__toggle-seta { transform: rotate(180deg); }
  .cat__filters { display: none; padding: 16px; border: 1px solid #e5e5e5; border-radius: 12px; }
  .cat__filters.is-open { display: block; }
  .cat__filters { display: none; flex-direction: column; gap: 14px; padding: 14px; }
  .cat__filters.is-open { display: flex; }
  .cat__filters .cat__overline { display: none; }
  .cat__filters .cat-field { margin: 0; }
  .cat__filters .cat-field label { font-size: 13px; color: #555; font-weight: 600; }
  .cat__filters .cat-field input { height: 48px; font-size: 16px; }
  .cat__filters .cat__h { margin: 0 0 -8px; font-size: 13px; font-weight: 600; color: #555; }
  .cat__filters .cat__chips { display: none; }
  .cat__select { display: block; width: 100%; height: 48px; padding: 0 40px 0 14px; border: 1px solid #e5e5e5; border-radius: 12px; font: inherit; font-size: 16px; color: #000; background: #fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 14 14'%3E%3Cpath d='M2 5l5 5 5-5' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") no-repeat right 14px center; -webkit-appearance: none; appearance: none; }
  .sp-hero .sp-hero__title.sp-hero__title--cat { padding-top: 28px; font-size: clamp(22px, 7.4vw, 44px); letter-spacing: -0.02em; white-space: nowrap; text-align: center; }
  .sp-hero:has(.sp-hero__title--cat) { padding-bottom: 24px; }
  .cat__chips { flex-direction: row; flex-wrap: wrap; gap: 10px; }
  .cat__cards { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; }
  .cat__main { width: 100%; }
  .cat__ativos { padding: 8px 10px; gap: 6px; margin-bottom: 8px; }
  .cat__ativos-rot { display: none; }
  .cat__tag, .cat__limpar { font-size: 13px; padding: 4px 12px; }
  .badge { padding: 6px 14px; font-size: 14px; }
  .pcard__img { height: 140px; }
  .pcard__btn { padding: 12px; gap: 10px; }
  .pcard__name { min-height: 0; }
  .pmodal { width: 94vw; border-radius: 16px; }
  .pmodal__box { grid-template-columns: 1fr; }
  .pmodal__img { min-height: 0; padding: 24px; }
  .pmodal__img img { max-height: 240px; }
  .pmodal__body { padding: 24px; gap: 14px; }
  .pmodal__title { font-size: 24px; }
  .pmodal__text { font-size: 15px; }
  .pmodal__list { font-size: 14px; }
  .pmodal__ids { font-size: 13px; }
  .pmodal__close { top: 10px; right: 10px; width: 36px; height: 36px; font-size: 24px; }
  .cat__count { margin-bottom: 0; font-size: 14px; }

  /* /contato */
  .ct-stats { height: auto; padding: 24px 0; }
  .ct-stats__inner { height: auto; }
  .ct-stats img { position: static; width: 100%; height: auto; }
  .ct { min-height: 0; padding-bottom: 64px; }
  .ct__grid { grid-template-columns: 1fr; }
  .ct__intro { padding-top: 56px; }
  .ct__title { font-size: clamp(40px, 11vw, 74px); line-height: 1.05; }
  .ct__lead { width: auto; }
  .ct__lead p, .ct__steps p { font-size: 18px; line-height: 1.45; letter-spacing: -0.3px; width: auto; }
  .ct__steps { margin-bottom: 40px; }
  .ct__steps::before { height: calc(100% - 40px); }
  .ct__steps li { min-height: 0; padding-bottom: 28px; }
  .ct-form { margin-top: 0; border-radius: 24px; }
  .ct-form__head { height: auto; padding: 24px; gap: 16px; }
  .ct-form__seal { width: 64px; height: 64px; }
  .ct-form__seal-emblem { left: 7px; top: 7px; width: 50px; height: 50px; }
  .ct-form__head p { width: auto; font-size: 18px; line-height: 1.3; letter-spacing: -0.3px; }
  .ct-form__body { padding: 32px 24px; gap: 18px; }
  .field label, .field__label { font-size: 17px; letter-spacing: -0.2px; }
  .field-row, .actions { grid-template-columns: 1fr; }
  .file, .send { height: 64px; font-size: 18px; letter-spacing: -0.2px; }
  .field input[type="text"], .field input[type="tel"], .field input[type="email"] { height: 48px; font-size: 16px; }
  .field textarea { height: 200px; font-size: 16px; }

  /* /sobre */
  .sp-hero { height: auto; padding-bottom: 40px; }
  .sp-hero__title { padding-top: 48px; font-size: clamp(40px, 11vw, 74px); line-height: 1.1; }
  .sp-stats { height: auto; }
  .sp-stats img { position: static; transform: none; width: 100%; height: auto; }
  .about--sobre { min-height: 0; }
  .about--sobre .about__emblem { display: none; }
  .sp-text { padding-bottom: 64px; }
  .sp-text p { font-size: 20px; line-height: 1.5; letter-spacing: -0.3px; margin-bottom: 24px; }

  /* hero */
  .hero { min-height: 0; overflow: hidden; }
  .hero__inner { min-height: 0; padding-top: 64px; }
  .hero__title { font-size: clamp(52px, 11vw, 100px); line-height: .78; width: auto; }
  .hero__text { margin-left: 0; font-size: 20px; line-height: 1.15; }
  .br-desktop { display: none; }
  .hero__emblem {
    position: relative; top: auto; left: auto;
    width: min(92vw, 640px); height: auto; aspect-ratio: 1;
    margin: 32px auto 0; transform: translateX(8%);
  }

  /* faixa */
  .stats { height: auto; padding: 24px 0; }
  .stats__inner { height: auto; }
  .stats__img { position: static; transform: none; width: 100%; max-width: 1275px; height: auto; }
  .stats__divider { display: none; }

  /* serviços / produtos */
  .services { padding: 72px 0; }
  .section-title { font-size: clamp(36px, 7vw, 64px); line-height: 1.15; }
  .cards { grid-template-columns: repeat(2, 1fr); }
  .cards--services .card, .card--product { height: auto; min-height: 409px; }
  .products__head { flex-direction: column; align-items: flex-start; }
  .btn--catalog { width: 100%; max-width: 518px; }

  /* sobre */
  .about { min-height: 0; }
  .about__band { display: none; }
  .about__photo { position: relative; left: 0; width: 100%; height: auto; aspect-ratio: 2119 / 689; }
  .about__emblem { display: none; }
  .about__inner { padding-top: 48px; padding-bottom: 72px; }
  .about__content { margin-left: 0; }
  .about__title { font-size: clamp(36px, 8vw, 74px); line-height: 1.05; }
  .about__text { margin-top: 24px; font-size: 20px; }
  .btn--gradient, .btn--outline { width: 100%; max-width: 350px; }

  /* por que */
  .why__inner { grid-template-columns: 1fr; min-height: 0; padding-block: 64px; }
  .why__swirl { display: none; }
  .why__title {
    width: auto;
    font-size: clamp(48px, 11vw, 96px);
    line-height: .85;
    color: var(--white);
    background: none;
  }
  .why__list { padding: 40px 0 0; }

  /* footer */
  .site-footer { height: auto; padding: 48px 24px 24px; }
  .site-footer__inner { height: auto; }
  .site-footer__cols { position: static; flex-direction: column; gap: 32px; }
  .site-footer__col, .site-footer__col--nav, .site-footer__col--contact, .site-footer__col--map { width: 100%; margin-left: 0; font-size: 16px; line-height: 26px; letter-spacing: 0; }
  .site-footer__col--brand { gap: 16px; }
  .site-footer__logo { width: 200px; height: auto; }
  .site-footer__map { width: 100%; height: 200px; border-radius: 12px; margin-top: 8px; }
  .site-footer__divider { position: static; width: 100%; transform: none; margin: 32px 0 16px; }
  .site-footer__legal { position: static; font-size: 12px; }
}

@media (max-width: 560px) {
  .cat__cards { grid-template-columns: 1fr; }
  :root { --header-h: 64px; }
  .logo img { width: 124px; height: 32px; }
  .pill--header { width: auto; padding-inline: 18px; height: 38px; font-size: 14px; }
  .hero__actions .btn { width: 100%; }
  .cards { grid-template-columns: 1fr; }
  .pill-outline { height: 56px; font-size: 17px; }
}
