/* Portal Isaac Newton — identidade visual
   Paleta: #B1291F (vermelho) · #2F5B41 (verde escuro) · #44BC74 (verde)
           #F9A98A (salmão) · #F98E35 (laranja) · #F4F4F4 (neutro)
   Fontes: Gelica (títulos) / Komet (texto) — fallbacks Fraunces/Nunito
*/

[x-cloak] { display: none !important; }

html { -webkit-font-smoothing: antialiased; scroll-behavior: smooth; }
body {
  font-family: 'Komet', 'Nunito', system-ui, sans-serif;
  font-weight: 400;
  color: #1f2937;
  background: #F4F4F4;
  background-image:
    radial-gradient(at 100% 0%,   rgba(249, 142, 53, 0.05) 0px, transparent 45%),
    radial-gradient(at 0% 100%,   rgba(47, 91, 65, 0.05)  0px, transparent 45%);
  background-attachment: fixed;
}

/* -------- Fontes oficiais --------
   Descomente quando tiver os .woff2 da Gelica e Komet. */
/*
@font-face { font-family:'Gelica'; src:url('../fonts/Gelica-Light.woff2')   format('woff2'); font-weight:300; font-display:swap; }
@font-face { font-family:'Gelica'; src:url('../fonts/Gelica-Regular.woff2') format('woff2'); font-weight:400; font-display:swap; }
@font-face { font-family:'Gelica'; src:url('../fonts/Gelica-Medium.woff2')  format('woff2'); font-weight:500; font-display:swap; }
@font-face { font-family:'Gelica'; src:url('../fonts/Gelica-Bold.woff2')    format('woff2'); font-weight:700; font-display:swap; }
@font-face { font-family:'Komet';  src:url('../fonts/Komet-Light.woff2')    format('woff2'); font-weight:300; font-display:swap; }
@font-face { font-family:'Komet';  src:url('../fonts/Komet-Regular.woff2')  format('woff2'); font-weight:400; font-display:swap; }
@font-face { font-family:'Komet';  src:url('../fonts/Komet-Medium.woff2')   format('woff2'); font-weight:500; font-display:swap; }
@font-face { font-family:'Komet';  src:url('../fonts/Komet-Bold.woff2')     format('woff2'); font-weight:700; font-display:swap; }
*/

/* Inputs — sombra interna sutil e transições */
input[type="text"], input[type="email"], input[type="password"], input[type="date"],
input[type="tel"], input[type="number"], select, textarea {
  background-color: #fff;
  font-weight: 400;
  box-shadow: inset 0 1px 2px rgba(15, 23, 42, .03);
  transition: border-color .2s ease, box-shadow .2s ease, background-color .15s ease;
}
input:focus, select:focus, textarea:focus {
  box-shadow: 0 0 0 3px rgba(177, 41, 31, .12);
}

/* Botões com feedback tátil + sombra colorida */
button, .btn {
  transition: transform .15s cubic-bezier(.34,1.56,.64,1), box-shadow .2s ease, background-color .15s ease, color .15s ease;
}
button:active, .btn:active { transform: translateY(1px) scale(.98); }
.btn-primary-lift {
  box-shadow: 0 4px 12px -2px rgba(177, 41, 31, .25), 0 2px 4px -1px rgba(177, 41, 31, .15);
}
.btn-primary-lift:hover {
  box-shadow: 0 8px 24px -4px rgba(177, 41, 31, .35), 0 4px 8px -2px rgba(177, 41, 31, .2);
  transform: translateY(-1px);
}

/* Cards institucionais — sombra com tom da marca (vermelho + verde) */
.card-soft {
  box-shadow:
    0 1px 2px rgba(177, 41, 31, .04),
    0 4px 12px rgba(47, 91, 65, .05),
    0 0 0 1px rgba(15, 23, 42, .02);
}
.card-soft:hover {
  box-shadow:
    0 2px 4px rgba(177, 41, 31, .06),
    0 8px 24px rgba(47, 91, 65, .08);
}

/* Gradientes institucionais reutilizáveis */
.gradient-brand {
  background: linear-gradient(135deg, #B1291F 0%, #8D1F18 60%, #2F5B41 100%);
}
.gradient-brand-soft {
  background: linear-gradient(135deg, #F9A98A 0%, #F98E35 100%);
}
.gradient-forest {
  background: linear-gradient(135deg, #2F5B41 0%, #1a3526 100%);
}

/* Curvas mais orgânicas para elementos destacados */
.rounded-blob {
  border-radius: 28px 18px 28px 18px;
}

/* Animação de entrada de cards */
.fade-up {
  animation: fadeUp .45s cubic-bezier(.22,1,.36,1) both;
}
@keyframes fadeUp {
  from { opacity: 0; transform: translateY(8px); }
  to   { opacity: 1; transform: translateY(0); }
}

/* Scrollbar institucional */
::-webkit-scrollbar { width: 10px; height: 10px; }
::-webkit-scrollbar-thumb { background: #cbd5e1; border-radius: 10px; }
::-webkit-scrollbar-thumb:hover { background: #B1291F; }

::selection { background: #B1291F; color: #fff; }

/* Truncate */
.line-clamp-1 { display: -webkit-box; -webkit-line-clamp: 1; -webkit-box-orient: vertical; overflow: hidden; }
.line-clamp-2 { display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }

/* Foco acessível nos links */
a:focus-visible, button:focus-visible {
  outline: 2px solid #B1291F;
  outline-offset: 2px;
  border-radius: 6px;
}
