:root{
  --bg-dark: #0b0b10;
  --bg-card: rgba(255,255,255,0.94);
  --text: #ffffff;
  --text-dark: #101114;
  --muted: #c7c7cc;
  --muted-dark: #6c6f76;
  --red: #e1141a;
  --red-hover: #c90f15;
  --green: #20c05c;
  --border: rgba(255,255,255,0.08);
  --radius-xl: 22px;
  --radius-lg: 16px;
  --shadow-lg: 0 20px 60px rgba(0,0,0,.35);
  --container: 1200px;
}

*{ box-sizing: border-box; }

html, body{
  margin: 0;
  padding: 0;
  font-family: "Inter", system-ui, -apple-system, sans-serif;
  background: #fff;
  color: var(--text-dark);
  scroll-behavior: smooth;
}

img{
  max-width: 100%;
  display: block;
}

a{
  text-decoration: none;
  color: inherit;
}

.container{
  width: min(var(--container), calc(100% - 32px));
  margin-inline: auto;
}

/* =========================================================
   HEADER
========================================================= */
.site-header{
  position: sticky;
  top: 0;
  z-index: 100;
  background: rgba(6,6,10,0.82);
  backdrop-filter: blur(10px);
  border-bottom: 1px solid rgba(255,255,255,0.05);
}

.header-wrap{
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  min-height: 78px;
}

..brand img{
  height: 28px;   /* antes 34px */
  width: auto;
  max-width: 100%;
  object-fit: contain;
}

/* NAV base */
.nav{
  display: flex;
  align-items: center;
}

.nav-list{
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  align-items: center;
  gap: 4px;
}

.nav-item{
  position: relative;
}

.nav-link{
  display: inline-flex;
  align-items: center;
  gap: 6px;
  border: 0;
  background: transparent;
  color: #f4f4f6;
  font-weight: 600;
  font-size: 0.93rem;
  padding: 10px 12px;
  border-radius: 10px;
  cursor: pointer;
  opacity: .95;
  transition: .2s ease;
  white-space: nowrap;
}

.nav-link:hover,
.nav-item.is-open > .nav-link{
  opacity: 1;
  background: rgba(255,255,255,.06);
}

.nav-trigger{
  font-family: inherit;
}

.caret{
  font-size: .78rem;
  line-height: 1;
  transition: transform .2s ease;
}

.nav-item.is-open > .nav-link .caret{
  transform: rotate(180deg);
}

/* Dropdown simples desktop */
.submenu{
  position: absolute;
  top: calc(100% + 10px);
  left: 0;
  min-width: 240px;
  background: rgba(12,12,16,.97);
  border: 1px solid rgba(255,255,255,.08);
  border-radius: 12px;
  box-shadow: 0 20px 60px rgba(0,0,0,.35);
  padding: 8px;
  display: grid;
  gap: 2px;
  z-index: 120;

  opacity: 0;
  visibility: hidden;
  transform: translateY(8px);
  pointer-events: none;
  transition: opacity .18s ease, transform .18s ease, visibility .18s ease;
}

.submenu-link{
  display: block;
  color: #e6e7ed;
  font-size: .9rem;
  line-height: 1.2;
  padding: 10px 12px;
  border-radius: 8px;
  transition: .18s ease;
}

.submenu-link:hover{
  background: rgba(255,255,255,.06);
  color: #fff;
  transform: translateX(2px);
}

@media (min-width: 861px){
  .has-dropdown:hover > .submenu,
  .has-dropdown.is-open > .submenu{
    opacity: 1;
    visibility: visible;
    transform: translateY(0);
    pointer-events: auto;
  }
}

/* Header actions */
.header-actions{
  display: flex;
  align-items: center;
  gap: 10px;
}

.menu-toggle{
  display: none;
  border: 1px solid rgba(255,255,255,0.15);
  background: transparent;
  color: #fff;
  border-radius: 10px;
  padding: 8px 10px;
  font-size: 18px;
  cursor: pointer;
}

/* =========================================================
   BUTTONS
========================================================= */
.btn{
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border: 0;
  border-radius: 12px;
  font-weight: 700;
  cursor: pointer;
  transition: .2s ease;
  white-space: nowrap;
}

.btn-primary{
  background: var(--red);
  color: #fff;
  padding: 12px 18px;
}

.btn-primary:hover{
  background: var(--red-hover);
  transform: translateY(-1px);
}

.btn-whatsapp{
  background: rgba(32,192,92,.15);
  color: #d9ffe8;
  border: 1px solid rgba(32,192,92,.35);
  padding: 12px 14px;
}

.btn-dark{
  background: rgba(255,255,255,.08);
  color: #fff;
  border: 1px solid rgba(255,255,255,.12);
  padding: 12px 18px;
}

.btn-large{
  min-height: 48px;
  padding-inline: 22px;
}

.btn-client-area{
  background: rgba(255,255,255,.08);
  color: #fff;
  border: 1px solid rgba(255,255,255,.16);
  padding: 12px 14px;
}

.btn-client-area:hover{
  background: rgba(255,255,255,.14);
  transform: translateY(-1px);
}

/* =========================================================
   HERO
========================================================= */
.hero{
  position: relative;
  background: #08090c;
  color: var(--text);
  overflow: hidden;
  padding: 32px 0 24px;
}

.hero-bg,
.cta-bg{
  position: absolute;
  inset: 0;
  background-size: cover;
  background-position: center;
  transform: scale(1.02);
}

.hero-bg{
  background-image: url('../img/hero-bg.jpg');
  filter: saturate(1.05) brightness(.9);
}

.hero-overlay{
  position: absolute;
  inset: 0;
  background:
    radial-gradient(circle at 20% 30%, rgba(225,20,26,.16), transparent 48%),
    linear-gradient(180deg, rgba(4,4,7,.30), rgba(4,4,7,.70));
  pointer-events: none;
}

.hero-grid{
  position: relative;
  z-index: 2;
  display: grid;
  grid-template-columns: 1.05fr .95fr;
  gap: 28px;
  align-items: start;
}

.hero-content{
  padding: 42px 6px 10px 0;
}

.hero h1{
  margin: 0 0 12px;
  font-size: clamp(2rem, 5vw, 4rem);
  line-height: .95;
  font-weight: 800;
  letter-spacing: -0.03em;
}

.hero-sub{
  max-width: 560px;
  font-size: clamp(1rem, 2vw, 1.4rem);
  color: #f0f0f3;
  font-weight: 600;
  margin: 0 0 22px;
  line-height: 1.25;
}

.hero-list{
  margin: 0;
  padding: 0;
  list-style: none;
  display: grid;
  gap: 12px;
  font-size: 1.05rem;
  color: #f4f4f7;
}

/* =========================================================
   FORM CARD
========================================================= */
.quote-card{
  background: rgba(20,20,24,.55);
  border: 1px solid rgba(255,255,255,.07);
  border-radius: 18px;
  box-shadow: var(--shadow-lg);
  padding: 16px;
}

.quote-card h2{
  margin: 8px 8px 6px;
  font-size: 2rem;
  line-height: 1.05;
  letter-spacing: -0.02em;
}

.quote-card-sub{
  margin: 0 8px 14px;
  color: #d7d7dc;
  font-size: .95rem;
}

.steps{
  background: var(--bg-card);
  border-radius: 14px 14px 0 0;
  padding: 12px 14px 0;
  display: flex;
  gap: 8px;
  flex-wrap: wrap;
}

.step{
  background: #ececef;
  color: #4a4c52;
  border-radius: 999px;
  padding: 8px 12px;
  font-size: .83rem;
  font-weight: 700;
}

.step.active{
  background: #111217;
  color: #fff;
}

.quote-form{
  background: var(--bg-card);
  border-radius: 0 0 14px 14px;
  padding: 14px;
  color: var(--text-dark);
}

.alert{
  margin: 0 0 10px;
  background: rgba(32,192,92,.12);
  color: #e9fff2;
  border: 1px solid rgba(32,192,92,.28);
  border-radius: 12px;
  padding: 10px 12px;
  font-size: .92rem;
}

.form-grid-2{
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 12px;
}

.field-group{
  display: flex;
  flex-direction: column;
  gap: 6px;
}

.field-group label{
  font-weight: 700;
  font-size: .88rem;
  color: #1a1b20;
}

.field-group input{
  width: 100%;
  min-height: 42px;
  border-radius: 10px;
  border: 1px solid #d6d7dc;
  padding: 10px 12px;
  font-size: .95rem;
  outline: none;
  background: #fff;
}

.field-group input:focus{
  border-color: rgba(225,20,26,.6);
  box-shadow: 0 0 0 3px rgba(225,20,26,.12);
}

.field-group small{
  color: var(--muted-dark);
  font-size: .76rem;
  line-height: 1.2;
}

.form-bottom{
  margin-top: 12px;
  display: flex;
  gap: 10px;
  align-items: end;
}

.form-bottom .grow{
  flex: 1;
}

.form-note{
  margin: 10px 2px 2px;
  font-size: .78rem;
  color: #6c7078;
}

/* =========================================================
   DIFFERENTIALS
========================================================= */
.differentials{
  position: relative;
  z-index: 2;
  margin-top: 18px;
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 12px;
}

.diff-card{
  background: rgba(12,12,16,.74);
  border: 1px solid var(--border);
  border-radius: 14px;
  min-height: 84px;
  padding: 14px;
  display: flex;
  align-items: center;
  gap: 12px;
  color: #fff;
}

.diff-icon{
  width: 42px;
  height: 42px;
  border-radius: 12px;
  display: grid;
  place-items: center;
  background: rgba(225,20,26,.14);
  border: 1px solid rgba(225,20,26,.35);
  font-size: 20px;
}

.diff-text{
  font-weight: 700;
  line-height: 1.1;
}

/* =========================================================
   SECTIONS
========================================================= */
.section-light{
  background: #f5f6f8;
  padding: 52px 0 64px;
}

.section-title{
  margin: 0 0 22px;
  font-size: clamp(1.6rem, 3vw, 2.6rem);
  letter-spacing: -0.02em;
  line-height: 1.05;
}

.services-grid{
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 14px;
}

.service-card{
  background: #fff;
  border: 1px solid #e7e8ec;
  border-radius: 14px;
  padding: 18px;
  min-height: 210px;
}

.service-icon{
  width: 46px;
  height: 46px;
  border-radius: 12px;
  display: grid;
  place-items: center;
  background: rgba(225,20,26,.08);
  border: 1px solid rgba(225,20,26,.15);
  font-size: 22px;
  margin-bottom: 12px;
}

.service-card h3{
  margin: 0 0 8px;
  font-size: 1.1rem;
  line-height: 1.2;
}

.service-card p{
  margin: 0;
  color: #60646d;
  line-height: 1.45;
  font-size: .94rem;
}

/* =========================================================
   CTA / CLIENTES
========================================================= */
.cta-band{
  position: relative;
  color: #fff;
  padding: 54px 0 72px;
  overflow: hidden;
  background: #08090c;
}

.cta-bg{
  background-image: url('../img/cta-bg.jpg');
  filter: brightness(.75);
}

.cta-content{
  position: relative;
  z-index: 2;
}

.clients-title{
  margin: 0 0 16px;
  text-align: center;
  font-size: clamp(1.4rem, 2.6vw, 2.3rem);
  letter-spacing: -0.02em;
}

/* ===== CLIENTES MARQUEE ===== */
.clients-marquee{
  position: relative;
  overflow: hidden;
  width: 100%;
  margin-bottom: 28px;
  padding: 14px 0;
  border-radius: 14px;
  background: rgba(255,255,255,.92);
  border: 1px solid rgba(255,255,255,.35);
}

.clients-marquee::before,
.clients-marquee::after{
  content: "";
  position: absolute;
  top: 0;
  width: 70px;
  height: 100%;
  z-index: 2;
  pointer-events: none;
}

.clients-marquee::before{
  left: 0;
  background: linear-gradient(to right, rgba(255,255,255,1), rgba(255,255,255,0));
}

.clients-marquee::after{
  right: 0;
  background: linear-gradient(to left, rgba(255,255,255,1), rgba(255,255,255,0));
}

.clients-track{
  display: flex !important;
  flex-direction: row !important;
  flex-wrap: nowrap !important;
  align-items: center;
  gap: 18px;
  width: max-content;
  min-width: max-content;
  animation: marquee-left 20s linear infinite;
  will-change: transform;
}

.clients-track.track-right{
  animation: marquee-right 20s linear infinite;
}

.clients-marquee:hover .clients-track{
  animation-play-state: paused;
}

.client-item{
  flex: 0 0 220px !important;
  width: 220px;
  height: 72px;
  display: flex !important;
  align-items: center;
  justify-content: center;
  padding: 8px 12px;
  background: transparent;
  border: 0;
}

.client-logo{
  width: 160px;
  height: 42px;
  object-fit: contain;
  object-position: center;
  display: block;
  filter: brightness(0) saturate(100%);
  opacity: .95;
}

@keyframes marquee-left{
  from { transform: translateX(0); }
  to   { transform: translateX(-50%); }
}

@keyframes marquee-right{
  from { transform: translateX(-50%); }
  to   { transform: translateX(0); }
}

.cta-box{
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 16px;
  background: rgba(7,7,10,.55);
  border: 1px solid rgba(255,255,255,.1);
  border-radius: 16px;
  padding: 20px;
  backdrop-filter: blur(6px);
}

.cta-box h3{
  margin: 0 0 6px;
  font-size: clamp(1.4rem, 3vw, 2.2rem);
  letter-spacing: -0.03em;
}

.cta-box p{
  margin: 0;
  color: #dbdbe1;
}

.cta-actions{
  display: flex;
  gap: 10px;
  flex-wrap: wrap;
}

/* =========================================================
   FOOTER
========================================================= */
.site-footer{
  background: #0b0b10;
  color: #cfcfd6;
  padding: 18px 0;
  border-top: 1px solid rgba(255,255,255,.06);
  text-align: center;
  font-size: .9rem;
}

/* =========================================================
   RESPONSIVO
========================================================= */
@media (max-width: 1100px){
  .hero-grid{
    grid-template-columns: 1fr;
    gap: 18px;
  }

  .hero-content{
    padding-top: 24px;
  }

  .quote-card h2{
    font-size: 1.7rem;
  }

  .differentials{
    grid-template-columns: repeat(2, 1fr);
  }

  .services-grid{
    grid-template-columns: repeat(2, 1fr);
  }

  .cta-box{
    flex-direction: column;
    align-items: flex-start;
  }

  .nav-link{
    font-size: .9rem;
    padding: 10px 10px;
  }
}

@media (max-width: 860px){
  /* Header mobile */
  .nav{
    display: none;
    position: absolute;
    top: 78px;
    left: 16px;
    right: 16px;
    background: rgba(10,10,14,.98);
    border: 1px solid rgba(255,255,255,.08);
    border-radius: 14px;
    padding: 10px;
    flex-direction: column;
    align-items: stretch;
    gap: 6px;
    z-index: 999;
  }

  .nav.open{
    display: flex !important;
  }

  .nav-list{
    width: 100%;
    flex-direction: column;
    align-items: stretch;
    gap: 4px;
  }

  .nav-item{
    width: 100%;
  }

  .nav-link{
    width: 100%;
    justify-content: space-between;
    padding: 12px;
    border-radius: 10px;
  }

  /* Dropdown vira acordeão */
  .submenu{
    position: static;
    min-width: 100%;
    margin-top: 6px;
    padding: 6px;
    background: rgba(255,255,255,.03);
    border: 1px solid rgba(255,255,255,.06);
    box-shadow: none;
    border-radius: 10px;

    display: none;
    opacity: 1;
    visibility: visible;
    transform: none;
    pointer-events: auto;
  }

  .has-dropdown.is-open > .submenu{
    display: grid;
  }

  .submenu-link{
    padding: 10px;
    font-size: .9rem;
  }

  .menu-toggle{
    display: inline-flex !important;
  }

  .header-actions .btn-whatsapp{
    display: none;
  }

  .header-actions .btn-primary{
    display: none;
  }

  .header-actions .btn-client-area{
    display: inline-flex;
    padding: 10px 12px;
    font-size: .88rem;
  }

  /* Form */
  .form-grid-2{
    grid-template-columns: 1fr;
  }

  .form-bottom{
    flex-direction: column;
    align-items: stretch;
  }

  .form-bottom .btn{
    width: 100%;
  }

  /* Marquee */
  .client-item{
    flex-basis: 180px !important;
    width: 180px;
    height: 64px;
  }

  .client-logo{
    width: 135px;
    height: 36px;
  }

  .clients-track{
    gap: 12px;
    animation-duration: 16s;
  }

  .clients-marquee::before,
  .clients-marquee::after{
    width: 40px;
  }
}

@media (max-width: 600px){
  .container{
    width: min(var(--container), calc(100% - 20px));
  }

  .header-wrap{
    min-height: 70px;
  }

  .brand img{
    height: 24px;
  }

  .header-actions .btn-client-area{
    display: none;
  }

  .hero{
    padding-top: 16px;
  }

  .hero h1{
    line-height: 1;
  }

  .hero-sub{
    font-size: 1rem;
  }

  .differentials{
    grid-template-columns: 1fr;
  }

  .services-grid{
    grid-template-columns: 1fr;
  }

  .step{
    font-size: .75rem;
    padding: 7px 10px;
  }

  .quote-card{
    padding: 10px;
  }

  .quote-form{
    padding: 12px;
  }

  .client-item{
    flex-basis: 150px !important;
    width: 150px;
    height: 58px;
  }

  .client-logo{
    width: 110px;
    height: 30px;
  }

  .clients-track{
    animation-duration: 14s;
  }
}

/* ==========================================
   HOTFIX HEADER MOBILE (menu + área do cliente)
   COLE NO FINAL DO style.css
========================================== */

@media (max-width: 860px){
  /* mostra hamburguer */
  #menuToggle{
    display: inline-flex !important;
    align-items: center;
    justify-content: center;
    width: 46px;
    height: 46px;
    border-radius: 12px;
    border: 1px solid rgba(255,255,255,.12);
    background: rgba(255,255,255,.02);
    color: #fff;
    font-size: 24px;
    line-height: 1;
    padding: 0;
  }

  /* mantém área do cliente visível no mobile */
  .header-actions .btn-client-area{
    display: inline-flex !important;
    padding: 10px 12px !important;
    font-size: .88rem !important;
  }

  /* menu mobile */
  #navMenu{
    display: none !important;
    position: absolute !important;
    top: 78px !important;
    left: 16px !important;
    right: 16px !important;
    z-index: 9999 !important;
    background: rgba(10,10,14,.98) !important;
    border: 1px solid rgba(255,255,255,.08) !important;
    border-radius: 14px !important;
    padding: 10px !important;
    flex-direction: column !important;
    gap: 6px !important;
  }

  #navMenu.open{
    display: flex !important;
  }

  /* reset lista */
  #navMenu ul,
  #navMenu li{
    list-style: none !important;
    margin: 0 !important;
    padding: 0 !important;
  }

  #navMenu .nav-list{
    display: flex !important;
    flex-direction: column !important;
    align-items: stretch !important;
    gap: 4px !important;
    width: 100% !important;
  }

  #navMenu .nav-item{
    width: 100% !important;
    position: relative !important;
  }

  #navMenu .nav-link,
  #navMenu .nav-trigger{
    width: 100% !important;
    display: flex !important;
    align-items: center !important;
    justify-content: space-between !important;
    gap: 8px !important;
    padding: 12px !important;
    border-radius: 10px !important;
    color: #fff !important;
    background: transparent !important;
    border: 0 !important;
    text-decoration: none !important;
    font: inherit !important;
    font-weight: 700 !important;
    cursor: pointer !important;
    -webkit-appearance: none !important;
    appearance: none !important;
    white-space: normal !important;
  }

  #navMenu .nav-link:hover,
  #navMenu .nav-item.is-open > .nav-link{
    background: rgba(255,255,255,.06) !important;
  }

  /* submenu acordeão */
  #navMenu .submenu{
    display: none !important;
    position: static !important;
    opacity: 1 !important;
    visibility: visible !important;
    transform: none !important;
    pointer-events: auto !important;
    min-width: 100% !important;
    margin-top: 6px !important;
    padding: 6px !important;
    background: rgba(255,255,255,.03) !important;
    border: 1px solid rgba(255,255,255,.06) !important;
    border-radius: 10px !important;
    box-shadow: none !important;
    gap: 4px !important;
  }

  #navMenu .has-dropdown.is-open > .submenu{
    display: grid !important;
  }

  #navMenu .submenu-link{
    display: block !important;
    width: 100% !important;
    padding: 10px !important;
    border-radius: 8px !important;
    color: #e6e7ed !important;
    text-decoration: none !important;
    line-height: 1.2 !important;
    white-space: normal !important;
  }

  #navMenu .submenu-link:hover{
    background: rgba(255,255,255,.06) !important;
    color: #fff !important;
  }

  #navMenu .caret{
    transition: transform .2s ease !important;
  }

  #navMenu .nav-item.is-open > .nav-link .caret{
    transform: rotate(180deg) !important;
  }

  /* no mobile ocultar outros botões, manter área cliente + hamburguer */
  .header-actions .btn-primary,
  .header-actions .btn-whatsapp{
    display: none !important;
  }
}

/* MUITO IMPORTANTE: remove regra antiga que escondia a Área do Cliente em telas pequenas */
@media (max-width: 600px){
  .header-actions .btn-client-area{
    display: inline-flex !important;
  }
}


/* =========================================================
   INSTITUCIONAL PAGE (premium + timeline progressiva)
========================================================= */

.institutional-page{
  position: relative;
  color: #fff;
  overflow: hidden;
  padding: 72px 0;
  background:
    radial-gradient(circle at 12% 8%, rgba(56,126,255,.10), transparent 45%),
    radial-gradient(circle at 88% 22%, rgba(225,20,26,.08), transparent 42%),
    linear-gradient(180deg, #05070d 0%, #04060b 100%);
}

.institutional-page::before{
  content: "";
  position: absolute;
  inset: 0;
  pointer-events: none;
  opacity: .18;
  background-image:
    linear-gradient(rgba(255,255,255,.04) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255,255,255,.04) 1px, transparent 1px);
  background-size: 36px 36px;
  -webkit-mask-image: radial-gradient(circle at center, #000 30%, transparent 100%);
  mask-image: radial-gradient(circle at center, #000 30%, transparent 100%);
}

.institutional-bg,
.institutional-overlay{
  position: absolute;
  inset: 0;
  pointer-events: none;
}

.institutional-bg{
  background:
    radial-gradient(circle at 20% 0%, rgba(0,209,255,.05), transparent 45%),
    radial-gradient(circle at 80% 40%, rgba(78,168,255,.05), transparent 45%);
}

.institutional-content{
  position: relative;
  z-index: 2;
}

.section-kicker{
  display: inline-block;
  color: #00d1ff;
  font-weight: 800;
  letter-spacing: .08em;
  font-size: .82rem;
  margin-bottom: 10px;
}

.section-kicker-blue{
  color: #1ec8ff;
}

/* HERO */
.institutional-hero{
  position: relative;
  max-width: 920px;
  margin: 0 auto 64px;
  text-align: center;
}

.institutional-hero::after{
  content: "";
  position: absolute;
  left: 50%;
  top: -10px;
  transform: translateX(-50%);
  width: min(540px, 75vw);
  height: 120px;
  background: radial-gradient(circle, rgba(78,168,255,.15), transparent 70%);
  filter: blur(22px);
  pointer-events: none;
}

.institutional-hero h1{
  margin: 0 0 12px;
  font-size: clamp(2rem, 4vw, 3.3rem);
  line-height: 1.03;
  letter-spacing: -.03em;
}

.institutional-hero h1 span{
  color: #4ea8ff;
}

.institutional-hero p{
  margin: 0 auto;
  max-width: 760px;
  color: #cfd5e3;
  line-height: 1.65;
  font-size: 1rem;
}

.institutional-stats{
  margin-top: 22px;
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 12px;
}

.inst-stat{
  background: linear-gradient(180deg, rgba(255,255,255,.045), rgba(255,255,255,.02));
  border: 1px solid rgba(255,255,255,.07);
  border-radius: 14px;
  padding: 14px;
  box-shadow: inset 0 1px 0 rgba(255,255,255,.03);
  backdrop-filter: blur(8px);
  transition: .25s ease;
}

.inst-stat:hover{
  transform: translateY(-2px);
  border-color: rgba(78,168,255,.18);
  box-shadow:
    0 12px 30px rgba(0,0,0,.20),
    0 0 0 1px rgba(78,168,255,.05) inset;
}

.inst-stat strong{
  display: block;
  color: #fff;
  font-size: 1rem;
  margin-bottom: 4px;
  line-height: 1.15;
}

.inst-stat span{
  color: #bfc6d7;
  font-size: .9rem;
}

.count-up{
  display: inline-block;
  min-width: 2ch;
  font-variant-numeric: tabular-nums;
  letter-spacing: -0.02em;
}

/* HEADS */
.history-section{
  margin-bottom: 56px;
}

.history-head{
  position: relative;
  text-align: center;
  margin-bottom: 34px;
}

.history-head::after{
  content: "";
  display: block;
  width: 120px;
  height: 2px;
  margin: 14px auto 0;
  background: linear-gradient(90deg, transparent, rgba(49,208,255,.9), transparent);
  border-radius: 999px;
}

.history-head h2,
.values-head h2{
  margin: 0;
  font-size: clamp(1.8rem, 3.2vw, 2.8rem);
  line-height: 1.05;
  letter-spacing: -.03em;
}

.history-head h2 span,
.values-head h2 span{
  color: #4ea8ff;
}

/* TIMELINE */
.timeline{
  --timeline-progress: 0%;
  position: relative;
  padding-top: 8px;
  isolation: isolate;
}

.timeline::before{
  content: "";
  position: absolute;
  left: 50%;
  top: 0;
  width: 180px;
  height: 100%;
  transform: translateX(-50%);
  background: radial-gradient(circle at center, rgba(49,208,255,.06), transparent 70%);
  filter: blur(18px);
  pointer-events: none;
  z-index: 0;
}

.timeline-line{
  position: absolute;
  top: 0;
  bottom: 0;
  left: 50%;
  width: 4px;
  transform: translateX(-50%);
  border-radius: 999px;
  overflow: hidden;
  z-index: 1;
  background: linear-gradient(180deg, rgba(49,208,255,.10), rgba(42,111,255,.12));
  border: 1px solid rgba(78,168,255,.10);
  box-shadow:
    0 0 0 1px rgba(255,255,255,.015) inset,
    0 0 26px rgba(49,208,255,.06);
}

.timeline-line-progress{
  position: absolute;
  top: 0;
  left: -1px;
  width: calc(100% + 2px);
  height: var(--timeline-progress, 0%);
  border-radius: 999px;
  background: linear-gradient(180deg, #31d0ff 0%, #2f8fff 45%, #2a6fff 100%);
  box-shadow:
    0 0 14px rgba(49,208,255,.25),
    0 0 28px rgba(42,111,255,.18);
  transition: none;
}

.timeline-line-progress::after{
  content: "";
  position: absolute;
  left: 50%;
  bottom: -7px;
  transform: translateX(-50%);
  width: 14px;
  height: 14px;
  border-radius: 50%;
  background:
    radial-gradient(circle at 35% 35%, #ffffff, #7ad8ff 38%, #2f87ff 70%, #1f4bc7 100%);
  box-shadow:
    0 0 0 4px rgba(49,208,255,.10),
    0 0 20px rgba(49,208,255,.35),
    0 0 36px rgba(42,111,255,.28);
}

.timeline-item{
  position: relative;
  z-index: 2;
  display: grid;
  grid-template-columns: 1fr 120px 1fr;
  align-items: center;
  min-height: 210px;
  margin-bottom: 14px;

  opacity: .28;
  transform: translateY(24px) scale(.985);
  transition: opacity .45s ease, transform .45s ease, filter .45s ease;
  transition-delay: var(--delay, 0s);
  filter: saturate(.85);
}

.timeline-item.in-view{
  opacity: 1;
  transform: translateY(0) scale(1);
  filter: saturate(1);
}

.timeline-item.left .timeline-card{
  grid-column: 1 / 2;
  margin-right: 28px;
  text-align: right;
}

.timeline-item.right .timeline-card{
  grid-column: 3 / 4;
  margin-left: 28px;
  text-align: left;
}

/* Conectores */
.timeline-item::before{
  content: "";
  position: absolute;
  top: 50%;
  width: 34px;
  height: 2px;
  transform: translateY(-50%);
  opacity: .35;
  transition: opacity .3s ease;
  z-index: 1;
}

.timeline-item.left::before{
  right: calc(50% + 16px);
  background: linear-gradient(90deg, rgba(49,208,255,.45), rgba(49,208,255,0));
}

.timeline-item.right::before{
  left: calc(50% + 16px);
  background: linear-gradient(90deg, rgba(49,208,255,0), rgba(49,208,255,.45));
}

.timeline-item.is-active::before{
  opacity: .95;
}

.timeline-dot{
  grid-column: 2 / 3;
  justify-self: center;
  width: 18px;
  height: 18px;
  border-radius: 50%;
  z-index: 2;
  background: radial-gradient(circle, #5bc4ff 15%, #2f87ff 65%, #1f49bf 100%);
  border: 3px solid #0b1020;
  box-shadow:
    0 0 0 6px rgba(42,125,255,.09),
    0 0 18px rgba(42,125,255,.18);
  transition: .35s ease;
}

.timeline-item.is-active .timeline-dot{
  transform: scale(1.08);
  box-shadow:
    0 0 0 8px rgba(49,208,255,.10),
    0 0 20px rgba(49,208,255,.35),
    0 0 40px rgba(42,111,255,.22);
}

.timeline-card{
  position: relative;
  background: linear-gradient(180deg, rgba(255,255,255,.045), rgba(255,255,255,.025));
  border: 1px solid rgba(255,255,255,.07);
  border-radius: 18px;
  padding: 22px;
  box-shadow:
    0 12px 34px rgba(0,0,0,.20),
    inset 0 1px 0 rgba(255,255,255,.03);
  backdrop-filter: blur(10px);
  overflow: hidden;
  transition: .2s ease;
}

.timeline-card::before{
  content: "";
  position: absolute;
  inset: 0 auto auto 0;
  width: 100%;
  height: 1px;
  background: linear-gradient(90deg, rgba(255,255,255,.18), rgba(255,255,255,0));
  opacity: .5;
}

.timeline-card:hover{
  transform: translateY(-3px);
  border-color: rgba(78,168,255,.18);
}

.timeline-item.is-active .timeline-card{
  border-color: rgba(78,168,255,.22);
  background:
    radial-gradient(circle at top right, rgba(78,168,255,.09), transparent 50%),
    linear-gradient(180deg, rgba(255,255,255,.05), rgba(255,255,255,.03));
  box-shadow:
    0 14px 36px rgba(0,0,0,.22),
    0 0 0 1px rgba(78,168,255,.05) inset,
    0 0 24px rgba(42,111,255,.07);
}

.timeline-year{
  display: inline-block;
  margin-bottom: 8px;
  font-size: 1.5rem;
  font-weight: 800;
  letter-spacing: -.02em;
  background: linear-gradient(180deg, #ffd67b 0%, #ffb01f 60%, #ff8e09 100%);
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
}

.timeline-card h3{
  margin: 0 0 10px;
  color: #fff;
  font-size: 1.25rem;
  line-height: 1.15;
  letter-spacing: -.02em;
}

.timeline-card p{
  margin: 0;
  color: #b7c3db;
  line-height: 1.55;
  font-size: .98rem;
}

/* MVV */
.mvv-section{
  margin-bottom: 54px;
}

.mvv-grid{
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 14px;
  margin-top: 18px;
}

.mvv-card{
  background: linear-gradient(180deg, rgba(255,255,255,.045), rgba(255,255,255,.02));
  border: 1px solid rgba(255,255,255,.07);
  border-radius: 16px;
  padding: 18px;
  box-shadow: inset 0 1px 0 rgba(255,255,255,.03);
  backdrop-filter: blur(8px);
  transition: .25s ease;
}

.mvv-card:hover{
  transform: translateY(-3px);
  border-color: rgba(78,168,255,.18);
  box-shadow:
    0 12px 30px rgba(0,0,0,.20),
    0 0 0 1px rgba(78,168,255,.05) inset;
}

.mvv-icon{
  display: inline-grid;
  place-items: center;
  width: 42px;
  height: 42px;
  border-radius: 12px;
  background: rgba(78,168,255,.10);
  border: 1px solid rgba(78,168,255,.18);
  margin-bottom: 10px;
  box-shadow: 0 0 0 1px rgba(255,255,255,.02) inset;
}

.mvv-card h3{
  margin: 0 0 8px;
  font-size: 1.08rem;
}

.mvv-card p{
  margin: 0;
  color: #c0cadc;
  line-height: 1.45;
  font-size: .94rem;
}

/* Valores */
.values-section{
  margin-bottom: 54px;
}

.values-head{
  margin-bottom: 18px;
}

.values-grid{
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 16px;
}

.value-card{
  position: relative;
  overflow: hidden;
  background: linear-gradient(180deg, rgba(255,255,255,.045), rgba(255,255,255,.02));
  border: 1px solid rgba(255,255,255,.07);
  border-radius: 16px;
  padding: 16px;
  box-shadow: inset 0 1px 0 rgba(255,255,255,.03);
  backdrop-filter: blur(8px);
  transition: .25s ease;

  opacity: 0;
  transform: translateY(16px);
}

.value-card::before{
  content: "";
  position: absolute;
  inset: -1px;
  background: radial-gradient(circle at top right, rgba(78,168,255,.08), transparent 40%);
  pointer-events: none;
}

.value-card.in-view{
  opacity: 1;
  transform: translateY(0);
}

.value-card:hover{
  transform: translateY(-3px);
  border-color: rgba(78,168,255,.18);
  box-shadow:
    0 12px 28px rgba(0,0,0,.18),
    0 0 0 1px rgba(78,168,255,.04) inset;
}

.value-icon{
  width: 42px;
  height: 42px;
  border-radius: 12px;
  display: grid;
  place-items: center;
  background: rgba(78,168,255,.10);
  border: 1px solid rgba(78,168,255,.18);
  margin-bottom: 10px;
  font-size: 20px;
  box-shadow: 0 0 0 1px rgba(255,255,255,.02) inset;
}

.value-card h3{
  margin: 0 0 8px;
  font-size: 1rem;
}

.value-card p{
  margin: 0;
  color: #c1cbdf;
  line-height: 1.45;
  font-size: .92rem;
}

/* CTA final */
.institutional-cta{
  background:
    radial-gradient(circle at top right, rgba(78,168,255,.10), transparent 45%),
    linear-gradient(180deg, rgba(255,255,255,.04), rgba(255,255,255,.02));
  border: 1px solid rgba(255,255,255,.07);
  border-radius: 18px;
  padding: 22px;
  box-shadow:
    0 20px 44px rgba(0,0,0,.22),
    inset 0 1px 0 rgba(255,255,255,.03);
  backdrop-filter: blur(10px);
}

.institutional-cta h2{
  margin: 0 0 10px;
  font-size: clamp(1.4rem, 2.5vw, 2rem);
  letter-spacing: -.02em;
}

.institutional-cta p{
  margin: 0 0 14px;
  color: #c3cde0;
  line-height: 1.55;
}

.institutional-cta-actions{
  display: flex;
  gap: 10px;
  flex-wrap: wrap;
}

/* reveal genérico */
.js-reveal{
  opacity: 0;
  transform: translateY(16px);
  transition: opacity .45s ease, transform .45s ease;
}

.js-reveal.in-view{
  opacity: 1;
  transform: translateY(0);
}

/* delays leves */
.values-grid .value-card:nth-child(1){ transition-delay: .02s; }
.values-grid .value-card:nth-child(2){ transition-delay: .05s; }
.values-grid .value-card:nth-child(3){ transition-delay: .08s; }
.values-grid .value-card:nth-child(4){ transition-delay: .11s; }
.values-grid .value-card:nth-child(5){ transition-delay: .14s; }
.values-grid .value-card:nth-child(6){ transition-delay: .17s; }

/* RESPONSIVO */
@media (max-width: 1100px){
  .timeline-item{
    grid-template-columns: 1fr 80px 1fr;
    min-height: 190px;
  }

  .timeline-item.left .timeline-card{ margin-right: 16px; }
  .timeline-item.right .timeline-card{ margin-left: 16px; }

  .values-grid{
    grid-template-columns: repeat(2, 1fr);
  }

  .mvv-grid{
    grid-template-columns: 1fr;
  }
}

@media (max-width: 860px){
  .institutional-page{
    padding: 56px 0;
  }

  .institutional-stats{
    grid-template-columns: 1fr;
  }

  .history-head{
    text-align: left;
  }

  .history-head::after{
    margin-left: 0;
    margin-right: auto;
  }

  .timeline::before{
    left: 18px;
    transform: none;
    width: 80px;
    background: radial-gradient(circle at 18px center, rgba(49,208,255,.07), transparent 70%);
  }

  .timeline-line{
    left: 18px;
    transform: none;
    width: 3px;
  }

  .timeline-line-progress::after{
    width: 12px;
    height: 12px;
    bottom: -6px;
  }

  .timeline-item{
    grid-template-columns: 36px 1fr;
    min-height: auto;
    margin-bottom: 14px;
    align-items: start;
  }

  .timeline-dot{
    grid-column: 1 / 2;
    justify-self: center;
    margin-top: 18px;
  }

  .timeline-item.left .timeline-card,
  .timeline-item.right .timeline-card{
    grid-column: 2 / 3;
    margin: 0 0 0 8px;
    text-align: left;
  }

  .timeline-item::before{
    width: 16px;
    left: 18px;
    top: 27px;
    transform: none;
    background: linear-gradient(90deg, rgba(49,208,255,.45), rgba(49,208,255,0));
    opacity: .8;
  }

  .timeline-item.left::before,
  .timeline-item.right::before{
    left: 18px;
    right: auto;
  }

  .timeline-card{
    padding: 16px;
  }

  .timeline-year{
    font-size: 1.35rem;
  }

  .timeline-card h3{
    font-size: 1.15rem;
  }

  .timeline-card p{
    font-size: .95rem;
  }

  .values-grid{
    grid-template-columns: 1fr;
  }
}

@media (max-width: 600px){
  .institutional-cta-actions .btn{
    width: 100%;
  }
}


/* =========================================================
   INSTITUCIONAL - TEMA VERMELHO SG (override)
   Cole no FINAL do style.css
========================================================= */

.institutional-page{
  background:
    radial-gradient(circle at 12% 8%, rgba(225,20,26,.14), transparent 45%),
    radial-gradient(circle at 88% 22%, rgba(255,80,80,.10), transparent 42%),
    linear-gradient(180deg, #070506 0%, #050405 100%);
}

.institutional-bg{
  background:
    radial-gradient(circle at 20% 0%, rgba(225,20,26,.08), transparent 45%),
    radial-gradient(circle at 80% 40%, rgba(255,90,90,.06), transparent 45%);
}

.section-kicker,
.section-kicker-blue{
  color: #ff5a5a !important;
}

.institutional-hero h1 span,
.history-head h2 span,
.values-head h2 span{
  color: #ff4d4d !important;
}

.institutional-hero::after{
  background: radial-gradient(circle, rgba(225,20,26,.16), transparent 70%);
}

/* Stats / cards */
.inst-stat{
  border-color: rgba(255,255,255,.08);
}

.inst-stat:hover{
  border-color: rgba(225,20,26,.28);
  box-shadow:
    0 12px 30px rgba(0,0,0,.20),
    0 0 0 1px rgba(225,20,26,.07) inset;
}

/* Linha decorativa dos títulos */
.history-head::after{
  background: linear-gradient(90deg, transparent, rgba(255,90,90,.95), transparent);
}

/* Glow da timeline */
.timeline::before{
  background: radial-gradient(circle at center, rgba(225,20,26,.08), transparent 70%);
}

/* Trilho da linha */
.timeline-line{
  background: linear-gradient(180deg, rgba(255,90,90,.12), rgba(225,20,26,.12)) !important;
  border-color: rgba(255,90,90,.14) !important;
  box-shadow:
    0 0 0 1px rgba(255,255,255,.015) inset,
    0 0 26px rgba(225,20,26,.08);
}

/* Progresso da linha (efeito premium vermelho) */
.timeline-line-progress{
  background: linear-gradient(180deg, #ff7a7a 0%, #ff4d4d 40%, #e1141a 100%) !important;
  box-shadow:
    0 0 14px rgba(255,90,90,.28),
    0 0 28px rgba(225,20,26,.20) !important;
}

/* "cabeça" da linha */
.timeline-line-progress::after{
  background:
    radial-gradient(circle at 35% 35%, #ffffff, #ff9a9a 38%, #ff4d4d 70%, #b50f14 100%) !important;
  box-shadow:
    0 0 0 4px rgba(255,90,90,.10),
    0 0 20px rgba(255,90,90,.35),
    0 0 36px rgba(225,20,26,.28) !important;
}

/* Conectores dos cards */
.timeline-item.left::before{
  background: linear-gradient(90deg, rgba(255,90,90,.5), rgba(255,90,90,0)) !important;
}
.timeline-item.right::before{
  background: linear-gradient(90deg, rgba(255,90,90,0), rgba(255,90,90,.5)) !important;
}

/* Pontos da timeline */
.timeline-dot{
  background: radial-gradient(circle, #ff9a9a 15%, #ff4d4d 65%, #b50f14 100%) !important;
  box-shadow:
    0 0 0 6px rgba(225,20,26,.10),
    0 0 18px rgba(225,20,26,.20) !important;
}

.timeline-item.is-active .timeline-dot{
  box-shadow:
    0 0 0 8px rgba(255,90,90,.11),
    0 0 20px rgba(255,90,90,.35),
    0 0 40px rgba(225,20,26,.22) !important;
}

/* Cards ativos da timeline */
.timeline-item.is-active .timeline-card{
  border-color: rgba(225,20,26,.22) !important;
  background:
    radial-gradient(circle at top right, rgba(225,20,26,.10), transparent 50%),
    linear-gradient(180deg, rgba(255,255,255,.05), rgba(255,255,255,.03)) !important;
  box-shadow:
    0 14px 36px rgba(0,0,0,.22),
    0 0 0 1px rgba(225,20,26,.05) inset,
    0 0 24px rgba(225,20,26,.08) !important;
}

.timeline-card:hover{
  border-color: rgba(225,20,26,.20) !important;
}

/* Ano da timeline em vermelho/dourado */
.timeline-year{
  background: linear-gradient(180deg, #ffd1a8 0%, #ff7a45 45%, #e1141a 100%) !important;
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent !important;
}

/* MVV + Valores + CTA */
.mvv-card:hover,
.value-card:hover{
  border-color: rgba(225,20,26,.20) !important;
  box-shadow:
    0 12px 28px rgba(0,0,0,.18),
    0 0 0 1px rgba(225,20,26,.05) inset !important;
}

.value-card::before{
  background: radial-gradient(circle at top right, rgba(225,20,26,.08), transparent 40%) !important;
}

.mvv-icon,
.value-icon{
  background: rgba(225,20,26,.10) !important;
  border-color: rgba(225,20,26,.22) !important;
}

.institutional-cta{
  background:
    radial-gradient(circle at top right, rgba(225,20,26,.10), transparent 45%),
    linear-gradient(180deg, rgba(255,255,255,.04), rgba(255,255,255,.02)) !important;
  border-color: rgba(255,255,255,.07);
}

/* Mobile connector */
@media (max-width: 860px){
  .timeline-item::before{
    background: linear-gradient(90deg, rgba(255,90,90,.5), rgba(255,90,90,0)) !important;
  }

  .timeline::before{
    background: radial-gradient(circle at 18px center, rgba(225,20,26,.08), transparent 70%) !important;
  }
}

/* =========================================================
   INSTITUCIONAL - EMPRESAS DO GRUPO (abas)
========================================================= */

.group-companies-section{
  margin-bottom: 54px;
}

.group-tabs{
  background:
    radial-gradient(circle at top right, rgba(225,20,26,.08), transparent 45%),
    linear-gradient(180deg, rgba(255,255,255,.035), rgba(255,255,255,.02));
  border: 1px solid rgba(255,255,255,.07);
  border-radius: 18px;
  padding: 16px;
  box-shadow:
    0 18px 36px rgba(0,0,0,.18),
    inset 0 1px 0 rgba(255,255,255,.03);
  backdrop-filter: blur(10px);
}

.group-tabs-nav{
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 8px;
  margin-bottom: 12px;
  padding: 6px;
  background: rgba(255,255,255,.02);
  border: 1px solid rgba(255,255,255,.05);
  border-radius: 14px;
}

.group-tab-btn{
  appearance: none;
  border: 1px solid transparent;
  background: transparent;
  color: #d6dceb;
  border-radius: 12px;
  padding: 12px 10px;
  font: inherit;
  font-weight: 700;
  line-height: 1.2;
  cursor: pointer;
  transition: .22s ease;
}

.group-tab-btn:hover{
  background: rgba(255,255,255,.03);
  color: #fff;
}

.group-tab-btn.is-active{
  color: #fff;
  background:
    linear-gradient(180deg, rgba(255,90,90,.14), rgba(225,20,26,.12));
  border-color: rgba(225,20,26,.25);
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.04),
    0 0 0 1px rgba(225,20,26,.04);
}

.group-tabs-panels{
  position: relative;
}

.group-tab-panel{
  border: 1px solid rgba(255,255,255,.06);
  border-radius: 14px;
  padding: 16px;
  background:
    linear-gradient(180deg, rgba(255,255,255,.03), rgba(255,255,255,.015));
}

.group-tab-panel[hidden]{
  display: none !important;
}

.group-panel-content{
  display: grid;
  grid-template-columns: 1.1fr .9fr;
  gap: 14px;
  align-items: stretch;
}

.group-panel-copy{
  display: flex;
  flex-direction: column;
  justify-content: center;
}

.group-panel-tag{
  display: inline-flex;
  align-self: flex-start;
  padding: 6px 10px;
  border-radius: 999px;
  border: 1px solid rgba(225,20,26,.22);
  background: rgba(225,20,26,.08);
  color: #ff8b8b;
  font-size: .76rem;
  font-weight: 800;
  letter-spacing: .06em;
  margin-bottom: 10px;
}

.group-panel-copy h3{
  margin: 0 0 10px;
  color: #fff;
  font-size: clamp(1.15rem, 2vw, 1.55rem);
  line-height: 1.12;
  letter-spacing: -.02em;
}

.group-panel-copy p{
  margin: 0;
  color: #c8d1e3;
  line-height: 1.55;
  font-size: .96rem;
  max-width: 60ch;
}

.group-panel-actions{
  margin-top: 14px;
}

.group-panel-visual{
  position: relative;
  border-radius: 14px;
  padding: 14px;
  min-height: 180px;
  background:
    radial-gradient(circle at 18% 20%, rgba(225,20,26,.12), transparent 45%),
    radial-gradient(circle at 85% 80%, rgba(255,90,90,.08), transparent 40%),
    linear-gradient(180deg, rgba(255,255,255,.03), rgba(255,255,255,.015));
  border: 1px solid rgba(255,255,255,.06);
  overflow: hidden;
}

.group-visual-card{
  position: relative;
  z-index: 2;
  background: rgba(8,8,10,.62);
  border: 1px solid rgba(255,255,255,.08);
  border-radius: 12px;
  padding: 14px;
  box-shadow:
    0 10px 22px rgba(0,0,0,.18),
    inset 0 1px 0 rgba(255,255,255,.03);
}

.group-visual-badge{
  display: inline-block;
  font-size: .72rem;
  font-weight: 800;
  color: #ff8f8f;
  letter-spacing: .08em;
  margin-bottom: 8px;
}

.group-visual-card strong{
  display: block;
  color: #fff;
  font-size: 1rem;
  margin-bottom: 6px;
}

.group-visual-card span{
  color: #bcc7db;
  font-size: .9rem;
  line-height: 1.4;
}

.group-visual-lines{
  position: absolute;
  inset: 0;
  z-index: 1;
  pointer-events: none;
}

.group-visual-lines span{
  position: absolute;
  display: block;
  height: 1px;
  width: 130%;
  left: -10%;
  background: linear-gradient(90deg, transparent, rgba(255,90,90,.32), transparent);
  animation: sgLineMove 5.8s linear infinite;
  opacity: .5;
}

.group-visual-lines span:nth-child(1){ top: 28%; animation-delay: 0s; }
.group-visual-lines span:nth-child(2){ top: 52%; animation-delay: 1.2s; }
.group-visual-lines span:nth-child(3){ top: 76%; animation-delay: 2.4s; }

@keyframes sgLineMove{
  0%{ transform: translateX(-12%) scaleX(.92); opacity: .15; }
  50%{ transform: translateX(6%) scaleX(1); opacity: .55; }
  100%{ transform: translateX(18%) scaleX(.95); opacity: .12; }
}

/* =========================================================
   INSTITUCIONAL - ÁREA DE ATUAÇÃO (mapa)
========================================================= */

.coverage-section{
  margin-bottom: 54px;
}

.coverage-grid{
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 16px;
  align-items: stretch;
}

.coverage-copy{
  background:
    linear-gradient(180deg, rgba(255,255,255,.04), rgba(255,255,255,.02));
  border: 1px solid rgba(255,255,255,.07);
  border-radius: 16px;
  padding: 18px;
  box-shadow: inset 0 1px 0 rgba(255,255,255,.03);
  backdrop-filter: blur(8px);
}

.coverage-copy p{
  margin: 0 0 14px;
  color: #c8d1e3;
  line-height: 1.58;
}

.coverage-list{
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  gap: 8px;
}

.coverage-list li{
  position: relative;
  padding-left: 18px;
  color: #eef2fb;
  line-height: 1.4;
}

.coverage-list li::before{
  content: "";
  position: absolute;
  left: 0;
  top: .53em;
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: #ff4d4d;
  box-shadow: 0 0 12px rgba(225,20,26,.28);
}

.coverage-badges{
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-top: 14px;
}

.coverage-chip{
  display: inline-flex;
  align-items: center;
  gap: 6px;
  border-radius: 999px;
  padding: 7px 10px;
  font-size: .82rem;
  font-weight: 700;
  color: #ffdede;
  background: rgba(225,20,26,.10);
  border: 1px solid rgba(225,20,26,.18);
}

.coverage-map-card{
  background:
    radial-gradient(circle at top right, rgba(225,20,26,.10), transparent 45%),
    linear-gradient(180deg, rgba(255,255,255,.04), rgba(255,255,255,.02));
  border: 1px solid rgba(255,255,255,.07);
  border-radius: 16px;
  padding: 14px;
  box-shadow:
    0 18px 36px rgba(0,0,0,.18),
    inset 0 1px 0 rgba(255,255,255,.03);
  backdrop-filter: blur(8px);
}

.coverage-map-head{
  display: flex;
  flex-direction: column;
  gap: 2px;
  margin-bottom: 10px;
}

.coverage-map-head strong{
  color: #fff;
  font-size: 1rem;
}

.coverage-map-head span{
  color: #b7c3db;
  font-size: .84rem;
}

.coverage-map-wrap{
  position: relative;
  border-radius: 12px;
  border: 1px solid rgba(255,255,255,.06);
  background:
    radial-gradient(circle at 12% 12%, rgba(255,255,255,.03), transparent 38%),
    linear-gradient(180deg, rgba(255,255,255,.02), rgba(255,255,255,.01));
  min-height: 360px;
  overflow: hidden;
  display: grid;
  place-items: center;
}

.coverage-map-wrap::before{
  content: "";
  position: absolute;
  inset: 0;
  background-image:
    linear-gradient(rgba(255,255,255,.03) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255,255,255,.03) 1px, transparent 1px);
  background-size: 26px 26px;
  opacity: .35;
  pointer-events: none;
}

.brazil-map{
  width: min(92%, 460px);
  height: auto;
  position: relative;
  z-index: 1;
}

.brazil-shape{
  fill: rgba(255,255,255,.02);
  stroke: url(#sgRedMap);
  stroke-width: 3;
  filter: drop-shadow(0 0 10px rgba(225,20,26,.14));
}

.brazil-inner{
  fill: rgba(225,20,26,.06);
  stroke: rgba(255,90,90,.16);
  stroke-width: 1.5;
}

.map-grid-lines path{
  fill: none;
  stroke: rgba(255,120,120,.18);
  stroke-width: 1.3;
  stroke-linecap: round;
  stroke-dasharray: 5 6;
}

.map-pin-group text{
  fill: #f5f7ff;
  font-size: 13px;
  font-weight: 700;
  paint-order: stroke;
  stroke: rgba(0,0,0,.45);
  stroke-width: 3px;
  stroke-linejoin: round;
}

.pin-dot{
  fill: #fff;
  stroke: #ff4d4d;
  stroke-width: 3;
  filter: drop-shadow(0 0 8px rgba(225,20,26,.26));
}

.pin-pulse{
  fill: rgba(255,90,90,.12);
  stroke: rgba(255,90,90,.30);
  stroke-width: 1.2;
  animation: sgPinPulse 2.2s ease-out infinite;
  transform-origin: center;
}

.pin-norte .pin-pulse{ animation-delay: 0s; }
.pin-nordeste .pin-pulse{ animation-delay: .25s; }
.pin-centro .pin-pulse{ animation-delay: .5s; }
.pin-sudeste .pin-pulse{ animation-delay: .75s; }
.pin-sul .pin-pulse{ animation-delay: 1s; }

@keyframes sgPinPulse{
  0%{ opacity: .65; transform: scale(.85); }
  70%{ opacity: .08; transform: scale(2.2); }
  100%{ opacity: 0; transform: scale(2.5); }
}

.coverage-map-badge{
  position: absolute;
  left: 12px;
  right: 12px;
  bottom: 12px;
  z-index: 2;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  padding: 10px 12px;
  border-radius: 10px;
  color: #fff;
  font-weight: 700;
  font-size: .88rem;
  background: rgba(8,8,10,.72);
  border: 1px solid rgba(255,255,255,.08);
  backdrop-filter: blur(10px);
}

.badge-dot{
  width: 9px;
  height: 9px;
  border-radius: 50%;
  background: #ff4d4d;
  box-shadow: 0 0 12px rgba(225,20,26,.35);
}

/* =========================================================
   RESPONSIVO (abas + mapa)
========================================================= */

@media (max-width: 1100px){
  .group-panel-content{
    grid-template-columns: 1fr;
  }

  .group-panel-visual{
    min-height: 150px;
  }

  .coverage-grid{
    grid-template-columns: 1fr;
  }
}

@media (max-width: 860px){
  .group-tabs-nav{
    grid-template-columns: 1fr;
  }

  .group-tab-btn{
    text-align: left;
    justify-content: flex-start;
  }

  .coverage-map-wrap{
    min-height: 320px;
  }

  .brazil-map{
    width: min(95%, 420px);
  }

  .map-pin-group text{
    font-size: 12px;
  }

  .coverage-map-badge{
    font-size: .82rem;
    padding: 9px 10px;
  }
}


/* =========================================================
   FIX - ABAS / LOGOS / TIMELINE YEAR (corrige "tudo branco")
========================================================= */

/* --------- Aba (visual geral) --------- */
.group-tab-btn{
  background: transparent !important;
  color: #d6dceb !important;
}

.group-tab-btn:hover{
  background: rgba(255,255,255,.03) !important;
  color: #fff !important;
}

.group-tab-btn.is-active{
  color: #fff !important;
  background: linear-gradient(180deg, rgba(255,90,90,.14), rgba(225,20,26,.10)) !important;
  border-color: rgba(225,20,26,.24) !important;
}

/* --------- Logo da aba --------- */
.group-tab-btn-inner{
  display: flex;
  align-items: center;
  gap: 10px;
  text-align: left;
}

.group-tab-logo-wrap{
  width: 42px;
  height: 42px;
  border-radius: 10px;
  display: grid;
  place-items: center;
  flex-shrink: 0;
  background: rgba(0,0,0,.28) !important; /* fundo escuro */
  border: 1px solid rgba(255,255,255,.08) !important;
  overflow: hidden;
}

.group-tab-btn.is-active .group-tab-logo-wrap{
  background: rgba(225,20,26,.08) !important;
  border-color: rgba(225,20,26,.22) !important;
}

.group-tab-logo{
  max-width: 28px;
  max-height: 28px;
  width: auto;
  height: auto;
  object-fit: contain;
  display: block;
  background: transparent !important;
  filter: none !important;         /* <- importante: remove inversão */
  mix-blend-mode: normal !important;
}

/* Se suas logos forem PRETAS e sumirem no fundo escuro,
   use esta classe no <img class="group-tab-logo logo-dark"> */
.group-tab-logo.logo-dark{
  filter: brightness(0) invert(1) !important;
}

.group-tab-text{
  color: inherit !important;
  font-weight: 700;
  line-height: 1.15;
}

/* --------- Mini cards de serviços (escuros) --------- */
.group-service-mini-grid{
  margin-top: 14px;
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 8px;
}

.group-service-mini-card{
  display: flex;
  align-items: center;
  gap: 8px;
  min-height: 42px;
  padding: 9px 10px;
  border-radius: 10px;
  background: linear-gradient(180deg, rgba(10,10,12,.62), rgba(10,10,12,.45)) !important;
  border: 1px solid rgba(255,255,255,.07) !important;
  box-shadow: inset 0 1px 0 rgba(255,255,255,.02);
}

.group-service-mini-card:hover{
  border-color: rgba(225,20,26,.18) !important;
  background:
    radial-gradient(circle at top right, rgba(225,20,26,.06), transparent 45%),
    linear-gradient(180deg, rgba(10,10,12,.68), rgba(10,10,12,.52)) !important;
}

.group-service-mini-icon{
  width: 18px;
  height: 18px;
  border-radius: 50%;
  display: grid;
  place-items: center;
  flex-shrink: 0;
  color: #ff8d8d;
  font-weight: 800;
  line-height: 1;
  background: rgba(225,20,26,.08);
  border: 1px solid rgba(225,20,26,.16);
}

.group-service-mini-text{
  color: #eef2fb !important;
  font-size: .88rem;
  line-height: 1.25;
  font-weight: 600;
}

/* --------- Painel da aba (escuro) --------- */
.group-tab-panel{
  background: linear-gradient(180deg, rgba(255,255,255,.02), rgba(255,255,255,.012)) !important;
  border: 1px solid rgba(255,255,255,.07) !important;
}

.group-panel-visual{
  background:
    radial-gradient(circle at 18% 20%, rgba(225,20,26,.10), transparent 45%),
    radial-gradient(circle at 85% 80%, rgba(255,90,90,.06), transparent 40%),
    linear-gradient(180deg, rgba(255,255,255,.02), rgba(255,255,255,.01)) !important;
  border: 1px solid rgba(255,255,255,.07) !important;
}

.group-visual-card{
  background: rgba(8,8,10,.72) !important;
  border: 1px solid rgba(255,255,255,.08) !important;
}

/* --------- Timeline year (badge preto translúcido) --------- */
.timeline-year{
  display: inline-flex !important;
  align-items: center;
  justify-content: center;
  padding: 7px 10px !important;
  border-radius: 10px !important;
  margin-bottom: 10px !important;

  background: rgba(0,0,0,.42) !important;  /* preto translúcido */
  border: 1px solid rgba(255,255,255,.08) !important;
  color: #fff !important;

  font-size: .98rem !important;
  font-weight: 800 !important;
  line-height: 1 !important;
  letter-spacing: .03em !important;

  /* neutraliza qualquer gradiente antigo */
  -webkit-background-clip: initial !important;
  background-clip: initial !important;
  -webkit-text-fill-color: #fff !important;
  text-shadow: none !important;
}

.timeline-item.is-active .timeline-year{
  border-color: rgba(225,20,26,.20) !important;
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.03),
    0 8px 18px rgba(0,0,0,.18),
    0 0 0 1px rgba(225,20,26,.04);
}

/* --------- Responsivo --------- */
@media (max-width: 1100px){
  .group-service-mini-grid{
    grid-template-columns: 1fr;
  }
}

@media (max-width: 860px){
  .group-tab-logo-wrap{
    width: 38px;
    height: 38px;
  }

  .group-tab-logo{
    max-width: 24px;
    max-height: 24px;
  }

  .timeline-year{
    font-size: .9rem !important;
    padding: 6px 9px !important;
  }
}

/* =========================================================
   FIX HEADER - logo menor + remove faixa visual
========================================================= */

/* zera qualquer espaço inesperado */
html, body{
  margin: 0;
  padding: 0;
  background: #050405;
}

body{
  overflow-x: hidden;
}

/* Header */
.site-header,
.header,
header{
  margin-top: 0 !important;
}

/* Ajuste da logo (desktop) */
.header-brand img,
.site-logo img,
.logo img,
.navbar-brand img{
  display: block;
  width: auto !important;
  height: auto !important;
  max-height: 64px !important; /* ajuste principal */
  object-fit: contain;
}

/* Se o container da logo estiver forçando altura */
.header-brand,
.site-logo,
.logo,
.navbar-brand{
  display: flex;
  align-items: center;
  min-height: 64px;
}

/* Mobile */
@media (max-width: 860px){
  .header-brand img,
  .site-logo img,
  .logo img,
  .navbar-brand img{
    max-height: 42px !important;
  }

  .header-brand,
  .site-logo,
  .logo,
  .navbar-brand{
    min-height: 48px;
  }
}

/* =========================================================
   FALE CONOSCO PAGE (tema SG vermelho premium)
========================================================= */

.contact-page{
  position: relative;
  overflow: hidden;
  color: #fff;
  padding: 64px 0 72px;
  background:
    radial-gradient(circle at 12% 10%, rgba(225,20,26,.14), transparent 46%),
    radial-gradient(circle at 88% 18%, rgba(255,80,80,.09), transparent 40%),
    linear-gradient(180deg, #070506 0%, #050405 100%);
}

.contact-page::before{
  content: "";
  position: absolute;
  inset: 0;
  pointer-events: none;
  opacity: .16;
  background-image:
    linear-gradient(rgba(255,255,255,.035) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255,255,255,.035) 1px, transparent 1px);
  background-size: 34px 34px;
  mask-image: radial-gradient(circle at center, #000 28%, transparent 100%);
  -webkit-mask-image: radial-gradient(circle at center, #000 28%, transparent 100%);
}

.contact-page-bg,
.contact-page-overlay{
  position: absolute;
  inset: 0;
  pointer-events: none;
}

.contact-page-bg{
  background:
    radial-gradient(circle at 20% 0%, rgba(225,20,26,.08), transparent 45%),
    radial-gradient(circle at 80% 38%, rgba(255,90,90,.06), transparent 45%);
}

.contact-page-content{
  position: relative;
  z-index: 2;
}

/* HERO */
.contact-hero{
  max-width: 920px;
  margin: 0 auto 28px;
  text-align: center;
  position: relative;
}

.contact-hero::after{
  content: "";
  position: absolute;
  left: 50%;
  top: -10px;
  transform: translateX(-50%);
  width: min(560px, 78vw);
  height: 120px;
  pointer-events: none;
  filter: blur(22px);
  background: radial-gradient(circle, rgba(225,20,26,.16), transparent 70%);
}

.contact-hero h1{
  margin: 0 0 10px;
  font-size: clamp(2rem, 4vw, 3.2rem);
  line-height: 1.04;
  letter-spacing: -.03em;
}

.contact-hero h1 span{
  color: #ff4d4d;
}

.contact-hero p{
  margin: 0 auto;
  max-width: 760px;
  color: #d0d6e4;
  line-height: 1.6;
  font-size: 1rem;
}

.contact-hero-actions{
  margin-top: 16px;
  display: flex;
  justify-content: center;
  flex-wrap: wrap;
  gap: 10px;
}

/* GRID PRINCIPAL */
.contact-grid{
  display: grid;
  grid-template-columns: .95fr 1.05fr;
  gap: 16px;
  align-items: start;
  margin-bottom: 18px;
}

.contact-left,
.contact-right{
  display: grid;
  gap: 14px;
}

.contact-card,
.contact-form-card{
  background:
    linear-gradient(180deg, rgba(255,255,255,.04), rgba(255,255,255,.02));
  border: 1px solid rgba(255,255,255,.07);
  border-radius: 16px;
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.03),
    0 14px 30px rgba(0,0,0,.16);
  backdrop-filter: blur(8px);
}

.contact-card{
  padding: 16px;
}

.contact-card-highlight{
  background:
    radial-gradient(circle at top right, rgba(225,20,26,.08), transparent 45%),
    linear-gradient(180deg, rgba(255,255,255,.045), rgba(255,255,255,.02));
}

.contact-card h3{
  margin: 0 0 12px;
  font-size: 1.04rem;
}

/* canais */
.contact-card-head{
  display: grid;
  grid-template-columns: auto 1fr;
  gap: 10px;
  align-items: start;
  margin-bottom: 12px;
}

.contact-card-icon{
  width: 40px;
  height: 40px;
  display: grid;
  place-items: center;
  border-radius: 12px;
  background: rgba(225,20,26,.10);
  border: 1px solid rgba(225,20,26,.18);
}

.contact-card-head h2{
  margin: 0;
  font-size: 1.08rem;
}

.contact-card-head p{
  margin: 2px 0 0;
  color: #bcc7db;
  font-size: .9rem;
}

.contact-channels{
  display: grid;
  gap: 10px;
}

.contact-channel{
  display: grid;
  grid-template-columns: 42px 1fr;
  gap: 10px;
  align-items: center;
  text-decoration: none;
  color: inherit;
  padding: 10px;
  border-radius: 12px;
  border: 1px solid rgba(255,255,255,.06);
  background: linear-gradient(180deg, rgba(10,10,12,.52), rgba(10,10,12,.36));
  transition: .2s ease;
}

.contact-channel:hover{
  transform: translateY(-1px);
  border-color: rgba(225,20,26,.18);
  background:
    radial-gradient(circle at top right, rgba(225,20,26,.06), transparent 45%),
    linear-gradient(180deg, rgba(10,10,12,.58), rgba(10,10,12,.4));
}

.contact-channel-emoji{
  width: 42px;
  height: 42px;
  display: grid;
  place-items: center;
  border-radius: 10px;
  background: rgba(255,255,255,.02);
  border: 1px solid rgba(255,255,255,.06);
  font-size: 18px;
}

.contact-channel strong{
  display: block;
  color: #fff;
  line-height: 1.2;
}

.contact-channel small{
  color: #bcc7db;
  font-size: .84rem;
}

/* mini cards */
.contact-mini-grid{
  display: grid;
  grid-template-columns: repeat(2, minmax(0,1fr));
  gap: 10px;
}

.contact-mini-card{
  display: grid;
  grid-template-columns: 32px 1fr;
  gap: 8px;
  align-items: center;
  padding: 10px;
  border-radius: 12px;
  border: 1px solid rgba(255,255,255,.06);
  background: linear-gradient(180deg, rgba(10,10,12,.50), rgba(10,10,12,.34));
}

.contact-mini-card > span{
  width: 32px;
  height: 32px;
  display: grid;
  place-items: center;
  border-radius: 10px;
  background: rgba(225,20,26,.08);
  border: 1px solid rgba(225,20,26,.16);
}

.contact-mini-card strong{
  display: block;
  font-size: .92rem;
  line-height: 1.2;
  color: #fff;
}

.contact-mini-card small{
  color: #bcc7db;
  font-size: .8rem;
}

/* lista */
.contact-list{
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  gap: 10px;
}

.contact-list li{
  display: flex;
  justify-content: space-between;
  gap: 12px;
  align-items: center;
  padding: 10px 12px;
  border-radius: 10px;
  border: 1px solid rgba(255,255,255,.06);
  background: linear-gradient(180deg, rgba(10,10,12,.46), rgba(10,10,12,.32));
}

.contact-list li span{
  color: #c7d1e3;
}

.contact-list li strong{
  color: #fff;
  text-align: right;
  font-size: .9rem;
}

/* FORM */
.contact-form-card{
  padding: 16px;
}

.contact-form-head{
  margin-bottom: 14px;
}

.contact-form-kicker{
  display: inline-flex;
  padding: 6px 10px;
  border-radius: 999px;
  background: rgba(225,20,26,.08);
  border: 1px solid rgba(225,20,26,.18);
  color: #ff8f8f;
  font-size: .75rem;
  font-weight: 800;
  letter-spacing: .06em;
  margin-bottom: 8px;
}

.contact-form-head h2{
  margin: 0 0 6px;
  font-size: 1.35rem;
}

.contact-form-head p{
  margin: 0;
  color: #bcc7db;
  line-height: 1.5;
}

.contact-form{
  display: grid;
  gap: 14px;
}

.hp-field{
  position: absolute !important;
  left: -9999px !important;
  opacity: 0 !important;
  pointer-events: none !important;
}

.contact-form-grid{
  display: grid;
  grid-template-columns: repeat(2, minmax(0,1fr));
  gap: 12px;
}

.form-group{
  display: grid;
  gap: 6px;
}

.form-group-full{
  grid-column: 1 / -1;
}

.form-group label{
  color: #eaeef8;
  font-size: .88rem;
  font-weight: 600;
}

.form-group input,
.form-group select,
.form-group textarea{
  width: 100%;
  border-radius: 12px;
  border: 1px solid rgba(255,255,255,.09);
  background: rgba(10,10,12,.58);
  color: #fff;
  padding: 12px 14px;
  font: inherit;
  outline: none;
  transition: .2s ease;
  box-sizing: border-box;
}

.form-group select{
  appearance: none;
}

.form-group textarea{
  resize: vertical;
  min-height: 120px;
}

.form-group input::placeholder,
.form-group textarea::placeholder{
  color: #9aa5bb;
}

.form-group input:focus,
.form-group select:focus,
.form-group textarea:focus{
  border-color: rgba(225,20,26,.28);
  box-shadow: 0 0 0 3px rgba(225,20,26,.08);
}

.textarea-meta{
  margin-top: 6px;
  display: flex;
  justify-content: space-between;
  gap: 10px;
  color: #9eabc3;
  font-size: .78rem;
}

.check-wrap{
  display: grid;
  grid-template-columns: 18px 1fr;
  gap: 8px;
  align-items: start;
  cursor: pointer;
  color: #c8d1e3;
  font-size: .86rem;
  line-height: 1.4;
}

.check-wrap input{
  margin-top: 2px;
  accent-color: #e1141a;
}

.contact-form-actions{
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
}

.form-feedback{
  min-height: 20px;
  font-size: .86rem;
  color: #c8d1e3;
}

/* MAPA */
.contact-map-section{
  display: grid;
  grid-template-columns: .95fr 1.05fr;
  gap: 16px;
  align-items: stretch;
}

.contact-map-copy,
.contact-map-card{
  border-radius: 16px;
  border: 1px solid rgba(255,255,255,.07);
  background:
    linear-gradient(180deg, rgba(255,255,255,.04), rgba(255,255,255,.02));
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.03),
    0 14px 30px rgba(0,0,0,.16);
}

.contact-map-copy{
  padding: 18px;
}

.contact-map-copy h2{
  margin: 0 0 10px;
  font-size: clamp(1.35rem, 2.3vw, 2rem);
  line-height: 1.1;
  letter-spacing: -.02em;
}

.contact-map-copy h2 span{
  color: #ff4d4d;
}

.contact-map-copy p{
  margin: 0 0 12px;
  color: #c7d1e3;
  line-height: 1.58;
}

.contact-map-tags{
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}

.contact-map-tags span{
  display: inline-flex;
  align-items: center;
  padding: 8px 10px;
  border-radius: 999px;
  font-size: .82rem;
  font-weight: 700;
  color: #ffdede;
  background: rgba(225,20,26,.10);
  border: 1px solid rgba(225,20,26,.18);
}

.contact-map-card{
  padding: 12px;
}

.contact-map-top{
  display: flex;
  justify-content: space-between;
  gap: 10px;
  align-items: center;
  margin-bottom: 10px;
  color: #fff;
}

.contact-map-top small{
  color: #b7c3db;
}

.contact-map-placeholder{
  position: relative;
  min-height: 320px;
  border-radius: 12px;
  border: 1px solid rgba(255,255,255,.06);
  background:
    radial-gradient(circle at 20% 15%, rgba(225,20,26,.06), transparent 45%),
    linear-gradient(180deg, rgba(10,10,12,.52), rgba(10,10,12,.35));
  overflow: hidden;
  display: grid;
  place-items: center;
}

.contact-map-placeholder::before{
  content: "";
  position: absolute;
  inset: 0;
  opacity: .32;
  background-image:
    linear-gradient(rgba(255,255,255,.03) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255,255,255,.03) 1px, transparent 1px);
  background-size: 24px 24px;
}

.map-glow{
  position: absolute;
  width: 60%;
  height: 60%;
  border-radius: 50%;
  background: radial-gradient(circle, rgba(225,20,26,.16), transparent 70%);
  filter: blur(24px);
}

.map-title{
  position: absolute;
  top: 16px;
  left: 16px;
  right: 16px;
  z-index: 2;
  padding: 10px 12px;
  border-radius: 10px;
  background: rgba(8,8,10,.68);
  border: 1px solid rgba(255,255,255,.08);
  color: #fff;
  font-weight: 700;
  text-align: center;
  backdrop-filter: blur(8px);
}

.map-dots{
  position: relative;
  width: 70%;
  height: 70%;
  z-index: 1;
}

.map-dots .dot{
  position: absolute;
  width: 12px;
  height: 12px;
  border-radius: 50%;
  background: #ff4d4d;
  box-shadow: 0 0 0 4px rgba(225,20,26,.10), 0 0 14px rgba(225,20,26,.28);
}

.map-dots .dot::after{
  content: "";
  position: absolute;
  inset: -6px;
  border-radius: 50%;
  border: 1px solid rgba(255,90,90,.25);
  animation: contactPulse 2.4s ease-out infinite;
}

.map-dots .n{ top: 16%; left: 36%; }
.map-dots .ne{ top: 24%; right: 18%; }
.map-dots .co{ top: 44%; left: 45%; }
.map-dots .se{ top: 62%; right: 28%; }
.map-dots .s{ bottom: 14%; left: 42%; }

@keyframes contactPulse{
  0%{ transform: scale(.7); opacity: .8; }
  70%{ transform: scale(1.9); opacity: .08; }
  100%{ transform: scale(2.1); opacity: 0; }
}

.map-lines{
  position: absolute;
  inset: 0;
  z-index: 1;
  pointer-events: none;
}

.map-lines span{
  position: absolute;
  left: -10%;
  width: 120%;
  height: 1px;
  background: linear-gradient(90deg, transparent, rgba(255,90,90,.25), transparent);
  opacity: .45;
  animation: contactLineMove 6s linear infinite;
}

.map-lines span:nth-child(1){ top: 32%; animation-delay: 0s; }
.map-lines span:nth-child(2){ top: 54%; animation-delay: 1.5s; }
.map-lines span:nth-child(3){ top: 74%; animation-delay: 3s; }

@keyframes contactLineMove{
  0%{ transform: translateX(-8%); opacity: .12; }
  50%{ transform: translateX(6%); opacity: .48; }
  100%{ transform: translateX(14%); opacity: .10; }
}

/* Responsivo */
@media (max-width: 1100px){
  .contact-grid,
  .contact-map-section{
    grid-template-columns: 1fr;
  }
}

@media (max-width: 860px){
  .contact-page{
    padding: 52px 0 60px;
  }

  .contact-form-grid{
    grid-template-columns: 1fr;
  }

  .contact-mini-grid{
    grid-template-columns: 1fr;
  }

  .contact-list li{
    flex-direction: column;
    align-items: flex-start;
  }

  .contact-list li strong{
    text-align: left;
  }

  .contact-form-actions .btn{
    width: 100%;
    justify-content: center;
  }

  .contact-map-top{
    flex-direction: column;
    align-items: flex-start;
  }

  .contact-map-placeholder{
    min-height: 280px;
  }
}

/* FIX - mapa da página Fale Conosco */
.contact-map-section{
  opacity: 1 !important;
  transform: none !important;
}

.contact-map-card{
  display: block !important;
  visibility: visible !important;
}

.contact-map-placeholder{
  min-height: 320px !important;
  display: grid !important;
  place-items: center !important;
  position: relative !important;
  visibility: visible !important;
  opacity: 1 !important;
  border: 1px solid rgba(255,255,255,.08) !important;
  background:
    radial-gradient(circle at 20% 15%, rgba(225,20,26,.08), transparent 45%),
    linear-gradient(180deg, rgba(10,10,12,.58), rgba(10,10,12,.38)) !important;
}

.map-title{
  z-index: 3 !important;
}

.map-dots{
  position: relative !important;
  width: 70% !important;
  height: 70% !important;
  z-index: 2 !important;
}

.map-dots .dot{
  display: block !important;
  position: absolute !important;
}

.map-lines{
  z-index: 1 !important;
}

/* =========================================================
   FALE CONOSCO - MAPA BRASIL (SVG, classes exclusivas)
========================================================= */

.contact-map-section{
  opacity: 1 !important;
  transform: none !important;
}

.contact-brazil-map-wrap{
  position: relative;
  min-height: 340px;
  border-radius: 12px;
  border: 1px solid rgba(255,255,255,.08);
  background:
    radial-gradient(circle at 12% 12%, rgba(255,255,255,.03), transparent 38%),
    radial-gradient(circle at 20% 15%, rgba(225,20,26,.08), transparent 45%),
    linear-gradient(180deg, rgba(10,10,12,.58), rgba(10,10,12,.38));
  overflow: hidden;
  display: grid;
  place-items: center;
}

.contact-brazil-map-wrap::before{
  content: "";
  position: absolute;
  inset: 0;
  opacity: .32;
  background-image:
    linear-gradient(rgba(255,255,255,.03) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255,255,255,.03) 1px, transparent 1px);
  background-size: 24px 24px;
  z-index: 0;
}

.contact-brazil-map-wrap::after{
  content: "";
  position: absolute;
  width: 60%;
  height: 60%;
  border-radius: 50%;
  background: radial-gradient(circle, rgba(225,20,26,.16), transparent 70%);
  filter: blur(24px);
  z-index: 0;
}

.contact-brazil-map{
  width: min(92%, 460px);
  height: auto;
  position: relative;
  z-index: 1;
  display: block;
}

.ctm-shape{
  fill: rgba(255,255,255,.02);
  stroke: url(#contactSgRedMap);
  stroke-width: 3;
  filter: drop-shadow(0 0 10px rgba(225,20,26,.14));
}

.ctm-inner{
  fill: rgba(225,20,26,.06);
  stroke: rgba(255,90,90,.16);
  stroke-width: 1.5;
}

.ctm-grid-lines path{
  fill: none;
  stroke: rgba(255,120,120,.18);
  stroke-width: 1.3;
  stroke-linecap: round;
  stroke-dasharray: 5 6;
}

.ctm-pin-group text{
  fill: #f5f7ff;
  font-size: 13px;
  font-weight: 700;
  paint-order: stroke;
  stroke: rgba(0,0,0,.45);
  stroke-width: 3px;
  stroke-linejoin: round;
}

.ctm-pin-dot{
  fill: #fff;
  stroke: #ff4d4d;
  stroke-width: 3;
  filter: drop-shadow(0 0 8px rgba(225,20,26,.26));
}

.ctm-pin-pulse{
  fill: rgba(255,90,90,.12);
  stroke: rgba(255,90,90,.30);
  stroke-width: 1.2;
  animation: ctmPinPulse 2.2s ease-out infinite;
  transform-origin: center;
}

.ctm-pin-norte .ctm-pin-pulse{ animation-delay: 0s; }
.ctm-pin-nordeste .ctm-pin-pulse{ animation-delay: .25s; }
.ctm-pin-centro .ctm-pin-pulse{ animation-delay: .5s; }
.ctm-pin-sudeste .ctm-pin-pulse{ animation-delay: .75s; }
.ctm-pin-sul .ctm-pin-pulse{ animation-delay: 1s; }

@keyframes ctmPinPulse{
  0%{ opacity: .65; transform: scale(.85); }
  70%{ opacity: .08; transform: scale(2.2); }
  100%{ opacity: 0; transform: scale(2.5); }
}

.contact-brazil-map-badge{
  position: absolute;
  left: 12px;
  right: 12px;
  bottom: 12px;
  z-index: 2;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  padding: 10px 12px;
  border-radius: 10px;
  color: #fff;
  font-weight: 700;
  font-size: .88rem;
  background: rgba(8,8,10,.72);
  border: 1px solid rgba(255,255,255,.08);
  backdrop-filter: blur(10px);
}

.contact-brazil-badge-dot{
  width: 9px;
  height: 9px;
  border-radius: 50%;
  background: #ff4d4d;
  box-shadow: 0 0 12px rgba(225,20,26,.35);
}

@media (max-width: 860px){
  .contact-brazil-map-wrap{
    min-height: 300px;
  }

  .contact-brazil-map{
    width: min(95%, 420px);
  }

  .ctm-pin-group text{
    font-size: 12px;
  }

  .contact-brazil-map-badge{
    font-size: .82rem;
    padding: 9px 10px;
  }
}







/* =========================================================
   ESG PAGE - Premium / Red Theme (Grupo SG)
========================================================= */

.esg-page{
  position: relative;
  overflow: hidden;
  padding: 44px 0 80px;
  color: #f4f6fb;
}

.esg-bg,
.esg-overlay{
  position: absolute;
  inset: 0;
  pointer-events: none;
}

.esg-bg{
  background:
    radial-gradient(circle at 12% 12%, rgba(225,20,26,.12), transparent 36%),
    radial-gradient(circle at 88% 10%, rgba(255,255,255,.05), transparent 34%),
    radial-gradient(circle at 50% 70%, rgba(225,20,26,.08), transparent 40%);
  z-index: 0;
}

.esg-overlay{
  background:
    linear-gradient(180deg, rgba(7,7,9,.55), rgba(7,7,9,.25) 20%, rgba(7,7,9,.45) 100%);
  z-index: 0;
}

.esg-content{
  position: relative;
  z-index: 1;
}

/* Hero */
.esg-hero{
  display: grid;
  grid-template-columns: 1.12fr .88fr;
  gap: 22px;
  align-items: stretch;
  margin-bottom: 22px;
}

.esg-hero-copy,
.esg-hero-panel{
  border-radius: 18px;
  border: 1px solid rgba(255,255,255,.08);
  background: linear-gradient(180deg, rgba(14,14,18,.84), rgba(10,10,12,.64));
  box-shadow: 0 14px 42px rgba(0,0,0,.22);
}

.esg-hero-copy{
  padding: 22px;
}

.esg-hero-copy h1{
  margin: 10px 0 12px;
  font-size: clamp(1.9rem, 3vw, 2.7rem);
  line-height: 1.1;
  letter-spacing: -.02em;
}

.esg-hero-copy h1 span{
  color: #ff5b5b;
  text-shadow: 0 0 20px rgba(225,20,26,.15);
}

.esg-hero-copy p{
  margin: 0;
  color: #c8d1e3;
  line-height: 1.65;
  max-width: 62ch;
}

.esg-hero-actions{
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin-top: 18px;
}

.esg-hero-panel{
  padding: 18px;
  display: flex;
  flex-direction: column;
  gap: 14px;
  position: relative;
  overflow: hidden;
}

.esg-hero-panel::before{
  content: "";
  position: absolute;
  inset: auto -10% 30% auto;
  width: 220px;
  height: 220px;
  border-radius: 50%;
  background: radial-gradient(circle, rgba(225,20,26,.18), transparent 70%);
  filter: blur(8px);
  pointer-events: none;
}

.esg-panel-head{
  display: flex;
  flex-direction: column;
  gap: 3px;
}

.esg-panel-head strong{
  font-size: 1rem;
}

.esg-panel-head span{
  color: #aeb8cc;
  font-size: .88rem;
}

.esg-score-grid{
  display: grid;
  gap: 10px;
}

.esg-score-card{
  display: grid;
  grid-template-columns: 48px 1fr;
  gap: 12px;
  align-items: center;
  padding: 12px;
  border-radius: 12px;
  border: 1px solid rgba(255,255,255,.06);
  background: rgba(255,255,255,.02);
}

.esg-score-letter{
  width: 48px;
  height: 48px;
  border-radius: 12px;
  display: grid;
  place-items: center;
  font-size: 1.15rem;
  font-weight: 800;
  color: #fff;
  background:
    linear-gradient(135deg, rgba(255,255,255,.08), rgba(255,255,255,.03)),
    linear-gradient(135deg, #ff5b5b, #d6151a);
  box-shadow: inset 0 1px 0 rgba(255,255,255,.15);
}

.esg-score-card strong{
  display: block;
  line-height: 1.2;
}

.esg-score-card small{
  color: #aeb8cc;
  line-height: 1.4;
}

.esg-panel-foot{
  margin-top: auto;
  display: inline-flex;
  align-items: center;
  gap: 8px;
  color: #c8d1e3;
  font-size: .9rem;
  padding: 10px 12px;
  border-radius: 10px;
  background: rgba(8,8,10,.5);
  border: 1px solid rgba(255,255,255,.06);
}

.dot-live{
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: #ff4d4d;
  box-shadow: 0 0 0 0 rgba(255,77,77,.55);
  animation: esgPulse 1.8s infinite;
}

@keyframes esgPulse{
  0%{ box-shadow: 0 0 0 0 rgba(255,77,77,.55); }
  70%{ box-shadow: 0 0 0 10px rgba(255,77,77,0); }
  100%{ box-shadow: 0 0 0 0 rgba(255,77,77,0); }
}

/* KPI Cards */
.esg-kpis{
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 14px;
  margin-bottom: 26px;
}

.esg-kpi-card{
  padding: 16px;
  border-radius: 14px;
  border: 1px solid rgba(255,255,255,.07);
  background: linear-gradient(180deg, rgba(16,16,19,.72), rgba(10,10,12,.5));
  box-shadow: 0 10px 30px rgba(0,0,0,.14);
}

.esg-kpi-card strong{
  display: block;
  font-size: 1.55rem;
  line-height: 1;
  letter-spacing: -.02em;
  color: #fff;
}

.esg-kpi-card strong span{
  font-size: .95rem;
  color: #c8d1e3;
  font-weight: 600;
}

.esg-kpi-card p{
  margin: 8px 0 0;
  color: #b9c3d6;
  font-size: .92rem;
  line-height: 1.5;
}

/* Section head */
.esg-section-head{
  margin-bottom: 14px;
}

.esg-section-head h2{
  margin: 8px 0 10px;
  font-size: clamp(1.35rem, 2.4vw, 2rem);
  line-height: 1.15;
  letter-spacing: -.02em;
}

.esg-section-head h2 span{
  color: #ff5b5b;
}

.esg-section-head p{
  margin: 0;
  color: #c2ccdf;
  max-width: 70ch;
  line-height: 1.6;
}

/* Pillars */
.esg-pillars-section{
  margin-bottom: 28px;
}

.esg-pillars-layout{
  display: grid;
  grid-template-columns: 320px 1fr;
  gap: 16px;
}

.esg-pillars-nav{
  display: grid;
  gap: 10px;
  align-content: start;
}

.esg-tab-btn{
  width: 100%;
  text-align: left;
  border: 1px solid rgba(255,255,255,.08);
  background: linear-gradient(180deg, rgba(13,13,17,.8), rgba(9,9,12,.66));
  border-radius: 14px;
  padding: 12px;
  color: #f3f6ff;
  cursor: pointer;
  transition: transform .22s ease, border-color .22s ease, background .22s ease, box-shadow .22s ease;
  display: grid;
  grid-template-columns: 42px 1fr;
  gap: 10px;
  align-items: start;
}

.esg-tab-btn:hover{
  transform: translateY(-2px);
  border-color: rgba(255,91,91,.35);
}

.esg-tab-btn.is-active{
  border-color: rgba(255,91,91,.45);
  box-shadow: 0 12px 26px rgba(225,20,26,.12);
  background: linear-gradient(180deg, rgba(225,20,26,.10), rgba(13,13,17,.84));
}

.esg-tab-letter{
  width: 42px;
  height: 42px;
  display: grid;
  place-items: center;
  border-radius: 10px;
  font-weight: 800;
  background: linear-gradient(135deg, #ff5b5b, #d6151a);
  color: #fff;
}

.esg-tab-text strong{
  display: block;
  line-height: 1.2;
}

.esg-tab-text small{
  display: block;
  margin-top: 4px;
  color: #aeb8cc;
  line-height: 1.35;
  font-size: .8rem;
}

.esg-pillars-panels{
  min-width: 0;
}

.esg-tab-panel{
  border-radius: 16px;
  border: 1px solid rgba(255,255,255,.08);
  background: linear-gradient(180deg, rgba(14,14,18,.86), rgba(10,10,12,.66));
  box-shadow: 0 14px 42px rgba(0,0,0,.18);
}

.esg-panel-content{
  padding: 18px;
  display: grid;
  grid-template-columns: 1fr 360px;
  gap: 16px;
}

.esg-panel-badge{
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 6px 10px;
  border-radius: 999px;
  background: rgba(255,255,255,.03);
  border: 1px solid rgba(255,255,255,.06);
  margin-bottom: 12px;
}

.esg-panel-badge-letter{
  width: 22px;
  height: 22px;
  border-radius: 999px;
  display: grid;
  place-items: center;
  background: #ff4d4d;
  color: #fff;
  font-size: .8rem;
  font-weight: 700;
}

.esg-panel-copy h3{
  margin: 0 0 10px;
  font-size: 1.15rem;
  line-height: 1.35;
}

.esg-panel-copy p{
  margin: 0 0 12px;
  color: #c6cfe1;
  line-height: 1.6;
}

.esg-check-list{
  list-style: none;
  padding: 0;
  margin: 0;
  display: grid;
  gap: 8px;
}

.esg-check-list li{
  position: relative;
  padding-left: 22px;
  color: #d7deed;
  line-height: 1.45;
}

.esg-check-list li::before{
  content: "✓";
  position: absolute;
  left: 0;
  top: 0;
  color: #ff6b6b;
  font-weight: 700;
}

.esg-metrics-card{
  height: 100%;
  border-radius: 14px;
  border: 1px solid rgba(255,255,255,.06);
  background: rgba(255,255,255,.02);
  padding: 14px;
}

.esg-metrics-head{
  margin-bottom: 12px;
}

.esg-metrics-head strong{
  display: block;
  line-height: 1.3;
}

.esg-metrics-head small{
  color: #aeb8cc;
}

.esg-progress-list{
  display: grid;
  gap: 10px;
}

.esg-progress-item{
  display: grid;
  gap: 6px;
}

.esg-progress-label{
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  gap: 8px;
  color: #d6deee;
  font-size: .88rem;
  line-height: 1.35;
}

.esg-progress-label strong{
  color: #fff;
  white-space: nowrap;
}

.esg-progress-track{
  height: 9px;
  border-radius: 999px;
  background: rgba(255,255,255,.05);
  overflow: hidden;
  border: 1px solid rgba(255,255,255,.03);
}

.esg-progress-bar{
  display: block;
  height: 100%;
  border-radius: inherit;
  background: linear-gradient(90deg, #ff7a7a, #ff4d4d, #e1141a);
  box-shadow: 0 0 12px rgba(225,20,26,.18);
}

/* Materiality */
.esg-materiality-section{
  margin-bottom: 28px;
}

.esg-materiality-grid{
  display: grid;
  grid-template-columns: 1.18fr .82fr;
  gap: 16px;
}

.esg-materiality-card,
.esg-side-card{
  border-radius: 16px;
  border: 1px solid rgba(255,255,255,.08);
  background: linear-gradient(180deg, rgba(14,14,18,.84), rgba(10,10,12,.62));
  box-shadow: 0 14px 42px rgba(0,0,0,.16);
}

.esg-materiality-card{
  padding: 16px;
}

.esg-materiality-head{
  display: flex;
  justify-content: space-between;
  gap: 10px;
  align-items: center;
  margin-bottom: 12px;
}

.esg-materiality-head strong{
  font-size: 1rem;
}

.esg-materiality-head small{
  color: #aeb8cc;
}

.esg-materiality-table-wrap{
  overflow-x: auto;
}

.esg-materiality-table{
  width: 100%;
  border-collapse: collapse;
  min-width: 520px;
}

.esg-materiality-table th,
.esg-materiality-table td{
  text-align: left;
  padding: 12px 10px;
  border-bottom: 1px solid rgba(255,255,255,.06);
  font-size: .9rem;
}

.esg-materiality-table th{
  color: #b7c1d5;
  font-weight: 600;
  background: rgba(255,255,255,.02);
}

.esg-materiality-table td{
  color: #eef2fb;
}

.esg-priority-tag{
  display: inline-flex;
  align-items: center;
  padding: 5px 10px;
  border-radius: 999px;
  border: 1px solid rgba(255,91,91,.25);
  background: rgba(225,20,26,.10);
  color: #ffd0d0;
  font-size: .78rem;
  font-weight: 700;
}

.esg-materiality-side{
  display: grid;
  gap: 16px;
}

.esg-side-card{
  padding: 16px;
}

.esg-side-card h3{
  margin: 0 0 10px;
  font-size: 1rem;
}

.esg-side-card p{
  margin: 0;
  color: #c6cfe1;
  line-height: 1.6;
}

.esg-side-list{
  margin: 0;
  padding-left: 18px;
  display: grid;
  gap: 8px;
  color: #d6deee;
  line-height: 1.45;
}

/* Governance */
.esg-governance-section{
  margin-bottom: 28px;
}

.esg-governance-grid{
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 14px;
}

.esg-governance-card{
  border-radius: 16px;
  border: 1px solid rgba(255,255,255,.08);
  background: linear-gradient(180deg, rgba(15,15,19,.82), rgba(10,10,12,.62));
  padding: 16px;
  box-shadow: 0 12px 30px rgba(0,0,0,.14);
}

.esg-governance-icon{
  width: 42px;
  height: 42px;
  display: grid;
  place-items: center;
  border-radius: 10px;
  font-size: 1.15rem;
  background: rgba(255,255,255,.03);
  border: 1px solid rgba(255,255,255,.06);
  margin-bottom: 10px;
}

.esg-governance-card h3{
  margin: 0 0 8px;
  font-size: 1rem;
}

.esg-governance-card p{
  margin: 0;
  color: #c5cee0;
  line-height: 1.55;
  font-size: .92rem;
}

/* Roadmap */
.esg-roadmap-section{
  margin-bottom: 28px;
}

.esg-roadmap{
  position: relative;
  display: grid;
  gap: 12px;
}

.esg-roadmap-line{
  position: absolute;
  left: 12px;
  top: 8px;
  bottom: 8px;
  width: 2px;
  background: linear-gradient(180deg, rgba(255,91,91,.35), rgba(255,255,255,.08));
  border-radius: 999px;
}

.esg-roadmap-item{
  position: relative;
  padding-left: 34px;
}

.esg-roadmap-dot{
  position: absolute;
  left: 6px;
  top: 18px;
  width: 14px;
  height: 14px;
  border-radius: 50%;
  background: #ff4d4d;
  box-shadow: 0 0 0 4px rgba(225,20,26,.12);
}

.esg-roadmap-card{
  border-radius: 14px;
  border: 1px solid rgba(255,255,255,.08);
  background: linear-gradient(180deg, rgba(14,14,18,.84), rgba(10,10,12,.62));
  padding: 14px;
}

.esg-roadmap-phase{
  display: inline-flex;
  padding: 4px 8px;
  border-radius: 999px;
  background: rgba(255,255,255,.03);
  border: 1px solid rgba(255,255,255,.05);
  color: #cdd6e8;
  font-size: .78rem;
  font-weight: 600;
  margin-bottom: 8px;
}

.esg-roadmap-card h3{
  margin: 0 0 6px;
  font-size: 1rem;
}

.esg-roadmap-card p{
  margin: 0;
  color: #c6cfe1;
  line-height: 1.55;
}

/* Policies */
.esg-policies-section{
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 16px;
  margin-bottom: 28px;
}

.esg-policy-card{
  border-radius: 16px;
  border: 1px solid rgba(255,255,255,.08);
  background: linear-gradient(180deg, rgba(14,14,18,.84), rgba(10,10,12,.62));
  padding: 16px;
  box-shadow: 0 14px 42px rgba(0,0,0,.16);
}

.esg-policy-head{
  display: grid;
  grid-template-columns: 36px 1fr;
  gap: 10px;
  align-items: start;
  margin-bottom: 12px;
}

.esg-policy-head > span{
  width: 36px;
  height: 36px;
  display: grid;
  place-items: center;
  border-radius: 10px;
  background: rgba(255,255,255,.03);
  border: 1px solid rgba(255,255,255,.06);
}

.esg-policy-head h3{
  margin: 0 0 4px;
  font-size: 1rem;
}

.esg-policy-head p{
  margin: 0;
  color: #c6cfe1;
  line-height: 1.5;
  font-size: .92rem;
}

.esg-policy-actions{
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin-top: 14px;
}

/* CTA */
.esg-cta{
  border-radius: 18px;
  border: 1px solid rgba(255,255,255,.08);
  background:
    radial-gradient(circle at 16% 20%, rgba(225,20,26,.14), transparent 42%),
    linear-gradient(180deg, rgba(15,15,19,.86), rgba(10,10,12,.68));
  box-shadow: 0 16px 46px rgba(0,0,0,.18);
  overflow: hidden;
}

.esg-cta-content{
  padding: 22px;
}

.esg-cta h2{
  margin: 0 0 8px;
  font-size: clamp(1.25rem, 2vw, 1.8rem);
  line-height: 1.15;
  letter-spacing: -.02em;
}

.esg-cta p{
  margin: 0;
  color: #c6cfe1;
  line-height: 1.6;
  max-width: 72ch;
}

.esg-cta-actions{
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin-top: 16px;
}

/* Responsive */
@media (max-width: 1100px){
  .esg-kpis{
    grid-template-columns: repeat(2, 1fr);
  }

  .esg-governance-grid{
    grid-template-columns: repeat(2, 1fr);
  }

  .esg-panel-content{
    grid-template-columns: 1fr;
  }

  .esg-materiality-grid{
    grid-template-columns: 1fr;
  }
}

@media (max-width: 980px){
  .esg-hero{
    grid-template-columns: 1fr;
  }

  .esg-pillars-layout{
    grid-template-columns: 1fr;
  }

  .esg-pillars-nav{
    grid-template-columns: 1fr;
  }
}

@media (max-width: 700px){
  .esg-page{
    padding-top: 28px;
  }

  .esg-hero-copy,
  .esg-hero-panel,
  .esg-tab-panel,
  .esg-materiality-card,
  .esg-side-card,
  .esg-policy-card,
  .esg-cta{
    border-radius: 14px;
  }

  .esg-hero-copy,
  .esg-cta-content{
    padding: 16px;
  }

  .esg-kpis{
    grid-template-columns: 1fr;
    gap: 10px;
  }

  .esg-governance-grid{
    grid-template-columns: 1fr;
    gap: 10px;
  }

  .esg-policies-section{
    grid-template-columns: 1fr;
    gap: 10px;
  }

  .esg-tab-btn{
    grid-template-columns: 38px 1fr;
    padding: 10px;
  }

  .esg-tab-letter{
    width: 38px;
    height: 38px;
  }

  .esg-panel-content{
    padding: 14px;
  }

  .esg-roadmap-item{
    padding-left: 28px;
  }

  .esg-roadmap-line{
    left: 10px;
  }

  .esg-roadmap-dot{
    left: 4px;
    width: 12px;
    height: 12px;
  }
}
