/* ============================================================
   Revolution Barber — style.css
   Dark editorial · bordô + dourado · Aleo (títulos) + Manrope (corpo)
   ============================================================ */

:root{
  --bg:#0D0D0D;
  --bg-2:#121212;
  --surface:#171717;
  --surface-2:#1C1C1C;
  --border:#262626;
  --bordo:#7B1D22;
  --bordo-hi:#9E2A30;
  --gold:#C9A84C;
  --gold-hi:#E3C77A;
  --text:#F5F5F5;
  --muted:#9A9A9A;
  --muted-2:#8A8A8A;  /* 5,4:1 sobre o fundo do rodapé — #6E6E6E dava 3,7:1 e reprovava no AA */
  --maxw:1240px;
  --ease:cubic-bezier(.22,.61,.36,1);
}

*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{
  margin:0;background:var(--bg);color:var(--text);
  font-family:'Manrope',system-ui,sans-serif;font-size:16px;line-height:1.6;
  font-weight:400;overflow-x:hidden;
  -webkit-font-smoothing:antialiased;
}
/* Grão de filme: textura levíssima por cima de tudo, para o fundo sólido não ficar chapado */
body::before{
  content:"";position:fixed;inset:0;z-index:9999;pointer-events:none;opacity:.04;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='3'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
}
main{display:block}
img{max-width:100%;display:block}
a{color:inherit;text-decoration:none}
button{font-family:inherit;cursor:pointer}
::selection{background:var(--bordo);color:#fff}
/* Navegação por teclado: os links perdem o sublinhado e os botões são customizados,
   então sem um anel próprio não dá para saber onde o foco está. */
:focus-visible{outline:2px solid var(--gold);outline-offset:3px}

.container{width:100%;max-width:var(--maxw);margin:0 auto;padding:0 24px}
.section{padding:96px 0;position:relative}
.muted{color:var(--muted)}
.nowrap{white-space:nowrap}

/* Typography ------------------------------------------------ */
.display{
  font-family:'Aleo',serif;font-weight:600;
  font-size:clamp(2.4rem,6vw,4.6rem);line-height:1.04;letter-spacing:-.01em;margin:0 0 28px;
}
.display em{font-style:italic;color:var(--gold);font-weight:500}
.eyebrow{
  font-size:.78rem;letter-spacing:.28em;text-transform:uppercase;color:var(--gold);
  font-weight:500;margin:0 0 22px;
}
.section-label{
  font-size:.8rem;letter-spacing:.22em;text-transform:uppercase;color:var(--muted);
  margin:0 0 18px;display:flex;align-items:center;gap:10px;
}
.lead{font-size:clamp(1.05rem,1.8vw,1.3rem);color:#d6d6d6;max-width:46ch;line-height:1.7}

/* Buttons --------------------------------------------------- */
.btn{
  display:inline-flex;align-items:center;justify-content:center;gap:8px;
  padding:15px 30px;border-radius:8px;font-weight:600;font-size:.92rem;
  letter-spacing:.03em;border:1px solid transparent;transition:.28s var(--ease);
  min-height:50px;position:relative;will-change:transform;
}
/* primário — burgundy com brilho interno e sombra suave */
.btn--solid{background:linear-gradient(180deg,#7e2128 0%,#5d1217 100%);color:#fff;
  border:1px solid rgba(201,168,76,.22);
  box-shadow:0 12px 30px -14px rgba(0,0,0,.75),inset 0 1px 0 rgba(255,255,255,.08)}
.btn--solid:hover{background:linear-gradient(180deg,#8d2731 0%,#6a161c 100%);transform:translateY(-2px);
  box-shadow:0 18px 40px -14px rgba(0,0,0,.8),inset 0 1px 0 rgba(255,255,255,.12)}
/* secundário — glassmorphism */
.btn--ghost{background:rgba(255,255,255,.05);color:#f0f0f0;border:1px solid rgba(255,255,255,.14);
  -webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.06)}
.btn--ghost:hover{background:rgba(255,255,255,.1);border-color:rgba(201,168,76,.5);transform:translateY(-2px)}
/* dourado — gradiente com brilho */
.btn--gold{background:linear-gradient(180deg,#dec172 0%,#c9a84c 100%);color:#1a1306;
  border:1px solid rgba(255,255,255,.2);
  box-shadow:0 12px 30px -14px rgba(201,168,76,.5),inset 0 1px 0 rgba(255,255,255,.35)}
.btn--gold:hover{background:linear-gradient(180deg,#e9d089 0%,#d4b557 100%);transform:translateY(-2px)}
.link-gold{color:var(--gold);font-weight:600;letter-spacing:.02em;transition:.2s}
.link-gold:hover{color:var(--gold-hi);letter-spacing:.05em}
/* Link no meio de texto corrido: precisa de cor e sublinhado próprios, senão
   passa despercebido no meio do parágrafo. */
.inline-link{color:var(--gold);text-decoration:underline;text-decoration-thickness:1px;
  text-underline-offset:3px;text-decoration-color:rgba(201,168,76,.4);transition:.2s}
.inline-link:hover,.inline-link:focus-visible{color:var(--gold-hi);text-decoration-color:var(--gold-hi)}

/* Reveal animation default state ---------------------------- */
[data-rev]{opacity:0;transform:translateY(26px)}
.no-js [data-rev]{opacity:1;transform:none}

/* Scroll progress ------------------------------------------- */
.scroll-progress{position:fixed;top:0;left:0;height:2px;width:0;background:var(--gold);z-index:1000}

/* Nav ------------------------------------------------------- */
/* Base = mobile: só logo e hambúrguer, sem tarja, e a faixa vazia deixa o clique passar
   para o conteúdo por baixo.
   O position:fixed daqui vale para o DESKTOP — no mobile ele é trocado por absolute no
   bloco @media(max-width:860px). Motivo: fixo + sem tarja fazia todo o texto da página
   passar por baixo da logo e do hambúrguer durante a rolagem. */
.nav{position:fixed;top:0;left:0;right:0;z-index:900;pointer-events:none;
  transition:background .35s var(--ease),border-color .35s var(--ease);
  padding-top:env(safe-area-inset-top,0px);transform:translateZ(0);-webkit-transform:translateZ(0)}
.nav__inner{display:flex;align-items:center;justify-content:space-between;height:78px;gap:20px}
.nav__inner>*{pointer-events:auto}
/* logo branca sem fundo: o border-radius era da tarja bordô que saiu, e a sombra
   vale nos dois breakpoints agora — sem fundo próprio, ela pousa direto na foto */
.nav__logo img{height:36px;width:auto;filter:drop-shadow(0 1px 6px rgba(0,0,0,.55))}
.nav__links{display:flex;gap:28px}
.nav__links a{font-size:.86rem;color:#cfcfcf;letter-spacing:.02em;transition:.2s;position:relative;text-shadow:0 1px 8px rgba(0,0,0,.6)}
.nav__links a:hover{color:var(--gold)}
.nav__links a::after{content:"";position:absolute;left:0;bottom:-6px;height:1px;width:0;background:var(--gold);transition:.3s var(--ease)}
.nav__links a:hover::after{width:100%}
.nav__cta{padding:11px 24px;min-height:auto}
.nav__burger{display:none;flex-direction:column;gap:5px;background:none;border:0;padding:8px}
.nav__burger span{display:block;width:26px;height:2px;background:var(--text);transition:.3s;box-shadow:0 1px 6px rgba(0,0,0,.55)}
/* Desktop: header como era no original — fixo, acompanhando a rolagem, e a tarja
   (fundo + blur + borda) entra depois de 40px. A sombra de legibilidade sai: aqui
   quem dá contraste é a própria tarja. */
@media(min-width:861px){
  .nav{pointer-events:auto}
  .nav.scrolled{background:rgba(13,13,13,.82);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);
    border-bottom:1px solid var(--border)}
  .nav__links a{text-shadow:none}
}

/* Hero ------------------------------------------------------ */
/* min-height duplo de proposito: svh e de Chrome 108 (fim de 2022). Sem a linha de
   cima, um navegador mais antigo descarta a declaracao inteira e o hero fica sem
   altura minima nenhuma — colapsa para a altura do conteudo (~376px), a foto vira
   uma faixa e o titulo sobe para debaixo da logo. */
.hero{position:relative;min-height:100vh;min-height:100svh;display:flex;align-items:center;overflow:hidden}
.hero__media{position:absolute;inset:0;z-index:0}
.hero__media picture{display:contents}
.hero__media img{width:100%;height:100%;object-fit:cover;object-position:72% center}
.hero__overlay{position:absolute;inset:0;z-index:1;
  background:linear-gradient(90deg,rgba(13,13,13,.92) 0%,rgba(13,13,13,.72) 32%,rgba(13,13,13,.32) 52%,transparent 70%),
             linear-gradient(180deg,transparent 70%,var(--bg) 100%)}
.hero__content{position:relative;z-index:2;max-width:880px;
  padding:48px 48px 48px clamp(28px,7vw,140px)}
.hero__title{font-family:'Aleo',serif;font-weight:600;
  font-size:clamp(1.8rem,3.1vw,2.9rem);line-height:1.15;letter-spacing:-.01em;margin:0 0 22px}
.hero__title em{font-style:italic;color:var(--gold)}
.hero__sub{font-size:clamp(.92rem,1.4vw,1.08rem);color:#dcdcdc;max-width:52ch;margin:0 0 32px;line-height:1.65}
.ht-mobile,.hs-mobile{display:none}
.hero__actions{display:flex;gap:14px;flex-wrap:wrap;margin-bottom:34px}
.hero__rating{display:flex;align-items:center;gap:10px;font-size:.92rem;color:#cfcfcf;flex-wrap:wrap;position:relative}
.hero__rating strong{color:#fff}
/* Avaliações — gatilho + popover com a divisão Booksy/Google */
.rev-trigger{background:none;border:0;padding:0;color:inherit;font:inherit;letter-spacing:inherit;
  cursor:pointer;display:inline-flex;align-items:center;gap:6px}
/* as estrelas ficam dentro do gatilho — mantém o respiro que o gap do .hero__rating dava */
.rev-trigger .stars{margin-right:4px}
.rev-trigger .ic-chev{width:13px;height:13px;fill:none;stroke:var(--gold);stroke-width:2;
  stroke-linecap:round;stroke-linejoin:round;transition:transform .25s var(--ease)}
.rev-trigger[aria-expanded="true"] .ic-chev{transform:rotate(180deg)}
.rev-pop{position:absolute;bottom:calc(100% + 12px);left:50%;transform:translateX(-50%);z-index:60;
  display:flex;flex-direction:column;min-width:214px;padding:8px;border-radius:11px;
  background:var(--surface-2);border:1px solid var(--border);
  box-shadow:0 18px 40px -12px rgba(0,0,0,.7)}
.rev-pop::after{content:"";position:absolute;top:100%;left:calc(50% - var(--shift,0px));transform:translateX(-50%);
  border:7px solid transparent;border-top-color:var(--surface-2)}
.rev-pop a{padding:10px 14px;border-radius:8px;font-size:.88rem;color:#e2e2e2;white-space:nowrap;transition:.2s;font-style:normal}
.rev-pop a b{color:var(--gold);font-variant-numeric:tabular-nums;font-weight:600}
.rev-pop a:hover{background:rgba(255,255,255,.06);color:#fff}
.stars{display:inline-flex;gap:2px}
.stars svg{width:17px;height:17px;fill:var(--gold)}
.hero__scroll{position:absolute;left:50%;bottom:26px;transform:translateX(-50%);z-index:3;
  display:flex;flex-direction:column;align-items:center;gap:6px;color:var(--muted);
  font-size:.7rem;letter-spacing:.2em;text-transform:uppercase}
.hero__scroll svg{width:18px;height:18px;fill:none;stroke:var(--gold);stroke-width:1.5;animation:bob 1.8s var(--ease) infinite}
@keyframes bob{0%,100%{transform:translateY(0)}50%{transform:translateY(6px)}}

/* Letreiro — base = mobile: Foco · Disciplina · Execução, parado, as três palavras numa visão só.
   No desktop (>=861px) ele volta a rolar em loop com a lista completa. */
.marquee{display:flex;justify-content:center;background:var(--bordo);overflow:hidden;padding:15px 16px;border-top:1px solid rgba(0,0,0,.2)}
/* palavra maior + vao maior fazem a linha ocupar mais largura, e a sobra automatica das
   laterais encolhe ate bater com os separadores — os quatro espacos ficam parelhos. */
.marquee__track{display:flex;align-items:center;justify-content:center;gap:clamp(18px,5.6vw,26px);white-space:nowrap}
.marquee span{font-family:'Aleo',serif;font-style:italic;font-size:clamp(1.08rem,4.3vw,1.32rem);color:#fff;letter-spacing:.01em}
.marquee i{color:var(--gold);font-style:normal;font-size:.62rem}
/* Desktop: dois trilhos idênticos = loop infinito sem buraco, com degradê nas bordas */
@media(min-width:861px){
  .marquee{justify-content:flex-start;padding:16px 0;position:relative}
  .marquee::before,.marquee::after{content:"";position:absolute;top:0;bottom:0;width:40px;z-index:2;pointer-events:none}
  .marquee::before{left:0;background:linear-gradient(90deg,var(--bordo),rgba(123,29,34,0))}
  .marquee::after{right:0;background:linear-gradient(270deg,var(--bordo),rgba(123,29,34,0))}
  .marquee__track{flex:0 0 auto;justify-content:flex-start;gap:26px;padding-right:26px;
    animation:slide 32s linear infinite;will-change:transform}
  .marquee:hover .marquee__track{animation-play-state:paused}
  .marquee span{font-size:1.5rem;letter-spacing:normal}
  .marquee i{font-size:.8rem}
}
@keyframes slide{from{transform:translateX(0)}to{transform:translateX(-100%)}}

/* Sobre ----------------------------------------------------- */
.sobre__grid{display:grid;grid-template-columns:1fr 1fr;gap:70px;align-items:center}
.sobre__media img{width:100%;aspect-ratio:4/3;object-fit:cover;border:1px solid var(--border)}
.sobre__text .lead{margin:0 0 18px}
.values{list-style:none;padding:0;margin:34px 0 0;display:grid;gap:18px}
.values li{display:grid;grid-template-columns:auto 1fr;gap:6px 18px;padding-left:18px;border-left:2px solid var(--bordo)}
.values strong{font-family:'Aleo',serif;font-size:1.15rem;color:var(--gold);grid-column:1/-1}
.values span{color:var(--muted);grid-column:1/-1;font-size:.95rem}

.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:24px;margin-top:90px;
  border-top:1px solid var(--border);border-bottom:1px solid var(--border);padding:46px 0}
.stat{text-align:center;position:relative}
.stat__trigger{display:flex;flex-direction:column;align-items:center;width:100%}
.stat__trigger .ic-chev{vertical-align:-2px}
.stat__num{display:block;font-family:'Aleo',serif;font-size:clamp(2.4rem,5vw,3.6rem);
  color:#fff;font-variant-numeric:tabular-nums;line-height:1}
.stat__label{display:block;margin-top:10px;font-size:.78rem;letter-spacing:.16em;text-transform:uppercase;color:var(--muted)}

/* Equipe ---------------------------------------------------- */
.team-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:28px;margin-top:48px}
.team-card{background:var(--surface);border:1px solid var(--border);overflow:hidden;transition:.4s var(--ease)}
.team-card:hover{border-color:var(--gold);transform:translateY(-6px)}
.team-card__img{aspect-ratio:4/5;overflow:hidden}
.team-card__img img{width:100%;height:100%;object-fit:cover;transition:.7s var(--ease);filter:grayscale(.25)}
.team-card:hover .team-card__img img{transform:scale(1.06);filter:grayscale(0)}
.team-card__body{padding:26px 24px 30px}
.team-card__body h3{font-family:'Aleo',serif;font-size:1.5rem;margin:0 0 4px}
.team-card__role{color:var(--gold);font-size:.82rem;letter-spacing:.08em;text-transform:uppercase;margin:0 0 14px}
/* segunda linha do cargo (só o fundador tem): mesma família, peso menor, sem competir com a primeira */
.team-card__role span{display:block;color:var(--muted);letter-spacing:.06em;margin-top:3px}
.team-card__bio{color:var(--muted);font-size:.95rem;margin:0 0 18px}

/* CTA da galeria -------------------------------------------- */
.galeria__cta{margin-top:40px;text-align:center}

/* Carousel head + controls ---------------------------------- */
.carousel-head{display:flex;align-items:flex-end;justify-content:space-between;gap:24px;margin-bottom:40px}
.carousel-head .display{margin-bottom:0}

/* Galeria — carrossel em loop ------------------------------- */
.gallery-swiper{width:100%;padding:0 24px;overflow:hidden;-webkit-mask-image:linear-gradient(90deg,transparent,#000 4%,#000 96%,transparent)}
.gallery-swiper .swiper-wrapper{transition-timing-function:linear!important;align-items:stretch}
.gallery-swiper .swiper-slide{width:auto;height:clamp(300px,42vw,460px)}
.g-item{display:block;position:relative;height:100%;overflow:hidden;border:1px solid var(--border)}
.g-item img{height:100%;width:auto;max-width:none;object-fit:cover;transition:.6s var(--ease)}
.g-item::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 55%,rgba(123,29,34,.45));opacity:0;transition:.35s}
.g-item:hover img{transform:scale(1.05)}
.g-item:hover::after{opacity:1}

/* Antes e Depois — carrossel em loop ------------------------ */
.ba-swiper{width:100%;padding:0 24px;overflow:hidden;-webkit-mask-image:linear-gradient(90deg,transparent,#000 4%,#000 96%,transparent)}
.ba-swiper .swiper-wrapper{transition-timing-function:linear!important;align-items:stretch}
.ba-swiper .swiper-slide{width:auto;height:clamp(300px,40vw,440px)}
.ba-card{position:relative;height:100%;overflow:hidden;border:1px solid var(--border);cursor:pointer;display:block}
.ba-card img{height:100%;width:auto;max-width:none;aspect-ratio:1/1;object-fit:cover;transition:.6s var(--ease)}
.ba-card:hover img{transform:scale(1.04)}
.ba-card__tag{position:absolute;top:14px;left:14px;z-index:2;display:flex;gap:0;
  font-size:.62rem;letter-spacing:.14em;text-transform:uppercase;font-weight:700}
.ba-card__tag b{background:rgba(0,0,0,.7);color:#bdbdbd;padding:5px 10px}
.ba-card__tag b:last-child{background:var(--bordo);color:#fff}
.ba-card__split{position:absolute;top:0;bottom:0;left:50%;width:1px;background:rgba(201,168,76,.55);z-index:2}

/* Vídeos ---------------------------------------------------- */
.video-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:18px;margin-top:48px}
.video-card{position:relative;aspect-ratio:9/16;overflow:hidden;border:1px solid var(--border);background:#000}
.video-card video{width:100%;height:100%;object-fit:cover}
.video-card video{cursor:pointer}
.video-play{position:absolute;inset:0;margin:auto;width:44px;height:44px;border-radius:50%;
  background:rgba(123,29,34,.7);border:1px solid rgba(255,255,255,.22);
  -webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);
  box-shadow:0 10px 28px -10px rgba(0,0,0,.65),inset 0 1px 0 rgba(255,255,255,.18);
  display:flex;align-items:center;justify-content:center;transition:.25s;cursor:pointer}
.video-play svg{width:17px;height:17px;fill:#fff;margin-left:2px}
.video-play:hover{background:rgba(158,42,48,.85);transform:scale(1.08)}
.video-card.playing .video-play{opacity:0;pointer-events:none}
/* ...mas volta no foco de teclado: sem isso quem navega por Tab chega a um botão
   invisível e não tem como pausar (clicar no vídeo é só para mouse e toque). */
.video-card.playing .video-play:focus-visible{opacity:1;pointer-events:auto}

/* Depoimentos ----------------------------------------------- */
.depo-swiper{padding:48px 24px 10px;max-width:1100px;margin:0 auto}
.depo-swiper .swiper-slide{height:auto}
.depo-card{background:var(--surface);border:1px solid var(--border);padding:34px 32px;height:100%;display:flex;flex-direction:column}
.depo-card .stars{margin-bottom:18px}
/* Avaliacoes longas ocupavam o card inteiro e esticavam as curtas junto. Fechado o texto
   para em 5 linhas com um fade na ultima; o "Ler mais" so aparece onde o texto corta. */
.depo-card__text{font-family:'Aleo',serif;font-style:italic;font-size:clamp(1rem,1.4vw,1.14rem);line-height:1.55;color:#eaeaea;margin:0 0 14px;flex:1;
  display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:5;overflow:hidden}
/* o degradê só entra em quem de fato corta (.is-clamped vem do JS) — sem isso uma
   avaliação que cabe em 5 linhas parecia truncada sem ter um "Ler mais" pra abrir. */
.depo-card.is-clamped .depo-card__text{
  -webkit-mask-image:linear-gradient(180deg,#000 72%,rgba(0,0,0,.25) 100%);
  mask-image:linear-gradient(180deg,#000 72%,rgba(0,0,0,.25) 100%)}
.depo-card.is-open .depo-card__text{-webkit-line-clamp:unset;overflow:visible;
  -webkit-mask-image:none;mask-image:none}
.depo-more{align-self:flex-start;background:none;border:0;padding:0;margin:0 0 20px;
  font-size:.82rem;font-weight:500;letter-spacing:.02em;color:var(--gold);opacity:.85;
  text-decoration:underline;text-underline-offset:3px;text-decoration-color:rgba(201,168,76,.4);
  transition:opacity .2s var(--ease),text-decoration-color .2s var(--ease)}
.depo-more:hover,.depo-more:focus-visible{opacity:1;text-decoration-color:var(--gold)}
.depo-more[hidden]{display:none}
.depo-card__name{font-weight:600;margin-top:auto}
.depo-card__src{display:block;margin-top:6px;font-size:.78rem;color:var(--gold);font-weight:500;letter-spacing:.02em;opacity:.82;transition:opacity .2s}
/* Instagram da equipe — ícone dourado deixa claro que é clicável */
.link-ig{display:inline-flex;align-items:center;gap:7px}
.ic-ig{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:1.9;flex:none}
.ic-ig .ig-dot{fill:currentColor;stroke:none}
/* o card deixou de ser um <a> (botao dentro de link e HTML invalido): quem leva ao
   Google agora e so o "no Google →" do rodape do card. */
.depo-card{transition:border-color .25s var(--ease)}
.depo-card:hover,.depo-card:focus-within{border-color:rgba(201,168,76,.45)}
.depo-card__src:hover,.depo-card__src:focus-visible{opacity:1;text-decoration:underline;text-underline-offset:3px}
.depo__foot{text-align:center;margin-top:30px}
.depo__cta{margin-top:34px;text-align:center}
.depo-foot__sep{color:var(--muted-2);margin:0 12px}

/* Cursos ---------------------------------------------------- */
.cursos{background:var(--bg-2)}
.cursos__grid{display:grid;grid-template-columns:1fr 1.06fr;gap:52px;align-items:center}
/* Par de certificações lado a lado: os dois barbeiros da casa foram formados na
   própria Revolution. No desktop o par fica à direita e o texto à esquerda —
   essa já é a ordem no HTML, então não precisa de order no CSS. */
.cursos__media{display:grid;grid-template-columns:1fr 1fr;gap:12px;align-items:start}
.cert{margin:0}
.cursos__media img{width:100%;height:auto;aspect-ratio:4/5;object-fit:cover;
  border:1px solid var(--border);display:block}
/* desktop: a imagem do Sobre segue em proporção nativa e centralizada (sem corte);
   o par de cursos mantém a grade de duas colunas.
   align-items:center é obrigatório: sem ele o flex estica a imagem na vertical até o
   max-height, e o object-fit:cover volta a cortar justamente o que se quis preservar. */
@media(min-width:861px){
  .sobre__media{display:flex;justify-content:center;align-items:center}
  .sobre__media img{width:auto;height:auto;max-width:100%;max-height:560px;aspect-ratio:auto}
}

/* CTA final ------------------------------------------------- */
.cta-final{background:linear-gradient(160deg,#5e1419,var(--bordo) 60%,#4a1014);padding:120px 0;text-align:center}
.cta-final .display{margin-bottom:18px}
.cta-final .display em{color:#f3dca0}
.cta-final p{color:#f0d9da;margin:0 0 34px;font-size:1.1rem}
.cta-final__actions{display:flex;gap:14px;justify-content:center;flex-wrap:wrap}
/* Booksy é o caminho principal — dourado dominante; WhatsApp recua */
.cta-final .btn--solid{background:linear-gradient(180deg,#dec172 0%,#c9a84c 100%);color:#1a1306;
  border:1px solid rgba(255,255,255,.28);
  box-shadow:0 14px 34px -14px rgba(0,0,0,.6),inset 0 1px 0 rgba(255,255,255,.35)}
.cta-final .btn--solid:hover{background:linear-gradient(180deg,#e7cd82 0%,#d4b258 100%);border-color:rgba(255,255,255,.42)}
.cta-final .btn--ghost{background:transparent;border:1px solid rgba(255,255,255,.22);color:rgba(255,255,255,.82);
  -webkit-backdrop-filter:none;backdrop-filter:none;box-shadow:none}
.cta-final .btn--ghost:hover{border-color:rgba(255,255,255,.5);background:rgba(255,255,255,.07);color:#fff}

/* Localização ----------------------------------------------- */
.local__grid{display:grid;grid-template-columns:1fr 1fr;gap:56px;align-items:center}
.local__list{list-style:none;padding:0;margin:0 0 28px;display:grid;gap:22px}
.local__list li{display:flex;gap:16px;align-items:flex-start}
.local__list .ic{width:24px;height:24px;flex:none;fill:none;stroke:var(--gold);stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round;margin-top:2px}
/* endereco leva ao Maps e o telefone ao WhatsApp: no celular nao existe :hover,
   entao o sublinhado dourado e quem avisa que da pra tocar. */
.local__list a{color:inherit;text-decoration:underline;text-decoration-color:rgba(201,168,76,.32);
  text-decoration-thickness:1px;text-underline-offset:4px;-webkit-tap-highlight-color:transparent}
.local__list a:hover,.local__list a:active,.local__list a:focus-visible{color:var(--gold);
  text-decoration-color:var(--gold)}
.amenities{display:flex;gap:22px;flex-wrap:wrap;margin:0 0 28px}
.amenities span{display:flex;align-items:center;gap:8px;color:var(--muted);font-size:.85rem}
.amenities svg{width:20px;height:20px;fill:none;stroke:var(--muted);stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round}
.local__map{aspect-ratio:1/1;border:1px solid var(--border);overflow:hidden}
.local__map iframe{width:100%;height:100%;border:0;filter:grayscale(1) invert(.9) contrast(.85)}

/* Footer ---------------------------------------------------- */
.footer{padding:80px 0 30px;border-top:1px solid var(--border);background:var(--bg-2)}
.footer__inner{display:grid;grid-template-columns:1.4fr 1fr auto;gap:40px;align-items:start}
/* logo branca sem fundo: sem border-radius, que era da versão em caixa bordô */
.footer__brand img{height:46px;width:auto;margin-bottom:18px}
.footer__brand p{color:var(--muted);max-width:38ch;font-size:.92rem}
.footer__nav{display:flex;flex-direction:column;gap:12px}
.footer__nav a{color:var(--muted);font-size:.9rem;transition:.2s}
.footer__nav a:hover{color:var(--gold)}
.footer__social{display:flex;gap:14px}
.footer__social a{width:46px;height:46px;border-radius:50%;display:flex;align-items:center;justify-content:center;transition:.25s var(--ease);
  background:rgba(255,255,255,.04);border:1px solid rgba(255,255,255,.1);
  -webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);box-shadow:inset 0 1px 0 rgba(255,255,255,.05)}
.footer__social a:hover{border-color:rgba(201,168,76,.5);background:rgba(201,168,76,.12);transform:translateY(-2px)}
.footer__social svg{width:20px;height:20px;fill:none;stroke:var(--text);stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round}
.footer__bottom{display:flex;justify-content:space-between;gap:16px;margin-top:50px;padding-top:24px;border-top:1px solid var(--border);color:var(--muted-2);font-size:.8rem;letter-spacing:.04em}

/* Responsive ------------------------------------------------ */
@media(max-width:1024px){
  .video-grid{grid-template-columns:repeat(2,1fr)}
  .footer__inner{grid-template-columns:1fr 1fr}
}
@media(max-width:860px){
  .section{padding:64px 0}
  .carousel-head{flex-direction:column;align-items:flex-start;gap:18px}
  .gallery-swiper .swiper-slide{height:clamp(280px,62vw,360px)}
  /* ---- Hero mobile v2 — imagem com degradê embutido ---- */
  .hero{align-items:flex-end;min-height:100vh;min-height:100svh}
  .hero__media img{object-position:center top}
  /* a imagem já traz o degradê — overlay só um reforço suave, sem poluir */
  .hero__overlay{background:linear-gradient(to bottom,
    rgba(0,0,0,.05) 0%,rgba(0,0,0,.16) 36%,rgba(0,0,0,.46) 58%,rgba(0,0,0,.84) 100%)}
  .hero__content{max-width:none;width:100%;padding:0 20px 48px}
  .ht-desktop,.hs-desktop{display:none}
  .ht-mobile,.hs-mobile{display:inline}
  .hide-on-mobile,.rating-extra{display:none}
  .hero .eyebrow{display:none}                 /* remove a linha institucional no mobile */
  /* título refinado: branco + 2ª linha dourado areia, itálico, menor */
  .hero__title{font-size:clamp(32px,8.6vw,42px);line-height:.98;letter-spacing:-.02em;
    margin-bottom:4px;font-weight:600}
  .hero__title .ht-mobile em{display:block;margin-top:1px;font-size:.8em;font-weight:500;
    letter-spacing:-.005em;color:#d8c6a0}
  .hero__content{text-align:center}
  .hero__title,.hero__sub{text-align:center}
  /* balance divide as tres linhas por igual; o .nowrap do "Santa Rita do Sapucai" segura a cidade
     inteira numa linha mesmo em navegador sem suporte a text-wrap */
  .hero__sub{font-size:.95rem;max-width:38ch;margin-inline:auto;margin-bottom:20px;line-height:1.6;color:#c8c8c8;
    text-wrap:balance}
  /* botões premium */
  .hero__actions{flex-direction:column;align-items:stretch;gap:13px;width:100%;margin-bottom:30px}
  .hero__actions .btn{width:100%;padding:15px 24px}
  /* prova social refinada */
  .hero__rating{font-size:.78rem;gap:9px;color:#bcbcbc;letter-spacing:.02em;margin-top:2px;justify-content:center}
  .hero__rating .stars{gap:3px}
  .hero__rating .stars svg{width:13px;height:13px}
  .hero__rating strong{color:#fff;font-weight:600}
  .hero__scroll{display:none}
  /* rola junto com a página em vez de ficar fixo: sem isso o conteúdo atravessa
     por baixo da logo, que não tem fundo nenhum no mobile. Absolute (e não static)
     porque o cabeçalho continua pousado sobre a foto do hero, sem empurrar nada. */
  .nav{position:absolute}
  .nav__links,.nav__cta{display:none}
  .nav__burger{display:flex}
  .nav__logo img{height:30px}
  .nav.open{background:rgba(13,13,13,.97);pointer-events:auto}
  .nav.open .nav__links{display:flex;position:absolute;top:calc(78px + env(safe-area-inset-top,0px));left:0;right:0;flex-direction:column;
    background:rgba(13,13,13,.98);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);padding:24px;gap:18px;border-bottom:1px solid var(--border)}
  .sobre__grid,.cursos__grid,.local__grid{grid-template-columns:1fr;gap:30px}
  /* proporção natural também aqui: a foto da fachada é panorâmica e o max-height
     antigo a transformava numa tarja, cortando as laterais da vitrine */
  .sobre__media img{aspect-ratio:auto;width:100%;height:auto;max-height:none}
  .cursos__media{gap:10px}
  /* mais ar dentro e fora dos dois filetes.
     .stats também é .container, e o .container{padding:0 18px} de <520px vem depois
     neste arquivo — por isso o seletor duplo e os longhands: sem eles o padding
     vertical era zerado no celular e os números encostavam nos filetes. */
  .stats{grid-template-columns:repeat(2,1fr);gap:34px 16px;
    margin-top:112px;margin-bottom:26px}
  .stats.container{padding-top:56px;padding-bottom:56px}
  .stat{display:flex;flex-direction:column-reverse;align-items:center}
  .stat__trigger{flex-direction:column-reverse}
  .stat__num{font-size:2rem}
  .stat__label{font-size:.68rem;margin-top:0;margin-bottom:8px}
  .depo-card{padding:28px 26px}
  .team-grid{grid-template-columns:1fr;max-width:420px;margin-inline:auto}
  .local .display{font-size:clamp(1.9rem,7.6vw,2.6rem)}
  /* "Referência não se declara," cabe numa linha: este título é mais longo que os
     outros, então aqui a fonte acompanha a largura da tela em vez do clamp global.
     Sem white-space:nowrap de propósito — se a Aleo não carregar e o fallback for
     mais largo, a linha quebra em vez de estourar a página com scroll lateral. */
  #sobre .display{font-size:min(7.3vw,2.4rem)}
  .videos .display{font-size:clamp(1.7rem,7.2vw,2.6rem);white-space:nowrap}
  .footer__inner{grid-template-columns:1fr;gap:30px}
  .footer__bottom{flex-direction:column;text-align:center}
}
@media(max-width:520px){
  .video-grid{grid-template-columns:1fr 1fr;gap:10px}
  .hero__content{padding-bottom:48px}
  .container{padding:0 18px}
  .gallery-swiper,.ba-swiper{padding:0 18px}
}

/* Lightbox (GLightbox) -------------------------------------
   Dois motivos do arrasto sair "bruto" no vendor: o <img> nao tem transition
   nenhuma (ao soltar o dedo a foto volta em salto seco) e o slide entra de
   translate3d(60%) em .3s ease. Aqui o gesto ganha inercia e o curso encurta.
   Redefinir os @keyframes com o mesmo nome funciona porque este arquivo carrega
   depois do CDN da GLightbox — a ultima declaracao vence. */
.gslide-image img{transition:transform .4s cubic-bezier(.22,.61,.36,1)}
.gslide-image img.dragging{transition:none}      /* durante o gesto a foto segue o dedo */
.glightbox-container .gslider{transition:transform .46s cubic-bezier(.22,.61,.36,1)}
@keyframes gslideInRight {from{opacity:0;visibility:visible;transform:translate3d(26%,0,0)} to{opacity:1;transform:translate3d(0,0,0)}}
@keyframes gslideInLeft  {from{opacity:0;visibility:visible;transform:translate3d(-26%,0,0)}to{opacity:1;transform:translate3d(0,0,0)}}
@keyframes gslideOutLeft {from{opacity:1;visibility:visible;transform:translate3d(0,0,0)}  to{opacity:0;visibility:hidden;transform:translate3d(-26%,0,0)}}
@keyframes gslideOutRight{from{opacity:1;visibility:visible;transform:translate3d(0,0,0)}  to{opacity:0;visibility:hidden;transform:translate3d(26%,0,0)}}
.gslideInRight,.gslideInLeft,.gslideOutLeft,.gslideOutRight{
  animation-duration:.46s;animation-timing-function:cubic-bezier(.22,.61,.36,1)}

/* Reduced motion -------------------------------------------- */
@media(prefers-reduced-motion:reduce){
  *{animation:none!important;transition:none!important;scroll-behavior:auto!important}
  [data-rev]{opacity:1!important;transform:none!important}
}
