/* Wireframe hi-fi · ALL LIFE INSTITUTE
   DESIGN SYSTEM 3.0 aplicado sobre a estrutura lo-fi.
   Mesmas variáveis CSS para herdar via cascade nos <style> por página.
*/

/* ──────────────────────────── fontes oficiais DS 3.0 ─────────────────────────── */
@font-face {
  font-family: "ABC Monument Grotesk";
  src: url("assets/fonts/MonumentGrotesk-Heavy.otf") format("opentype");
  font-weight: 800;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: "ABC Simon Mono";
  src: url("assets/fonts/SimonMono-Light.woff2") format("woff2"),
       url("assets/fonts/SimonMono-Light.woff") format("woff");
  font-weight: 400;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: "ABC Simon Mono";
  src: url("assets/fonts/SimonMono-Medium.woff2") format("woff2"),
       url("assets/fonts/SimonMono-Medium.woff") format("woff");
  font-weight: 500;
  font-style: normal;
  font-display: swap;
}

/* ──────────────────────────── tokens DS 3.0 mapeados ─────────────────────────── */
:root {
  /* paleta oficial DS 3.0 */
  --white-paper: #F8F7F3;
  --black: #333333;
  --dark-green: #585C3B;
  --nature-green: #899064;
  --terracota: #B46A55;
  --brown: #BF9474;
  --accent-strong: #8C4E3F;

  /* tints superficiais */
  --tint-arruda:  #F5EFEA;
  --tint-camomila:#F1F1EA;
  --tint-calendula:#F3F3E8;
  --tint-palo:    #F5EFE7;

  /* aliases que o lo-fi e os <style> por página consomem */
  --bg:           var(--white-paper);
  --paper:        #FCFBF7;
  --ink:          var(--black);
  --ink-soft:     #525252;
  --ink-faint:    #6B6B6B;
  --rule:         rgba(51,51,51,.12);
  --rule-strong:  rgba(51,51,51,.24);
  --accent:       var(--terracota);
  --accent-soft:  var(--tint-arruda);
  --note-bg:      var(--tint-camomila);
  --note-rule:    rgba(51,51,51,.24);

  --surface:      #FCFBF7;
  --surface-deep: #EFEDE5;

  /* espaçamento */
  --max-width: 1440px;
  --pad-x: clamp(28px, 5vw, 80px);

  /* tipografia */
  --font-display: "ABC Monument Grotesk", Helvetica, Arial, sans-serif;
  --font-body:    "Helvetica Neue", Helvetica, Arial, sans-serif;
  --font-mono:    "ABC Simon Mono", "SF Mono", ui-monospace, Menlo, Courier, monospace;

  --ease-out: cubic-bezier(.16,1,.3,1);
  --img-filter: grayscale(.18) contrast(1.04) saturate(.95);
}

/* ──────────────────────────── reset ─────────────────────────── */
* { box-sizing: border-box; margin: 0; padding: 0; }

html { scroll-behavior: smooth; -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; text-rendering: optimizeLegibility; }

html, body {
  background: var(--bg);
  color: var(--ink);
  font-family: var(--font-body);
  font-size: 15px;
  line-height: 1.55;
}

a { color: inherit; text-decoration: none; }
img { max-width: 100%; display: block; }
ul { list-style: none; }
::selection { background: var(--ink); color: var(--white-paper); }

/* ──────────────────────────── container (sem chrome de wireframe) ─────────────────────────── */
.wf-page {
  width: 100%;
  margin: 0 auto;
  background: var(--white-paper);
}

/* wf-bar/wf-pagehead foram removidos do HTML; resíduo legado abaixo só por compat */
.wf-pagehead, .wf-bar { display: none !important; }
.wf-pagehead-placeholder {
  display: flex;
  gap: 24px;
  margin-top: 10px;
  font-family: var(--font-mono);
  font-size: 11px;
  text-transform: uppercase;
  letter-spacing: 0.18em;
  color: var(--ink-faint);
  flex-wrap: wrap;
}

/* ──────────────────────────── header simulado do site ─────────────────────────── */
.site-header {
  display: flex !important;
  align-items: center !important;
  justify-content: space-between !important;
  padding: 18px 32px !important;
  border-bottom: 1px solid var(--ink) !important;
  background: var(--white-paper);
  font-family: var(--font-mono) !important;
  font-size: 10.5px !important;
  text-transform: uppercase !important;
  letter-spacing: 0.16em !important;
  color: var(--ink-faint) !important;
  gap: 18px !important;
  flex-wrap: nowrap;
}
.site-header .logo {
  display: flex !important;
  align-items: center !important;
  gap: 0 !important;
  flex: none;
}
.site-header .logo .symbol {
  width: 132px !important;
  height: 32px !important;
  border-radius: 0 !important;
  background: url("assets/logos/horizontal-terracota.png") no-repeat left center / contain !important;
  position: static !important;
  flex: none;
  border: none !important;
}
.site-header .logo .symbol::after { display: none !important; }
.site-header .logo .wordmark { display: none !important; }
.site-header nav {
  display: flex !important;
  gap: 18px !important;
  font-size: 10px !important;
  letter-spacing: 0.16em !important;
  flex-wrap: wrap;
}
.site-header nav span { color: var(--ink-soft); white-space: nowrap; }
.site-header .cta {
  border: 1.5px solid var(--ink) !important;
  padding: 9px 16px !important;
  color: var(--ink) !important;
  font-family: var(--font-mono) !important;
  font-size: 10px !important;
  letter-spacing: 0.18em !important;
  text-transform: uppercase !important;
  font-weight: 500 !important;
  white-space: nowrap;
  transition: background .25s var(--ease-out), color .25s var(--ease-out);
}
.site-header .cta:hover { background: var(--ink) !important; color: var(--white-paper) !important; }

/* responsivo: nav esconde abaixo de 1100px */
@media (max-width: 1100px) {
  .site-header nav { display: none !important; }
}

/* ──────────────────────────── bloco genérico (lo-fi keeps defesa column) ─────────────────────────── */
.block {
  display: grid;
  grid-template-columns: 1fr 320px;
  gap: 0;
  border-bottom: 1px solid var(--rule);
}
.block.full,
.block:has(> .block-content:only-child) {
  grid-template-columns: 1fr;
}

.block-content {
  padding: 48px 40px;
  border-right: 1px solid var(--rule);
  position: relative;
}
.block.full .block-content,
.block:has(> .block-content:only-child) .block-content { border-right: none; }

.block-content .block-num {
  position: absolute;
  top: 16px;
  left: 18px;
  font-family: var(--font-mono);
  font-size: 10px;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--ink-faint);
  font-weight: 500;
}
.block-content .block-name {
  font-family: var(--font-mono);
  font-size: 11px;
  text-transform: uppercase;
  letter-spacing: 0.2em;
  color: var(--accent-strong);
  margin-bottom: 14px;
  padding-top: 14px;
  font-weight: 500;
}
.block-content .layout-note {
  font-family: var(--font-mono);
  font-size: 11px;
  color: var(--ink-faint);
  background: var(--surface);
  border: 1px solid var(--rule);
  padding: 10px 14px;
  margin: 18px 0;
  font-style: normal;
  letter-spacing: 0.04em;
}

/* ──────────────────────────── tipografia editorial ─────────────────────────── */
.copy-eyebrow {
  font-family: var(--font-mono);
  font-size: 11px;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: var(--ink-faint);
  margin-bottom: 14px;
  display: block;
  font-weight: 500;
}

.copy-h1 {
  font-family: var(--font-display);
  font-weight: 800;
  font-size: clamp(40px, 5.4vw, 64px);
  line-height: 0.98;
  letter-spacing: -0.028em;
  margin-bottom: 22px;
}
.copy-h2 {
  font-family: var(--font-display);
  font-weight: 800;
  font-size: clamp(30px, 3.8vw, 44px);
  line-height: 1.02;
  letter-spacing: -0.022em;
  margin-bottom: 16px;
}
.copy-h3 {
  font-family: var(--font-display);
  font-weight: 800;
  font-size: clamp(22px, 2.4vw, 28px);
  line-height: 1.1;
  letter-spacing: -0.015em;
  margin-bottom: 12px;
}

.copy-lead {
  font-size: clamp(16px, 1.3vw, 18px);
  line-height: 1.55;
  color: var(--ink-soft);
  margin-bottom: 20px;
  max-width: 60ch;
  font-family: var(--font-body);
}
.copy-body {
  font-size: 15px;
  line-height: 1.65;
  color: var(--ink-soft);
  margin-bottom: 14px;
  max-width: 64ch;
  font-family: var(--font-body);
}
.copy-body p { margin-bottom: 12px; }

.copy-cta {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  background: var(--ink);
  color: var(--white-paper);
  padding: 14px 26px;
  font-family: var(--font-mono);
  font-size: 11px;
  text-transform: uppercase;
  letter-spacing: 0.2em;
  font-weight: 500;
  border: 1.5px solid var(--ink);
  transition: all .25s var(--ease-out);
}
.copy-cta:hover { background: var(--accent-strong); border-color: var(--accent-strong); }
.copy-cta.outline {
  background: transparent;
  color: var(--ink);
}
.copy-cta.outline:hover { background: var(--ink); color: var(--white-paper); }

.copy-quote {
  font-family: var(--font-display);
  font-weight: 800;
  font-size: clamp(24px, 2.8vw, 32px);
  line-height: 1.15;
  letter-spacing: -0.018em;
  color: var(--ink);
  border-left: 2px solid var(--terracota);
  padding-left: 22px;
  margin: 28px 0;
  max-width: 52ch;
}

/* ──────────────────────────── coluna de defesa lateral ─────────────────────────── */
.defense {
  background: var(--tint-camomila);
  padding: 28px 26px;
  font-size: 12.5px;
  line-height: 1.6;
  color: var(--ink-soft);
  border-left: 3px solid var(--accent-strong);
}
.defense .defense-label {
  font-family: var(--font-mono);
  font-size: 10px;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--accent-strong);
  display: block;
  margin-bottom: 10px;
  font-weight: 500;
}
.defense .defense-title {
  font-family: var(--font-display);
  font-weight: 800;
  font-size: 15px;
  margin-bottom: 8px;
  color: var(--ink);
  letter-spacing: -0.008em;
}

/* ──────────────────────────── cards ─────────────────────────── */
.card-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
  gap: 0;
  margin: 24px 0;
  border-top: 1px solid var(--ink);
  border-left: 1px solid var(--ink);
}
.card-grid .card {
  border-right: 1px solid var(--ink);
  border-bottom: 1px solid var(--ink);
  background: var(--surface);
}

.card {
  background: var(--surface);
  border-top: 3px solid var(--accent-strong);
  padding: 24px;
  font-size: 13.5px;
  display: flex;
  flex-direction: column;
  gap: 8px;
  transition: transform .25s var(--ease-out);
}
.card:hover { transform: translateY(-2px); }
.card .card-eyebrow {
  font-family: var(--font-mono);
  font-size: 10.5px;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--accent-strong);
  margin-bottom: 6px;
  font-weight: 600;
}
.card .card-title {
  font-family: var(--font-display);
  font-weight: 800;
  font-size: 18px;
  margin-bottom: 6px;
  line-height: 1.15;
  letter-spacing: -0.012em;
}
.card .card-body {
  font-size: 13px;
  color: var(--ink-soft);
  line-height: 1.55;
}
.card .card-image-placeholder {
  background: var(--tint-arruda);
  background-image:
    radial-gradient(circle at 80% 20%, rgba(180,106,85,.22) 0%, transparent 55%),
    radial-gradient(circle at 20% 90%, rgba(191,148,116,.28) 0%, transparent 50%);
  height: 120px;
  margin-bottom: 14px;
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--accent-strong);
  font-family: var(--font-mono);
  font-size: 10px;
  text-transform: uppercase;
  letter-spacing: 0.18em;
  font-weight: 500;
}

/* ──────────────────────────── placeholders de imagem ─────────────────────────── */
.image-placeholder {
  background:
    radial-gradient(ellipse at 30% 25%, rgba(180,106,85,.45) 0%, transparent 60%),
    radial-gradient(ellipse at 75% 75%, rgba(88,92,59,.35) 0%, transparent 55%),
    linear-gradient(135deg, var(--brown) 0%, var(--terracota) 55%, var(--accent-strong) 100%);
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--white-paper);
  font-family: var(--font-mono);
  font-size: 11px;
  text-transform: uppercase;
  letter-spacing: 0.22em;
  font-weight: 500;
  border: 1px solid var(--ink);
  filter: var(--img-filter);
}

.image-placeholder.hero   { aspect-ratio: 21/9; margin-bottom: 24px; }
.image-placeholder.wide   { aspect-ratio: 21/9; margin: 24px 0; }
.image-placeholder.square { aspect-ratio: 1/1; }

/* ──────────────────────────── formulários ─────────────────────────── */
.form-mock {
  max-width: 520px;
  margin: 28px 0;
}
.form-mock label {
  display: block;
  font-family: var(--font-mono);
  font-size: 11px;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--ink-faint);
  margin-bottom: 8px;
  margin-top: 18px;
  font-weight: 500;
}
.form-mock input,
.form-mock textarea,
.form-mock select {
  width: 100%;
  padding: 14px 16px;
  border: 1.5px solid var(--ink);
  background: var(--white-paper);
  font-family: var(--font-body);
  font-size: 15px;
  color: var(--ink);
  outline: none;
  transition: border-color .2s var(--ease-out);
}
.form-mock input:focus,
.form-mock textarea:focus,
.form-mock select:focus { border-color: var(--accent-strong); }
.form-mock textarea { min-height: 110px; resize: vertical; }

/* ──────────────────────────── footer simulado ─────────────────────────── */
.site-footer {
  background: var(--ink);
  color: var(--white-paper);
  padding: 56px 40px 28px;
  font-size: 13px;
  line-height: 1.6;
  font-family: var(--font-body);
}
.site-footer .footer-cols {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 40px;
  margin-bottom: 40px;
}
.site-footer .footer-col-title {
  font-family: var(--font-mono);
  font-size: 10.5px;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: rgba(248,247,243,0.55);
  margin-bottom: 14px;
  font-weight: 500;
}
.site-footer ul { list-style: none; }
.site-footer li { margin-bottom: 8px; color: rgba(248,247,243,0.88); }
.site-footer a { color: rgba(248,247,243,0.88); text-decoration: none; transition: color .2s var(--ease-out); }
.site-footer a:hover { color: var(--terracota); }

.site-footer .footer-signature {
  border-top: 1px solid rgba(248,247,243,0.18);
  padding-top: 28px;
  display: flex;
  justify-content: space-between;
  align-items: end;
  gap: 24px;
  flex-wrap: wrap;
}
.site-footer .footer-signature .brand {
  display: inline-block;
  width: 180px;
  height: 40px;
  background: url("assets/logos/horizontal-branco.png") no-repeat left center / contain;
  text-indent: -9999px;
  overflow: hidden;
  white-space: nowrap;
  font-family: var(--font-display);
  font-weight: 800;
  font-size: 16px;
  letter-spacing: -0.01em;
}
.site-footer .footer-signature .descriptor {
  font-size: 13px;
  color: rgba(248,247,243,0.7);
  margin: 6px 0;
  font-family: var(--font-body);
}
.site-footer .footer-signature .tagline {
  font-family: var(--font-mono);
  font-size: 11px;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: rgba(248,247,243,0.7);
}
.site-footer .footer-legal {
  font-size: 10px;
  color: rgba(248,247,243,0.5);
  text-align: right;
  font-family: var(--font-mono);
  letter-spacing: 0.1em;
}

/* ──────────────────────────── index (dashboard de wireframes) ─────────────────────────── */
.index-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
  gap: 0;
  padding: 0 40px 24px;
  border-top: 1px solid var(--ink);
  border-left: 1px solid var(--ink);
  margin: 0 40px 8px;
}
.index-grid a { text-decoration: none; color: inherit; display: block; }

.index-card {
  background: var(--surface);
  border-right: 1px solid var(--ink);
  border-bottom: 1px solid var(--ink);
  padding: 26px 24px;
  transition: background .25s var(--ease-out), transform .25s var(--ease-out);
  display: flex;
  flex-direction: column;
  gap: 8px;
  min-height: 180px;
  height: 100%;
}
.index-card:hover { background: var(--white-paper); transform: translateY(-2px); }

.index-card .url {
  font-family: var(--font-mono);
  font-size: 10.5px;
  color: var(--accent-strong);
  margin-bottom: 6px;
  text-transform: uppercase;
  letter-spacing: 0.18em;
  font-weight: 600;
}
.index-card .title {
  font-family: var(--font-display);
  font-weight: 800;
  font-size: 19px;
  line-height: 1.1;
  margin-bottom: 6px;
  letter-spacing: -0.014em;
}
.index-card .obj {
  font-size: 13px;
  color: var(--ink-soft);
  line-height: 1.5;
  margin-bottom: auto;
}
.index-card .priority {
  display: inline-flex;
  align-self: flex-start;
  background: var(--accent-soft);
  color: var(--accent-strong);
  font-family: var(--font-mono);
  font-size: 9.5px;
  text-transform: uppercase;
  letter-spacing: 0.18em;
  padding: 4px 8px;
  margin-top: 14px;
  font-weight: 600;
}

.index-section {
  padding: 32px 40px 12px;
  font-family: var(--font-mono);
  font-size: 11px;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: var(--ink-faint);
  border-top: 1px solid var(--rule);
  margin-top: 0;
  font-weight: 500;
}
.index-section.first { border-top: none; padding-top: 36px; }
.index-section span { color: var(--accent-strong); }

/* ──────────────────────────── overrides para classes inline mais comuns ─────────────────────────── */

/* hero full-bleed dark (substitui gradient 3d3a36 → DS oliva escura) */
.full-bleed-image {
  background:
    radial-gradient(circle at 80% 20%, rgba(180,106,85,.22) 0%, transparent 55%),
    radial-gradient(circle at 20% 90%, rgba(191,148,116,.32) 0%, transparent 60%),
    var(--dark-green) !important;
  color: var(--white-paper) !important;
  font-family: var(--font-mono) !important;
  text-transform: none !important;
  letter-spacing: normal !important;
  padding: clamp(48px, 7vw, 96px) clamp(28px, 5vw, 80px) !important;
  text-align: center !important;
  align-items: center !important;
  justify-content: center !important;
  flex-direction: column !important;
}
.full-bleed-image .copy-eyebrow {
  color: rgba(248,247,243,0.72) !important;
  text-transform: uppercase !important;
  letter-spacing: 0.22em !important;
  font-family: var(--font-mono) !important;
  font-size: 11px !important;
}
.full-bleed-image h1,
.full-bleed-image .copy-h1 {
  color: var(--white-paper) !important;
  font-family: var(--font-display) !important;
  font-weight: 800 !important;
  font-size: clamp(40px, 6vw, 88px) !important;
  line-height: 0.98 !important;
  letter-spacing: -0.028em !important;
  text-transform: none !important;
  max-width: 18ch !important;
  text-align: center !important;
  margin: 18px auto !important;
}
.full-bleed-image > div:last-child {
  font-family: var(--font-mono) !important;
  font-size: 12px !important;
  letter-spacing: 0.22em !important;
  text-transform: uppercase !important;
  color: rgba(248,247,243,0.72) !important;
  max-width: 60ch;
  text-align: center;
}

/* synthesis block (citação grande) - DS oliva */
.synthesis-block {
  background: var(--dark-green) !important;
  color: var(--white-paper) !important;
  font-family: var(--font-body);
}
.synthesis-block .quote-mark { color: var(--terracota) !important; font-family: var(--font-display) !important; font-weight: 800; }
.synthesis-block .quote {
  font-family: var(--font-display) !important;
  font-style: normal !important;
  font-weight: 800 !important;
  letter-spacing: -0.022em;
}
.synthesis-block .author { color: rgba(248,247,243,0.7) !important; font-family: var(--font-mono) !important; letter-spacing: 0.22em; }

/* grid de frentes (cards de 5 colunas) */
.frentes-grid {
  border-top: 1px solid var(--ink) !important;
  border-left: 1px solid var(--ink);
}
.frente-card-link {
  border-right: 1px solid var(--ink) !important;
  border-bottom: 1px solid var(--ink) !important;
  background: var(--surface);
  transition: background .25s var(--ease-out), transform .25s var(--ease-out) !important;
}
.frente-card-link:hover { background: var(--white-paper) !important; transform: translateY(-2px); }
.frente-card {
  padding: 40px 28px !important;
  min-height: 300px !important;
  border-top: 3px solid var(--accent-strong);
}
.frente-card .env-num {
  font-family: var(--font-mono) !important;
  color: var(--accent-strong) !important;
  letter-spacing: 0.22em !important;
  font-weight: 600;
}
.frente-card .env-title {
  font-family: var(--font-display) !important;
  font-weight: 800 !important;
  font-size: 22px !important;
  letter-spacing: -0.014em !important;
}
.frente-card .env-body {
  font-family: var(--font-body);
  line-height: 1.55 !important;
  color: var(--ink-soft);
}
.frente-card .env-arrow {
  font-family: var(--font-mono) !important;
  color: var(--accent-strong) !important;
  letter-spacing: 0.22em !important;
  font-weight: 600;
}

/* gain block (alternating image/copy) */
.gain-block {
  border-top: 1px solid var(--ink) !important;
}
.gain-block .gain-image {
  background-color: var(--tint-arruda);
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
  color: var(--white-paper) !important;
  font-family: var(--font-mono) !important;
  letter-spacing: 0.18em !important;
  font-weight: 500;
  border-right: 1px solid var(--ink);
  filter: var(--img-filter);
  position: relative;
}
.gain-block .gain-image::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, transparent 50%, rgba(51,51,51,0.15) 100%);
  pointer-events: none;
}
.gain-block .gain-content { padding: 56px 48px !important; }
.gain-block .gain-eyebrow {
  font-family: var(--font-mono) !important;
  color: var(--accent-strong) !important;
  letter-spacing: 0.22em !important;
  font-weight: 600;
}
.gain-block .gain-title {
  font-family: var(--font-display) !important;
  font-weight: 800 !important;
  letter-spacing: -0.022em !important;
  line-height: 1.02 !important;
}
.gain-block .gain-body {
  font-family: var(--font-body);
  color: var(--ink-soft);
}
.gain-block .gain-link {
  font-family: var(--font-mono) !important;
  color: var(--accent-strong) !important;
  letter-spacing: 0.22em !important;
  font-weight: 600;
}

/* evidence block */
.evidence-block {
  border-top: 1px solid var(--ink) !important;
  border-left: 1px solid var(--ink);
}
.evidence-block .evidence {
  border-right: 1px solid var(--ink) !important;
  border-bottom: 1px solid var(--ink) !important;
  background: var(--surface);
  border-top: 3px solid var(--accent-strong);
}
.evidence-block .evidence-num {
  font-family: var(--font-mono) !important;
  color: var(--accent-strong) !important;
  letter-spacing: 0.22em !important;
  font-weight: 600;
}
.evidence-block .evidence-title {
  font-family: var(--font-display) !important;
  font-weight: 800 !important;
  letter-spacing: -0.014em !important;
}
.evidence-block .evidence-body {
  font-family: var(--font-body);
  color: var(--ink-soft);
}

/* theo block (retrato + bio) */
.theo-block { border-top: 1px solid var(--ink) !important; }
.theo-block .theo-portrait {
  background-color: var(--dark-green);
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
  color: rgba(248,247,243,.72) !important;
  font-family: var(--font-mono) !important;
  letter-spacing: 0.18em !important;
  font-weight: 500;
  border-right: 1px solid var(--ink);
  filter: var(--img-filter);
}
.theo-block .theo-content { padding: 64px 48px !important; }
.theo-block .formacoes-list li {
  border-bottom: 1px solid var(--rule) !important;
  padding: 12px 0 !important;
  font-family: var(--font-body);
  font-size: 14px;
  color: var(--ink);
}
.theo-block .formacoes-list li:before {
  content: "+ " !important;
  color: var(--terracota) !important;
  font-family: var(--font-mono) !important;
  font-weight: 600;
}

/* despertar block */
.despertar-block { background: var(--surface-deep) !important; border-top: 1px solid var(--ink); }

/* steps block (agendar) */
.steps-block {
  border-top: 1px solid var(--ink) !important;
  border-left: 1px solid var(--ink);
}
.steps-block .step {
  border-right: 1px solid var(--ink) !important;
  border-bottom: 1px solid var(--ink) !important;
  background: var(--surface);
  border-top: 3px solid var(--accent-strong);
  padding: 40px 32px !important;
}
.steps-block .step-num {
  font-family: var(--font-mono) !important;
  color: var(--accent-strong) !important;
  letter-spacing: 0.22em !important;
  font-weight: 600;
}
.steps-block .step-title {
  font-family: var(--font-display) !important;
  font-weight: 800 !important;
  letter-spacing: -0.014em !important;
}
.steps-block .step-body {
  font-family: var(--font-body);
  color: var(--ink-soft);
}

/* FAQ */
.faq-list { max-width: 780px; margin: 28px auto !important; }
.faq-item {
  border-top: 1px solid var(--rule) !important;
  padding: 26px 0 !important;
}
.faq-item:last-child { border-bottom: 1px solid var(--rule) !important; }
.faq-q {
  font-family: var(--font-display) !important;
  font-weight: 800 !important;
  font-size: 20px !important;
  letter-spacing: -0.014em !important;
  margin-bottom: 10px;
}
.faq-a {
  font-family: var(--font-body);
  font-size: 14.5px;
  color: var(--ink-soft);
  line-height: 1.65;
}

/* contact form block */
.contact-form-block { padding: 96px 40px !important; }
.contact-form-block h2 {
  font-family: var(--font-display) !important;
  font-weight: 800 !important;
  letter-spacing: -0.028em !important;
}
.contact-form-block .form-lead {
  font-family: var(--font-body);
  color: var(--ink-soft);
}
.form-row label {
  font-family: var(--font-mono) !important;
  letter-spacing: 0.18em !important;
  color: var(--ink-soft) !important;
  font-weight: 500;
}
.form-row input,
.form-row textarea,
.form-row select {
  border: 1.5px solid var(--ink) !important;
  background: var(--white-paper) !important;
  font-family: var(--font-body) !important;
  color: var(--ink);
  transition: border-color .2s var(--ease-out);
}
.form-row input:focus,
.form-row textarea:focus,
.form-row select:focus { border-color: var(--accent-strong) !important; outline: none; }

/* ──────────────────────────── focus-visible global (acessibilidade · ring terracota) ─────────────────────────── */
:focus-visible {
  outline: 2px solid var(--accent-strong);
  outline-offset: 3px;
  border-radius: 2px;
}
a:focus-visible,
button:focus-visible,
input:focus-visible,
textarea:focus-visible,
select:focus-visible,
.menu-toggle:focus-visible,
.copy-cta:focus-visible {
  outline: 2px solid var(--accent-strong);
  outline-offset: 3px;
}
.form-row input:focus-visible,
.form-row textarea:focus-visible,
.form-row select:focus-visible {
  outline: 2px solid var(--accent-strong);
  outline-offset: 2px;
  border-color: var(--accent-strong) !important;
}

/* skip-link (acessibilidade · teclado) */
.skip-link {
  position: absolute;
  left: -9999px;
  top: 0;
  background: var(--ink);
  color: var(--white-paper);
  padding: 12px 18px;
  font-family: var(--font-mono);
  font-size: 12px;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  z-index: 9999;
  text-decoration: none;
}
.skip-link:focus { left: 12px; top: 12px; }
.form-row .radio-item { font-family: var(--font-body) !important; }
.form-submit-block .submit-meta {
  font-family: var(--font-mono) !important;
  color: var(--ink-faint) !important;
  letter-spacing: 0.18em !important;
}
.form-submit-block .submit-meta a { color: var(--accent-strong) !important; font-weight: 600; }

/* dark "destaques" stripe sob o hero (cards de oferta no dark-green) */
[style*="background:#2d3a30"],
[style*="background: #2d3a30"] {
  background: var(--dark-green) !important;
}

/* page-specific badges that referenced #2d3a30 */
.wf-page [style*="#3d3a36"] { background: var(--dark-green) !important; }

/* ──────────────────────────── reveal cinematográfico ─────────────────────────── */
.reveal {
  opacity: 0;
  transform: translateY(40px);
  filter: blur(6px);
  transition: opacity 1s var(--ease-out), transform 1s var(--ease-out), filter 1s var(--ease-out);
  transition-delay: calc(var(--rd, 0) * 60ms);
  will-change: transform, opacity, filter;
}
.reveal.in { opacity: 1; transform: translateY(0); filter: blur(0); will-change: auto; }
@media (prefers-reduced-motion: reduce) { .reveal { opacity: 1; transform: none; filter: none; transition: none; } }

/* ──────────────────────────── responsivo · tablet ─────────────────────────── */
@media (max-width: 880px) {
  .site-header nav { display: none !important; }
  .site-header .location-pill { display: none !important; }
  .block { grid-template-columns: 1fr !important; }
  .block-content { border-right: none; border-bottom: 1px solid var(--rule); padding: 56px 28px !important; }
  .frentes-grid { grid-template-columns: 1fr 1fr !important; }
  .evidence-block { grid-template-columns: 1fr 1fr !important; }
  .steps-block { grid-template-columns: 1fr 1fr !important; }
  .theo-block { grid-template-columns: 1fr !important; }
  .gain-block { grid-template-columns: 1fr !important; }
  .gain-block .gain-image { min-height: 280px !important; aspect-ratio: 4/3; }
  .theo-block .theo-portrait { min-height: 360px !important; aspect-ratio: 4/3; }
  .site-footer .footer-cols { grid-template-columns: 1fr 1fr; gap: 24px !important; }
  .where-block { grid-template-columns: 1fr !important; }
  .where-block .where-image { min-height: 280px !important; aspect-ratio: 4/3; }
  .pillar-block { grid-template-columns: 1fr !important; }
  .pillar-block .pillar-image { min-height: 280px !important; aspect-ratio: 4/3; }
  .split-bio { grid-template-columns: 1fr !important; }
  .split-bio .portrait { min-height: 380px !important; aspect-ratio: 4/3; }
  .frentes-block { grid-template-columns: 1fr 1fr !important; }
  .formation-grid, .service-list, .includes-list { grid-template-columns: 1fr !important; }
  .essential-grid { grid-template-columns: 1fr 1fr !important; }
}

/* ──────────────────────────── responsivo · mobile ─────────────────────────── */
@media (max-width: 640px) {
  /* HEADER MOBILE — logo + CTA apenas, location pill escondida */
  .site-header {
    padding: 14px 20px !important;
    gap: 12px !important;
  }
  .site-header .logo .symbol {
    width: 110px !important;
    height: 26px !important;
  }
  .site-header .cta {
    padding: 8px 12px !important;
    font-size: 9.5px !important;
    letter-spacing: 0.12em !important;
  }

  /* heroes mobile */
  .full-bleed-image {
    padding: 56px 24px !important;
    aspect-ratio: auto !important;
    min-height: 70vh;
  }
  .full-bleed-image h1,
  .full-bleed-image .copy-h1 {
    font-size: clamp(36px, 11vw, 56px) !important;
    line-height: 0.98 !important;
    max-width: 100% !important;
    margin: 14px 0 !important;
  }
  .full-bleed-image .copy-eyebrow { font-size: 10px !important; letter-spacing: 0.18em !important; }
  .full-bleed-image > div:last-child { font-size: 10.5px !important; letter-spacing: 0.16em !important; }

  /* tipografia geral mobile */
  .copy-h1 { font-size: clamp(32px, 9vw, 44px) !important; line-height: 1.02 !important; }
  .copy-h2 { font-size: clamp(28px, 7.5vw, 36px) !important; line-height: 1.05 !important; }
  .copy-h3 { font-size: clamp(22px, 6vw, 28px) !important; }
  .copy-lead { font-size: 16px !important; line-height: 1.55 !important; }
  .copy-body { font-size: 14.5px !important; line-height: 1.6 !important; }

  /* block-content reduzido */
  .block-content { padding: 48px 24px !important; }

  /* grids 1-col mobile */
  .frentes-grid,
  .evidence-block,
  .steps-block,
  .frentes-block,
  .essential-grid,
  .specialized-grid,
  .channels-grid,
  .principles-block,
  .formation-grid,
  .compare-grid,
  .service-list,
  .tour-grid { grid-template-columns: 1fr !important; }

  /* tour-grid: aspect ratio 16/9 em mobile pra economizar scroll */
  .tour-grid .tour-item { aspect-ratio: 16/10 !important; padding: 20px !important; }
  .tour-item .tour-title { font-size: 19px !important; }

  /* footer */
  .site-footer { padding: 40px 24px 24px !important; }
  .site-footer .footer-cols { grid-template-columns: 1fr !important; gap: 28px !important; }
  .site-footer .footer-signature { flex-direction: column; align-items: flex-start; gap: 24px; }
  .site-footer .footer-legal { text-align: left !important; }

  /* manifesto */
  .manifesto-body { padding: 56px 24px !important; }
  .manifesto-body p { font-size: 19px !important; line-height: 1.45 !important; margin-bottom: 24px !important; }
  .manifesto-body p.opening { font-size: 26px !important; }
  .manifesto-body p.closing { font-size: 22px !important; }
  .manifesto-quote-block { padding: 64px 24px !important; }
  .manifesto-quote-block .quote { font-size: 26px !important; }

  /* synthesis block */
  .synthesis-block { padding: 64px 24px !important; }
  .synthesis-block .quote { font-size: 26px !important; line-height: 1.15 !important; }

  /* despertar */
  .despertar-block { padding: 56px 24px !important; }
  .despertar-grid { grid-template-columns: 1fr !important; gap: 28px !important; }

  /* gain block padding */
  .gain-block .gain-content { padding: 36px 24px !important; }
  .gain-block .gain-title { font-size: 28px !important; line-height: 1.05 !important; }

  /* theo block */
  .theo-block .theo-content { padding: 40px 24px !important; }

  /* encontro block */
  .encontro-block { grid-template-columns: 1fr !important; }
  .encontro-block .encontro-image { min-height: 280px !important; aspect-ratio: 4/3 !important; }
  .encontro-block .encontro-content { padding: 40px 24px !important; }

  /* form */
  .contact-form-block { padding: 56px 24px !important; }
  .contact-form-block h2 { font-size: 30px !important; }

  /* wf-page sem borda em mobile */
  .wf-page { border: none !important; margin: 0 !important; }

  /* index cards: stacks */
  .index-grid { grid-template-columns: 1fr !important; padding: 20px !important; }

  /* hide hero aspect-ratio inline (force min-height instead) */
  body { font-size: 15.5px; }
}

/* ──────────────────────────── tap targets mobile ─────────────────────────── */
@media (max-width: 880px) {
  .copy-cta, .smp-button, button {
    min-height: 44px;
    display: inline-flex;
    align-items: center;
  }
  a { -webkit-tap-highlight-color: rgba(140,78,63,.18); }
}

/* desabilita backdrop-filter no header mobile (performance) */
@media (max-width: 880px) {
  .site-header {
    backdrop-filter: none !important;
    -webkit-backdrop-filter: none !important;
    background: var(--white-paper) !important;
  }
}

/* ──────────────────────────── menu hamburger mobile (injetado via JS) ─────────────────────────── */
.menu-toggle {
  display: none;
  background: transparent;
  border: none;
  cursor: pointer;
  padding: 8px;
  margin-left: auto;
  font-family: var(--font-mono);
  color: var(--ink);
  font-size: 22px;
  line-height: 1;
  z-index: 200;
  width: 44px;
  height: 44px;
  align-items: center;
  justify-content: center;
}
.menu-toggle:hover { color: var(--accent-strong); }

@media (max-width: 880px) {
  .menu-toggle { display: inline-flex !important; }
  .site-header .cta { display: none !important; }

  /* menu overlay quando aberto */
  body.menu-open { overflow: hidden; }
  body.menu-open .site-header nav {
    display: flex !important;
    flex-direction: column !important;
    position: fixed;
    inset: 64px 0 0 0;
    background: var(--white-paper);
    padding: 32px 24px !important;
    z-index: 150;
    gap: 0 !important;
    border-top: 1px solid var(--ink);
    overflow-y: auto;
    align-items: stretch !important;
  }
  body.menu-open .site-header nav a {
    font-family: var(--font-display) !important;
    font-weight: 800;
    font-size: 28px !important;
    letter-spacing: -0.018em !important;
    color: var(--ink) !important;
    padding: 18px 0 !important;
    border-bottom: 1px solid var(--rule);
    text-transform: none !important;
    text-align: left !important;
    white-space: normal !important;
  }
  body.menu-open .site-header nav a:last-child { border-bottom: none; }
  body.menu-open .site-header nav::after {
    content: "Iniciar uma conversa →";
    display: block;
    margin-top: 32px;
    padding: 18px 24px;
    background: var(--ink);
    color: var(--white-paper);
    text-align: center;
    font-family: var(--font-mono);
    font-size: 12px;
    letter-spacing: 0.18em;
    text-transform: uppercase;
    font-weight: 500;
  }

  /* hamburger animado */
  body.menu-open .menu-toggle { color: var(--accent-strong); }
}

/* ──────────────────────────── temas de hero por pilar ─────────────────────────── */
/* default theme-oliva: dark-green com radiais sutis em terracota/brown */
.theme-oliva .full-bleed-image {
  background:
    radial-gradient(circle at 80% 20%, rgba(180,106,85,.22) 0%, transparent 55%),
    radial-gradient(circle at 20% 90%, rgba(191,148,116,.32) 0%, transparent 60%),
    var(--dark-green) !important;
}

/* theme-palo: cream com luz quente (longevidade & wellbeing, cuidado integrativo) */
.theme-palo .full-bleed-image {
  background:
    radial-gradient(circle at 75% 25%, rgba(140,78,63,.32) 0%, transparent 55%),
    radial-gradient(circle at 25% 80%, rgba(191,148,116,.42) 0%, transparent 55%),
    var(--tint-palo) !important;
  color: var(--ink) !important;
}
.theme-palo .full-bleed-image .copy-eyebrow { color: var(--accent-strong) !important; opacity: .9; }
.theme-palo .full-bleed-image h1,
.theme-palo .full-bleed-image .copy-h1 { color: var(--ink) !important; }
.theme-palo .full-bleed-image > div:last-child { color: var(--ink-soft) !important; }

/* theme-camomila: tom calmo (recuperação, saúde mental) */
.theme-camomila .full-bleed-image {
  background:
    radial-gradient(circle at 70% 30%, rgba(88,92,59,.28) 0%, transparent 55%),
    radial-gradient(circle at 25% 75%, rgba(137,144,100,.32) 0%, transparent 55%),
    var(--tint-camomila) !important;
  color: var(--ink) !important;
}
.theme-camomila .full-bleed-image .copy-eyebrow { color: var(--dark-green) !important; }
.theme-camomila .full-bleed-image h1,
.theme-camomila .full-bleed-image .copy-h1 { color: var(--dark-green) !important; }
.theme-camomila .full-bleed-image > div:last-child { color: var(--ink-soft) !important; }

/* theme-terra: vitalidade (performance, metabólica) */
.theme-terra .full-bleed-image {
  background:
    radial-gradient(ellipse at 30% 25%, rgba(248,247,243,.18) 0%, transparent 55%),
    radial-gradient(ellipse at 75% 75%, rgba(140,78,63,.5) 0%, transparent 50%),
    linear-gradient(135deg, var(--brown) 0%, var(--terracota) 65%, var(--accent-strong) 100%) !important;
  color: var(--white-paper) !important;
}
.theme-terra .full-bleed-image .copy-eyebrow { color: rgba(248,247,243,0.78) !important; }
.theme-terra .full-bleed-image h1,
.theme-terra .full-bleed-image .copy-h1 { color: var(--white-paper) !important; }

/* theme-arruda: delicado e sensorial (estética, capilar) */
.theme-arruda .full-bleed-image {
  background:
    radial-gradient(circle at 70% 30%, rgba(180,106,85,.42) 0%, transparent 55%),
    radial-gradient(circle at 25% 80%, rgba(140,78,63,.32) 0%, transparent 55%),
    var(--tint-arruda) !important;
  color: var(--ink) !important;
}
.theme-arruda .full-bleed-image .copy-eyebrow { color: var(--accent-strong) !important; }
.theme-arruda .full-bleed-image h1,
.theme-arruda .full-bleed-image .copy-h1 { color: var(--ink) !important; }

/* theme-calendula: produto, luz (apotheca, vivências, imersões) */
.theme-calendula .full-bleed-image {
  background:
    radial-gradient(circle at 70% 25%, rgba(88,92,59,.22) 0%, transparent 55%),
    radial-gradient(circle at 25% 80%, rgba(137,144,100,.34) 0%, transparent 55%),
    var(--tint-calendula) !important;
  color: var(--ink) !important;
}
.theme-calendula .full-bleed-image .copy-eyebrow { color: var(--dark-green) !important; }
.theme-calendula .full-bleed-image h1,
.theme-calendula .full-bleed-image .copy-h1 { color: var(--dark-green) !important; }

/* ──────────────────────────── area-hero · neutraliza tema quando há imagem ─────────────────────────── */
/* usado nas páginas /area-*. cada página declara apenas a imagem inline */
.full-bleed-image.area-hero {
  background-image: var(--area-hero-image, none) !important;
  background-size: cover !important;
  background-position: var(--area-hero-position, center 30%) !important;
  background-repeat: no-repeat !important;
  background-color: var(--dark-green) !important;
  aspect-ratio: 21/10 !important;
  padding: 80px 32px;
  text-align: center;
}
.full-bleed-image.area-hero::before {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(135deg, rgba(45,58,48,0.55) 0%, rgba(45,58,48,0.30) 45%, rgba(140,78,63,0.30) 100%);
  pointer-events: none;
  z-index: 0;
}
.full-bleed-image.area-hero { position: relative; overflow: hidden; }
.full-bleed-image.area-hero > * { position: relative; z-index: 1; }
.full-bleed-image.area-hero .copy-eyebrow { color: rgba(248,247,243,0.82) !important; opacity: 1 !important; text-shadow: 0 1px 6px rgba(0,0,0,0.45); }
.full-bleed-image.area-hero .copy-h1,
.full-bleed-image.area-hero h1 { color: #FCFBF7 !important; text-shadow: 0 2px 22px rgba(0,0,0,0.70), 0 1px 3px rgba(0,0,0,0.5); margin: 18px auto; max-width: 22ch; }
.full-bleed-image.area-hero .copy-tagline { color: rgba(248,247,243,0.92); text-shadow: 0 1px 8px rgba(0,0,0,0.5); font-family: var(--font-mono); font-size: 14px; letter-spacing: 0.2em; text-transform: uppercase; }
.full-bleed-image.area-hero .area-icon-badge img { filter: brightness(0) !important; }

/* ──────────────────────────── seções com tint (variação por bloco) ─────────────────────────── */
.section-tint-camomila { background: var(--tint-camomila) !important; }
.section-tint-arruda   { background: var(--tint-arruda)   !important; }
.section-tint-calendula{ background: var(--tint-calendula)!important; }
.section-tint-palo     { background: var(--tint-palo)     !important; }
.section-surface       { background: var(--surface-deep)  !important; }

/* aplicar tint sutil aos blocos "Apresentando" sem ofuscar o conteúdo */
.theme-oliva    .block.full + .block.full > .block-content[style*="text-align:center"] { background: transparent; }
.theme-palo     .block.full:nth-of-type(odd)  { background: var(--tint-palo); }
.theme-camomila .block.full:nth-of-type(odd)  { background: var(--tint-camomila); }
.theme-arruda   .block.full:nth-of-type(odd)  { background: var(--tint-arruda); }
.theme-calendula .block.full:nth-of-type(odd) { background: var(--tint-calendula); }

/* ──────────────────────────── placeholders de imagem · tratamento "compositivo" ─────────────────────────── */
/* alterna entre 4 composições de luz/cor pra parecer arte direcional, não wireframe */
.gain-image,
.theo-portrait,
.pillar-image,
.frente-image,
.encontro-image,
.image-placeholder,
.tour-item,
.day-image,
.item-image-zone {
  position: relative;
}
.gain-image,
.frente-image,
.encontro-image,
.theo-portrait,
.pillar-image,
.where-image {
  background-color: var(--tint-arruda);
  background-size: cover !important;
  background-position: center !important;
  background-repeat: no-repeat;
  color: var(--white-paper) !important;
  text-transform: uppercase;
  letter-spacing: 0.22em;
  font-size: 0 !important;
  font-family: var(--font-mono);
  filter: var(--img-filter);
  position: relative;
  overflow: hidden;
}
.gain-image::after,
.frente-image::after,
.encontro-image::after,
.theo-portrait::after,
.pillar-image::after,
.where-image::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(165deg, rgba(51,51,51,.18) 0%, rgba(140,78,63,.28) 100%);
  pointer-events: none;
}
/* fallback gradient quando não tem background-image inline */
.gain-image:not([style*="background-image"]),
.frente-image:not([style*="background-image"]),
.encontro-image:not([style*="background-image"]) {
  background-image:
    radial-gradient(ellipse at 30% 25%, rgba(180,106,85,.5) 0%, transparent 60%),
    radial-gradient(ellipse at 75% 75%, rgba(88,92,59,.42) 0%, transparent 55%),
    linear-gradient(135deg, var(--brown) 0%, var(--terracota) 55%, var(--accent-strong) 100%) !important;
}
.theo-portrait:not([style*="background-image"]),
.pillar-image:not([style*="background-image"]),
.where-image:not([style*="background-image"]) {
  background-image:
    radial-gradient(ellipse at 50% 35%, rgba(248,247,243,.18) 0%, transparent 60%),
    linear-gradient(165deg, var(--dark-green) 0%, #41462A 100%) !important;
}
.tour-item {
  background-color: var(--tint-arruda);
  background-size: cover !important;
  background-position: center !important;
  background-repeat: no-repeat;
  color: var(--white-paper) !important;
  position: relative;
  filter: var(--img-filter);
  overflow: hidden;
}
.tour-item::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, rgba(51,51,51,0) 35%, rgba(51,51,51,0.78) 100%);
  pointer-events: none;
}
.tour-item > * { position: relative; z-index: 1; }
.item-image-zone {
  background:
    radial-gradient(ellipse at 50% 30%, rgba(88,92,59,.32) 0%, transparent 60%),
    linear-gradient(160deg, var(--tint-calendula) 0%, var(--nature-green) 130%) !important;
  color: var(--dark-green) !important;
  filter: var(--img-filter);
}
.day-image {
  background:
    radial-gradient(ellipse at 35% 25%, rgba(248,247,243,.2) 0%, transparent 55%),
    radial-gradient(ellipse at 70% 75%, rgba(140,78,63,.45) 0%, transparent 50%),
    linear-gradient(150deg, var(--terracota) 0%, var(--accent-strong) 100%) !important;
  color: rgba(248,247,243,0.85) !important;
  filter: var(--img-filter);
}

/* placeholders sem children — apenas o background image, esconde qualquer texto residual */
.gain-image,
.theo-portrait,
.pillar-image,
.frente-image,
.encontro-image,
.image-placeholder,
.day-image,
.where-image {
  font-size: 0 !important;
}
/* tour-item: tem children visíveis com legenda sobre a imagem */
.tour-item {
  justify-content: flex-end !important;
}
.tour-item .tour-eyebrow {
  font-family: var(--font-mono) !important;
  font-size: 10.5px !important;
  letter-spacing: 0.22em !important;
  text-transform: uppercase !important;
  color: rgba(248,247,243,0.82) !important;
  margin-bottom: 8px !important;
  font-weight: 500;
}
.tour-item .tour-title {
  font-family: var(--font-display) !important;
  font-weight: 800 !important;
  font-size: 22px !important;
  line-height: 1.1 !important;
  letter-spacing: -0.014em !important;
  color: var(--white-paper) !important;
  margin-bottom: 8px !important;
  text-transform: none !important;
}
.tour-item .tour-body {
  font-family: var(--font-body) !important;
  font-size: 13px !important;
  line-height: 1.5 !important;
  color: rgba(248,247,243,0.92) !important;
  text-transform: none !important;
  letter-spacing: 0 !important;
}
/* item-image-zone do apotheca: também tem children visíveis, mas a imagem é o background */
.item-image-zone {
  background-size: cover !important;
  background-position: center !important;
  background-color: var(--tint-calendula) !important;
  filter: var(--img-filter);
  position: relative;
  font-size: 0 !important;
  overflow: hidden;
}
.item-image-zone::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, rgba(248,247,243,0) 50%, rgba(248,247,243,0.85) 100%);
}

/* ──────────────────────────── footer · contraste e respiro ─────────────────────────── */
.site-footer a:hover { color: var(--brown) !important; }
.site-footer .footer-cols {
  grid-template-columns: 1.6fr 1fr 1fr 1.2fr !important;
}
.site-footer .footer-signature .brand {
  width: 220px !important;
  height: 48px !important;
  margin-bottom: 14px !important;
}

/* ──────────────────────────── header sticky (final site only) ─────────────────────────── */
.site-header {
  position: sticky;
  top: 0;
  z-index: 100;
  background: var(--white-paper);
  backdrop-filter: saturate(1.4) blur(8px);
  -webkit-backdrop-filter: saturate(1.4) blur(8px);
  background: rgba(248,247,243,0.92);
}

/* ──────────────────────────── padronização de eyebrow ─────────────────────────── */
.copy-eyebrow { color: var(--ink-faint) !important; }
.full-bleed-image .copy-eyebrow,
.synthesis-block .copy-eyebrow,
.theo-block .theo-content .copy-eyebrow,
[class*="testimonial"] .copy-eyebrow { color: inherit !important; opacity: .7; }
.block-content > .copy-eyebrow { color: var(--accent-strong) !important; }


/* ──────────────────────────── hero com imagem CONCEPT VISUAL ─────────────────────────── */
/* override de cores quando o hero tem background-image (qualquer tema do body) */
.full-bleed-image[style*="concept/"] .copy-eyebrow,
.full-bleed-image[style*="concept/"] h1,
.full-bleed-image[style*="concept/"] .copy-h1 {
  color: var(--paper) !important;
  text-shadow: 0 1px 12px rgba(0,0,0,0.45);
}
.full-bleed-image[style*="concept/"] > div:last-child {
  color: rgba(246,245,241,0.92) !important;
  text-shadow: 0 1px 8px rgba(0,0,0,0.4);
}
.full-bleed-image[style*="concept/"] .copy-eyebrow {
  opacity: 0.85;
}

/* ──────────────────────────── contraste · terracota em fundos verde escuro ─────────────────────────── */
/* O accent #B46A55 sobre dark-green #2d3a30 dá ~1.8:1 (falha WCAG).
   Para contextos escuros, usar terracota-creme #E8C5A8 (~6:1) ou paper. */
:root {
  --accent-on-dark: #E8C5A8;
}

/* Sintese, filosofia, quote, final-cta, e blocos com fundo dark-green */
.synthesis-block .copy-eyebrow,
.synthesis-block .author,
.philosophy-block .copy-eyebrow,
.quote-block .quote-author,
.final-cta .copy-eyebrow,
.format-block .copy-eyebrow,
.format-block .label,
.theme-oliva .full-bleed-image .copy-eyebrow,
[style*="2d3a30"] .copy-eyebrow,
[style*="2d3a30"] .gain-eyebrow,
[style*="2d3a30"] .step-eyebrow,
[style*="2d3a30"] .evidence-num {
  color: var(--accent-on-dark) !important;
  opacity: 1;
}

/* Quote mark editorial */
.synthesis-block .quote-mark,
.quote-block .quote-mark {
  color: var(--accent-on-dark) !important;
  opacity: 0.55;
}

/* Numbers/stats em fundos dark */
[style*="2d3a30"] [style*="color:var(--accent)"] {
  color: var(--accent-on-dark) !important;
}

/* Arrow links em fundo dark */
[style*="2d3a30"] .copy-cta.outline {
  border-color: var(--paper) !important;
  color: var(--paper) !important;
}

/* ──────────────────────────── header unificado · logo horizontal ─────────────────────────── */
header.site-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 24px;
  padding: 14px 32px;
  border-bottom: 1px solid var(--rule);
  background: var(--paper);
  position: sticky;
  top: 0;
  z-index: 100;
}
@media (max-width: 880px) {
  header.site-header { padding: 12px 18px; gap: 12px; }
}

.site-logo {
  display: inline-flex;
  align-items: center;
  text-decoration: none;
  line-height: 0;
  flex-shrink: 0;
  transition: opacity 0.2s;
}
.site-logo:hover { opacity: 0.75; }
.site-logo img {
  height: 36px;
  width: auto;
  display: block;
  max-width: 100%;
}
@media (max-width: 880px) {
  .site-logo img { height: 28px; }
}

.site-nav {
  display: flex;
  align-items: center;
  gap: 22px;
  flex-wrap: nowrap;
}
.site-nav a {
  font-family: var(--font-mono);
  font-size: 11.5px;
  font-weight: 500;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--ink-soft);
  text-decoration: none;
  padding: 4px 0;
  border-bottom: 1.5px solid transparent;
  transition: color 0.2s, border-color 0.2s;
  white-space: nowrap;
}
.site-nav a:hover { color: var(--ink); }
.site-nav a[aria-current="page"] {
  color: var(--ink);
  border-bottom-color: var(--ink);
}
.site-nav a.nav-soon { opacity: 0.55; }

/* ──────────── Dropdown · Especialidades ──────────── */
.nav-dropdown { position: relative; display: inline-block; }
.nav-dropdown-toggle { display: inline-flex !important; align-items: center; gap: 5px; cursor: pointer; }
.nav-dropdown-toggle .caret {
  font-size: 8px;
  line-height: 1;
  transition: transform .25s;
  display: inline-block;
}
.nav-dropdown:hover .nav-dropdown-toggle .caret,
.nav-dropdown:focus-within .nav-dropdown-toggle .caret { transform: rotate(180deg); }
.nav-dropdown-menu {
  position: absolute;
  top: calc(100% + 6px);
  left: 50%;
  transform: translateX(-50%);
  display: none;
  flex-direction: column;
  background: var(--paper);
  border: 1px solid var(--rule);
  padding: 14px 0;
  min-width: 280px;
  box-shadow: 0 14px 36px rgba(0,0,0,.12), 0 2px 8px rgba(0,0,0,.06);
  z-index: 100;
}
.nav-dropdown:hover .nav-dropdown-menu,
.nav-dropdown:focus-within .nav-dropdown-menu { display: flex; }
.nav-dropdown-menu > a {
  display: block;
  padding: 9px 24px;
  font-family: var(--font-body) !important;
  font-size: 13.5px !important;
  font-weight: 400 !important;
  letter-spacing: 0 !important;
  text-transform: none !important;
  color: var(--ink-soft);
  border: 0 !important;
  white-space: nowrap;
  transition: background .15s, color .15s, padding-left .15s;
}
.nav-dropdown-menu > a:hover {
  color: var(--accent-strong);
  background: var(--bg);
  padding-left: 28px;
}
.nav-dropdown-cta {
  margin-top: 6px !important;
  padding-top: 14px !important;
  padding-bottom: 4px !important;
  border-top: 1px solid var(--rule) !important;
  font-family: var(--font-mono) !important;
  font-size: 10px !important;
  font-weight: 600 !important;
  letter-spacing: 0.20em !important;
  text-transform: uppercase !important;
  color: var(--accent-strong) !important;
}
.nav-dropdown-cta:hover { color: var(--ink) !important; padding-left: 24px !important; }
@media (max-width: 960px) {
  .nav-dropdown-menu { min-width: 100%; left: 0; transform: none; }
}

header.site-header .cta {
  font-family: var(--font-mono);
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--ink);
  text-decoration: none;
  padding: 10px 18px;
  border: 1px solid var(--ink);
  white-space: nowrap;
  transition: background 0.2s, color 0.2s;
  flex-shrink: 0;
}
header.site-header .cta:hover {
  background: var(--ink);
  color: var(--paper);
}

@media (max-width: 1100px) {
  header.site-header .site-nav { display: none !important; }
}
@media (max-width: 880px) {
  header.site-header .cta { display: none; }
}

/* Mobile menu overrides (works with hamburger script) */
@media (max-width: 1100px) {
  body.menu-open header.site-header .site-nav {
    display: flex !important;
    flex-direction: column !important;
    position: fixed;
    inset: 64px 0 0 0;
    background: var(--paper);
    padding: 32px 24px !important;
    z-index: 150;
    gap: 0 !important;
    border-top: 1px solid var(--ink);
    overflow-y: auto;
    align-items: stretch !important;
  }
  body.menu-open header.site-header .site-nav a {
    font-family: var(--font-display) !important;
    font-weight: 800;
    font-size: 28px !important;
    letter-spacing: -0.018em !important;
    color: var(--ink) !important;
    padding: 18px 0 !important;
    border-bottom: 1px solid var(--rule);
    text-transform: none !important;
    text-align: left !important;
  }
  body.menu-open header.site-header .site-nav a:last-of-type { border-bottom: none; }
  body.menu-open header.site-header .site-nav::after {
    content: "Iniciar uma conversa →";
    display: block;
    margin-top: 32px;
    padding: 18px 24px;
    background: var(--ink);
    color: var(--paper);
    text-align: center;
    font-family: var(--font-mono);
    font-size: 12px;
    letter-spacing: 0.18em;
    text-transform: uppercase;
    font-weight: 500;
  }
}

/* ──────────────────────────── editorial trio (home + outros) ─────────────────────────── */
.editorial-trio {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 0;
  border-top: 1px solid var(--rule);
  border-bottom: 1px solid var(--rule);
}
@media (max-width: 960px) { .editorial-trio { grid-template-columns: 1fr; } }
.ed-card {
  position: relative;
  display: block;
  min-height: 520px;
  text-decoration: none;
  color: var(--paper);
  overflow: hidden;
  border-right: 1px solid rgba(255,255,255,0.18);
  isolation: isolate;
}
.ed-card:last-child { border-right: none; }
@media (max-width: 960px) { .ed-card { min-height: 440px; border-right: none; border-bottom: 1px solid rgba(255,255,255,0.18); } }
.ed-image {
  position: absolute; inset: 0;
  background-size: cover;
  background-position: center;
  transition: transform 0.6s cubic-bezier(.2,.7,.2,1), filter 0.4s;
  z-index: 0;
}
.ed-card:hover .ed-image { transform: scale(1.04); filter: brightness(1.05); }
.ed-content {
  position: relative;
  z-index: 1;
  padding: 64px 48px 56px;
  display: flex;
  flex-direction: column;
  height: 100%;
  min-height: 520px;
  justify-content: flex-end;
}
@media (max-width: 960px) { .ed-content { min-height: 440px; padding: 48px 32px 40px; } }
.ed-num {
  font-family: var(--font-mono);
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 0.22em;
  color: var(--accent-on-dark);
  margin-bottom: 14px;
}
.ed-eyebrow {
  font-family: var(--font-mono);
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: var(--paper);
  margin-bottom: 18px;
}
.ed-title {
  font-family: var(--font-display);
  font-weight: 800;
  font-size: clamp(26px, 2.6vw, 34px);
  line-height: 1.12;
  letter-spacing: -0.018em;
  color: var(--paper);
  margin: 0 0 22px;
  max-width: 22ch;
  text-shadow: 0 1px 12px rgba(0,0,0,0.4);
}
.ed-arrow {
  font-family: var(--font-mono);
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--accent-on-dark);
  display: inline-block;
  transition: transform 0.3s;
  margin-top: auto;
}
.ed-card:hover .ed-arrow { transform: translateX(6px); }

/* ──────────────────────────── frentes-poster (home · 3 frentes redesigned) ─────────────────────────── */
.frentes-poster {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 0;
  border-top: 1px solid var(--rule);
  border-bottom: 1px solid var(--rule);
}
@media (max-width: 960px) { .frentes-poster { grid-template-columns: 1fr; } }
.frente-poster {
  position: relative;
  display: block;
  min-height: 560px;
  text-decoration: none;
  color: var(--paper);
  overflow: hidden;
  border-right: 1px solid rgba(255,255,255,0.18);
  isolation: isolate;
}
.frente-poster:last-child { border-right: none; }
@media (max-width: 960px) {
  .frente-poster { min-height: 480px; border-right: none; border-bottom: 1px solid rgba(255,255,255,0.18); }
  .frente-poster:last-child { border-bottom: none; }
}
.frente-poster-image {
  position: absolute; inset: 0;
  background-size: cover;
  background-position: center;
  transition: transform 0.6s cubic-bezier(.2,.7,.2,1), filter 0.4s;
  z-index: 0;
}
.frente-poster:hover .frente-poster-image { transform: scale(1.04); filter: brightness(1.05); }
.frente-poster-video { background: url('assets/images/espaco/2026-05-15_espaco_jardim-interno-espiral.jpg') center/cover #2d3a30; overflow: hidden; }
.frente-poster-video video { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; z-index: 0; }
.frente-poster-video .frente-poster-overlay { position: absolute; inset: 0; background: linear-gradient(180deg, rgba(45,58,48,0.30) 0%, rgba(45,58,48,0.55) 45%, rgba(18,28,22,0.92) 100%); z-index: 1; pointer-events: none; }
.frente-poster-content {
  position: relative;
  z-index: 1;
  padding: 60px 44px 48px;
  display: flex;
  flex-direction: column;
  height: 100%;
  min-height: 560px;
  justify-content: flex-end;
  gap: 14px;
}
@media (max-width: 960px) {
  .frente-poster-content { min-height: 480px; padding: 44px 30px 36px; }
}
.frente-poster-num {
  font-family: var(--font-mono);
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 0.22em;
  color: var(--accent-on-dark);
}
.frente-poster-eyebrow {
  font-family: var(--font-mono);
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: var(--paper);
}
.frente-poster-title {
  font-family: var(--font-display);
  font-weight: 800;
  font-size: clamp(26px, 2.6vw, 32px);
  line-height: 1.1;
  letter-spacing: -0.018em;
  color: var(--paper);
  margin: 6px 0 4px;
  max-width: 18ch;
  text-shadow: 0 2px 18px rgba(0,0,0,0.75), 0 1px 2px rgba(0,0,0,0.55);
}
.frente-poster-desc {
  font-size: 14.5px;
  line-height: 1.6;
  color: rgba(246,245,241,0.96);
  margin: 0;
  max-width: 42ch;
  text-shadow: 0 1px 8px rgba(0,0,0,0.55);
}
.frente-poster-eyebrow,
.frente-poster-num,
.frente-poster-arrow {
  text-shadow: 0 1px 6px rgba(0,0,0,0.5);
}
.frente-poster-arrow {
  font-family: var(--font-mono);
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--accent-on-dark);
  margin-top: 14px;
  transition: transform 0.3s;
  display: inline-block;
}
.frente-poster:hover .frente-poster-arrow { transform: translateX(6px); }

/* ──────────────────────────── provas sociais · vídeos ─────────────────────────── */
.testimonials-block {
  padding: 90px 40px;
  background: var(--paper);
  border-top: 1px solid var(--rule);
  border-bottom: 1px solid var(--rule);
}
.testimonials-head {
  max-width: 720px;
  margin: 0 auto 56px;
  text-align: center;
}
.testimonials-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 24px;
  max-width: 1320px;
  margin: 0 auto;
}
@media (max-width: 960px) { .testimonials-grid { grid-template-columns: 1fr; gap: 18px; } }
.testimonial-video {
  display: flex;
  flex-direction: column;
  background: var(--paper);
  border: 1px solid var(--rule);
  overflow: hidden;
  transition: border-color 0.2s, transform 0.25s;
}
.testimonial-video:hover {
  border-color: var(--ink);
  transform: translateY(-2px);
}
.testimonial-thumb {
  aspect-ratio: 4/3;
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  overflow: hidden;
  border-bottom: 1px solid var(--rule);
}
.testimonial-thumb::before {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, rgba(45,58,48,0.32), rgba(140,78,63,0.18));
  z-index: 1;
}
.play-btn {
  position: relative;
  z-index: 2;
  width: 72px;
  height: 72px;
  border-radius: 50%;
  background: rgba(248,247,243,0.95);
  border: none;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 22px;
  color: var(--accent-strong);
  box-shadow: 0 18px 48px -16px rgba(51,51,51,0.4);
  transition: transform 0.25s, background 0.2s;
}
.testimonial-video:hover .play-btn {
  transform: scale(1.08);
  background: var(--paper);
}
.testimonial-note {
  position: absolute;
  z-index: 2;
  bottom: 16px;
  left: 50%;
  transform: translateX(-50%);
  font-family: var(--font-mono);
  font-size: 10px;
  font-weight: 600;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: rgba(246,245,241,0.92);
  background: rgba(45,58,48,0.6);
  padding: 6px 14px;
  white-space: nowrap;
}
.testimonial-body {
  padding: 28px 28px 30px;
  display: flex;
  flex-direction: column;
  gap: 12px;
}
.testimonial-quote {
  font-family: var(--font-display);
  font-weight: 700;
  font-style: italic;
  font-size: 18px;
  line-height: 1.32;
  letter-spacing: -0.01em;
  color: var(--ink);
  margin: 0;
  max-width: 32ch;
}
.testimonial-author {
  font-family: var(--font-mono);
  font-size: 10.5px;
  font-weight: 600;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--accent-strong);
}

/* ──────────────────────────── mobile fixes · grids responsivos + overflow ─────────────────────────── */
/* Bloco escuro de stats (O QUE SUSTENTA O MÉTODO) · 4 cols → 2 cols tablet → 1 col mobile */
@media (max-width: 960px) {
  div[style*="grid-template-columns:repeat(4,1fr)"][style*="max-width:1240px"] {
    grid-template-columns: repeat(2, 1fr) !important;
  }
  div[style*="font-size:80px"] {
    font-size: 56px !important;
  }
  div[style*="font-size:60px"] {
    font-size: 44px !important;
  }
  div[style*="font-size:54px"] {
    font-size: 42px !important;
  }
  div[style*="font-size:48px"] {
    font-size: 38px !important;
  }
  div[style*="font-size:42px"] {
    font-size: 34px !important;
  }
}
@media (max-width: 560px) {
  div[style*="grid-template-columns:repeat(4,1fr)"] {
    grid-template-columns: 1fr !important;
  }
  div[style*="grid-template-columns:repeat(3,1fr)"]:not(.frentes-poster):not(.pilares-grid) {
    grid-template-columns: 1fr !important;
  }
}

/* Stats card · padding reduzido em mobile */
@media (max-width: 560px) {
  div[style*="padding:44px 28px"],
  div[style*="padding:36px 28px"],
  div[style*="padding:36px 24px"] {
    padding: 32px 22px !important;
  }
}

/* Tipografia responsiva em headlines inline-style */
@media (max-width: 560px) {
  h1[style*="font-size:48px"], h2[style*="font-size:48px"] {
    font-size: 32px !important;
  }
  h2[style*="font-size:38px"] {
    font-size: 28px !important;
  }
  h2[style*="font-size:34px"] {
    font-size: 26px !important;
  }
}

/* Garantir que body não tem overflow horizontal */
html, body {
  overflow-x: hidden !important;
  max-width: 100vw;
}
.wf-page {
  overflow-x: hidden;
  max-width: 100vw;
}

/* Hero · headline responsivo */
@media (max-width: 560px) {
  .full-bleed-image h1.copy-h1 {
    font-size: 36px !important;
    line-height: 1.05 !important;
  }
}

/* Padding lateral menor em blocos no mobile */
@media (max-width: 560px) {
  .block-content {
    padding-left: 20px !important;
    padding-right: 20px !important;
  }
  div[style*="padding:90px 40px"],
  div[style*="padding:80px 40px"],
  div[style*="padding:80px 32px"] {
    padding-left: 22px !important;
    padding-right: 22px !important;
  }
  .articles-section, .testimonials-block, .pilares-grid {
    padding-left: 22px !important;
    padding-right: 22px !important;
  }
}

/* Editorial trio · garante 1 col abaixo de 960 */
@media (max-width: 880px) {
  .editorial-trio, .frentes-poster {
    grid-template-columns: 1fr !important;
  }
  .ed-card, .frente-poster {
    border-right: none !important;
  }
}

/* Photo-cap institute · 1 col mobile */
@media (max-width: 560px) {
  .institute-photo-cap {
    flex-direction: column !important;
    align-items: flex-start !important;
    gap: 8px !important;
  }
}

/* Tabela jornadas / area-card 4 col → 2 → 1 */
@media (max-width: 960px) {
  .areas-grid {
    grid-template-columns: repeat(2, 1fr) !important;
  }
}
@media (max-width: 560px) {
  .areas-grid {
    grid-template-columns: 1fr !important;
  }
}

/* who-photo (perfis) reduzir min-height mobile */
@media (max-width: 560px) {
  .who-photo { min-height: 340px !important; }
}

/* Diff list em perfis: 3 col → 1 col mobile */
@media (max-width: 560px) {
  .diff-list { grid-template-columns: 1fr !important; }
}

/* Testimonial grid 3 col → 1 col mobile */
@media (max-width: 720px) {
  .testimonials-grid { grid-template-columns: 1fr !important; }
}
