/* ================================
   GLOBAL
   ================================ */

:root{
  --bg:#FFFFFF;
  --surface:#F8F8F8;
  --text:#000000;
  --primary:#FF6A00;
  --accent:#000000;
  --font: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI',
          Roboto, Oxygen, Ubuntu, Cantarell, 'Helvetica Neue', Arial, sans-serif;
  --font-size:14px;
  --nav-h:63px;
}

*,
*::before,
*::after{
  margin:0;
  padding:0;
  box-sizing:border-box;
}

html, body{
  font-family:var(--font);
  font-size:var(--font-size);
  line-height:1.6;
  color:var(--text);
  background-color:var(--bg);
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  color: #111;
  font-weight: 400;
}

.heading-font{
  font-weight:700;
  line-height:1.1;
  color:#111111;
  margin-top:0px;
}

.heading-font2{
  font-weight:700;
  line-height:1.1;
  color:#fff;
  margin:0;
}

.main-wrapper{
  width:100%;
  height:100%;
  overflow-y:auto;
  overflow-x:hidden;
}

/* ================================
   NAVBAR
   ================================ */

.navbar{
  position:fixed;
  top:0;
  left:0;
  right:0;
  z-index:1000;

  /* Glass (fora de foco / topo) - MAIS TRANSPARENTE */
  background: rgba(255,255,255,0.25);
  backdrop-filter: blur(16px);
  -webkit-backdrop-filter: blur(16px);
  border-bottom:1px solid rgba(0,0,0,0.06);

  transition:
    background .22s ease,
    box-shadow .22s ease,
    border-color .22s ease,
    backdrop-filter .22s ease;
}

/* Quando rolar (foco) fica mais “sólido” e elegante */
.navbar.scrolled{
  background: rgba(255,255,255,0.92);
  border-bottom:1px solid rgba(0,0,0,0.10);
  box-shadow:0 8px 30px rgba(0,0,0,.10);
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
}

/* Ao passar o mouse no menu (quando NÃO está scrolled), volta para branco */
.navbar:not(.scrolled):hover{
  background: rgba(255,255,255,0.92);
  border-bottom:1px solid rgba(0,0,0,0.10);
  box-shadow:0 8px 30px rgba(0,0,0,.10);
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
}

/* Fallback (caso blur não funcione em algum browser) */
@supports not ((backdrop-filter: blur(1px)) or (-webkit-backdrop-filter: blur(1px))){
  .navbar{ background: rgba(255,255,255,0.92); }
  .navbar:not(.scrolled){ background: rgba(255,255,255,0.85); }
}

.nav-container{
  max-width:1400px;
  margin:0 auto;

  /* Altura 30% menor e links com 100% de altura */
  min-height: var(--nav-h);
  padding: 0 1.4rem;

  display:flex;
  justify-content:space-between;
  align-items:stretch;
}

.nav-logo{
  align-self:center;
  display:flex;
  align-items:center;
  gap:.75rem;
  font-weight:700;
  font-size:1.25rem;
  color:var(--text);
  text-decoration:none;
}

.nav-logo-icon{
  width:42px;
  height:42px;
  background: transparent;
  border-radius:50%;
  display:flex;
  align-items:center;
  justify-content:center;
  overflow:hidden;
}

.nav-logo-icon img{
  width:63px;
  height:63px;
  object-fit:contain;
  display:block;
}

.nav-menu{
  display:flex;
  gap:0;                    /* tile ocupa tudo, então sem gap */
  list-style:none;

  align-items:stretch;       /* 100% da altura do navbar */
  align-self:stretch;
}

.nav-menu li{
  display:flex;
  height:100%;
}

/* Link vira “tile” (quadrado) com hover cobrindo tudo */
.nav-link{
  color:var(--text);
  text-decoration:none;
  font-weight:600;
  font-size:.95rem;

  /* ocupa 100% da altura do navbar */
  display:flex;
  align-items:center;
  height:100%;

  /* tile quadrado no hover */
  padding:0 .95rem;
  border-radius:0;

  position:relative;
  isolation:isolate;
  transition:color .2s ease, transform .2s ease;
}

.nav-link::before{
  content:'';
  position:absolute;
  inset:0;
  z-index:-1;
  border-radius:0;

  background: rgba(255,106,0,0.10);
  border:1px solid rgba(255,106,0,0.22);

  opacity:0;
  transform:scale(.985);
  transition:opacity .2s ease, transform .2s ease, background .2s ease, border-color .2s ease, box-shadow .2s ease;
}

.nav-link:hover,
.nav-link:focus-visible{
  color:#FFFFFF;
}

.nav-link:hover::before,
.nav-link:focus-visible::before{
  opacity:1;
  transform:scale(1);
  background: var(--primary);
  border-color: var(--primary);
  box-shadow:0 10px 24px rgba(255,106,0,.22);
}

.nav-link:active{
  transform: translateY(1px);
}

/* Mobile menu dropdown com o mesmo “vidro” */
.mobile-menu-btn{
  display:none;
  background:none;
  border:none;
  cursor:pointer;
  padding:.5rem;
}

.mobile-menu-btn span{
  display:block;
  width:25px;
  height:2px;
  background:var(--text);
  margin:5px 0;
  transition:.3s;
}

.mobile-nav{
  display:none;
  position:fixed;
  top: var(--nav-h);
  left:0;
  right:0;

  background: rgba(255,255,255,0.92);
  backdrop-filter: blur(16px);
  -webkit-backdrop-filter: blur(16px);

  border-bottom:1px solid rgba(0,0,0,0.10);
  padding:2rem;
  box-shadow:0 16px 40px rgba(0,0,0,.12);
}

.mobile-nav.active{
  display:block;
}

.mobile-nav-list{
  list-style:none;
  display:flex;
  flex-direction:column;
  gap:1.5rem;
}

/* ================================
   HERO / INÍCIO
   ================================ */

#inicio{
  background-image: url("/static/img/capa4.jpg");
  background-size: cover;
  background-position: center;
  background-attachment: fixed;
  position: relative;
  scroll-margin-top:var(--nav-h);
}

#inicio::before{
  content:"";
  position:absolute;
  inset:0;
  background: linear-gradient(
    135deg,
    rgba(0,0,0,1),
    rgba(255,86,0,0)
  );
}

#iniciado{
  height: 200px !important;
  background-image: url("/static/img/capa_index.jpg");
  background-size: cover;
  background-position: center;
  background-attachment: fixed;
  position: relative;
  scroll-margin-top:var(--nav-h);
  border:0px solid red;
}

#iniciado::before{
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(
    135deg,
    rgba(0,0,0,1),
    rgba(255,86,0,0)
  );
  z-index: 1;
}

#iniciado > *{
  position: relative;
  z-index: 2;
}

/* =========================================
   FIX: #iniciado com altura fixa (não 100vh)
   ========================================= */
#iniciado.hero{
  min-height: 650px !important; /* mata o 100vh da classe .hero */
  height: 650px !important;     /* garante altura fixa */
  padding-top: 0 !important;    /* remove paddings gigantes do hero */
  padding-bottom: 0 !important;
  display: flex;
  align-items: center;
  justify-content: center;
  overflow: hidden;             /* garante overlay certinho */
}

/* opcional: se quiser o conteúdo um pouco abaixo do navbar */
#iniciado .hero-content{
  padding-top: var(--nav-h);
}

.hero{
  min-height:100vh;
  display:flex;
  align-items:center;
  justify-content:center;
  background-size:cover;
  background-position:center;
  position:relative;
  padding-top:calc(var(--nav-h) + 3rem);
  padding-right:2rem;
  padding-bottom:4rem;
  padding-left:2rem;
}

.hero-content{
  max-width:1400px;
  margin:0 auto;
  text-align:center;
  color:#FFFFFF;
  position:relative;
  z-index:1;
}

.hero-title{
  font-size:clamp(1.5rem, 4vw, 4rem);
  margin-bottom:1.5rem;
  animation:fadeInUp 1s ease-out;
}

.hero-subtitle{
  font-size:clamp(1.1rem, 2vw, 1.5rem);
  margin-bottom:3rem;
  max-width:800px;
  margin-left:0;
  font-weight:300;
  animation:fadeInUp 1s ease-out .2s backwards;
}

#hero-subtitles{
  margin-bottom:2rem;
  float:left;
  max-width:400px;
  color: #fff;
  font-weight:300;
  font-size:clamp(1.1rem, 2vw, 1.5rem);
  animation:fadeInUp 1s ease-out .2s backwards;
  border:0px solid red;
}

.bag-start{
  border:0px solid violet;
  max-width:400px;
  margin-left: 10%;
}

.hero-cta{
  display:flex;
  gap:1.5rem;
  justify-content:center;
  flex-wrap:wrap;
  animation:fadeInUp 1s ease-out .4s backwards;
}

@media (max-width:768px){
  .hero{
    padding-top:120px !important;
  }

  .hero-title.heading-font2{
    margin-top:0 !important;
    padding-top:0 !important;
  }
}

/* ================================
   BOTÕES
   ================================ */

.btn{
  padding:1rem 1.5rem;
  font-size:1rem;
  font-weight:600;
  text-decoration:none;
  border-radius:0;
  transition:all .3s ease;
  display:inline-block;
  cursor:pointer;
  border:2px solid transparent;
}

.btn-primary{
  background:var(--primary);
  color:#FFFFFF;
  border-color:var(--primary);
}

.btn-primary:hover{
  filter:brightness(.92);
  transform:translateY(-2px);
  box-shadow:0 10px 30px rgba(255,106,0,.3);
}

.btn-secondary{
  background:transparent;
  color:#FFFFFF;
  border:2px solid #FFFFFF;
}

.btn-secondary:hover{
  background:#FFFFFF;
  color:#000000;
  transform:translateY(-2px);
}

.btn-outline{
  background:transparent;
  color:var(--text);
  border:2px solid var(--primary);
}

.btn-outline:hover{
  background:var(--primary);
  color:#FFFFFF;
  transform:translateY(-2px);
}

@keyframes fadeInUp{
  from{opacity:0;transform:translateY(30px);}
  to{opacity:1;transform:translateY(0);}
}

/* ================================
   STATS
   ================================ */

.stats{
  background:#000000;
  color:#FFFFFF;
  padding:2rem 2rem;
}

.stats-container{
  max-width:1400px;
  margin:0 auto;
  display:grid;
  grid-template-columns:repeat(auto-fit, minmax(250px, 1fr));
  gap:3rem;
  text-align:center;
}

.stat-item{
  padding:2rem;
}

.stat-number{
  font-size:3.5rem;
  font-weight:900;
  color:var(--primary);
  margin-bottom:.5rem;
  font-family:'Playfair Display',serif;
}

.stat-label{
  font-size:1.1rem;
  font-weight:500;
  text-transform:uppercase;
  letter-spacing:1px;
}

/* ================================
   SECTIONS
   ================================ */

.section{
  padding:2rem 2rem;
  border:0px solid blue;
}

.section-dark{
  background:#000000;
  color:#FFFFFF;
}

.section-container{
  max-width:1400px;
  margin:0 auto;
}

.section-header{
  text-align:center;
  margin-bottom:2rem;
}

.section-title{
  font-size:clamp(2.5rem, 5vw, 4rem);
  margin-bottom:1rem;
  margin-top:35px;
  color:black;
  border: 0px solid brown;
}

.section-dark .section-title{
  color:#FFFFFF;
}

.section-subtitle{
  font-size:1.25rem;
  color:#666666;
  max-width:700px;
  margin:0 auto;
  font-weight:300;
}

.section-subtitle-white{
  font-size:1.25rem;
  color:#ffffff;
  max-width:700px;
  margin:0 auto;
  font-weight:300;
}

.section-dark .section-subtitle{
  color:#000000;
}

.accent-line{
  width:80px;
  height:4px;
  background:var(--primary);
  margin:1.5rem auto;
}

.about-card,
.project-card,
.contact-card,
.transparency-card,
.form-container,
.schedule-card{
  background:var(--surface);
}

/* ================================
   ABOUT
   ================================ */

.about-grid{
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(380px, 1fr));
  column-gap: 5px;
  row-gap: 2rem;
  margin-top: 2rem;
  text-align: center;
}

.about-card{
  padding:4rem;
  border:1px solid #E5E5E5;
  transition:all .3s ease;
}

.about-card:hover{
  transform:translateY(-5px);
  box-shadow:0 20px 40px rgba(0,0,0,.1);
}

.about-card-icon{
  font-size:3rem;
  margin-bottom:1.5rem;
}

.img-corner{
  border-radius:3%;
}

.about-card-title{
  font-size:1.75rem;
  margin-bottom:1rem;
  font-weight:700;
}

.about-card-text{
  font-size:1.05rem;
  line-height:1.8;
  color:#333333;
}

/* ================================
   PROJECTS
   ================================ */

.projects-grid{
  display:grid;
  grid-template-columns:repeat(auto-fit, minmax(350px, 1fr));
  gap:3rem;
}

.project-card{
  overflow:hidden;
  transition:all .3s ease;
  border:1px solid #E5E5E5;
}

.project-card:hover{
  transform:translateY(-5px);
  box-shadow:0 20px 40px rgba(0,0,0,.15);
}

.project-image{
  width:100%;
  height:400px;
  position:relative;
  display:flex;
  align-items:center;
  justify-content:center;
  font-size:5rem;
  background:linear-gradient(135deg, var(--primary), #000000);
  filter: brightness(0.9) contrast(1.15) saturate(0.95);
}

.project-content{
  padding:2.5rem;
}

.project-title{
  font-size:1.75rem;
  margin-bottom:1rem;
  margin-top:1rem;
  font-weight:700;
  color: var(--text);
}

.project-description{
  font-size:1.05rem;
  line-height:1.8;
  color:#333333;
  margin-bottom:1.5rem;
}

.project-price{
  font-size:2rem;
  font-weight:900;
  color:var(--primary);
  margin-bottom:.5rem;
  font-family:'Playfair Display',serif;
}

.project-price-label{
  font-size:.95rem;
  color:#666666;
  margin-bottom:1.5rem;
}

/* ================================
   SCHEDULE
   ================================ */

.schedule-grid{
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(380px, 1fr));
  column-gap: 5px;
  row-gap: 1rem;
  margin-top: 2rem;
  text-align: center;
}

.schedule-card{
  padding:2.5rem;
  width:80%;
  border-left:4px solid var(--primary);
  transition:all .3s ease;
}

.schedule-card:hover{
  transform:translateX(5px);
  box-shadow:0 10px 30px rgba(0,0,0,.1);
}

.schedule-day{
  font-size:1.5rem;
  font-weight:700;
  margin-bottom:1rem;
  color:var(--primary);
}

.schedule-class{
  font-size:1.2rem;
  font-weight: bold;
  margin-bottom:.5rem;
  color:#555;
  white-space: nowrap;
}

.schedule-time{
  font-size:.95rem;
  color:#bc6c25;
  margin-bottom:1rem;
}

/* ================================
   FORMS
   ================================ */

.form-container{
  max-width:800px;
  margin:0 auto;
   border: 1px solid #E5E5E5;
  padding:3rem;
  /*border:1px solid #E5E5E5;*/
  border-radius:1%;

}

.form-group{
  margin-bottom:2rem;
}

.form-label{
  display:block;
  font-weight:600;
  margin-bottom:.5rem;
  color:var(--text);
  font-size:1rem;
}

.form-input,
.form-select,
.form-textarea{
  width:100%;
  padding:1rem;
  border:2px solid #E5E5E5;
  font-size:1rem;
  font-family:var(--font);
  transition:border-color .3s ease;
  background:#FFFFFF;
  color:#000000;
}

.form-input:focus,
.form-select:focus,
.form-textarea:focus{
  outline:none;
  border-color:var(--primary);
}

.form-textarea{
  resize:vertical;
  min-height:50px;
}

.form-row{
  display:grid;
  grid-template-columns:repeat(auto-fit, minmax(250px, 1fr));
  gap:2rem;
}

.form-message{
  padding:1.5rem;
  margin-top:2rem;
  text-align:center;
  font-weight:600;
  display:none;
}

.form-message.success{
  background:#D4EDDA;
  color:#155724;
  border:1px solid #C3E6CB;
  display:block;
}

/* ================================
   TRANSPARENCY
   ================================ */

.transparency-grid{
  display:grid;
  grid-template-columns:repeat(auto-fit, minmax(300px, 1fr));
  gap:2rem;
  margin-top:3rem;
}

.transparency-card{
  padding:2.5rem;
  text-align:center;
  border:1px solid #E5E5E5;
  transition:all .3s ease;
}

.transparency-card:hover{
  border-color:var(--primary);
  box-shadow:0 10px 30px rgba(0,0,0,.1);
}

.transparency-icon{
  font-size:3.5rem;
  margin-bottom:1.5rem;
}

.transparency-value{
  font-size:2.5rem;
  font-weight:900;
  color:var(--primary);
  margin-bottom:.5rem;
  font-family:'Playfair Display',serif;
}

.transparency-label{
  font-size:1.1rem;
  font-weight:600;
  color:var(--text);
  margin-bottom:1rem;
}

.transparency-description{
  font-size:.95rem;
  color:#666666;
  line-height:1.6;
}

/* ================================
   CONTACT
   ================================ */

.contact-grid{
  display:grid;
  grid-template-columns:repeat(auto-fit, minmax(300px, 1fr));
  gap:3rem;
  margin-top:3rem;
}

.contact-card{
  text-align:center;
  padding:3rem 2rem;
  border:1px solid #E5E5E5;
  transition:all .3s ease;
  border-radius:2%;
}

.contact-card:hover{
  border-color:var(--primary);
  transform:translateY(-5px);
  box-shadow:0 15px 35px rgba(0,0,0,.1);
  text-align: center;
  border-radius:2%;
}

.contact-icon{
  font-size:3rem;
  margin-bottom:1.5rem;
  color:var(--primary);
  margin-left:38%;
}

.contact-title{
  font-size:1.5rem;
  font-weight:700;
  margin-bottom:1rem;
}

.contact-info{
  font-size:1.1rem;
  color:#333333;
  word-break:break-word;
}

/* ================================
   FOOTER
   ================================ */

.footer{
  background:#000000;
  color:#FFFFFF;
  padding:4rem 2rem 2rem;
}

.footer-container{
  max-width:1400px;
  margin:0 auto;
  text-align:center;

  position: relative;                 /* obrigatório */
  background-image: url("/static/img/footer2.jpg");
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
  padding: 4rem 2rem;
  overflow: hidden;
}

/* Overlay */
.footer-container::before{
  content: "";
  position: absolute;
  inset: 0;
  background: rgba(0,0,0,0.9);
  z-index: 0;
}

/* Garante que o conteúdo fique acima */
.footer-container > *{
  position: relative;
  z-index: 1;
}

.footer-logo{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:1rem;
  margin-bottom:2rem;
}

.footer-logo-icon{
  width:80px;
  height:80px;
  background: transparent; /* var(--primary);*/
  border-radius:50%;
  display:flex;
  align-items:center;
  justify-content:center;
  font-size:2rem;
}

.footer-logo-text{
  font-size:1.5rem;
  font-weight:700;
}

.footer-text{
  font-size:1.1rem;
  margin-bottom:2rem;
  color:#CCCCCC;
}

.footer-social{
  display:flex;
  justify-content:center;
  gap:2rem;
  margin-bottom:3rem;
  font-size:2rem;
}

.footer-social a{
  color:#FFFFFF;
  transition:color .3s ease, transform .3s ease;
  text-decoration:none;
}

.footer-social a:hover{
  color:var(--primary);
  transform:scale(1.2);
}

.footer-bottom{
  padding-top:2rem;
  border-top:1px solid #333333;
  font-size:.95rem;
  color:#999999;
}

/* ================================
   RESPONSIVO BASE (você já tinha)
   ================================ */

@media (max-width:768px){
  .nav-menu{display:none;}
  .mobile-menu-btn{display:block;}
  .hero{padding:6rem 1.5rem 3rem;}
  .hero-cta{flex-direction:column;align-items:stretch;}
  .btn{width:100%;text-align:center;}
  .section{padding:4rem 1.5rem;}
  .stats{padding:3rem 1.5rem;}
  .stats-container{gap:2rem;}
  .form-container{padding:2rem 1.5rem;}
  .form-row{grid-template-columns:1fr;}
  .projects-grid,
  .schedule-grid{grid-template-columns:1fr;}
}

img{
  max-width: 100%;
  height: auto;
}

.img-300{
  width: 400px !important;
  height: 200px !important;
  object-fit: cover;      /* preenche sem distorcer */
  display: block;
}

/* =========================================
   SECTION – IMAGEM 100% VISÍVEL (SEM CORTE)
   HOLOFOTES APARECEM INTEIROS
   ========================================= */

.section-parallax{
  position: relative;
  isolation: isolate;
  min-height: 140vh;
  background-image: url("/static/img/palco.png");
  background-repeat: no-repeat;
  background-size: cover;
  background-position: top center;
  background-attachment: fixed;
  padding-top: 30px;
  border:0px solid orange;
}

.section-parallax::before{
  content: "";
  position: absolute;
  inset: 0;
  z-index: 0;
  background: linear-gradient(to bottom, rgba(0,0,0,0.15), rgba(0,0,0,0.35));
}

.section-parallax > .section-container{
  position: relative;
  z-index: 1;
  padding: 1.1rem 0;

}

@media (max-width: 900px){
  .section-parallax{
    background-attachment: scroll;
    min-height: 60vh;
  }
}

#inscricoes{
  position: relative;
  background: linear-gradient(
    135deg,
    rgba(0,0,0,0.08),
    rgba(0,0,0,0.15)
  );
}

#inscricoes::before{
  content:"";
  position:absolute;
  inset:0;
  background: rgba(255,255,250,0.35);
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);
  z-index:0;
}

#inscricoes .section-container{
  position: relative;
  z-index:1;
}

#inscricoes .form-container{
  background: rgba(255,255,255,0.65);
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
  border:1px solid rgba(255,255,255,0.4);
  box-shadow:0 20px 50px rgba(0,0,0,0.15);
}

@media (max-width:768px){
  #inscricoes::before{
    background: rgba(255,255,255,0.45);
  }

  #inscricoes .form-container{
    background: rgba(255,255,255,0.75);
  }
}

.partner-grid{
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(380px, 1fr));
  column-gap: 18px;
  row-gap: 2rem;
  margin-top: 2rem;
  text-align: center;
}

.partner-card{
  padding:4rem;
  transition:all .3s ease;
  background:var(--surface);
  box-shadow: 0 10px 10px rgba(0,0,0,.1), /* Sombra direita */
             -3px 0 0px 0px #fff; /* Sombra esquerda */
}

.partner-card:hover{
  transform:translateY(-5px);
  box-shadow: -3px 0px 2px 0px #FF6A00;
}

.partner-card-icon{
  font-size:3rem;
  margin-bottom:1.5rem;
}

.partner-card-title{
  font-size:1.75rem;
  margin-bottom:1rem;
  font-weight:700;
}

.partner-card-text{
  font-size:1.05rem;
  line-height:1.8;
  color:#333333;
}



/* =========================================
   SECTION – IMAGEM 100% VISÍVEL (SEM CORTE)
   PARTNER APARECEM INTEIROS
   ========================================= */

.section-parallax-partner{
  position: relative;
  isolation: isolate;
  min-height: 70vh;
  background-image: url("/static/img/parceria3.png");
  background-repeat: no-repeat;
  background-size: cover;
  background-position: top center;
  background-attachment: fixed;
  padding: 0;
}

.section-parallax-partner::before{
  content: "";
  position: absolute;
  inset: 0;
  z-index: 0;
  background: linear-gradient(to bottom, rgba(255,255,255,1),rgba(255,255,255,0.90));
}

.section-parallax-partner > .section-container{
  position: relative;
  z-index: 1;
  padding: 3rem 0;

}

@media (max-width: 900px){
  .section-parallax-partner{
    background-attachment: scroll;
    min-height: 60vh;
  }
}

/* ===============================
   STATS COM VÍDEO DE FUNDO
   =============================== */

.stats-video{
  position: relative;
  overflow: hidden;
  color: #fff;
}

/* Vídeo */
.stats-bg-video{
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  z-index: 0;
}

/* Conteúdo acima */
.stats-container{
  position: relative;
  z-index: 2;
}

.contact-map{
  width: 100%;
  height: 110px;
  border-radius: 12px;
  overflow: hidden;
  margin-bottom: 16px;
  border:5px solid #fcfcfc;
}

.contact-map iframe{
  width: 100%;
  height: 100%;
}

/*==========================================================*/
/* Section geral */
.videos-grid-section{
  width: 100%;
  padding-top: 0px;
  padding-bottom:10px;
  border:0px solid red;
}

/* Grid dos vídeos */
.videos-grid{
  display: grid;
  width:93%;
  margin-left:3.5%;
  grid-template-columns: repeat(4, 1fr);
  gap: 12px; /* espaço pequeno entre vídeos */
  border:0px solid blue;
}

/* Cada vídeo mantém proporção */
.video-item{
  position: relative;
  width: 100%;
  aspect-ratio: 16 / 9; /* proporção YouTube */
  overflow: hidden;
  border-radius: 12px;
  background: #000;
}

/* Iframe ocupa tudo sem distorcer */
.video-item iframe{
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  border: 0;
}

/* ================================
   KPI CARDS OVERLAY – PC/WEB FIRST
   (AJUSTADO: mobile 2x2 agrupado)
   ================================ */

.kpi-wrapper{
  overflow: visible;
  position: relative;
  z-index: 10;
  background: transparent !important;
  margin-top: 0 !important;
  padding: 0 0 2.5rem 0 !important;
  border:0px solid green;
  height:auto;
}

.kpi-section{
  background: transparent !important;
  padding: 0 !important;
  margin: 0 !important;
  border:0px solid violet;
}

/* PC: 4 colunas */
.kpi-grid{
  max-width: 1200px;
  margin: 0 auto;

  position: relative;
  top: -50px; /* ✅ invade a section superior */

  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 28px;

  padding: 0 2rem;
  background: transparent !important;
}

/* Card */
.kpi-card{
  background: #ffffff;
  border-radius: 22px;
  padding: 42px 28px;
  text-align: center;
  box-shadow: 0 30px 60px rgba(0,0,0,.22);
}

/* Ícones */
.kpi-icon{
  font-size: 3.2rem;
  color: #f85e00;
  margin-bottom: 18px;
}

/* Número */
.kpi-value{
  font-size: 3rem;
  font-weight: 900;
  color: #252422;
  margin-bottom: 12px;
}

/* Texto */
.kpi-label{
  font-size: 1rem;
  font-weight: 800;
  color: #111;
  letter-spacing: .6px;
  line-height: 1.55;
}

/* Compensação do overlay (sem "empurrar" a section superior) */
.kpi-wrapper::after{
  content: "";
  display: block;
  height: 140px; /* ~100px + folga */
}

/* ================================
   KPI – TABLET
   ================================ */
@media (max-width: 1024px){
  .kpi-grid{
    grid-template-columns: repeat(2, 1fr);
    gap: 22px;
    top: -50px;
    padding: 0 1.5rem;
  }

  .kpi-card{
    padding: 36px 22px;
  }

  .kpi-value{
    font-size: 2.6rem;
  }
}

/* ================================
   KPI – MOBILE (2x2 AGRUPADO)
   ================================ */
@media (max-width: 600px){
  .kpi-grid{
    grid-template-columns: repeat(2, 1fr);
    gap: 16px;
    padding: 0 1rem;
    top: -30px;
    max-width: 560px;
  }

  .kpi-card{
    padding: 28px 18px;
    border-radius: 18px;
    box-shadow: 0 22px 44px rgba(0,0,0,.18);
  }

  .kpi-icon{
    font-size: 2.1rem;
    margin-bottom: 10px;
  }

  .kpi-value{
    font-size: 2.2rem;
    margin-bottom: 8px;
  }

  .kpi-label{
    font-size: .85rem;
    letter-spacing: .4px;
  }

  .kpi-wrapper::after{
    height: 110px;
  }
}

/* =========================================================
   MOBILE FIX PACK (mantido) – OUTRAS ÁREAS
   ========================================================= */

@media (max-width: 1024px){
  .videos-grid{
    grid-template-columns: repeat(2, 1fr);
    gap: 10px;
  }
}

@media (max-width: 600px){
  .videos-grid{
    grid-template-columns: 1fr;
    gap: 12px;
  }
}

/* 1) Ajuste global de container e respiro lateral */
@media (max-width: 900px){
  :root{
    --font-size: 15px;     /* levemente maior no mobile */
    --nav-h: 50px;         /* altura real do navbar no mobile */
  }

  .section-container,
  .nav-container,
  .stats-container{
    padding-left: 1rem !important;
    padding-right: 1rem !important;
  }
}

/* 2) Navbar / menu mobile (altura e alinhamento) */
@media (max-width: 768px){
  .nav-container{
    padding: 0 1rem !important;
    min-height: var(--nav-h);
  }

  .nav-logo{
    font-size: 1.05rem;
  }

  .nav-logo-icon{
    width: 34px;
    height: 34px;
  }

  .nav-logo-icon img{
    width: 49px;
    height: 49px;
  }

  /* garante que o menu mobile abra abaixo do navbar */
  .mobile-nav{
    top: var(--nav-h);
    padding: 1.25rem;
  }
}

/* 3) HERO: impedir texto ficar atrás do menu + melhorar tipografia no mobile */
@media (max-width: 768px){
  #inicio{
    background-attachment: scroll; /* evita bug de fixed no mobile */
  }

  .hero{
    min-height: calc(100vh - var(--nav-h));
    padding-top: calc(var(--nav-h) + 1.25rem) !important;
    padding-right: 1rem !important;
    padding-left: 1rem !important;
    padding-bottom: 2.25rem !important;
  }

  .hero-content{
    text-align: left; /* melhora leitura */
  }

  .hero-title{
    font-size: 2.05rem;  /* controla melhor que clamp em telas pequenas */
    line-height: 1.08;
    margin-bottom: 1rem;
  }

  .hero-cta{
    gap: .75rem;
  }

  .btn{
    width: 100%;
    text-align: center;
    padding: .95rem 1rem;
  }
}

/* 4) Seções: reduzir paddings e títulos grandes */
@media (max-width: 768px){
  .section{
    padding: 1.25rem 1rem;
  }

  .section-header{
    margin-bottom: 1.5rem;
  }

  .section-title{
    font-size: 2rem;
    margin-top: 0px;
  }

  .section-subtitle,
  .section-subtitle-white{
    font-size: 1.05rem;
  }

  .accent-line{
    margin: 1rem auto;
  }
}

/* 5) Grids com min-width grande quebram no mobile (380/350px) */
@media (max-width: 900px){
  .about-grid,
  .projects-grid,
  .schedule-grid,
  .partner-grid,
  .contact-grid,
  .transparency-grid{
    grid-template-columns: 1fr !important;
    gap: 1.25rem !important;
  }
}

/* 6) Cards: paddings grandes no desktop -> menores no mobile */
@media (max-width: 768px){
  .about-card,
  .partner-card{
    padding: 1.55rem;
  }

  .project-content{
    padding: 1.5rem;
  }

  .project-title{
    font-size: 1.4rem;
  }

  .project-description{
    font-size: 1rem;
    line-height: 1.6;
  }

  .project-price{
    font-size: 1.6rem;
  }

  /* imagem do card de projeto grande demais */
  .project-image{
    height: 260px;
  }
}

/* 7) Schedule: width 80% no mobile vira problema */
@media (max-width: 768px){
  .schedule-card{
    width: 100% !important;
    padding: 1.5rem;
  }

  /* nowrap estoura a tela no mobile */
  .schedule-class{
    white-space: normal !important;
  }

  .schedule-day{
    font-size: 1.25rem;
  }
}

/* 8) Formulários: espaçamento e inputs mais confortáveis */
@media (max-width: 768px){
  .form-container{
    padding: 1.5rem 1rem !important;
    border-radius: 8px;
  }

  .form-group{
    margin-bottom: 1.25rem;
  }

  .form-input,
  .form-select,
  .form-textarea{
    padding: .9rem;
    font-size: 1rem;
  }

  .form-textarea{
    min-height: 130px;
  }
}

/* 9) Stats: reduzir números e padding */
@media (max-width: 768px){
  .stats{
    padding: 2.5rem 1rem;
  }

  .stat-item{
    padding: 1rem;
  }

  .stat-number{
    font-size: 2.6rem;
  }

  .stat-label{
    font-size: .95rem;
  }

  /* vídeo de fundo no mobile: mantém estável */
  .stats-bg-video{
    object-position: center;
  }
}

/* 10) Parallax: no mobile sempre scroll (você já faz, reforço) */
@media (max-width: 900px){
  .section-parallax,
  .section-parallax-partner{
    background-attachment: scroll !important;
  }
}

/* 11) Ícones e imagens internas para não “vazar” */
@media (max-width: 768px){
  .contact-icon{
    margin-left: 0 !important;
    display:flex;
    justify-content:center;
  }
}

/* 12) Ajuste para âncoras não ficarem escondidas atrás do navbar */
@media (max-width: 900px){
  section[id]{
    scroll-margin-top: calc(var(--nav-h) + 10px);
  }
}

/* ===============================
   SECTION – VÍDEO DESTAQUE (clean)
   =============================== */

.feature-video,
.feature-video *{
  font-family: var(--font) !important;
}

.feature-video{
  padding: 2rem 2rem;
  background: transparent; /* não cria faixa atrás */
  border:0px solid red;
  height:auto;
}

.feature-video__card{
  max-width: 1400px;
  margin: 0 auto;
  background: #ffffff;
  border-radius: 18px;
  padding: 3rem;
  box-shadow: 0 18px 40px rgba(0,0,0,.12);

  display: grid;
  grid-template-columns: 1.1fr 1fr;
  gap: 2.5rem;
  align-items: center;
}

.feature-video__title{
  font-size: clamp(1.5rem, 1.94vw, 2.4rem);
  font-weight: 700;
  line-height: 1.12;
  color: #0b1530;
  margin: 0 0 1.25rem 0;
}

.feature-video__p{
  font-size: 1.05rem;
  line-height: 1.75;
  color: #1b1b1b;
  margin: 0 0 1rem 0;
  max-width: 60ch;
  text-align: justify;
}

.feature-video__media{
  background: #ffffff;              /* fundo branco atrás */
  border-radius: 14px;
  padding: 14px;                    /* borda/moldura */
  box-shadow: 0 14px 30px rgba(0,0,0,.10);
}

.feature-video__frame{
  border-radius: 12px;
  overflow: hidden;
  aspect-ratio: 16 / 9;
  background: #000;
}

.feature-video__frame iframe{
  width: 100%;
  height: 100%;
  border: 0;
  display: block;
}

@media (max-width: 980px){
  .feature-video__card{
    grid-template-columns: 1fr;
    padding: 2rem;
  }

  .feature-video__media{
    padding: 10px;
  }
}

/* =========================================
   NAV BRAND: trocar "Arte Sem Fronteiras" por "ASF" no mobile/tablet
   (sem alterar o HTML/Jinja)
   ========================================= */

/* garante que o span aceite pseudo-elemento */
#nav-institute-name{
  display: inline-block;
}

/* até 1024px (tablet + mobile) */
@media (max-width: 1024px){
  /* esconde o texto original visualmente */
  #nav-institute-name{
    font-size: 0;        /* some com o texto, mas mantém o elemento */
    line-height: 0;
  }

  /* mostra "ASF" no lugar */
  #nav-institute-name::after{
    content: "ASF";
    font-size: 1.15rem;  /* ajuste fino se quiser */
    line-height: 1;
    font-weight: 800;
    letter-spacing: .5px;
    color: var(--text);
  }
}

/* ==============================
   SECTION "AULAS" (UI da imagem)
   ============================== */

.classes{
  padding: 3.5rem 2rem;

}

.classes__container{
  max-width: 1400px;
  margin: 0 auto;

}

.classes__header{
  text-align:center;
  margin-bottom: 2.5rem;
}

.classes__title{
  font-size: clamp(2rem, 3.2vw, 3.2rem);
  font-weight: 800;
  color:#101828;
  letter-spacing: -0.02em;
  margin: 0 0 .5rem 0;
}

.classes__subtitle{
  font-size: 1.15rem;
  color:#475467;
  margin: 0 0 .75rem 0;
}

.classes__desc{
  max-width: 780px;
  margin: 0 auto;
  color:#667085;
  line-height: 1.7;
}

/* GRID 3 colunas */
.classes__grid{
  display:grid;
  grid-template-columns: 420px 1fr 440px;
  gap: 22px;
  align-items: start;
  margin-top: 2rem;
}

/* COLUNA ESQUERDA */
.classes__list{
  display:flex;
  flex-direction:column;
  gap: 14px;

}

.class-item{
  appearance:none;
  border:0;
  cursor:pointer;

  display:flex;
  align-items:center;
  gap: 12px;

  padding: 16px 18px;
  border-radius: 12px;

  box-shadow: 0 10px 24px rgba(16,24,40,.10);
  transition: transform .18s ease, box-shadow .18s ease, filter .18s ease;
  position:relative;
  overflow:hidden;
  text-align:left;
}

.class-item:hover{
  transform: translateY(-2px);
  box-shadow: 0 16px 34px rgba(16,24,40,.16);
  filter: saturate(1.05);
}

.class-item__emoji{
  width: 34px;
  height: 34px;
  display:grid;
  place-items:center;
  border-radius: 10px;
  background: rgba(255,255,255,.22);
  font-size: 18px;
}

.class-item__name{
  font-weight: 800;
  color:#fff;
  font-size: 1.05rem;
  letter-spacing: -0.01em;
}

.class-item__plus{
  margin-left:auto;
  width: 34px;
  height: 34px;
  display:grid;
  place-items:center;
  border-radius: 10px;
  color:#fff;
  font-size: 1.4rem;
  line-height: 1;
  background: rgba(255,255,255,.18);
}

/* Paleta */
.class-item--blue{ background: linear-gradient(135deg,#0A2957,#1967DB); }
.class-item--red{ background: linear-gradient(135deg,#732323,#C93D3D); }
.class-item--yellow{ background: linear-gradient(135deg,#591450,#BD2BA8); }
.class-item--pink{ background: linear-gradient(135deg,#c77dff,#ff8fab); }
.class-item--green{ background: linear-gradient(135deg,#2fbf71,#7ee081); }

/* COLUNA DO MEIO (painel “modal”) */
.classes__detail{
  min-height: 580px;


}

.detail-card{
  background: #ffffff;
  border-radius: 14px;
  box-shadow: 0 18px 44px rgba(16,24,40,.12);
  border: 1px solid rgba(16,24,40,.06);
  overflow:hidden;
  min-height: 510px;
}

.detail-card__head{
  display:flex;
  align-items:center;
  justify-content:space-between;
  padding: 18px 20px;
}

.detail-card__title{
  margin:0;
  font-size: 1.1rem;
  font-weight: 900;
  color:#101828;
  letter-spacing: .02em;
}

.detail-card__close{
  border:0;
  background: transparent;
  cursor:pointer;
  font-size: 1.7rem;
  line-height: 1;
  color:#98A2B3;
  padding: 0 6px;
}

.detail-card__close:hover{ color:#475467; }

.detail-card__body{ padding: 20px; }

.detail-card__profile{
  display:grid;
  grid-template-columns: 110px 1fr;
  gap: 16px;
  align-items:start;
}

.detail-card__avatar{
  width: 110px;
  height: 110px;
  border-radius: 14px;
  overflow:hidden;
  background:#f2f4f7;
  border: 1px solid rgba(16,24,40,.08);
}

.detail-card__avatar img{
  width:100%;
  height:100%;
  object-fit: cover;
  display:block;
}

.detail-card__prof{
  margin: 0 0 .4rem 0;
  color:#101828;
  font-weight: 800;
}

.detail-card__text{
  margin:0;
  color:#667085;
  line-height: 1.65;
}

.detail-card__schedule{
  margin-top: 18px;
  background:#f8fafc;
  border:1px solid rgba(16,24,40,.06);
  border-radius: 12px;
  padding: 12px 14px;
}

.detail-card__list{
  margin:0;
  padding:0;
  list-style:none;
  display:flex;
  flex-direction:column;
  gap: 8px;
}

.detail-card__list li{
  display:flex;
  gap: 10px;
  align-items:flex-start;
  color:#344054;
  font-weight: 700;
}

.detail-card__list li::before{
  content:"🗓️";
  flex: 0 0 auto;
  margin-top: 1px;
}

.detail-card__actions{
  display:flex;
  justify-content:center;
  margin-top: 16px;
}

.detail-card__actions .btn{
  border-radius: 10px;
  padding: .85rem 1.1rem;
}

/* COLUNA DIREITA (form) */
.form-card{
  background:#ffffff;
  border-radius: 14px;
  box-shadow: 0 18px 44px rgba(16,24,40,.12);
  border: 1px solid rgba(16,24,40,.06);
  overflow:hidden;
}

.form-card__head{
  padding: 18px 20px;
  display:flex;
  align-items:center;
  justify-content:space-between;
}

.form-card__title{
  margin:0;
  font-size: 1.35rem;
  font-weight: 900;
  color:#101828;
}

.ui-form{ padding: 18px 20px 22px; }

.ui-row{
  display:grid;
  gap: 14px;
}

.ui-row--2{
  grid-template-columns: 1fr 1fr;
}

.ui-group{ margin-bottom: 14px; }

.ui-label{
  display:block;
  font-weight: 800;
  color:#101828;
  font-size: .95rem;
  margin: 0 0 6px 0;
}

.ui-input,
.ui-select,
.ui-textarea{
  width: 100%;
  border-radius: 10px;
  border: 1px solid rgba(16,24,40,.14);
  background: #fff;
  padding: 10px 10px;
  font-size: 1rem;
  outline: none;
  transition: box-shadow .18s ease, border-color .18s ease;
}

.ui-textarea{ min-height: 60px; resize: vertical; }

.ui-input:focus,
.ui-select:focus,
.ui-textarea:focus{
  border-color: rgba(255,106,0,.55);
  box-shadow: 0 0 0 4px rgba(255,106,0,.16);
}

.ui-submit{
  width:100%;
  border:0;
  border-radius: 12px;
  padding: 14px 16px;
  background: #ff6a00;
  color:#fff;
  font-weight: 900;
  font-size: 1.05rem;
  cursor:pointer;
  display:flex;
  align-items:center;
  justify-content:center;
  gap: 12px;
  box-shadow: 0 16px 30px rgba(255,106,0,.28);
  transition: transform .18s ease, filter .18s ease, box-shadow .18s ease;
}

.ui-submit:hover{
  filter: brightness(.96);
  transform: translateY(-1px);
  box-shadow: 0 18px 34px rgba(255,106,0,.32);
}

.ui-arrow{
  font-size: 1.3rem;
  line-height: 1;
}

/* RESPONSIVO */
@media (max-width: 1100px){
  .classes__grid{
    grid-template-columns: 1fr;
  }
  .classes__detail{ order: 2; }
  .classes__form{ order: 3; }
  .ui-row--2{ grid-template-columns: 1fr; }
}


/* =========================================================
   INSCRIÇÕES – NOVO LAYOUT (override de regras antigas)
   Objetivo: evitar conflito com #inscricoes::before (glass) e
   com .form-container antigo; fundo branco e layout limpo.
   ========================================================= */

#inscricoes{
  background-color: #4b2e1f; /* marrom base (fallback) */
  background-image: url("/static/img/fundo_inscricao_w3.png");
  background-size: cover;
  background-position: center;
  background-attachment: fixed;
  position: relative;
  scroll-margin-top:var(--nav-h);
}

#inscricoes::before{
  content: none !important;
  display: none !important;
}

#inscricoes .section-container{
  padding-top: 3.5rem;
  padding-bottom: 3.5rem;

}

/* garante que mensagens não empurrem o layout com estilos estranhos */
#inscricoes .form-message{
  border-radius: 12px;
}

/* Wrapper principal (lista | detalhe/modal | form) */
.insc-wrap{
  max-width: 1400px;
  margin: 0 auto;
  display: grid;
  grid-template-columns: 420px 1fr 420px;
  gap: 22px;
  align-items: start;
}

/* Painel da lista (esquerda) */
.insc-list{
  display: flex;
  flex-direction: column;
  gap: 14px;
}

/* Item colorido (pílula grande) */
.insc-item{
  border: 0;
  width: 100%;
  text-align: left;
  cursor: pointer;

  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;

  padding: 16px 18px;
  border-radius: 14px;

  color: #ffffff;
  font-weight: 700;
  font-size: 1.05rem;

  box-shadow: 0 14px 32px rgba(0,0,0,.10);
  transition: transform .18s ease, filter .18s ease, box-shadow .18s ease;
}

.insc-item:hover{
  transform: translateY(-2px);
  filter: brightness(.98);
  box-shadow: 0 18px 38px rgba(0,0,0,.14);
}

.insc-item .insc-plus{
  font-size: 1.4rem;
  line-height: 1;
  opacity: .95;
}

/* Paleta (use conforme o item) */
.insc-blue{ background: linear-gradient(135deg, #0EA5E9, #2563EB); }
.insc-red{ background: linear-gradient(135deg, #EF4444, #FB7185); }
.insc-yellow{ background: linear-gradient(135deg, #F59E0B, #F97316); }
.insc-purple{ background: linear-gradient(135deg, #8B5CF6, #A855F7); }
.insc-green{ background: linear-gradient(135deg, #22C55E, #16A34A); }

/* Card de detalhes (centro) */
.insc-detail{
  background: #ffffff;
  border-radius: 18px;
  padding: 22px 22px;
  border: 1px solid rgba(0,0,0,.06);
  box-shadow: 0 22px 55px rgba(0,0,0,.10);
  min-height: 420px;
}

.insc-detail__title{
  font-size: 1.25rem;
  font-weight: 900;
  letter-spacing: .5px;
  color: #111;
  margin: 4px 0 14px 0;
  text-transform: uppercase;
}

.insc-detail__top{
  display: grid;
  grid-template-columns: 96px 1fr;
  gap: 14px;
  align-items: center;
  margin-bottom: 14px;
}

.insc-avatar{
  width: 96px;
  height: 96px;
  border-radius: 14px;
  overflow: hidden;
  background: #f3f4f6;
  border: 1px solid rgba(0,0,0,.06);
}

.insc-avatar img{
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

.insc-detail__meta{
  color: #111;
  font-size: 1rem;
  line-height: 1.45;
}

.insc-detail__meta small{
  display: block;
  color: #666;
  font-weight: 500;
  margin-top: 2px;
}

.insc-detail__desc{
  color: #333;
  font-size: 1rem;
  line-height: 1.7;
  margin: 10px 0 14px 0;
}

/* Lista de horários */
.insc-schedule{
  background: #fbfbfb;
  border: 1px solid rgba(0,0,0,.06);
  border-radius: 14px;
  padding: 14px 14px;
  display: grid;
  gap: 10px;
}

.insc-schedule li{
  list-style: none;
  display: flex;
  gap: 10px;
  align-items: flex-start;
  color: #111;
  font-weight: 600;
}

.insc-schedule .muted{
  font-weight: 500;
  color: #555;
}

/* Card do formulário (direita) */
.insc-form-card{
  background: #ffffff;
  border-radius: 18px;
  padding: 22px 22px;
  border: 1px solid rgba(0,0,0,.06);
  box-shadow: 0 22px 55px rgba(0,0,0,.10);
}

/* “corrige” estilos antigos do .form-container dentro das inscrições */
#inscricoes .form-container{
  max-width: none !important;
  padding: 0 !important;
  border: 0 !important;
  border-radius: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
}

/* Ajuste de inputs para combinar com o mock */
#inscricoes .form-input,
#inscricoes .form-select,
#inscricoes .form-textarea{
  border-radius: 10px;
  border: 2px solid #E8E8E8;
  background: #ffffff;
}

#inscricoes .form-input:focus,
#inscricoes .form-select:focus,
#inscricoes .form-textarea:focus{
  border-color: rgba(255,106,0,.85);
  box-shadow: 0 0 0 4px rgba(255,106,0,.12);
}

/* Botão full */
#inscricoes .btn.btn-primary{
  border-radius: 12px;
}

/* Responsivo */
@media (max-width: 1100px){
  .insc-wrap{
    grid-template-columns: 360px 1fr;
  }
  .insc-form-card{
    grid-column: 1 / -1;
  }
}

@media (max-width: 768px){
  .insc-wrap{
    grid-template-columns: 1fr;
  }
  .insc-detail,
  .insc-form-card{
    padding: 18px;
  }
}

@media (max-width: 1024px){

  .classes__grid{
    grid-template-columns: 1fr 1fr;
    gap: 18px;
  }

  /* lista ocupa a linha inteira */
  .classes__list{
    grid-column: 1 / -1;
    flex-direction: row;
    flex-wrap: wrap;
  }

  .class-item{
    width: calc(50% - 8px);
  }

  /* detalhe e form ficam lado a lado */
  .classes__detail{
    grid-column: 1 / 2;
  }

  .classes__form{
    grid-column: 2 / 3;
  }

}

/* (REMOVIDO) Bloco @media (max-width: 768px) duplicado de .classes (mantido o bloco mais completo abaixo). */

/* ===============================
   Mobile (até 768px)
   =============================== */
@media (max-width: 768px){

  .classes{
    padding: 2.5rem 1rem;
  }

  /* força 1 coluna no grid principal */
  .classes__grid{
    display: grid !important;
    grid-template-columns: 1fr !important;
    grid-auto-flow: row !important;
    gap: 16px !important;
  }

  /* garante que cada “coluna” vire linha */
  .classes__list,
  .classes__detail,
  .classes__form{
    grid-column: 1 / -1 !important;
    width: 100% !important;
    min-width: 0 !important;
  }

  /* lista em coluna */
  .classes__list{
    flex-direction: column;
  }

  .class-item{
    width: 100%;
  }

  /* ordem lógica no mobile */
  .classes__list{ order: 1; }
  .classes__detail{ order: 2; min-height: auto; }
  .classes__form{ order: 3; }

  /* painel de detalhes: se estiver hidden some, se não, aparece */
  #classDetail[hidden]{ display: none !important; }
  #classDetail{ display: block; }

}




/* Classes (Inscrições) - botões neutros por padrão e coloridos quando selecionados */
.class-item{
  color:#fff;
}

.class-item__name,
.class-item__plus{
  color:#fff;
}

.class-item__emoji,
.class-item__plus{
  background: rgba(255,255,255,.18);
}

.class-item.class-item--blue:not(.is-active):not(.active):not(.selected):not([aria-selected="true"]),
.class-item.class-item--red:not(.is-active):not(.active):not(.selected):not([aria-selected="true"]),
.class-item.class-item--yellow:not(.is-active):not(.active):not(.selected):not([aria-selected="true"]),
.class-item.class-item--pink:not(.is-active):not(.active):not(.selected):not([aria-selected="true"]),
.class-item.class-item--green:not(.is-active):not(.active):not(.selected):not([aria-selected="true"]){
  background:#6b7280;
}

.class-item.class-item--blue.is-active,
.class-item.class-item--blue.active,
.class-item.class-item--blue.selected,
.class-item.class-item--blue[aria-selected="true"]{
  background: linear-gradient(135deg,#0A2957,#1967DB);
}

.class-item.class-item--red.is-active,
.class-item.class-item--red.active,
.class-item.class-item--red.selected,
.class-item.class-item--red[aria-selected="true"]{
  background: linear-gradient(135deg,#732323,#C93D3D);
}

.class-item.class-item--yellow.is-active,
.class-item.class-item--yellow.active,
.class-item.class-item--yellow.selected,
.class-item.class-item--yellow[aria-selected="true"]{
  background: linear-gradient(135deg,#591450,#BD2BA8);
}

.class-item.class-item--pink.is-active,
.class-item.class-item--pink.active,
.class-item.class-item--pink.selected,
.class-item.class-item--pink[aria-selected="true"]{
  background: linear-gradient(135deg,#c77dff,#ff8fab);
}

.class-item.class-item--green.is-active,
.class-item.class-item--green.active,
.class-item.class-item--green.selected,
.class-item.class-item--green[aria-selected="true"]{
  background: linear-gradient(135deg,#2fbf71,#7ee081);
}


/* Tablet */
@media (max-width: 1024px){
  .feature-video{padding: 1.5rem 1.5rem;}
}

/* Mobile */
@media (max-width: 600px){
  .feature-video{padding: 2.25rem 1rem;}
  .feature-video__card{padding: 1.25rem;}
}

/* ===== Carrossel ===== */
.prof-carousel{
  position:relative;
  width:100%;
  max-width:1100px;
  margin:0 auto;
}

.prof-carousel__viewport{
  overflow:hidden;
  border-radius:22px;
}

.prof-carousel__track{
  display:flex;
  gap:18px;
  transform:translateX(0);
  transition:transform .45s ease;
}

.prof-slide{
  flex:0 0 100%;
}

.prof-slide__card{
  display:grid;
  grid-template-columns: 380px 1fr;
  gap:22px;
  padding:26px;
  border-radius:22px;
  background: radial-gradient(1200px 600px at 20% 20%, rgba(255,166,0,.12), transparent 60%),
              linear-gradient(180deg, #201a14, #14110e);
  color:#fff;
  border:1px solid rgba(255,255,255,.06);
}

.prof-slide__photo{
  border-radius:22px;
  overflow:hidden;
  background:#0f0f10;
  display:flex;
  align-items:flex-end;
  justify-content:center;
  min-height:320px;
  margin-left: 25%;
}

.prof-slide__photo img{
  width:100%;
  height:100%;
  object-fit:contain;
  display:block;

}

.prof-slide__badge{
  font-size:12px;
  letter-spacing:.08em;
  opacity:.8;
  margin-bottom:10px;
}

.prof-slide__headline{
  font-size:44px;
  line-height:1.02;
  margin:0 0 10px;
  font-weight:900;
}

.prof-slide__headline span{
  color:#ca6702;
}

.prof-slide__desc{
  margin:0 0 16px;
  opacity:.85;
  max-width:520px;
  text-align: justify
}

.prof-slide__chips{
  display:flex;
  flex-wrap:wrap;
  gap:10px;
  margin: 10px 0 18px;
}

.chip{
  display:inline-flex;
  align-items:center;
  padding:10px 12px;
  border-radius:999px;
  background: rgba(255,255,255,.06);
  border:1px solid rgba(255,255,255,.08);
  font-size:13px;
  opacity:.92;
}

.btn-cta{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:10px;
  padding:14px 18px;
  border:0;
  border-radius:999px;
  background: linear-gradient(90deg, #ff8a00, #ffb100);
  color:#241300;
  font-weight:800;
  cursor:pointer;
}

.prof-slide__note{
  display:block;
  margin-top:10px;
  opacity:.65;
}

/* nav */
.prof-carousel__nav{
  position:absolute;
  top:50%;
  transform:translateY(-50%);
  width:44px;
  height:44px;
  border-radius:999px;
  border:1px solid rgba(255,255,255,.12);
  background: rgba(0,0,0,.35);
  color:#fff;
  cursor:pointer;
  z-index:2;
}
.prof-carousel__nav--prev{ left:-14px; }
.prof-carousel__nav--next{ right:-14px; }

/* Mobile */
@media (max-width: 920px){
  .prof-slide__card{
    grid-template-columns: 1fr;
  }
  .prof-slide__photo{
    min-height:320px;
    margin-top:5%;
    margin-left: 5% !important;
  }
  .prof-slide__headline{
    font-size:36px;
  }
  .prof-carousel__nav--prev{ left:6px; }
  .prof-carousel__nav--next{ right:6px; }
}

/* ===== Modal ===== */
.ui-modal{
  position:fixed;
  inset:0;
  display:none;
  z-index:9999;
}

.ui-modal.is-open{
  display:block;
}

.ui-modal__overlay{
  position:absolute;
  inset:0;
  background: rgba(0,0,0,.55);
}

.ui-modal__panel{
  position:relative;
  width:min(720px, calc(100% - 24px));
  margin: 40px auto;
  background:#fff;
  border-radius:18px;
  padding:18px;
  box-shadow: 0 20px 60px rgba(0,0,0,.35);
}

.ui-modal__head{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  margin-bottom:8px;
}

.ui-modal__title{
  margin:0;
  font-size:18px;
  font-weight:900;
}

.ui-modal__close{
  width:40px;
  height:40px;
  border-radius:12px;
  border:1px solid #eee;
  background:#fff;
  cursor:pointer;
  font-size:20px;
  line-height:1;
}

.ui-modal__hint{
  margin:0 0 14px;
  color:#555;
  font-size:14px;
}

/*+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/

/* =========================================================
   CARROSSEL DE PROFESSORES – FUNDO COM IMAGEM + PARALLAX
   - Fundo: /static/img/fundo_inscricao_w3.png
   - Remove faixa branca embaixo
   - Texto padrão dentro da section: #111111
   - Foto fixa 500x500 (desktop)
   ========================================================= */



/* ===== SECTION (fundo imagem + parallax) ===== */
.classes__detail{
  position: relative;
  width: 100%;
  margin: 0 !important;
  padding: 0 !important;
  border-radius: 0 !important;
  overflow: hidden;

  display: block;           /* garante que não vira inline */
  background-image: url("/static/img/fundo_inscricao_w3.png");
  background-repeat: no-repeat;
  background-size: cover;
  background-position: center;
  background-attachment: fixed; /* parallax simples (desktop) */
}

/* overlay leve pra leitura */
.classes__detail::before{
  content: "";
  position: absolute;
  inset: 0;
  background: rgba(255,255,255,.30);
  pointer-events: none;
  z-index: 0;
}

/* REMOVE overlays antigos herdados */
.classes__detail::after{
  content: none !important;
  display: none !important;
}

/* ===== Texto padrão dentro da section (sem quebrar tudo) ===== */
.classes__detail .prof-slide__badge,
.classes__detail .prof-slide__headline,
.classes__detail .prof-slide__desc,
.classes__detail .prof-slide__note,
.classes__detail .chip{
  color: #111111 !important;
}

/* Destaque do título (laranja, como referência) */
.classes__detail .prof-slide__headline span{
  color: #ff8a00 !important;
}

/* ===== CARROSSEL (full) ===== */
.prof-carousel{
  position: relative;
  width: 100%;
  margin: 0 !important;
  padding: 0 !important;
  z-index: 1; /* acima do overlay */
}

.prof-carousel__viewport{
  width: 100%;
  overflow: hidden;
  margin: 0 !important;
  padding: 0 !important;
}

.prof-carousel__track{
  display: flex;
  gap: 0 !important;
  transition: transform .45s ease;
  will-change: transform;
}

.prof-slide{
  flex: 0 0 100%;
  width: 100%;
}

/* ===== CARD ===== */
.prof-slide__card{
  display: grid;
  grid-template-columns: 500px 1fr; /* foto 500 + texto */
  align-items: center;

  width: 100%;
  min-height: clamp(520px, 72vh, 780px);

  margin: 0 !important;
  padding: 0 !important;

  background: transparent !important;
  border: 0 !important;
  border-radius: 0 !important;
  box-shadow: none !important;
}

/* ===== FOTO 500x500 (DESKTOP) ===== */
.prof-slide__photo{
  width: 500px;
  height: 500px;

  overflow: hidden;
  background: #0b0b0d;
  justify-self: center;
  align-self: center;

  border-radius: 22px; /* se quiser totalmente quadrado: 0 */
  position: relative;  /* obrigatório para etiqueta na foto */
}

/* foto sem distorcer */
.prof-slide__photo img{
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
  display: block;
}

/* ===== ETIQUETA NA FOTO (nome do professor) ===== */
.prof-photo-tag{
  position: absolute;
  left: 16px;
  bottom: 16px;

  padding: 14px 14px 12px;
  border-radius: 16px;

  background: rgba(10,10,10,.55);
  border: 1px solid rgba(255,255,255,.10);

  backdrop-filter: blur(6px);
  -webkit-backdrop-filter: blur(6px);

  box-shadow: 0 18px 50px rgba(0,0,0,.45);
  color: #ffffff;
  max-width: calc(100% - 32px);
}

.prof-photo-tag__name{
  font-size: 20px;
  font-weight: 900;
  line-height: 1.1;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  color: #ffffff;
}

.prof-photo-tag__role{
  margin-top: 6px;
  font-size: 11px;
  font-weight: 800;
  letter-spacing: .16em;
  opacity: .9;
  color: #ff8a00;
  text-transform: uppercase;
}

/* ===== TEXTO ===== */
.prof-slide__info{
  display: flex;
  flex-direction: column;
  justify-content: center;
  padding: clamp(22px, 4vw, 54px);
  max-width: 900px;
}

.prof-slide__badge{
  font-size: 12px;
  letter-spacing: .12em;
  opacity: .9;
  margin-bottom: 12px;
}

.prof-slide__headline{
  font-size: clamp(34px, 4.2vw, 56px);
  line-height: 1.05;
  font-weight: 900;
  margin: 0 0 12px;
}

.prof-slide__desc{
  max-width: 720px;
  margin: 0 0 18px;
  opacity: .98;
  line-height: 1.65;
  text-align: justify
}

/* ===== CHIPS ===== */
.prof-slide__chips{
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin: 10px 0 18px;
}

.chip{
  padding: 10px 14px;
  border-radius: 999px;
  font-size: 13px;

  background: rgba(255,255,255,.70) !important;
  border: 1px solid rgba(0,0,0,.14) !important;
}

/* ===== BOTÃO ===== */
.btn-cta{
  width: fit-content;
  padding: 14px 22px;
  border-radius: 999px;
  border: 0;

  background: linear-gradient(90deg, #ff8a00, #ffb100);
  color: #111111 !important;
  font-weight: 900;
  cursor: pointer;

  box-shadow: 0 18px 36px rgba(255,138,0,.35);
  transition: transform .2s ease, box-shadow .2s ease;
}

.btn-cta:hover{
  transform: translateY(-1px);
  box-shadow: 0 22px 44px rgba(255,138,0,.45);
}

.prof-slide__note{
  margin-top: 10px;
  font-size: 13px;
  opacity: .95;
}

/* ===== NAV ===== */
.prof-carousel__nav{
  position: absolute;
  top: 50%;
  transform: translateY(-50%);

  width: 48px;
  height: 48px;
  border-radius: 50%;

  background: rgba(255,255,255,.70);
  border: 1px solid rgba(0,0,0,.18);
  color: #111111 !important;

  display: grid;
  place-items: center;
  cursor: pointer;
  z-index: 10;
  font-size: 22px;
}

.prof-carousel__nav--prev{ left: 14px; }
.prof-carousel__nav--next{ right: 14px; }

/* ===== MODAL (mantém) ===== */
.ui-modal{
  position: fixed;
  inset: 0;
  display: none;
  z-index: 9999;
}

.ui-modal.is-open{ display: block; }

.ui-modal__overlay{
  position: absolute;
  inset: 0;
  background: rgba(0,0,0,.65);
}

.ui-modal__panel{
  width: min(720px, calc(100% - 24px));
  margin: 40px auto;
  background: #fff;
  padding: 22px;
  border-radius: 20px;
  box-shadow: 0 30px 80px rgba(0,0,0,.45);
}

/* ===== RESPONSIVO ===== */
@media (max-width: 980px){
  .prof-slide__card{
    grid-template-columns: 1fr;
    min-height: auto;
  }

  .prof-slide__photo{
    width: 500px;
    height: 500px;
    max-width: calc(100% - 32px);
  }

  .prof-slide__info{
    padding: 22px 18px 28px;
  }
}

/* Mobile: parallax fixed costuma falhar -> desliga */
@media (max-width: 768px){
  .classes__detail{
    background-attachment: scroll;
  }
}

@media (max-width: 560px){
  .prof-slide__photo{
    width: calc(100% - 32px);
    height: 380px;
  }

  .btn-cta{
    width: 100%;
  }
}

/* =========================================================
   MODAL INSCRIÇÃO — FIX MOBILE (caber na tela + botão visível)
   - O modal ocupa a viewport inteira
   - O painel tem altura máxima e o corpo rola por dentro
   - Evita "sumir" o botão no mobile
   ========================================================= */

.ui-modal{
  position: fixed;
  inset: 0;
  display: none;
  z-index: 9999;
}

.ui-modal.is-open{
  display: block;
}

/* overlay escuro */
.ui-modal__overlay{
  position: absolute;
  inset: 0;
  background: rgba(0,0,0,.65);
}

/* PAINEL (desktop/tablet) */
.ui-modal__panel{
  position: relative;
  width: min(760px, calc(100% - 24px));
  margin: 40px auto;
  background: #fff;
  border-radius: 18px;
  box-shadow: 0 30px 80px rgba(0,0,0,.45);

  /* vira layout vertical: header + conteúdo rolável */
  display: flex;
  flex-direction: column;

  /* impede o modal de passar da tela */
  max-height: calc(100vh - 80px);
  overflow: hidden;
}

/* cabeçalho fixo */
.ui-modal__head{
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 18px 18px 10px;
  flex: 0 0 auto;
}

.ui-modal__title{
  margin: 0;
  font-size: 20px;
  font-weight: 900;
}

.ui-modal__close{
  width: 42px;
  height: 42px;
  border-radius: 12px;
  border: 1px solid rgba(0,0,0,.12);
  background: #fff;
  font-size: 22px;
  cursor: pointer;
}

/* hint (linha do BOI-BUMBÁ...) */
.ui-modal__hint{
  padding: 0 18px 12px;
  margin: 0;
  color: #555;
  flex: 0 0 auto;
}

/* CONTEÚDO ROLÁVEL (o form fica aqui dentro) */
.ui-form{
  padding: 0 18px 18px;
  overflow: auto;
  -webkit-overflow-scrolling: touch;
  flex: 1 1 auto;
}

/* grid dos campos */
.ui-row{
  display: grid;
  gap: 12px;
  margin-bottom: 12px;
}

.ui-row--2{
  grid-template-columns: 1fr 1fr;
}

/* inputs */
.ui-group{ display: flex; flex-direction: column; gap: 6px; }

.ui-label{
  font-weight: 800;
  color: #111;
}

.ui-input,
.ui-select,
.ui-textarea{
  width: 100%;
  border-radius: 12px;
  border: 1px solid rgba(0,0,0,.15);
  padding: 12px 12px;
  font-size: 16px; /* evita zoom do iOS */
  outline: none;
  background: #fff;
  color: #111;
}

.ui-textarea{
  min-height: 110px;
  resize: vertical;
}

/* botão sempre acessível */
.ui-submit{
  width: 100%;
  border: 0;
  border-radius: 999px;
  padding: 14px 18px;
  font-weight: 900;
  font-size: 16px;
  cursor: pointer;
  background: linear-gradient(90deg, #ff8a00, #ffb100);
  color: #111;
  box-shadow: 0 18px 36px rgba(255,138,0,.25);
  margin-top: 8px;
}

/* =========================
   MOBILE: modal ocupa TUDO
   ========================= */
@media (max-width: 640px){
  .ui-modal__panel{
    width: 100%;
    height: 100vh;
    max-height: 100vh;
    margin: 0;
    border-radius: 0;
  }

  .ui-modal__head{
    padding: 16px 14px 10px;
  }

  .ui-modal__hint{
    padding: 0 14px 12px;
  }

  .ui-form{
    padding: 0 14px 18px;
  }

  .ui-row--2{
    grid-template-columns: 1fr; /* 1 coluna no mobile */
  }
}

/* =========================
   ANDROID/IOS: evita “vazar” a página atrás do modal
   (se o teu JS já seta body overflow hidden, melhor ainda)
   ========================= */
.ui-modal.is-open ~ *{
  pointer-events: none;
}
.ui-modal.is-open{
  pointer-events: auto;
}



