/* Glauco Lucena — v4 "Uma coisa por vez".
   Segue o padrão do site atual: preto, dourado, Syne / DM Sans / IBM Plex Mono, cantos retos. */
:root {
	--gl-accent: #EBCB88;
	--gl-bg: #020405;
	--gl-text: #E8E8E6;
	--gl-muted: #8C919B;
	--gl-line: rgba(255, 255, 255, .1);
	--gl-font-head: "Syne", sans-serif;
	--gl-font-body: "DM Sans", sans-serif;
	--gl-font-mono: "IBM Plex Mono", monospace;
	--gl-max: 1280px; /* mesma largura do header (kit do Elementor) */
}

/* Coluna única: a mesma grade de 1280px do header (kit do Elementor) para todo conteúdo novo */
.gl-wrap, .gl-intro, [data-island="work-index"], [data-island="manifesto"], [data-island="process-stack"] { width: 100%; max-width: var(--gl-max, 1280px); margin-left: auto; margin-right: auto; box-sizing: border-box; }

/* Rótulo de seção + link opcional à direita */
.gl-head { display: flex; align-items: baseline; justify-content: space-between; gap: 24px; margin-bottom: 40px; }
.gl-label { font: 500 12px/1 var(--gl-font-mono) !important; letter-spacing: .14em; text-transform: uppercase; color: var(--gl-muted) !important; }
.gl-link, .gl-links a { font: 500 12px/1 var(--gl-font-mono) !important; letter-spacing: .14em !important; text-transform: uppercase; color: var(--gl-accent) !important; text-decoration: none; }
.gl-link::after, .gl-links a::after { content: " ↗"; }
.gl-link:hover, .gl-links a:hover { color: var(--gl-text) !important; }
.gl-links { display: flex; flex-wrap: wrap; gap: 32px; }

/* Apresentação: frase + linha de dados */
[data-island="manifesto"] > p { margin: 0; font: 400 clamp(1.375rem, 2.4vw, 2.125rem)/1.35 var(--gl-font-body); color: var(--gl-text); }
.gl-meta { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 16px 32px; margin-top: 40px; padding-top: 20px; border-top: 1px solid var(--gl-line); }
.gl-meta p { margin: 0; font: 500 12px/1.6 var(--gl-font-mono); letter-spacing: .14em; text-transform: uppercase; color: var(--gl-muted); }

/* Contato: o e-mail é o protagonista */
.gl-contact__lead { margin: 0 0 16px; font: 400 15px/1.6 var(--gl-font-body); color: var(--gl-muted); }
.gl-contact__mail { display: flex; align-items: center; flex-wrap: wrap; gap: 16px 24px; padding-bottom: 32px; margin-bottom: 24px; border-bottom: 1px solid var(--gl-line); }
.gl-contact__mail a { font: 500 clamp(1.5rem, 4.4vw, 3.5rem)/1.1 var(--gl-font-head) !important; color: var(--gl-text) !important; text-decoration: none; word-break: break-all; }
.gl-contact__mail a:hover { color: var(--gl-accent) !important; }
.gl-contact__mail button { padding: 8px 12px; background: none !important; border: 1px solid var(--gl-line) !important; border-radius: 0 !important; font: 500 12px/1 var(--gl-font-mono) !important; letter-spacing: .14em; text-transform: uppercase; color: var(--gl-muted) !important; cursor: pointer; }
.gl-contact__mail button:hover, .gl-contact__mail button.is-done { border-color: var(--gl-accent) !important; color: var(--gl-accent) !important; }

/* Abertura da página Projetos */
.gl-intro h1 { margin: 0 0 12px; font: 500 clamp(1.75rem, 3vw, 2.5rem)/1.1 var(--gl-font-head) !important; color: var(--gl-text) !important; }
.gl-intro p { max-width: 56ch; margin: 0 0 56px; font: 400 15px/1.6 var(--gl-font-body); color: var(--gl-muted); }

/* Header legível sobre conteúdo claro */
.elementor-location-header > .e-con, .elementor-location-header > .elementor-element { background-color: rgba(2, 4, 5, .92) !important; -webkit-backdrop-filter: blur(8px); backdrop-filter: blur(8px); border-bottom: 1px solid var(--gl-line); }

/* Versões sem JS: lista simples, mesmo ritmo */
[data-island] > ul, [data-island] > ol { list-style: none; margin: 0; padding: 0; display: grid; gap: 40px; }
[data-island] > ul a { display: grid; gap: 8px; color: var(--gl-text); text-decoration: none; }
[data-island] > ul img { width: 100%; height: auto; aspect-ratio: 4 / 3; object-fit: cover; }
[data-island] > ul span, [data-island] > ul p, [data-island] > ol p { margin: 0; font-size: 14px; color: var(--gl-muted); }
[data-island="work-index"] > ul { grid-template-columns: repeat(2, 1fr); gap: 48px 20px; }
@media (max-width: 1023px) { [data-island="work-index"] > ul { grid-template-columns: 1fr; } }
[data-island="process-stack"] > ol li { padding: 28px; background: #0B0D11; border: 1px solid var(--gl-line); }

/* v5: mosaico e catálogo usam a grade do header */
[data-island="work-mosaic"], [data-island="work-catalog"] { width: 100%; max-width: var(--gl-max, 1280px); margin-left: auto; margin-right: auto; box-sizing: border-box; }
[data-island="work-mosaic"] > ul, [data-island="work-catalog"] > ul { grid-template-columns: repeat(3, 1fr); gap: 40px 16px; }
@media (max-width: 1023px) { [data-island="work-mosaic"] > ul, [data-island="work-catalog"] > ul { grid-template-columns: 1fr; } }
[data-island="work-catalog"] > h1 { margin: 0 0 12px; font: 500 clamp(1.75rem, 3vw, 2.5rem)/1.1 var(--gl-font-head); color: var(--gl-text); }
[data-island="work-catalog"] > p { max-width: 52ch; margin: 0 0 80px; font: 400 15px/1.6 var(--gl-font-body); color: var(--gl-muted); }

/* Header e conteúdo na mesma grade também em telas estreitas:
   o header não tem margem lateral abaixo de 1280px + 2×24px. */
@media (max-width: 1327px) {
	.elementor-location-header > .e-con.e-parent { padding-left: 24px !important; padding-right: 24px !important; }
}

/* ===== v7: páginas internas no padrão about-me ===== */

/* Abertura: título grande e frase de apoio */
.gl-hello h1, .gl-case-hero h1 { margin: 16px 0 32px; font: 500 clamp(2.5rem, 7vw, 5.5rem)/1 var(--gl-font-head) !important; letter-spacing: -.02em; color: var(--gl-text) !important; }
.gl-hello__lead { max-width: 30ch; margin: 0; font: 400 clamp(1.25rem, 2.2vw, 1.875rem)/1.35 var(--gl-font-body); color: var(--gl-text); }
.gl-hello .gl-hello__lead { max-width: 40ch; }

/* Faixa de mídia de ponta a ponta, com números sobrepostos */
.gl-band { position: relative; margin: 0; width: 100%; height: min(80vh, 760px); overflow: hidden; background: #0B0D11; }
.gl-band--case { height: min(86vh, 860px); }
.gl-band__media { width: 100%; height: 100%; object-fit: cover; display: block; }
.gl-band__facts { position: absolute; left: 0; right: 0; bottom: 48px; display: flex; gap: 64px; padding: 0 24px; }
.gl-band::after { content: ""; position: absolute; inset: 0; background: linear-gradient(to top, rgba(2, 4, 5, .75), rgba(2, 4, 5, 0) 50%); pointer-events: none; }
.gl-band__facts { z-index: 1; }
.gl-band__facts p { margin: 0; }
.gl-band__facts b { display: block; font: 500 clamp(2rem, 4vw, 3.5rem)/1 var(--gl-font-head); color: var(--gl-text); }
.gl-band__facts span { display: block; margin-top: 8px; font: 500 12px/1.4 var(--gl-font-mono); letter-spacing: .14em; text-transform: uppercase; color: var(--gl-text); opacity: .8; }

/* Linha título | conteúdo (4 + 8 colunas da grade) */
.gl-row { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); column-gap: 24px; max-width: var(--gl-max); margin: 0 auto; padding: 72px 0; border-top: 1px solid var(--gl-line); }
.gl-row__head { grid-column: 1 / span 4; }
.gl-row__body { grid-column: 6 / span 7; }
.gl-row h2 { margin: 12px 0 0; font: 500 clamp(1.5rem, 2.4vw, 2.25rem)/1.15 var(--gl-font-head) !important; color: var(--gl-text) !important; }
.gl-row__body p { margin: 0 0 20px; font: 400 16px/1.7 var(--gl-font-body); color: var(--gl-muted); }
.gl-row__body .gl-big { font-size: clamp(1.125rem, 1.6vw, 1.375rem); line-height: 1.5; color: var(--gl-text); }
@media (max-width: 1023px) { .gl-row { grid-template-columns: 1fr; row-gap: 24px; padding: 56px 0; } .gl-row__head, .gl-row__body { grid-column: 1; } }

/* Serviços */
.gl-services { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(3, 1fr); gap: 32px; }
.gl-services li { padding-bottom: 28px; border-bottom: 1px solid var(--gl-line); }
.gl-services span { font: 500 12px/1 var(--gl-font-mono); color: var(--gl-accent); }
.gl-services h3 { margin: 40px 0 12px; font: 600 18px/1.3 var(--gl-font-head) !important; color: var(--gl-text) !important; }
.gl-services p { margin: 0; font-size: 15px; }
@media (max-width: 1023px) { .gl-services { grid-template-columns: 1fr; } .gl-services h3 { margin-top: 16px; } }

/* Trajetória */
.gl-timeline { list-style: none; margin: 0; padding: 0; }
.gl-timeline li { display: grid; grid-template-columns: 140px 1fr; column-gap: 24px; padding: 20px 0; border-bottom: 1px solid var(--gl-line); }
.gl-timeline li:first-child { padding-top: 0; }
.gl-timeline time { grid-row: span 2; font: 500 12px/1.6 var(--gl-font-mono); color: var(--gl-accent); }
.gl-timeline strong { display: block; font: 600 17px/1.3 var(--gl-font-head); color: var(--gl-text); }
.gl-timeline div span { display: block; margin-top: 4px; font: 500 12px/1.5 var(--gl-font-mono); letter-spacing: .1em; text-transform: uppercase; color: var(--gl-muted); }
.gl-timeline p { margin: 8px 0 0 !important; font-size: 15px !important; }
@media (max-width: 639px) { .gl-timeline li { grid-template-columns: 1fr; } .gl-timeline time { grid-row: auto; margin-bottom: 6px; } }

/* Colunas e listas de dados */
.gl-cols { display: grid; grid-template-columns: 1fr 1fr; gap: 40px; }
@media (max-width: 639px) { .gl-cols { grid-template-columns: 1fr; } }
.gl-list { list-style: none; margin: 12px 0 0; padding: 0; }
.gl-list li { padding: 12px 0; border-bottom: 1px solid var(--gl-line); }
.gl-list strong { display: block; font: 500 15px/1.4 var(--gl-font-body); color: var(--gl-text); }
.gl-list span { display: block; margin-top: 2px; font: 400 13px/1.5 var(--gl-font-body); color: var(--gl-muted); }
.gl-label--gap { margin-top: 40px; display: block; }
.gl-tools { margin: 0; border-top: 1px solid var(--gl-line); }
.gl-tools > div { display: grid; grid-template-columns: 140px 1fr; gap: 24px; padding: 14px 0; border-bottom: 1px solid var(--gl-line); }
.gl-tools dt { font: 500 12px/1.8 var(--gl-font-mono); letter-spacing: .14em; text-transform: uppercase; color: var(--gl-muted); }
.gl-tools dd { margin: 0; font: 400 15px/1.6 var(--gl-font-body); color: var(--gl-text); }
.gl-tools a { color: var(--gl-text) !important; text-decoration: none; }
.gl-tools a:hover { color: var(--gl-accent) !important; }

/* Case: ficha, resumo em três blocos, números, figuras */
.gl-facts { display: grid; grid-template-columns: repeat(4, 1fr); margin: 0 auto 56px; border-top: 1px solid var(--gl-line); border-bottom: 1px solid var(--gl-line); }
.gl-facts > div { padding: 20px 24px 20px 0; }
.gl-facts > div + div { padding-left: 24px; border-left: 1px solid var(--gl-line); }
.gl-facts dt { font: 500 12px/1 var(--gl-font-mono); letter-spacing: .14em; text-transform: uppercase; color: var(--gl-muted); }
.gl-facts dd { margin: 12px 0 0; font: 400 15px/1.5 var(--gl-font-body); color: var(--gl-text); }
.gl-tldr { display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; }
.gl-tldr p { margin: 12px 0 0; font: 400 clamp(1rem, 1.3vw, 1.125rem)/1.55 var(--gl-font-body); color: var(--gl-text); }
@media (max-width: 1023px) { .gl-facts, .gl-tldr { grid-template-columns: 1fr 1fr; } .gl-facts > div:nth-child(3) { padding-left: 0; border-left: 0; } }
@media (max-width: 639px) { .gl-facts, .gl-tldr { grid-template-columns: 1fr; } .gl-facts > div, .gl-facts > div + div { padding-left: 0; border-left: 0; border-top: 1px solid var(--gl-line); } }
.gl-stats--row { list-style: none; margin: 0 0 32px; padding: 0; display: grid; grid-template-columns: repeat(3, 1fr); border: 1px solid var(--gl-line); }
.gl-stats--row li { padding: 20px; border-left: 1px solid var(--gl-line); }
.gl-stats--row li:first-child { border-left: 0; }
.gl-stats--row b { display: block; font: 500 clamp(1.5rem, 2.6vw, 2.25rem)/1 var(--gl-font-head); color: var(--gl-text); }
.gl-stats--row span { display: block; margin-top: 10px; font: 500 12px/1.4 var(--gl-font-mono); letter-spacing: .12em; text-transform: uppercase; color: var(--gl-muted); }
.gl-fig { margin: 32px 0 0; }
.gl-fig img { display: block; width: 100%; height: auto; background: #0B0D11; }
.gl-fig figcaption { margin-top: 10px; font: 500 12px/1.5 var(--gl-font-mono); letter-spacing: .1em; text-transform: uppercase; color: var(--gl-muted); }
.gl-figs { display: grid; grid-template-columns: 1fr 1fr; gap: 24px; }
.gl-figs .gl-fig img { aspect-ratio: 4 / 3; object-fit: cover; }
@media (max-width: 639px) { .gl-figs { grid-template-columns: 1fr; } }
.gl-showcase .gl-fig--wide { margin-top: 0; }
.gl-todo { display: none; }
.logged-in .gl-todo { display: block; padding: 12px 16px; border: 1px dashed var(--gl-accent); color: var(--gl-accent) !important; font-size: 14px !important; }

/* Manifesto do case com rótulo */
[data-island="manifesto"] .gl-label, [data-island="manifesto"] > span { display: block; margin-bottom: 20px; }

/* Próximo case */
.gl-next .gl-box { display: flex; align-items: center; justify-content: space-between; gap: 24px; padding: 40px; margin: 0 0 32px; border: 1px solid var(--gl-line); color: var(--gl-text); text-decoration: none; transition: border-color .3s; }
.gl-next .gl-box span { font: 500 12px/1 var(--gl-font-mono); letter-spacing: .14em; text-transform: uppercase; color: var(--gl-muted); }
.gl-next .gl-box strong { font: 500 clamp(1.5rem, 3vw, 2.5rem)/1.1 var(--gl-font-head); }
.gl-next .gl-box:hover { border-color: var(--gl-accent); }

/* Formulário do Elementor no padrão do site */
.elementor-widget-form .elementor-field-group .elementor-field { background: transparent !important; border: 0 !important; border-bottom: 1px solid var(--gl-line) !important; border-radius: 0 !important; color: var(--gl-text) !important; font: 400 16px/1.5 var(--gl-font-body) !important; padding: 12px 0 !important; }
.elementor-widget-form .elementor-field-group .elementor-field:focus { border-bottom-color: var(--gl-accent) !important; box-shadow: none !important; }
.elementor-widget-form .elementor-field-label { font: 500 12px/1 var(--gl-font-mono) !important; letter-spacing: .14em; text-transform: uppercase; color: var(--gl-muted) !important; }
.elementor-widget-form select.elementor-field option { background: var(--gl-bg); }
.elementor-widget-form .elementor-button { border-radius: 0 !important; background: var(--gl-accent) !important; color: var(--gl-bg) !important; font: 500 12px/1 var(--gl-font-mono) !important; letter-spacing: .14em; text-transform: uppercase; padding: 16px 28px !important; }
.e-con:has(> .elementor-widget-form) { max-width: var(--gl-max); }
/* Linha título | conteúdo montada com contêineres do Elementor (Contato) */
.gl-row--flex { display: flex !important; padding: 72px 0 !important; border-top: 1px solid var(--gl-line); max-width: var(--gl-max); margin: 0 auto; gap: 24px; }
.gl-row__title { margin: 12px 0 0; font: 500 clamp(1.5rem, 2.4vw, 2.25rem)/1.15 var(--gl-font-head) !important; color: var(--gl-text) !important; }
@media (max-width: 1023px) { .gl-row--flex { flex-direction: column !important; padding: 56px 0 !important; } }

/* Acabamentos v7 */
.gl-services h3, .gl-row h3 { text-transform: none !important; letter-spacing: 0 !important; }
.elementor-widget-form .elementor-select-wrapper select, .elementor-widget-form select.elementor-field { background: transparent !important; border: 0 !important; border-bottom: 1px solid var(--gl-line) !important; border-radius: 0 !important; box-shadow: none !important; padding: 12px 0 !important; color: var(--gl-text) !important; }
.elementor-widget-form .elementor-select-wrapper::before { color: var(--gl-muted) !important; }

/* Hero da home: vídeo como atmosfera, não como protagonista.
   Mais escuro e um pouco mais baixo, para o primeiro trabalho aparecer na borda da tela. */
.elementor-element-33ab3993 > .elementor-background-video-container { opacity: .7; }

/* Header em celular e tablet (até 1023 px): logo menor, botão Menu e links em tela cheia. Antes só valia até 767 px, e no tablet o menu quebrava em 4 linhas e cobria o título da página. */
.gl-menu-toggle { display: none !important; }
@media (max-width: 1023px) {
	.elementor-location-header > .e-con.e-parent > .e-con-inner { flex-direction: row !important; flex-wrap: nowrap !important; align-items: center !important; justify-content: flex-start !important; gap: 12px !important; }
	.elementor-location-header .elementor-element-5e9c05e0 img { max-width: 48px !important; height: auto; }
	.elementor-location-header .elementor-element-5e9c05e0 { margin-right: 0; }
	.elementor-location-header .elementor-element-b8f8951 { margin-left: auto; }
	.elementor-location-header .elementor-element-b8f8951 .elementor-button { padding: 10px 14px !important; font-size: 12px !important; }
	.gl-menu-toggle { position: relative; z-index: 2; display: inline-block !important; order: 3; padding: 10px 14px; background: none; border: 1px solid var(--gl-line); border-radius: 0; font: 500 12px/1 var(--gl-font-mono); letter-spacing: .14em; text-transform: uppercase; color: var(--gl-text); cursor: pointer; }
	.elementor-location-header .elementor-element-b8f8951 { order: 2; }
	.elementor-location-header .elementor-element-a02923a { display: none !important; }
	.gl-menu-open .elementor-element-a02923a {
		display: flex !important; flex-direction: column !important; align-items: flex-start !important; justify-content: center !important; gap: 24px !important;
		position: fixed; inset: 72px 0 0 0; z-index: 9998; padding: 24px; background: var(--gl-bg); width: auto !important; max-width: none !important;
	}
	.gl-menu-open .elementor-element-a02923a .elementor-heading-title { font: 500 clamp(2rem, 10vw, 3rem)/1.1 var(--gl-font-head) !important; text-transform: none !important; }
	.gl-menu-open .gl-menu-toggle { border-color: var(--gl-accent); color: var(--gl-accent); }
}
/* Menu mobile: neutraliza o estilo de botão do tema e usa as variáveis de flex do Elementor */
@media (max-width: 1023px) {
	.gl-menu-toggle, .gl-menu-toggle:hover, .gl-menu-toggle:focus { background: none !important; color: var(--gl-text) !important; border: 1px solid var(--gl-line) !important; border-radius: 0 !important; font: 500 12px/1 var(--gl-font-mono) !important; letter-spacing: .14em !important; padding: 10px 14px !important; box-shadow: none !important; }
	.gl-menu-open .gl-menu-toggle { border-color: var(--gl-accent) !important; color: var(--gl-accent) !important; }
	.gl-menu-open .elementor-element-a02923a, .gl-menu-open .elementor-element-a02923a > .e-con-inner {
		--flex-direction: column; --align-items: flex-start; --justify-content: center; --gap: 28px; --row-gap: 28px;
		flex-direction: column !important; align-items: flex-start !important; justify-content: center !important;
	}
	.gl-menu-open .elementor-element-a02923a { height: calc(100vh - 72px); }
	.gl-menu-open .elementor-element-a02923a > .e-con-inner { width: 100% !important; max-width: none !important; margin: 0 !important; padding: 0 !important; }
}

/* ===== Escala tipográfica única (v8) =====
   Todo título e texto do site usa um destes tamanhos. */
:root {
	--gl-fs-display: clamp(2.5rem, 1.25rem + 5.2vw, 5.5rem);   /* título de página (Oi, eu sou o Glauco / GoBraids / Vamos conversar?) */
	--gl-fs-h2: clamp(1.5rem, 1rem + 1.6vw, 2.25rem);        /* título de seção e de linha */
	--gl-fs-h3: 1.125rem;                          /* título de item (serviços, trajetória) */
	--gl-fs-lead: clamp(1.125rem, 1.6vw, 1.375rem);/* frase de abertura e destaques */
	--gl-fs-body: 1rem;                            /* texto corrido */
	--gl-fs-small: .875rem;                        /* legendas e descrições curtas */
	--gl-fs-label: 12px;                           /* rótulos em mono */
	--gl-space-section: clamp(96px, 12vw, 160px);  /* respiro entre seções */
}
.gl-hello h1, .gl-case-hero h1 { font-size: var(--gl-fs-display) !important; margin: 16px 0 28px; }
.gl-hello__lead, .gl-hello .gl-hello__lead { font-size: var(--gl-fs-lead); line-height: 1.5; max-width: 46ch; color: var(--gl-text); }
.gl-row h2, .gl-row__title, .gl-intro h2, .gl-intro h1:not(.gl-hello h1) { font-size: var(--gl-fs-h2) !important; }
.gl-services h3, .gl-timeline strong { font-size: var(--gl-fs-h3) !important; }
.gl-row__body .gl-big { font-size: var(--gl-fs-lead); }
.gl-row__body p, .gl-tools dd, .gl-list strong { font-size: var(--gl-fs-body); }
.gl-services p, .gl-timeline p, .gl-list span, .gl-contact__lead { font-size: var(--gl-fs-small) !important; }
.gl-contact__mail a { font-size: clamp(1.5rem, 4vw, 3rem) !important; }

/* Respiro: linhas e blocos mais espaçados, texto e imagem descolados */
.gl-row, .gl-row--flex { padding: var(--gl-space-section) 0 !important; }
.gl-row__body > * + .gl-fig, .gl-row__body > * + .gl-figs, .gl-row__body > .gl-stats--row + p { margin-top: 56px; }
.gl-row__body p + p { margin-top: 4px; }
.gl-fig { margin-top: 56px; }
.gl-figs .gl-fig { margin-top: 0; }
.gl-figs { margin-top: 56px; }
.gl-fig figcaption { margin-top: 14px; }
.gl-contact--page .gl-contact__mail { margin-top: 48px; }
.gl-hello { padding-bottom: 24px; }

/* Linhas: o título acompanha a rolagem enquanto o conteúdo passa (desktop) */
@media (min-width: 1024px) {
	.gl-row__head { position: sticky; top: 120px; align-self: start; }
}

/* Figura de ponta a ponta da grade (12 colunas), entre as linhas */
.gl-full { max-width: var(--gl-max); margin: 0 auto; }
.gl-full .gl-fig { margin-top: 0; }
.gl-full .gl-fig img { width: 100%; }

/* Faixa da página Sobre: espaço reservado para a foto em largura total */
.gl-band--photo { display: flex; align-items: center; justify-content: center; background: #0B0D11; }
.gl-band--photo::after { background: linear-gradient(to top, rgba(2, 4, 5, .6), rgba(2, 4, 5, 0) 45%); }
.gl-band__slot { font: 500 var(--gl-fs-label)/1.6 var(--gl-font-mono); letter-spacing: .14em; text-transform: uppercase; color: var(--gl-muted); text-align: center; }

/* Currículos por idioma */
.gl-cv { display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; }
.gl-cv a, .gl-cv span { display: flex; justify-content: space-between; align-items: baseline; padding: 20px 0; border-bottom: 1px solid var(--gl-line); font: 500 var(--gl-fs-body)/1.4 var(--gl-font-body); color: var(--gl-text) !important; text-decoration: none; }
.gl-cv a::after { content: "PDF ↗"; font: 500 var(--gl-fs-label)/1 var(--gl-font-mono); letter-spacing: .14em; color: var(--gl-accent); }
.gl-cv a:hover { color: var(--gl-accent) !important; }
.gl-cv span { color: var(--gl-muted) !important; }
.gl-cv span::after { content: "em breve"; font: 500 var(--gl-fs-label)/1 var(--gl-font-mono); letter-spacing: .14em; text-transform: uppercase; }
@media (max-width: 639px) { .gl-cv { grid-template-columns: 1fr; gap: 0; } }

/* Próximo case: hover com preenchimento dourado em vez de borda */
.gl-next .gl-box { position: relative; overflow: hidden; isolation: isolate; border-color: var(--gl-line) !important; }
.gl-next .gl-box::before { content: ""; position: absolute; inset: 0; z-index: -1; background: var(--gl-accent); transform: scaleX(0); transform-origin: left; transition: transform .6s cubic-bezier(.65, 0, .35, 1); }
.gl-next .gl-box:hover::before, .gl-next .gl-box:focus-visible::before { transform: scaleX(1); }
.gl-next .gl-box strong, .gl-next .gl-box span { position: relative; transition: color .4s .1s, transform .6s cubic-bezier(.65, 0, .35, 1); }
.gl-next .gl-box:hover strong, .gl-next .gl-box:hover span { color: var(--gl-bg) !important; }
.gl-next .gl-box:hover strong { transform: translateX(-12px); }
@media (prefers-reduced-motion: reduce) { .gl-next .gl-box::before, .gl-next .gl-box strong { transition: none; } }

/* Índice do case: lista das etapas que acompanha a rolagem */
.gl-toc { position: fixed; left: 24px; bottom: 24px; z-index: 40; width: 232px; padding: 18px 20px; background: rgba(2, 4, 5, .92); -webkit-backdrop-filter: blur(8px); backdrop-filter: blur(8px); border: 1px solid var(--gl-line); opacity: 0; transform: translateY(12px); pointer-events: none; transition: opacity .4s, transform .4s; }
.gl-toc.is-on { opacity: 1; transform: none; pointer-events: auto; }
.gl-toc__head { display: flex; justify-content: space-between; margin-bottom: 14px; font: 500 var(--gl-fs-label)/1 var(--gl-font-mono); letter-spacing: .14em; text-transform: uppercase; color: var(--gl-muted); }
.gl-toc__head b { color: var(--gl-accent); font-weight: 500; }
.gl-toc__bar { height: 1px; margin-bottom: 14px; background: var(--gl-line); }
.gl-toc__bar i { display: block; height: 100%; width: 0; background: var(--gl-accent); }
.gl-toc ol { list-style: none; margin: 0; padding: 0; }
.gl-toc li a { display: flex; gap: 10px; padding: 4px 0; font: 400 13px/1.4 var(--gl-font-body); color: var(--gl-muted) !important; text-decoration: none; transition: color .3s; }
.gl-toc li a span { font: 500 12px/1.8 var(--gl-font-mono); }
.gl-toc li.is-done a { color: rgba(232, 232, 230, .55) !important; }
.gl-toc li.is-active a { color: var(--gl-text) !important; }
.gl-toc li.is-active a span { color: var(--gl-accent); }
@media (max-width: 1279px) {
	.gl-toc { left: 0; right: 0; bottom: auto; top: 0; width: auto; padding: 0; border: 0; background: none; backdrop-filter: none; z-index: 10000; }
	.gl-toc__head, .gl-toc ol { display: none; }
	.gl-toc__bar { margin: 0; height: 2px; background: transparent; }
}

/* O Elementor zera a margem de toda <figure> dentro de widgets; aqui o espaçamento é intencional. */
.gl-row__body .gl-fig, .gl-row__body .gl-figs { margin-top: 56px !important; }
.gl-figs .gl-fig { margin-top: 0 !important; }
.gl-full .gl-fig { margin: 0 !important; }
.gl-full .gl-fig + .gl-fig { margin-top: 24px !important; }
.gl-showcase .gl-fig { margin: 0 0 24px !important; }
.gl-gallery .gl-figs { margin: 0 0 24px !important; }
.gl-fig { margin-left: 0 !important; margin-right: 0 !important; }

/* Índice do case alinhado à borda da grade (mesma linha do logo) */
@media (min-width: 1280px) { .gl-toc { left: max(24px, calc((100vw - var(--gl-max)) / 2)); } }

/* Faixa da foto (Sobre): segue a proporção 3:2 do retrato, sem cortar a cabeça.
   O fundo da foto (#010102–#040405) é o mesmo preto do site, então ela se funde à página. */
.gl-band--photo { height: auto; aspect-ratio: 3 / 2; max-height: 92vh; background: var(--gl-bg); padding-top: 32px; box-sizing: border-box; }
.gl-band__photo { object-fit: cover; object-position: 50% 0; }
.gl-band--photo::after { background: linear-gradient(to top, rgba(2, 4, 5, .55), rgba(2, 4, 5, 0) 35%); }
@media (max-width: 767px) { .gl-band--photo { aspect-ratio: 4 / 5; } .gl-band__photo { object-position: 50% 0; } .gl-band__facts { gap: 28px; bottom: 28px; } }

/* ===== Sobre: retrato em tela inteira ===== */
.gl-portrait { position: relative; width: 100%; height: max(640px, min(100vh, 56.25vw)); overflow: hidden; background: var(--gl-bg); }
.gl-portrait__media img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: 30% 20%; animation: gl-emerge 1.6s cubic-bezier(.22, .61, .36, 1) both; }
@keyframes gl-emerge { from { opacity: 0; transform: scale(1.04); } to { opacity: 1; transform: none; } }
.gl-portrait::after { content: ""; position: absolute; left: 0; right: 0; bottom: 0; height: 30%; background: linear-gradient(to top, var(--gl-bg), rgba(2, 4, 5, 0)); pointer-events: none; }
.gl-portrait__content { position: relative; z-index: 1; height: 100%; max-width: var(--gl-max); margin: 0 auto; padding: 0 24px; box-sizing: content-box; display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); column-gap: 24px; grid-template-rows: 1fr auto; }
.gl-portrait__text { grid-column: 7 / span 6; align-self: center; padding-top: 82px; }
.gl-portrait__text h1 { margin: 16px 0 28px; font: 500 var(--gl-fs-display)/1 var(--gl-font-head) !important; letter-spacing: -.02em; color: var(--gl-text) !important; }
.gl-portrait__text .gl-hello__lead { max-width: 34ch; }
.gl-portrait__base { grid-column: 1 / -1; display: flex; gap: 64px; padding: 24px 0 48px; border-top: 1px solid var(--gl-line); }
.gl-portrait__base p { margin: 0; }
.gl-portrait__base b { display: block; font: 500 clamp(1.75rem, 3vw, 2.75rem)/1 var(--gl-font-head); color: var(--gl-text); }
.gl-portrait__base span { display: block; margin-top: 8px; font: 500 var(--gl-fs-label)/1.4 var(--gl-font-mono); letter-spacing: .14em; text-transform: uppercase; color: var(--gl-muted); }
@media (max-width: 1023px) {
	.gl-portrait { height: auto; }
	.gl-portrait__media img { position: relative; height: auto; aspect-ratio: 4 / 5; object-position: 0 0; }
	.gl-portrait::after { display: none; }
	.gl-portrait__content { display: block; padding: 0 24px; }
	.gl-portrait__text { padding: 40px 0 0; margin-top: -120px; position: relative; }
	.gl-portrait__base { gap: 28px; margin-top: 48px; padding-bottom: 24px; flex-wrap: wrap; }
}
@media (prefers-reduced-motion: reduce) { .gl-portrait__media img { animation: none; } }
/* Retrato inteiro abaixo do header: sem corte; o fundo idêntico ao da página esconde a borda. */
@media (min-width: 1024px) {
	.gl-portrait__media img { top: 96px; height: calc(100% - 96px); object-fit: contain; object-position: left bottom; }
}
.gl-portrait__content { box-sizing: border-box; max-width: calc(var(--gl-max) + 48px); }

/* Sobre — ajustes finais da abertura */
.gl-portrait__text { grid-column: 6 / span 7; align-self: center; padding-top: 40px; }
.gl-portrait__text .gl-hello__lead { max-width: 46ch; }
.gl-portrait__text .gl-portrait__base { gap: 56px; margin-top: 48px; padding: 24px 0 0; border-top: 1px solid var(--gl-line); }
@media (min-width: 1024px) {
	.gl-portrait__media img { top: 40px; height: calc(100% - 40px); }
}
/* base mais escura: a foto se dissolve na próxima seção */
.gl-portrait::after { display: block; height: 45%; background: linear-gradient(to top, var(--gl-bg) 0%, var(--gl-bg) 12%, rgba(2, 4, 5, .85) 40%, rgba(2, 4, 5, 0) 100%); }
@media (max-width: 1023px) { .gl-portrait::after { display: none; } .gl-portrait__text .gl-portrait__base { gap: 28px; } }

/* Abertura de seção com título grande */
.gl-statement { max-width: var(--gl-max); margin: 0 auto; padding: 48px 0 var(--gl-space-section); }
.gl-statement h2 { margin: 16px 0 56px; font: 500 var(--gl-fs-display)/1 var(--gl-font-head) !important; letter-spacing: -.02em; color: var(--gl-text) !important; }
.gl-statement__cols { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); column-gap: 24px; }
.gl-statement__cols .gl-big { grid-column: 1 / span 6; margin: 0; font: 400 var(--gl-fs-lead)/1.5 var(--gl-font-body); color: var(--gl-text); }
.gl-statement__cols p:not(.gl-big) { grid-column: 8 / span 5; margin: 0; font: 400 var(--gl-fs-body)/1.7 var(--gl-font-body); color: var(--gl-muted); }
@media (max-width: 1023px) { .gl-statement__cols { display: block; } .gl-statement__cols p:not(.gl-big) { margin-top: 20px; } }

/* ===== Índice do case: barra fina fixa abaixo do menu (substitui a caixa flutuante) ===== */
.gl-toc { position: fixed !important; left: 0 !important; right: 0 !important; top: 82px !important; bottom: auto !important; width: auto !important; z-index: 90 !important;
	padding: 0 !important; border: 0 !important; border-bottom: 1px solid var(--gl-line) !important; background: rgba(2, 4, 5, .92) !important; -webkit-backdrop-filter: blur(8px); backdrop-filter: blur(8px);
	opacity: 0; transform: translateY(-8px); transition: opacity .35s, transform .35s; pointer-events: none; }
.gl-toc.is-on { opacity: 1; transform: none; pointer-events: auto; }
.gl-toc__inner { position: relative; max-width: var(--gl-max); margin: 0 auto; padding: 0 24px; box-sizing: content-box; }
.gl-toc__toggle, .gl-toc__toggle:hover, .gl-toc__toggle:focus { display: flex !important; align-items: center; gap: 16px; width: 100%; height: 44px; padding: 0 !important; background: none !important; border: 0 !important; border-radius: 0 !important; box-shadow: none !important; cursor: pointer; text-align: left; }
.gl-toc__label { font: 500 var(--gl-fs-label)/1 var(--gl-font-mono); letter-spacing: .14em; text-transform: uppercase; color: var(--gl-muted); }
.gl-toc__toggle b { font: 500 var(--gl-fs-label)/1 var(--gl-font-mono); letter-spacing: .14em; color: var(--gl-accent); }
.gl-toc__current { font: 500 14px/1 var(--gl-font-body); color: var(--gl-text); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.gl-toc__chev { margin-left: auto; width: 8px; height: 8px; border-right: 1px solid var(--gl-muted); border-bottom: 1px solid var(--gl-muted); transform: rotate(45deg) translateY(-3px); transition: transform .3s; }
.gl-toc.is-open .gl-toc__chev { transform: rotate(-135deg); }
.gl-toc__bar { position: absolute !important; left: 0; right: 0; bottom: -1px; height: 1px !important; margin: 0 !important; background: transparent !important; }
.gl-toc__bar i { display: block; width: 100% !important; height: 100%; background: var(--gl-accent); transform: scaleX(0); transform-origin: left; }
.gl-toc .gl-toc__list { display: none; list-style: none; margin: 0; padding: 8px 0 20px; columns: 2; column-gap: 48px; border-top: 1px solid var(--gl-line); }
.gl-toc.is-open .gl-toc__list { display: block; }
.gl-toc__list li { break-inside: avoid; }
.gl-toc__list li a { display: flex; gap: 12px; padding: 8px 0; font: 400 15px/1.4 var(--gl-font-body); color: var(--gl-muted) !important; text-decoration: none; }
.gl-toc__list li a span { font: 500 var(--gl-fs-label)/1.9 var(--gl-font-mono); }
.gl-toc__list li.is-done a { color: rgba(232, 232, 230, .6) !important; }
.gl-toc__list li.is-active a, .gl-toc__list li a:hover { color: var(--gl-text) !important; }
.gl-toc__list li.is-active a span { color: var(--gl-accent); }
@media (max-width: 1023px) { .gl-toc { top: 72px !important; } .gl-toc .gl-toc__list { columns: 1; } .gl-toc__label { display: none; } }
@media (prefers-reduced-motion: reduce) { .gl-toc { transition: none; } }
/* linhas do case: título fixo desce para não ficar sob a barra */
@media (min-width: 1024px) { .gl-row__head { top: 150px; } }
.gl-toc__inner { box-sizing: border-box; max-width: calc(var(--gl-max) + 48px); }
.gl-row[id^="etapa-"] { scroll-margin-top: 126px; }
html { scroll-behavior: smooth; }
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } }

/* Barra do case v2: sem filete entre menu e barra, mais alta, com desfoque abaixo */
body:has(.gl-toc.is-on) .elementor-location-header .e-con { border-bottom-color: transparent !important; }
body:has(.gl-toc.is-on) .elementor-location-header .elementor-sticky--active { box-shadow: none !important; }
.gl-toc { top: 82px; border-bottom: 0 !important; background: rgba(2, 4, 5, .94) !important; }
.gl-toc__toggle, .gl-toc__toggle:hover, .gl-toc__toggle:focus { height: 60px; }
.gl-toc__bar { bottom: 0; }
.gl-toc::after { content: ""; position: absolute; left: 0; right: 0; top: 100%; height: 48px; pointer-events: none;
	background: linear-gradient(to bottom, rgba(2, 4, 5, .9), rgba(2, 4, 5, 0));
	-webkit-backdrop-filter: blur(6px); backdrop-filter: blur(6px);
	-webkit-mask-image: linear-gradient(to bottom, #000, transparent); mask-image: linear-gradient(to bottom, #000, transparent); }
.gl-row[id^="etapa-"] { scroll-margin-top: 150px; }

/* Case: com a barra visível, menu e barra opacos (o conteúdo não aparece por trás) e colados sem fresta */
body:has(.gl-toc.is-on) .elementor-location-header .e-con.e-parent { background-color: var(--gl-bg) !important; -webkit-backdrop-filter: none; backdrop-filter: none; border-bottom: 0 !important; }
.gl-toc { background: var(--gl-bg) !important; margin-top: -1px; }

/* Sobre: base mais escura, a mão some no preto */
.gl-portrait::after { height: 58%; background: linear-gradient(to top, var(--gl-bg) 0%, var(--gl-bg) 32%, rgba(2, 4, 5, .9) 52%, rgba(2, 4, 5, 0) 100%); }
.gl-portrait::after { height: 62%; background: linear-gradient(to top, var(--gl-bg) 0%, var(--gl-bg) 50%, rgba(2, 4, 5, .85) 68%, rgba(2, 4, 5, 0) 100%); }
.gl-portrait::after { height: 60%; background: linear-gradient(to top, var(--gl-bg) 0%, var(--gl-bg) 40%, rgba(2, 4, 5, .8) 60%, rgba(2, 4, 5, 0) 100%); }
.gl-portrait::after { height: 52%; background: linear-gradient(to top, var(--gl-bg) 0%, var(--gl-bg) 34%, rgba(2, 4, 5, .78) 58%, rgba(2, 4, 5, 0) 100%); }
.gl-portrait::after { height: 46%; background: linear-gradient(to top, var(--gl-bg) 0%, var(--gl-bg) 28%, rgba(2, 4, 5, .75) 55%, rgba(2, 4, 5, 0) 100%); }

/* Retrato: a moldura (<picture>) define a área; a foto se ajusta dentro dela em qualquer tela.
   Assim o enquadramento e a sombra da base ficam iguais em telas altas ou baixas. */
@media (min-width: 1024px) {
	.gl-portrait__media { position: absolute; left: 0; right: 0; top: 40px; bottom: 0; display: block; }
	.gl-portrait__media img { position: absolute !important; inset: 0 !important; width: 100% !important; height: 100% !important; object-fit: contain; object-position: left bottom; }
}
/* Sobre (foto B, sem mão em cena): sombra da base mais baixa, mostra mais o paletó */
.gl-portrait::after { height: 38%; background: linear-gradient(to top, var(--gl-bg) 0%, var(--gl-bg) 18%, rgba(2, 4, 5, .7) 50%, rgba(2, 4, 5, 0) 100%); }

/* Sobre: a foto surge do preto sem nenhum movimento (só opacidade) */
@keyframes gl-emerge { from { opacity: 0; } to { opacity: 1; } }
.gl-portrait__media img { transform: none !important; }

/* ===== Película de grão (referência Ryoku) =====
   SVG inline (feTurbulence), sem arquivo de imagem. Uma única camada fixa por cima da página.
   Ruído de uma oitava em alta frequência: pontos isolados, como grão de filme (não manchas).
   Mistura "screen": no preto vira grão, a média quase não sobe; sobre imagens claras quase some. */
:root { --gl-grain-opacity: .55; }
body::after {
	content: ""; position: fixed; inset: 0; z-index: 99999; pointer-events: none;
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='256' height='256'%3E%3Cfilter id='g' x='0' y='0'%3E%3CfeTurbulence type='turbulence' baseFrequency='1.4' numOctaves='1' seed='7' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 1  0 0 0 0 1  0 0 0 0 1  0 0 0 6 -2.4'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23g)' opacity='.16'/%3E%3C/svg%3E");
	background-size: 256px 256px; mix-blend-mode: screen; opacity: var(--gl-grain-opacity);
}
@media print { body::after { display: none; } }

/* =====================================================================
   v9 — Escala tipográfica "título enorme, interface miúda" (ref. Ryoku)
   Títulos grandes e leves; menu, rótulos, botões e legendas entre 10 e 13 px.
   ===================================================================== */
:root {
	--gl-font-mono: "Geist Mono", "IBM Plex Mono", ui-monospace, monospace;
	--gl-fs-display: clamp(2.75rem, 1.5rem + 5vw, 5.5rem);   /* 44 px no celular, 88 px a partir de 1280 */
	--gl-fs-h2: clamp(1.75rem, 1.25rem + 1.6vw, 2.75rem);    /* títulos de linha: 28 a 44 px */
	--gl-fs-h3: 1rem;
	--gl-fs-lead: clamp(1rem, 1.25vw, 1.1875rem);   /* 18–19 px */
	--gl-fs-body: .9375rem;                         /* 15 px */
	--gl-fs-small: .875rem;                         /* 14 px */
	--gl-fs-label: 12px;
	--gl-ls-label: .18em;
	--gl-ls-ui: .16em;
}

/* Títulos: grandes e leves */
.gl-hello h1, .gl-case-hero h1, .gl-portrait__text h1, .gl-statement h2 { font-weight: 400 !important; letter-spacing: -.035em !important; line-height: .95 !important; }
.gl-row h2, .gl-row__title, .gl-intro h1, .gl-intro h2 { font-size: var(--gl-fs-h2) !important; font-weight: 400 !important; letter-spacing: -.025em !important; line-height: 1.05 !important; }
.gli-root.gli-hero .gli-hero-title { font-size: clamp(2.75rem, 7vw, 6.5rem) !important; font-weight: 500 !important; letter-spacing: -.03em !important; line-height: .95 !important; }
.gli-root.gli-hero .gli-hero-line { font-size: var(--gl-fs-lead) !important; }
.gli-root.gli-wc .gli-wc-h1 { font-size: var(--gl-fs-display) !important; font-weight: 400 !important; letter-spacing: -.035em !important; line-height: .95 !important; }

/* Destaques e textos: menores */
.gl-hello__lead, .gl-row__body .gl-big, .gl-statement__cols .gl-big, .gl-contact__lead { font-size: var(--gl-fs-lead) !important; }
.gli-root.gli-manifesto .scroll-reveal.gli-manifesto-text { font-size: clamp(1.375rem, 1.9vw, 1.625rem) !important; line-height: 1.4 !important; }
.gl-row__body p, .gl-statement__cols p:not(.gl-big), .gl-tools dd, .gl-list strong, .gli-root.gli-wc .gli-wc-p, .gli-root.gli-stack .gli-step-text { font-size: var(--gl-fs-body) !important; }
.gl-services p, .gl-timeline p, .gl-list span, .gli-root.gli-stack .gli-step-deliverable, .gli-root.gli-wm .gli-wm-problem { font-size: var(--gl-fs-small) !important; }
.gl-services h3, .gl-timeline strong, .gli-root.gli-stack .gli-step-title, .gli-root.gli-wc .gli-wc-title { font-size: var(--gl-fs-h3) !important; }
.gli-root.gli-wm .gli-wm-title { font-size: 16px !important; }
.gli-root.gli-wm .gli-wm-tile.is-big .gli-wm-info--overlay .gli-wm-title { font-size: clamp(1.25rem, 1.7vw, 1.625rem) !important; font-weight: 500 !important; }

/* Interface: menu, rótulos, botões e legendas em 10–11 px, caixa alta, espaçados */
.elementor-location-header .elementor-heading-title, .elementor-location-header .elementor-heading-title a { font-family: var(--gl-font-body) !important; font-size: 12px !important; font-weight: 500 !important; letter-spacing: var(--gl-ls-ui) !important; text-transform: uppercase !important; }
.elementor-location-header .elementor-button, .elementor-element-33ab3993 .elementor-button, .elementor-location-footer .elementor-button {
	font-family: var(--gl-font-mono) !important; font-size: 12px !important; font-weight: 500 !important; letter-spacing: var(--gl-ls-ui) !important; text-transform: uppercase !important; }
.elementor-location-footer .elementor-heading-title, .elementor-location-footer .elementor-heading-title a, .elementor-location-footer .elementor-widget-text-editor { font-family: var(--gl-font-body) !important; font-size: 12px !important; font-weight: 500 !important; letter-spacing: var(--gl-ls-ui) !important; text-transform: uppercase; }
.gl-label, .gl-meta p, .gl-tools dt, .gl-facts dt, .gl-fig figcaption, .gl-band__facts span, .gl-portrait__base span, .gl-stats--row span, .gl-timeline time, .gl-timeline div span, .gl-toc__label, .gl-toc__toggle b, .gl-cv a::after,
.gli-root.gli-manifesto .gli-manifesto-label, .gli-root.gli-wc .gli-wc-label, .gli-root.gli-wc .gli-wc-tags, .gli-root.gli-wm .gli-wm-info--below .gli-wm-tags, .gli-root.gli-stack .gli-step-number, .gli-root.gli-stack .gli-step-deliverable strong {
	font-family: var(--gl-font-mono) !important; font-size: var(--gl-fs-label) !important; letter-spacing: var(--gl-ls-label) !important; }
.gl-link, .gl-links a, .gl-contact__mail button, .gl-next .gl-box span { font-family: var(--gl-font-mono) !important; font-size: var(--gl-fs-label) !important; letter-spacing: var(--gl-ls-label) !important; }
.gli-root.gli-wm .gli-wm-info--overlay .gli-wm-tags { font-size: 12px !important; letter-spacing: .04em !important; }
.gli-root.gli-wc .gli-wc-btn { font-size: 13px !important; }
.gl-toc__current { font-size: 13px !important; }
.gl-toc__list li a { font-size: 13px !important; }
.elementor-widget-form .elementor-field-label { font-family: var(--gl-font-mono) !important; font-size: var(--gl-fs-label) !important; letter-spacing: var(--gl-ls-label) !important; }
.elementor-widget-form .elementor-field-group .elementor-field { font-size: var(--gl-fs-body) !important; }
.elementor-widget-form .elementor-button { font-family: var(--gl-font-mono) !important; font-size: 12px !important; letter-spacing: var(--gl-ls-ui) !important; }

/* Números: grandes e leves também */
.gl-portrait__base b, .gl-stats--row b, .gl-band__facts b { font-weight: 400 !important; letter-spacing: -.02em; }

/* =====================================================================
   v9 — Paleta: preto #020405 e dourado #EBCB88 mantidos;
   neutros numa única escala quente derivada do dourado (ref. Ryoku).
   ===================================================================== */
:root {
	--gl-text: #E6E1D8;      /* texto principal  — 15,8:1 sobre o preto */
	--gl-muted: #9A938A;     /* texto secundário —  6,7:1 */
	--gl-faint: #807A72;     /* rótulos e notas  —  4,6:1 (mínimo AA para texto pequeno) */
	--gl-line: rgba(230, 225, 216, .1);
	--gl-surface: #0D0C0B;   /* fundos de cartões e mídias */
}
.gl-label, .gl-meta p, .gl-tools dt, .gl-facts dt, .gl-fig figcaption, .gl-toc__label, .gl-portrait__base span, .gl-stats--row span, .gl-band__facts span { color: var(--gl-faint) !important; }
.gl-row__body p, .gl-statement__cols p:not(.gl-big), .gl-services p, .gl-timeline p, .gl-list span, .gl-contact__lead, .gl-intro p { color: var(--gl-muted) !important; }
.gl-hello h1, .gl-case-hero h1, .gl-portrait__text h1, .gl-statement h2, .gl-row h2, .gl-row__title, .gl-hello__lead, .gl-big, .gl-timeline strong, .gl-services h3, .gl-list strong, .gl-tools dd, .gl-facts dd, .gl-tldr p, .gl-portrait__base b, .gl-stats--row b { color: var(--gl-text) !important; }
.gl-toc__list li.is-done a { color: rgba(230, 225, 216, .6) !important; }
.gl-fig img, .gl-band, .gl-band--photo, [data-island="process-stack"] > ol li { background-color: var(--gl-surface); }

/* Seletor de idioma "PT / EN / ES" (montado pelo carregador a partir do link #gl-lang do header) */
.gl-lang { display: inline-flex; align-items: baseline; gap: .5em; }
.gl-lang .gl-lang-cur { color: var(--gl-accent); }
/* efeito de hover por idioma (o widget perde a classe gl-link-accent, que sublinhava o grupo inteiro) */
.gl-lang a { position: relative; color: var(--gl-text); text-decoration: none; transition: color .25s ease; }
.gl-lang a::after { content: ''; position: absolute; left: 0; bottom: -2px; width: 0; height: 1px; background: var(--gl-accent); transition: width .35s cubic-bezier(.22, 1, .36, 1); }
.gl-lang a:hover, .gl-lang a:focus-visible { color: var(--gl-accent); }
.gl-lang a:hover::after, .gl-lang a:focus-visible::after { width: 100%; }
.gl-lang .gl-lang-sep { color: var(--gl-faint); }
/* os spans seguem a tipografia dos links do menu (no celular o título herdado é grande) */
.gl-lang .gl-lang-cur, .gl-lang .gl-lang-sep { font: 500 12px/1.4 var(--gl-font-body) !important; letter-spacing: .16em !important; text-transform: uppercase; }

/* Estatísticas em linha: no celular empilham (os rótulos longos em PT/ES estouravam a largura) */
.gl-stats--row { grid-template-columns: repeat(3, minmax(0, 1fr)); }
@media (max-width: 639px) {
	.gl-stats--row { grid-template-columns: minmax(0, 1fr); }
	.gl-stats--row li { border-left: 0; border-top: 1px solid var(--gl-line); }
	.gl-stats--row li:first-child { border-top: 0; }
}

/* Página 404 */
.gl-404 { padding: clamp(160px, 22vw, 260px) 24px clamp(96px, 12vw, 160px); }
.gl-404 h1 { font: 400 var(--gl-fs-display, clamp(2.5rem, 6vw, 4.5rem))/1.05 var(--gl-font-head) !important; color: var(--gl-text); margin: 16px 0 24px; color: var(--gl-text) !important; }
.gl-404 p { max-width: 46ch; margin: 0 0 48px !important; font-size: var(--gl-fs-lead, 1.25rem); line-height: 1.5; color: var(--gl-muted); }

/* Perguntas frequentes (Sobre) */
.gl-faq h3 { margin: 0 0 8px !important; font: 500 var(--gl-fs-h3, 1.125rem)/1.35 var(--gl-font-body) !important; color: var(--gl-text) !important; }
.gl-faq p { margin: 0 0 36px !important; max-width: 62ch; color: var(--gl-muted); }
.gl-faq p:last-child { margin-bottom: 0 !important; }

/* Alvos de toque de pelo menos 24 px nos links de rótulo (WCAG 2.2) */
.gl-links a, a.gl-link { display: inline-block; padding: 8px 0; }

/* Rodapé no celular: margem lateral igual à do resto do site, links em linha que quebram e textos de direitos empilhados */
@media (max-width: 767px) {
	[data-elementor-type="footer"] > .e-con { padding-left: 24px !important; padding-right: 24px !important; }
	[data-elementor-type="footer"] .e-con { flex-wrap: wrap; gap: 16px 28px; }
}

/* Sobre: serviços em linhas (número, título e descrição lado a lado) */
.gl-services { grid-template-columns: minmax(0, 1fr) !important; gap: 0 !important; }
.gl-services li { display: grid; grid-template-columns: 32px minmax(150px, 210px) minmax(0, 1fr); gap: 0 24px; align-items: baseline; padding: 28px 0 !important; border-top: 1px solid var(--gl-line); border-bottom: 0 !important; }
.gl-services li:first-child { padding-top: 0 !important; border-top: 0; }
.gl-services li:last-child { border-bottom: 1px solid var(--gl-line) !important; }
.gl-services h3 { margin: 0 !important; }
.gl-services p { max-width: 62ch; }
@media (max-width: 767px) {
	.gl-services li { grid-template-columns: 32px minmax(0, 1fr); row-gap: 10px; }
	.gl-services li p { grid-column: 2; }
}

/* Sobre: currículos em lista, um idioma por linha */
.gl-cv { display: flex !important; flex-direction: column; gap: 0 !important; margin-top: 8px; }
.gl-cv a { padding: 18px 0 !important; border-bottom: 0 !important; border-top: 1px solid var(--gl-line); }
.gl-cv a:last-child { border-bottom: 1px solid var(--gl-line) !important; }
.gl-cv a::after { transition: transform .25s ease; }
.gl-cv a:hover::after { transform: translateX(4px); }

/* Responsivo (24 out. 2026): escala de breakpoints 640 / 768 / 1024 / 1280 (+1327 = contêiner + margens); medida de leitura e alvos de toque */
.gl-row__body p, .gl-row__body .gl-big, .gl-statement__cols p { max-width: 68ch; }
.gl-row__body .gl-list p, .gl-row__body .gl-timeline p { max-width: none; }
.elementor-location-header .elementor-heading-title a, .elementor-location-footer .elementor-heading-title a { display: inline-block; padding: 6px 0; }

/* Menu aberto (celular e tablet): links grandes, alinhados à esquerda como o resto da página */
@media (max-width: 1023px) {
	.elementor-location-header .gl-menu-open .elementor-element-a02923a > .elementor-widget { align-self: flex-start !important; margin: 0 !important; width: auto !important; }
	.elementor-location-header .gl-menu-open .elementor-element-a02923a .elementor-widget-heading:not(.elementor-element-c89a7a8) .elementor-heading-title,
	.elementor-location-header .gl-menu-open .elementor-element-a02923a .elementor-widget-heading:not(.elementor-element-c89a7a8) .elementor-heading-title a { font-family: var(--gl-font-head) !important; font-size: clamp(2rem, 8vw, 3.25rem) !important; letter-spacing: -.02em !important; text-transform: none !important; line-height: 1.1 !important; }
	.elementor-location-header .gl-menu-open .elementor-element-a02923a { justify-content: flex-start !important; align-content: flex-start !important; flex-wrap: nowrap !important; padding-top: 48px !important; }
}
