/* =========================================================
   Textos corridos do site
   ========================================================= */

.institucional-new-card p,
.course-detail-text,
.course-detail-text p,
.cpa-card-desc,
.cpa-info-desc,
.ouvidoria-form-subtitle,
.ouvidoria-info-desc,
.legal-content p,
.privacy-content p,
.terms-content p,
.cookies-content p,
#faq .faq-answer p {
  text-align: justify !important;
  text-justify: inter-word !important;
  hyphens: auto !important;
  overflow-wrap: break-word !important;
}

.section-title,
.faq-question,
.btn,
button,
.nav-link,
.course-card-item-body h3,
.course-card-item-saiba,
.course-card-item-price,
.course-card-item-matricula {
  text-align: initial;
}

/* =========================================================
   Layout global - Respiro abaixo do header
   ========================================================= */

:root {
  --site-header-offset-top: 34px;
  --site-header-logo-area: clamp(104px, 18vw, 150px);
  --site-header-nav-area: clamp(58px, 8.8vw, 76px);
  --site-header-content-gap: 30px;
}

html,
body {
  background-color: var(--bg-white) !important;
}

body.home {
  padding-top: calc(var(--site-header-offset-top) + var(--site-header-logo-area) + var(--site-header-nav-area) + var(--site-header-content-gap)) !important;
}

body {
  padding-top: calc(var(--site-header-offset-top) + var(--site-header-logo-area) + var(--site-header-nav-area)) !important;
}

/* =========================================================
   Layout global - Primeiro conteúdo após o header
   ========================================================= */

body.home>section:first-of-type,
body.home>main:first-of-type {
  margin-top: 0 !important;
}

body.home>section:first-of-type {
  padding-top: 0 !important;
}

body:not(.home)>section:first-of-type,
body:not(.home)>main:first-of-type {
  margin-top: calc(-1 * var(--site-header-content-gap)) !important;
}

/* =========================================================
   Home - Banner principal responsivo
   ========================================================= */

#inicio.hero-section {
  padding-top: 0 !important;
  overflow: visible !important;
}

#inicio .hero-carousel {
  margin-top: 0 !important;
  overflow: visible !important;
}

#inicio .hero-carousel-container {
  position: relative !important;
  overflow: visible !important;
}

/* Home - Detalhes laterais do banner */
#inicio .hero-carousel-container::before,
#inicio .hero-carousel-container::after {
  top: clamp(20px, 2.8vw, 38px) !important;
  bottom: calc(var(--hero-tab-height, 44px) + clamp(20px, 2.8vw, 38px)) !important; /* Exatamente o mesmo offset do top para ficar simétrico */
}

/* Home - Estrutura base do carrossel */
#inicio .hero-carousel--new {
  position: relative !important;
  z-index: 1 !important;
  overflow: hidden !important;
  border-radius: clamp(28px, 4vw, 44px) clamp(28px, 4vw, 44px) 0 0 !important;
}

#inicio .hero-carousel--new .carousel-track-container {
  position: relative !important;
  height: var(--hero-banner-height) !important;
  overflow: hidden !important;
  border-radius: inherit !important;
}

#inicio .hero-carousel--new .carousel-track {
  height: 100% !important;
}

#inicio .hero-carousel--new .carousel-slide--new {
  position: absolute !important;
  inset: 0 !important;
  width: 100% !important;
  height: 100% !important;
  box-sizing: border-box !important;
  overflow: hidden !important;
}

#inicio .hero-carousel--new .carousel-slide--new {
  opacity: 1 !important;
  visibility: visible !important;
  transition: none !important;
}

#inicio .hero-carousel--new .carousel-slide--new:not(.active) {
  pointer-events: none !important;
  z-index: 1 !important;
}

#inicio .hero-carousel--new .carousel-slide--new.active {
  pointer-events: auto !important;
  z-index: 2 !important;
}

#inicio .hero-carousel--new .carousel-slide--new .slide-content-new {
  opacity: 0 !important;
  visibility: hidden !important;
  pointer-events: none !important;
  transition: opacity 0.65s ease, visibility 0.65s ease !important;
}

#inicio .hero-carousel--new .carousel-slide--new.active .slide-content-new {
  opacity: 1 !important;
  visibility: visible !important;
  pointer-events: auto !important;
}

/* Apenas a imagem do slide ativo é renderizada, sem transição, para não gerar
   cópias sobrepostas dos demais slides */
#inicio .hero-carousel--new .carousel-slide--new .slide-student-image {
  opacity: 1 !important;
  visibility: hidden !important;
  transition: none !important;
}

#inicio .hero-carousel--new .carousel-slide--new.active .slide-student-image {
  visibility: visible !important;
}

/* Mobile: display:contents no wrapper — animar texto/botão diretamente */
@media (max-width: 767px) {
  #inicio .hero-carousel--new .carousel-slide--new .slide-content-new {
    opacity: 1 !important;
    visibility: visible !important;
    transition: none !important;
  }

  #inicio .hero-carousel--new .carousel-slide--new .slide-content-new h2,
  #inicio .hero-carousel--new .carousel-slide--new .slide-content-new p,
  #inicio .hero-carousel--new .carousel-slide--new .btn-matricule-slide {
    opacity: 0 !important;
    visibility: hidden !important;
    pointer-events: none !important;
    transition: opacity 0.65s ease, visibility 0.65s ease !important;
  }

  #inicio .hero-carousel--new .carousel-slide--new.active .slide-content-new h2,
  #inicio .hero-carousel--new .carousel-slide--new.active .slide-content-new p,
  #inicio .hero-carousel--new .carousel-slide--new.active .btn-matricule-slide {
    opacity: 1 !important;
    visibility: visible !important;
    pointer-events: auto !important;
  }
}

#inicio .hero-carousel--new .slide-bg-image,
#inicio .hero-carousel--new .slide-overlay-new {
  position: absolute !important;
  inset: 0 !important;
}

#inicio .hero-carousel--new .slide-content-new,
#inicio .hero-carousel--new .slide-student-image,
#inicio .hero-carousel--new .btn-matricule-slide {
  position: relative !important;
  z-index: 5 !important;
}

/* Home - Símbolo Phi do banner */
#inicio .hero-carousel--new .slide-phi-logo {
  position: absolute !important;
  top: clamp(28px, 4vw, 40px) !important;
  right: clamp(28px, 4vw, 40px) !important;
  z-index: 7 !important;
}

#inicio .hero-carousel--new .slide-phi-logo img {
  display: block !important;
  opacity: 1 !important;
  filter: brightness(0) invert(1) !important;
  transform: scale(0.5) !important;
  transform-origin: top right !important;
}

/* Home - Máscara do banner em mobile */
@media (max-width: 767px) {
  #inicio .hero-carousel--new.section-with-bottom-tab {
    -webkit-mask-image: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1000 620" preserveAspectRatio="none"><path fill="black" d="M 58 0 H 942 Q 1000 0 1000 58 V 510 Q 1000 548 958 548 H 790 C 748 548 730 552 710 562 C 688 573 662 577 628 577 H 372 C 338 577 312 573 290 562 C 270 552 252 548 210 548 H 42 Q 0 548 0 510 V 58 Q 0 0 58 0 Z"/></svg>') !important;
    mask-image: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1000 620" preserveAspectRatio="none"><path fill="black" d="M 58 0 H 942 Q 1000 0 1000 58 V 510 Q 1000 548 958 548 H 790 C 748 548 730 552 710 562 C 688 573 662 577 628 577 H 372 C 338 577 312 573 290 562 C 270 552 252 548 210 548 H 42 Q 0 548 0 510 V 58 Q 0 0 58 0 Z"/></svg>') !important;
    -webkit-mask-size: 100% 100% !important;
    mask-size: 100% 100% !important;
    -webkit-mask-repeat: no-repeat !important;
    mask-repeat: no-repeat !important;
  }
}

/* Home - Máscara do banner em tablet e desktop */
@media (min-width: 768px) {
  #inicio .hero-carousel--new.section-with-bottom-tab {
    -webkit-mask-image: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1000 620" preserveAspectRatio="none"><path fill="black" d="M 58 0 H 942 Q 1000 0 1000 58 V 510 Q 1000 548 958 548 H 800 C 755 548 730 558 706 580 C 680 604 652 612 610 612 H 390 C 348 612 320 604 294 580 C 270 558 245 548 200 548 H 42 Q 0 548 0 510 V 58 Q 0 0 58 0 Z"/></svg>') !important;
    mask-image: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1000 620" preserveAspectRatio="none"><path fill="black" d="M 58 0 H 942 Q 1000 0 1000 58 V 510 Q 1000 548 958 548 H 800 C 755 548 730 558 706 580 C 680 604 652 612 610 612 H 390 C 348 612 320 604 294 580 C 270 558 245 548 200 548 H 42 Q 0 548 0 510 V 58 Q 0 0 58 0 Z"/></svg>') !important;
    -webkit-mask-size: 100% 100% !important;
    mask-size: 100% 100% !important;
    -webkit-mask-repeat: no-repeat !important;
    mask-repeat: no-repeat !important;
  }
}

/* =========================================================
   Home - Banner mobile
   ========================================================= */

@media (max-width: 767px) {
  #inicio .hero-carousel--new {
    --hero-banner-height: clamp(610px, 86svh, 880px);

    --hero-content-top: clamp(96px, 13svh, 145px);
    --hero-content-left: clamp(2.4rem, 13vw, 7.2rem);
    --hero-content-right: clamp(1.1rem, 5vw, 2.2rem);
    --hero-text-gap: -4px;

    --hero-button-bottom: clamp(54px, 8svh, 86px);
    --hero-button-offset-y: -24px;

    --hero-student-width: clamp(245px, 64vw, 420px);
    --hero-student-offset-x: clamp(-22px, -4vw, -10px);
    --hero-student-offset-y: -28px;
    --hero-student-gap: clamp(0.75rem, 2.5vw, 1.4rem);
  }

  #inicio .hero-carousel--new .carousel-slide--new {
    display: grid !important;
    grid-template-columns: 1fr !important;
    grid-template-rows: min-content min-content minmax(0, 1fr) min-content !important;
    align-items: start !important;
    padding: var(--hero-content-top) 0 var(--hero-button-bottom) !important;
  }

  #inicio .hero-carousel--new .carousel-slide--new.active {
    display: grid !important;
  }

  #inicio .hero-carousel--new .slide-content-new {
    display: contents !important;
    position: static !important;
    inset: auto !important;
    max-width: none !important;
    margin: 0 !important;
    padding: 0 !important;
    transform: none !important;
  }

  #inicio .hero-carousel--new .slide-content-new h2 {
    grid-row: 1 !important;
    grid-column: 1 !important;
    width: auto !important;
    max-width: clamp(260px, 68vw, 520px) !important;
    margin: 0 var(--hero-content-right) 0 var(--hero-content-left) !important;
    font-size: clamp(1rem, 5.15vw, 2rem) !important;
    line-height: 1.06 !important;
    letter-spacing: -0.035em !important;
    text-align: left !important;
    text-wrap: normal !important;
    z-index: 5 !important;
  }

  #inicio .hero-carousel--new .slide-content-new p {
    grid-row: 2 !important;
    grid-column: 1 !important;
    width: auto !important;
    max-width: clamp(250px, 66vw, 500px) !important;
    margin: var(--hero-text-gap) var(--hero-content-right) 0 var(--hero-content-left) !important;
    font-size: clamp(0.68rem, 3.25vw, 1.18rem) !important;
    line-height: 1.24 !important;
    text-align: left !important;
    z-index: 5 !important;
  }

  #inicio .hero-carousel--new .slide-student-image {
    grid-row: 3 !important;
    grid-column: 1 !important;
    align-self: end !important;
    justify-self: center !important;
    width: var(--hero-student-width) !important;
    max-width: var(--hero-student-width) !important;
    height: 100% !important;
    min-height: 0 !important;
    margin: var(--hero-student-gap) 0 0 !important;
    transform: translate(var(--hero-student-offset-x), var(--hero-student-offset-y)) !important;
    z-index: 3 !important;
    pointer-events: none !important;

    display: flex !important;
    align-items: flex-end !important;
    justify-content: center !important;
  }

  #inicio .hero-carousel--new .slide-student-image img {
    display: block !important;
    width: 100% !important;
    max-width: 100% !important;
    max-height: 100% !important;
    height: auto !important;
    object-fit: contain !important;
    object-position: center bottom !important;
    margin: 0 auto !important;
    transform: none !important;
  }

  #inicio .hero-carousel--new .btn-matricule-slide {
    grid-row: 4 !important;
    grid-column: 1 !important;
    justify-self: center !important;
    align-self: end !important;
    margin: clamp(0.7rem, 2.4vw, 1rem) 0 0 !important;
    transform: translateY(var(--hero-button-offset-y)) !important;
    z-index: 6 !important;
  }
}

/* Mobile compacto - iPhone SE */
@media (max-width: 375px) {
  #inicio .hero-carousel--new {
    --hero-banner-height: clamp(600px, 90svh, 700px);

    --hero-content-top: 112px;
    --hero-content-left: calc(1.85rem + 10px);
    --hero-content-right: 1.15rem;

    --hero-button-bottom: 56px;
    --hero-button-offset-y: -22px;

    --hero-student-width: clamp(245px, 68vw, 275px);
    --hero-student-offset-x: -12px;
    --hero-student-offset-y: -26px;
  }

  #inicio .hero-carousel--new .slide-content-new h2 {
    max-width: min(76vw, 280px) !important;
    font-size: clamp(0.94rem, 4.2vw, 1.18rem) !important;
  }

  #inicio .hero-carousel--new .slide-content-new p {
    max-width: min(72vw, 265px) !important;
    font-size: clamp(0.66rem, 2.85vw, 0.82rem) !important;
  }
}

/* Mobile médio - iPhones maiores, Pixel e Galaxy */
@media (min-width: 376px) and (max-width: 480px) {
  #inicio .hero-carousel--new {
    --hero-banner-height: clamp(720px, 86svh, 820px);
    --hero-content-top: clamp(128px, 13svh, 150px);
    --hero-content-left: clamp(4.4rem, 18vw, 7rem);
    --hero-student-width: clamp(310px, 72vw, 360px);
    --hero-student-offset-x: -16px;
  }

  #inicio .hero-carousel--new .slide-content-new h2 {
    max-width: min(70vw, 360px) !important;
    font-size: clamp(1.25rem, 5.3vw, 1.7rem) !important;
  }

  #inicio .hero-carousel--new .slide-content-new p {
    max-width: min(68vw, 350px) !important;
    font-size: clamp(0.86rem, 3.35vw, 1.02rem) !important;
  }
}

/* Mobile amplo - celulares grandes */
@media (min-width: 481px) and (max-width: 767px) {
  #inicio .hero-carousel--new {
    --hero-banner-height: clamp(760px, 84svh, 900px);
    --hero-content-top: clamp(135px, 12svh, 165px);
    --hero-content-left: clamp(5rem, 15vw, 8.5rem);
    --hero-student-width: clamp(350px, 62vw, 440px);
    --hero-student-offset-x: -10px;
  }

  #inicio .hero-carousel--new .slide-content-new h2 {
    max-width: min(66vw, 500px) !important;
    font-size: clamp(1.55rem, 4.6vw, 2.2rem) !important;
  }

  #inicio .hero-carousel--new .slide-content-new p {
    max-width: min(64vw, 480px) !important;
    font-size: clamp(1rem, 2.9vw, 1.22rem) !important;
  }
}

/* =========================================================
   Home - Banner tablet e desktop
   ========================================================= */

@media (min-width: 768px) {
  #inicio .hero-carousel--new {
    --hero-banner-height: calc(clamp(540px, 43vw, 780px) + 150px);
    --hero-slide-padding-y: clamp(3rem, 6vw, 7rem);
    --hero-slide-padding-x: clamp(2.6rem, 6vw, 8rem);
    --hero-content-width: clamp(320px, 42vw, 760px);
    --hero-student-width: clamp(340px, 42vw, 560px);
    --hero-content-offset-y: clamp(-50px, -4vw, -24px);
  }

  #inicio .hero-carousel--new .carousel-slide--new {
    display: grid !important;
    grid-template-columns: minmax(0, var(--hero-content-width)) minmax(260px, var(--hero-student-width)) !important;
    /* Linha com altura fixa: impede que textos de tamanhos diferentes
       desloquem verticalmente a imagem do estudante entre os slides */
    grid-template-rows: minmax(0, 1fr) !important;
    align-items: center !important;
    justify-content: space-between !important;
    column-gap: clamp(1.5rem, 5vw, 5rem) !important;
    padding: var(--hero-slide-padding-y) var(--hero-slide-padding-x) !important;
  }

  #inicio .hero-carousel--new .carousel-slide--new.active {
    display: grid !important;
  }

  #inicio .hero-carousel--new .slide-content-new {
    grid-column: 1 !important;
    display: flex !important;
    flex-direction: column !important;
    align-items: flex-start !important;
    justify-content: center !important;
    max-width: var(--hero-content-width) !important;
    transform: translateY(var(--hero-content-offset-y)) !important;
    z-index: 5 !important;
  }

  #inicio .hero-carousel--new .slide-content-new h2 {
    max-width: var(--hero-content-width) !important;
    font-size: clamp(2rem, 4vw, 4.15rem) !important;
    line-height: 1.06 !important;
    letter-spacing: -0.045em !important;
    text-align: left !important;
    text-wrap: balance;
  }

  #inicio .hero-carousel--new .slide-content-new p {
    max-width: min(620px, 100%) !important;
    font-size: clamp(1rem, 1.8vw, 1.35rem) !important;
    line-height: 1.35 !important;
    text-align: left !important;
  }

  #inicio .hero-carousel--new .btn-matricule-slide {
    margin-top: 1.5rem !important;
    transform: none !important;
    z-index: 6 !important;
  }

  #inicio .hero-carousel--new .slide-student-image {
    grid-column: 2 !important;
    justify-self: center !important;
    align-self: center !important;
    width: var(--hero-student-width) !important;
    max-width: var(--hero-student-width) !important;
    height: auto !important;
    margin: 0 !important;
    transform: none !important;
    z-index: 3 !important;

    display: flex !important;
    align-items: flex-end !important;
    justify-content: center !important;
    pointer-events: none !important;
  }

  #inicio .hero-carousel--new .slide-student-image img {
    display: block !important;
    width: 100% !important;
    max-width: 100% !important;
    height: auto !important;
    object-fit: contain !important;
    object-position: center bottom !important;
    transform: none !important;
  }
}

/* =========================================================
   Banner - Tablet menor em retrato
   iPad Mini / iPad Air
   768px até 1023px
   ========================================================= */

@media (min-width: 48rem) and (max-width: 63.9375rem) and (orientation: portrait) {
  #inicio .hero-carousel--new {
    --hero-banner-height: clamp(36rem, 72vw, 44rem);
    --hero-slide-padding-x: clamp(2rem, 4vw, 3rem);
    --hero-slide-padding-y: clamp(3rem, 4.5vw, 4rem);

    --hero-student-width: clamp(19rem, 47vw, 26rem);

    --hero-content-offset-x: 1rem;
    --hero-content-offset-y: -1.25rem;

    --hero-student-offset-x: -1.75rem;
    --hero-student-offset-y: -2rem;
  }

  #inicio .hero-carousel--new .carousel-track-container {
    height: var(--hero-banner-height) !important;
    min-height: 0 !important;
    max-height: none !important;
  }

  #inicio .hero-carousel--new .carousel-slide--new {
    display: grid !important;
    grid-template-columns: minmax(0, 50%) minmax(0, 50%) !important;
    grid-template-rows: minmax(0, 1fr) !important;
    column-gap: clamp(0.75rem, 2vw, 1.5rem) !important;
    align-items: center !important;
    padding: var(--hero-slide-padding-y) var(--hero-slide-padding-x) !important;
  }

  #inicio .hero-carousel--new .slide-content-new {
    grid-column: 1 !important;
    width: 100% !important;
    max-width: none !important;
    min-width: 0 !important;

    transform: translate(var(--hero-content-offset-x),
        var(--hero-content-offset-y)) !important;
  }

  #inicio .hero-carousel--new .slide-content-new h2 {
    width: 100% !important;
    max-width: 100% !important;

    font-size: clamp(1.7rem, 3.6vw, 2.25rem) !important;
    line-height: 1.08 !important;
    letter-spacing: -0.04em !important;

    text-wrap: normal !important;
    overflow-wrap: normal !important;
    word-break: normal !important;
    hyphens: none !important;
  }

  #inicio .hero-carousel--new .slide-content-new p {
    width: 100% !important;
    max-width: min(100%, 26rem) !important;

    font-size: clamp(0.85rem, 1.6vw, 1rem) !important;
    line-height: 1.3 !important;
  }

  #inicio .hero-carousel--new .slide-student-image {
    grid-column: 2 !important;
    width: var(--hero-student-width) !important;
    max-width: var(--hero-student-width) !important;

    justify-self: start !important;
    align-self: center !important;

    margin: 0 !important;
    transform: translate(var(--hero-student-offset-x),
        var(--hero-student-offset-y)) !important;
  }

  #inicio .hero-carousel--new .slide-student-image img {
    width: 100% !important;
    max-width: 100% !important;
    max-height: calc(var(--hero-banner-height) + 1rem) !important;

    object-fit: contain !important;
    object-position: center center !important;
  }

  #inicio .hero-carousel--new .btn-matricule-slide {
    margin-top: 1.25rem !important;
    transform: none !important;
  }

  #inicio .hero-carousel--new .carousel-indicators--new {
    bottom: calc(var(--hero-tab-height, 0rem) + 1.25rem) !important;
  }
}

/* ==================================================================================================================
   

/* Desktop amplo */
@media (min-width: 1024px) {
  #inicio .hero-carousel--new {
    --hero-banner-height: calc(clamp(540px, 43vw, 780px) + 150px);
    --hero-content-width: min(760px, 58vw);
    --hero-student-width: clamp(420px, 30vw, 620px);
  }

  #inicio .hero-carousel--new .carousel-track-container {
    min-height: 690px !important;
    max-height: 930px !important;
  }
}

/* =========================================================
   Header desktop - Menu principal
   ========================================================= */

@media (min-width: 1024px) {

  /* Header desktop - Login */
  .header-login-container {
    display: inline-block !important;
    position: relative !important;
  }

  .login-dropdown-menu {
    display: flex !important;
    flex-direction: column !important;
  }

  .header-top .header-row__side--end {
    display: flex !important;
    align-items: center !important;
    justify-content: flex-end !important;
    padding-right: clamp(2.2rem, 4vw, 4.8rem) !important;
  }

  .header-login {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 0.35rem !important;
    color: var(--primary-dark) !important;
    font-family: var(--font-title) !important;
    font-size: clamp(0.68rem, 0.74vw, 0.82rem) !important;
    font-weight: 500 !important;
    letter-spacing: 0.07em !important;
    line-height: 1 !important;
    text-transform: uppercase !important;
    white-space: nowrap !important;
    opacity: 0.88 !important;
  }

  .header-login:hover {
    color: var(--cta-green) !important;
    opacity: 1 !important;
  }

  .header-login .dropdown-chevron {
    font-size: 0.52rem !important;
    margin-left: 0.2rem !important;
  }

  /* Header desktop - Menu suspenso do login */
  .header-top .login-dropdown-menu {
    right: -18px !important;
    top: calc(100% + 14px) !important;
    min-width: 245px !important;
    padding: 0 !important;
    border-radius: 26px !important;
    gap: 0 !important;
    overflow: hidden !important;
  }

  .header-top .login-dropdown-item {
    display: flex !important;
    align-items: center !important;
    width: 100% !important;
    min-height: 48px !important;
    margin: 0 !important;
    padding: 0.7rem 1.35rem !important;
    border-radius: 0 !important;
    box-sizing: border-box !important;
    font-weight: 500 !important;
    font-size: clamp(0.9rem, 0.92vw, 1.02rem) !important;
    letter-spacing: 0 !important;
    line-height: 1.15 !important;
    color: var(--primary-dark) !important;
    background-color: transparent !important;
    transform: none !important;
    transition: background-color 0.18s ease, color 0.18s ease !important;
  }

  .header-top .login-dropdown-item:hover,
  .header-top .login-dropdown-item:focus-visible,
  .header-top .login-dropdown-item:active {
    background-color: #0e2a54 !important;
    color: #ffffff !important;
    transform: none !important;
  }

  /* Header desktop - Barra inferior do menu */
  .header-nav {
    display: flex !important;
    justify-content: center !important;
    align-items: stretch !important;
    min-height: clamp(58px, 8.8vw, 76px) !important;
    padding: 0 !important;
    width: 100% !important;
    position: relative !important;
  }

  .header-nav .header-row__side--start {
    display: none !important;
  }

  .header-nav .header-row__side--end {
    position: absolute !important;
    right: clamp(2.2rem, 4vw, 4.8rem) !important;
    top: 50% !important;
    transform: translateY(-50%) !important;
    padding: 0 !important;
    display: flex !important;
    align-items: center !important;
  }

  .menu-toggle {
    display: none !important;
  }

  /* Header desktop - Lista do menu */
  .nav-menu {
    position: static !important;
    width: auto !important;
    height: auto !important;
    max-height: none !important;
    padding: 0 !important;
    background: transparent !important;
    box-shadow: none !important;
    border-radius: 0 !important;
    opacity: 1 !important;
    visibility: visible !important;
    pointer-events: auto !important;
    transform: none !important;
    overflow: visible !important;

    display: flex !important;
    flex-direction: row !important;
    align-items: stretch !important;
    justify-content: center !important;
    gap: clamp(1.25rem, 2.2vw, 3rem) !important;
  }

  .nav-menu>.nav-link,
  .nav-menu>.nav-item-dropdown {
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    width: auto !important;
    max-width: none !important;
    flex: 0 0 auto !important;
  }
  .nav-menu>.nav-item-dropdown {
    align-items: stretch !important;
  }

  /* Header desktop - Links do menu */
  .nav-menu>.nav-link,
  .nav-menu>.nav-item-dropdown>.nav-link {
    min-height: auto !important;
    padding: 0.31rem 0.55rem !important;
    border: 0 !important;
    background: transparent !important;
    color: var(--gray-blue) !important;
    font-family: var(--font-title) !important;
    font-size: clamp(0.82rem, 1.05vw, 1rem) !important;
    font-weight: 500 !important;
    letter-spacing: 0.04em !important;
    line-height: 1 !important;
    text-transform: uppercase !important;
    white-space: nowrap !important;
    position: relative !important;
  }

  .nav-menu>.nav-link:hover,
  .nav-menu>.nav-item-dropdown:hover>.nav-link,
  .nav-menu>.nav-link.active,
  .nav-menu>.nav-item-dropdown>.nav-link.active {
    color: var(--primary-dark) !important;
  }

  .nav-menu>.nav-link.active,
  .nav-menu>.nav-item-dropdown>.nav-link.active {
    font-weight: 800 !important;
  }

  /* Header desktop - Aba branca do item ativo */
  .nav-link.active::after {
    content: "" !important;
    position: absolute !important;
    left: 50% !important;
    bottom: -1px !important;
    transform: translateX(-50%) !important;
    width: 100% !important;
    height: 8px !important;
    background-color: #ffffff !important;
    z-index: 5 !important;
    pointer-events: none !important;
    -webkit-mask-image: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1000 64" preserveAspectRatio="none"><path fill="black" d="M 0 64 H 130 C 178 64 184 0 276 0 H 724 C 816 0 822 64 870 64 H 1000 V 64 Z"/></svg>');
    mask-image: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1000 64" preserveAspectRatio="none"><path fill="black" d="M 0 64 H 130 C 178 64 184 0 276 0 H 724 C 816 0 822 64 870 64 H 1000 V 64 Z"/></svg>');
    -webkit-mask-size: 100% 100%;
    mask-size: 100% 100%;
  }

  /* Header desktop - Itens com dropdown */
  .nav-item-dropdown {
    position: relative !important;
    display: flex !important;
    align-items: stretch !important;
    justify-content: center !important;
    width: auto !important;
    max-width: none !important;
    padding-bottom: 34px !important;
    margin-bottom: -34px !important;
  }

  /* Header desktop - Dropdowns do menu principal */
  .dropdown-menu-cursos,
  .dropdown-menu-institucional,
  .dropdown-menu-contato {
    display: block !important;
    opacity: 0 !important;
    visibility: hidden !important;
    pointer-events: none !important;
  }

  /* Header desktop - Dropdown de cursos */
  .dropdown-menu-cursos {
    top: 100% !important;
  }

  /* Header desktop - Dropdown institucional e contato */
  .dropdown-menu-institucional,
  .dropdown-menu-contato {
    top: 100% !important;
  }

  /* Header desktop - Exibição dos dropdowns */
  .nav-item-dropdown:hover>.dropdown-menu-cursos,
  .nav-item-dropdown:focus-within>.dropdown-menu-cursos {
    opacity: 1 !important;
    visibility: visible !important;
    pointer-events: auto !important;
    transform: translateY(0) !important;
  }

  .nav-item-dropdown:hover>.dropdown-menu-institucional,
  .nav-item-dropdown:hover>.dropdown-menu-contato,
  .nav-item-dropdown:focus-within>.dropdown-menu-institucional,
  .nav-item-dropdown:focus-within>.dropdown-menu-contato {
    opacity: 1 !important;
    visibility: visible !important;
    pointer-events: auto !important;
    transform: translateX(-50%) translateY(0) !important;
  }

  /* Header desktop - Itens exclusivos do mobile */
  .nav-menu .mobile-course-panel,
  .nav-menu .mobile-course-list,
  .nav-menu .mobile-course-link,
  .nav-menu .mobile-submenu-panel,
  .nav-menu .mobile-submenu-link,
  .nav-menu .mobile-login-item,
  .nav-menu .mobile-login-link {
    display: none !important;
    visibility: hidden !important;
    opacity: 0 !important;
    pointer-events: none !important;
    position: absolute !important;
    width: 0 !important;
    height: 0 !important;
    max-width: 0 !important;
    max-height: 0 !important;
    overflow: hidden !important;
  }
}

/* =========================================================
   Header mobile/tablet - Estrutura principal
   ========================================================= */

@media (max-width: 1023px) {
  .site-header {
    position: absolute !important;
    top: 34px !important;
    left: 0 !important;
    right: 0 !important;
    width: 100% !important;
    z-index: 1000 !important;
    background-color: transparent !important;
  }

  .header-top-wrapper,
  .header-nav-wrapper {
    width: 100% !important;
    background-color: var(--header-bar-bg) !important;
  }

  .header-top-wrapper {
    border-top: 4px solid #ffffff !important;
    border-bottom: 4px solid #ffffff !important;
  }

  .header-nav-wrapper {
    border-bottom: 1px solid rgba(0, 0, 0, 0.06) !important;
  }

  .header-top {
    min-height: clamp(104px, 18vw, 150px) !important;
    padding: clamp(1.1rem, 3.5vw, 1.8rem) 0 !important;
  }

  .header-top .header-row {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr) !important;
    align-items: center !important;
    width: 100% !important;
  }

  .header-top .header-row__side--start {
    display: block !important;
    grid-column: 1 !important;
  }

  .header-top .header-row__center {
    grid-column: 2 !important;
    justify-self: center !important;
  }

  .header-top .header-row__side--end {
    grid-column: 3 !important;
    display: flex !important;
    align-items: center !important;
    justify-content: flex-end !important;
  }

  .header-login-container,
  .login-dropdown-menu {
    display: none !important;
  }

  .site-logo-img,
  .logo-svg {
    height: clamp(76px, 13vw, 118px) !important;
    width: auto !important;
    max-width: min(380px, 68vw) !important;
    object-fit: contain !important;
  }

  .header-nav {
    display: grid !important;
    grid-template-columns: minmax(0, 0.35fr) auto minmax(0, 1.65fr) !important;
    align-items: center !important;
    min-height: clamp(58px, 8.8vw, 76px) !important;
    padding: 0 !important;
    width: 100% !important;
    position: relative !important;
  }

  .header-nav .header-row__side--start {
    grid-column: 1 !important;
  }

  .header-nav .header-row__center {
    grid-column: 2 !important;
    justify-self: center !important;
  }

  .header-nav .header-row__side--end {
    grid-column: 3 !important;
    display: flex !important;
    align-items: center !important;
    justify-content: flex-end !important;
    gap: clamp(0.75rem, 2.6vw, 1.25rem) !important;
    padding-right: clamp(1rem, 3.5vw, 2.2rem) !important;
  }

  .header-favorites-btn {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    width: clamp(22px, 3.8vw, 30px) !important;
    height: clamp(22px, 3.8vw, 30px) !important;
    color: var(--primary-dark) !important;
    font-size: clamp(0.9rem, 2.6vw, 1.18rem) !important;
    line-height: 1 !important;
    margin-right: clamp(50px, 7.2vw, 66px) !important;
  }

  .menu-toggle {
    display: flex !important;
    position: absolute !important;
    right: clamp(1rem, 3.5vw, 2.2rem) !important;
    top: 50% !important;
    transform: translateY(-50%) !important;
    z-index: 1200 !important;
    width: clamp(34px, 4.9vw, 43px) !important;
    height: clamp(34px, 4.9vw, 43px) !important;
    border: 1.5px solid var(--primary-dark) !important;
    border-radius: clamp(8px, 1.6vw, 11px) !important;
    background-color: transparent !important;
    align-items: center !important;
    justify-content: center !important;
    flex-direction: column !important;
    gap: clamp(4px, 0.7vw, 5px) !important;
  }

  .menu-toggle span {
    display: block !important;
    width: clamp(17px, 3.2vw, 22px) !important;
    height: 1.5px !important;
    background-color: var(--primary-dark) !important;
    border-radius: 999px !important;
  }
}

/* =========================================================
   Header mobile/tablet - Título da página
   ========================================================= */
/* =========================================================
   Header mobile/tablet - Título da página
   ========================================================= */

@media (max-width: 1023px) {
  .header-nav .header-row__center {
    position: relative !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    min-width: 0 !important;
    pointer-events: none !important;
  }

  /* Link real no lugar do ::before (que não era clicável) */
  .header-nav .mobile-nav-home-label {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    max-width: min(46vw, 300px) !important;
    color: var(--primary-dark) !important;
    font-family: var(--font-title) !important;
    font-size: clamp(0.92rem, 2.7vw, 1.28rem) !important;
    font-weight: 700 !important;
    letter-spacing: 0.055em !important;
    line-height: 1 !important;
    text-transform: uppercase !important;
    text-align: center !important;
    text-decoration: none !important;
    white-space: nowrap !important;
    transform: translateX(-18px) !important;
    pointer-events: auto !important;
    position: relative !important;
    z-index: 5 !important;
    -webkit-tap-highlight-color: transparent;
  }

  .header-nav .header-row__center::before {
    content: none !important;
    display: none !important;
  }

  .nav-menu {
    position: static !important;
    display: none !important;
    width: auto !important;
    height: auto !important;
    max-height: none !important;
    padding: 0 !important;
    background: transparent !important;
    box-shadow: none !important;
    border-radius: 0 !important;
    opacity: 1 !important;
    visibility: visible !important;
    pointer-events: none !important;
    transform: none !important;
    overflow: visible !important;
  }

  .nav-link.active::after {
    content: none !important;
  }
}

/* =========================================================
   Header mobile/tablet - Menu aberto
   ========================================================= */

@media (max-width: 1023px) {
  .nav-menu.active {
    position: fixed !important;
    top: calc(34px + clamp(104px, 18vw, 150px) + clamp(58px, 8.8vw, 76px) + 30px) !important;
    left: 50% !important;
    right: auto !important;
    width: min(calc(100vw - 5rem), 370px) !important;
    max-height: calc(100svh - 230px) !important;
    padding: 0 !important;
    border-radius: 24px !important;
    background-color: #f2f2f2 !important;
    box-shadow: 0 22px 54px rgba(4, 24, 48, 0.18) !important;
    display: flex !important;
    flex-direction: column !important;
    align-items: stretch !important;
    justify-content: flex-start !important;
    gap: 0 !important;
    opacity: 1 !important;
    visibility: visible !important;
    pointer-events: auto !important;
    transform: translateX(-50%) !important;
    overflow: hidden auto !important;
    z-index: 1100 !important;
  }

  .nav-menu.active>.nav-link,
  .nav-menu.active>.nav-item-dropdown {
    display: flex !important;
    width: 100% !important;
    max-width: none !important;
  }

  .nav-menu.active>.nav-item-dropdown {
    flex-direction: column !important;
    align-items: stretch !important;
  }

  /* Header mobile/tablet - Links do menu aberto */
  .nav-menu.active>.nav-link,
  .nav-menu.active>.nav-item-dropdown>.nav-link,
  .nav-menu.active>.nav-link.active,
  .nav-menu.active>.nav-item-dropdown>.nav-link.active,
  .nav-menu.active>.nav-item-dropdown>.nav-link.is-mobile-submenu-open,
  .nav-menu.active>.nav-item-dropdown>.nav-link.is-mobile-courses-open {
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    width: 100% !important;
    min-height: 42px !important;
    margin: 0 !important;
    padding: 0.62rem 1rem !important;
    box-sizing: border-box !important;
    border: 0 !important;
    border-radius: 0 !important;
    background-color: transparent !important;
    color: var(--primary-dark) !important;
    font-family: var(--font-title) !important;
    font-size: clamp(0.86rem, 2.8vw, 1.02rem) !important;
    font-weight: 500 !important;
    letter-spacing: 0.04em !important;
    line-height: 1.1 !important;
    text-transform: uppercase !important;
    text-align: center !important;
    white-space: normal !important;
    pointer-events: auto !important;
    cursor: pointer !important;
    transition: background-color 0.18s ease, color 0.18s ease !important;
  }

  /* Header mobile/tablet - Hover do menu aberto */
  .nav-menu.active>.nav-link:hover,
  .nav-menu.active>.nav-link:focus-visible,
  .nav-menu.active>.nav-link:active,
  .nav-menu.active>.nav-item-dropdown:hover>.nav-link,
  .nav-menu.active>.nav-item-dropdown:focus-within>.nav-link,
  .nav-menu.active>.nav-item-dropdown>.nav-link:hover,
  .nav-menu.active>.nav-item-dropdown>.nav-link:focus-visible,
  .nav-menu.active>.nav-item-dropdown>.nav-link:active {
    background-color: #0e2a54 !important;
    color: #ffffff !important;
    font-weight: 700 !important;
  }

  /* Header mobile/tablet - Texto branco no hover */
  .nav-menu.active>.nav-link:hover *,
  .nav-menu.active>.nav-link:focus-visible *,
  .nav-menu.active>.nav-link:active *,
  .nav-menu.active>.nav-item-dropdown:hover>.nav-link *,
  .nav-menu.active>.nav-item-dropdown:focus-within>.nav-link *,
  .nav-menu.active>.nav-item-dropdown>.nav-link:hover *,
  .nav-menu.active>.nav-item-dropdown>.nav-link:focus-visible *,
  .nav-menu.active>.nav-item-dropdown>.nav-link:active * {
    color: #ffffff !important;
  }

  .nav-menu.active .nav-link.active::after {
    content: none !important;
  }

  .nav-menu.active .dropdown-menu-cursos,
  .nav-menu.active .dropdown-menu-institucional,
  .nav-menu.active .dropdown-menu-contato {
    display: none !important;
  }

  .mobile-submenu-panel:not(.is-active),
  .mobile-course-panel:not(.is-active),
  .mobile-course-panel:not(.is-active) .mobile-course-list {
    display: none !important;
    visibility: hidden !important;
    max-height: 0 !important;
    overflow: hidden !important;
  }

  .mobile-submenu-panel.is-active,
  .mobile-course-panel.is-active,
  .mobile-course-panel.is-active .mobile-course-list {
    display: flex !important;
    flex-direction: column !important;
    width: 100% !important;
    visibility: visible !important;
    max-height: none !important;
    overflow: visible !important;
  }

  .mobile-submenu-panel.is-active,
  .mobile-course-panel.is-active {
    display: flex !important;
    flex-direction: column !important;
  }

  .mobile-submenu-link,
  .mobile-course-link {
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    min-height: 38px !important;
    width: 100% !important;
    padding: 0.58rem 1rem !important;
    background-color: #0e2a54 !important;
    color: #ffffff !important;
    font-family: var(--font-title) !important;
    font-size: clamp(0.78rem, 2.6vw, 0.95rem) !important;
    font-weight: 500 !important;
    letter-spacing: 0.02em !important;
    line-height: 1.15 !important;
    text-align: center !important;
    text-transform: none !important;
    border-top: 1px solid rgba(255, 255, 255, 0.14) !important;
  }

  .mobile-submenu-link:hover,
  .mobile-submenu-link:focus-visible,
  .mobile-submenu-link:active,
  .mobile-course-link:hover,
  .mobile-course-link:focus-visible,
  .mobile-course-link:active {
    background-color: #405a7b !important;
    color: #ffffff !important;
  }

  .mobile-submenu-link--all,
  .mobile-course-link--all {
    font-weight: 800 !important;
    background-color: #405a7b !important;
  }
}

/* =========================================================
   Cursos mobile
   ========================================================= */

@media (max-width: 767px) {
  #cursos .courses-paginated {
    min-height: auto !important;
    display: grid !important;
    align-items: start !important;
    width: 100% !important;
  }

  #cursos .courses-page {
    grid-area: 1 / 1 !important;
    display: grid !important;
    grid-template-columns: 1fr !important;
    justify-items: center !important;
    row-gap: 4.2rem !important;
    column-gap: 0 !important;
    min-height: auto !important;
    opacity: 0 !important;
    visibility: hidden !important;
    pointer-events: none !important;
  }

  #cursos .courses-page.active {
    opacity: 1 !important;
    visibility: visible !important;
    pointer-events: auto !important;
  }

  #cursos .course-card-item {
    width: min(100%, 320px) !important;
    max-width: calc(100vw - 2rem) !important;
    min-height: 460px !important;
    height: auto !important;
    border-radius: 42px !important;
    padding: 1.65rem 1.45rem 4.2rem !important;
    margin-inline: auto !important;
    aspect-ratio: auto !important;
    box-shadow: none !important;
  }

  #cursos .course-card-item-badge {
    font-size: 0.78rem !important;
    padding: 0.24rem 0.65rem !important;
    margin-bottom: 1.25rem !important;
  }

  #cursos .course-card-item-body {
    gap: 0.85rem !important;
  }

  #cursos .course-card-item-body h3 {
    font-size: clamp(1.45rem, 6.8vw, 1.85rem) !important;
    line-height: 1.08 !important;
    overflow-wrap: normal !important;
    word-break: normal !important;
    hyphens: none !important;
    display: -webkit-box !important;
    -webkit-box-orient: vertical !important;
    -webkit-line-clamp: 3 !important;
    line-clamp: 3 !important;
    overflow: hidden !important;
    min-height: calc(1.08em * 3) !important;
  }

  #cursos .course-card-item-meta {
    font-size: 0.78rem !important;
    line-height: 1.25 !important;
    gap: 0.12rem !important;
  }

  #cursos .course-card-item-meta .meta-row {
    flex-wrap: wrap !important;
    gap: 0.2rem !important;
  }

  #cursos .course-card-item-body p {
    font-size: 0.82rem !important;
    line-height: 1.25 !important;
    display: -webkit-box !important;
    -webkit-line-clamp: 4 !important;
    line-clamp: 4 !important;
    -webkit-box-orient: vertical !important;
    overflow: hidden !important;
    text-align: left !important;
  }

  #cursos .course-card-item-footer {
    display: flex !important;
    flex-direction: row !important;
    align-items: center !important;
    justify-content: space-between !important;
    gap: 0.65rem !important;
    margin-top: auto !important;
    padding-top: 0.35rem !important;
    flex-shrink: 0 !important;
    transform: none !important;
  }

  #cursos .course-card-item-saiba {
    font-size: 0.72rem !important;
    white-space: nowrap !important;
  }

  #cursos .course-card-item-price {
    font-size: clamp(2rem, 10vw, 2.55rem) !important;
    line-height: 1 !important;
    white-space: nowrap !important;
  }

  #cursos .course-card-item-matricula {
    width: min(78%, 250px) !important;
    min-height: 48px !important;
    bottom: -24px !important;
    padding: 0.68rem 1.25rem !important;
    border-radius: 22px !important;
    font-size: 0.86rem !important;
    letter-spacing: 0.04em !important;
  }

  #cursos .courses-pagination-dots {
    display: flex !important;
    justify-content: center !important;
    align-items: center !important;
    gap: 0.55rem !important;
    margin-top: 4rem !important;
    margin-bottom: 0 !important;
  }

  #cursos .courses-pagination-dot {
    width: 9px !important;
    height: 9px !important;
    border-width: 1.5px !important;
  }
}

/* =========================================================
   Cursos tablet e desktop
   ========================================================= */

@media (min-width: 768px) {

  #cursos .courses-page,
  .section-related-courses .related-courses-page,
  .section-related-courses .courses-page {
    align-items: stretch !important;
  }

  #cursos .course-card-item,
  .section-related-courses .course-card-item {
    min-width: 0 !important;
    overflow: visible !important;
    height: 100% !important;
    min-height: 520px !important;
    aspect-ratio: auto !important;
  }

  #cursos .course-card-item-body,
  .section-related-courses .course-card-item-body {
    min-width: 0 !important;
    min-height: 0 !important;
    overflow: hidden !important;
  }

  #cursos .course-card-item-body h3,
  .section-related-courses .course-card-item-body h3 {
    font-size: clamp(1.45rem, 1.55vw, 1.85rem) !important;
    line-height: 1.08 !important;
    letter-spacing: -0.03em !important;
    overflow-wrap: normal !important;
    word-break: normal !important;
    hyphens: none !important;
    display: -webkit-box !important;
    -webkit-box-orient: vertical !important;
    -webkit-line-clamp: 3 !important;
    line-clamp: 3 !important;
    overflow: hidden !important;
    min-height: calc(1.08em * 3) !important;
  }

  #cursos .course-card-item-body p,
  .section-related-courses .course-card-item-body p {
    display: -webkit-box !important;
    -webkit-box-orient: vertical !important;
    -webkit-line-clamp: 4 !important;
    line-clamp: 4 !important;
    overflow: hidden !important;
  }

  #cursos .course-card-item-footer,
  .section-related-courses .course-card-item-footer {
    display: grid !important;
    grid-template-columns: auto minmax(0, 1fr) !important;
    align-items: end !important;
    gap: 0.75rem !important;
    width: 100% !important;
    min-width: 0 !important;
    margin-top: auto !important;
    flex-shrink: 0 !important;
    transform: none !important;
  }

  #cursos .course-card-item-saiba,
  .section-related-courses .course-card-item-saiba {
    min-width: 0 !important;
    font-size: clamp(0.72rem, 0.78vw, 0.88rem) !important;
    white-space: nowrap !important;
  }

  #cursos .course-card-item-price,
  .section-related-courses .course-card-item-price {
    justify-self: end !important;
    max-width: 100% !important;
    min-width: 0 !important;
    font-size: clamp(2rem, 2.25vw, 2.65rem) !important;
    line-height: 0.95 !important;
    white-space: nowrap !important;
    letter-spacing: -0.04em !important;
  }
}

/* =========================================================
   Cursos — tablet RETRATO (768–1024)
   iPad / iPad Air: evita 3ª coluna vazada (minmax 300px x3 > viewport)
   ========================================================= */

@media (min-width: 768px) and (max-width: 1024px) and (orientation: portrait) {
  #cursos .courses-page,
  .section-related-courses .courses-page,
  .section-related-courses .related-courses-page {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    column-gap: clamp(1rem, 2.4vw, 1.75rem) !important;
    row-gap: clamp(3.6rem, 5vw, 4.8rem) !important;
    width: 100% !important;
    max-width: 100% !important;
    justify-content: center !important;
    justify-items: stretch !important;
  }

  #cursos .course-card-item,
  .section-related-courses .course-card-item {
    width: 100% !important;
    max-width: none !important;
    min-width: 0 !important;
    min-height: 480px !important;
  }

  #cursos .course-card-item-body h3,
  .section-related-courses .course-card-item-body h3 {
    font-size: clamp(1.35rem, 2.6vw, 1.7rem) !important;
  }

  #cursos .course-card-item-matricula,
  .section-related-courses .course-card-item-matricula {
    width: min(82%, 260px) !important;
    font-size: 0.88rem !important;
    min-height: 50px !important;
  }
}

/* =========================================================
   Depoimentos mobile
   ========================================================= */

@media (max-width: 767px) {
  #depoimentos {
    --testimonial-viewport-height: 21rem;
  }

  #depoimentos .testimonials-carousel {
    min-height: calc(21rem + 3.25rem) !important;
  }

  #depoimentos .testimonials-track-container {
    overflow: hidden !important;
    width: 100% !important;
    height: 21rem !important;
    min-height: 21rem !important;
    max-height: 21rem !important;
  }

  #depoimentos .testimonials-track {
    display: block !important;
    width: 100% !important;
    height: 100% !important;
    transform: none !important;
    animation: none !important;
  }

  #depoimentos .testimonials-page {
    display: flex !important;
    flex-direction: column !important;
    align-items: stretch !important;
    justify-content: flex-start !important;
    gap: 0 !important;
    width: 100% !important;
    height: 100% !important;
    position: absolute !important;
    inset: 0 !important;
    opacity: 0 !important;
    visibility: hidden !important;
    pointer-events: none !important;
    transform: translateX(14px) !important;
    transition:
      opacity 0.42s ease,
      transform 0.42s ease,
      visibility 0.42s ease !important;
  }

  #depoimentos .testimonials-page.active {
    position: absolute !important;
    opacity: 1 !important;
    visibility: visible !important;
    pointer-events: auto !important;
    transform: translateX(0) !important;
    z-index: 2 !important;
  }

  #depoimentos .testimonials-page.is-leaving-left {
    opacity: 0 !important;
    visibility: hidden !important;
    transform: translateX(-14px) !important;
  }

  #depoimentos .testimonials-page.is-leaving-right {
    opacity: 0 !important;
    visibility: hidden !important;
    transform: translateX(14px) !important;
  }

  #depoimentos .testimonial-card {
    width: 100% !important;
    max-width: 100% !important;
    flex: 1 1 auto !important;
    height: 100% !important;
    min-height: 100% !important;
    padding: 1.35rem 1.15rem !important;
    border-radius: 24px !important;
    gap: 0.9rem !important;
    margin: 0 !important;
    overflow: hidden !important;
  }

  #depoimentos .testimonial-user {
    flex-shrink: 0 !important;
    min-height: 4.5rem !important;
  }

  #depoimentos .testimonial-name {
    font-size: 0.95rem !important;
    line-height: 1.25 !important;
    min-height: 2.75em !important;
  }

  #depoimentos .testimonial-course {
    font-size: 0.78rem !important;
    line-height: 1.3 !important;
  }

  #depoimentos .testimonial-text {
    flex: 1 1 auto !important;
    min-height: 0 !important;
    min-width: 0 !important;
    width: 100% !important;
    max-width: 100% !important;
    font-size: 0.875rem !important;
    line-height: 1.55 !important;
    overflow-x: hidden !important;
    overflow-y: auto !important;
    -webkit-overflow-scrolling: touch !important;
    scrollbar-width: none !important;
    -ms-overflow-style: none !important;
    padding-right: 0 !important;
  }

  #depoimentos .testimonial-text::-webkit-scrollbar {
    display: none !important;
    width: 0 !important;
    height: 0 !important;
  }

  #depoimentos .testimonials-indicators {
    display: flex !important;
    justify-content: center !important;
    align-items: center !important;
    min-height: 2.5rem !important;
    margin-top: 1.75rem !important;
    margin-bottom: 0 !important;
    gap: 0.5rem !important;
    flex-wrap: wrap !important;
  }

  #depoimentos .testimonials-dot {
    width: 9px !important;
    height: 9px !important;
    border-width: 1.5px !important;
  }
}

/* =========================================================
   Depoimentos tablet
   ========================================================= */

@media (min-width: 768px) and (max-width: 1023px) {
  #depoimentos {
    --testimonial-viewport-height: 20rem;
  }

  #depoimentos .testimonials-carousel {
    min-height: calc(20rem + 3rem) !important;
  }

  #depoimentos .testimonials-track-container {
    overflow: hidden !important;
    width: 100% !important;
    height: 20rem !important;
    min-height: 20rem !important;
    max-height: 20rem !important;
  }

  #depoimentos .testimonials-track {
    display: block !important;
    width: 100% !important;
    height: 100% !important;
    animation: none !important;
  }

  #depoimentos .testimonials-page {
    display: flex !important;
    align-items: stretch !important;
    gap: 1.25rem !important;
    width: 100% !important;
    height: 100% !important;
    position: absolute !important;
    inset: 0 !important;
    opacity: 0 !important;
    visibility: hidden !important;
    pointer-events: none !important;
    transform: translateX(16px) !important;
    transition:
      opacity 0.42s ease,
      transform 0.42s ease,
      visibility 0.42s ease !important;
  }

  #depoimentos .testimonials-page.active {
    position: absolute !important;
    opacity: 1 !important;
    visibility: visible !important;
    pointer-events: auto !important;
    transform: translateX(0) !important;
    z-index: 2 !important;
  }

  #depoimentos .testimonials-page.is-leaving-left {
    opacity: 0 !important;
    visibility: hidden !important;
    transform: translateX(-16px) !important;
  }

  #depoimentos .testimonials-page.is-leaving-right {
    opacity: 0 !important;
    visibility: hidden !important;
    transform: translateX(16px) !important;
  }

  #depoimentos .testimonial-card {
    flex: 1 1 0 !important;
    min-width: 0 !important;
    width: auto !important;
    max-width: none !important;
    height: 100% !important;
    min-height: 100% !important;
    border-radius: 32px !important;
    padding: 1.5rem 1.25rem !important;
    gap: 1rem !important;
    overflow: hidden !important;
  }

  #depoimentos .testimonial-user {
    flex-shrink: 0 !important;
    min-height: 4.75rem !important;
  }

  #depoimentos .testimonial-name {
    font-size: 0.98rem !important;
    min-height: 2.75em !important;
  }

  #depoimentos .testimonial-course {
    font-size: 0.82rem !important;
  }

  #depoimentos .testimonial-text {
    flex: 1 1 auto !important;
    min-height: 0 !important;
    min-width: 0 !important;
    width: 100% !important;
    max-width: 100% !important;
    font-size: 0.9rem !important;
    line-height: 1.5 !important;
    overflow-x: hidden !important;
    overflow-y: auto !important;
    -webkit-overflow-scrolling: touch !important;
    scrollbar-width: none !important;
    -ms-overflow-style: none !important;
  }

  #depoimentos .testimonial-text::-webkit-scrollbar {
    display: none !important;
    width: 0 !important;
    height: 0 !important;
  }
}

/* =========================================================
   Depoimentos desktop
   ========================================================= */

@media (min-width: 1024px) {

  #depoimentos {
    --testimonial-viewport-height: clamp(18rem, 22vw, 22rem);
  }

  #depoimentos>.container,
  #depoimentos>.container-wide {
    width: min(100% - 2 * var(--page-gutter), 1760px) !important;
    max-width: none !important;
  }

  #depoimentos .testimonials-carousel {
    min-height: calc(clamp(18rem, 22vw, 22rem) + 3.5rem) !important;
  }

  #depoimentos .testimonials-track-container {
    overflow: hidden !important;
    width: 100% !important;
    height: clamp(18rem, 22vw, 22rem) !important;
    min-height: clamp(18rem, 22vw, 22rem) !important;
    max-height: clamp(18rem, 22vw, 22rem) !important;
  }

  #depoimentos .testimonials-track {
    display: block !important;
    width: 100% !important;
    height: 100% !important;
    animation: none !important;
  }

  #depoimentos .testimonials-page {
    display: flex !important;
    align-items: stretch !important;
    gap: clamp(1rem, 1.8vw, 2rem) !important;
    width: 100% !important;
    height: 100% !important;
    position: absolute !important;
    inset: 0 !important;
    opacity: 0 !important;
    visibility: hidden !important;
    pointer-events: none !important;
    transform: translateX(18px) !important;
    transition:
      opacity 0.42s ease,
      transform 0.42s ease,
      visibility 0.42s ease !important;
  }

  #depoimentos .testimonials-page.active {
    position: absolute !important;
    opacity: 1 !important;
    visibility: visible !important;
    pointer-events: auto !important;
    transform: translateX(0) !important;
    z-index: 2 !important;
  }

  #depoimentos .testimonials-page.is-leaving-left {
    opacity: 0 !important;
    visibility: hidden !important;
    transform: translateX(-18px) !important;
  }

  #depoimentos .testimonials-page.is-leaving-right {
    opacity: 0 !important;
    visibility: hidden !important;
    transform: translateX(18px) !important;
  }

  #depoimentos .testimonial-card {
    flex: 1 1 0 !important;
    min-width: 0 !important;
    width: auto !important;
    max-width: none !important;
    height: 100% !important;
    min-height: 100% !important;
    padding: clamp(1.35rem, 1.8vw, 1.85rem) clamp(1.1rem, 1.5vw, 1.5rem) !important;
    border-radius: clamp(28px, 2.5vw, 40px) !important;
    background: rgba(74, 91, 112, 0.78) !important;
    box-shadow: none !important;
    backdrop-filter: blur(8px) !important;
    -webkit-backdrop-filter: blur(8px) !important;
    gap: clamp(0.9rem, 1.2vw, 1.15rem) !important;
    overflow: hidden !important;
  }

  #depoimentos .testimonial-user {
    flex-shrink: 0 !important;
    min-height: clamp(4.5rem, 5.5vw, 5.75rem) !important;
  }

  #depoimentos .testimonial-name {
    font-size: clamp(0.92rem, 1.05vw, 1.1rem) !important;
    min-height: 3em !important;
    overflow-wrap: anywhere !important;
    word-break: break-word !important;
    max-width: 100% !important;
  }

  #depoimentos .testimonial-course {
    font-size: clamp(0.78rem, 0.9vw, 0.88rem) !important;
    overflow-wrap: anywhere !important;
    word-break: break-word !important;
  }

  #depoimentos .testimonial-text {
    flex: 1 1 auto !important;
    min-height: 0 !important;
    min-width: 0 !important;
    width: 100% !important;
    max-width: 100% !important;
    font-size: clamp(0.82rem, 0.95vw, 0.95rem) !important;
    line-height: 1.5 !important;
    overflow-x: hidden !important;
    overflow-y: auto !important;
    -webkit-overflow-scrolling: touch !important;
    scrollbar-width: none !important;
    -ms-overflow-style: none !important;
  }

  #depoimentos .testimonial-text::-webkit-scrollbar {
    display: none !important;
    width: 0 !important;
    height: 0 !important;
  }

  #depoimentos .testimonials-indicators {
    min-height: 2.5rem !important;
    margin-top: 2.5rem !important;
  }
}

/* =========================================================
   Depoimentos telas grandes
   ========================================================= */

@media (min-width: 1920px) {

  #depoimentos>.container,
  #depoimentos>.container-wide {
    width: min(100% - 2 * var(--page-gutter), 2160px) !important;
  }

  #depoimentos .testimonials-page {
    gap: 2rem !important;
  }

  #depoimentos .testimonial-card {
    padding: 1.85rem 1.5rem !important;
    border-radius: 40px !important;
  }

  #depoimentos .testimonial-user {
    min-height: 5.5rem !important;
  }

  #depoimentos .testimonial-name {
    font-size: 1.05rem !important;
    min-height: 3em !important;
  }

  #depoimentos .testimonial-course {
    font-size: 0.88rem !important;
  }

  #depoimentos .testimonial-text {
    font-size: 0.95rem !important;
  }
}

/* =========================================================
   FAQ
   ========================================================= */

#faq .faq-answer p {
  text-align: justify !important;
  text-justify: inter-word !important;
  hyphens: auto !important;
  overflow-wrap: break-word !important;
}

#faq .faq-item.active .faq-answer {
  max-height: none !important;
  overflow: visible !important;
}

#faq .faq-item:not(.active) .faq-answer {
  max-height: 0 !important;
  overflow: hidden !important;
}

#faq .faq-answer-contacts {
  display: flex !important;
  flex-wrap: wrap !important;
  gap: 0.75rem 1.25rem !important;
  align-items: center !important;
  justify-content: center !important;
  margin-top: 1rem !important;
}

#faq .faq-answer-contact-link {
  white-space: normal !important;
  overflow-wrap: anywhere !important;
}

/* =========================================================
   FAQ tablet — centralizar o painel (retratos 768–1024)
   ========================================================= */

@media (min-width: 768px) and (max-width: 1024px) {
  #faq > .container-wide,
  .home #faq .container-wide {
    display: flex !important;
    justify-content: center !important;
    align-items: stretch !important;
    width: 100% !important;
    max-width: 100% !important;
    margin-inline: auto !important;
    padding-inline: clamp(1rem, 3vw, 1.75rem) !important;
    box-sizing: border-box !important;
  }

  #faq .faq-panel,
  .home #faq .faq-panel {
    width: min(100%, 860px) !important;
    max-width: 100% !important;
    margin: 0 auto 30px !important;
    box-sizing: border-box !important;
    padding: clamp(3.25rem, 4.5vw, 4.75rem) clamp(2rem, 4vw, 3.25rem) clamp(3.5rem, 5vw, 5rem) !important;
  }

  #faq .faq-grid,
  .home #faq .faq-grid {
    gap: 0 clamp(2rem, 4vw, 4rem) !important;
  }
}

/* =========================================================
   FAQ mobile
   ========================================================= */

@media (max-width: 767px) {
  #faq {
    overflow: visible !important;
  }

  #faq .container-wide {
    width: min(100% - 2rem, 100%) !important;
  }

  #faq .faq-panel {
    width: 100% !important;
    max-width: none !important;
    padding: 5.75rem 1.15rem 2.75rem !important;
    border-radius: 42px !important;
    overflow: visible !important;
  }

  #faq .faq-panel-header {
    margin-bottom: 1.75rem !important;
  }

  #faq .faq-title-area {
    align-items: flex-start !important;
    margin-inline: 0 !important;
    width: auto !important;
  }

  #faq .faq-title {
    font-size: clamp(1.1rem, 5vw, 1.4rem) !important;
    line-height: 1.15 !important;
    text-align: left !important;
  }

  #faq .faq-logo {
    top: 28px !important;
    right: 28px !important;
  }

  #faq .faq-logo img {
    height: 34px !important;
  }

  #faq .faq-grid {
    display: grid !important;
    grid-template-columns: 1fr !important;
    gap: 0 !important;
    overflow: visible !important;
  }

  #faq .faq-item {
    width: 100% !important;
    overflow: visible !important;
  }

  #faq .faq-question {
    width: 100% !important;
    min-height: 42px !important;
    padding: 0.8rem 1.15rem !important;
    font-size: 0.76rem !important;
    line-height: 1.25 !important;
    text-align: left !important;
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) auto !important;
    gap: 0.75rem !important;
    align-items: center !important;
  }

  #faq .faq-question span {
    min-width: 0 !important;
    overflow-wrap: break-word !important;
  }

  #faq .faq-answer {
    width: 100% !important;
  }

  #faq .faq-answer p {
    padding-left: 1.15rem !important;
    padding-right: 1.15rem !important;
    font-size: 0.78rem !important;
    line-height: 1.55 !important;
  }

  #faq .faq-answer-contacts {
    flex-direction: column !important;
    align-items: center !important;
    padding-left: 1.15rem !important;
    padding-right: 1.15rem !important;
  }

  #faq .faq-answer-contact-link {
    font-size: 0.76rem !important;
    line-height: 1.3 !important;
    word-spacing: normal !important;
  }

  #faq .faq-cta-wrapper {
    margin-top: 2rem !important;
    padding-inline: 0.5rem !important;
  }

  #faq .faq-cta-text {
    font-size: 0.78rem !important;
    line-height: 1.45 !important;
  }

  #faq .btn-whatsapp-faq {
    width: min(100%, 290px) !important;
    min-height: 42px !important;
    margin-inline: auto !important;
    font-size: 0.68rem !important;
    white-space: nowrap !important;
    padding: 0.7rem 1.4rem !important;
    justify-content: center !important;
  }
}



/* Mobile geral - valores realmente fluidos */
@media (max-width: 767px) {
  #inicio .hero-carousel--new {
    --hero-mobile-banner-height: clamp(610px, 86svh, 880px);

    --hero-mobile-content-top: clamp(96px, 13svh, 145px);
    --hero-mobile-content-left: clamp(2.4rem, 13vw, 7.2rem);
    --hero-mobile-content-right: clamp(1.1rem, 5vw, 2.2rem);

    --hero-mobile-text-gap: -4px;
    --hero-mobile-button-bottom: clamp(54px, 8svh, 86px);
    --hero-mobile-button-offset-y: -24px;

    --hero-mobile-image-gap: clamp(0.75rem, 2.5vw, 1.4rem);
    --hero-mobile-student-width: clamp(245px, 64vw, 420px);
    --hero-mobile-student-offset-x: clamp(-22px, -4vw, -10px);
    --hero-mobile-student-offset-y: -28px;
  }

  #inicio .hero-carousel--new .carousel-track-container {
    position: relative !important;
    height: var(--hero-mobile-banner-height) !important;
  }

  #inicio .hero-carousel--new .carousel-track {
    height: 100% !important;
  }

  #inicio .hero-carousel--new .carousel-slide--new {
    position: absolute !important;
    inset: 0 !important;
    width: 100% !important;
    height: 100% !important;
    padding: var(--hero-mobile-content-top) 0 var(--hero-mobile-button-bottom) !important;
    box-sizing: border-box !important;
    overflow: hidden !important;

    display: grid !important;
    grid-template-columns: 1fr !important;
    grid-template-rows: min-content min-content minmax(0, 1fr) min-content !important;
    align-items: start !important;
  }

  #inicio .hero-carousel--new .carousel-slide--new:not(.active) {
    display: grid !important;
    opacity: 1 !important;
    visibility: visible !important;
    pointer-events: none !important;
    z-index: 1 !important;
  }

  #inicio .hero-carousel--new .carousel-slide--new.active {
    display: grid !important;
    opacity: 1 !important;
    visibility: visible !important;
    pointer-events: auto !important;
    z-index: 2 !important;
  }

  #inicio .hero-carousel--new .slide-bg-image,
  #inicio .hero-carousel--new .slide-overlay-new {
    position: absolute !important;
    inset: 0 !important;
  }

  #inicio .hero-carousel--new .slide-content-new {
    display: contents !important;
    position: static !important;
    inset: auto !important;
    max-width: none !important;
    margin: 0 !important;
    padding: 0 !important;
    transform: none !important;
  }

  #inicio .hero-carousel--new .slide-content-new h2 {
    grid-row: 1 !important;
    grid-column: 1 !important;
    width: auto !important;
    max-width: clamp(260px, 68vw, 520px) !important;
    margin: 0 var(--hero-mobile-content-right) 0 var(--hero-mobile-content-left) !important;
    font-size: clamp(1rem, 5.15vw, 2rem) !important;
    line-height: 1.06 !important;
    letter-spacing: -0.035em !important;
    text-align: left !important;
    text-wrap: balance;
    z-index: 5 !important;
  }

  #inicio .hero-carousel--new .slide-content-new p {
    grid-row: 2 !important;
    grid-column: 1 !important;
    width: auto !important;
    max-width: clamp(250px, 66vw, 500px) !important;
    margin: var(--hero-mobile-text-gap) var(--hero-mobile-content-right) 0 var(--hero-mobile-content-left) !important;
    font-size: clamp(0.68rem, 3.25vw, 1.18rem) !important;
    line-height: 1.24 !important;
    text-align: left !important;
    z-index: 5 !important;
  }

  #inicio .hero-carousel--new .slide-student-image {
    grid-row: 3 !important;
    grid-column: 1 !important;
    position: relative !important;
    left: auto !important;
    right: auto !important;
    bottom: auto !important;
    align-self: end !important;
    justify-self: center !important;
    width: var(--hero-mobile-student-width) !important;
    max-width: var(--hero-mobile-student-width) !important;
    height: 100% !important;
    min-height: 0 !important;
    margin: var(--hero-mobile-image-gap) 0 0 !important;
    transform: translate(var(--hero-mobile-student-offset-x), var(--hero-mobile-student-offset-y)) !important;
    z-index: 3 !important;
    pointer-events: none !important;

    display: flex !important;
    align-items: flex-end !important;
    justify-content: center !important;
  }

  #inicio .hero-carousel--new .slide-student-image img {
    display: block !important;
    width: 100% !important;
    max-width: 100% !important;
    max-height: 100% !important;
    height: auto !important;
    object-fit: contain !important;
    object-position: center bottom !important;
    margin: 0 auto !important;
    transform: none !important;
  }

  #inicio .hero-carousel--new .btn-matricule-slide {
    grid-row: 4 !important;
    grid-column: 1 !important;
    position: relative !important;
    left: auto !important;
    right: auto !important;
    bottom: auto !important;
    justify-self: center !important;
    align-self: end !important;
    margin: clamp(0.7rem, 2.4vw, 1rem) 0 0 !important;
    transform: translateY(var(--hero-mobile-button-offset-y)) !important;
    z-index: 6 !important;
  }
}

/* iPhone SE e telas menores */
@media (max-width: 375px) {
  #inicio .hero-carousel--new {
    --hero-mobile-banner-height: clamp(600px, 90svh, 700px);
    --hero-mobile-content-top: 112px;
    --hero-mobile-content-left: calc(1.85rem + 10px);
    --hero-mobile-content-right: 1.15rem;
    --hero-mobile-button-bottom: 56px;
    --hero-mobile-button-offset-y: -22px;
    --hero-mobile-student-width: clamp(245px, 68vw, 275px);
    --hero-mobile-student-offset-x: -12px;
    --hero-mobile-student-offset-y: -26px;
  }

  #inicio .hero-carousel--new .slide-content-new h2 {
    max-width: min(76vw, 280px) !important;
    font-size: clamp(0.94rem, 4.2vw, 1.18rem) !important;
    line-height: 1.06 !important;
  }

  #inicio .hero-carousel--new .slide-content-new p {
    max-width: min(72vw, 265px) !important;
    font-size: clamp(0.66rem, 2.85vw, 0.82rem) !important;
    line-height: 1.22 !important;
  }
}

/* Celulares médios: Pixel, Galaxy e iPhones maiores */
@media (min-width: 376px) and (max-width: 480px) {
  #inicio .hero-carousel--new {
    --hero-mobile-banner-height: clamp(720px, 86svh, 820px);
    --hero-mobile-content-top: clamp(128px, 13svh, 150px);
    --hero-mobile-content-left: clamp(4.4rem, 18vw, 7rem);
    --hero-mobile-student-width: clamp(310px, 72vw, 360px);
    --hero-mobile-student-offset-x: -16px;
  }

  #inicio .hero-carousel--new .slide-content-new h2 {
    max-width: min(70vw, 360px) !important;
    font-size: clamp(1.25rem, 5.3vw, 1.7rem) !important;
  }

  #inicio .hero-carousel--new .slide-content-new p {
    max-width: min(68vw, 350px) !important;
    font-size: clamp(0.86rem, 3.35vw, 1.02rem) !important;
  }
}

/* Celulares grandes e tablets pequenos */
@media (min-width: 481px) and (max-width: 767px) {
  #inicio .hero-carousel--new {
    --hero-mobile-banner-height: clamp(760px, 84svh, 900px);
    --hero-mobile-content-top: clamp(135px, 12svh, 165px);
    --hero-mobile-content-left: clamp(5rem, 15vw, 8.5rem);
    --hero-mobile-student-width: clamp(350px, 62vw, 440px);
    --hero-mobile-student-offset-x: -10px;
  }

  #inicio .hero-carousel--new .slide-content-new h2 {
    max-width: min(66vw, 500px) !important;
    font-size: clamp(1.55rem, 4.6vw, 2.2rem) !important;
  }

  #inicio .hero-carousel--new .slide-content-new p {
    max-width: min(64vw, 480px) !important;
    font-size: clamp(1rem, 2.9vw, 1.22rem) !important;
  }
}

/* =========================================================
   Desktop - Correção segura do hero
   Não altera mobile/tablet
   ========================================================= */

@media (min-width: 1024px) {
  #inicio .hero-carousel--new {
    --hero-banner-height: clamp(560px, 42vw, 760px);
    --hero-slide-padding-y: clamp(3rem, 4.5vw, 5.5rem);
    --hero-slide-padding-x: clamp(4rem, 6vw, 7rem);
    --hero-content-width: clamp(440px, 42vw, 680px);
    --hero-student-width: clamp(420px, 34vw, 620px);
    --hero-content-offset-y: clamp(-28px, -2vw, -12px);
  }

  #inicio .hero-carousel--new .carousel-track-container {
    height: var(--hero-banner-height) !important;
    min-height: 0 !important;
    max-height: none !important;
  }

  #inicio .hero-carousel--new .carousel-slide--new {
    grid-template-columns: minmax(0, var(--hero-content-width)) minmax(320px, var(--hero-student-width)) !important;
    column-gap: clamp(2rem, 4vw, 5rem) !important;
    padding: var(--hero-slide-padding-y) var(--hero-slide-padding-x) !important;
  }

  #inicio .hero-carousel--new .slide-content-new {
    max-width: var(--hero-content-width) !important;
    transform: translateY(var(--hero-content-offset-y)) !important;
  }

  #inicio .hero-carousel--new .slide-content-new h2 {
    font-size: clamp(2.8rem, 3.35vw, 4.15rem) !important;
    line-height: 1.07 !important;
    letter-spacing: -0.045em !important;
    max-width: 100% !important;
  }

  #inicio .hero-carousel--new .slide-content-new p {
    font-size: clamp(1rem, 1.25vw, 1.28rem) !important;
    line-height: 1.4 !important;
    max-width: min(620px, 100%) !important;
  }

  #inicio .hero-carousel--new .btn-matricule-slide {
    margin-top: clamp(1.1rem, 1.4vw, 1.5rem) !important;
    padding: 0.78rem 1.85rem !important;
    font-size: clamp(0.82rem, 0.85vw, 0.95rem) !important;
  }

  #inicio .hero-carousel--new .slide-student-image {
    width: var(--hero-student-width) !important;
    max-width: var(--hero-student-width) !important;
    align-self: end !important;
    justify-self: center !important;
    transform: translateY(clamp(10px, 1.2vw, 24px)) !important;
  }

  #inicio .hero-carousel--new .slide-student-image img {
    width: 100% !important;
    max-height: calc(var(--hero-banner-height) - 90px) !important;
    object-fit: contain !important;
    object-position: center bottom !important;
  }
}

/* Notebook menor */
/* =========================================================
   Banner - Tablet grande / iPad Pro
   1024px até 1279px
   ========================================================= */

@media (min-width: 64rem) and (max-width: 79.9375rem) {
  #inicio .hero-carousel--new {
    --hero-banner-height: clamp(34rem, 48vw, 40rem);
    --hero-slide-padding-x: clamp(3rem, 4vw, 4.5rem);
    --hero-slide-padding-y: clamp(3rem, 4vw, 4.5rem);

    --hero-student-width: clamp(24rem, 42vw, 34rem);

    --hero-content-offset-y: -1.5rem;
    --hero-student-offset-x: -2.25rem;
    --hero-student-offset-y: -3rem;
  }

  #inicio .hero-carousel--new .carousel-slide--new {
    display: grid !important;
    grid-template-columns: minmax(0, 40%) minmax(0, 60%) !important;
    column-gap: clamp(1rem, 2vw, 2rem) !important;
    align-items: center !important;
    padding: var(--hero-slide-padding-y) var(--hero-slide-padding-x) !important;
  }

  #inicio .hero-carousel--new .slide-content-new {
    grid-column: 1 !important;
    width: 100% !important;
    max-width: none !important;
    min-width: 0 !important;
    transform: translateY(var(--hero-content-offset-y)) !important;
  }

  #inicio .hero-carousel--new .slide-content-new h2 {
    width: 100% !important;
    max-width: 100% !important;
    font-size: clamp(2.15rem, 3vw, 2.75rem) !important;
    line-height: 1.07 !important;
    letter-spacing: -0.045em !important;
    text-wrap: normal !important;
    overflow-wrap: normal !important;
    word-break: normal !important;
    hyphens: none !important;
  }

  #inicio .hero-carousel--new .slide-content-new p {
    width: 100% !important;
    max-width: min(100%, 38rem) !important;
    font-size: clamp(0.95rem, 1.15vw, 1.08rem) !important;
    line-height: 1.35 !important;
  }

  #inicio .hero-carousel--new .slide-student-image {
    grid-column: 2 !important;
    width: var(--hero-student-width) !important;
    max-width: var(--hero-student-width) !important;
    justify-self: start !important;
    align-self: center !important;
    transform: translate(var(--hero-student-offset-x),
        var(--hero-student-offset-y)) !important;
  }

  #inicio .hero-carousel--new .slide-student-image img {
    width: 100% !important;
    max-height: calc(var(--hero-banner-height) + 1rem) !important;
    object-fit: contain !important;
    object-position: center center !important;
  }
}

/* Desktop comum */
@media (min-width: 1280px) and (max-width: 1599px) {
  #inicio .hero-carousel--new {
    --hero-banner-height: clamp(600px, 42vw, 720px);
    --hero-content-width: clamp(480px, 42vw, 640px);
    --hero-student-width: clamp(430px, 33vw, 560px);
  }
}

/* Desktop grande */
@media (min-width: 1600px) {
  #inicio .hero-carousel--new {
    --hero-banner-height: clamp(680px, 39vw, 800px);
    --hero-content-width: clamp(560px, 38vw, 720px);
    --hero-student-width: clamp(520px, 30vw, 660px);
  }

  #inicio .hero-carousel--new .slide-content-new h2 {
    font-size: clamp(3.4rem, 3.2vw, 4.6rem) !important;
  }
}

/* Banner desktop - Símbolo Phi lateral direita */
@media (min-width: 1024px) {
  #inicio .hero-carousel--new .slide-phi-logo {
    top: clamp(32px, 2.5vw, 48px) !important;
    right: clamp(42px, 3.8vw, 76px) !important;
    z-index: 8 !important;
  }

  #inicio .hero-carousel--new .slide-phi-logo img {
    width: clamp(62px, 3.8vw, 92px) !important;
    height: auto !important;
    transform: none !important;
    transform-origin: top right !important;
    opacity: 1 !important;
    filter: brightness(0) invert(1) !important;
  }
}

/* Banner desktop - imagem da estudante */
@media (min-width: 1024px) {
  #inicio .hero-carousel--new {
    --hero-student-width: clamp(600px, 45vw, 900px) !important;
  }

  #inicio .hero-carousel--new .slide-student-image {
    width: var(--hero-student-width) !important;
    max-width: var(--hero-student-width) !important;
    align-self: end !important;
    justify-self: center !important;
    transform: translateY(-55px) !important;
  }

  #inicio .hero-carousel--new .slide-student-image img {
    width: 100% !important;
    max-height: calc(var(--hero-banner-height) + 10px) !important;
    object-fit: contain !important;
    object-position: center bottom !important;
  }
}

/* Banner desktop - Permitir que o texto avance 30px para a direita */
@media (min-width: 1024px) {
  #inicio .hero-carousel--new .slide-content-new {
    max-width: calc(var(--hero-content-width) + 30px) !important;
  }

  #inicio .hero-carousel--new .slide-content-new h2 {
    max-width: calc(var(--hero-content-width) + 30px) !important;
  }

  #inicio .hero-carousel--new .slide-content-new p {
    max-width: min(650px, calc(var(--hero-content-width) + 30px)) !important;
  }
}
/* HOME — FAQ mais estreito e centralizado no mobile */
@media (max-width: 767px) {
  .home #faq.faq-section-wrapper {
    padding-left: 0 !important;
    padding-right: 0 !important;
    overflow: hidden !important;
  }

  .home #faq .container-wide {
    width: 100% !important;
    max-width: 100% !important;
    padding-inline: 0 !important;
    display: flex !important;
    justify-content: center !important;
  }

  .home #faq .faq-panel {
    width: calc(100% - 48px) !important;
    max-width: 420px !important;
    margin-inline: auto !important;
    border-radius: 42px !important;
    padding: clamp(2rem, 7vw, 2.7rem) clamp(1.35rem, 5vw, 1.8rem) !important;
    box-sizing: border-box !important;
  }

  .home #faq .faq-panel-header {
    gap: 1rem !important;
  }

  .home #faq .faq-title {
    font-size: clamp(1.45rem, 6vw, 2rem) !important;
    line-height: 1.05 !important;
  }

  .home #faq .faq-logo {
    transform: scale(0.78) !important;
    transform-origin: center !important;
  }

  .home #faq .faq-question {
    font-size: clamp(0.95rem, 4.2vw, 1.1rem) !important;
    line-height: 1.25 !important;
    gap: 0.85rem !important;
  }

  .home #faq .faq-item {
    padding-block: 1rem !important;
  }
}

@media (max-width: 430px) {
  .home #faq .faq-panel {
    width: calc(100% - 56px) !important;
    max-width: 365px !important;
    margin-inline: auto !important;
  }
}

/* HOME — Destaques Ajustes Mobile Solicitados */
@media (max-width: 767px) {
  .home #destaques .destaques-pagination {
    position: absolute !important;
    right: clamp(1.1rem, 5vw, 2rem) !important;
    top: 30% !important;
    bottom: auto !important;
    transform: translateY(-50%) !important;
    display: flex !important;
    flex-direction: column !important;
    gap: 0.65rem !important;
    z-index: 8 !important;
  }

  .home #destaques .destaques-dot {
    width: 0.72rem !important;
    height: 0.72rem !important;
  }

  .home #destaques .conquistas-item {
    border-radius: 26px !important;
    padding: clamp(1rem, 4vw, 1.35rem) clamp(1.15rem, 5vw, 1.6rem) !important;
  }

  .home #destaques .destaques-logo {
    transform: translate(10px, -24px) !important;
  }

  .home #destaques.destaques-section {
    padding-bottom: clamp(1.8rem, 6vw, 3rem) !important;
    min-height: auto !important;
  }

  .home #destaques .destaques-container {
    padding-bottom: 0 !important;
  }

  .home #destaques .destaques-slides-wrapper {
    margin-bottom: clamp(1.5rem, 5vw, 2.5rem) !important;
  }
}

/* HOME — Destaques Ajustes Finais Mobile (Media Slot, Marquee, Phi, Cards, Estrelas) */
@media (max-width: 767px) {
  .home #destaques {
    --destaques-video-w: min(88vw, 420px);
    --destaques-media-pad: clamp(1.25rem, 5vw, 2rem);
    --destaques-media-h: calc((var(--destaques-video-w) * 2) + (var(--destaques-media-pad) * 2));
  }

  .home #destaques .destaques-media-slot,
  .home #destaques .destaques-mobile-video-slot {
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    position: relative !important;
    width: 100% !important;
    min-height: var(--destaques-media-h) !important;
    margin: clamp(1.6rem, 6vw, 2.5rem) 0 0 !important;
    padding: var(--destaques-media-pad) clamp(1rem, 5vw, 1.75rem) !important;
    background: #020811 !important;
    border-radius: 0 !important;
    overflow: hidden !important;
    z-index: 2 !important;
  }

  .home #destaques .destaques-video-frame {
    border-radius: 14px !important;
  }

  .home #destaques .destaques-logo {
    position: absolute !important;
    right: clamp(1.5rem, 6vw, 3rem) !important;
    bottom: calc(var(--destaques-media-h) + 1.5rem + 60px) !important;
    transform: none !important;
    z-index: 6 !important;
    top: auto !important;
  }

  .home #destaques .destaques-logo .phi-fallback,
  .home #destaques .destaques-logo img {
    font-size: clamp(3rem, 12vw, 4.5rem) !important;
    width: clamp(3rem, 12vw, 4.5rem) !important;
    height: auto !important;
  }

  .home #destaques .destaques-bottom-marquee {
    margin-top: 0 !important;
    position: relative !important;
    z-index: 5 !important;
  }

  .home #destaques.destaques-section,
  .home #destaques .destaques-section {
    padding-bottom: 0 !important;
    margin-bottom: 0 !important;
    min-height: auto !important;
  }
  
  .home #destaques .destaques-container {
    padding-bottom: 0 !important;
    margin-bottom: 0 !important;
  }

  .home #destaques .conquistas-item {
    border-radius: 22px !important;
    padding: clamp(1rem, 4vw, 1.35rem) clamp(1.15rem, 5vw, 1.6rem) !important;
  }

  .home #destaques .destaques-stars {
    margin-top: clamp(1.5rem, 6vw, 2.5rem) !important;
    margin-bottom: clamp(1.5rem, 6vw, 2.5rem) !important;
    position: relative !important;
    z-index: 6 !important;
  }
}

/* Ajuste de largura do card institucional no mobile (pedido referenciado como FAQ) */
@media (max-width: 767px) {
  .home #quem-somos .institucional-new-card {
    max-width: calc(100% - 30px) !important;
  }
}

/* Ajuste dos botões de filtro da mini galeria para 2 por linha no mobile */
@media (max-width: 767px) {
  .home #galeria .mini-galeria-tabs {
    flex-wrap: wrap !important;
    gap: 1rem 0.5rem !important;
    justify-content: center !important;
  }
  
  .home #galeria .mini-galeria-tab {
    width: auto !important;
    flex: 0 0 auto !important;
    min-width: 135px !important;
    max-width: 45% !important;
    text-align: center !important;
    white-space: normal !important;
    word-break: break-word !important;
    padding: 0.5rem !important;
  }
}

/* HOME — centralização de títulos e subtítulos no mobile */
@media (max-width: 767px) {
  .section-header,
  .section-title,
  .section-subtitle,
  .institucional-new-title,
  .mini-galeria-title,
  .faq-title-area,
  .faq-title,
  .new-location-header,
  .new-location-title,
  .new-location-subtitle {
    text-align: center !important;
    margin-left: auto !important;
    margin-right: auto !important;
  }

  .section-header,
  .institucional-new-title,
  .mini-galeria-title,
  .new-location-header,
  .faq-title-area {
    width: min(100% - 4rem, 520px) !important;
    max-width: 520px !important;
    padding-left: 0 !important;
    padding-right: 0 !important;
    display: block !important;
  }

  .section-title,
  .section-subtitle,
  .faq-title,
  .new-location-title {
    max-width: 100% !important;
    line-height: 1.12 !important;
  }

  /* Destaques: título sempre alinhado à esquerda */
  .destaques-header,
  .home #destaques .destaques-header,
  .destaques-title,
  .home #destaques .destaques-title {
    text-align: left !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
    width: 100% !important;
    max-width: 100% !important;
    justify-content: flex-start !important;
  }
}

/* HOME - Mini Galeria: 1 foto por vez no celular (carousel real) */
@media (max-width: 767px) {
  .home #galeria .mini-galeria-carousel {
    overflow: hidden !important;
    width: 100% !important;
    touch-action: pan-y;
  }

  .home #galeria .mini-galeria-slide,
  .home #galeria .mini-galeria-slide--mobile {
    min-width: 100% !important;
    flex-shrink: 0 !important;
    padding-inline: clamp(1rem, 4vw, 1.5rem) !important;
    box-sizing: border-box !important;
  }

  .home #galeria .mini-galeria-grid,
  .home #galeria .mini-galeria-grid--single {
    display: grid !important;
    grid-template-columns: 1fr !important;
    grid-template-rows: auto !important;
    gap: 0 !important;
    width: 100% !important;
    max-width: min(100%, 420px) !important;
    margin-inline: auto !important;
  }

  .home #galeria .mini-galeria-item {
    width: 100% !important;
    aspect-ratio: 4 / 3 !important;
    border-radius: 22px !important;
    overflow: hidden !important;
  }

  .home #galeria .mini-galeria-img {
    width: 100% !important;
    height: 100% !important;
    object-fit: cover !important;
  }

  .home #galeria .mini-galeria-pagination {
    display: flex !important;
    justify-content: center !important;
    align-items: center !important;
    gap: 0.45rem !important;
    margin-top: clamp(0.65rem, 2.5vw, 1rem) !important;
    max-width: 100% !important;
    flex-wrap: nowrap !important;
  }

  .home #galeria .mini-galeria-dot {
    width: 0.55rem !important;
    height: 0.55rem !important;
    border-radius: 999px !important;
    background-color: rgba(7, 22, 44, 0.28) !important;
    border: 0 !important;
    display: block !important;
    transition: width 0.25s ease, background-color 0.25s ease, opacity 0.25s ease !important;
    opacity: 0.85 !important;
    padding: 0 !important;
  }

  .home #galeria .mini-galeria-dot.active {
    width: 1.45rem !important;
    background-color: var(--primary-dark) !important;
    opacity: 1 !important;
  }
}

/* Notebook e acima: 2 colunas widescreen */
@media (min-width: 1024px) {
  .home #galeria .mini-galeria-grid,
  #galeria .mini-galeria-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: clamp(14px, 1.5vw, 20px) !important;
  }

  .home #galeria .mini-galeria-item,
  #galeria .mini-galeria-item {
    aspect-ratio: 2.95 / 1 !important;
  }

  .home #galeria .mini-galeria-img,
  #galeria .mini-galeria-img {
    object-fit: cover !important;
    object-position: center center !important;
  }
}

/* Tablet: 2 colunas, também widescreen */
@media (min-width: 768px) and (max-width: 1023px) {
  .home #galeria .mini-galeria-grid,
  #galeria .mini-galeria-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: clamp(10px, 1.4vw, 14px) !important;
  }

  .home #galeria .mini-galeria-item,
  #galeria .mini-galeria-item {
    aspect-ratio: 2.5 / 1 !important;
  }

  .home #galeria .mini-galeria-img,
  #galeria .mini-galeria-img {
    object-fit: cover !important;
    object-position: center center !important;
  }
}

/* HOME — Localização: FAQ compacto no mobile */
@media (max-width: 767px) {
  #contato.new-location-section {
    padding-top: clamp(2.25rem, 6vw, 3.25rem);
    padding-bottom: clamp(4rem, 12vw, 5.5rem);
    overflow: hidden;
  }

  .home #galeria.section-with-bottom-tab + #contato.new-location-section {
    padding-top: clamp(2.75rem, 7vw, 3.75rem);
  }

  #contato .container-wide {
    width: min(100% - 2rem, 520px);
    margin-inline: auto;
    padding-inline: 0;
  }

  /* Cabeçalho principal da seção */
  #contato .new-location-header {
    text-align: center !important;
    margin-inline: auto;
    margin-bottom: clamp(3rem, 10vw, 4.5rem);
    width: 100% !important;
    max-width: 100% !important;
    padding-left: 0 !important;
    padding-right: 0 !important;
  }

  #contato .new-location-subtitle {
    display: block;
    text-align: center;
    font-size: clamp(0.9rem, 3.4vw, 1.05rem);
    letter-spacing: 0.04em;
    margin-bottom: 0.65rem;
  }

  #contato .new-location-title {
    text-align: center !important;
    font-size: clamp(2rem, 8vw, 2.75rem) !important;
    line-height: 1.1;
    margin-inline: auto;
  }

  /* Grid vira coluna */
  #contato .new-location-grid {
    display: flex !important;
    flex-direction: column !important;
    gap: clamp(2rem, 7vw, 3rem) !important;
    width: 100% !important;
  }

  /* Bloco FAQ */
  #contato .new-location-faq {
    width: 100% !important;
    max-width: 100% !important;
    margin-inline: auto;
    margin-top: 0 !important;
    padding-top: 0 !important;
  }

  #contato .new-location-faq-header {
    align-items: flex-start;
    text-align: left;
    margin-bottom: clamp(1.35rem, 5vw, 2rem);
  }

  #contato .new-location-faq-line {
    width: 72px !important;
    height: 6px !important;
    margin-bottom: 1.4rem;
  }

  #contato .new-location-faq-header h3 {
    font-size: clamp(1.7rem, 7vw, 2.25rem) !important;
    line-height: 1.05 !important;
    text-align: left !important;
    margin: 0 !important;
    padding: 0 !important;
  }

  #contato .new-location-faq-list {
    display: flex !important;
    flex-direction: column !important;
    gap: 0.85rem !important;
    width: 100% !important;
  }

  /* Perguntas compactas */
  #contato .new-location-faq-item {
    width: 100% !important;
    border-radius: 18px !important;
    background: rgba(115, 128, 144, 0.52) !important;
    border: 0 !important;
    overflow: hidden !important;
  }

  #contato .new-location-faq-item summary {
    min-height: 46px !important;
    padding: 0.72rem 1rem !important;
    display: flex !important;
    align-items: center !important;
    justify-content: space-between !important;
    gap: 0.85rem !important;
    font-size: clamp(0.9rem, 3.5vw, 1.05rem) !important;
    line-height: 1.2 !important;
    color: #ffffff !important;
    cursor: pointer !important;
    list-style: none !important;
  }

  #contato .new-location-faq-item summary i {
    font-size: 0.85rem !important;
    flex: 0 0 auto !important;
  }

  #contato .new-location-faq-answer {
    padding: 0 1rem 1rem !important;
    font-size: clamp(0.85rem, 3.3vw, 0.95rem) !important;
    line-height: 1.45 !important;
    color: rgba(255, 255, 255, 0.88) !important;
  }

  /* Botão WhatsApp compacto, sem quebrar texto */
  #contato .btn-whatsapp-location {
    width: fit-content !important;
    max-width: 100% !important;
    min-height: 52px !important;
    margin: clamp(1.4rem, 5vw, 2rem) auto 0 !important;
    padding: 0.85rem 1.45rem !important;
    border-radius: 16px !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 0.75rem !important;
    font-size: clamp(0.95rem, 3.8vw, 1.15rem) !important;
    line-height: 1 !important;
    white-space: nowrap !important;
  }

  #contato .btn-whatsapp-location i {
    font-size: 1.25em !important;
    flex: 0 0 auto !important;
  }

  /* Mapa abaixo do FAQ/botão: centralizado e sem corte do iframe */
  #contato .new-location-map-container {
    width: calc(100% - 48px) !important;
    max-width: 100% !important;
    margin-left: auto !important;
    margin-right: auto !important;
    margin-top: clamp(2.5rem, 8vw, 3.5rem) !important;
    border-radius: 24px !important;
    overflow: hidden !important;
    aspect-ratio: 4 / 3 !important;
    position: relative !important;
    z-index: 5 !important;
    isolation: isolate !important;
    background: #e8eaed !important;
  }

  #contato .new-location-map {
    position: absolute !important;
    /* Offset menor no mobile: esconde o card do Google sem cortar o mapa */
    top: -48px !important;
    left: 0 !important;
    width: 100% !important;
    height: calc(100% + 48px) !important;
    display: block !important;
    border: 0 !important;
    max-width: none !important;
  }

  #contato .map-link-overlay {
    z-index: 6 !important;
  }

  /* Endereço compacto */
  #contato .new-location-address {
    width: calc(100% - 48px) !important;
    margin: clamp(2.5rem, 8vw, 3.5rem) auto 0 !important;
    text-align: justify !important;
  }

  #contato .new-location-address p {
    font-size: clamp(0.86rem, 3.4vw, 1rem) !important;
    line-height: 1.45 !important;
    text-align: justify !important;
    text-align-last: justify !important;
    hyphens: auto !important;
    margin: 0 !important;
  }

  #contato .address-line {
    display: inline !important;
    white-space: normal !important;
  }

  #contato .address-icon-link {
    display: inline-flex !important;
    margin-right: 0.45rem !important;
    vertical-align: middle !important;
  }
}

/* FOOTER MOBILE — versão final com largura completa */
@media (max-width: 767px) {
  .new-footer {
    width: 100%;
    max-width: 100vw;
    overflow-x: hidden !important;
    background-color: var(--primary-dark, #07162c);
  }

  .new-footer,
  .new-footer * {
    box-sizing: border-box;
  }

  .new-footer .container,
  .new-footer-grid,
  .new-footer-bottom .container {
    width: 100% !important;
    max-width: 100% !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
    padding-left: clamp(2rem, 7vw, 3rem) !important;
    padding-right: clamp(2rem, 7vw, 3rem) !important;
    transform: none !important;
  }

  .new-footer-grid {
    display: flex !important;
    flex-direction: column !important;
    align-items: stretch !important;
    gap: clamp(2.8rem, 9vw, 4rem) !important;
    padding-top: clamp(3.5rem, 11vw, 5rem) !important;
    padding-bottom: clamp(3.5rem, 11vw, 5rem) !important;
  }

  .new-footer-col,
  .new-footer-col-1,
  .new-footer-col-2,
  .new-footer-col-3,
  .new-footer-col-top,
  .new-footer-section {
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
  }

  .new-footer-logo {
    display: block !important;
    width: min(100%, 340px) !important;
    max-width: 340px !important;
    height: auto !important;
    object-fit: contain !important;
    margin: 0 auto clamp(2.2rem, 7vw, 3rem) auto !important;
  }

  .new-footer-desc {
    width: 100% !important;
    max-width: 100% !important;
    margin: 0 !important;
    color: #ffffff;
    font-size: clamp(1rem, 3.9vw, 1.18rem) !important;
    line-height: 1.45 !important;
    text-align: left !important;
    white-space: normal !important;
    overflow-wrap: break-word !important;
    word-break: normal !important;
  }

  .new-footer-desc strong {
    font-weight: 800;
  }

  .new-footer-location {
    width: 100% !important;
    max-width: 100% !important;
    display: grid !important;
    grid-template-columns: 42px minmax(0, 1fr) !important;
    gap: 1.1rem !important;
    align-items: flex-start !important;
    margin-top: clamp(2.5rem, 8vw, 3.5rem) !important;
  }

  .new-footer-location i {
    font-size: clamp(1.8rem, 6vw, 2.2rem) !important;
    color: #ffffff;
    line-height: 1;
    margin-top: 0.1rem;
  }

  .new-footer-location p {
    margin: 0 !important;
    color: #ffffff;
    font-size: clamp(1rem, 3.9vw, 1.15rem) !important;
    line-height: 1.35 !important;
    font-weight: 800;
    text-align: left !important;
    white-space: normal !important;
    overflow-wrap: break-word !important;
    word-break: normal !important;
  }

  .new-footer-location span {
    white-space: normal !important;
  }

  .new-footer-title {
    display: flex !important;
    align-items: center !important;
    gap: 0.75rem !important;
    margin: 0 0 clamp(1.2rem, 4vw, 1.7rem) 0 !important;
    color: #ffffff;
    font-size: clamp(1.55rem, 6vw, 2rem) !important;
    line-height: 1.1 !important;
    font-weight: 800 !important;
    letter-spacing: 0.04em;
    text-align: left !important;
    white-space: normal !important;
  }

  .new-footer-title .phi-symbol {
    font-size: 0.95em !important;
    line-height: 1;
  }

  .new-footer-links {
    display: flex !important;
    flex-direction: column !important;
    gap: 0.75rem !important;
    padding: 0 !important;
    margin: 0 !important;
    list-style: none !important;
  }

  .new-footer-links li,
  .new-footer-links a {
    color: #ffffff;
    font-size: clamp(1rem, 3.8vw, 1.15rem) !important;
    line-height: 1.35 !important;
    text-decoration: none;
    white-space: normal !important;
    overflow-wrap: break-word !important;
    word-break: normal !important;
  }

  .new-footer-margin-top {
    margin-top: clamp(2.5rem, 8vw, 3.5rem) !important;
  }

  .new-footer-socials {
    width: 100% !important;
    display: flex !important;
    justify-content: flex-end !important;
    align-items: center !important;
    gap: 0.75rem !important;
    margin-top: clamp(2.5rem, 8vw, 3.5rem) !important;
  }

  .new-footer-socials a {
    width: 30px !important;
    height: 30px !important;
    border-radius: 999px !important;
    border: 1px solid rgba(255, 255, 255, 0.85) !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    color: #ffffff !important;
    font-size: 0.95rem !important;
    text-decoration: none !important;
  }

  .new-footer-bottom {
    width: 100% !important;
    max-width: 100vw !important;
    overflow: hidden !important;
    background-color: rgba(0, 0, 0, 0.18);
    padding-top: clamp(1.4rem, 5vw, 2rem) !important;
    padding-bottom: clamp(1.4rem, 5vw, 2rem) !important;
  }

  .new-footer-bottom p {
    margin: 0 !important;
    text-align: center !important;
    color: #ffffff;
    font-size: clamp(0.85rem, 3.2vw, 0.95rem) !important;
    line-height: 1.4 !important;
    white-space: normal !important;
    overflow-wrap: break-word !important;
  }
}

@media (max-width: 430px) {
  .new-footer .container,
  .new-footer-grid,
  .new-footer-bottom .container {
    padding-left: clamp(1.6rem, 6vw, 2rem) !important;
    padding-right: clamp(1.6rem, 6vw, 2rem) !important;
  }

  .new-footer-logo {
    max-width: 310px !important;
  }

  .new-footer-desc {
    font-size: 1rem !important;
  }

  .new-footer-location p {
    font-size: 1rem !important;
  }

  .new-footer-links li,
  .new-footer-links a {
    font-size: 1rem !important;
  }
}

/* FOOTER MOBILE — respiro lateral +30px */
@media (max-width: 767px) {
  .new-footer .container,
  .new-footer-grid,
  .new-footer-bottom .container {
    padding-left: calc(clamp(2rem, 7vw, 3rem) + 30px) !important;
    padding-right: calc(clamp(2rem, 7vw, 3rem) + 30px) !important;
  }

  .new-footer-logo {
    max-width: 300px !important;
    margin-left: auto !important;
    margin-right: auto !important;
  }

  .new-footer-desc,
  .new-footer-location,
  .new-footer-section,
  .new-footer-links,
  .new-footer-title {
    max-width: 100% !important;
  }

  .new-footer-desc,
  .new-footer-location p,
  .new-footer-links li,
  .new-footer-links a {
    white-space: normal !important;
    overflow-wrap: break-word !important;
    word-break: normal !important;
  }
}

@media (max-width: 430px) {
  .new-footer .container,
  .new-footer-grid,
  .new-footer-bottom .container {
    padding-left: calc(1.8rem + 30px) !important;
    padding-right: calc(1.8rem + 30px) !important;
  }

  .new-footer-logo {
    max-width: 280px !important;
  }
}

/* FOOTER MOBILE — ícone de localização descido 20px */
@media (max-width: 767px) {
  .new-footer-location i {
    margin-top: 20px !important;
  }
}

@media (max-width: 767px) {
  .new-footer-location i {
    margin-top: 30px !important;
  }
}

/* FOOTER MOBILE — posição do ícone de localização (fix real) */
@media (max-width: 767px) {
  .new-footer-location {
    padding-top: 30px !important;
  }

  /* Neutraliza white-space:nowrap inline dos spans */
  .new-footer-location span {
    white-space: normal !important;
    display: inline !important;
  }
}


@media (max-width: 767px) {
  .btn-whatsapp-floating {
    font-size: 0.68rem !important;
    padding: 0.7rem 1.4rem !important;
    white-space: nowrap !important;
  }
  .btn-whatsapp-floating i {
    font-size: 0.95rem !important;
  }
}
