header .logo-desktop,header .logo-mobile-menu{width:160px;margin:1rem 0}

/* FOOTER */
footer{background-color:var(--primary-color); margin-top: 3rem;}
footer .logo-desktop{max-width:200px; filter: brightness(0) invert(1);}
footer h3{margin-top:0;font-size:1.125rem;color:var(--light)}
footer .footer__nav li a:not(.btn){display:block;padding:5px 0;font-size:.875rem;color:var(--light);transition:.3s}
footer .footer__nav li a i{font-size:.625rem}
footer .footer__nav li a:hover{opacity: .8;}
footer .address :is(span,a):not(.btn){color:var(--light);font-size:.875rem;line-height:25px;transition:.3s}
footer .address a:not(.btn):hover{opacity: .8; color: var(--light);}

.copyright-footer .btn.selos { min-height: unset; }
@media screen and (max-width: 992.05px) {
  footer .social { justify-content: center; }
}

.card.card--23{all:unset;box-sizing:border-box;display:flex;align-items:flex-start;justify-content:space-between;flex-flow:column nowrap;gap:1rem;background-color:var(--dark);background-image:linear-gradient(-45deg,var(--dark),var(--grey)),var(--card-background);background-size:cover;background-repeat:no-repeat;background-position:center;background-blend-mode:multiply,normal;border-radius:1rem;padding:1rem;position:relative;height:100%}
.card.card--23:focus-within,.card.card--23:hover{box-shadow:0 0 0 2px var(--secondary-color)}
.card.card--23 .card__title{color:#fff;font-size:1.25rem;text-shadow:0 0 .25rem var(--dark);margin:0;min-height:calc(1.25rem * 2 * 1.3)}
.card.card--23 .card__link{z-index:1;min-height:44px;min-width:44px;display:inline-flex;align-items:center;justify-content:center;flex-flow:row nowrap;padding:.5rem .75rem;font-size:.875rem;text-transform:uppercase;transition:var(--transition);color:var(--light);font-weight:600;border:2px solid currentColor;border-radius:99px}
.card.card--23 .card__link>span{width:0;max-width:fit-content;opacity:0;transition:var(--transition)}
.card.card--23 .card__link:focus>span,.card.card--23 .card__link:hover>span{width:100px;opacity:1;margin-right:.5rem}
.card.card--23 .card__link::before{content:"";display:block;width:100%;height:100%;position:absolute;left:0;top:0;z-index:-1;backface-visibility:visible}
.card.card--23 .card__link:focus,.card.card--23 .card__link:hover{border-color:var(--primary-color);background-color:var(--primary-color)}

.shadow-19{box-shadow:rgba(50,50,93,.25) 0 2px 5px -1px,rgba(0,0,0,.3) 0 1px 3px -1px}

.title-subtitle{margin-bottom:0}
.title-subtitle span{display:block;font-size:.9rem;color:#000;line-height:1rem;letter-spacing:.25rem;text-transform:uppercase}

/* ================= CLIENTES ================= */
.clientes .clientes__item{display:grid;place-items:center;padding:1rem;border:1px solid var(--bs-border-color);border-radius:var(--bs-border-radius);overflow:hidden}
.clientes .clientes__item img{width:100%;aspect-ratio:1/1;object-fit:contain;margin:0 auto;opacity:.75;border-radius:var(--bs-border-radius-sm);transition:opacity var(--transition)}
.clientes .clientes__item:hover img{opacity:1}

/* ================= DEPOIMENTOS ================= */
.testimonial .testimonial-author-image {
  width: 100%;
  max-width: 64px;
  aspect-ratio: 1/1;
  object-fit: cover;
  border-radius: 999px;
}


/* ======================= CONTATO ======================== */
.contato__content label {
      display: inline-block;
      max-width: 100%;
      margin-bottom: 0;
      font-weight: 700;
      color: white;
  }

  .contato.contato--02 {
    padding: clamp(2rem, 3vw, 3.75rem) .75rem;
    background-color: var(--dark, #080808);
    background-image: linear-gradient(#0009, #0009), var(--background);
    background-position: center;
    background-attachment: fixed;
    background-size: cover;
  }

  .title,
  .title-lead {
    color: var(--light, #f0f0f0);
    text-align: left;
    line-height: normal;
    text-transform: uppercase;
  }

  .title {
    font-size: 2rem;
    font-weight: 600;
  }

  .title-lead {
    font-size: 1.25rem;
    letter-spacing: 6px;
  }

  .contato.contato--02 .contato__content {
    display: grid;
    align-items: center;
    grid-template-columns: 1fr;
    gap: 2rem;
    padding: 2rem 0;
  }

  .contato.contato--02 .contato__form {
    display: flex;
    flex-flow: column nowrap;
    gap: .5rem;
  }

  .contato.contato--02 .contato__form :is(input, select, textarea) {
    display: block;
    min-height: 3rem;
    padding: .75rem 1.25rem;
    color: var(--light, #f0f0f0);
    font-size: 1rem;
    font-family: inherit;
    font-weight: normal;
    border-radius: 0.625rem;
    border: unset;
    background-color: var(--light);
    margin-bottom: 5px;
  }

  .contato.contato--02 .contato__form :is(input, select, textarea)::placeholder {
    color: inherit;
    opacity: .5;
  }

  .contato.contato--02 .contato__form .form__submit {
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: 3rem;
    gap: .625rem;
    padding: .75rem 1.25rem;
    color: #FFF;
    font-family: inherit;
    font-size: .875rem;
    font-weight: 600;
    letter-spacing: 1px;
    text-transform: uppercase;
    border: unset;
    border-radius: .825rem;
    background-image: linear-gradient(90deg, rgba(230,61,37,1) 0%, rgba(206,43,55,1) 78%);
    transition: .3s ease-in-out;
  }

  .contato.contato--02 .contato__form .form__submit:hover,
  .contato.contato--02 .contato__form .form__submit:focus {
    background-color: var(--primary-color-dark, #006290);
  }
.contato__address{
  background-color: white;
  height: 100%;
  padding: 30px;
  border-radius: 15px;
}
.contato__address div{
  padding: 7px 0;
}
.contato__address div span{
  font-size: 17px;
}
.contato__address div a{
  color: #000000;
  font-size: 17px;
}
.contato__address div i{
  color: #302c8f;
}
  .contato.contato--02 .contato__address .address__item {
    display: flex;
    flex-flow: column nowrap;
    align-self: stretch;
    align-items: center;
    justify-content: center;
    gap: 10px;
    padding: 24px;
    text-align: center;
    border-radius: 20px;
    border: 1px solid var(--Black-10, #FAFAFA);
  }

  .contato.contato--02 .contato__address .address__item>i {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 2rem;
    height: 2rem;
    color: #FFF;
    font-size: 1.75rem;
  }

  .contato.contato--02 .contato__address .address__item :where(strong, span, a) {
    color: var(--light, #f0f0f0);
    font-size: 1.125rem;
    line-height: 1.5;
    transition: color .3s ease-in-out;
  }

  .contato.contato--02 .contato__address a:hover,
  .contato.contato--02 .contato__address a:focus-visible {
    color: var(--primary-color, #0096dd);
  }

  .contato.contato--02 .contato__address a:focus-visible {
    text-decoration: underline;
  }

  .contato.contato--02+.contato__map {
    display: block;
    width: 100%;
    min-height: 400px;
  }

  @media screen and (min-width: 960px) {
    .contato.contato--02 .contato__content {
      grid-template-columns: repeat(2, 1fr);
    }
  }
  .mapa-home{
    width: 100%;
    height: 180px;
  }
  .red{
    color: red;
  }

/* =============================================
   BANNER COM VÍDEO DE FUNDO (iframe YouTube)
   ============================================= */

.banner {
    position: relative;
    width: 100%;
    min-height: 740px;
    overflow: hidden;
    display: flex;
    align-items: center;
}

/* ── Iframe de fundo ── */
.banner__video {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);

    /* Garante cobertura total mantendo proporção 16:9 */
    width: 177.78vh;   /* 100vh * (16/9) */
    height: 56.25vw;   /* 100vw * (9/16) */
    min-width: 100%;
    min-height: 100%;

    border: none;
    pointer-events: none; /* impede interação com o iframe */
    z-index: 0;
}

/* ── Overlay com gradiente lateral ── */
.banner__overlay {
    position: absolute;
    inset: 0;
    z-index: 1;

    background: linear-gradient(
        to right,
        rgba(255, 255, 255, 0.88) 0%,
        rgba(255, 255, 255, 0.88) 40%,
        rgba(255, 255, 255, 0.88) 70%,
        rgba(255, 255, 255, 0.88) 100%
    );

    display: flex;
    align-items: center;
    width: 100%;
    height: 100%;
}

/* ── Conteúdo do banner ── */
.banner__overlay .container {
    position: relative;
    z-index: 2;
    width: 100%;
}

.banner__title {
    font-size: clamp(1.8rem, 4vw, 3rem);
    font-weight: 800;
    line-height: 1.15;
    color: var(--color);
    margin-bottom: 1rem;
    text-transform: uppercase;
    letter-spacing: -0.02em;
}

.banner__title strong,
.banner__title span {
    color: var(--primary-color, #2a2abf);
}

.banner__overlay p {
    font-size: clamp(0.95rem, 1.5vw, 1.1rem);
    color: #333;
    max-width: 520px;
    line-height: 1.65;
    margin-bottom: 2rem;
}

/* ── Responsivo ── */

/* Tablet */
@media (max-width: 991px) {
    .banner {
        height: 80vh;
        min-height: 480px;
    }
    .banner__overlay {
        background: linear-gradient(
            to bottom,
            rgba(255, 255, 255, 0.92) 50%,
            rgba(255, 255, 255, 0.3) 100%
        );
        align-items: flex-end;
        padding-bottom: 2rem;
    }
}

/* Mobile: esconde o iframe e usa imagem de fallback */
@media (max-width: 767px) {
    .banner {
        height: auto;
        min-height: 100svh;
        background: url('../imagens/banner-fallback.webp') center/cover no-repeat;
    }

    .banner__video {
        display: none;
    }

    .banner__overlay {
        position: relative;
        background: linear-gradient(
            to bottom,
            rgba(255,255,255,0.95) 0%,
            rgba(255,255,255,0.7) 100%
        );
        padding: 80px 0 40px;
        align-items: flex-start;
    }

    .banner__title {
        font-size: 1.7rem;
    }
}

/* WHATSAPP BUTTON */
@keyframes whatsAnimation {
    0% {
        transform: scale(0.5);
        opacity: 1;
    }
    30% {
        transform: scale(0.5); /* pausa no início */
        opacity: 1;
    }
    70% {
        transform: scale(1);
        opacity: 0.4;
    }
    100% {
        transform: scale(1.2);
        opacity: 0;
    }
}
.wppButton::before{
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    border-radius: 50%;
    border: 6px solid #5fa248;
    animation: whatsAnimation 2.5s ease-in-out infinite;
}

/* BOX */
.box-form{
  background-color: var(--light);
  padding: 30px 30px 30px 30px;
  box-shadow: 0px 0px 45px 0px rgba(0, 0, 0, 0.24);
  border-radius: 16px;
}
.box-form :is(input, textarea, select){
  width: 100%;
  border-radius: 10px;
  border: 1px solid #cac8c8;
  padding: 12px 16px;
}

/* INSTITUCIONAL */
.institucional__image{
    object-fit: contain;
}

.card-trabalho{
    display: flex;
    flex-direction: column;
    align-items: center;
    background-color: var(--background, #fff);
    padding: 30px;
}
.card-trabalho__icon{
    border: 2px solid var(--primary-color);
    border-radius: 50%;
    width: 100px;
    height: 100px;
    display: flex;
    justify-content: center;
    align-items: center;
}
.card-trabalho__icon svg{
    height: 50px;
}

.cliente-img{
    width: 100%;
    height: 340px;
    object-fit: cover;
    transition: all 0.3s ease;
}
.cliente-img:hover{
    filter: brightness(0.5);
}
.cliente-video{
    width: 100%;
    height: 100%;
}

.testimonial .card-footer{
    background-color: transparent;
    border: 0;
}
.testimonial-name{
    color: var(--primary-color);
    font-style: normal;
}

.aluno-img{
    width: 100%;
    height: 240px;
    object-fit: cover;
    transition: all 0.3s ease;
}
.aluno-img:hover{
    filter: brightness(0.5);
}


.box{
    background: var(--light);
    padding: 40px;
}

.box--base{
    background: var(--background, var(--light));
    padding: 30px;
}
.square{
    background: var(--background);
    padding: 24px;
}

/* SERVIÇOS */
.card-thumb{
    width: 100%;
    height: 300px;
    border-radius: 12px;
    padding: 24px;
    background: var(--background);
    background-position: center center;
    background-repeat: no-repeat;
    background-size: cover;
}


/* HEADER */
.navbar-expand-lg .navbar-nav .nav-link{
    color: #7a7a7a;
    font-weight: 600;
    padding-left: .8rem;
    padding-right: .8rem;
}
.navbar-expand-lg .navbar-nav .nav-link.active, .navbar-expand-lg .navbar-nav .nav-link:hover{
    color: var(--primary-color);
}
@media (max-width: 1400px){
    .navbar-expand-lg .navbar-nav .nav-link{
        padding-left: .4rem;
        padding-right: .4rem;
        font-size: 15px;
    }
}
@media (max-width: 765px){
    .hide-mobile{
        display: none;
    }
}


/* UTILS */
.bg {
    background: var(--background);
}
.bg-fixed{
    background-attachment: fixed !important;
}

.bg-center {
    background-position: center center;
}

.bg-cover {
    background-size: cover;
}

.bg-no-repeat {
    background-repeat: no-repeat;
}

.my-8 {
    margin-top: 8px;
    margin-bottom: 8px;
}

.mt-10 {
    margin-top: 10px;
}

.mt-20 {
    margin-top: 20px;
}

.mt-40 {
    margin-top: 40px;
}

.mb-10 {
    margin-bottom: 10px;
}

.mb-20 {
    margin-bottom: 20px;
}

.mb-40 {
    margin-bottom: 40px;
}

.fs-12 {
    font-size: 0.75rem;
}

.fs-13 {
    font-size: 0.8125rem;
}

.fs-14 {
    font-size: 0.875rem;
}

.fs-16 {
    font-size: 1rem;
}

.fs-17 {
    font-size: 1.0625rem;
}

.fs-18 {
    font-size: 1.125rem;
}

.fs-20 {
    font-size: 1.25rem;
}
.fs-22{
    font-size: 1.375rem;
}
.fs-24 {
    font-size: 1.5rem;
}

.fs-28 {
    font-size: 1.75rem;
}

.fs-30 {
    font-size: 1.875rem;
}

.fs-32 {
    font-size: 2rem;
}

.fs-38 {
    font-size: 2.375rem;
}

.fs-40 {
    font-size: 2.5rem;
}
.fs-42{
    font-size: 2.625rem;
}

.pt-30 {
    padding-top: 30px;
}
.py-6{
    padding-top: 4rem;
    padding-bottom: 4rem;
}

.my-0 {
    margin-top: 0;
    margin-bottom: 0;
}

.my-8 {
    margin-top: 8px;
    margin-bottom: 8px;
}

.my-40 {
    margin-top: 40px;
    margin-bottom: 40px;
}

.bg {
    background: var(--background);
}
.bg-cta{
    background: var(--background);
    border-radius: 16px;
}

.bg-center {
    background-position: center center;
}

.bg-cover {
    background-size: cover;
}

.bg-no-repeat {
    background-repeat: no-repeat;
}

.fw-300 {
    font-weight: 300;
}

.fw-400 {
    font-weight: 400;
}

.fw-500 {
    font-weight: 500;
}

.fw-600 {
    font-weight: 600;
}

.fw-700 {
    font-weight: 700;
}

.fw-900 {
    font-weight: 900;
}

.br-0{
  border-radius: 0;
}

.btn-gradient-1{
  background: linear-gradient(90deg, rgba(230,61,37,1) 0%, rgba(206,43,55,1) 78%);
  color: var(--light);
  border-radius: 30px;
  transition: all 0.3s ease;
}
.btn-gradient-1:hover{
  color: var(--light);
  transform: scale(0.95);
}

.btn-primary:hover{
    background-color: var(--primary-color-dark);
}
.btn-secondary:hover{
    background-color: var(--secondary-color-light);
    border-color: var(--secondary-color-light);
    color: var(--light);
}
.btn-whats{
    background-color: #61ce70;
    color: var(--light);
    font-weight: 700;
}
.btn-whats:hover{
    background-color: #61ce70;
    color: var(--light);
}

.section-decoration svg{
    width: 100%;
    height: 40px;
    object-fit: contain;
    transform: rotateY(180deg) rotateX(180deg);
}

.btn-secondary{
    color: var(--light);
}
.btn:hover{
    transform: scale(1.06);
}

.list-angle li{
    list-style: none;
    position: relative;
    font-size: 1.125rem;
}
.list-angle li::before{
    content: '\f105';
    font-family: fontAwesome;
    margin-right: 10px;
}

.text-rotate {
    display: inline-block;
    position: relative;
}

.text-rotate__word {
    display: inline-block;
    opacity: 0;
    position: absolute;
    left: 0;
    white-space: nowrap;
}

.text-rotate__word.active {
    opacity: 1;
    position: relative;
}

/* Cada letra */
.text-rotate__letter {
    display: inline-block;
    transition: transform 0.4s ease, opacity 0.4s ease;
}

/* Saindo */
.text-rotate__word.out .text-rotate__letter {
    transform: translateY(-20px) rotateX(90deg);
    opacity: 0;
}

/* Entrando */
.text-rotate__word.in .text-rotate__letter {
    transform: translateY(20px) rotateX(-90deg);
    opacity: 0;
}

/* Visível */
.text-rotate__word.active .text-rotate__letter {
    transform: translateY(0) rotateX(0);
    opacity: 1;
}