/*
Theme Name: Angela Leitte
Theme URI: https://angelaleitte.com
Author: Angela Leitte
Description: Tema profissional com Hero, Especialidades, Notícias, Sobre, Blog, Portfólio e Contato. Editável via Personalizador (Customizer) e painel WordPress.
Version: 1.0
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Text Domain: angela-leitte
*/

html { scroll-behavior: smooth; }

#tech-stack { scroll-margin-top: 6rem; }

/* Base */
body { font-family: 'Plus Jakarta Sans', sans-serif; overflow-x: hidden; -webkit-font-smoothing: antialiased; }
h1, h2, h3, h4, .font-serif { font-family: 'Playfair Display', serif; }

/* Tech icons - Especialidades */
.tech-icon-container {
  position: relative;
  width: 75px;
  height: 75px;
  border-radius: 50%;
  border: 1px solid #f1f1f1;
  display: flex;
  align-items: center;
  justify-content: center;
  overflow: hidden;
  cursor: pointer;
  background: #fafafa;
  transition: all 0.4s cubic-bezier(0.175, 0.885, 0.32, 1.275);
}
@media (min-width: 768px) {
  .tech-icon-container { width: 90px; height: 90px; }
}
.tech-icon-container:hover {
  border-color: #eab308;
  transform: translateY(-5px);
}
.tech-icon-fill {
  position: absolute;
  bottom: 0;
  left: 0;
  width: 100%;
  height: 0%;
  background: var(--tech-icon-hover, #facc15);
  transition: height 0.6s cubic-bezier(0.19, 1, 0.22, 1);
  z-index: 1;
}
.tech-icon-container:hover .tech-icon-fill { height: 100%; }
.tech-icon-content {
  position: relative;
  z-index: 2;
  width: 100%;
  height: 100%;
  display: flex;
  align-items: center;
  justify-content: center;
  color: #a8a29e;
  transition: all 0.4s ease;
  font-size: 1.5rem;
}
.tech-icon-content svg { width: 1.5rem; height: 1.5rem; }
.tech-icon-content .tech-icon-webfont,
.tech-icon-content .tech-icon-webfont-char,
.tech-icon-content .tech-icon-google-char { font-size: inherit; }
.tech-icon-container:hover .tech-icon-content {
  color: #44403c;
  transform: scale(1.15);
}

/* Animações */
.animate-in { animation: fadeIn 1s ease-out forwards; }
@keyframes fadeIn {
  from { opacity: 0; transform: translateY(30px); }
  to { opacity: 1; transform: translateY(0); }
}
@keyframes bounce {
  0%, 100% { transform: translateY(0); }
  50% { transform: translateY(-15px); }
}
@keyframes spin-slow {
  from { transform: rotate(0deg); }
  to { transform: rotate(360deg); }
}
.animate-spin-40s { animation: spin-slow 40s linear infinite; }
.animate-bounce-custom { animation: bounce 5s ease-in-out infinite; }

.line-clamp-2 { display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.line-clamp-3 { display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; }

/* ==========================================================================
   Conteúdo de posts/páginas – respeita formatação do editor e do Elementor
   ========================================================================== */

/* Base: tipografia padrão quando o bloco não define tamanho/cor */
.entry-content {
	font-family: 'Plus Jakarta Sans', -apple-system, BlinkMacSystemFont, sans-serif;
	font-size: 1rem;
	line-height: 1.7;
	color: #44403c;
	-webkit-font-smoothing: antialiased;
}

.entry-content > *:first-child { margin-top: 0; }
.entry-content > *:last-child { margin-bottom: 0; }

/* Parágrafos e espaçamento entre parágrafos */
.entry-content p {
	margin-top: 0;
	margin-bottom: 1.25em;
}

/* Títulos – família serifada, margens que podem ser sobrescritas pelo editor */
.entry-content h1,
.entry-content h2,
.entry-content h3,
.entry-content h4,
.entry-content h5,
.entry-content h6 {
	font-family: 'Playfair Display', Georgia, serif;
	font-weight: 700;
	color: #292524;
	margin-top: 1.5em;
	margin-bottom: 0.5em;
	line-height: 1.3;
}
.entry-content h1 { font-size: 2rem; }
.entry-content h2 { font-size: 1.5rem; }
.entry-content h3 { font-size: 1.25rem; }
.entry-content h4 { font-size: 1.125rem; }
.entry-content h5 { font-size: 1rem; }
.entry-content h6 { font-size: 0.875rem; }

/* Tamanhos de fonte do editor (Gutenberg) – têm prioridade sobre o base */
.entry-content .has-small-font-size { font-size: 0.875rem !important; }
.entry-content .has-medium-font-size { font-size: 1.125rem !important; }
.entry-content .has-large-font-size { font-size: 1.5rem !important; }
.entry-content .has-larger-font-size { font-size: 1.25rem !important; }
.entry-content .has-huge-font-size { font-size: 2.25rem !important; }
.entry-content .has-x-huge-font-size { font-size: 2.5rem !important; }

/* Cores de texto do editor – paleta do tema */
.entry-content .has-text-color { color: inherit; }
.entry-content .has-stone-800-color { color: #292524 !important; }
.entry-content .has-stone-600-color { color: #44403c !important; }
.entry-content .has-stone-500-color { color: #78716c !important; }
.entry-content .has-yellow-color { color: #ca8a04 !important; }
.entry-content .has-yellow-light-color { color: #facc15 !important; }
.entry-content .has-white-color { color: #ffffff !important; }

/* Fundo de bloco */
.entry-content .has-background { padding: 0.5em 1em; }
.entry-content .has-stone-800-background-color { background-color: #292524 !important; }
.entry-content .has-stone-600-background-color { background-color: #44403c !important; }
.entry-content .has-amber-background-color { background-color: #f59e0b !important; }
.entry-content .has-yellow-background-color { background-color: #facc15 !important; }
.entry-content .has-yellow-light-background-color { background-color: #fefce8 !important; }
.entry-content .has-white-background-color { background-color: #ffffff !important; }

/* Listas */
.entry-content ul,
.entry-content ol {
	margin: 1em 0;
	padding-left: 1.5em;
}
.entry-content li { margin-bottom: 0.35em; }

/* Links */
.entry-content a { color: #ca8a04; text-decoration: underline; }
.entry-content a:hover { color: #a16207; }

/* Citações e código */
.entry-content blockquote {
	border-left: 4px solid #eab308;
	margin: 1.5em 0;
	padding: 0.5em 1em;
	background: #fefce8;
	color: #57534e;
	font-style: italic;
}
.entry-content code,
.entry-content pre {
	font-family: ui-monospace, monospace;
	background: #f5f5f4;
	padding: 0.2em 0.4em;
	border-radius: 4px;
	font-size: 0.9em;
}
.entry-content pre { padding: 1em; overflow-x: auto; }

/* Imagens e blocos do editor */
.entry-content .wp-block-image figcaption { font-size: 0.875rem; color: #78716c; margin-top: 0.5em; }
.entry-content .wp-block-image img { max-width: 100%; height: auto; display: block; }
.entry-content .alignwide { max-width: 90vw; margin-left: auto; margin-right: auto; }
.entry-content .alignfull { max-width: 100%; width: 100vw; margin-left: calc(50% - 50vw); margin-right: calc(50% - 50vw); }

/* Espaçamento entre blocos (gap) do Gutenberg */
.entry-content .wp-block-group.has-background,
.entry-content .wp-block-columns { padding: 1em 0; }
.entry-content .block-editor-block-list__block { margin-bottom: 1em; }

/* Elementor: não sobrescrever estilos do Elementor no conteúdo */
.elementor-content .elementor-section,
.elementor-content .elementor-widget {
	font-family: inherit;
}
.elementor-content .elementor-element {
	/* Permite que cores e tamanhos definidos no Elementor sejam respeitados */
	color: inherit;
	font-size: inherit;
}
