/* ============================================================
   Felipe Gagliardi | folha de estilo do site publico

   TOKENS. Claro e o padrao; escuro entra por escolha explicita no
   botao da barra superior, e a escolha fica gravada no navegador.

   Contraste medido no navegador (WCAG 2.1, texto sobre o fundo da propria
   secao), com a pagina carregada em cada tema:
     claro    pior caso 5,39:1
     escuro   pior caso 5,27:1
   O minimo exigido para texto normal e 4,5:1.
   ============================================================ */
:root {
  --ground:      #F1F5F4;
  --surface:     #FFFFFF;
  --line:        #D6E0DE;
  --line-soft:   #E7EDEC;
  --ink:         #081416;
  --ink-2:       #33484A;
  --ink-3:       #536867;
  --accent:      #0A6B5B;
  --accent-ink:  #FFFFFF;
  --accent-wash: rgba(10,107,91,.07);
  --accent-edge: rgba(10,107,91,.24);
  --warm:        #9C4A2C;
  --warm-wash:   rgba(156,74,44,.07);
  --warm-edge:   rgba(156,74,44,.28);
  --shadow-lift: 0 2px 4px rgba(8,20,22,.06), 0 20px 44px -14px rgba(8,20,22,.20);
  --grid-dot:    rgba(10,107,91,.12);
  color-scheme: light;

  --display: Candara, Optima, "Gill Sans MT", "Gill Sans", "Trebuchet MS", sans-serif;
  --body: "Segoe UI", -apple-system, BlinkMacSystemFont, "Helvetica Neue", Arial, sans-serif;
  --mono: "Cascadia Mono", Consolas, "SF Mono", ui-monospace, "Roboto Mono", monospace;

  --step--1: clamp(.76rem, .74rem + .1vw, .82rem);
  --step-0:  clamp(1rem, .97rem + .16vw, 1.09rem);
  --step-1:  clamp(1.16rem, 1.1rem + .3vw, 1.35rem);
  --step-2:  clamp(1.42rem, 1.3rem + .6vw, 1.85rem);
  --step-3:  clamp(1.8rem, 1.55rem + 1.2vw, 2.7rem);
  --step-4:  clamp(2.3rem, 1.8rem + 2.4vw, 4.1rem);

  --pad: clamp(1.15rem, .6rem + 2.4vw, 3rem);
  --band-y: clamp(4rem, 2.4rem + 6vw, 8rem);
  --measure: 66ch;
}

:root[data-theme="dark"] {
  --ground: #091416; --surface: #0E1D20;
  --line: #1E3A3E; --line-soft: #16292D;
  --ink: #E3EFED; --ink-2: #A6BCBA; --ink-3: #7A9391;
  --accent: #4FD8BE; --accent-ink: #04211C;
  --accent-wash: rgba(79,216,190,.09); --accent-edge: rgba(79,216,190,.26);
  --warm: #E08A62; --warm-wash: rgba(224,138,98,.10); --warm-edge: rgba(224,138,98,.32);
  --shadow-lift: 0 2px 6px rgba(0,0,0,.45), 0 26px 56px -16px rgba(0,0,0,.8);
  --grid-dot: rgba(79,216,190,.14);
  color-scheme: dark;
}

:root[data-theme="light"] {
  --ground: #F1F5F4; --surface: #FFFFFF;
  --line: #D6E0DE; --line-soft: #E7EDEC;
  --ink: #081416; --ink-2: #33484A; --ink-3: #536867;
  --accent: #0A6B5B; --accent-ink: #FFFFFF;
  --accent-wash: rgba(10,107,91,.07); --accent-edge: rgba(10,107,91,.24);
  --warm: #9C4A2C; --warm-wash: rgba(156,74,44,.07); --warm-edge: rgba(156,74,44,.28);
  --shadow-lift: 0 2px 4px rgba(8,20,22,.06), 0 20px 44px -14px rgba(8,20,22,.20);
  --grid-dot: rgba(10,107,91,.12);
  color-scheme: light;
}

/* ============================================================
   BASE
   ============================================================ */
*, *::before, *::after { box-sizing: border-box; }

:root { scroll-behavior: smooth; }
@media (prefers-reduced-motion: reduce) { :root { scroll-behavior: auto; } }

body {
  margin: 0;
  background: var(--ground);
  color: var(--ink);
  font-family: var(--body);
  font-size: var(--step-0);
  line-height: 1.65;
  -webkit-font-smoothing: antialiased;
  overflow-x: hidden;
  transition: background-color .35s ease, color .35s ease;
}

h1, h2, h3, h4 {
  font-family: var(--display);
  font-weight: 700;
  line-height: 1.08;
  letter-spacing: -.02em;
  text-wrap: balance;
  margin: 0;
}

p { margin: 0; }
ul { margin: 0; padding: 0; list-style: none; }
figure { margin: 0; }
dl, dd { margin: 0; }
img { max-width: 100%; }

a { color: inherit; text-decoration: none; }

section[id], header[id] { scroll-margin-top: 78px; }

:focus-visible { outline: 2px solid var(--accent); outline-offset: 3px; border-radius: 3px; }

.wrap { width: min(1180px, 100%); margin-inline: auto; padding-inline: var(--pad); }
.band { padding-block: var(--band-y); position: relative; }

.eyebrow {
  font-family: var(--mono); font-size: var(--step--1);
  letter-spacing: .16em; text-transform: uppercase; color: var(--ink-3);
  display: flex; align-items: center; gap: .7em;
}
.eyebrow::before { content: ""; width: 1.6em; height: 1px; background: var(--accent); flex: none; }
.eyebrow-gap { padding-top: 1rem; }

.lede { font-size: var(--step-1); line-height: 1.55; color: var(--ink-2); max-width: var(--measure); }
.stack { display: flex; flex-direction: column; gap: 1.1rem; align-items: flex-start; }

/* ============================================================
   NAV
   ============================================================ */
.nav {
  position: sticky; top: 0; z-index: 50;
  background: color-mix(in srgb, var(--ground) 88%, transparent);
  backdrop-filter: blur(14px);
  border-bottom: 1px solid var(--line-soft);
}
.nav-in { display: flex; align-items: center; gap: clamp(.6rem, .2rem + 1.4vw, 1.5rem); min-height: 62px; }
.brand {
  font-family: var(--display); font-weight: 700;
  letter-spacing: -.02em; font-size: 1.06rem;
  margin-right: auto; display: flex; align-items: center; gap: .6rem;
}
.brand-mark { width: 22px; height: 22px; flex: none; display: grid; grid-template-columns: repeat(3, 1fr); gap: 2px; }
.brand-mark i { background: var(--line); border-radius: 1px; }
.brand-mark i:nth-child(3) { background: var(--accent); }
.brand-mark i:nth-child(5) { background: var(--ink-3); }

.nav-links { display: flex; gap: 1.4rem; }
.nav-links a {
  font-size: var(--step--1); font-family: var(--mono);
  letter-spacing: .06em; text-transform: uppercase;
  color: var(--ink-3); transition: color .2s;
}
.nav-links a:hover { color: var(--ink); }
@media (max-width: 1060px) { .nav-links { display: none; } }

.theme-btn {
  flex: none; width: 38px; height: 38px;
  display: grid; place-items: center;
  background: transparent; border: 1px solid var(--line);
  border-radius: 3px; color: var(--ink-2); cursor: pointer;
  transition: border-color .2s, color .2s;
}
.theme-btn:hover { border-color: var(--accent); color: var(--accent); }
.theme-btn svg { width: 17px; height: 17px; fill: none; stroke: currentColor; stroke-width: 1.6; stroke-linecap: round; stroke-linejoin: round; }
.theme-btn .i-sun { display: none; }
.theme-btn .i-moon { display: block; }
:root[data-theme="light"] .theme-btn .i-sun { display: block; }
:root[data-theme="light"] .theme-btn .i-moon { display: none; }

/* ============================================================
   BOTOES
   ============================================================ */
.btn {
  display: inline-flex; align-items: center; gap: .55rem;
  padding: .78rem 1.35rem; border-radius: 2px;
  font-size: var(--step--1); font-family: var(--mono);
  letter-spacing: .08em; text-transform: uppercase;
  border: 1px solid transparent; cursor: pointer;
  transition: transform .18s ease, background .18s, border-color .18s, color .18s;
}
.btn:hover { transform: translateY(-2px); }
.btn-primary { background: var(--accent); color: var(--accent-ink); font-weight: 600; }
.btn-primary:hover { background: color-mix(in srgb, var(--accent) 84%, var(--ink)); }
.btn-ghost { border-color: var(--line); color: var(--ink); background: transparent; }
.btn-ghost:hover { border-color: var(--accent); color: var(--accent); }
.btn-submit { align-self: flex-start; }
@media (max-width: 640px) { .nav .btn { display: none; } }

/* ============================================================
   HERO
   ============================================================ */
.hero { padding-block: clamp(3.5rem, 2rem + 6vw, 7rem) clamp(3rem, 2rem + 4vw, 5.5rem); }
.hero-grid {
  display: grid; grid-template-columns: minmax(0, 1.35fr) minmax(0, .85fr);
  gap: clamp(2rem, 1rem + 4vw, 4.5rem); align-items: center;
}
@media (max-width: 900px) { .hero-grid { grid-template-columns: 1fr; } }

.hero-copy { display: flex; flex-direction: column; gap: 1.6rem; }
.hero h1 { font-size: var(--step-4); letter-spacing: -.035em; }
.hero-thesis {
  font-family: var(--display); font-size: var(--step-2);
  font-weight: 400; line-height: 1.28; letter-spacing: -.015em; max-width: 24ch;
}
.hero-thesis em { font-style: normal; color: var(--accent); }
.hero-cta { display: flex; flex-wrap: wrap; gap: .8rem; }

.pulse-rule { display: block; width: 100%; max-width: 340px; height: 24px; overflow: visible; }
.pulse-rule path {
  fill: none; stroke: var(--accent); stroke-width: 1.5;
  stroke-linecap: round; stroke-linejoin: round;
  stroke-dasharray: 420; stroke-dashoffset: 420;
  animation: draw 2.6s cubic-bezier(.22,.8,.3,1) .5s forwards;
}
@keyframes draw { to { stroke-dashoffset: 0; } }

.hero-figure { display: flex; flex-direction: column; gap: 1rem; }
.portrait {
  position: relative; aspect-ratio: 4 / 5;
  border: 1px solid var(--line); border-radius: 3px;
  background: radial-gradient(120% 90% at 70% 12%, var(--accent-wash), transparent 60%), var(--surface);
  overflow: hidden; display: grid; place-items: center;
}
.portrait img { width: 100%; height: 100%; object-fit: cover; display: block; }
.portrait-empty {
  display: flex; flex-direction: column; align-items: center; gap: .9rem;
  color: var(--ink-3); text-align: center; padding: 1.5rem;
}
.portrait-empty svg { width: 42px; height: 42px; stroke: var(--ink-3); fill: none; stroke-width: 1.2; }
.portrait-empty span { font-family: var(--mono); font-size: var(--step--1); letter-spacing: .1em; text-transform: uppercase; }

.ninebox { display: flex; align-items: center; gap: .9rem; }
.ninebox-grid { display: grid; grid-template-columns: repeat(3, 14px); gap: 3px; flex: none; }
.ninebox-grid i { width: 14px; height: 14px; border-radius: 1px; background: var(--grid-dot); }
.ninebox-grid i.on { background: var(--accent); box-shadow: 0 0 12px var(--accent-edge); }

/* ============================================================
   NUMEROS
   ============================================================ */
.stats { border-block: 1px solid var(--line-soft); background: var(--surface); }
.stats-in { display: grid; grid-template-columns: repeat(4, 1fr); gap: 1px; background: var(--line-soft); }
@media (max-width: 760px) { .stats-in { grid-template-columns: repeat(2, 1fr); } }
.stat {
  background: var(--surface);
  padding: clamp(1.4rem, 1rem + 1.6vw, 2.4rem) clamp(1rem, .6rem + 1.4vw, 2rem);
  display: flex; flex-direction: column; gap: .35rem;
}
.stat-n {
  font-family: var(--display); font-size: var(--step-3); font-weight: 700;
  letter-spacing: -.03em; line-height: 1; font-variant-numeric: tabular-nums;
}
.stat-n small { font-size: .5em; color: var(--accent); vertical-align: super; letter-spacing: 0; }
.stat-l { font-size: var(--step--1); color: var(--ink-3); line-height: 1.45; }

/* ============================================================
   CABECALHO DE SECAO
   ============================================================ */
.head { display: flex; flex-direction: column; gap: 1.1rem; margin-bottom: clamp(2.2rem, 1.4rem + 2.4vw, 3.8rem); }
.head h2 { font-size: var(--step-3); max-width: 24ch; }

/* ============================================================
   TRES FORMACOES
   ============================================================ */
.bridge {
  display: grid; grid-template-columns: repeat(3, 1fr);
  gap: 1px; background: var(--line-soft);
  border: 1px solid var(--line-soft); border-radius: 3px; overflow: hidden;
}
@media (max-width: 820px) { .bridge { grid-template-columns: 1fr; } }
.pillar { background: var(--surface); padding: clamp(1.5rem, 1rem + 1.6vw, 2.3rem); display: flex; flex-direction: column; gap: .85rem; }
.pillar-tag { font-family: var(--mono); font-size: var(--step--1); letter-spacing: .14em; text-transform: uppercase; }
.pillar:nth-child(1) .pillar-tag { color: var(--warm); }
.pillar:nth-child(2) .pillar-tag { color: var(--ink-3); }
.pillar:nth-child(3) .pillar-tag { color: var(--accent); }
.pillar h3 { font-size: var(--step-1); }
.pillar p { color: var(--ink-2); font-size: .97rem; }
.pillar ul { display: flex; flex-wrap: wrap; gap: .4rem; margin-top: auto; padding-top: .5rem; }
.pillar li {
  font-family: var(--mono); font-size: .72rem; letter-spacing: .04em;
  padding: .28rem .6rem; border: 1px solid var(--line); border-radius: 2px; color: var(--ink-3);
}

/* ============================================================
   SERVICOS
   ============================================================ */
.svc-grid { display: grid; grid-template-columns: repeat(6, 1fr); gap: clamp(.9rem, .5rem + 1vw, 1.4rem); }
.svc {
  grid-column: span 2;
  background: var(--surface);
  border: 1px solid var(--line-soft); border-radius: 3px;
  padding: clamp(1.4rem, 1rem + 1.4vw, 2rem);
  display: flex; flex-direction: column; gap: .9rem;
  transition: border-color .25s, transform .25s, box-shadow .25s;
}
.svc:hover { border-color: var(--accent-edge); transform: translateY(-3px); box-shadow: var(--shadow-lift); }
.svc-lead { grid-column: span 3; }
@media (max-width: 980px) {
  .svc-grid { grid-template-columns: repeat(2, 1fr); }
  .svc, .svc-lead { grid-column: span 1; }
}
@media (max-width: 620px) { .svc-grid { grid-template-columns: 1fr; } }
.svc-top { display: flex; align-items: baseline; justify-content: space-between; gap: 1rem; }
.svc-kind {
  font-family: var(--mono); font-size: .7rem;
  letter-spacing: .14em; text-transform: uppercase; color: var(--ink-3);
  padding: .22rem .5rem; border: 1px solid var(--line); border-radius: 2px;
}
.svc h3 { font-size: var(--step-1); }
.svc-lead h3 { font-size: var(--step-2); }
.svc-p { color: var(--ink-2); font-size: .97rem; }
.svc ul { display: flex; flex-direction: column; gap: .5rem; margin-top: auto; padding-top: .6rem; border-top: 1px dashed var(--line); }
.svc li { font-size: .9rem; color: var(--ink-2); display: flex; gap: .6rem; align-items: flex-start; line-height: 1.45; }
.svc li::before { content: ""; flex: none; width: 5px; height: 5px; margin-top: .55em; background: var(--accent); border-radius: 50%; }
.svc-lead { border-color: var(--accent-edge); background: linear-gradient(165deg, var(--accent-wash), transparent 55%), var(--surface); }
.svc-clinic { border-color: var(--warm-edge); background: linear-gradient(165deg, var(--warm-wash), transparent 55%), var(--surface); }
.svc-clinic:hover { border-color: var(--warm); }
.svc-clinic li::before { background: var(--warm); }
.svc-clinic .svc-kind { color: var(--warm); border-color: var(--warm-edge); }
.svc-site {
  font-family: var(--mono); font-size: .78rem; color: var(--accent);
  letter-spacing: .04em; display: inline-flex; align-items: center; gap: .45rem;
  border-bottom: 1px solid var(--accent-edge);
  align-self: flex-start; padding-bottom: 2px; transition: border-color .2s;
}
.svc-site:hover { border-bottom-color: var(--accent); }
.svc-clinic .svc-site { color: var(--warm); border-bottom-color: var(--warm-edge); }
.svc-clinic .svc-site:hover { border-bottom-color: var(--warm); }
.svc-site svg { width: 13px; height: 13px; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }

/* ============================================================
   TECNOLOGIA E IA
   ============================================================ */
.tech { background: var(--surface); border-block: 1px solid var(--line-soft); }
.tech-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: clamp(.9rem, .5rem + 1vw, 1.4rem); }
@media (max-width: 780px) { .tech-grid { grid-template-columns: 1fr; } }
.tcard {
  background: var(--ground);
  border: 1px solid var(--line-soft); border-radius: 3px;
  padding: clamp(1.4rem, 1rem + 1.4vw, 2.1rem);
  display: flex; flex-direction: column; gap: .8rem;
  transition: border-color .25s, transform .25s;
}
.tcard:hover { border-color: var(--accent-edge); transform: translateY(-3px); }
.tcard-icon {
  width: 34px; height: 34px; display: grid; place-items: center;
  border: 1px solid var(--accent-edge); border-radius: 3px; background: var(--accent-wash);
}
.tcard-icon svg { width: 18px; height: 18px; fill: none; stroke: var(--accent); stroke-width: 1.5; stroke-linecap: round; stroke-linejoin: round; }
.tcard h3 { font-size: var(--step-1); }
.tcard p { font-size: .95rem; color: var(--ink-2); }
.tech-flow {
  display: flex; flex-wrap: wrap; align-items: center; gap: .6rem 1rem;
  margin-top: clamp(1.6rem, 1rem + 2vw, 2.6rem);
  padding-top: clamp(1.6rem, 1rem + 2vw, 2.2rem);
  border-top: 1px solid var(--line-soft);
  font-family: var(--mono); font-size: var(--step--1);
  color: var(--ink-3); letter-spacing: .06em; text-transform: uppercase;
}
.tech-flow b { color: var(--ink); font-weight: 400; }
.tech-flow i { color: var(--accent); font-style: normal; }

/* ============================================================
   METODO
   ============================================================ */
.method {
  display: grid; grid-template-columns: repeat(4, 1fr);
  gap: 1px; background: var(--line-soft);
  border: 1px solid var(--line-soft); border-radius: 3px; overflow: hidden;
}
@media (max-width: 860px) { .method { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 520px) { .method { grid-template-columns: 1fr; } }
.step { background: var(--surface); padding: clamp(1.4rem, 1rem + 1.4vw, 2.1rem); display: flex; flex-direction: column; gap: .7rem; }
.step-n { font-family: var(--mono); font-size: var(--step--1); color: var(--accent); letter-spacing: .1em; }
.step h3 { font-size: var(--step-1); }
.step p { font-size: .93rem; color: var(--ink-2); }

/* ============================================================
   CASES
   ============================================================ */
.cases { display: grid; grid-template-columns: repeat(3, 1fr); gap: clamp(.9rem, .5rem + 1vw, 1.4rem); }
@media (max-width: 940px) { .cases { grid-template-columns: 1fr; } }
.case {
  background: var(--surface);
  border: 1px solid var(--line-soft); border-radius: 3px;
  padding: clamp(1.5rem, 1rem + 1.4vw, 2.1rem);
  display: flex; flex-direction: column; gap: 1rem;
  transition: border-color .25s, transform .25s;
}
.case:hover { border-color: var(--accent-edge); transform: translateY(-3px); }
.case-sector { font-family: var(--mono); font-size: .7rem; letter-spacing: .14em; text-transform: uppercase; color: var(--ink-3); }
.case-metric { display: flex; align-items: baseline; gap: .5rem; }
.case-n {
  font-family: var(--display); font-weight: 700;
  font-size: clamp(2.4rem, 1.8rem + 2.4vw, 3.6rem);
  line-height: .9; letter-spacing: -.04em;
  color: var(--accent); font-variant-numeric: tabular-nums;
}
.case-u { font-family: var(--mono); font-size: 1rem; color: var(--accent); }
.case-what { font-family: var(--display); font-size: var(--step-1); font-weight: 700; }
.case-rows { display: flex; flex-direction: column; gap: .8rem; padding-top: .3rem; border-top: 1px dashed var(--line); }
.case-row { display: grid; grid-template-columns: 5.2rem 1fr; gap: .8rem; font-size: .9rem; line-height: 1.5; }
.case-row dt { font-family: var(--mono); font-size: .7rem; letter-spacing: .1em; text-transform: uppercase; color: var(--ink-3); padding-top: .25em; }
.case-row dd { color: var(--ink-2); }
.case-note { margin-top: 1.4rem; font-family: var(--mono); font-size: .76rem; color: var(--ink-3); letter-spacing: .04em; }

/* ============================================================
   TRAJETORIA
   ============================================================ */
.tl { position: relative; padding-left: clamp(1.2rem, .4rem + 2.4vw, 2.6rem); }
.tl::before {
  content: ""; position: absolute; left: 0; top: .6rem; bottom: .6rem; width: 1px;
  background: linear-gradient(180deg, var(--accent), var(--line) 22%, var(--line) 80%, transparent);
}
.job {
  position: relative;
  display: grid; grid-template-columns: 9rem minmax(0, 1fr);
  gap: clamp(.6rem, .2rem + 1.6vw, 2.2rem);
  padding-block: clamp(1.1rem, .8rem + 1vw, 1.7rem);
  border-bottom: 1px solid var(--line-soft);
}
.job:last-child { border-bottom: 0; }
@media (max-width: 720px) { .job { grid-template-columns: 1fr; gap: .5rem; } }
.job::before {
  content: ""; position: absolute;
  left: calc(clamp(1.2rem, .4rem + 2.4vw, 2.6rem) * -1);
  top: clamp(1.5rem, 1.2rem + 1vw, 2.1rem);
  width: 7px; height: 7px; margin-left: -3px;
  border-radius: 50%; background: var(--ground); border: 1px solid var(--ink-3);
}
.job.now::before { background: var(--accent); border-color: var(--accent); box-shadow: 0 0 0 4px var(--accent-wash); }
.job-when {
  font-family: var(--mono); font-size: var(--step--1);
  color: var(--ink-3); font-variant-numeric: tabular-nums;
  padding-top: .25rem; line-height: 1.5;
}
.job-when b { display: block; color: var(--ink-2); font-weight: 400; }
.job h3 { font-size: var(--step-1); margin-bottom: .15rem; }
.job-org { color: var(--ink-2); font-size: .95rem; margin-bottom: .7rem; }
.job-org strong { color: var(--ink); font-weight: 600; }
.chips { display: flex; flex-wrap: wrap; gap: .35rem; }
.chips span { font-family: var(--mono); font-size: .71rem; padding: .22rem .55rem; border: 1px solid var(--line); border-radius: 2px; color: var(--ink-3); }
.job.now .chips span { border-color: var(--accent-edge); color: var(--accent); }

/* ============================================================
   GALERIA
   ============================================================ */
.gallery { display: grid; grid-template-columns: repeat(3, 1fr); gap: clamp(.7rem, .4rem + 1vw, 1.1rem); }
@media (max-width: 860px) { .gallery { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 520px) { .gallery { grid-template-columns: 1fr; } }
.shot {
  aspect-ratio: 4 / 3;
  border: 1px solid var(--line-soft); border-radius: 3px;
  background: linear-gradient(150deg, var(--accent-wash), transparent 62%), var(--surface);
  overflow: hidden; display: grid; place-items: center;
}
.shot img { width: 100%; height: 100%; object-fit: cover; display: block; }
.shot-empty { display: flex; flex-direction: column; align-items: center; gap: .7rem; padding: 1.2rem; text-align: center; }
.shot-empty svg { width: 26px; height: 26px; stroke: var(--ink-3); fill: none; stroke-width: 1.2; opacity: .8; }
.shot-empty span { font-family: var(--mono); font-size: .74rem; letter-spacing: .08em; color: var(--ink-3); line-height: 1.5; }

/* ============================================================
   FORMACAO
   ============================================================ */
.creds { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: clamp(1.6rem, 1rem + 3vw, 4rem); }
@media (max-width: 820px) { .creds { grid-template-columns: 1fr; } }
.cred-list { display: flex; flex-direction: column; gap: 1rem; }
.cred { display: flex; gap: 1rem; align-items: baseline; padding-bottom: 1rem; border-bottom: 1px solid var(--line-soft); }
.cred:last-child { border-bottom: 0; padding-bottom: 0; }
.cred-yr { font-family: var(--mono); font-size: var(--step--1); color: var(--ink-3); flex: none; width: 6.4rem; font-variant-numeric: tabular-nums; }
.cred-t { font-weight: 600; font-size: .98rem; }
.cred-s { color: var(--ink-3); font-size: .9rem; }
.certs { display: flex; flex-wrap: wrap; gap: .5rem; }
.certs span { font-size: .86rem; padding: .45rem .8rem; border: 1px solid var(--line); border-radius: 2px; color: var(--ink-2); background: var(--surface); }
.langs { display: flex; flex-direction: column; gap: .8rem; margin-top: 1.6rem; }
.lang { display: grid; grid-template-columns: 7rem 1fr auto; gap: 1rem; align-items: center; font-size: .92rem; }
.lang-bar { height: 3px; background: var(--line); border-radius: 2px; overflow: hidden; }
.lang-bar i { display: block; height: 100%; background: var(--accent); }
.lang-lv { font-family: var(--mono); font-size: .74rem; color: var(--ink-3); letter-spacing: .06em; }

/* ============================================================
   CONTATO
   ============================================================ */
.contact { background: var(--surface); border-top: 1px solid var(--line-soft); }
.contact-grid { display: grid; grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr); gap: clamp(2rem, 1rem + 4vw, 5rem); align-items: start; }
@media (max-width: 860px) { .contact-grid { grid-template-columns: 1fr; } }
.contact h2 { font-size: var(--step-3); }
.direct { display: flex; flex-direction: column; gap: .7rem; align-self: stretch; padding-top: .8rem; }
.direct a {
  display: flex; align-items: center; gap: .85rem; padding: .9rem 1.1rem;
  border: 1px solid var(--line); border-radius: 3px; background: var(--ground);
  transition: border-color .2s, transform .2s;
}
.direct a:hover { border-color: var(--accent); transform: translateX(3px); }
.direct svg { width: 19px; height: 19px; flex: none; stroke: var(--accent); fill: none; stroke-width: 1.6; stroke-linecap: round; stroke-linejoin: round; }
.direct b { display: block; font-size: .95rem; font-weight: 600; }
.direct small { display: block; color: var(--ink-3); font-family: var(--mono); font-size: .78rem; }

form { display: flex; flex-direction: column; gap: 1rem; }
.field { display: flex; flex-direction: column; gap: .4rem; }
.field label { font-family: var(--mono); font-size: .74rem; letter-spacing: .12em; text-transform: uppercase; color: var(--ink-3); }
.field input, .field select, .field textarea {
  font-family: var(--body); font-size: .95rem; color: var(--ink);
  background: var(--ground); border: 1px solid var(--line); border-radius: 3px;
  padding: .75rem .9rem; width: 100%; transition: border-color .2s;
}
.field textarea { resize: vertical; min-height: 110px; }
.field input:focus, .field select:focus, .field textarea:focus { border-color: var(--accent); outline: none; }
.field-row { display: grid; grid-template-columns: 1fr 1fr; gap: 1rem; }
@media (max-width: 560px) { .field-row { grid-template-columns: 1fr; } }
.form-note { font-size: .82rem; color: var(--ink-3); line-height: 1.5; }

/* ============================================================
   RODAPE
   ============================================================ */
.foot {
  border-top: 1px solid var(--line-soft); padding-block: 2.2rem;
  display: flex; flex-wrap: wrap; gap: 1rem 2rem;
  align-items: center; justify-content: space-between;
  font-family: var(--mono); font-size: .78rem; color: var(--ink-3);
}
.foot a:hover { color: var(--accent); }

/* ============================================================
   REVELACAO NO SCROLL
   ============================================================ */
.rv { opacity: 0; transform: translateY(14px); transition: opacity .7s cubic-bezier(.22,.8,.3,1), transform .7s cubic-bezier(.22,.8,.3,1); }
.rv.in { opacity: 1; transform: none; }

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after {
    animation-duration: .01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: .01ms !important;
  }
  .rv { opacity: 1; transform: none; }
  .pulse-rule path { stroke-dashoffset: 0; }
}

/* ============================================================
   IMPRESSAO. Gera um PDF limpo direto do navegador.
   ============================================================ */
@media print {
  :root { --ground: #fff; --surface: #fff; --ink: #000; --ink-2: #222; --ink-3: #555;
          --line: #bbb; --line-soft: #ddd; --accent: #06564a; --warm: #8a3f22; }
  .nav, .theme-btn, .hero-cta, form, .rv { position: static; }
  .nav, .hero-cta, form { display: none; }
  .rv { opacity: 1; transform: none; }
  .band { padding-block: 1.4rem; }
  .svc, .case, .tcard, .pillar, .step { break-inside: avoid; }
  a[href^="http"]::after { content: " (" attr(href) ")"; font-size: .7em; color: #555; }
}
