/* ═══════════════════════════════════════════
   ANT STUDY ACADEMY — style.css
   ═══════════════════════════════════════════ */

:root {
  --red:  #cc0000;
  --rb:   #e60000;
  --w:    #fff;
  --bg:   #0a0a0f;
  --bg2:  #0f0f16;
  --card: #16161f;
  --card2:#1a1a24;
  --bdr:  rgba(255,255,255,0.06);
  --bdr-r:rgba(204,0,0,0.25);
  --mt:   rgba(255,255,255,0.5);
  --dm:   rgba(255,255,255,0.35);
  --blue: #3b82f6;
  --green:#22c55e;
  --gold: #f59e0b;
}

* { margin:0; padding:0; box-sizing:border-box; }
html { scroll-behavior:smooth; }
body { font-family:'Inter',sans-serif; background:var(--bg); color:var(--w); overflow-x:hidden; }

/* ─── TOAST ─────────────────────────────── */
.TC { position:fixed; top:85px; right:20px; z-index:9999; display:flex; flex-direction:column; gap:10px; }
.toast { background:#1a1a28; border:1px solid rgba(255,255,255,0.1); border-radius:10px; padding:15px 18px; display:flex; align-items:flex-start; gap:12px; min-width:280px; max-width:360px; box-shadow:0 15px 50px rgba(0,0,0,0.7); animation:tIn 0.4s ease; font-size:0.84rem; }
.toast.s  { border-left:3px solid var(--green); }
.toast.e  { border-left:3px solid var(--red); }
.toast.x  { border-left:3px solid var(--gold); }
.toast strong { display:block; font-size:0.87rem; margin-bottom:2px; }
.toast span   { color:var(--mt); font-size:0.77rem; line-height:1.5; }

@keyframes tIn  { from{opacity:0;transform:translateX(30px);}  to{opacity:1;transform:translateX(0);} }
@keyframes tOut { from{opacity:1;} to{opacity:0;transform:translateX(30px);} }

/* ─── XP FLOAT ───────────────────────────── */
.xp-float { position:fixed; top:50%; left:50%; transform:translate(-50%,-50%); font-size:2.5rem; font-weight:900; color:var(--gold); z-index:9998; pointer-events:none; animation:xpUp 1s ease forwards; text-shadow:0 0 20px rgba(245,158,11,0.8); }
@keyframes xpUp { 0%{opacity:1;transform:translate(-50%,-50%);} 100%{opacity:0;transform:translate(-50%,-120%);} }

/* ─── WHATSAPP ───────────────────────────── */
.wa-fixed { display:none; }
.wa-circle-btn { display:inline-flex; align-items:center; justify-content:center; width:54px; height:54px; background:#25D366; border-radius:50%; margin-top:1.2rem; text-decoration:none; box-shadow:0 4px 14px rgba(37,211,102,0.4); transition:all 0.3s; }
.wa-circle-btn:hover { transform:scale(1.08); box-shadow:0 6px 20px rgba(37,211,102,0.55); }
.wa-group-link { color:#25D366; text-decoration:none; font-weight:600; font-size:0.82rem; transition:opacity 0.2s; }
.wa-group-link:hover { opacity:0.8; }

/* ─── NAVBAR ─────────────────────────────── */
nav { 
  position:fixed; 
  top:0; 
  left:0; 
  right:0; 
  z-index:1000; 
  display:flex; 
  align-items:center; 
  padding:15px 5%; 
  background:rgba(8,8,14,0.93); 
  backdrop-filter:blur(20px); 
  border-bottom:1px solid var(--bdr); 
  gap: 12px;
}

/* Logo + Texto */
.logo { 
  display: flex; 
  align-items: center; 
  text-decoration: none; 
  gap: 12px;
  flex-shrink: 0;
}

.navbar-logo {
  height: 68px;
  width: auto;
  object-fit: contain;
}

.logo-text {
  display: flex;
  flex-direction: column;
  line-height: 1.05;
  gap: 8px;
}

.lm {
  font-family: 'Playfair Display', serif;
  font-size: 1.48rem;
  font-weight: 900;
  color: var(--w);
  letter-spacing: 0.5px;
}

.ls {
  font-size: 0.48rem;
  letter-spacing: 3.2px;
  text-transform: uppercase;
  color: var(--dm);
}

/* Menu Desktop */
.nul   { display:flex; gap:2rem; list-style:none; margin-left: auto; }
.nr    { display:flex; gap:10px; align-items:center; margin-left: auto; }

.bred  { 
  background:var(--red); 
  color:#fff; 
  text-decoration:none; 
  font-size:0.82rem; 
  font-weight:600; 
  padding:10px 22px; 
  border-radius:6px; 
}

/* Hambúrguer - Lado Esquerdo */
.hbg { 
  display:none; 
  flex-direction:column; 
  gap:5px; 
  cursor:pointer; 
  padding:8px; 
  order: -1;
}
.hbg span { 
  display:block; 
  width:24px; 
  height:2px; 
  background:var(--w); 
  border-radius:2px; 
  transition:all 0.3s; 
}
.hbg.open span:nth-child(1) { transform:translateY(7px) rotate(45deg); }
.hbg.open span:nth-child(2) { opacity:0; }
.hbg.open span:nth-child(3) { transform:translateY(-7px) rotate(-45deg); }

/* ====================== MOBILE ====================== */
@media (max-width: 900px) {
  .nul, .nr { 
    display: none; 
  }
  
  .hbg { 
    display: flex; 
  }
  
  .logo {
    margin-left: 0;
  }
  
  .navbar-logo {
    height: 55px;
  }
  
  .lm {
    font-size: 1.25rem;
  }
}

/* ====================== MENU MOBILE - SIDEBAR ====================== */
.mm {
  display: none;
  position: fixed;
  top: 0;
  left: -100%;
  width: 280px;
  height: 100vh;
  z-index: 9999;
  background: #0a0a0f;
  box-shadow: 4px 0 25px rgba(0,0,0,0.7);
  padding: 80px 25px 40px;
  flex-direction: column;
  gap: 6px;
  transition: left 0.35s cubic-bezier(0.32, 0.72, 0, 1);
  overflow-y: auto;
}

.mm.open {
  left: 0;
  display: flex;
}

/* Overlay escuro */
.mm-overlay {
  display: none;
  position: fixed;
  inset: 0;
  background: rgba(0,0,0,0.75);
  z-index: 9998;
}

.mm-overlay.show {
  display: block;
}

/* Itens do menu */
.mm a {
  color: rgba(255,255,255,0.85);
  text-decoration: none;
  font-size: 1.08rem;
  font-weight: 500;
  padding: 14px 20px;
  border-radius: 8px;
  transition: all 0.25s ease;
}

.mm a:hover {
  background: rgba(204, 0, 0, 0.2);
  color: white;
  padding-left: 32px;
}

.mm .bred {
  margin-top: 25px;
  padding: 16px 20px;
  font-size: 1.05rem;
  text-align: center;
  background: var(--red);
}

/* Botão de fechar (X) */
.mm .close-btn {
  position: absolute;
  top: 25px;
  right: 25px;
  font-size: 32px;
  color: #fff;
  background: none;
  border: none;
  cursor: pointer;
  z-index: 2;
}
/* ─── HERO ───────────────────────────────── */
#hero { min-height:100vh; display:flex; align-items:center; position:relative; overflow:hidden; padding:140px 5% 100px; }
.hbg-l { position:absolute; inset:0; z-index:0; background:linear-gradient(160deg,rgba(0,0,0,0.75) 0%,rgba(0,0,0,0.60) 50%,rgba(0,0,0,0.78) 100%),url('../images/hero-bg.png') center center / cover no-repeat; }
.hgr   { position:absolute; inset:0; z-index:1; opacity:0.035; background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 200 200' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='4'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E"); }
.hc    { position:relative; z-index:2; max-width:700px; }
.hbadge { display:inline-flex; align-items:center; gap:8px; font-size:0.7rem; letter-spacing:2.5px; text-transform:uppercase; color:var(--mt); margin-bottom:2rem; animation:fU 0.8s ease both; }
.hbadge::before { content:'◆'; color:var(--red); font-size:0.42rem; }
.hh1   { font-family:'Playfair Display',serif; font-size:clamp(3rem,6.5vw,5.5rem); font-weight:900; line-height:1.08; margin-bottom:1.8rem; color:var(--w); animation:fU 0.8s 0.1s ease both; }
.ts    { color:var(--red); }
.cb    { display:inline-block; width:3px; height:0.82em; background:var(--red); vertical-align:middle; margin-left:3px; animation:bl 0.75s step-end infinite; }
@keyframes bl { 0%,100%{opacity:1;} 50%{opacity:0;} }
.hdesc { font-size:1rem; color:rgba(255,255,255,0.55); line-height:1.85; max-width:500px; margin-bottom:2.5rem; font-weight:300; animation:fU 0.8s 0.25s ease both; }
.hbtns { display:flex; gap:1rem; flex-wrap:wrap; animation:fU 0.8s 0.4s ease both; }
.bp    { background:var(--red); color:#fff; padding:14px 36px; border-radius:6px; text-decoration:none; font-weight:600; font-size:0.88rem; transition:all 0.3s; border:2px solid var(--red); }
.bp:hover { background:var(--rb); transform:translateY(-2px); }
.bo    { border:2px solid rgba(255,255,255,0.18); color:var(--w); padding:14px 36px; border-radius:6px; text-decoration:none; font-weight:500; font-size:0.88rem; transition:all 0.3s; }
.bo:hover { border-color:rgba(255,255,255,0.45); transform:translateY(-2px); }
.hst   { display:flex; gap:3rem; margin-top:4rem; padding-top:2.5rem; border-top:1px solid rgba(255,255,255,0.07); animation:fU 0.8s 0.55s ease both; flex-wrap:wrap; }
.sn    { font-family:'Inter',sans-serif; font-size:2.4rem; font-weight:800; color:var(--red); line-height:1; letter-spacing:-1px; }
.sl    { font-family:'Inter',sans-serif; font-size:0.62rem; color:rgba(255,255,255,0.55); letter-spacing:2.5px; text-transform:uppercase; margin-top:6px; font-weight:600; }
.hscr  { position:absolute; bottom:2rem; left:50%; transform:translateX(-50%); z-index:2; display:flex; flex-direction:column; align-items:center; gap:8px; font-size:0.6rem; letter-spacing:3px; text-transform:uppercase; color:rgba(255,255,255,0.18); animation:sB 2.5s infinite; }
.scrl  { width:1px; height:50px; background:linear-gradient(to bottom,var(--red),transparent); }
@keyframes sB { 0%,100%{transform:translateX(-50%) translateY(0);} 50%{transform:translateX(-50%) translateY(8px);} }
@keyframes fU  { from{opacity:0;transform:translateY(25px);} to{opacity:1;transform:translateY(0);} }

/* ─── SHARED ─────────────────────────────── */
section { padding:100px 5%; }
.sl2   { display:inline-flex; align-items:center; gap:10px; font-size:0.67rem; letter-spacing:3px; text-transform:uppercase; color:var(--red); margin-bottom:0.8rem; font-weight:600; }
.sl2::before,.sl2::after { content:''; display:block; width:24px; height:1px; background:var(--red); }
.st    { font-family:'Playfair Display',serif; font-size:clamp(1.8rem,3.5vw,2.8rem); font-weight:900; line-height:1.15; color:var(--w); }
.st span { color:var(--red); }
.reveal { opacity:0; transform:translateY(25px); transition:opacity 0.7s,transform 0.7s; }
.reveal.visible { opacity:1; transform:translateY(0); }

/* ─── SOBRE ──────────────────────────────── */
#sobre { background:var(--bg2); }
.sg    { display:grid; grid-template-columns:1fr 1fr; gap:5rem; align-items:center; }
.sbc   { background:linear-gradient(135deg,#180404,#250606,#180404); border:1px solid rgba(204,0,0,0.18); border-radius:12px; padding:2.5rem; position:relative; overflow:hidden; }
.sbc::before { content:'ANT'; font-family:'Playfair Display',serif; font-size:8rem; font-weight:900; opacity:0.04; position:absolute; right:-15px; bottom:-20px; line-height:1; color:#fff; }
.sbc h3 { font-family:'Playfair Display',serif; font-size:1.6rem; margin-bottom:1rem; }
.sbc p  { font-size:0.9rem; line-height:1.85; color:rgba(255,255,255,0.75); font-weight:300; }
.pls   { display:grid; grid-template-columns:1fr 1fr; gap:0.8rem; margin-top:1.2rem; }
.pl    { background:rgba(0,0,0,0.3); border-radius:6px; padding:1rem; border-left:2px solid rgba(204,0,0,0.4); }
.pl h4 { font-size:0.78rem; font-weight:600; margin-bottom:3px; }
.pl p  { font-size:0.7rem; color:rgba(255,255,255,0.45); }
.st2 p { color:rgba(255,255,255,0.6); line-height:1.9; margin-bottom:1.3rem; font-size:0.95rem; font-weight:300; }
.wab   { background:rgba(34,197,94,0.06); border:1px solid rgba(34,197,94,0.18); border-radius:8px; padding:1.4rem; margin-top:1.5rem; display:flex; gap:1rem; align-items:flex-start; text-decoration:none; color:inherit; cursor:pointer; transition:background 0.25s, border-color 0.25s; }
.wab:hover { background:rgba(34,197,94,0.12); border-color:rgba(34,197,94,0.35); }
.wab .wi { font-size:1.8rem; flex-shrink:0; }
.wab h4 { font-size:0.83rem; font-weight:600; color:var(--green); margin-bottom:3px; }
.wab p  { font-size:0.76rem; color:var(--mt); line-height:1.7; }

/* ─── CURSOS ─────────────────────────────── */
#cursos { background:var(--bg); }
.cg    { display:grid; grid-template-columns:repeat(auto-fit,minmax(250px,1fr)); gap:1.5rem; margin-top:3rem; }
.cc    { background:var(--card); border:1px solid var(--bdr); border-radius:10px; padding:2rem; transition:all 0.35s; position:relative; overflow:hidden; cursor:pointer; }
.cc::after { content:''; position:absolute; bottom:0; left:0; right:0; height:2px; background:var(--red); transform:scaleX(0); transition:transform 0.35s; }
.cc:hover  { transform:translateY(-6px); border-color:var(--bdr-r); box-shadow:0 20px 50px rgba(0,0,0,0.5); }
.cc:hover::after { transform:scaleX(1); }
.ci2   { width:50px; height:50px; background:rgba(204,0,0,0.1); border:1px solid var(--bdr-r); border-radius:8px; display:flex; align-items:center; justify-content:center; font-size:1.4rem; margin-bottom:1.2rem; transition:background 0.3s; }
.cc:hover .ci2 { background:rgba(204,0,0,0.2); }
.cc h3 { font-size:1.05rem; font-weight:700; margin-bottom:0.5rem; }
.cc p  { font-size:0.82rem; color:var(--mt); line-height:1.75; }
.cl    { display:inline-flex; align-items:center; gap:5px; margin-top:1rem; font-size:0.78rem; color:var(--red); font-weight:500; text-decoration:none; transition:gap 0.2s; }
.cl:hover { gap:9px; }

/* ─── MODALIDADES ────────────────────────── */
#modalidades { background:var(--bg2); }
.mg    { display:grid; grid-template-columns:repeat(3,1fr); gap:2rem; margin-top:3rem; }
.mc    { background:var(--card2); border:1px solid var(--bdr); border-radius:10px; padding:2.5rem 2rem; transition:all 0.3s; }
.mc.ft { background:linear-gradient(135deg,#180404,#250606); border-color:rgba(204,0,0,0.35); position:relative; }
.mc.ft::before { content:'Popular'; position:absolute; top:14px; right:14px; background:var(--red); color:#fff; font-size:0.6rem; letter-spacing:1.5px; text-transform:uppercase; padding:3px 10px; border-radius:20px; font-weight:600; }
.mc:not(.ft):hover { border-color:var(--bdr-r); transform:translateY(-4px); }
.me    { font-size:2.5rem; margin-bottom:1.2rem; display:block; }
.mc h3 { font-family:'Playfair Display',serif; font-size:1.2rem; margin-bottom:0.8rem; }
.mc p  { font-size:0.84rem; color:rgba(255,255,255,0.55); line-height:1.8; margin-bottom:1rem; }
.mul   { list-style:none; display:flex; flex-direction:column; gap:6px; }
.mul li { display:flex; align-items:center; gap:8px; font-size:0.8rem; color:var(--mt); }
.mul li::before { content:'✓'; color:var(--red); font-weight:700; }
.ctab  { background:linear-gradient(135deg,#180404,#250606); border:1px solid rgba(204,0,0,0.2); border-radius:12px; padding:4rem; text-align:center; margin-top:4rem; }
.ctab h2 { font-family:'Playfair Display',serif; font-size:2rem; margin-bottom:1rem; }
.ctab p  { color:var(--mt); font-size:0.95rem; margin-bottom:2rem; }
.cbs   { display:flex; gap:1rem; justify-content:center; flex-wrap:wrap; }

/* ─── GAMIFICAÇÃO ────────────────────────── */
#aprender { background:var(--bg); }
.xp-bar-wrap { max-width:600px; margin:0 auto 3rem; text-align:center; }
.xp-info  { display:flex; justify-content:space-between; align-items:center; margin-bottom:8px; }
.xp-info span { font-size:0.82rem; color:var(--mt); }
.xp-level { font-family:'Playfair Display',serif; font-size:1.1rem; font-weight:700; color:var(--gold); }
.xp-bar-bg   { background:rgba(255,255,255,0.06); border-radius:20px; height:10px; overflow:hidden; }
.xp-bar-fill { height:100%; background:linear-gradient(to right,var(--gold),#fbbf24); border-radius:20px; transition:width 0.8s ease; }
.subj-tabs { display:flex; gap:0.8rem; justify-content:center; flex-wrap:wrap; margin-bottom:2.5rem; }
.subj-tab  { padding:8px 20px; border-radius:20px; font-size:0.8rem; font-weight:600; cursor:pointer; border:1px solid var(--bdr); color:var(--mt); background:transparent; font-family:'Inter',sans-serif; transition:all 0.25s; }
.subj-tab.active,.subj-tab:hover { background:var(--red); border-color:var(--red); color:#fff; }
.map-container { display:flex; flex-direction:column; align-items:center; gap:0; margin:0 auto; max-width:700px; position:relative; }
.map-row { display:flex; justify-content:center; gap:1rem; margin-bottom:0.5rem; flex-wrap:wrap; }
.node    { width:80px; height:80px; border-radius:50%; display:flex; flex-direction:column; align-items:center; justify-content:center; font-weight:700; font-size:0.75rem; cursor:pointer; transition:all 0.3s; position:relative; border:3px solid transparent; text-align:center; padding:5px; }
.node.locked { background:rgba(255,255,255,0.05); border-color:rgba(255,255,255,0.1); color:rgba(255,255,255,0.3); cursor:not-allowed; }
.node.open   { background:linear-gradient(135deg,#1d4ed8,#3b82f6); border-color:#60a5fa; box-shadow:0 0 20px rgba(59,130,246,0.4); color:#fff; }
.node.done   { background:linear-gradient(135deg,#15803d,#22c55e); border-color:#4ade80; box-shadow:0 0 20px rgba(34,197,94,0.4); color:#fff; }
.node.open:hover { transform:scale(1.12); box-shadow:0 0 30px rgba(59,130,246,0.6); }
.node-num { font-size:1.2rem; font-weight:900; }
.node-lbl { font-size:0.55rem; letter-spacing:0.5px; opacity:0.9; margin-top:2px; }
.connector { width:2px; height:30px; background:linear-gradient(to bottom,rgba(255,255,255,0.15),rgba(255,255,255,0.05)); margin:0 auto; }

/* ─── QUIZ MODAL ─────────────────────────── */
.quiz-overlay { position:fixed; inset:0; background:rgba(0,0,0,0.85); z-index:2000; display:flex; align-items:center; justify-content:center; padding:20px; backdrop-filter:blur(8px); }
.quiz-modal   { background:var(--card2); border:1px solid var(--bdr-r); border-radius:16px; padding:2.5rem; max-width:560px; width:100%; position:relative; animation:mIn 0.4s ease; }
@keyframes mIn { from{opacity:0;transform:scale(0.9);} to{opacity:1;transform:scale(1);} }
.quiz-close   { position:absolute; top:16px; right:16px; background:rgba(255,255,255,0.08); border:none; color:var(--w); width:32px; height:32px; border-radius:50%; cursor:pointer; font-size:1rem; transition:background 0.2s; }
.quiz-close:hover { background:rgba(255,255,255,0.15); }
.quiz-subject { font-size:0.7rem; letter-spacing:2px; text-transform:uppercase; color:var(--red); margin-bottom:0.5rem; font-weight:600; }
.quiz-title   { font-family:'Playfair Display',serif; font-size:1.4rem; font-weight:900; margin-bottom:1.5rem; }
.quiz-progress { display:flex; align-items:center; gap:10px; margin-bottom:1.5rem; }
.quiz-prog-bar { flex:1; height:6px; background:rgba(255,255,255,0.08); border-radius:10px; overflow:hidden; }
.quiz-prog-fill { height:100%; background:var(--red); border-radius:10px; transition:width 0.4s ease; }
.quiz-prog-txt { font-size:0.75rem; color:var(--mt); white-space:nowrap; }
.quiz-q       { font-size:1.1rem; font-weight:600; margin-bottom:1.5rem; line-height:1.5; }
.quiz-options { display:flex; flex-direction:column; gap:0.8rem; }
.quiz-opt     { background:rgba(255,255,255,0.04); border:1px solid rgba(255,255,255,0.1); border-radius:8px; padding:14px 18px; cursor:pointer; font-family:'Inter',sans-serif; font-size:0.9rem; color:var(--w); text-align:left; transition:all 0.2s; font-weight:500; }
.quiz-opt:hover   { background:rgba(204,0,0,0.12); border-color:var(--red); }
.quiz-opt.correct { background:rgba(34,197,94,0.15); border-color:var(--green); color:var(--green); }
.quiz-opt.wrong   { background:rgba(204,0,0,0.15); border-color:var(--red); color:#ff6b6b; }
.quiz-result  { text-align:center; }
.result-emoji { font-size:4rem; margin-bottom:1rem; }
.result-title { font-family:'Playfair Display',serif; font-size:1.8rem; font-weight:900; margin-bottom:0.5rem; }
.result-sub   { color:var(--mt); font-size:0.9rem; margin-bottom:2rem; }
.result-score { font-size:3rem; font-weight:900; color:var(--gold); font-family:'Playfair Display',serif; }
.result-score span { font-size:1rem; color:var(--mt); }
.result-xp    { background:rgba(245,158,11,0.1); border:1px solid rgba(245,158,11,0.3); border-radius:8px; padding:1rem; margin:1rem 0; font-size:0.9rem; color:var(--gold); }

/* ─── FORMULÁRIOS ────────────────────────── */
#inscricao { background:var(--bg2); }
#contacto  { background:var(--bg); }
.fw    { max-width:700px; margin:3rem auto 0; background:var(--card); border-radius:12px; padding:3rem; border:1px solid var(--bdr); width:100%; box-sizing:border-box; }
.fg    { display:flex; flex-direction:column; gap:6px; min-width:0; }
.fg label { font-size:0.7rem; letter-spacing:1.2px; text-transform:uppercase; color:var(--dm); font-weight:500; }
.fg input,.fg select,.fg textarea { width:100%; background:rgba(255,255,255,0.04); border:1px solid rgba(255,255,255,0.08); border-radius:6px; padding:12px 15px; color:var(--w); font-family:'Inter',sans-serif; font-size:0.88rem; outline:none; transition:border-color 0.25s,background 0.25s; box-sizing:border-box; -webkit-appearance:none; appearance:none; }
.fg input:focus,.fg select:focus,.fg textarea:focus { border-color:var(--red); background:rgba(204,0,0,0.03); }
.fg input::placeholder,.fg textarea::placeholder { color:rgba(255,255,255,0.18); }
.fg select { background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6' viewBox='0 0 10 6'%3E%3Cpath fill='rgba(255,255,255,0.35)' d='M5 6L0 0h10z'/%3E%3C/svg%3E"); background-repeat:no-repeat; background-position:right 14px center; padding-right:36px; cursor:pointer; }
.fg select option { background:#1a1a24; color:#fff; }
.fg textarea { resize:vertical; min-height:120px; }
.fgr   { display:grid; grid-template-columns:1fr 1fr; gap:1.2rem; width:100%; }
.ff    { grid-column:1/-1; }
/* ====================== CHECKBOXES PROFISSIONAIS ====================== */
.cks {
  display: flex;
  flex-wrap: wrap;
  gap: 14px;
  margin-top: 10px;
}

.chi {
  display: flex;
  align-items: center;
  gap: 10px;
  cursor: pointer;
  user-select: none;
  padding: 4px 0;
}

.chi input {
  width: 18px;
  height: 18px;
  accent-color: transparent;           /* Remove cor padrão */
  cursor: pointer;
  border: 2px solid rgba(255,255,255,0.5);
  background: transparent;
  border-radius: 4px;
  appearance: none;
  position: relative;
  flex-shrink: 0;
}

.chi input:checked {
  background: #3afa00;
  border-color: #00f500;
}

.chi input:checked::after {
  content: '✓';
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  color: #ffffff;
  font-size: 14px;
  font-weight: bold;
  line-height: 1;
}

.chi label {
  font-size: 0.9rem;
  color: rgba(255, 255, 255, 0.85);
  cursor: pointer;
  font-weight: 500;
}

.chi:hover label {
  color: rgb(255, 255, 255);
}
.bts   { width:100%; background:var(--red); color:#fff; border:none; padding:15px; border-radius:6px; font-family:'Inter',sans-serif; font-size:0.88rem; letter-spacing:1px; text-transform:uppercase; font-weight:600; cursor:pointer; margin-top:1.5rem; transition:background 0.3s,transform 0.2s; }
.bts:hover    { background:var(--rb); transform:translateY(-1px); }
.bts:disabled { opacity:0.6; cursor:not-allowed; transform:none; }
.form-msg { display:none; padding:12px 16px; border-radius:6px; margin-top:1rem; font-size:0.88rem; font-weight:500; }
.form-msg.ok  { background:rgba(34,197,94,0.1); border:1px solid rgba(34,197,94,0.3); color:var(--green); }
.form-msg.err { background:rgba(204,0,0,0.1); border:1px solid rgba(204,0,0,0.3); color:#ff6b6b; }

/* ─── CONTACTO ───────────────────────────── */
.contg { display:grid; grid-template-columns:1fr 1.4fr; gap:4rem; margin-top:3rem; align-items:start; }
.cit   { display:flex; align-items:flex-start; gap:1rem; margin-bottom:1.3rem; }
.cico  { width:42px; height:42px; background:rgba(204,0,0,0.1); border:1px solid var(--bdr-r); border-radius:8px; display:flex; align-items:center; justify-content:center; font-size:1rem; flex-shrink:0; }
.cit strong { display:block; font-size:0.87rem; margin-bottom:3px; }
.cit p { font-size:0.81rem; color:var(--mt); line-height:1.7; }
.cfb   { background:var(--card); border-radius:12px; padding:2.5rem; border:1px solid var(--bdr); }
.cfb h3 { font-family:'Playfair Display',serif; font-size:1.2rem; margin-bottom:1.5rem; }
.cfb .fg { margin-bottom:1rem; }

/* ─── FOOTER ─────────────────────────────── */
footer { 
  background: rgba(8,8,14,0.95); 
  padding: 60px 5% 35px; 
  border-top: 1px solid rgba(255,255,255,0.08); 
}

.footer-logo-img { 
  height: 68px; 
  width: auto; 
  object-fit: contain; 
  display: block; 
  margin-bottom: 1rem; 
}

.fg2 { 
  display: grid; 
  grid-template-columns: 2fr 1fr 1fr; 
  gap: 3rem; 
  margin-bottom: 3rem; 
}

.fb p { 
  font-size: 0.88rem; 
  color: rgba(255,255,255,0.7); 
  line-height: 1.75; 
  max-width: 340px; 
}

.fc h4 { 
  font-size: 0.8rem; 
  letter-spacing: 2px; 
  text-transform: uppercase; 
  color: var(--red); 
  margin-bottom: 1.2rem; 
  font-weight: 600; 
}

.fc ul { list-style: none; }
.fc li { margin-bottom: 0.7rem; }
.fc a { 
  color: rgba(255,255,255,0.75); 
  text-decoration: none; 
  font-size: 0.9rem; 
}
.fc a:hover { color: var(--w); }

.fbt { 
  border-top: 1px solid rgba(255,255,255,0.08); 
  padding-top: 1.8rem; 
  display: flex; 
  justify-content: space-between; 
  align-items: center; 
  flex-wrap: wrap; 
  gap: 1rem; 
  font-size: 0.8rem; 
  color: rgba(255,255,255,0.5); 
}

/* Mobile */
@media (max-width: 900px) {
  footer { padding: 50px 5% 30px; }
  .fg2 { 
    grid-template-columns: 1fr; 
    gap: 2.5rem; 
  }
  .fbt { 
    flex-direction: column; 
    text-align: center; 
  }
}

/* ─── DASHBOARD ADMIN ────────────────────── */
#DB    { display:none; min-height:100vh; background:var(--bg2); padding:110px 5% 80px; }
.dh    { display:flex; justify-content:space-between; align-items:center; margin-bottom:2.5rem; padding-bottom:1.5rem; border-bottom:1px solid var(--bdr); }
.dh h2 { font-family:'Playfair Display',serif; font-size:1.8rem; }
.dh h2 span { color:var(--red); }
.dsts  { display:grid; grid-template-columns:repeat(3,1fr); gap:1.5rem; margin-bottom:2rem; }
.dst   { background:var(--card); border-radius:8px; padding:1.8rem; border:1px solid var(--bdr); }
.dn    { font-family:'Playfair Display',serif; font-size:2.2rem; color:var(--red); }
.dl    { font-size:0.68rem; color:var(--dm); letter-spacing:1px; text-transform:uppercase; margin-top:4px; }
.dtw   { background:var(--card); border-radius:8px; overflow:hidden; border:1px solid var(--bdr); margin-bottom:2rem; }
.dtw h3 { padding:1.4rem 2rem; font-size:0.93rem; border-bottom:1px solid var(--bdr); display:flex; justify-content:space-between; align-items:center; }
.dtw h3 span { font-size:0.72rem; color:var(--mt); font-weight:400; }
table  { width:100%; border-collapse:collapse; }
th     { background:rgba(204,0,0,0.1); padding:11px 1.5rem; font-size:0.67rem; letter-spacing:1.5px; text-transform:uppercase; color:var(--red); text-align:left; }
td     { padding:11px 1.5rem; font-size:0.81rem; color:rgba(255,255,255,0.65); border-bottom:1px solid rgba(255,255,255,0.03); }
tr:last-child td { border:none; }
.bdg   { padding:3px 10px; border-radius:20px; font-size:0.67rem; font-weight:600; }
.bok   { background:rgba(34,197,94,0.1); color:var(--green); }
.bpd   { background:rgba(234,179,8,0.1); color:#eab308; }
.bout  { background:transparent; border:1px solid var(--bdr-r); color:var(--red); padding:8px 20px; border-radius:6px; font-family:'Inter',sans-serif; font-size:0.75rem; letter-spacing:1px; text-transform:uppercase; cursor:pointer; transition:all 0.25s; }
.bout:hover { background:var(--red); color:#fff; }
.empty-state { text-align:center; padding:3rem; color:var(--mt); font-size:0.9rem; }

/* ====================== LOGO NO NAVBAR ====================== */
.navbar-logo {
  height: 50px;
  width: auto;
  object-fit: contain;
  margin-right: 5px;
  flex-shrink: 0;
}

.logo {
  display: flex;
  align-items: center;
  text-decoration: none;
  gap: 12px;
}

.logo-text {
  display: flex;
  flex-direction: column;
  line-height: 1.05;
  gap: 8px;
  margin-top: 4px;
}

.lm {
  font-family: 'Playfair Display', serif;
  font-size: 1.55rem;
  font-weight: 900;
  color: var(--w);
  letter-spacing: 0.5px;
}

.ls {
  font-size: 0.49rem;
  letter-spacing: 3.8px;
  text-transform: uppercase;
  color: var(--dm);
  font-weight: 500;
}

/* ====================== MENU MOBILE - SIDEBAR ====================== */
.mm {
  display: none;
  position: fixed;
  top: 0;
  left: -100%;
  width: 280px;
  height: 100vh;
  z-index: 9999;
  background: #0a0a0f;
  box-shadow: 4px 0 25px rgba(0,0,0,0.7);
  padding: 80px 25px 40px;
  flex-direction: column;
  gap: 6px;
  transition: left 0.35s cubic-bezier(0.32, 0.72, 0, 1);
  overflow-y: auto;
}

.mm.open {
  left: 0;
  display: flex;
}

.mm-overlay {
  display: none;
  position: fixed;
  inset: 0;
  background: rgba(0,0,0,0.75);
  z-index: 9998;
}

.mm-overlay.show {
  display: block;
}

.mm .close-btn {
  position: absolute;
  top: 25px;
  right: 25px;
  font-size: 32px;
  color: #fff;
  background: none;
  border: none;
  cursor: pointer;
}

.mm a {
  color: rgba(255,255,255,0.85);
  text-decoration: none;
  font-size: 1.08rem;
  padding: 14px 20px;
  border-radius: 8px;
  transition: all 0.25s ease;
}

.mm a:hover {
  background: rgba(204, 0, 0, 0.2);
  color: white;
  padding-left: 32px;
}

/* ====================== MELHORIA NO MOBILE ====================== */
@media (max-width: 900px) {
  .navbar-logo {
    height: 52px;           /* Reduzido para caber melhor */
    margin-right: 10px;
  }

  .logo {
    gap: 8px;
  }

  .logo-text {
    gap: 4px;
    margin-top: 2px;
  }

  .lm {
    font-size: 1.22rem;     /* Texto menor no mobile */
  }

  .ls {
    font-size: 0.42rem;
    letter-spacing: 2.8px;
  }

  /* Reduz padding da navbar no mobile */
  nav {
    padding: 12px 5% !important;
  }
}

/* ====================== RESPONSIVE - MOBILE ====================== */
@media (max-width: 900px) {
  .nul, .nr { 
    display: none; 
  }
  
  .hbg { 
    display: flex; 
  }

  /* Centraliza o logo no mobile */
  .logo {
    margin-left: auto;
    margin-right: auto;
  }

  /* Ajuste do tamanho do logo no mobile */
  .navbar-logo {
    height: 52px;
  }

  .lm {
    font-size: 1.25rem;
  }

  .ls {
    font-size: 0.42rem;
    letter-spacing: 2.8px;
  }

  nav {
    padding: 12px 5% !important;
    justify-content: space-between;
  }
}

/* ====================== WHATSAPP FLUTUANTE ====================== */
.wa-float {
  position: fixed;
  bottom: 30px;
  right: 30px;
  background: #25D366;
  color: white;
  width: 62px;
  height: 62px;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 30px;
  box-shadow: 0 5px 20px rgba(37, 211, 102, 0.5);
  z-index: 9999;
  text-decoration: none;
  transition: all 0.3s ease;
}

.wa-float:hover {
  transform: scale(1.12);
  box-shadow: 0 8px 25px rgba(37, 211, 102, 0.7);
}

/* Mobile */
@media (max-width: 768px) {
  .wa-float {
    bottom: 20px;
    right: 20px;
    width: 56px;
    height: 56px;
    font-size: 26px;
  }
}

/* ====================== CORREÇÃO CORES NAVBAR DESKTOP ====================== */
.nul a { 
  color: rgba(255,255,255,0.85) !important; 
  text-decoration: none !important;
  position: relative;
}

.nul a:hover { 
  color: var(--w) !important; 
}

.nul a::after { 
  content: ''; 
  position: absolute; 
  bottom: -6px; 
  left: 0; 
  right: 0; 
  height: 2px; 
  background: var(--red); 
  transform: scaleX(0); 
  transition: transform 0.3s ease; 
  z-index: 1;
}

.nul a:hover::after { 
  transform: scaleX(1); 
}

/* ====================== HERO SLIDER ====================== */
.hero-slider {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  z-index: -1;
  overflow: hidden;
}

.slide {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background-size: cover;
  background-position: center;
  opacity: 0;
  transition: opacity 1.5s ease-in-out;
}

.slide.active {
  opacity: 1;
}

/* Overlay escuro para legibilidade do texto */
.hero-slider::after {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: linear-gradient(rgba(10,10,15,0.75), rgba(10,10,15,0.85));
  z-index: 1;
}