/* Hero */
.hero-copy{
  width:min(1180px, 100%);
}
.hero-actions{
  display:flex;
  flex-wrap:wrap;
  gap:12px;
  margin-top:22px;
}
.hero-actions .hero-link,
.hero-actions .hero-visit{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:46px;
  margin:0!important;
  padding:12px 20px!important;
  border:0!important;
  border-radius:999px;
  font-weight:800;
  line-height:1;
  box-shadow:0 8px 18px rgba(4,24,43,.12);
  transition:transform .2s ease, box-shadow .2s ease, filter .2s ease!important;
}
.hero-actions .hero-link{
  background:rgba(255,255,255,.12);
  color:#fff;
  backdrop-filter:blur(10px);
}
.hero-actions .hero-link:hover,
.hero-actions .hero-visit:hover{
  transform:translateY(-2px);
  box-shadow:0 12px 24px rgba(4,24,43,.18)!important;
  filter:brightness(1.03);
}
.hero-actions .hero-visit{
  color:#fff;
  background:var(--red);
  backdrop-filter:blur(8px);
  box-shadow:0 8px 20px rgba(4,24,43,.22);
}

@media (max-width: 899px){
  .hero-copy{
    left:6vw!important;
    right:6vw!important;
    bottom:6vh!important;
    width:auto!important;
  }
  .hero-actions{
    display:flex;
    flex-direction:row;
    flex-wrap:nowrap;
    align-items:center;
    justify-content:center;
    gap:10px;
  }
  .hero-actions .hero-link,
  .hero-actions .hero-visit{
    width:auto;
    min-width:0;
    max-width:100%;
    padding:12px 18px!important;
    font-size:.92rem!important;
    white-space:nowrap;
  }
  .v23 .mission-topic:nth-child(4) .mission-topic-expanded-image img {
    object-position: 50% 60% !important; /* Equipe docente */
  }

  .v23 .mission-topic:nth-child(5) .mission-topic-expanded-image img {
      object-position: 50% 42% !important; /* Disciplinas autorais */
  }

  .v23 .mission-topic:nth-child(6) .mission-topic-expanded-image img {
      object-position: 50% 66% !important; /* Disciplinas autorais */
  }
}

/* Missão editorial */
.mission-editorial{display:none}
.desktop-break{display:none}

/* Slogan final */
.campaign-slogan .campaign-line{display:block}
.campaign-slogan .campaign-red{color:var(--red)}

@media (min-width:900px){
  /* Hero */
  .hero-copy{
    left:4.5vw!important;
    right:4.5vw!important;
    max-width:none!important;
  }
  .hero h1{
    max-width:none!important;
    white-space:nowrap!important;
    font-size:clamp(4rem,4vw,7.2rem)!important;
    line-height:.9!important;
  }
  .hero-sub{
    max-width:none!important;
    margin-top:18px!important;
  }

  /* Missão */
  .mission-intro{
    min-height:0!important;
    padding:88px 0 30px!important;
  }
  .mission-intro .shell{width:min(1680px,94vw)!important}
  .mission-intro h2{
    max-width:none!important;
    white-space:nowrap!important;
    font-size:clamp(1.9rem,3.5vw,5.25rem)!important;
    line-height:.98!important;
    letter-spacing:-.055em!important;
    text-align:center;
  }
  .mission-intro h2 .age,
  .mission-intro h2 .essence{display:inline!important}

  .mission-lead{
    padding:10px 0 38px!important;
  }
  .mission-lead .shell{
    width:min(1540px,94vw)!important;
  }
  .mission-lead p{
    max-width:none!important;
    width:100%!important;
    white-space:nowrap!important;
    text-align:center!important;
    font-size:clamp(1.2rem,1.55vw,1.65rem)!important;
    line-height:1.35!important;
  }

  .mission-topics{padding:0 0 52px!important}
  .mission-editorial-ready .mission-topic-list{display:none!important}
  .mission-editorial-ready .mission-editorial{
    display:grid;
    grid-template-columns:minmax(0,.95fr) minmax(0,1.05fr);
    gap:46px;
    align-items:center;
    width:min(1420px,92vw);
    margin:0 auto;
    padding:30px;
    border:1px solid rgba(7,55,99,.10);
    border-radius:34px;
    background:var(--blue);
    box-shadow:0 20px 55px rgba(7,55,99,.10);
  }
  .mission-editorial-media{
    aspect-ratio:16/9;
    overflow:hidden;
    border-radius:28px;
    background:#dce8f1;
    box-shadow:
      14px 14px 0 var(--yellow),
      0 18px 38px rgba(7,55,99,.16);
  }
  .mission-editorial-media img{
    width:100%;
    height:100%;
    object-fit:cover;
    transition:opacity .28s ease,transform .34s ease;
  }
  .mission-editorial-media.is-updating img{
    animation:missionImageIn .38s ease both;
  }
  @keyframes missionImageIn{
    from{opacity:.25;transform:translateX(-14px) scale(.99)}
    to{opacity:1;transform:none}
  }
  .mission-editorial-list{
    padding:8px;
    border-radius:24px;
    background:var(--red);
  }
  .mission-editorial-item{
    display:block;
    width:100%;
    padding:12px 14px;
    border:0;
    border-bottom:1px solid rgba(7,55,99,.12);
    border-radius:16px;
    background:transparent;
    color:white;
    text-align:left;
    cursor:pointer;
    transition:color .25s ease,background .25s ease,box-shadow .25s ease,transform .25s ease;
  }
  .mission-editorial-item:last-child{border-bottom:0}
  .mission-editorial-item:hover{
    color:#6f8eaa;
    background:rgba(255,255,255,.68);
  }
  .mission-editorial-title{
    display:flex;
    align-items:flex-start;
    gap:10px;
    font:800 clamp(1.45rem,2vw,2.35rem)/1 "Manrope",Arial,sans-serif;
    letter-spacing:-.045em;
  }
  .mission-editorial-arrow{
    flex:none;
    width:.65em;
    opacity:0;
    transform:translateX(-6px);
    transition:.25s ease;
  }
  .mission-editorial-text{
    display:block;
    max-width:640px;
    max-height:0;
    margin:0 0 0 calc(.65em + 10px);
    overflow:hidden;
    opacity:0;
    color:var(--ink);
    font-size:clamp(.94rem,1vw,1.05rem);
    line-height:1.52;
    text-align:justify;
    text-justify:inter-word;
    transition:max-height .35s ease,opacity .28s ease,margin-top .28s ease;
  }
  .mission-editorial-item.is-active{
    color:var(--red);
    background:#fff;
    box-shadow:0 10px 26px rgba(7,55,99,.10);
    transform:translateX(-4px);
  }
  .mission-editorial-item.is-active .mission-editorial-arrow{
    opacity:1;
    transform:none;
  }
  .mission-editorial-item.is-active .mission-editorial-text{
    max-height:150px;
    margin-top:8px;
    opacity:1;
  }

  .mission-close{
    padding-top:72px!important;
    padding-bottom:96px!important;
  }
  .mission-close .shell{
    width:min(1520px,95vw)!important;
    max-width:none!important;
  }
 .mission-close p{
    max-width:none!important;
    width:100%!important;
    margin:42px auto 38px!important;
    text-align:center!important;
    font-size:2rem!important;
  }
  .desktop-break{display:block}

  /* PADRÃO DE TÍTULOS — DESKTOP */
  .v23 .segments-head .eyebrow,
  .v23 .projects-head h2,
  .v25 .v14-structure .structure-head h2,
  .v23 .results-head h2,
  .partners-title h2,
  .campaign-slogan{
    font-family:"Manrope",Arial,sans-serif!important;
    font-size:clamp(1.95rem,4.5vw,4.5rem)!important;
    font-weight:800!important;
    line-height:.96!important;
    letter-spacing:-.055em!important;
    text-align:center!important;
  }

  /* Mantém o itálico do slogan, mas com a mesma espessura */
  .campaign-slogan em,
  .campaign-slogan strong{
    font-weight:800!important;
  }

  /* MESMO RESPIRO ABAIXO DOS TÍTULOS */
  .v23 .segments-head .eyebrow,
  .v23 .projects-head h2,
  .v25 .v14-structure .structure-head h2{
    margin-bottom:36px!important;
  }

  /* RESULTADOS — evita somar duas margens */
  .v23 .results-head h2{
    margin-bottom:36px!important;
  }

  .v23 .results-sub{
    margin-top:0!important;
  }

  /* PARCERIAS */
  .partners-title{
    margin-bottom:36px!important;
  }

  .partners-title h2{
    font-family:"Manrope",Arial,sans-serif!important;
    font-size:clamp(1.95rem,4.5vw,4.5rem)!important;
    font-weight:800!important;
    line-height:.96!important;
    letter-spacing:-.055em!important;
  }

  /* CTA FINAL */
  .campaign-slogan{
    margin:0!important;
  }

  .final-actions{
    margin-top:36px!important;
  }

  /* PADRÃO DE SUBTÍTULOS — DESKTOP */
  .projects-head p,
  .v25 .v14-structure .structure-sub,
  .v23 .results-sub{
    font-size:clamp(1rem,1.25vw,1.25rem)!important;
    line-height:1.5!important;
  }

  /* O destaque dos 6.400 m² não muda de tamanho */
  .v25 .v14-structure .structure-sub strong{
    font-size:inherit!important;
  }

  /* Trajetória */
.segments{
  padding-bottom:0!important;
}

.segment-stage{
  max-height:23vw!important;
}

.v24 .segment-slide{
  width:min(1080px,80vw)!important;
  height:min(900px,33vw)!important;
  margin-inline:auto!important;
}

.v24 .segment-slide.active{
  display:grid!important;
  grid-template-columns:repeat(2,minmax(0,1fr))!important;
  gap:42px!important;
  align-items:stretch!important;
}


/* FOTO */
.v24 .segment-photo{
  position:relative;
  width:100%!important;
  height:70%!important;
  min-width:0!important;
  margin:0!important;
  aspect-ratio:auto!important;
  overflow:hidden;
}

.v24 .segment-photo img{
  position:absolute;
  inset:0;
  width:100%!important;
  height:100%!important;
  object-fit:cover!important;
}


/* TEXTO */
.v24 .segment-slide p{
  width:100%!important;
  height:70%!important;
  min-width:0!important;
  max-width:none!important;
  margin:0!important;
  padding:34px 38px!important;
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  box-sizing:border-box!important;
  border:1px solid rgba(7,55,99,.12)!important;
  border-radius:20px!important;
  box-shadow:0 12px 30px rgba(4,24,43,.10)!important;
  text-align:justify!important;
  text-justify:inter-word;
  font-size:clamp(1.05rem,1.18vw,1.22rem)!important;
  line-height:1.58!important;
}

  /* Projetos */
  .projects{
    min-height:100svh;
    padding:clamp(72px,8vh,105px) 0!important;
    display:flex;
    flex-direction:column;
    justify-content:center;
  }
  .projects-head{
    width:min(1500px,94vw)!important;
    margin-bottom:38px!important;
  }
  .projects-head p{
    width:100%!important;
    max-width:none!important;
    margin-inline:auto!important;
    white-space:nowrap!important;
    text-align:center!important;
    font-size:clamp(1rem,1.25vw,1.25rem)!important;
    line-height:1.5!important;
  }
  .project-track{
    gap:24px!important;
  }
  .project-card{
    flex:0 0 clamp(380px,23vw,440px)!important;
  }
  .projects .carousel-arrows{
    justify-content:center!important;
    margin-top:18px!important;
  }

  /* Estrutura */
  .v25 .v14-structure{
    min-height:100svh!important;
    padding-top:56px!important;
    padding-bottom:0!important;
    display:flex!important;
    flex-direction:column!important;
  }
  .v25 .v14-structure .structure-head{
    width:min(1200px,92vw)!important;
    margin:0 auto 12px!important;
  }
  .v25 .v14-structure .structure-head h2{
    display:block!important;
    width:100%!important;
    white-space:nowrap!important;
  }
  .v25 .v14-structure .structure-sub{
    max-width:1100px!important;
    margin:0 auto!important;
    padding:24px 24px;
    white-space:normal!important;
    text-align:center!important;
    line-height:1.48!important;
  }
  .v25 .v14-mandala-stage{
    height:clamp(480px,calc(100svh - 245px),650px)!important;
    min-height:480px!important;
    max-height:650px!important;
    margin-top:auto!important;
    overflow:hidden!important;
  }
  .v25 .v14-mandala-rotor{
    width:min(1700px,86vw)!important;
    left:50%!important;
    right:auto!important;
    top:50px!important;
    translate:-50% 0;
  }

  /* Resultados */
  .v14 .results-track{
    justify-content:flex-start!important;
    overflow-anchor:none;
  }
  .v23 .results-head h2{
    flex-direction:row!important;
    justify-content:center!important;
    gap:.2em!important;
    white-space:nowrap!important;
  }
  .v23 .results-head .results-line{display:inline!important}
  .results-track{
    gap:18px!important;
    max-height: 35vw;
    overflow-anchor:none;
  }
  .result-card{
    flex-basis:clamp(320px,26vw,460px)!important;
    aspect-ratio:4/4.7!important;
  }

  /* Depoimentos */
  .v15 .testimonials-inner{
    width:100%!important;
    margin:0!important;
    display:grid!important;
    grid-template-columns:
      minmax(0,1fr)
      auto
      minmax(0,1fr)
      auto
      minmax(0,1fr)!important;
    grid-template-areas:
      ". titulo . cards ."
      ". titulo . dica .";
    column-gap:0!important;
    align-items:center!important;
    text-align:center!important;
  }


  /* SELO */
  .v15 .testimonials-head{
    grid-area:titulo;
    display:flex;
    align-items:center;
    justify-content:center;
    min-width:0;
    height:100%;
  }

  .v15 .testimonials-head h2{
    display:none!important;
  }

  /* Caixa que representa APENAS o círculo visível */
  .v15 .testimonials-seal-wrap{
    width:min(640px,34vw);
    aspect-ratio:1 / 1;
    position:relative;
    overflow:hidden;
    flex:none;
  }


  /* Recorta o espaço branco existente no PNG */
  .v15 .testimonials-seal{
    display:block!important;
    width:124.3%!important;
    max-width:none!important;
    height:auto!important;
    margin:0!important;
    object-fit:contain!important;
    transform:translate(-9.63%,-0.72%);
  }

  /* SELO — gira do verso para a frente */
  .v15 .testimonials-head{
    perspective:1400px;
  }

  .v15 .testimonials-seal-wrap.reveal{
    opacity:0;

    transform:
      perspective(1400px)
      rotateY(180deg)
      scale(.94);

    transform-origin:center;
    transition:none!important;
  }

  .v15 .testimonials-seal-wrap.reveal.in{
    animation:virarSelo 1.80s cubic-bezier(.22,.72,.22,1) both;
  }

  @keyframes virarSelo{

    0%{
      opacity:0;
      transform:
        perspective(1400px)
        rotateY(180deg)
        scale(.94);
    }

    20%{
      opacity:1;
    }

    65%{
      transform:
        perspective(1400px)
        rotateY(18deg)
        scale(1.015);
    }

    82%{
      transform:
        perspective(1400px)
        rotateY(-5deg)
        scale(.997);
    }

    100%{
      opacity:1;
      transform:
        perspective(1400px)
        rotateY(0deg)
        scale(1);
    }
  }

  /* CARDS À DIREITA */
  .v15 .testimonials{
    min-height:100svh!important;
    display:flex!important;
    align-items:center!important;
  }
  .v15 .testimonial-stack-wrap{
    grid-area:cards;
    height:clamp(540px,72svh,690px)!important;
    width:auto!important;
    aspect-ratio:1229/1536;
    margin:0!important;
    justify-self:center;
  }

  /* "Arraste ou toque..." fica embaixo dos cards */
  .v15 .testimonial-hint{
    grid-area:dica;
    width:min(520px,34vw);
    margin:36px 0 0!important;
    justify-self:center;
    text-align:center!important;
  }

  /* Direção */
  .direction{
    padding:72px 0 82px!important;
  }

  .direction-inner{
    width:100%!important;
    max-width:none!important;
    margin:0!important;
    padding:0!important;
    box-sizing:border-box!important;
    display:grid!important;
    grid-template-columns:
      minmax(28px,1fr)
      max-content
      minmax(28px,1fr)
      auto
      minmax(28px,1fr)
      auto
      minmax(28px,1fr)!important;
    align-items:center!important;
  }

  /* FRASE */
  .direction-copy{
    grid-column:2;
    min-width:0;
    display:flex;
    justify-content:center;
  }
  .direction-copy blockquote{
    width:max-content!important;
    max-width:none!important;
    margin:0!important;
    padding:0!important;
    font-size:clamp(1.75rem,2.55vw,3rem)!important;
    line-height:1.05!important;
    letter-spacing:-.055em!important;
    color:var(--blue)!important;
    text-align:left!important;
  }

  /* Cada span do HTML já determina uma linha */
  .direction .quote-text{
    display:block!important;
  }

  .direction .quote-line{
    display:block!important;
    white-space:nowrap!important;
  }

  /* ASPAS DENTRO DA FRASE */
  .direction .quote-open,
  .direction .quote-close{
    position:static!important;
    display:inline!important;
    color:var(--yellow)!important;
    font-size:1.2em!important;
    font-weight:900!important;
    line-height:1!important;
    vertical-align:.02em!important;
  }

  .direction .quote-open{
    margin-right:.10em!important;
  }

  .direction .quote-close{
    margin-left:.10em!important;
  }

  .director-portraits{
    display:contents!important;
  }

  .director-portraits .director-person:nth-child(1){
    grid-column:4;
  }

  .director-portraits .director-person:nth-child(2){
    grid-column:6;
  }

  .director-person{
    position:relative;
    max-width:none!important;
    width:100%!important;
    text-align:center;
  }

  .director-person::before{
    content:"";
    position:absolute;
    z-index:0;
    width:clamp(170px,12vw,220px)!important;
    height:clamp(170px,12vw,220px)!important;
    left:50%;
    top:14px;
    border-radius:50%;
    background:rgba(235,191,51,.22);
    transform:translateX(-42%);
  }

  .director-person .portrait{
    position:relative;
    z-index:1;
    width:220px!important;
    height:220px!important;
    aspect-ratio:1 / 1!important;
    overflow:hidden!important;
    margin:0 auto 18px!important;
    border-radius:50%!important;
    box-shadow:
      0 0 0 10px rgba(255, 196, 3, 0.14),
      0 18px 38px  #ffc40098!important;
  }

  .director-person .portrait img{
    width:100%!important;
    height:100%!important;
    object-fit:cover!important;
    border-radius:50%!important;
  }

  .director-person figcaption{
    position:relative;
    z-index:1;
  }

  /* Parceiros */
  .partners-title{
    margin-bottom:clamp(64px,5vw,92px)!important;
  }
  .partner-track{
    display:flex!important;
    width:max-content!important;
    gap:64px!important;
    padding-left:0!important;
    animation:partnerMoveCustom 34s linear infinite!important;
  }
  .partner-sequence{
    display:flex;
    align-items:center;
    gap:64px;
    flex:none;
  }
  @keyframes partnerMoveCustom{
    to{transform:translateX(calc(-50% - 32px))}
  }

  /* CTA final */
.campaign-slogan{
  display:block!important;
}
  .campaign-slogan .campaign-line{
    display:block!important;
    white-space:nowrap!important;
  }
}

@media (max-width:899px){
  .hero-actions{gap:10px}
  .hero-actions .hero-link,
  .hero-actions .hero-visit{
    min-height:44px;
    padding:11px 16px!important;
    font-size:.9rem!important;
  }
  .mission-intro h2 .essence{display:inline!important}
  .campaign-slogan{
    display:block!important;
    text-align:center!important;
  }
  .campaign-slogan .campaign-line{
    display:block!important;
    white-space:normal!important;
  }
}

@media (min-width:761px) and (max-width:1240px){
  .direction-inner{
    width:min(1120px,94vw)!important;
    display:grid!important;
    grid-template-columns:minmax(0,1.1fr) minmax(0,.5fr) minmax(0,.5fr)!important;
    gap:clamp(14px,2vw,24px)!important;
  }
  .direction-copy{
    grid-column:1!important;
  }
  .direction-copy blockquote{
    box-sizing:border-box!important;
    width:100%!important;
    max-width:none!important;
    padding:clamp(18px,2.5vw,30px)!important;
    font-size:clamp(1.55rem,2.8vw,2.2rem)!important;
  }
  .direction .quote-line{
    white-space:normal!important;
  }
  .director-portraits{
    display:contents!important;
  }
  .director-portraits .director-person:nth-child(1){
    grid-column:2!important;
  }
  .director-portraits .director-person:nth-child(2){
    grid-column:3!important;
  }
  .director-person::before{
    width:min(220px,22vw)!important;
    height:min(220px,22vw)!important;
  }
  .director-person .portrait{
    width:min(220px,22vw)!important;
    height:min(220px,22vw)!important;
  }
}
