/* ======================================================================
   Instituto Brasileiro de Hapkido — CSS compartilhado
   Estrutura/animações inspiradas em izanami-official.com (Playfair Display
   + Cinzel, Lenis smooth scroll, GSAP ScrollTrigger para reveals/parallax)
   ====================================================================== */

:root{
  --black:#0a0a0a;
  --black-deep:#000000;
  --bone:#f2f0ea;
  --gold:#E8B923;
  --terracotta:#6e2a20;
  --gold-dim: rgba(232,185,35,0.35);
}
*{margin:0;padding:0;box-sizing:border-box;}
html.lenis{height:auto;}
html.lenis.lenis-smooth{scroll-behavior:auto !important;}
body{
  background:var(--black);
  color:var(--bone);
  font-family:'Work Sans', sans-serif;
  font-weight:300;
  overflow-x:hidden;
}
h1,h2,h3,.serif{
  font-family:'Playfair Display', serif;
  font-weight:500;
  letter-spacing:0.01em;
}
.label{
  font-family:'Cinzel', serif;
  text-transform:uppercase;
  letter-spacing:0.28em;
  font-size:0.7rem;
  color:var(--gold);
  font-weight:500;
}
a{color:inherit;text-decoration:none;}
img{max-width:100%;}
::selection{background:var(--gold);color:var(--black);}

/* ---------- Cursor (ponto preciso + anel com leve atraso) ---------- */
.cursor-dot{
  position:fixed;width:6px;height:6px;border-radius:50%;
  background:var(--gold);pointer-events:none;z-index:9999;
  transform:translate(-50%,-50%);
  transition:transform 0.12s ease-out, opacity 0.25s ease;
  mix-blend-mode:difference;
}
.cursor-dot.hover{opacity:0;}
@media (max-width:768px){.cursor-dot{display:none;}}

.cursor-ring{
  position:fixed;width:32px;height:32px;border-radius:50%;
  border:1px solid var(--gold);
  pointer-events:none;z-index:9998;
  transform:translate(-50%,-50%);
  opacity:0.55;
  transition:
    left .5s cubic-bezier(.16,1,.3,1),
    top .5s cubic-bezier(.16,1,.3,1),
    width .35s cubic-bezier(.16,1,.3,1),
    height .35s cubic-bezier(.16,1,.3,1),
    background .35s ease, opacity .3s ease;
  mix-blend-mode:difference;
}
.cursor-ring.hover{
  width:52px;height:52px;
  background:var(--gold);
  opacity:0.9;
}
@media (max-width:768px){.cursor-ring{display:none;}}

/* ---------- Section index (lateral) ---------- */
.section-nav{
  position:fixed;right:2rem;top:50%;transform:translateY(-50%);
  display:flex;flex-direction:column;gap:1.1rem;z-index:500;
}
.section-nav button{
  background:none;border:none;cursor:pointer;
  width:14px;height:2px;background:rgba(242,240,234,0.25);
  transition:all .4s ease;padding:0;
}
.section-nav button.active{background:var(--gold);width:26px;}
@media (max-width:900px){.section-nav{display:none;}}

/* ---------- Top nav ---------- */
.topbar{
  position:fixed;top:0;left:0;right:0;z-index:600;
  display:flex;justify-content:space-between;align-items:center;
  padding:1.6rem clamp(1.2rem,4vw,3rem);
  mix-blend-mode:difference;
}
.topbar .brand{display:flex;align-items:center;gap:0.7rem;}
.topbar .brand img{width:30px;height:30px;}
.topbar .brand span{font-family:'Playfair Display',serif;font-size:1.1rem;letter-spacing:0.08em;}
.topbar-actions{display:flex;align-items:center;gap:1.4rem;}
.menu-btn{
  background:none;border:1px solid var(--gold-dim);color:var(--bone);
  padding:0.55rem 1.1rem;font-size:0.7rem;letter-spacing:0.2em;
  text-transform:uppercase;cursor:pointer;font-family:'Cinzel',serif;
}
.comunidade-badge{
  display:flex;align-items:center;gap:0.55rem;
  background:rgba(232,185,35,0.1);
  border:1px solid var(--gold);
  border-radius:999px;
  padding:0.5rem 1.15rem 0.5rem 0.85rem;
  font-family:'Cinzel',serif;font-size:0.66rem;letter-spacing:0.18em;text-transform:uppercase;
  color:var(--gold);cursor:pointer;
  transition:background .3s ease,color .3s ease,box-shadow .3s ease;
}
.comunidade-badge:hover{background:var(--gold);color:var(--black);box-shadow:0 0 20px var(--gold-dim);}
.comunidade-badge .dot{
  width:7px;height:7px;border-radius:50%;background:var(--gold);flex:none;
  animation:comunidadePulse 1.8s ease-in-out infinite;
}
.comunidade-badge:hover .dot{background:var(--black);animation:none;}
@keyframes comunidadePulse{
  0%,100%{box-shadow:0 0 0 0 rgba(232,185,35,0.55);}
  50%{box-shadow:0 0 0 6px rgba(232,185,35,0);}
}
@media (max-width:520px){.comunidade-badge{padding:0.5rem 0.85rem 0.5rem 0.7rem;gap:0.4rem;font-size:0.6rem;letter-spacing:0.14em;}}
@media (max-width:400px){
  .topbar-actions{gap:0.6rem;}
  .comunidade-badge{padding:0.45rem 0.6rem 0.45rem 0.55rem;gap:0.32rem;font-size:0.52rem;letter-spacing:0.08em;}
  .menu-btn{padding:0.55rem 0.8rem;font-size:0.6rem;}
  .back-btn{padding:0.55rem 0.15rem;}
}

.back-btn{
  background:none;border:none;color:var(--bone);cursor:pointer;
  display:flex;align-items:center;gap:0.5rem;padding:0.55rem 0.1rem;
  font-family:'Cinzel',serif;font-size:0.7rem;letter-spacing:0.2em;text-transform:uppercase;
  transition:color .3s ease;
}
.back-btn:hover{color:var(--gold);}
.back-btn .back-arrow{display:inline-block;}
@media (hover:hover){
  .back-btn .back-arrow{transition:transform .3s ease;}
  .back-btn:hover .back-arrow{transform:translateX(-4px);}
}
@media (max-width:520px){.back-btn .back-label{display:none;}}

/* ---------- Fullscreen menu overlay ---------- */
.menu-overlay{
  position:fixed;inset:0;background:var(--black-deep);z-index:900;
  display:flex;flex-direction:column;align-items:center;justify-content:center;
  gap:1.5rem;
  opacity:0;visibility:hidden;transition:opacity .5s ease, visibility .5s;
}
.menu-overlay.open{opacity:1;visibility:visible;}
.menu-overlay nav{display:flex;flex-direction:column;align-items:center;gap:1.5rem;}
.menu-overlay a{
  font-family:'Playfair Display',serif;font-size:clamp(1.6rem,4vw,2.6rem);
  font-weight:400;color:var(--bone);position:relative;
}
.menu-overlay a:hover,.menu-overlay a.current{color:var(--gold);}
.menu-overlay .menu-social{
  margin-top:1.5rem;display:flex;gap:1.5rem;
}
.menu-overlay .menu-social a{font-family:'Cinzel',serif;font-size:0.68rem;letter-spacing:0.2em;color:rgba(242,240,234,0.5);}
.menu-close{
  position:absolute;top:1.8rem;right:clamp(1.2rem,4vw,3rem);
  background:none;border:none;color:var(--bone);font-size:1.6rem;cursor:pointer;
}

/* ---------- Smoke layers ---------- */
.smoke-wrap{position:absolute;inset:0;overflow:hidden;z-index:0;}
.smoke{
  position:absolute;border-radius:50%;
  background:radial-gradient(circle, rgba(180,180,180,0.16) 0%, rgba(120,120,120,0.06) 45%, transparent 70%);
  filter:blur(40px);
  will-change:transform;
}
.smoke.s1{width:60vw;height:60vw;top:-10%;left:-15%;animation:drift1 22s ease-in-out infinite;}
.smoke.s2{width:50vw;height:50vw;bottom:-15%;right:-10%;animation:drift2 28s ease-in-out infinite;}
.smoke.s3{width:40vw;height:40vw;top:30%;left:40%;animation:drift3 19s ease-in-out infinite;}
@keyframes drift1{0%,100%{transform:translate(0,0);opacity:.25;}50%{transform:translate(6vw,4vh);opacity:.5;}}
@keyframes drift2{0%,100%{transform:translate(0,0);opacity:.2;}50%{transform:translate(-5vw,-3vh);opacity:.45;}}
@keyframes drift3{0%,100%{transform:translate(0,0);opacity:.15;}50%{transform:translate(-4vw,5vh);opacity:.35;}}
.smoke-subtle .smoke{filter:blur(50px);opacity:0.5;}

/* ---------- Hero (home) ---------- */
.hero{
  position:relative;width:100%;max-width:2000px;margin:0 auto;aspect-ratio:1600/1066;max-height:78vh;
  display:flex;flex-direction:column;
  align-items:center;justify-content:flex-end;text-align:center;
  padding:4rem 1.5rem 4rem;
}
@media (max-width:700px){.hero{padding:2.6rem 1.5rem 2.6rem;}}
.hero-bg{position:absolute;inset:0;z-index:0;overflow:hidden;}
.hero-bg img{
  position:absolute;inset:0;
  width:100%;height:100%;object-fit:cover;object-position:50% 50%;
  filter:brightness(0.86) contrast(1.03);
}
.hero-bg img.hero-bg-blur{
  transform:scale(1.15);
  filter:blur(60px) brightness(0.42) saturate(1.15);
}
.hero-bg img.hero-bg-photo{
  -webkit-mask-image:radial-gradient(ellipse 78% 82% at 50% 50%, black 45%, transparent 94%);
  mask-image:radial-gradient(ellipse 78% 82% at 50% 50%, black 45%, transparent 94%);
}
.hero-bg-overlay{
  position:absolute;inset:0;
  background:
    linear-gradient(to bottom, rgba(10,10,10,0.98) 0%, rgba(10,10,10,0.6) 30%, transparent 52%),
    linear-gradient(to top, rgba(10,10,10,0.98) 0%, transparent 60%);
}
.hero-eagle{width:min(38vw,320px);position:relative;z-index:2;margin-bottom:2.2rem;}
.hero-eagle img{
  width:100%;height:auto;display:block;
  opacity:0;transform:scale(0.85);
  animation:eagleFadeIn 1.6s ease forwards;animation-delay:0.4s;
}
@keyframes eagleFadeIn{to{opacity:1;transform:scale(1);}}
.hero-eagle--glow{
  position:relative;width:min(58vw,380px);margin:0 auto 2.4rem;
}
.hero-eagle--glow::before{
  content:'';position:absolute;inset:-22%;z-index:-1;border-radius:50%;
  background:radial-gradient(circle, transparent 42%, rgba(232,185,35,0.4) 64%, transparent 84%);
  filter:blur(18px);pointer-events:none;
  animation:eagleGlowPulse 4s ease-in-out infinite;
}
@property --eagle-sweep{
  syntax:'<angle>';
  inherits:false;
  initial-value:0deg;
}
.hero-eagle--glow img{
  --eagle-sweep:0deg;
  mix-blend-mode:screen;
  opacity:0;
  filter:url(#eagleOutline) drop-shadow(0 0 14px rgba(232,185,35,0.45));
  -webkit-mask-image:conic-gradient(from -90deg, #000 var(--eagle-sweep), transparent var(--eagle-sweep));
  mask-image:conic-gradient(from -90deg, #000 var(--eagle-sweep), transparent var(--eagle-sweep));
  animation:eagleAppear 0.5s ease forwards 0.4s, eagleDraw 2.4s cubic-bezier(.65,.05,.36,1) forwards 0.9s;
}
@keyframes eagleAppear{to{opacity:1;}}
@keyframes eagleDraw{to{--eagle-sweep:360deg;}}
@keyframes eagleGlowPulse{0%,100%{opacity:0.55;transform:scale(1);}50%{opacity:1;transform:scale(1.06);}}
@media (prefers-reduced-motion:reduce){
  .hero-eagle--glow::before{animation:none;}
  .hero-eagle--glow img{animation:eagleAppear 0.5s ease forwards;--eagle-sweep:360deg;}
}
.hero-title{
  font-family:'Playfair Display',serif;
  font-size:clamp(1.6rem,4.6vw,3.4rem);
  font-weight:500;letter-spacing:0.03em;line-height:1.25;
  text-transform:uppercase;max-width:22ch;
  color:var(--bone);
  text-shadow:0 6px 34px rgba(0,0,0,0.9), 0 2px 8px rgba(0,0,0,0.85);
  position:relative;z-index:2;margin-bottom:2.6rem;
  opacity:0;animation:heroTitleFade 1.6s cubic-bezier(.16,1,.3,1) forwards;animation-delay:0.6s;
}
@keyframes heroTitleFade{
  from{opacity:0;transform:translateY(34px) scale(0.94);filter:blur(6px);}
  to{opacity:1;transform:translateY(0) scale(1);filter:blur(0);}
}

.hero .label{position:relative;z-index:2;margin-bottom:1.4rem;opacity:0;animation:fadeInUp 1s ease forwards;animation-delay:0.2s;}
@keyframes fadeInUp{from{opacity:0;transform:translateY(12px);}to{opacity:1;transform:translateY(0);}}
.scroll-hint{
  position:absolute;bottom:2.2rem;left:50%;transform:translateX(-50%);
  display:flex;flex-direction:column;align-items:center;gap:0.5rem;
  z-index:2;opacity:0.6;
}
.scroll-hint span{width:1px;height:34px;background:linear-gradient(var(--gold),transparent);animation:scrollLine 2.2s ease-in-out infinite;}
@keyframes scrollLine{0%{opacity:0;transform:scaleY(0.4);}50%{opacity:1;transform:scaleY(1);}100%{opacity:0;transform:scaleY(0.4);}}

/* ---------- Page hero (subpáginas) ---------- */
.page-hero{
  position:relative;min-height:62vh;display:flex;flex-direction:column;
  align-items:center;justify-content:center;text-align:center;
  padding:8rem 1.5rem 3rem;
}
.page-hero .label{position:relative;z-index:2;margin-bottom:1.2rem;}
.page-hero h1{
  position:relative;z-index:2;font-size:clamp(2rem,5vw,3.4rem);font-weight:500;max-width:20ch;line-height:1.2;
}
.page-hero .page-lede{
  position:relative;z-index:2;max-width:60ch;margin:1.4rem auto 0;
  color:rgba(242,240,234,0.75);font-size:1rem;line-height:1.8;
}

/* ---------- Sobre (prévia, foto acima do texto) ---------- */
.about-preview{position:relative;padding:0;}
.about-preview-media{position:relative;height:52vh;overflow:hidden;}
.about-preview-media img{
  width:100%;height:100%;object-fit:cover;object-position:50% 35%;
  filter:grayscale(0.25) contrast(1.05) brightness(0.85) saturate(0.9);
}
.about-preview-media::after{
  content:'';position:absolute;inset:0;
  background:linear-gradient(180deg, transparent 55%, rgba(10,10,10,0.95) 100%);
}
.about-preview-body{
  text-align:center;padding:3.4rem clamp(1.2rem,6vw,6rem) 5rem;
}
.about-preview-body h3{font-size:clamp(1.5rem,3.4vw,2.2rem);font-weight:500;margin:0.6rem 0 1.8rem;}

/* ---------- Generic section ---------- */
section{position:relative;padding:8rem clamp(1.2rem,6vw,6rem);}
.reveal{opacity:0;transform:translateY(24px);}
.reveal.in{opacity:1;transform:translateY(0);}
.reveal-stagger>*{opacity:0;transform:translateY(22px);transition:opacity .7s ease, transform .7s cubic-bezier(.16,1,.3,1);}
.reveal-stagger.in>*{opacity:1;transform:translateY(0);}

.section-heading{display:flex;align-items:center;gap:1rem;margin-bottom:3rem;}
.section-heading .num{color:var(--gold);font-family:'Playfair Display',serif;font-size:1rem;letter-spacing:0.1em;}
.section-heading .line{flex:1;height:1px;background:linear-gradient(to right, var(--gold-dim), transparent);}

/* ---------- Filosofia ---------- */
.philosophy-section{overflow:hidden;}
.philosophy-bg{position:absolute;inset:0;z-index:0;}
.philosophy-bg img{
  position:absolute;top:0;right:0;height:100%;width:45%;
  object-fit:cover;object-position:50% 22%;
  filter:grayscale(0.3) contrast(1.05) brightness(0.72);
  -webkit-mask-image:linear-gradient(to left, black 45%, transparent 92%), linear-gradient(to bottom, transparent 0%, black 14%, black 86%, transparent 100%);
  -webkit-mask-composite:source-in;
  mask-image:linear-gradient(to left, black 45%, transparent 92%), linear-gradient(to bottom, transparent 0%, black 14%, black 86%, transparent 100%);
  mask-composite:intersect;
}
@media (max-width:900px){
  .philosophy-bg img{
    width:100%;right:0;
    object-position:50% 18%;
    -webkit-mask-image:linear-gradient(180deg, black 0%, black 45%, transparent 92%), linear-gradient(to right, transparent 0%, black 10%, black 90%, transparent 100%);
    mask-image:linear-gradient(180deg, black 0%, black 45%, transparent 92%), linear-gradient(to right, transparent 0%, black 10%, black 90%, transparent 100%);
    filter:grayscale(0.35) contrast(1.05) brightness(0.5);
  }
}
.philosophy-bg-overlay{
  position:absolute;inset:0;
  background:
    linear-gradient(180deg, rgba(10,10,10,0.97) 0%, transparent 32%),
    rgba(10,10,10,0.3);
}
@media (max-width:900px){.philosophy-bg-overlay{background:rgba(10,10,10,0.55);}}
.philosophy{position:relative;z-index:2;max-width:760px;margin:0 auto;text-align:center;transform:translateX(-9%);}
@media (max-width:900px){.philosophy{transform:none;}}
.philosophy p.intro{font-size:clamp(1rem,1.6vw,1.15rem);line-height:1.9;color:rgba(242,240,234,0.85);margin-bottom:3.2rem;}
blockquote{
  font-family:'Playfair Display',serif;font-size:clamp(1.3rem,2.6vw,1.9rem);
  font-weight:400;line-height:1.5;font-style:italic;color:var(--bone);
  position:relative;padding:0 1rem;
}
blockquote::before,blockquote::after{content:'';display:block;width:32px;height:1px;background:var(--gold);margin:1.6rem auto;}
.master-info blockquote::before,.master-info blockquote::after{margin:1.6rem 0;}
blockquote cite{
  display:block;margin-top:1.2rem;font-family:'Cinzel',sans-serif;
  font-style:normal;font-size:0.72rem;letter-spacing:0.18em;text-transform:uppercase;color:var(--gold);
}

/* ---------- Sobre ---------- */
.about{display:grid;grid-template-columns:0.9fr 1.1fr;gap:4rem;align-items:center;}
@media (max-width:900px){.about{grid-template-columns:1fr;gap:2.5rem;}}
.about-side-label{
  writing-mode:vertical-rl;text-orientation:mixed;
  transform:rotate(180deg);
  font-family:'Cinzel',serif;
  font-size:0.68rem;letter-spacing:0.3em;text-transform:uppercase;color:var(--gold);
  position:absolute;left:1rem;top:8rem;display:none;
}
@media (min-width:1100px){.about-side-label{display:block;}}
.about-media{
  aspect-ratio:4/5;background:
    linear-gradient(160deg, #151515 0%, #0a0a0a 60%),
    radial-gradient(circle at 70% 20%, rgba(232,185,35,0.08), transparent 60%);
  border:1px solid rgba(232,185,35,0.18);
  display:flex;align-items:center;justify-content:center;
  position:relative;overflow:hidden;
}
.about-media img{width:100%;height:100%;object-fit:cover;}
.about-media .ph-label{
  font-size:0.65rem;letter-spacing:0.2em;text-transform:uppercase;
  color:rgba(242,240,234,0.35);text-align:center;padding:1rem;
}
.about-text p{line-height:1.9;color:rgba(242,240,234,0.85);margin-bottom:1.3rem;font-size:0.98rem;}
.about-text strong{color:var(--bone);font-weight:500;}
.about-text .accent{color:var(--gold);}

/* ---------- Formação Infantil (galeria compacta) ---------- */
.criancas-text{max-width:70ch;margin:0 auto 2.6rem;}
.criancas-text p{line-height:1.9;color:rgba(242,240,234,0.85);margin-bottom:1.2rem;font-size:0.98rem;}
.criancas-text strong{color:var(--bone);font-weight:500;}
.criancas-gallery{display:grid;grid-template-columns:repeat(3,1fr);gap:0.9rem;max-width:960px;margin:0 auto;}
@media (max-width:700px){.criancas-gallery{grid-template-columns:repeat(2,1fr);}}
.criancas-gallery figure{margin:0;overflow:hidden;border:1px solid rgba(232,185,35,0.18);}
.criancas-gallery img{
  width:100%;aspect-ratio:4/5;object-fit:cover;display:block;
  filter:grayscale(0.25) contrast(1.05) brightness(0.85) saturate(0.9);
  transition:transform 1s cubic-bezier(.16,1,.3,1), filter .5s ease;
}
.criancas-gallery figure:hover img{transform:scale(1.06);filter:grayscale(0.15) contrast(1.05) brightness(0.95) saturate(0.95);}

/* ---------- Pilares (home hub, estilo "projects" do izanami) ---------- */
.pillars{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:rgba(232,185,35,0.15);}
@media (max-width:900px){.pillars{grid-template-columns:1fr;}}
.pillar-card{
  background:var(--black);position:relative;overflow:hidden;
  aspect-ratio:3/4;display:flex;flex-direction:column;
}
.pillar-card-media{position:relative;height:42%;overflow:hidden;flex-shrink:0;}
.pillar-card-media img{
  width:100%;height:100%;object-fit:cover;object-position:50% 22%;
  filter:grayscale(0.25) contrast(1.05) brightness(0.85) saturate(0.9);
  transition:transform 1.4s cubic-bezier(.16,1,.3,1), filter .6s ease;
}
.pillar-card:hover .pillar-card-media img{transform:scale(1.08);filter:grayscale(0.15) contrast(1.05) brightness(0.95) saturate(0.95);}
.pillar-card-media::after{
  content:'';position:absolute;inset:0;
  background:linear-gradient(180deg, transparent 55%, rgba(10,10,10,0.95) 100%);
}
.pillar-card-body{
  position:relative;flex:1;display:flex;flex-direction:column;justify-content:flex-end;
  padding:1.6rem 1.8rem 2.2rem;
}
.pillar-card .pn{position:relative;z-index:2;font-family:'Playfair Display',serif;font-size:1rem;color:var(--gold);letter-spacing:0.1em;margin-bottom:0.8rem;}
.pillar-card h3{position:relative;z-index:2;font-size:clamp(1.4rem,2.6vw,1.8rem);font-weight:500;margin-bottom:0.7rem;}
.pillar-card p{position:relative;z-index:2;font-size:0.88rem;color:rgba(242,240,234,0.75);line-height:1.6;margin-bottom:1.2rem;max-width:34ch;}
.pillar-card .view-link{
  position:relative;z-index:2;font-family:'Cinzel',serif;font-size:0.66rem;letter-spacing:0.2em;
  text-transform:uppercase;color:var(--gold);display:inline-flex;align-items:center;gap:0.5rem;
  width:fit-content;padding:0.75rem 1.2rem;border:1px solid rgba(232,185,35,0.4);
  transition:background .35s ease, color .35s ease, border-color .35s ease;
}
.pillar-card .view-link .arrow{display:inline-block;}
.pillar-card:hover .view-link{background:var(--gold);color:var(--black);border-color:var(--gold);}
@media (hover:hover){
  .pillar-card .view-link .arrow{transition:transform .35s ease;}
  .pillar-card:hover .view-link .arrow{transform:translateX(6px);}
}

/* Badge de canto — sinaliza que o card inteiro é clicável */
.pillar-card-arrow{
  position:absolute;top:1.2rem;right:1.2rem;z-index:3;
  width:40px;height:40px;border-radius:50%;
  border:1px solid rgba(232,185,35,0.45);background:rgba(10,10,10,0.55);
  display:flex;align-items:center;justify-content:center;
  color:var(--gold);font-size:1.1rem;line-height:1;
  backdrop-filter:blur(2px);
}
@media (hover:hover){
  .pillar-card-arrow{transition:background .35s ease, color .35s ease, transform .35s ease, border-color .35s ease;}
  .pillar-card:hover .pillar-card-arrow{background:var(--gold);color:var(--black);border-color:var(--gold);transform:rotate(45deg);}
}

/* ---------- Programas ---------- */
.programs-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:1px;background:rgba(232,185,35,0.15);}
.program-card{
  background:var(--black);position:relative;overflow:hidden;
  transition:transform .5s ease, box-shadow .5s ease;
}
.program-card:hover{transform:scale(1.02);box-shadow:0 0 40px -10px rgba(232,185,35,0.25);z-index:2;}
.program-card-media{position:relative;height:150px;overflow:hidden;}
.program-card-media img{
  width:100%;height:100%;object-fit:cover;
  filter:grayscale(0.25) contrast(1.05) brightness(0.82) saturate(0.9);
  transition:transform 1.2s cubic-bezier(.16,1,.3,1);
}
.program-card:hover .program-card-media img{transform:scale(1.06);}
.program-card-body{padding:1.8rem 1.6rem 2.2rem;}
.program-card .pn{font-family:'Playfair Display',serif;font-size:2rem;color:var(--gold-dim);display:block;margin-bottom:0.7rem;}
.program-card h3{font-size:1.22rem;font-weight:500;margin-bottom:0.6rem;}
.program-card p{font-size:0.85rem;color:rgba(242,240,234,0.65);line-height:1.65;}

/* ---------- Mestres ---------- */
.masters{display:flex;flex-direction:column;gap:5rem;}
.master-row{position:relative;overflow:hidden;padding:2.5rem 0;}
@media (max-width:800px){.master-row{padding:0;}}
.master-bg{position:absolute;inset:0;z-index:0;}
.master-bg img{
  position:absolute;top:0;left:0;height:100%;width:54%;
  object-fit:cover;object-position:50% 16%;
  filter:grayscale(0.3) contrast(1.05) brightness(0.68);
  -webkit-mask-image:linear-gradient(to right, black 45%, transparent 92%), linear-gradient(to bottom, transparent 0%, black 14%, black 86%, transparent 100%);
  -webkit-mask-composite:source-in;
  mask-image:linear-gradient(to right, black 45%, transparent 92%), linear-gradient(to bottom, transparent 0%, black 14%, black 86%, transparent 100%);
  mask-composite:intersect;
}
.master-bg-overlay{position:absolute;inset:0;background:rgba(10,10,10,0.32);}
@media (max-width:800px){
  .master-bg img{
    width:100%;left:0;
    object-position:50% 14%;
    -webkit-mask-image:linear-gradient(180deg, black 0%, black 40%, transparent 88%), linear-gradient(to right, transparent 0%, black 10%, black 90%, transparent 100%);
    mask-image:linear-gradient(180deg, black 0%, black 40%, transparent 88%), linear-gradient(to right, transparent 0%, black 10%, black 90%, transparent 100%);
    filter:grayscale(0.35) contrast(1.05) brightness(0.48);
  }
  .master-bg-overlay{background:rgba(10,10,10,0.58);}
}
.master-info{position:relative;z-index:2;padding-left:34%;}
@media (max-width:800px){.master-info{padding-left:0;padding-top:1.8rem;}}
.master-info .role{color:var(--gold);}
.master-info h3{font-size:clamp(1.5rem,3vw,2.1rem);font-weight:500;margin:0.4rem 0 1rem;}
.master-info p{color:rgba(242,240,234,0.8);line-height:1.85;font-size:0.95rem;max-width:52ch;}
.master-info .tag{display:inline-block;margin-top:1rem;font-family:'Cinzel',serif;font-size:0.68rem;letter-spacing:0.15em;text-transform:uppercase;color:var(--terracotta);border:1px solid rgba(110,42,32,0.5);padding:0.4rem 0.8rem;}

/* ---------- Foto de família (homenagem, no bio do Mestre) ---------- */
.family-photo{float:right;width:38%;max-width:220px;margin:0.3rem 0 1.4rem 1.8rem;}
@media (max-width:800px){.family-photo{float:none;width:100%;max-width:240px;margin:1.6rem auto;}}
.family-photo img{
  width:100%;aspect-ratio:4/5;object-fit:cover;object-position:50% 15%;display:block;
  border:1px solid rgba(232,185,35,0.25);
  filter:grayscale(0.15) contrast(1.03) saturate(0.95);
  box-shadow:inset 0 0 0 300px rgba(0,0,0,0.16);
}
.family-photo figcaption{
  font-family:'Cinzel',serif;font-size:0.6rem;letter-spacing:0.06em;text-transform:uppercase;
  color:rgba(242,240,234,0.45);text-align:left;margin-top:0.6rem;
}

/* ---------- Credenciais (carteirinhas do Mestre) ---------- */
.credentials{margin-top:5rem;padding-top:4rem;border-top:1px solid rgba(232,185,35,0.15);position:relative;overflow:hidden;}
.credentials-bg{position:absolute;inset:0;z-index:0;}
.credentials-bg img{
  position:absolute;top:0;right:0;height:100%;width:42%;
  object-fit:cover;object-position:50% 22%;
  filter:grayscale(0.3) contrast(1.05) brightness(0.72);
  -webkit-mask-image:linear-gradient(to left, black 45%, transparent 92%), linear-gradient(to bottom, transparent 0%, black 14%, black 86%, transparent 100%);
  -webkit-mask-composite:source-in;
  mask-image:linear-gradient(to left, black 45%, transparent 92%), linear-gradient(to bottom, transparent 0%, black 14%, black 86%, transparent 100%);
  mask-composite:intersect;
}
.credentials-bg-overlay{position:absolute;inset:0;background:rgba(10,10,10,0.3);}
@media (max-width:900px){
  .credentials-bg img{
    width:100%;right:0;
    object-position:50% 18%;
    -webkit-mask-image:linear-gradient(180deg, black 0%, black 45%, transparent 92%), linear-gradient(to right, transparent 0%, black 10%, black 90%, transparent 100%);
    mask-image:linear-gradient(180deg, black 0%, black 45%, transparent 92%), linear-gradient(to right, transparent 0%, black 10%, black 90%, transparent 100%);
    filter:grayscale(0.35) contrast(1.05) brightness(0.5);
  }
  .credentials-bg-overlay{background:rgba(10,10,10,0.55);}
}
.credentials>.label{position:relative;z-index:2;}
.docs-col-title{display:block;text-align:center;margin-bottom:1.1rem;}

/* ---------- Teasers — prévia de Credenciais/Certificados na página ---------- */
.docs-teasers{
  position:relative;z-index:2;
  display:flex;justify-content:center;align-items:flex-end;gap:2.5rem;flex-wrap:wrap;
  max-width:640px;margin:0 auto;transform:translateX(-9%);
}
@media (max-width:900px){.docs-teasers{transform:none;}}
.docs-teaser{
  background:none;border:none;padding:0;cursor:pointer;font-family:inherit;color:inherit;
  display:flex;flex-direction:column;align-items:center;gap:0.8rem;width:220px;
}
.docs-teaser-media{
  position:relative;overflow:hidden;display:block;width:100%;aspect-ratio:3/2;
  border:1px solid rgba(232,185,35,0.25);
  transition:transform .5s cubic-bezier(.16,1,.3,1), box-shadow .5s ease, border-color .5s ease;
}
.docs-teaser-media--portrait{aspect-ratio:3/4;}
.docs-teaser-media img{width:100%;height:100%;object-fit:cover;object-position:top center;display:block;}
.docs-teaser:hover .docs-teaser-media{
  transform:scale(1.035) rotate(-0.4deg);
  box-shadow:0 14px 34px -10px rgba(232,185,35,0.32);
  border-color:rgba(232,185,35,0.55);
}
.docs-teaser-title{
  font-family:'Cinzel',serif;font-size:0.78rem;letter-spacing:0.16em;text-transform:uppercase;color:var(--gold);
}
.docs-teaser-count{
  font-family:'Work Sans',sans-serif;font-weight:300;font-size:0.7rem;letter-spacing:0.03em;
  color:rgba(242,240,234,0.5);margin-top:-0.5rem;
}
@media (max-width:520px){
  .docs-teasers{gap:1.6rem;}
  .docs-teaser{width:44%;}
}

/* ---------- Painel — todas as credenciais e certificados ---------- */
.docs-panel{
  position:fixed;inset:0;z-index:2500;
  background:rgba(6,6,6,0.97);overflow-y:auto;
  padding:5rem 1.5rem 4rem;
  opacity:0;visibility:hidden;pointer-events:none;
  transition:opacity .35s ease, visibility .35s ease;
}
.docs-panel.open{opacity:1;visibility:visible;pointer-events:auto;}
.docs-panel-inner{
  position:relative;max-width:1100px;margin:0 auto;
  display:flex;flex-direction:column;gap:4rem;
}
.docs-panel-close{
  position:fixed;top:1.4rem;right:1.5rem;z-index:2;
  width:40px;height:40px;border-radius:50%;
  background:rgba(10,10,10,0.8);border:1px solid rgba(232,185,35,0.4);color:var(--bone);
  font-size:1.3rem;line-height:1;cursor:pointer;
  display:flex;align-items:center;justify-content:center;
  transition:background .3s ease, color .3s ease, border-color .3s ease;
}
.docs-panel-close:hover{background:var(--gold);color:var(--black);border-color:var(--gold);}
.docs-panel-section .credentials-gallery{
  max-width:none;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:1.1rem;
}
.credentials-gallery{
  display:grid;grid-template-columns:repeat(2,1fr);gap:0.7rem 0.9rem;
  max-width:380px;margin:0 auto;
}
.credentials-gallery figure{margin:0;cursor:zoom-in;position:relative;overflow:hidden;}
.credentials-gallery img{
  width:100%;aspect-ratio:3/2;object-fit:cover;display:block;
  border:1px solid rgba(232,185,35,0.2);
  transition:transform .5s cubic-bezier(.16,1,.3,1), box-shadow .5s ease, border-color .5s ease;
}
.credentials-gallery figure:hover img{
  transform:scale(1.05) rotate(-0.4deg);
  box-shadow:0 12px 30px -8px rgba(232,185,35,0.3);
  border-color:rgba(232,185,35,0.5);
}
.credentials-gallery figcaption{
  font-family:'Cinzel',serif;font-size:0.56rem;letter-spacing:0.08em;text-transform:uppercase;
  color:rgba(242,240,234,0.5);text-align:center;margin-top:0.55rem;
}
@media (min-width:640px){
  .credentials-gallery{max-width:420px;gap:0.8rem 1rem;}
}
#certGallery img{aspect-ratio:3/4;object-position:top center;}
/* ---------- Lightbox — Credenciais (sem escurecer o fundo da página) ---------- */
.lightbox{
  position:fixed;inset:0;z-index:3000;
  display:flex;align-items:center;justify-content:center;padding:3rem 1.5rem;
  opacity:0;visibility:hidden;pointer-events:none;
  transition:opacity .3s ease, visibility .3s ease;
}
.lightbox.open{opacity:1;visibility:visible;pointer-events:auto;}
.lightbox-inner{
  position:relative;max-width:min(90vw,720px);
  display:flex;flex-direction:column;align-items:center;gap:1rem;
  transform:scale(0.94);transition:transform .3s ease;
}
.lightbox.open .lightbox-inner{transform:scale(1);}
.lightbox-inner img{
  max-width:100%;max-height:78vh;object-fit:contain;display:block;
  border:1px solid rgba(232,185,35,0.3);background:var(--black);
  box-shadow:0 30px 70px -14px rgba(0,0,0,0.75);
  -webkit-user-select:none;user-select:none;-webkit-user-drag:none;user-drag:none;
}
.lightbox-frame{position:relative;display:block;overflow:hidden;}
.lightbox-frame::after{
  content:'';
  position:absolute;top:-35%;left:-35%;right:-35%;bottom:-35%;
  background-image:url('../ibh-logo.png');
  background-repeat:repeat;
  background-size:70px 70px;
  opacity:0.16;
  transform:rotate(-24deg);
  pointer-events:none;
  animation:watermarkDrift 18s linear infinite;
}
@media (prefers-reduced-motion:reduce){
  .lightbox-frame::after{animation:none;}
}
.lightbox-caption{
  font-family:'Cinzel',serif;font-size:0.68rem;letter-spacing:0.15em;text-transform:uppercase;
  color:var(--gold);text-align:center;
}
.lightbox-close{
  position:absolute;top:0.7rem;right:0.7rem;z-index:2;
  width:36px;height:36px;border-radius:50%;
  background:rgba(10,10,10,0.75);border:1px solid rgba(232,185,35,0.4);color:var(--bone);
  font-size:1.2rem;line-height:1;cursor:pointer;
  display:flex;align-items:center;justify-content:center;
  transition:background .3s ease, color .3s ease, border-color .3s ease;
}
.lightbox-close:hover{background:var(--gold);color:var(--black);border-color:var(--gold);}

/* ---------- Proteção contra cópia — documentos pessoais escaneados ---------- */
.no-copy img{
  -webkit-user-select:none;-moz-user-select:none;user-select:none;
  -webkit-user-drag:none;user-drag:none;
  pointer-events:auto;
}
.no-copy{-webkit-touch-callout:none;}
.no-copy figure::after,
.docs-teaser-media::after{
  content:'';
  position:absolute;top:-35%;left:-35%;right:-35%;bottom:-35%;
  background-image:url('../ibh-logo.png');
  background-repeat:repeat;
  background-size:60px 60px;
  opacity:0.16;
  transform:rotate(-24deg);
  pointer-events:none;
  animation:watermarkDrift 18s linear infinite;
}
@keyframes watermarkDrift{
  0%{background-position:0 0;}
  100%{background-position:240px 240px;}
}
@media (prefers-reduced-motion:reduce){
  .no-copy figure::after,
  .docs-teaser-media::after{animation:none;}
}

/* ---------- Rede de Filiadas — fundo fotográfico ---------- */
#escolas{overflow:hidden;}
.escolas-bg{position:absolute;inset:0;z-index:0;}
.escolas-bg img{
  position:absolute;top:0;right:0;height:100%;width:42%;
  object-fit:cover;object-position:50% 30%;
  filter:grayscale(0.3) contrast(1.05) brightness(0.72);
  -webkit-mask-image:linear-gradient(to left, black 45%, transparent 92%), linear-gradient(to bottom, transparent 0%, black 14%, black 86%, transparent 100%);
  -webkit-mask-composite:source-in;
  mask-image:linear-gradient(to left, black 45%, transparent 92%), linear-gradient(to bottom, transparent 0%, black 14%, black 86%, transparent 100%);
  mask-composite:intersect;
}
.escolas-bg-overlay{position:absolute;inset:0;background:rgba(10,10,10,0.3);}
@media (max-width:900px){
  .escolas-bg img{
    width:100%;right:0;
    object-position:50% 22%;
    -webkit-mask-image:linear-gradient(180deg, black 0%, black 45%, transparent 92%), linear-gradient(to right, transparent 0%, black 10%, black 90%, transparent 100%);
    mask-image:linear-gradient(180deg, black 0%, black 45%, transparent 92%), linear-gradient(to right, transparent 0%, black 10%, black 90%, transparent 100%);
    filter:grayscale(0.35) contrast(1.05) brightness(0.5);
  }
  .escolas-bg-overlay{background:rgba(10,10,10,0.55);}
}
.escolas-content{position:relative;z-index:2;transform:translateX(-9%);}
@media (max-width:900px){.escolas-content{transform:none;}}

/* ---------- Rede — cards de escolas filiadas ---------- */
.escolas-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:1px;max-width:1100px;margin:0 auto 3.5rem;}
.escola-card{background:var(--black);position:relative;overflow:hidden;display:flex;flex-direction:column;}
.escola-card.no-photo{background:none;}
.escola-card-media{position:relative;height:170px;overflow:hidden;background:linear-gradient(160deg,#151515,#0a0a0a 70%);}
.escola-card-media img.activity{width:100%;height:100%;object-fit:cover;filter:grayscale(0.25) contrast(1.05) brightness(0.78) saturate(0.9);transition:transform 1.1s cubic-bezier(.16,1,.3,1);}
.escola-card:hover .escola-card-media img.activity{transform:scale(1.06);}
.escola-card-media .escola-logo{position:absolute;left:1.4rem;bottom:-30px;width:62px;height:62px;border-radius:50%;border:2px solid var(--gold);object-fit:cover;background:var(--black);box-shadow:0 4px 14px rgba(0,0,0,0.55);}
.escola-card-media.no-photo{display:flex;align-items:center;justify-content:center;background:none;}
.escola-card-media.no-photo img.logo-only{width:96px;height:96px;border-radius:50%;border:2px solid rgba(232,185,35,0.4);object-fit:cover;transition:transform .6s ease, border-color .4s ease;}
.escola-card:hover .escola-card-media.no-photo img.logo-only{transform:scale(1.06);border-color:var(--gold);}
.escola-card-body{padding:1.6rem 1.4rem 1.8rem;}
.escola-card:not(.no-photo) .escola-card-body{padding-top:2.6rem;}
.escola-card h3{font-family:'Playfair Display',serif;font-size:1.12rem;font-weight:500;margin-bottom:0.4rem;}
.escola-card .city{display:block;font-family:'Cinzel',serif;font-size:0.62rem;letter-spacing:0.14em;text-transform:uppercase;color:rgba(242,240,234,0.5);margin-bottom:1rem;}
.escola-card .ig-link{font-family:'Cinzel',serif;font-size:0.64rem;letter-spacing:0.15em;text-transform:uppercase;color:var(--gold);display:inline-flex;align-items:center;gap:0.4rem;}
.escola-card .ig-link .arrow{display:inline-block;}
@media (hover:hover){
  .escola-card .ig-link .arrow{transition:transform .3s ease;}
  .escola-card:hover .ig-link .arrow{transform:translateX(4px);}
}

/* ---------- Rede ---------- */
.network-list{max-width:780px;margin:0 auto;border-top:1px solid rgba(232,185,35,0.15);}
.network-item{
  display:flex;justify-content:space-between;align-items:baseline;
  padding:1.35rem 0;border-bottom:1px solid rgba(232,185,35,0.15);
  font-family:'Playfair Display',serif;font-size:clamp(1.05rem,2vw,1.4rem);
}
.network-item span.city{font-family:'Work Sans',sans-serif;font-size:0.75rem;letter-spacing:0.1em;color:rgba(242,240,234,0.5);text-transform:uppercase;}
.network-note{text-align:center;margin-top:2rem;font-size:0.75rem;color:rgba(242,240,234,0.4);}

/* ---------- CTA ---------- */
.cta{text-align:center;}
.cta-inner{max-width:600px;margin:0 auto;}
.cta h2{font-size:clamp(1.7rem,4vw,2.6rem);font-weight:500;margin-bottom:1rem;}
.cta p{color:rgba(242,240,234,0.7);margin-bottom:2.6rem;font-size:0.95rem;}
.btn-gold{
  display:inline-block;background:var(--gold);color:var(--black);
  padding:1rem 2.6rem;font-family:'Cinzel',serif;font-size:0.72rem;letter-spacing:0.2em;text-transform:uppercase;
  font-weight:500;position:relative;transition:letter-spacing .35s ease, background .35s ease;
}
.btn-gold:hover{letter-spacing:0.3em;background:#f4c93c;}
.cta-meta{margin-top:2.4rem;font-size:0.82rem;color:rgba(242,240,234,0.5);}
.cta-meta a{color:var(--gold);}
.cta-seal{width:1px;height:40px;background:var(--terracotta);margin:2.4rem auto 0;}

/* ---------- Explorar o site — card de navegação ao final de cada página ---------- */
.explore-pages{
  margin-top:5rem;padding:3.5rem clamp(1.2rem,6vw,3rem) 0;
  border-top:1px solid rgba(232,185,35,0.15);
}
.explore-pages>.label{display:block;text-align:center;margin-bottom:2rem;}
.explore-grid{
  display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));
  gap:1px;max-width:1000px;margin:0 auto;
  background:rgba(232,185,35,0.15);
}
.explore-card{
  display:flex;flex-direction:column;gap:0.4rem;
  background:var(--black);padding:1.5rem 1.6rem;
  transition:background .3s ease;
}
.explore-card:hover{background:#141414;}
.explore-card-index{
  font-family:'Cinzel',serif;font-size:0.65rem;letter-spacing:0.14em;color:rgba(232,185,35,0.5);
}
.explore-card-title{
  font-family:'Playfair Display',serif;font-size:1.05rem;font-weight:500;color:var(--bone);
  display:flex;align-items:center;justify-content:space-between;gap:0.5rem;
}
.explore-card-title .arrow{font-size:0.85rem;color:var(--gold);transition:transform .3s ease;}
.explore-card:hover .explore-card-title .arrow{transform:translateX(4px);}
.explore-card-desc{font-size:0.78rem;color:rgba(242,240,234,0.5);line-height:1.5;}
.explore-card.is-current{background:#0f0f0f;cursor:default;}
.explore-card.is-current .explore-card-title{color:var(--gold);}
.explore-card.is-current .explore-card-desc{color:rgba(232,185,35,0.4);}

/* ---------- Footer ---------- */
footer{
  padding:3rem clamp(1.2rem,6vw,6rem) 2.4rem;
  border-top:1px solid var(--terracotta);
  display:flex;flex-wrap:wrap;gap:1rem;justify-content:space-between;align-items:center;
}
footer .fbrand{display:flex;align-items:center;gap:0.6rem;}
footer .fbrand img{width:22px;height:22px;}
footer small{font-size:0.7rem;color:rgba(242,240,234,0.4);letter-spacing:0.03em;}
footer .fsocial{font-family:'Cinzel',serif;font-size:0.68rem;letter-spacing:0.15em;text-transform:uppercase;color:var(--gold);}

/* ---------- Intro (efeito de abertura) ---------- */
#introOverlay{
  position:fixed;inset:0;z-index:10000;background:#000;
  display:flex;align-items:center;justify-content:center;padding:2rem;
  animation:introSequence 2.4s ease forwards;
}
#introOverlay p{
  font-family:'Playfair Display',serif;font-weight:400;font-style:italic;color:#ffffff;
  font-size:clamp(1rem,2.2vw,1.5rem);letter-spacing:0.01em;
  text-align:center;max-width:22ch;line-height:1.7;
  opacity:0;animation:introTextFade 2.4s ease forwards;
}
@keyframes introSequence{0%,92%{opacity:1;visibility:visible;}100%{opacity:0;visibility:hidden;}}
@keyframes introTextFade{0%{opacity:0;}18%{opacity:1;}75%{opacity:1;}95%{opacity:0;}100%{opacity:0;}}
body.intro-active{overflow:hidden;height:100vh;}

/* ---------- Contato — brasão flutuante ---------- */
@keyframes eagleFloat{0%,100%{transform:translateY(0);}50%{transform:translateY(-10px);}}
.hero-eagle--float img{animation:eagleFadeIn 1.6s ease forwards, eagleFloat 6s ease-in-out 1.8s infinite;}

/* ---------- Contato — horários ---------- */
.schedule-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:1px;background:rgba(232,185,35,0.15);max-width:900px;margin:0 auto;}
.schedule-card{background:var(--black);padding:1.8rem 1.6rem;}
.schedule-card .days{display:block;font-family:'Cinzel',serif;font-size:0.68rem;letter-spacing:0.14em;text-transform:uppercase;color:var(--gold);margin-bottom:1rem;}
.schedule-card ul{list-style:none;display:flex;flex-direction:column;gap:0.6rem;}
.schedule-card li{font-size:0.88rem;color:rgba(242,240,234,0.8);line-height:1.5;}
.schedule-card li b{color:var(--bone);font-family:'Playfair Display',serif;font-weight:500;}

/* ---------- Contato — simulador de matrícula ---------- */
.enroll-form{max-width:560px;margin:0 auto;display:flex;flex-direction:column;gap:1.6rem;}
.field{display:flex;flex-direction:column;gap:0.5rem;}
.field label,.field-label{font-family:'Cinzel',serif;font-size:0.66rem;letter-spacing:0.14em;text-transform:uppercase;color:rgba(242,240,234,0.6);}
.enroll-form input[type="text"],.enroll-form select{
  background:rgba(242,240,234,0.04);border:1px solid rgba(232,185,35,0.25);color:var(--bone);
  padding:0.85rem 1rem;font-family:'Work Sans',sans-serif;font-size:0.95rem;
  transition:border-color .3s ease;
}
.enroll-form input[type="text"]:focus,.enroll-form select:focus{outline:none;border-color:var(--gold);}
.enroll-form select{color-scheme:dark;}
.field-group{display:flex;flex-direction:column;gap:0.6rem;}
.radio-row{display:flex;gap:1.6rem;flex-wrap:wrap;}
.radio-row label{display:flex;align-items:center;gap:0.5rem;font-size:0.9rem;color:rgba(242,240,234,0.85);cursor:pointer;}
.enroll-hint{font-size:0.8rem;color:rgba(242,240,234,0.5);}
.btn-gold.disabled{opacity:0.35;pointer-events:none;}

/* ---------- Contato — valores (painel bloqueado) ---------- */
.price-panel{position:relative;max-width:700px;margin:0 auto;text-align:center;}
.price-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:1.2rem;transition:filter .4s ease, opacity .4s ease;}
.price-card{border:1px solid rgba(232,185,35,0.2);padding:2rem 1.4rem;}
.price-card .label{display:block;margin-bottom:0.8rem;}
.price-card b{display:block;font-family:'Playfair Display',serif;font-size:2rem;color:var(--gold);}
.price-card b small{font-size:0.9rem;color:rgba(242,240,234,0.5);font-family:'Work Sans',sans-serif;}
.price-card .fee{display:block;margin-top:0.6rem;font-size:0.78rem;color:rgba(242,240,234,0.5);}
.price-note{margin-top:1.6rem;font-size:0.8rem;color:rgba(242,240,234,0.5);}
.price-panel.locked .price-grid{filter:blur(8px);opacity:0.4;pointer-events:none;}
.price-lock{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:0.8rem;opacity:0;visibility:hidden;transition:opacity .3s ease;z-index:2;}
.price-panel.locked .price-lock{opacity:1;visibility:visible;}
.price-lock span{font-size:1.6rem;}
.price-lock p{max-width:30ch;font-size:0.85rem;color:rgba(242,240,234,0.7);}

/* ---------- Contato — unidades ---------- */
.units-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:1px;background:rgba(232,185,35,0.15);max-width:1000px;margin:0 auto;}
.unit-card{background:var(--black);padding:2.2rem 1.8rem;display:flex;flex-direction:column;gap:1rem;}
.unit-card h3{font-family:'Playfair Display',serif;font-size:1.3rem;font-weight:500;}
.unit-card .city{font-family:'Cinzel',serif;font-size:0.64rem;letter-spacing:0.14em;text-transform:uppercase;color:rgba(242,240,234,0.5);}
.unit-card p{font-size:0.88rem;color:rgba(242,240,234,0.75);line-height:1.6;}
.unit-card .btn-gold{align-self:flex-start;padding:0.8rem 1.8rem;font-size:0.66rem;}
.unit-map{margin-top:0.6rem;border:1px solid rgba(232,185,35,0.2);}
.unit-map iframe{width:100%;height:220px;border:0;display:block;filter:grayscale(0.4) contrast(1.05);}

/* ---------- Stats ---------- */
.stats-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:2.5rem;margin:3rem 0 3.5rem;text-align:center;}
.stat b{display:block;font-family:'Playfair Display',serif;font-weight:500;font-size:clamp(2rem,4vw,2.8rem);color:var(--gold);}
.stat span{font-size:0.72rem;letter-spacing:0.08em;color:rgba(242,240,234,0.6);}
.trajectory-lead{max-width:70ch;line-height:1.9;color:rgba(242,240,234,0.85);font-size:0.98rem;margin-bottom:1rem;}
.trajectory-highlight{max-width:70ch;line-height:1.9;font-size:1rem;border-left:2px solid var(--gold);padding-left:1.3rem;color:var(--bone);}

/* ---------- Em números — fundo fotográfico ---------- */
#trajetoria{overflow:hidden;}
.trajetoria-bg{position:absolute;inset:0;z-index:0;}
.trajetoria-bg img{
  position:absolute;top:0;right:0;height:100%;width:42%;
  object-fit:cover;object-position:50% 32%;
  filter:grayscale(0.3) contrast(1.05) brightness(0.72);
  -webkit-mask-image:linear-gradient(to left, black 45%, transparent 92%), linear-gradient(to bottom, transparent 0%, black 14%, black 86%, transparent 100%);
  -webkit-mask-composite:source-in;
  mask-image:linear-gradient(to left, black 45%, transparent 92%), linear-gradient(to bottom, transparent 0%, black 14%, black 86%, transparent 100%);
  mask-composite:intersect;
}
.trajetoria-bg-overlay{position:absolute;inset:0;background:rgba(10,10,10,0.3);}
@media (max-width:900px){
  .trajetoria-bg img{
    width:100%;right:0;
    object-position:50% 25%;
    -webkit-mask-image:linear-gradient(180deg, black 0%, black 45%, transparent 92%), linear-gradient(to right, transparent 0%, black 10%, black 90%, transparent 100%);
    mask-image:linear-gradient(180deg, black 0%, black 45%, transparent 92%), linear-gradient(to right, transparent 0%, black 10%, black 90%, transparent 100%);
    filter:grayscale(0.35) contrast(1.05) brightness(0.5);
  }
  .trajetoria-bg-overlay{background:rgba(10,10,10,0.55);}
}
#trajetoria .section-heading,.trajetoria-content{position:relative;z-index:2;}
.trajetoria-content{max-width:720px;margin:0 auto;transform:translateX(-9%);}
@media (max-width:900px){.trajetoria-content{transform:none;max-width:100%;}}

/* ---------- Campeonatos ---------- */
.champ-table{max-width:900px;margin:0 auto 2.5rem;border-top:1px solid rgba(232,185,35,0.15);}
.champ-row{padding:1.5rem 0;border-bottom:1px solid rgba(232,185,35,0.15);display:grid;grid-template-columns:70px 1fr;gap:1.2rem;}
.champ-row .year{font-family:'Playfair Display',serif;font-size:1.8rem;color:var(--gold);}
.champ-row h4{font-weight:500;font-size:1.1rem;margin-bottom:0.3rem;}
.champ-row p{font-size:0.85rem;color:rgba(242,240,234,0.65);line-height:1.6;}
.champ-photo{max-width:420px;margin:0 auto 3rem;}
.champ-photo img{
  width:100%;display:block;
  filter:grayscale(0.2) contrast(1.05) brightness(0.92);
  -webkit-mask-image:radial-gradient(ellipse at center, black 55%, transparent 100%);
  mask-image:radial-gradient(ellipse at center, black 55%, transparent 100%);
}
.champ-photo figcaption{font-size:0.68rem;letter-spacing:0.1em;text-transform:uppercase;color:rgba(242,240,234,0.4);text-align:center;margin-top:0.7rem;}
.champ-gallery{display:grid;grid-template-columns:repeat(3,1fr);gap:1.2rem;max-width:960px;margin:3.5rem auto 0;}
@media (max-width:800px){.champ-gallery{grid-template-columns:1fr;}}
.champ-gallery figure{margin:0;}
.champ-gallery img{width:100%;aspect-ratio:4/5;object-fit:cover;display:block;border:1px solid rgba(232,185,35,0.2);}
.champ-gallery figcaption{font-size:0.65rem;letter-spacing:0.08em;text-transform:uppercase;color:rgba(242,240,234,0.4);text-align:center;margin-top:0.6rem;}
.news-card .news-photo{width:100%;aspect-ratio:16/9;object-fit:cover;margin-bottom:1.6rem;border:1px solid rgba(232,185,35,0.2);}

/* ---------- Mais Eventos ---------- */
.eventos-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:1px;background:rgba(232,185,35,0.15);max-width:1100px;margin:0 auto;}
.evento-card{background:var(--black);position:relative;overflow:hidden;display:block;}
.evento-card img{width:100%;aspect-ratio:4/3;object-fit:cover;display:block;filter:grayscale(0.25) contrast(1.05) brightness(0.82) saturate(0.9);transition:transform 1s cubic-bezier(.16,1,.3,1), filter .5s ease;}
.evento-card:hover img{transform:scale(1.06);filter:grayscale(0.15) contrast(1.05) brightness(0.92) saturate(0.95);}
.evento-card-body{padding:1.2rem 1.3rem 1.4rem;}
.evento-card h4{font-family:'Playfair Display',serif;font-weight:500;font-size:1rem;line-height:1.35;margin-bottom:0.6rem;}
.evento-card .evento-link{font-family:'Cinzel',serif;font-size:0.62rem;letter-spacing:0.15em;text-transform:uppercase;color:var(--gold);display:inline-flex;align-items:center;gap:0.4rem;}
@media (hover:hover){
  .evento-card .evento-link .arrow{transition:transform .3s ease;}
  .evento-card:hover .evento-link .arrow{transform:translateX(4px);}
}

/* ---------- Novidades ---------- */
.novidade-grid{display:grid;grid-template-columns:1.3fr 1fr;gap:2.4rem;max-width:1200px;margin:0 auto;align-items:start;padding:0 clamp(1.2rem,6vw,6rem);}
@media (max-width:900px){.novidade-grid{grid-template-columns:1fr;}}
.news-card{
  border:1px solid var(--gold-dim);
  padding:2.4rem clamp(1.5rem,4vw,3rem);position:relative;text-align:left;
}
.news-card .news-tag{display:inline-block;background:var(--gold);color:var(--black);font-family:'Cinzel',serif;font-size:0.66rem;letter-spacing:0.15em;text-transform:uppercase;padding:0.35rem 0.8rem;margin-bottom:1.2rem;}
.news-card h3{font-size:clamp(1.3rem,2.6vw,1.7rem);font-weight:500;margin-bottom:0.8rem;}
.news-card p{color:rgba(242,240,234,0.8);line-height:1.8;font-size:0.95rem;}
.news-card .news-date{display:block;margin-top:1rem;font-size:0.7rem;letter-spacing:0.1em;color:var(--terracotta);text-transform:uppercase;}

/* ---------- Embeds sociais (dentro do card Novidade) ---------- */
.social-embed{margin-top:2rem;padding-top:1.6rem;border-top:1px solid rgba(232,185,35,0.15);}
.social-embed-label{display:block;font-family:'Cinzel',serif;font-size:0.62rem;letter-spacing:0.15em;text-transform:uppercase;color:var(--gold);margin-bottom:0.8rem;}
.social-embed .instagram-media{margin:0 !important;max-width:100% !important;min-width:0 !important;width:100% !important;}
.social-embed .fb-embed{width:100%;height:400px;border:1px solid rgba(232,185,35,0.2);display:block;}

/* ---------- Card "Você sabia?" ---------- */
.fact-card{border:1px solid var(--gold-dim);padding:2.4rem clamp(1.5rem,4vw,2.4rem);position:relative;text-align:left;min-height:280px;display:flex;flex-direction:column;cursor:pointer;transition:border-color .3s ease;}
.fact-card:hover{border-color:var(--gold);}
.fact-card .news-tag{display:inline-block;background:transparent;color:var(--gold);border:1px solid var(--gold);font-family:'Cinzel',serif;font-size:0.66rem;letter-spacing:0.15em;text-transform:uppercase;padding:0.35rem 0.8rem;margin-bottom:1.2rem;align-self:flex-start;}
.fact-card-body{flex:1;transition:opacity .5s ease;}
.fact-card-body.fading{opacity:0;}
.fact-photo{width:100%;aspect-ratio:16/9;object-fit:cover;margin-bottom:1.2rem;border:1px solid rgba(232,185,35,0.2);}
.fact-photo[hidden]{display:none;}
.fact-card-body h3{font-size:clamp(1.1rem,2.2vw,1.35rem);font-weight:500;margin-bottom:0.8rem;}
.fact-card-body p{color:rgba(242,240,234,0.8);line-height:1.8;font-size:0.9rem;white-space:pre-line;}
.fact-link{
  margin-top:1.2rem;font-family:'Cinzel',serif;font-size:0.66rem;letter-spacing:0.15em;
  text-transform:uppercase;color:var(--gold);display:inline-flex;align-items:center;gap:0.4rem;
}
.fact-link[hidden]{display:none;}
@media (hover:hover){
  .fact-link .arrow{transition:transform .3s ease;}
  .fact-link:hover .arrow{transform:translateX(4px);}
}
.fact-dots{display:flex;gap:0.5rem;margin-top:1.6rem;}
.fact-dots span{width:6px;height:6px;border-radius:50%;background:rgba(232,185,35,0.25);transition:background .3s ease;}
.fact-dots span.active{background:var(--gold);}

/* ======================================================================
   Ajustes mobile — realces dourados, toque e hero em tela cheia
   ====================================================================== */
@media (max-width:900px){
  /* separador dourado sutil entre seções empilhadas, pra não virar
     uma sequência de blocos pretos sem transição */
  section + section{border-top:1px solid rgba(232,185,35,0.12);}

  /* reforça divisores dourados que hoje ficam quase invisíveis no mobile */
  .explore-pages{border-top-color:rgba(232,185,35,0.22);}
  .credentials{border-top-color:rgba(232,185,35,0.22);}
  .network-list{border-top-color:rgba(232,185,35,0.22);}

  /* hero da home ocupa a tela inteira no mobile */
  .hero{height:100vh;max-height:none;aspect-ratio:auto;justify-content:center;}
}

@media (max-width:520px){
  /* área de toque confortável (>=44px) nos controles do topbar */
  .menu-btn{min-height:44px;padding:0.7rem 1.1rem;}
  .back-btn{min-height:44px;padding:0.7rem 0.3rem;}
  .comunidade-badge{
    min-width:44px;min-height:44px;
    background:rgba(232,185,35,0.18);
  }
  .comunidade-badge .dot{width:11px;height:11px;}
}

