/* ==========================================================================
   Escola de Dança Beth Maura — Design System
   Rosa Claro #F9BFC0 · Dourado #C9A24B · Marfim #F5F0E6 · Cinza #737677
   ========================================================================== */

@import url('https://fonts.googleapis.com/css2?family=Cormorant+Garamond:ital,wght@0,400;0,500;0,600;1,400&family=Jost:wght@300;400;500;600&display=swap');

:root{
  --rosa: #F9BFC0;
  --rosa-escuro: #e8a3a5;
  --dourado: #C9A24B;        /* uso decorativo: linhas, bordas, pontos, ícones */
  --dourado-claro: #dcbd7a;  /* uso sobre fundo escuro (rodapé) */
  --dourado-texto: #7d5f29;  /* uso em texto sobre fundo claro (AA) */
  --dourado-botao: #8f7129;  /* fundo de botão/ícone com texto branco (AA) */
  --dourado-botao-hover: #6f5720;
  --marfim: #F5F0E6;
  --branco: #FFFDF9;
  --cinza: #737677;
  --cinza-escuro: #4a4d4e;
  --cinza-texto: #5c5f60;
  --preto-suave: #33302c;

  --serif: 'Cormorant Garamond', Georgia, serif;
  --sans: 'Jost', 'Helvetica Neue', Arial, sans-serif;

  --max: 1180px;
  --radius: 2px;
}

*{box-sizing:border-box;min-width:0;}
html{scroll-behavior:smooth;overflow-x:clip;}
body{
  margin:0;
  font-family:var(--sans);
  color:var(--preto-suave);
  background:var(--branco);
  font-weight:300;
  line-height:1.65;
  -webkit-font-smoothing:antialiased;
  overflow-x:clip;
  width:100%;
}

img{max-width:100%;display:block;}
a{color:inherit;text-decoration:none;}
ul{margin:0;padding:0;list-style:none;}
button{font-family:inherit;cursor:pointer;}

.wrap{max-width:var(--max);margin:0 auto;padding:0 32px;}

h1,h2,h3,h4{
  font-family:var(--serif);
  font-weight:500;
  margin:0;
  color:var(--preto-suave);
  letter-spacing:.2px;
}

h1{font-size:clamp(2.4rem,5vw,4rem);line-height:1.08;}
h2{font-size:clamp(1.9rem,3.4vw,2.7rem);line-height:1.15;}
h3{font-size:1.5rem;line-height:1.3;}

p{margin:0 0 1em;}
.lede{font-size:1.15rem;color:var(--cinza-texto);font-weight:300;}

@media (prefers-reduced-motion: reduce){
  *{animation-duration:0.01ms !important;transition-duration:0.01ms !important;transition-delay:0ms !important;scroll-behavior:auto !important;}
  .animar-entrada{opacity:1 !important;transform:none !important;}
}

/* ---- focus visibility ---- */
a:focus-visible,button:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible{
  outline:2px solid var(--dourado-texto);
  outline-offset:3px;
}

/* ---- section rhythm ---- */
.section{padding:96px 0;}
.section--tight{padding:64px 0;}
.section--marfim{background:var(--marfim);}
.section--rosa{background:linear-gradient(180deg,var(--marfim) 0%, var(--rosa) 140%);}
.section--escura{background:var(--cinza-escuro);color:var(--marfim);}
.section--escura h2, .section--escura h3{color:var(--branco);}

.divisor-ouro{
  width:64px;height:2px;background:var(--dourado);
  margin:22px 0;
}
.divisor-ouro--centro{margin-left:auto;margin-right:auto;}

.eyebrow{
  font-family:var(--serif);
  font-style:italic;
  font-size:1.65rem;
  color:var(--dourado-texto);
  margin:0 0 6px;
}

.centro{text-align:center;}
.max-txt{max-width:640px;}
.max-txt--centro{max-width:640px;margin-left:auto;margin-right:auto;}

/* ---- buttons ---- */
.btn{
  display:inline-flex;align-items:center;gap:10px;
  padding:15px 30px;
  font-family:var(--sans);font-size:.95rem;font-weight:500;
  border-radius:var(--radius);
  border:1px solid transparent;
  transition:background .25s ease, color .25s ease, border-color .25s ease;
  white-space:nowrap;
}
.btn-primary{background:var(--dourado-botao);color:var(--branco);}
.btn-primary:hover{background:var(--dourado-botao-hover);}
.btn-outline{border-color:var(--cinza-escuro);color:var(--cinza-escuro);}
.btn-outline:hover{background:var(--cinza-escuro);color:var(--branco);}
.btn-outline-claro{border-color:var(--branco);color:var(--branco);}
.btn-outline-claro:hover{background:var(--branco);color:var(--preto-suave);}
.btn-rosa{background:var(--rosa);color:var(--preto-suave);}
.btn-rosa:hover{background:var(--rosa-escuro);}

/* ==========================================================================
   Header / nav
   ========================================================================== */
.header{
  position:sticky;top:0;z-index:100;
  background:rgba(253,251,248,.98);
  border-bottom:1px solid rgba(115,118,119,.15);
}
.header__bar{
  display:flex;align-items:center;justify-content:space-between;
  padding:14px 32px;
  max-width:var(--max);margin:0 auto;
  gap:24px;
}
.header__brand{display:flex;align-items:center;gap:12px;}
.header__brand img{height:72px;width:auto;}
.header__nav{display:flex;align-items:center;gap:30px;}
.header__nav a:not(.btn){
  font-size:.92rem;letter-spacing:.02em;color:var(--cinza-escuro);
  position:relative;padding:4px 0;
}
.header__nav a:not(.btn)::after{
  content:'';position:absolute;left:0;bottom:0;width:0;height:1px;
  background:var(--dourado);transition:width .25s ease;
}
.header__nav a:not(.btn):hover::after,.header__nav a.ativo:not(.btn)::after{width:100%;}
.header__nav a.ativo:not(.btn){color:#8a6a2e;font-weight:500;}
.header__cta{
  font-size:.85rem;padding:11px 22px;
}
.header__toggle{display:none;background:none;border:none;padding:8px;}
.header__toggle svg{width:24px;height:24px;}

@media (max-width:920px){
  .header__nav{
    position:fixed;inset:var(--header-h, 96px) 0 0 0;background:var(--branco);
    flex-direction:column;justify-content:flex-start;align-items:flex-start;
    padding:32px;gap:22px;
    transform:translateX(100%);transition:transform .3s ease;
  }
  .header__nav.aberto{transform:translateX(0);}
  .header__nav a{font-size:1.15rem;}
  .header__toggle{display:block;}
  .header__cta{margin-top:10px;}
}

/* ==========================================================================
   Hero
   ========================================================================== */
.hero{
  padding:80px 0 90px;
  background:
    radial-gradient(ellipse at 85% 10%, rgba(249,191,192,.55), transparent 55%),
    var(--marfim);
  position:relative;
  overflow:hidden;
}
.hero__grid{
  display:grid;grid-template-columns:1.1fr .9fr;gap:56px;align-items:center;
}
.hero__eyebrow{color:var(--dourado-texto);font-family:var(--serif);font-style:italic;font-size:1.65rem;margin-bottom:14px;}
.hero__cta-row{display:flex;gap:16px;margin-top:34px;flex-wrap:wrap;}
.hero__art{position:relative;}
.hero__art svg{width:100%;height:auto;}

@media (max-width:860px){
  .hero__grid{grid-template-columns:1fr;text-align:left;}
  .hero__art{max-width:280px;margin:0 auto;order:-1;}
}

/* ---- stat bar ---- */
.stats{
  display:flex;
  border-top:1px solid rgba(115,118,119,.25);
  border-bottom:1px solid rgba(115,118,119,.25);
}
.stats__item{
  flex:1;text-align:center;padding:34px 12px;
  border-right:1px solid rgba(115,118,119,.25);
}
.stats__item:last-child{border-right:none;}
.stats__num{
  font-family:var(--serif);font-size:2.6rem;color:var(--dourado-texto);display:block;font-weight:600;
}
.stats__label{font-size:.1.5rem;color:var(--cinza-texto);letter-spacing:.03em;}

@media (max-width:700px){
  .stats{flex-wrap:wrap;}
  .stats__item{flex:1 1 50%;border-bottom:1px solid rgba(115,118,119,.25);}
}

/* ==========================================================================
   Grids / cards
   ========================================================================== */
.grid-2{display:grid;grid-template-columns:1fr 1fr;gap:48px;align-items:center;}
.grid-3{display:grid;grid-template-columns:repeat(3,1fr);gap:32px;}
.grid-4{display:grid;grid-template-columns:repeat(4,1fr);gap:28px;}
@media (max-width:900px){
  .grid-2{grid-template-columns:1fr;gap:36px;}
  .grid-3{grid-template-columns:1fr 1fr;}
  .grid-4{grid-template-columns:1fr 1fr;}
}
@media (max-width:560px){
  .grid-3{grid-template-columns:1fr;}
  .grid-4{grid-template-columns:1fr;}
}

.lista-check{margin-top:18px;}
.lista-check li{
  display:flex;gap:12px;padding:9px 0;border-bottom:1px solid rgba(115,118,119,.15);
  font-size:.98rem;color:var(--cinza-texto);
}
.lista-check li:last-child{border-bottom:none;}
.lista-check li::before{
  content:'';flex:0 0 6px;height:6px;width:6px;border-radius:50%;
  background:var(--dourado);margin-top:9px;
}

/* placeholder photo block (no real photography yet) */
.foto-placeholder{
  aspect-ratio: 4/3;
  border-radius:var(--radius);
  background:linear-gradient(135deg, var(--rosa) 0%, var(--marfim) 60%);
  display:flex;align-items:center;justify-content:center;
  position:relative;overflow:hidden;
  border:1px solid rgba(115,118,119,.2);
}
.foto-placeholder--quadrada{
  aspect-ratio:1/1;
  position:relative;
  overflow:hidden;
  border-radius:var(--radius);
}
.foto-placeholder--alta{aspect-ratio:3/4;}
.foto-placeholder__legenda{
  position:absolute;bottom:0;left:0;right:0;
  padding:10px 14px;
  background:rgba(51,48,44,.55);
  color:var(--branco);font-size:.72rem;font-style:italic;font-family:var(--serif);
}
.foto-placeholder svg{width:38%;height:38%;opacity:.55;}

/* ---- modalidade card ---- */
.modalidade{
  background:var(--branco);
  border:1px solid rgba(115,118,119,.18);
  padding:0 0 28px;
  display:flex;flex-direction:column;
}
.modalidade__corpo{padding:26px 26px 0;flex:1;display:flex;flex-direction:column;}
.modalidade__tag{
  font-size:.72rem;letter-spacing:.06em;color:var(--dourado-texto);
  margin-bottom:10px;
}
.modalidade__desc{font-size:.94rem;color:var(--cinza-texto);flex:1;}
.modalidade__cta{margin-top:16px;font-size:.85rem;color:var(--cinza-escuro);border-bottom:1px solid var(--dourado);padding-bottom:2px;align-self:flex-start;}

/* ---- valor / diferencial card ---- */
.valor{padding:8px 0;}
.valor__num{font-family:var(--serif);font-size:1.6rem;color:var(--rosa-escuro);}

/* ---- depoimento ---- */
.depoimento{
  background:var(--branco);
  border-left:2px solid var(--dourado);
  padding:26px 30px;
}
.depoimento p{font-family:var(--serif);font-size:1.25rem;font-style:italic;color:var(--preto-suave);}
.depoimento__autor{font-size:.85rem;color:var(--cinza);font-style:normal;font-family:var(--sans);}
.depoimento--longo{display:flex;flex-direction:column;}
.depoimento--longo p.depoimento__corpo{
  font-family:var(--sans);font-size:.95rem;font-style:normal;font-weight:300;
  color:var(--cinza-texto);margin-bottom:14px;
}
.depoimento--longo .depoimento__autor{margin-top:8px;line-height:1.5;}

/* ---- professor ---- */
.professor{text-align:center;}
.professor h3{margin-top:18px;}
.professor__cargo{color:var(--dourado-texto);font-size:.85rem;letter-spacing:.03em;margin-bottom:10px;}

/* ---- blog card ---- */
.post{background:var(--branco);border:1px solid rgba(115,118,119,.18);}
.post__corpo{padding:22px 24px 26px;}
.post__meta{font-size:.72rem;color:var(--dourado-texto);letter-spacing:.05em;margin-bottom:8px;}

/* ---- FAQ ---- */
.faq-item{border-bottom:1px solid rgba(115,118,119,.2);padding:22px 0;}
.faq-item__pergunta{
  display:flex;justify-content:space-between;align-items:center;gap:20px;
  font-family:var(--serif);font-size:1.2rem;cursor:pointer;
}
.faq-item__resposta{
  max-height:0;overflow:hidden;transition:max-height .3s ease;
  color:var(--cinza-texto);font-size:.96rem;
}
.faq-item__icone{font-size:1.4rem;color:var(--dourado-texto);flex:0 0 auto;transition:transform .25s ease;}
.faq-item.aberto .faq-item__resposta{max-height:220px;padding-top:12px;}
.faq-item.aberto .faq-item__icone{transform:rotate(45deg);}

/* ---- formulário ---- */
.form-card{background:var(--branco);border:1px solid rgba(115,118,119,.2);padding:40px;}
.campo{margin-bottom:20px;}
.campo label{display:block;font-size:.82rem;color:var(--cinza-escuro);margin-bottom:6px;letter-spacing:.02em;}
.campo input,.campo select,.campo textarea{
  width:100%;padding:12px 14px;
  border:1px solid rgba(115,118,119,.35);
  background:var(--marfim);
  font-family:var(--sans);font-size:.95rem;color:var(--preto-suave);
  border-radius:var(--radius);
}
.campo input:focus,.campo select:focus,.campo textarea:focus{
  outline:none;border-color:var(--dourado-texto);background:var(--branco);
}
.campo-linha{display:grid;grid-template-columns:1fr 1fr;gap:18px;}
@media (max-width:560px){.campo-linha{grid-template-columns:1fr;}}

/* ==========================================================================
   Footer
   ========================================================================== */
.footer{background:var(--cinza-escuro);color:var(--marfim);padding:64px 0 26px;}
.footer__grid{display:grid;grid-template-columns:1.4fr 1fr 1fr 1fr;gap:40px;}
.footer__brand img{height:76px;filter:brightness(0) invert(1);opacity:.92;margin-bottom:14px;}
.footer__desc{color:#c8c9c9;font-size:.9rem;max-width:280px;}
.footer h4{color:var(--dourado-claro);font-size:.85rem;letter-spacing:.06em;margin-bottom:16px;font-family:var(--sans);font-weight:500;}
.footer ul li{margin-bottom:10px;}
.footer a{color:#d8d9d9;font-size:.9rem;}
.footer a:hover{color:var(--dourado-claro);}
.footer__base{
  border-top:1px solid rgba(255,255,255,.12);
  margin-top:48px;padding-top:22px;
  display:flex;justify-content:space-between;flex-wrap:wrap;gap:10px;
  font-size:.78rem;color:#a9abab;
}
@media (max-width:820px){
  .footer__grid{grid-template-columns:1fr 1fr;}
}
@media (max-width:520px){
  .footer__grid{grid-template-columns:1fr;}
}

/* ==========================================================================
   WhatsApp floating button
   ========================================================================== */
.whats-flutuante{
  position:fixed;right:22px;bottom:22px;z-index:200;
  display:flex;align-items:center;gap:10px;
  background:var(--cinza-escuro);color:var(--branco);
  padding:14px 20px 14px 14px;
  border-radius:40px;
  box-shadow:0 8px 24px rgba(0,0,0,.22);
  transition:transform .2s ease, background .2s ease;
}
.whats-flutuante:hover{background:var(--dourado-botao);transform:translateY(-2px);}
.whats-flutuante svg{width:26px;height:26px;flex:0 0 auto;}
.whats-flutuante span{font-size:.85rem;font-weight:500;}
@media (max-width:560px){
  .whats-flutuante span{display:none;}
  .whats-flutuante{padding:14px;}
}

/* ==========================================================================
   Page hero (páginas internas)
   ========================================================================== */
.page-hero{
  padding:64px 0 56px;
  background:var(--marfim);
  border-bottom:1px solid rgba(115,118,119,.18);
}
.breadcrumb{font-size:.8rem;color:var(--cinza);margin-bottom:14px;}
.breadcrumb a:hover{color:var(--dourado-texto);}

/* ---- animação sutil de entrada única no hero da home ---- */
@keyframes surgir{
  from{opacity:0;transform:translateY(14px);}
  to{opacity:1;transform:translateY(0);}
}
.hero__grid > *{animation:surgir .8s ease both;}
.hero__grid > *:nth-child(2){animation-delay:.15s;}

/* seção mapa */
.mapa-embed{border:0;width:100%;height:380px;filter:grayscale(35%);}

/* ==========================================================================
   Vídeo em destaque (clique para reproduzir — nada é baixado antes do clique)
   ========================================================================== */
.video-showcase{max-width:min(340px, 86vw);margin:44px auto 0;}
.video-showcase__play{
  position:relative;display:block;width:100%;aspect-ratio:9/16;
  border:none;padding:0;margin:0;cursor:pointer;
  border-radius:var(--radius);overflow:hidden;background:#1a1a1a;
  box-shadow:0 18px 40px rgba(0,0,0,.18);
}
.video-showcase__play img{
  width:100%;height:100%;object-fit:cover;display:block;
  transition:transform .5s ease, filter .5s ease;
}
.video-showcase__play:hover img{transform:scale(1.04);filter:brightness(.85);}
.video-showcase__icone{
  position:absolute;inset:0;display:flex;align-items:center;justify-content:center;
}
.video-showcase__icone span{
  width:68px;height:68px;border-radius:50%;
  background:rgba(255,253,249,.92);
  display:flex;align-items:center;justify-content:center;
  box-shadow:0 6px 20px rgba(0,0,0,.25);
  transition:transform .25s ease, background .25s ease;
}
.video-showcase__play:hover .video-showcase__icone span{transform:scale(1.08);background:var(--branco);}
.video-showcase__icone svg{width:24px;height:24px;margin-left:4px;fill:var(--dourado-botao);}
.video-showcase video{
  width:100%;height:100%;display:block;object-fit:cover;
  border-radius:var(--radius);background:#000;
  box-shadow:0 18px 40px rgba(0,0,0,.18);
}
.video-showcase__legenda{text-align:center;font-size:.82rem;color:var(--cinza);margin-top:14px;}

/* ==========================================================================
   Movimento suave ao rolar (motion on scroll)
   ========================================================================== */
.animar-entrada{
  opacity:0;
  transform:translateY(28px);
  transition:opacity .7s cubic-bezier(.2,.6,.2,1), transform .7s cubic-bezier(.2,.6,.2,1);
  transition-delay:var(--atraso,0ms);
}
.animar-entrada.em-vista{opacity:1;transform:translateY(0);}
/* pequenas variações de atraso entre itens vizinhos, para não animar tudo junto */
.grid-3 > *.animar-entrada:nth-child(2),
.grid-4 > *.animar-entrada:nth-child(2){--atraso:80ms;}
.grid-3 > *.animar-entrada:nth-child(3),
.grid-4 > *.animar-entrada:nth-child(3){--atraso:160ms;}
.grid-4 > *.animar-entrada:nth-child(4){--atraso:240ms;}

/* ---- ícones das modalidades (imagens preto e branco) ---- */
.icone-modalidade{
  aspect-ratio:1/1;
  background:linear-gradient(135deg,#f6f6f4 0%, #e6e6e3 100%);
  border:1px solid rgba(115,118,119,.18);
  display:flex;align-items:center;justify-content:center;
  border-radius:var(--radius);
  overflow:hidden;
}
.icone-modalidade--alta{aspect-ratio:3/4;}
.icone-modalidade--larga{aspect-ratio:4/3;}
.icone-modalidade img{width:56%;height:56%;object-fit:contain;}
.icone-modalidade--alta img{width:46%;height:46%;}
.icone-modalidade--larga img{width:42%;height:42%;}

/* utilitário */
.mt-0{margin-top:0;}
.gap-imagens{display:grid;grid-template-columns:1fr 1fr;gap:18px;}
@media (max-width:560px){.gap-imagens{grid-template-columns:1fr;}}
