/* ============================================================
   Turing Tecnologias — Sistema de design (derivado do logótipo)
   Azul royal #2E66B3  ·  Ciano #2499CE  ·  Navy #16305C
   ============================================================ */
:root{
  --brand-navy:#16305C;
  --brand-blue:#2E66B3;
  --brand-cyan:#2499CE;
  --brand-cyan-light:#5FB6E4;
  --brand-ink:#0F1B2D;
  --brand-slate:#5A6B85;
  --brand-mist:#EEF4FB;
  --grad:linear-gradient(120deg,var(--brand-navy) 0%,var(--brand-blue) 48%,var(--brand-cyan) 100%);
  --grad-soft:linear-gradient(120deg,#2E66B3 0%,#2499CE 100%);
}
*{scroll-behavior:smooth}
body{font-family:'Plus Jakarta Sans','Inter',system-ui,sans-serif;color:var(--brand-ink);-webkit-font-smoothing:antialiased}
h1,h2,h3,h4,.font-display{font-family:'Plus Jakarta Sans',sans-serif;letter-spacing:-.02em}

.text-gradient{background:var(--grad-soft);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent}
.bg-grad{background:var(--grad)}
.bg-grad-soft{background:var(--grad-soft)}

/* Hero: fundo com malha de pontos + brilho */
.hero-bg{position:relative;overflow:hidden;background:
  radial-gradient(1000px 500px at 85% -10%,rgba(36,153,206,.18),transparent 60%),
  radial-gradient(700px 500px at 5% 20%,rgba(46,102,179,.12),transparent 55%),
  #fff;}
.hero-dots{position:absolute;inset:0;background-image:radial-gradient(rgba(46,102,179,.10) 1px,transparent 1px);background-size:26px 26px;mask-image:linear-gradient(to bottom,#000 55%,transparent);pointer-events:none}

/* Hero em ecrã inteiro com carousel de fundo */
.hero-full{background:var(--brand-navy)}
/* Overlays de contraste sobre as imagens (CSS próprio: as opacidades arbitrárias
   do Tailwind via CDN nem sempre são geradas de forma fiável). */
.hero-overlay-flat{position:absolute;inset:0;z-index:2;background:rgba(10,20,41,.7)}
.hero-overlay-side{position:absolute;inset:0;z-index:2;background:linear-gradient(to right,rgba(10,20,41,.96) 0%,rgba(10,20,41,.82) 45%,rgba(10,20,41,.55) 100%)}
.hero-overlay-bottom{position:absolute;inset:0;z-index:2;background:linear-gradient(to top,rgba(10,20,41,.9) 0%,rgba(10,20,41,0) 45%)}

/* Botões */
.btn{display:inline-flex;align-items:center;gap:.5rem;font-weight:600;border-radius:.75rem;padding:.85rem 1.5rem;transition:.25s;line-height:1}
.btn-primary{background:var(--grad-soft);color:#fff;box-shadow:0 10px 24px -8px rgba(36,153,206,.55)}
.btn-primary:hover{transform:translateY(-2px);box-shadow:0 16px 30px -8px rgba(36,153,206,.65)}
.btn-ghost{background:#fff;color:var(--brand-blue);border:1.5px solid #DCE7F5}
.btn-ghost:hover{border-color:var(--brand-cyan);color:var(--brand-navy);transform:translateY(-2px)}

/* Cartões */
.card{background:#fff;border:1px solid #E9EFF8;border-radius:1.1rem;transition:.3s}
.card:hover{transform:translateY(-6px);box-shadow:0 24px 50px -20px rgba(22,48,92,.35);border-color:#CFE0F3}
.icon-badge{width:56px;height:56px;border-radius:.9rem;display:grid;place-items:center;background:linear-gradient(135deg,rgba(46,102,179,.12),rgba(36,153,206,.16));color:var(--brand-blue)}

/* Carousel do hero */
.hero-text-shadow{text-shadow:0 1px 3px rgba(0,0,0,.65),0 4px 20px rgba(0,0,0,.5)}
.hero-slide{opacity:0;transition:opacity .9s ease;z-index:0}
.hero-slide.active{opacity:1;z-index:1}
.hero-arrow{position:absolute;top:50%;transform:translateY(-50%);z-index:10;width:38px;height:38px;border-radius:9999px;background:rgba(255,255,255,.85);color:var(--brand-navy);display:grid;place-items:center;box-shadow:0 6px 16px -6px rgba(22,48,92,.4);transition:.2s}
.hero-arrow:hover{background:#fff;transform:translateY(-50%) scale(1.08)}
.hero-dot{width:8px;height:8px;border-radius:9999px;background:rgba(255,255,255,.55);transition:.25s;cursor:pointer;border:none;padding:0}
.hero-dot.active{background:#fff;width:22px;border-radius:9999px}

/* Motivo de nós (eco do logótipo) */
.node-deco{position:absolute;opacity:.5;pointer-events:none}

/* Animações de entrada */
@keyframes floatUp{from{opacity:0;transform:translateY(18px)}to{opacity:1;transform:translateY(0)}}
.reveal{animation:floatUp .7s both}
.reveal-2{animation:floatUp .7s .12s both}
.reveal-3{animation:floatUp .7s .24s both}
@keyframes pulseGlow{0%,100%{opacity:.35}50%{opacity:.7}}
.glow{animation:pulseGlow 4s ease-in-out infinite}

/* Underline animada nos links do menu */
.navlink{position:relative;color:var(--brand-ink);font-weight:500}
.navlink::after{content:"";position:absolute;left:0;bottom:-6px;width:0;height:2px;background:var(--grad-soft);transition:.3s}
.navlink:hover{color:var(--brand-blue)}
.navlink:hover::after{width:100%}

/* Barra lateral admin */
.admin-link{display:flex;align-items:center;gap:.7rem;padding:.7rem .9rem;border-radius:.7rem;color:#C7D3E6;font-weight:500;transition:.2s}
.admin-link:hover{background:rgba(255,255,255,.08);color:#fff}
.admin-link.active{background:var(--grad-soft);color:#fff;box-shadow:0 8px 18px -8px rgba(36,153,206,.6)}
