/* ============================================================
   Product V2 ? monta-cargas (Vertbox®) + elevador-carga (Vertcargo®)
   Tokens espelhados da Home V2; linkar só nas páginas product-v2.
   ============================================================ */

:root {
  --hv2p-line: #50747e;
  --hv2p-container: 1240px;
  --hv2p-pad-x: 40px;
  --hv2p-border: #e4e5ea;
  --hv2p-ink: #17181c;
  --hv2p-muted: #4d4d4d;
  --hv2p-soft: #9aa3ab;
  --hv2p-blue: #0b279b;
}

/* Brand accents by product family */
body.hv2-product-page[data-view^="monta-cargas"] {
  --hv2p-line: #50747e;
}
body.hv2-product-page[data-view="elevadorcarga"],
body.hv2-product-page[data-view^="carga-"] {
  --hv2p-line: #50a1af;
}
body.hv2-product-page[data-view^="elevador-passageiros"],
body.hv2-product-page[data-view^="elevadorpassageiros"] {
  --hv2p-line: #573b7b;
}
body.hv2-product-page[data-view^="elevador-restrito"] {
  --hv2p-line: #736e66;
}
body.hv2-product-page[data-view="elevador-residencial"] {
  --hv2p-line: #739267;
}
body.hv2-product-page[data-view="acessibilidade"] {
  --hv2p-line: #248cd7;
}
body.hv2-product-page.hv2-line-passageiros-cargas {
  --hv2p-line: #b8014a;
}
body.hv2-product-page[data-view="assistencia"] {
  --hv2p-line: #6b315f;
}
body.hv2-product-page[data-view="modernizacao"] {
  --hv2p-line: #6babc7;
}
body.hv2-product-page[data-view="contato"],
body.hv2-product-page[data-view="clientes"],
body.hv2-product-page[data-view="quemsomos"] {
  --hv2p-line: #0b279b;
}

.hv2-product-hero-grid--solo {
  grid-template-columns: 1fr;
  max-width: 760px;
}
.hv2-product-panel {
  padding: 8px 0 72px;
}
.hv2-product-panel .contact-box {
  margin-bottom: 28px;
}
.hv2-product-panel .map-box {
  margin-top: 8px;
}
.hv2-product-panel .client-title {
  margin-top: 28px;
}
.hv2-product-panel .client-title:first-child {
  margin-top: 0;
}

.hv2-product-crumb,
.hv2-product-hero,
.hv2-product-specs,
.hv2-product-config,
.hv2-product-segments,
.hv2-product-catalog,
.hv2-product-seo,
.hv2-product-after {
  box-sizing: border-box;
}

.hv2-product-inner {
  max-width: var(--hv2p-container);
  margin: 0 auto;
  padding-left: var(--hv2p-pad-x);
  padding-right: var(--hv2p-pad-x);
}

.hv2-product-crumb {
  padding-top: 16px;
  padding-bottom: 16px;
  border-bottom: 1px solid var(--hv2p-border);
}

.hv2-product-hero {
  padding-top: 48px;
  padding-bottom: 56px;
  border-bottom: 1px solid var(--hv2p-border);
}

.hv2-product-specs {
  padding-top: 72px;
  padding-bottom: 72px;
  overflow: visible;
}

.hv2-product-config {
  padding-top: 72px;
  padding-bottom: 72px;
  border-top: 1px solid var(--hv2p-border);
  overflow: visible;
}

.hv2-product-segments,
.hv2-product-catalog,
.hv2-product-after {
  padding-top: 56px;
  padding-bottom: 56px;
}

.hv2-product-seo {
  padding-top: 48px;
  padding-bottom: 72px;
}

.hv2-product-cta {
  display: inline-block;
  margin-top: 28px;
  padding: 14px 22px;
  background: var(--hv2p-line);
  color: #fff;
  font-family: Archivo, sans-serif;
  font-size: 14px;
  font-weight: 600;
  letter-spacing: 0.04em;
  text-decoration: none;
  border-radius: 2px;
  transition: background 0.18s, transform 0.18s;
}
.hv2-product-cta:hover {
  background: color-mix(in srgb, var(--hv2p-line) 82%, #000);
  color: #fff;
  transform: translateY(-1px);
}

/* Crumb */
.hv2-product-crumb-list {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 8px;
  margin: 0;
  padding: 0;
  list-style: none;
  font-size: 13px;
  color: var(--hv2p-soft);
}
.hv2-product-crumb-list a {
  color: var(--hv2p-muted);
  text-decoration: none;
}
.hv2-product-crumb-list a:hover {
  color: var(--hv2p-line);
}
.hv2-product-crumb-list [aria-current="page"] {
  color: var(--hv2p-ink);
  font-weight: 600;
}

/* Hero */
.hv2-product-hero-grid {
  display: grid;
  grid-template-columns: 1.05fr 0.95fr;
  gap: 56px;
  align-items: center;
}
.hv2-product-eyebrow {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  font-size: 12px;
  font-weight: 600;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--hv2p-line);
  margin-bottom: 18px;
}
.hv2-product-eyebrow::before {
  content: '';
  display: inline-block;
  width: 26px;
  height: 1px;
  background: var(--hv2p-line);
  flex-shrink: 0;
}
.hv2-product-hero h1 {
  font-family: 'PT Sans Caption', sans-serif;
  font-weight: 700;
  font-size: 48px;
  line-height: 1.05;
  letter-spacing: -0.02em;
  color: var(--hv2p-ink);
  margin: 0 0 12px;
}
.hv2-product-dek {
  font-family: 'PT Sans Caption', sans-serif;
  font-weight: 700;
  font-size: 22px;
  line-height: 1.25;
  color: var(--hv2p-ink);
  max-width: 520px;
  margin: 0 0 18px;
}
.hv2-product-facts {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin: 0 0 18px;
  padding: 0;
  list-style: none;
}
.hv2-product-facts li {
  padding: 8px 12px;
  border: 1px solid var(--hv2p-border);
  font-size: 13px;
  font-weight: 600;
  color: var(--hv2p-ink);
  letter-spacing: 0.02em;
}
.hv2-product-lead {
  font-size: 17px;
  line-height: 1.6;
  color: var(--hv2p-muted);
  max-width: 520px;
  margin: 0;
}
.hv2-product-hero-media img,
.hv2-product-specs-media img,
.hv2-product-config-media img {
  display: block;
  width: 100%;
  height: auto;
  object-fit: contain;
}

/*
 * Shaft reveal + squares (eco do out-image 2015):
 * cinza claro desliza no eixo Y; bloco Vertbox ancora o canto.
 */
.hv2-product-media {
  position: relative;
  overflow: hidden;
}
.hv2-product-media--framed {
  overflow: visible;
}
.hv2-product-media-frame {
  position: relative;
  overflow: hidden;
  z-index: 1;
}
.hv2-product-shaft {
  position: absolute;
  left: 0;
  right: 0;
  top: 0;
  height: 100%;
  background: #eee;
  z-index: 2;
  pointer-events: none;
  transform-origin: top center;
  transition: height 0.95s cubic-bezier(0.22, 1, 0.36, 1);
}
.hv2-product-media.is-visible .hv2-product-shaft {
  height: 0;
}
.hv2-product-sq {
  position: absolute;
  z-index: 2;
  pointer-events: none;
}
.hv2-product-sq--light {
  width: 60px;
  height: 60px;
  background: #eee;
}
.hv2-product-sq--brand {
  width: 120px;
  height: 120px;
  background: var(--hv2p-line);
}
/* left-framed (planta): light on right, brand bottom-left — like out-image.left */
.hv2-product-media--left .hv2-product-sq--light {
  top: -60px;
  right: -25px;
  transition: top 1s cubic-bezier(0.22, 1, 0.36, 1) 0.2s;
}
.hv2-product-media--left.is-visible .hv2-product-sq--light {
  top: 180px;
}
.hv2-product-media--left .hv2-product-sq--brand {
  left: 0;
  bottom: -50px;
}
/* right-framed (config): light on left, brand bottom — like out-image.right */
.hv2-product-media--right .hv2-product-sq--light {
  top: -60px;
  left: -25px;
  transition: top 1s cubic-bezier(0.22, 1, 0.36, 1) 0.2s;
}
.hv2-product-media--right.is-visible .hv2-product-sq--light {
  top: 150px;
}
.hv2-product-media--right .hv2-product-sq--brand {
  right: 0;
  bottom: -50px;
}
.hv2-product-media img {
  transition: transform 0.35s ease;
  will-change: transform;
  position: relative;
  z-index: 1;
  display: block;
  width: 100%;
  height: auto;
}
.hv2-product-media.is-visible:hover img {
  transform: scale(1.03);
}
@media (max-width: 900px) {
  .hv2-product-sq {
    display: none;
  }
}
@media (prefers-reduced-motion: reduce) {
  .hv2-product-shaft,
  .hv2-product-sq--light,
  .hv2-product-media img {
    transition: none;
  }
  .hv2-product-shaft {
    height: 0;
  }
  .hv2-product-media--left .hv2-product-sq--light,
  .hv2-product-media--right .hv2-product-sq--light {
    top: 160px;
  }
  .hv2-product-media.is-visible:hover img {
    transform: none;
  }
}

/* Specs */
.hv2-product-specs-grid {
  display: grid;
  grid-template-columns: 0.95fr 1.05fr;
  gap: 56px;
  align-items: start;
}
.hv2-product-section-title {
  font-family: 'PT Sans Caption', sans-serif;
  font-weight: 700;
  font-size: 32px;
  line-height: 1.15;
  letter-spacing: -0.01em;
  color: var(--hv2p-ink);
  margin: 0 0 20px;
}
h2.hv2-product-section-title {
  margin: 0 0 20px;
}
.hv2-product-specs-copy p {
  font-size: 16px;
  line-height: 1.65;
  color: var(--hv2p-muted);
  margin: 0 0 14px;
}
.hv2-product-specs-copy a {
  color: var(--hv2p-line);
  font-weight: 600;
}
.hv2-product-list {
  margin: 24px 0 0;
  padding: 0;
  list-style: none;
}
.hv2-product-list li {
  position: relative;
  padding: 10px 0 10px 18px;
  border-top: 1px solid var(--hv2p-border);
  font-size: 15px;
  line-height: 1.45;
  color: var(--hv2p-ink);
}
.hv2-product-list li:last-child {
  border-bottom: 1px solid var(--hv2p-border);
}
.hv2-product-list li::before {
  content: '';
  position: absolute;
  left: 0;
  top: 18px;
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: var(--hv2p-line);
}
/* Config */
.hv2-product-config-grid {
  display: grid;
  grid-template-columns: 1.05fr 0.95fr;
  gap: 56px;
  align-items: center;
}
.hv2-product-config-copy p {
  font-size: 16px;
  line-height: 1.65;
  color: var(--hv2p-muted);
  margin: 0 0 14px;
}

/* Segments / catalog (shared vertbox includes, scoped).
   Specificity must beat style.css:
   [data-view='monta-cargas'] .product-links:first-child .box-link { background:#50a1af }
   and .product-links .box-link { height:120px } / .content-wrapper absolute. */
body.hv2-product-page .hv2-product-after {
  border-top: 1px solid var(--hv2p-border);
  background: #f8f9fb;
}
body.hv2-product-page .hv2-product-after .inner,
body.hv2-product-page .hv2-product-after .product-links-wrapper {
  width: 100% !important;
  max-width: none !important;
  padding: 0;
  margin: 0;
  box-sizing: border-box;
}
body.hv2-product-page .hv2-product-after .product-links {
  margin-bottom: 40px;
}
body.hv2-product-page .hv2-product-after .product-links-title {
  font-family: 'PT Sans Caption', sans-serif;
  font-size: 24px;
  font-weight: 700;
  color: var(--hv2p-ink);
  margin: 0 0 20px;
}
body.hv2-product-page .hv2-product-after .product-links .box-link,
body.hv2-product-page .hv2-product-after .product-links:first-child .box-link,
body.hv2-product-page .hv2-product-after .product-links:last-child .box-link {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  background: #fff !important;
  border: 1px solid var(--hv2p-border);
  border-left: 3px solid var(--hv2p-line);
  padding: 14px 18px;
  margin: 0 0 8px;
  height: auto !important;
  min-height: 0;
  position: relative;
  overflow: hidden;
  text-decoration: none;
  opacity: 1;
  transition: background 0.18s, transform 0.18s, box-shadow 0.18s;
}
body.hv2-product-page .hv2-product-after .product-links .box-link:hover,
body.hv2-product-page .hv2-product-after .product-links:first-child .box-link:hover {
  background: #eef4f5 !important;
  opacity: 1;
  transform: translateX(3px);
  box-shadow: inset 0 0 0 0 transparent;
}
body.hv2-product-page .hv2-product-after .mini-gray-square,
body.hv2-product-page .hv2-product-after .square {
  display: none !important;
}
body.hv2-product-page .hv2-product-after .box-link .content-wrapper,
body.hv2-product-page .hv2-product-after .box-link .pos-r .content-wrapper {
  position: static;
  top: auto;
  left: auto;
  transform: none;
  width: auto;
  flex: 1;
}
body.hv2-product-page .hv2-product-after .box-link .pos-r {
  position: static;
  height: auto;
}
body.hv2-product-page .hv2-product-after .box-link img {
  display: block;
  max-height: 32px;
  width: auto;
  margin: 0;
}
/* Beat style.css `.product-links:first-child .box-link .box-link-title { color:#fff !important }` */
body.hv2-product-page .hv2-product-after .product-links:first-child .box-link .box-link-title,
body.hv2-product-page .hv2-product-after .product-links:first-child .box-link .box-link-subtitle {
  color: var(--hv2p-ink) !important;
}
body.hv2-product-page .hv2-product-after .product-links:first-child .box-link .box-link-title {
  display: block;
  font-size: 15px;
  font-weight: 600;
  line-height: 1.3;
}
body.hv2-product-page .hv2-product-after .product-links:first-child .box-link .box-link-subtitle {
  display: block;
  font-size: 13px;
  font-weight: 500;
  line-height: 1.3;
  color: var(--hv2p-muted) !important;
  margin-top: 2px;
}
/* Segment scan: emphasize the segment name (subtitle), demote repeated "Monta-cargas" */
body.hv2-product-page .hv2-product-after .product-links:last-child .box-link-title {
  display: block;
  font-size: 12px;
  font-weight: 500;
  color: var(--hv2p-soft);
  letter-spacing: 0.04em;
  text-transform: uppercase;
}
body.hv2-product-page .hv2-product-after .product-links:last-child .box-link-subtitle {
  display: block;
  font-size: 16px;
  font-weight: 600;
  color: var(--hv2p-ink);
  margin-top: 2px;
}
body.hv2-product-page .hv2-product-after .product-links:first-child .box-link .row > [class*="col-"]:first-child {
  flex: 0 0 auto;
  max-width: 120px;
}
/* Hero already has the contact CTA — drop the duplicate catalog contact card on this page only */
body.hv2-product-page .hv2-product-after .product-links:first-child .box-link[href*="contato/"],
body.hv2-product-page .hv2-product-after .product-links:first-child .row > [class*="col-"]:has(> .box-link[href*="contato/"]) {
  display: none !important;
}
body.hv2-product-page .hv2-product-after .product-links:first-child .row > [class*="col-"]:has(> .box-link[href*=".pdf"]) {
  max-width: 420px;
}
body.hv2-product-page .hv2-product-after .row {
  margin-left: 0;
  margin-right: 0;
  display: block;
}
body.hv2-product-page .hv2-product-after .row > [class*="col-"] {
  padding-left: 0;
  padding-right: 0;
  float: none;
  width: 100%;
  display: block;
}
body.hv2-product-page .hv2-product-after .box-link .row {
  display: flex !important;
  align-items: center;
  gap: 16px;
  width: 100%;
  grid-template-columns: none;
}
body.hv2-product-page .hv2-product-after .box-link .row > [class*="col-"] {
  width: auto !important;
  float: none;
}
body.hv2-product-page .hv2-product-after .m-b-80 {
  margin-bottom: 0;
}
@media (min-width: 901px) {
  /* Flatten Bootstrap rows so cards share one 2-col grid (avoids staggered half-rows).
     Kill .row clearfix pseudos — with display:contents they become ghost grid cells
     and push the first card to the right column (misaligned pair). */
  body.hv2-product-page .hv2-product-after .product-links > .row::before,
  body.hv2-product-page .hv2-product-after .product-links > .row::after {
    content: none !important;
    display: none !important;
  }
  body.hv2-product-page .hv2-product-after .product-links {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    column-gap: 16px;
    row-gap: 8px;
    align-items: stretch;
  }
  body.hv2-product-page .hv2-product-after .product-links > .product-links-title {
    grid-column: 1 / -1;
  }
  body.hv2-product-page .hv2-product-after .product-links > .row {
    display: contents;
  }
  body.hv2-product-page .hv2-product-after .product-links > .row > [class*="col-"] {
    width: auto;
    float: none;
    display: flex;
  }
  body.hv2-product-page .hv2-product-after .product-links > .row > [class*="col-"] > .box-link {
    flex: 1;
    width: 100%;
    align-self: stretch;
  }
}

/* SEO block — Option A: lead ? segment chapters ? why */
.hv2-product-seo {
  border-top: 1px solid var(--hv2p-border);
}
/* Width comes from .hv2-product-inner (1240px) — do not re-narrow here */
.hv2-product-seo-lead {
  margin-bottom: 36px;
}
.hv2-product-seo-lead p {
  font-size: 16px;
  line-height: 1.7;
  color: var(--hv2p-muted);
  margin: 0 0 16px;
}
.hv2-product-seo-lead p:last-child {
  margin-bottom: 0;
}
.hv2-product-seo-segment {
  margin: 0 0 28px;
}
.hv2-product-seo-segment:last-child {
  margin-bottom: 0;
}
.hv2-product-seo-segment p {
  font-size: 16px;
  line-height: 1.7;
  color: var(--hv2p-muted);
  margin: 0;
}
.hv2-product-seo-seghead,
h3.hv2-product-seo-seghead {
  display: block;
  font-family: Archivo, sans-serif;
  font-size: 12px;
  font-weight: 600;
  letter-spacing: 0.08em;
  color: var(--hv2p-line);
  margin: 0 0 8px;
}
.hv2-product-seo-why {
  margin-top: 8px;
  padding-top: 32px;
  border-top: 1px solid var(--hv2p-border);
}
.hv2-product-seo-why-title,
h2.hv2-product-seo-why-title {
  font-family: 'PT Sans Caption', sans-serif;
  font-weight: 700;
  font-size: 20px;
  line-height: 1.3;
  color: var(--hv2p-ink);
  margin: 0 0 14px;
}
.hv2-product-seo-why p {
  font-size: 16px;
  line-height: 1.7;
  color: var(--hv2p-muted);
  margin: 0 0 16px;
}
.hv2-product-seo-why p:last-child {
  margin-bottom: 0;
}
.hv2-product-seo-list {
  margin: 0;
  padding: 0;
  list-style: none;
  color: var(--hv2p-muted);
  font-size: 16px;
  line-height: 1.7;
}
.hv2-product-seo-list li {
  position: relative;
  padding: 0 0 10px 22px;
}
.hv2-product-seo-list li:last-child {
  padding-bottom: 0;
}
.hv2-product-seo-list li::before {
  content: '';
  position: absolute;
  left: 0;
  top: 0.55em;
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: var(--hv2p-line);
}
ol.hv2-product-seo-list {
  counter-reset: hv2p-seo;
}
ol.hv2-product-seo-list li {
  padding-left: 28px;
}
ol.hv2-product-seo-list li::before {
  content: counter(hv2p-seo) ".";
  counter-increment: hv2p-seo;
  width: auto;
  height: auto;
  border-radius: 0;
  background: none;
  top: 0;
  font-weight: 700;
  color: var(--hv2p-line);
  font-size: 14px;
}

@media (max-width: 900px) {
  :root {
    --hv2p-pad-x: 20px;
  }
  .hv2-product-hero-grid,
  .hv2-product-specs-grid,
  .hv2-product-config-grid {
    grid-template-columns: 1fr;
    gap: 32px;
  }
  .hv2-product-hero h1 {
    font-size: 34px;
  }
  .hv2-product-dek {
    font-size: 18px;
  }
  .hv2-product-hero {
    padding-top: 32px;
    padding-bottom: 40px;
  }
  .hv2-product-section-title {
    font-size: 26px;
  }
  .hv2-product-specs,
  .hv2-product-config {
    padding-top: 48px;
    padding-bottom: 48px;
  }
}
