/*
  A.O. PINHEIRO — Website editorial
  Etapa 39.1 · Fundação técnica e sistema de design
  Paleta aprovada: Papel quente #F6F4EF · Ardósia #26333A · Argila #6C6A61 · Ocre #B07A22 · Divisor #D8D4CB
*/

:root {
  --paper: #F6F4EF;
  --paper-deep: #ECE8DF;
  --slate: #26333A;
  --slate-soft: #4A565C;
  --clay: #6C6A61;
  --ochre: #B07A22;
  --ochre-dark: #7F5718;
  --line: #D8D4CB;
  --white: #FFFFFF;
  --focus: #6D4A12;

  --font-display: "Iowan Old Style", "Palatino Linotype", "Book Antiqua", Palatino, Georgia, "Times New Roman", serif;
  --font-body: ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;

  --step--1: clamp(.78rem, .75rem + .15vw, .875rem);
  --step-0: clamp(.98rem, .94rem + .20vw, 1.08rem);
  --step-1: clamp(1.15rem, 1.07rem + .40vw, 1.35rem);
  --step-2: clamp(1.4rem, 1.2rem + 1vw, 2rem);
  --step-3: clamp(1.85rem, 1.45rem + 2vw, 3rem);
  --step-4: clamp(2.45rem, 1.75rem + 3.5vw, 4.6rem);
  --step-5: clamp(3rem, 2rem + 5vw, 6rem);

  --space-1: .375rem;
  --space-2: .625rem;
  --space-3: 1rem;
  --space-4: 1.5rem;
  --space-5: 2.25rem;
  --space-6: 3.25rem;
  --space-7: 4.75rem;
  --space-8: 7rem;
  --space-9: 9rem;

  --container: 78rem;
  --measure: 43rem;
  --radius-sm: .2rem;
  --radius-md: .45rem;
  --shadow-soft: 0 1.25rem 3rem rgba(38, 51, 58, .07);
  --transition: 180ms ease;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; background: var(--paper); }
body {
  margin: 0;
  color: var(--slate);
  background: var(--paper);
  font-family: var(--font-body);
  font-size: var(--step-0);
  line-height: 1.65;
  text-rendering: optimizeLegibility;
  -webkit-font-smoothing: antialiased;
}
img, svg { display: block; max-width: 100%; }
a { color: inherit; }
button, input, textarea, select { font: inherit; }

::selection { background: #E2CDA9; color: var(--slate); }

.skip-link {
  position: fixed;
  z-index: 9999;
  left: 1rem;
  top: 1rem;
  transform: translateY(-150%);
  padding: .7rem 1rem;
  background: var(--slate);
  color: var(--white);
  transition: transform var(--transition);
}
.skip-link:focus { transform: translateY(0); }

:focus-visible {
  outline: 3px solid var(--focus);
  outline-offset: 4px;
}

.container {
  width: min(calc(100% - 2.5rem), var(--container));
  margin-inline: auto;
}

.measure { max-width: var(--measure); }
.flow > * + * { margin-top: var(--flow-space, 1.15em); }

.visually-hidden {
  position: absolute !important;
  width: 1px !important;
  height: 1px !important;
  padding: 0 !important;
  margin: -1px !important;
  overflow: hidden !important;
  clip-path: inset(50%) !important;
  white-space: nowrap !important;
  border: 0 !important;
}

#conteudo { scroll-margin-top: 6.5rem; }

.eyebrow {
  margin: 0;
  color: var(--ochre-dark);
  font-size: var(--step--1);
  font-weight: 600;
  letter-spacing: .16em;
  text-transform: uppercase;
}

.display,
h1, h2, h3 {
  font-family: var(--font-display);
  font-weight: 430;
  letter-spacing: -.018em;
  text-wrap: balance;
}
h1 { font-size: var(--step-5); line-height: .98; margin: 0; }
h2 { font-size: var(--step-3); line-height: 1.08; margin: 0; }
h3 { font-size: var(--step-2); line-height: 1.15; margin: 0; }
p { margin: 0; text-wrap: pretty; }

.lead {
  font-size: var(--step-1);
  line-height: 1.62;
  color: var(--slate-soft);
}
.muted { color: var(--clay); }
.small { font-size: var(--step--1); }

.rule { border-top: 1px solid var(--line); }

.site-header {
  position: sticky;
  top: 0;
  z-index: 100;
  border-bottom: 1px solid rgba(216, 212, 203, .9);
  background: color-mix(in srgb, var(--paper) 94%, transparent);
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
}
.header-inner {
  min-height: 5.25rem;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--space-4);
}
.brand {
  display: inline-flex;
  align-items: baseline;
  gap: .65rem;
  color: var(--slate);
  text-decoration: none;
  white-space: nowrap;
}
.brand-mark {
  font-family: var(--font-display);
  font-size: 1.15rem;
  font-weight: 650;
  letter-spacing: .13em;
}
.brand-context {
  color: var(--clay);
  font-size: .74rem;
  letter-spacing: .08em;
  text-transform: uppercase;
}

.primary-nav { display: flex; align-items: center; }
.primary-nav ul {
  list-style: none;
  display: flex;
  align-items: center;
  gap: clamp(.85rem, 1.65vw, 1.7rem);
  margin: 0;
  padding: 0;
}
.primary-nav a {
  position: relative;
  display: inline-block;
  padding: .4rem 0;
  color: var(--slate-soft);
  text-decoration: none;
  font-size: .92rem;
  line-height: 1.2;
}
.primary-nav a::after {
  content: "";
  position: absolute;
  left: 0;
  right: 100%;
  bottom: 0;
  height: 2px;
  background: var(--ochre);
  transition: right var(--transition);
}
.primary-nav a:hover,
.primary-nav a[aria-current="page"] { color: var(--slate); }
.primary-nav a:hover::after,
.primary-nav a[aria-current="page"]::after { right: 0; }

.menu-toggle {
  display: none;
  min-width: 2.75rem;
  min-height: 2.75rem;
  border: 1px solid var(--line);
  background: transparent;
  color: var(--slate);
  padding: .6rem .75rem;
  cursor: pointer;
}
.menu-toggle svg { width: 1.25rem; height: 1.25rem; }

.hero {
  min-height: calc(100svh - 5.25rem);
  display: flex;
  align-items: center;
  padding-block: clamp(5rem, 10vw, 8.75rem);
}
.hero-inner {
  display: grid;
  grid-template-columns: minmax(0, 1.12fr) minmax(17rem, .72fr);
  gap: clamp(3rem, 8vw, 8rem);
  align-items: end;
}
.hero-copy { max-width: 55rem; }
.hero-meta {
  align-self: stretch;
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  border-left: 1px solid var(--line);
  padding-left: clamp(1.5rem, 3vw, 3rem);
}
.hero-meta p { max-width: 29rem; color: var(--slate-soft); }
.hero-actions { display: flex; flex-wrap: wrap; gap: .75rem; margin-top: 2rem; }

.button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 3rem;
  padding: .75rem 1.15rem;
  border: 1px solid transparent;
  border-radius: var(--radius-sm);
  text-decoration: none;
  font-weight: 550;
  font-size: .93rem;
  transition: background var(--transition), color var(--transition), border-color var(--transition), transform var(--transition);
}
.button:hover { transform: translateY(-1px); }
.button-primary { background: var(--slate); color: var(--white); }
.button-primary:hover { background: #182329; }
.button-secondary { border-color: var(--clay); color: var(--slate); background: transparent; }
.button-secondary:hover { border-color: var(--slate); }
.button-text { min-height: auto; padding: .2rem 0; color: var(--ochre-dark); border-bottom: 1px solid currentColor; }

.section { padding-block: clamp(4.75rem, 8vw, 8rem); }
.section-header {
  display: grid;
  grid-template-columns: .42fr 1fr;
  gap: var(--space-6);
  align-items: start;
  margin-bottom: var(--space-6);
}
.section-header .section-heading { max-width: 45rem; }

.triad {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  border-top: 1px solid var(--line);
  border-bottom: 1px solid var(--line);
}
.triad-item {
  min-height: 18rem;
  padding: var(--space-5) var(--space-5) var(--space-6) 0;
}
.triad-item + .triad-item {
  border-left: 1px solid var(--line);
  padding-left: var(--space-5);
}
.triad-number {
  color: var(--ochre-dark);
  font-family: var(--font-display);
  font-size: var(--step-2);
  margin-bottom: var(--space-5);
}
.triad-item p { color: var(--slate-soft); margin-top: var(--space-3); max-width: 22rem; }

.card-grid { display: grid; grid-template-columns: repeat(12, 1fr); gap: 1px; background: var(--line); border: 1px solid var(--line); }
.card { background: var(--paper); padding: clamp(1.4rem, 2.5vw, 2.2rem); }
.card.span-6 { grid-column: span 6; }
.card.span-4 { grid-column: span 4; }
.card-kicker { color: var(--ochre-dark); font-size: .76rem; letter-spacing: .12em; text-transform: uppercase; font-weight: 650; }
.card h3 { margin-top: .65rem; }
.card p { margin-top: 1rem; color: var(--slate-soft); }
.card-footer { margin-top: 2rem; padding-top: 1rem; border-top: 1px solid var(--line); display:flex; justify-content:space-between; gap:1rem; color: var(--clay); font-size:.82rem; }

.media-frame {
  position: relative;
  overflow: hidden;
  background: var(--paper-deep);
  border: 1px solid var(--line);
}
.media-4x5 { aspect-ratio: 4 / 5; }
.media-4x3 { aspect-ratio: 4 / 3; }
.media-16x10 { aspect-ratio: 16 / 10; }
.media-1x1 { aspect-ratio: 1 / 1; }
.media-frame > img { width: 100%; height: 100%; object-fit: cover; }

/* Internal-only placeholder: never use on public pages. */
.media-placeholder {
  display: grid;
  place-items: center;
  min-height: 12rem;
  color: var(--clay);
  text-align: center;
  padding: 1.5rem;
  background:
    linear-gradient(135deg, transparent 49.7%, rgba(38,51,58,.08) 50%, transparent 50.3%),
    linear-gradient(45deg, transparent 49.7%, rgba(38,51,58,.08) 50%, transparent 50.3%),
    var(--paper-deep);
}

.quote-block {
  border-left: 3px solid var(--ochre);
  padding: .35rem 0 .35rem clamp(1.2rem, 2vw, 2rem);
  max-width: 56rem;
  font-family: var(--font-display);
  font-size: clamp(1.5rem, 1.15rem + 1.7vw, 2.6rem);
  line-height: 1.25;
}

.badge {
  display: inline-flex;
  align-items: center;
  min-height: 1.75rem;
  padding: .25rem .55rem;
  border: 1px solid var(--line);
  color: var(--clay);
  font-size: .72rem;
  letter-spacing: .08em;
  text-transform: uppercase;
}
.badge-accent { border-color: #CEAF7D; color: var(--ochre-dark); }

.article-shell {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(14rem, 18rem);
  gap: clamp(2.5rem, 6vw, 6rem);
}
.prose { max-width: 47rem; }
.prose > * + * { margin-top: 1.35em; }
.prose h2 { margin-top: 2.1em; }
.prose h3 { margin-top: 1.8em; }
.prose ul, .prose ol { padding-left: 1.25rem; }
.prose a { color: var(--ochre-dark); text-decoration-thickness: .08em; text-underline-offset: .16em; }

.site-footer { border-top: 1px solid var(--line); padding-block: var(--space-6); }
.footer-grid {
  display: grid;
  grid-template-columns: 1.2fr .8fr .8fr;
  gap: var(--space-6);
  align-items: start;
}
.footer-brand { max-width: 28rem; }
.footer-nav { list-style: none; padding: 0; margin: 0; }
.footer-nav li + li { margin-top: .55rem; }
.footer-nav a { color: var(--slate-soft); text-decoration: none; }
.footer-nav a:hover { color: var(--slate); text-decoration: underline; text-underline-offset: .2em; }
.footer-meta { margin-top: var(--space-6); padding-top: var(--space-4); border-top: 1px solid var(--line); display:flex; justify-content:space-between; gap:1rem; color: var(--clay); font-size:.78rem; }

/* Design-system preview only */
.ds-intro { padding-block: 5rem 3rem; }
.ds-block { padding-block: 3.5rem; border-top: 1px solid var(--line); }
.swatches { display:grid; grid-template-columns: repeat(5, 1fr); gap: 1px; background: var(--line); border: 1px solid var(--line); }
.swatch { min-height: 10rem; padding:1rem; display:flex; flex-direction:column; justify-content:flex-end; }
.swatch.paper { background:var(--paper); }
.swatch.slate { background:var(--slate); color:white; }
.swatch.clay { background:var(--clay); color:white; }
.swatch.ochre { background:var(--ochre); color:white; }
.swatch.white { background:white; }

@media (max-width: 68rem) {
  .brand-context { display: none; }
  .menu-toggle { display: inline-flex; }
  .primary-nav {
    display: block;
    position: fixed;
    inset: 5.25rem 0 auto 0;
    max-height: calc(100dvh - 5.25rem);
    overflow-y: auto;
    overscroll-behavior: contain;
    background: var(--paper);
    border-bottom: 1px solid var(--line);
    padding: 1rem 1.25rem 1.5rem;
    transform: translateY(-130%);
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
    transition: transform var(--transition), opacity var(--transition), visibility 0s linear var(--transition);
  }
  .primary-nav[data-open="true"] {
    transform: translateY(0);
    opacity: 1;
    visibility: visible;
    pointer-events: auto;
    transition-delay: 0s;
  }
  .primary-nav ul { width:100%; align-items:stretch; flex-direction:column; gap:0; }
  .primary-nav a { width:100%; min-height:2.75rem; padding:.8rem 0; border-bottom:1px solid var(--line); display:flex; align-items:center; }
  .primary-nav a::after { display:none; }
  .hero-inner { grid-template-columns: 1fr; }
  .hero-meta { border-left: 0; border-top: 1px solid var(--line); padding: 2rem 0 0; }
  .section-header { grid-template-columns: 1fr; gap: 1rem; }
  .triad { grid-template-columns: 1fr; }
  .triad-item, .triad-item + .triad-item { min-height: auto; padding: 2rem 0; border-left:0; }
  .triad-item + .triad-item { border-top:1px solid var(--line); }
  .card.span-6, .card.span-4 { grid-column: span 12; }
  .article-shell { grid-template-columns: 1fr; }
  .footer-grid { grid-template-columns: 1fr 1fr; }
  .footer-brand { grid-column: 1 / -1; }
  .swatches { grid-template-columns: 1fr 1fr; }
}

@media (max-width: 42rem) {
  .container { width: min(calc(100% - 1.5rem), var(--container)); }
  .header-inner { min-height: 4.75rem; }
  .primary-nav { inset: 4.75rem 0 auto 0; max-height: calc(100dvh - 4.75rem); }
  .brand-mark { font-size: 1rem; }
  .hero { min-height: auto; padding-block: 5rem; }
  .hero-actions { flex-direction: column; align-items: stretch; }
  .button { width: 100%; }
  .card-grid { grid-template-columns: 1fr; }
  .card.span-6, .card.span-4 { grid-column: 1; }
  .footer-grid { grid-template-columns: 1fr; }
  .footer-meta { flex-direction:column; }
  .swatches { grid-template-columns: 1fr; }
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { scroll-behavior: auto !important; transition-duration: .001ms !important; animation-duration: .001ms !important; animation-iteration-count: 1 !important; }
}

@media print {
  .site-header, .menu-toggle, .hero-actions, .site-footer { display:none !important; }
  body { background:white; color:black; }
  a { text-decoration:none; }
}

/* =========================================================
   ETAPA 39.2 — Homepage completa
   ========================================================= */

section[id] { scroll-margin-top: 6.5rem; }
.professional-line {
  color: var(--clay);
  font-size: clamp(.96rem, .9rem + .25vw, 1.08rem);
  letter-spacing: .02em;
}
.hero-home { align-items: center; }
.hero-home .hero-meta { min-height: 30rem; }
.hero-intro { font-size: clamp(1rem, .96rem + .3vw, 1.15rem); line-height: 1.72; }
.hero-index {
  margin: auto 0 0;
  padding-top: 2.3rem;
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  border-top: 1px solid var(--line);
}
.hero-index div { min-width: 0; }
.hero-index div + div { border-left: 1px solid var(--line); padding-left: 1rem; }
.hero-index dt {
  color: var(--ochre-dark);
  font-family: var(--font-display);
  font-size: 1.45rem;
  line-height: 1;
}
.hero-index dd { margin: .55rem 0 0; color: var(--clay); font-size: .76rem; line-height: 1.35; text-transform: uppercase; letter-spacing: .075em; }

/* Portfolio */
.section-portfolio { background: var(--white); }
.project-stack { border-top: 1px solid var(--line); }
.project-feature {
  display: grid;
  grid-template-columns: minmax(10rem, .35fr) minmax(0, 1fr);
  border-bottom: 1px solid var(--line);
}
.project-rail {
  padding: clamp(2rem, 4vw, 3.5rem) clamp(1.4rem, 3vw, 2.5rem) clamp(2rem, 4vw, 3.5rem) 0;
  border-right: 1px solid var(--line);
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  gap: 4rem;
}
.project-number {
  color: var(--ochre-dark);
  font-family: var(--font-display);
  font-size: clamp(3rem, 5vw, 5.4rem);
  line-height: .85;
  letter-spacing: -.04em;
}
.project-type {
  color: var(--clay);
  font-size: .75rem;
  line-height: 1.45;
  letter-spacing: .08em;
  text-transform: uppercase;
}
.project-main {
  padding: clamp(2rem, 4vw, 3.5rem) 0 clamp(2rem, 4vw, 3.5rem) clamp(2rem, 5vw, 5rem);
  max-width: 58rem;
}
.project-main > p { max-width: 48rem; color: var(--slate-soft); }
.project-main h3 { font-size: clamp(2rem, 1.55rem + 2vw, 3.65rem); max-width: 48rem; }
.project-metrics {
  list-style: none;
  padding: 0;
  margin: 2.3rem 0 0;
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  border-top: 1px solid var(--line);
  border-bottom: 1px solid var(--line);
}
.project-metrics li { padding: 1.3rem 1.2rem 1.3rem 0; }
.project-metrics li + li { border-left: 1px solid var(--line); padding-left: 1.2rem; }
.project-metrics strong { display:block; font-family: var(--font-display); font-size: clamp(1.85rem, 1.5rem + 1.3vw, 2.65rem); line-height:1; font-weight:500; color: var(--slate); }
.project-metrics span { display:block; margin-top:.5rem; color:var(--clay); font-size:.78rem; line-height:1.45; }
.project-thesis {
  margin: 2rem 0 0;
  padding-left: 1.25rem;
  border-left: 2px solid var(--ochre);
  color: var(--slate-soft);
  font-family: var(--font-display);
  font-size: clamp(1.1rem, 1rem + .4vw, 1.35rem);
  line-height: 1.48;
  max-width: 50rem;
}
.project-footer {
  margin-top: 2.1rem;
  display:flex;
  justify-content:space-between;
  align-items:baseline;
  gap:1.5rem;
  color:var(--clay);
  font-size:.82rem;
}
.text-link {
  display:inline-flex;
  gap:.45rem;
  align-items:baseline;
  color:var(--ochre-dark);
  text-decoration:none;
  font-weight:600;
  border-bottom:1px solid rgba(127,87,24,.35);
  padding-bottom:.12rem;
}
.text-link:hover { border-bottom-color: currentColor; }

/* Panela */
.panela-intro {
  background: var(--paper-deep);
}
.panela-layout {
  display:grid;
  grid-template-columns:minmax(0,.78fr) minmax(0,1fr);
  gap:clamp(3rem,8vw,8rem);
  align-items:start;
}
.panela-heading { position:sticky; top:8rem; }
.panela-heading h2 { max-width: 34rem; font-size: clamp(2.5rem, 2rem + 2.5vw, 4.6rem); }
.panela-copy { max-width: 46rem; }
.panela-copy > p:not(.lead) { color: var(--slate-soft); }
.panela-copy .quote-block { margin-block: 2.7rem; }

/* Recipes */
.compact-header { margin-bottom: var(--space-5); }
.recipe-grid {
  display:grid;
  grid-template-columns:repeat(3,1fr);
  border-top:1px solid var(--line);
  border-bottom:1px solid var(--line);
}
.recipe-card {
  min-width:0;
  min-height:29rem;
  padding:2rem clamp(1.3rem,2.6vw,2.25rem) 1.45rem;
  display:flex;
  flex-direction:column;
}
.recipe-card + .recipe-card { border-left:1px solid var(--line); }
.recipe-topline { display:flex; align-items:center; justify-content:space-between; gap:1rem; }
.recipe-index { font-family:var(--font-display); color:var(--ochre-dark); font-size:1.4rem; }
.recipe-body { margin-top:auto; padding-top:5rem; }
.recipe-body h3 { font-size:clamp(1.9rem,1.5rem + 1.3vw,2.75rem); }
.recipe-body p:last-child { color:var(--slate-soft); }
.recipe-foot {
  margin-top:2.2rem;
  padding-top:1rem;
  border-top:1px solid var(--line);
  display:flex;
  justify-content:space-between;
  gap:1rem;
  color:var(--clay);
  font-size:.78rem;
}
.recipe-foot a { color:var(--ochre-dark); text-decoration:none; font-weight:600; }

/* Evidence */
.evidence-home { background: var(--slate); color: var(--paper); border-top-color: rgba(255,255,255,.18); }
.evidence-home .eyebrow { color:#D7B67C; }
.evidence-home .lead,
.evidence-home p { color:#D8DBDA; }
.evidence-layout {
  display:grid;
  grid-template-columns:minmax(0,.92fr) minmax(0,1.08fr);
  gap:clamp(3rem,7vw,7rem);
  align-items:start;
}
.evidence-feature {
  border-top:1px solid rgba(255,255,255,.25);
  padding-top:2rem;
  display:grid;
  grid-template-columns:5rem 1fr;
  gap:1.5rem;
}
.evidence-number { color:#D7B67C; font-family:var(--font-display); font-size:2rem; line-height:1; }
.evidence-feature h3 { font-size:clamp(2rem,1.5rem + 2vw,3.3rem); color:var(--paper); }
.evidence-feature .text-link { color:#E0C38F; border-bottom-color:rgba(224,195,143,.5); }
.evidence-list { list-style:none; padding:0; margin:0; border-top:1px solid rgba(255,255,255,.25); }
.evidence-list li {
  display:grid;
  grid-template-columns:4.5rem 1fr;
  gap:1.25rem;
  padding:1.5rem 0;
  border-bottom:1px solid rgba(255,255,255,.16);
}
.evidence-list-number { color:#D7B67C; font-family:var(--font-display); font-size:1.2rem; }
.evidence-list h3 { color:var(--paper); font-size:clamp(1.25rem,1.08rem + .65vw,1.65rem); }
.evidence-list p:not(.eyebrow) { margin-top:.55rem; font-size:.92rem; line-height:1.55; }

/* About */
.about-home-grid {
  display:grid;
  grid-template-columns:minmax(0,.7fr) minmax(0,1fr);
  gap:clamp(3rem,8vw,8rem);
  align-items:start;
}
.about-statement { position:sticky; top:8rem; }
.about-statement h2 { margin-top:1rem; font-size:clamp(2.5rem,2rem + 2.4vw,4.25rem); }
.about-statement .professional-line { margin-top:1rem; }
.about-copy { max-width:47rem; }
.about-copy > p:not(.lead) { color:var(--slate-soft); }
.quote-compact { font-size:clamp(1.45rem,1.2rem + 1.1vw,2.15rem); margin-block:2.3rem; }

/* Services */
.services-home { background: var(--white); }
.service-list { border-top:1px solid var(--line); }
.service-item {
  display:grid;
  grid-template-columns:5rem minmax(15rem,.68fr) minmax(0,1fr);
  gap:clamp(1.5rem,4vw,4rem);
  align-items:start;
  padding:2rem 0;
  border-bottom:1px solid var(--line);
}
.service-number { color:var(--ochre-dark); font-family:var(--font-display); font-size:1.4rem; }
.service-item h3 { font-size:clamp(1.5rem,1.25rem + .9vw,2rem); }
.service-mode { margin-top:.45rem; color:var(--clay); font-size:.76rem; letter-spacing:.065em; text-transform:uppercase; }
.service-item > p { color:var(--slate-soft); max-width:40rem; }

/* Contact */
.contact-home { background: var(--paper-deep); }
.contact-panel {
  display:grid;
  grid-template-columns:minmax(0,.76fr) minmax(0,1fr);
  gap:clamp(3rem,8vw,8rem);
}
.contact-heading { max-width:38rem; }
.contact-list { font-style:normal; border-top:1px solid #CFC9BE; }
.contact-list a {
  display:grid;
  grid-template-columns:7rem 1fr auto;
  gap:1.5rem;
  align-items:baseline;
  padding:1.45rem 0;
  border-bottom:1px solid #CFC9BE;
  text-decoration:none;
}
.contact-list a:hover strong { color:var(--ochre-dark); }
.contact-list span { color:var(--clay); font-size:.77rem; text-transform:uppercase; letter-spacing:.08em; }
.contact-list strong { font-family:var(--font-display); font-size:clamp(1.1rem,1rem + .45vw,1.45rem); font-weight:500; overflow-wrap:anywhere; }
.contact-list small { color:var(--clay); }
.footer-label { margin-bottom:.8rem; }

@media (max-width: 68rem) {
  .hero-home .hero-meta { min-height:auto; }
  .project-feature { grid-template-columns: 8rem minmax(0,1fr); }
  .project-main { padding-left:2rem; }
  .panela-layout,
  .about-home-grid,
  .contact-panel { grid-template-columns:1fr; }
  .panela-heading,
  .about-statement { position:static; }
  .recipe-grid { grid-template-columns:1fr; }
  .recipe-card { min-height:auto; padding:2rem 0; }
  .recipe-card + .recipe-card { border-left:0; border-top:1px solid var(--line); }
  .recipe-body { padding-top:4rem; }
  .evidence-layout { grid-template-columns:1fr; }
  .service-item { grid-template-columns:4rem minmax(0,.8fr) minmax(0,1fr); gap:1.5rem; }
}

@media (max-width: 48rem) {
  .hero-index { grid-template-columns:1fr; }
  .hero-index div { display:grid; grid-template-columns:3rem 1fr; align-items:baseline; padding:.7rem 0; }
  .hero-index div + div { border-left:0; border-top:1px solid var(--line); padding-left:0; }
  .hero-index dd { margin:0; }
  .project-feature { grid-template-columns:1fr; }
  .project-rail { border-right:0; border-bottom:1px solid var(--line); padding:1.5rem 0; flex-direction:row; align-items:end; gap:2rem; }
  .project-number { font-size:3rem; }
  .project-main { padding:2rem 0 2.5rem; }
  .project-metrics { grid-template-columns:1fr; }
  .project-metrics li { padding:1rem 0; }
  .project-metrics li + li { border-left:0; border-top:1px solid var(--line); padding-left:0; }
  .project-footer { align-items:flex-start; flex-direction:column; }
  .recipe-topline { align-items:flex-start; flex-direction:column; }
  .evidence-feature { grid-template-columns:1fr; }
  .evidence-list li { grid-template-columns:3.25rem 1fr; }
  .service-item { grid-template-columns:3rem 1fr; }
  .service-item > p { grid-column:2; }
  .contact-list a { grid-template-columns:1fr; gap:.3rem; }
  .contact-list small { margin-top:.15rem; }
}

@media print {
  .evidence-home { background:white !important; color:black !important; }
  .evidence-home * { color:black !important; }
}

/* =========================================================
   ETAPA 39.3 — Página Sobre
   ========================================================= */

.about-hero {
  padding-block: clamp(5.5rem, 10vw, 9.5rem) clamp(5rem, 8vw, 8rem);
}
.about-hero-grid {
  display: grid;
  grid-template-columns: minmax(0, 1.15fr) minmax(18rem, .7fr);
  gap: clamp(3rem, 8vw, 8rem);
  align-items: end;
}
.about-hero-title h1 {
  max-width: 58rem;
  font-size: clamp(3rem, 2rem + 4.8vw, 6.9rem);
}
.about-hero-intro {
  border-left: 1px solid var(--line);
  padding-left: clamp(1.5rem, 3vw, 3rem);
  max-width: 34rem;
}
.about-hero-intro > p:not(.lead) { color: var(--slate-soft); }
.about-hero-actions { display:flex; flex-wrap:wrap; gap:.75rem; padding-top:.75rem; }

.about-origin { background: var(--white); }
.about-origin-grid {
  display:grid;
  grid-template-columns:minmax(9rem,.34fr) minmax(0,1fr);
  gap:clamp(3rem,8vw,8rem);
  align-items:start;
}
.section-label-block {
  min-height: 18rem;
  display:flex;
  flex-direction:column;
  justify-content:space-between;
  border-right:1px solid var(--line);
  padding-right:clamp(1.5rem,3vw,3rem);
}
.section-index {
  font-family:var(--font-display);
  color:var(--ochre-dark);
  font-size:clamp(4rem,7vw,7rem);
  line-height:.8;
  letter-spacing:-.05em;
}
.about-origin-copy { max-width:51rem; }
.about-origin-copy h2 { font-size:clamp(2.5rem,2rem + 2.4vw,4.3rem); }
.about-origin-copy > p:not(.lead) { color:var(--slate-soft); }

.about-lenses { background:var(--paper); }
.about-lens-grid {
  display:grid;
  grid-template-columns:repeat(3,1fr);
  border-top:1px solid var(--line);
  border-bottom:1px solid var(--line);
}
.about-lens {
  min-height:26rem;
  padding:2rem clamp(1.5rem,3vw,2.6rem) 2rem 0;
  display:flex;
  flex-direction:column;
}
.about-lens + .about-lens { border-left:1px solid var(--line); padding-left:clamp(1.5rem,3vw,2.6rem); }
.about-lens-number { color:var(--ochre-dark); font-family:var(--font-display); font-size:1.65rem; }
.about-lens h3 { margin-top:auto; padding-top:5rem; font-size:clamp(2rem,1.6rem + 1.6vw,3.1rem); }
.about-lens > p:not(.about-lens-question) { margin-top:1rem; color:var(--slate-soft); max-width:23rem; }
.about-lens-question { margin-top:2rem; padding-top:1rem; border-top:1px solid var(--line); font-size:.85rem; color:var(--clay); }
.about-lens-question strong { color:var(--slate); font-weight:500; }

.public-health-section { background:var(--slate); color:var(--paper); border-top-color:rgba(255,255,255,.18); }
.public-health-section .eyebrow { color:#D7B67C; }
.public-health-grid {
  display:grid;
  grid-template-columns:minmax(0,.75fr) minmax(0,1fr);
  gap:clamp(3rem,8vw,8rem);
  align-items:start;
}
.public-health-heading { position:sticky; top:8rem; }
.public-health-heading h2 { font-size:clamp(2.5rem,2rem + 2.4vw,4.4rem); color:var(--paper); }
.role-line { color:#C9CECC; font-size:.85rem; line-height:1.6; max-width:34rem; }
.public-health-body > .lead { color:#D8DBDA; }
.task-grid { margin-top:2.6rem; border-top:1px solid rgba(255,255,255,.22); }
.task-item { display:grid; grid-template-columns:3rem 1fr; gap:1.25rem; padding:1.25rem 0; border-bottom:1px solid rgba(255,255,255,.15); }
.task-item span { color:#D7B67C; font-family:var(--font-display); }
.task-item p { color:#E2E4E3; }
.scope-note { margin-top:2rem; color:#BFC6C3; font-size:.87rem; line-height:1.65; }
.scope-note strong { color:var(--paper); }

.teaching-section { background:var(--paper-deep); }
.teaching-grid {
  display:grid;
  grid-template-columns:minmax(0,.92fr) minmax(0,1.08fr);
  gap:clamp(3rem,8vw,8rem);
}
.teaching-intro { max-width:43rem; }
.teaching-intro h2 { font-size:clamp(2.5rem,2rem + 2.3vw,4.15rem); }
.teaching-subjects { border-top:1px solid #CFC9BE; }
.subject-group { display:grid; grid-template-columns:10rem 1fr; gap:2rem; padding:1.7rem 0; border-bottom:1px solid #CFC9BE; }
.subject-label { color:var(--clay); font-size:.76rem; text-transform:uppercase; letter-spacing:.08em; }
.subject-group ul { list-style:none; margin:0; padding:0; columns:1; }
.subject-group li { padding:.3rem 0; font-family:var(--font-display); font-size:clamp(1.15rem,1.05rem + .35vw,1.4rem); }

.education-section { background:var(--white); }
.education-grid {
  display:grid;
  grid-template-columns:minmax(0,.7fr) minmax(0,1fr);
  gap:clamp(3rem,8vw,8rem);
  align-items:start;
}
.education-statement { position:sticky; top:8rem; }
.education-statement h2 { margin-top:1rem; font-size:clamp(2.5rem,2rem + 2.3vw,4.2rem); }
.education-copy { max-width:49rem; }
.education-copy > p:not(.lead) { color:var(--slate-soft); }

.formation-section { background:var(--paper); }
.formation-timeline { list-style:none; margin:0; padding:0; border-top:1px solid var(--line); }
.formation-timeline li { display:grid; grid-template-columns:minmax(7rem,.28fr) 1fr; gap:clamp(2rem,6vw,6rem); padding:2rem 0; border-bottom:1px solid var(--line); }
.formation-timeline time { color:var(--ochre-dark); font-family:var(--font-display); font-size:clamp(2.2rem,1.8rem + 1.6vw,3.4rem); line-height:1; }
.formation-type { color:var(--clay); font-size:.76rem; text-transform:uppercase; letter-spacing:.09em; }
.formation-entry h3 { margin-top:.35rem; font-size:clamp(1.7rem,1.4rem + 1vw,2.4rem); }
.formation-entry p:last-child { margin-top:.45rem; color:var(--slate-soft); }

.principle-section { background:var(--paper-deep); }
.principle-grid { display:grid; grid-template-columns:minmax(8rem,.28fr) minmax(0,1fr); gap:clamp(2rem,6vw,6rem); align-items:start; }
.principle-number { color:var(--ochre); font-family:var(--font-display); font-size:clamp(8rem,16vw,16rem); line-height:.62; }
.principle-copy { max-width:56rem; }
.principle-copy h2 { font-size:clamp(2.7rem,2rem + 3vw,5.2rem); }
.principle-copy > p:not(.lead) { color:var(--slate-soft); }

.about-next { background:var(--slate); color:var(--paper); }
.about-next .eyebrow { color:#D7B67C; }
.about-next .lead { color:#D8DBDA; }
.about-next-grid { display:grid; grid-template-columns:minmax(0,1fr) auto; gap:3rem; align-items:end; }
.about-next-grid h2 { color:var(--paper); max-width:48rem; }
.about-next-actions { display:flex; flex-wrap:wrap; gap:.75rem; }
.about-next .button-primary { background:var(--paper); color:var(--slate); }
.about-next .button-primary:hover { background:var(--white); }
.about-next .button-secondary { border-color:rgba(255,255,255,.45); color:var(--paper); }
.about-next .button-secondary:hover { border-color:var(--paper); }

@media (max-width: 68rem) {
  .about-hero-grid,
  .about-origin-grid,
  .public-health-grid,
  .teaching-grid,
  .education-grid { grid-template-columns:1fr; }
  .about-hero-intro { border-left:0; border-top:1px solid var(--line); padding:2rem 0 0; max-width:50rem; }
  .section-label-block { min-height:auto; border-right:0; border-bottom:1px solid var(--line); padding:0 0 1.5rem; flex-direction:row; align-items:end; }
  .section-index { font-size:4rem; }
  .about-lens-grid { grid-template-columns:1fr; }
  .about-lens { min-height:auto; padding:2rem 0; }
  .about-lens + .about-lens { border-left:0; border-top:1px solid var(--line); padding-left:0; }
  .about-lens h3 { margin-top:2.5rem; padding-top:0; }
  .public-health-heading,
  .education-statement { position:static; }
  .about-next-grid { grid-template-columns:1fr; align-items:start; }
}

@media (max-width: 48rem) {
  .about-hero-actions,
  .about-next-actions { flex-direction:column; align-items:stretch; }
  .subject-group { grid-template-columns:1fr; gap:.6rem; }
  .formation-timeline li { grid-template-columns:1fr; gap:1rem; }
  .principle-grid { grid-template-columns:1fr; }
  .principle-number { font-size:8rem; }
}

/* =========================================================
   ETAPA 39.4 · PORTFÓLIO E ESTUDOS DE CASO
   ========================================================= */

.portfolio-hero,
.case-hero {
  padding-block: clamp(5rem, 10vw, 9rem) clamp(4rem, 7vw, 6.5rem);
}
.portfolio-hero-grid,
.case-hero-grid {
  display:grid;
  grid-template-columns:minmax(0,1.1fr) minmax(18rem,.72fr);
  gap:clamp(3rem,8vw,8rem);
  align-items:end;
}
.portfolio-hero h1,
.case-hero h1 { max-width: 58rem; }
.portfolio-hero-copy,
.case-hero-copy { max-width: 44rem; }
.portfolio-intro-index {
  list-style:none;
  margin:2rem 0 0;
  padding:0;
  border-top:1px solid var(--line);
}
.portfolio-intro-index li {
  display:grid;
  grid-template-columns:3.5rem 1fr;
  gap:1rem;
  padding:1rem 0;
  border-bottom:1px solid var(--line);
}
.portfolio-intro-index span:first-child {
  color:var(--ochre-dark);
  font-family:var(--font-display);
  font-size:1.4rem;
}
.portfolio-intro-index strong { font-weight:600; }

.portfolio-case {
  border-top:1px solid var(--line);
  padding-block:clamp(4.5rem,8vw,7.5rem);
}
.portfolio-case:nth-of-type(even) { background:var(--white); }
.portfolio-case-grid {
  display:grid;
  grid-template-columns:minmax(11rem,.34fr) minmax(0,1fr);
  gap:clamp(2rem,6vw,6rem);
}
.case-side {
  display:flex;
  flex-direction:column;
  justify-content:space-between;
  gap:2rem;
  min-height:20rem;
  border-right:1px solid var(--line);
  padding-right:clamp(1.5rem,3vw,3rem);
}
.case-side-number {
  font-family:var(--font-display);
  font-size:clamp(4rem,8vw,8rem);
  line-height:.8;
  color:var(--paper-deep);
  -webkit-text-stroke:1px var(--line);
}
.case-side-meta {
  color:var(--clay);
  font-size:.77rem;
  text-transform:uppercase;
  letter-spacing:.085em;
}
.case-body { max-width:64rem; }
.case-body h2 { font-size:clamp(2.4rem,2rem + 2.2vw,4.6rem); max-width:54rem; }
.case-body > p { max-width:48rem; }
.case-body .lead { margin-top:1.25rem; }
.case-action-row {
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  gap:1rem 1.5rem;
  margin-top:2.5rem;
}
.case-facts {
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  border-top:1px solid var(--line);
  border-bottom:1px solid var(--line);
  margin-top:2.5rem;
}
.case-facts > div { padding:1.4rem 1.25rem 1.4rem 0; }
.case-facts > div + div { border-left:1px solid var(--line); padding-left:1.25rem; }
.case-facts dt {
  color:var(--clay);
  font-size:.72rem;
  text-transform:uppercase;
  letter-spacing:.08em;
}
.case-facts dd {
  margin:.5rem 0 0;
  font-family:var(--font-display);
  font-size:clamp(1.25rem,1rem + .8vw,1.8rem);
  line-height:1.2;
}

.case-breadcrumbs {
  display:flex;
  flex-wrap:wrap;
  gap:.55rem;
  align-items:center;
  margin-bottom:2rem;
  color:var(--clay);
  font-size:.8rem;
}
.case-breadcrumbs a { text-decoration:none; }
.case-breadcrumbs a:hover { text-decoration:underline; }
.case-kicker { color:var(--ochre-dark); font-weight:600; letter-spacing:.12em; text-transform:uppercase; font-size:.77rem; }
.case-summary {
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  border-top:1px solid var(--line);
  border-bottom:1px solid var(--line);
  margin-top:clamp(3rem,6vw,5rem);
}
.case-summary > div { padding:1.4rem 1.2rem 1.4rem 0; }
.case-summary > div + div { border-left:1px solid var(--line); padding-left:1.2rem; }
.case-summary dt { color:var(--clay); font-size:.72rem; text-transform:uppercase; letter-spacing:.08em; }
.case-summary dd { margin:.55rem 0 0; line-height:1.4; font-weight:500; }

.case-section { padding-block:clamp(4.5rem,8vw,7.5rem); }
.case-section.alt { background:var(--white); }
.case-section.dark { background:var(--slate); color:var(--paper); }
.case-section.dark .eyebrow,
.case-section.dark .case-kicker { color:#E6BD78; }
.case-section.dark .lead,
.case-section.dark .muted { color:#CBD0D2; }
.case-section.dark .case-column-card,
.case-section.dark .case-note { border-color:rgba(246,244,239,.18); }
.case-section-grid {
  display:grid;
  grid-template-columns:minmax(12rem,.38fr) minmax(0,1fr);
  gap:clamp(2rem,7vw,7rem);
}
.case-section-heading { position:sticky; top:7rem; align-self:start; }
.case-section-heading h2 { margin-top:.9rem; font-size:clamp(2rem,1.6rem + 1.8vw,3.4rem); }
.case-section-content { max-width:60rem; }
.case-section-content > * + * { margin-top:1.2rem; }

.case-columns {
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:1px;
  background:var(--line);
  border:1px solid var(--line);
  margin-top:2.5rem;
}
.case-column-card { background:var(--paper); padding:clamp(1.5rem,3vw,2.4rem); min-height:18rem; }
.case-column-card h3 { font-size:clamp(1.45rem,1.2rem + .9vw,2.1rem); }
.case-column-card p { color:var(--slate-soft); margin-top:1rem; }
.case-column-card .case-card-index { display:block; margin-bottom:3rem; color:var(--ochre-dark); font-family:var(--font-display); font-size:1.35rem; }

.case-data-table { width:100%; border-collapse:collapse; margin-top:2rem; }
.case-data-table th,
.case-data-table td { padding:1rem 0; border-bottom:1px solid var(--line); text-align:left; vertical-align:top; }
.case-data-table th { width:32%; color:var(--clay); font-size:.78rem; letter-spacing:.06em; text-transform:uppercase; font-weight:600; padding-right:2rem; }
.case-data-table td strong { font-weight:600; }

.case-note {
  border-top:1px solid var(--line);
  border-bottom:1px solid var(--line);
  padding:1.35rem 0;
  margin-top:2.2rem;
  display:grid;
  grid-template-columns:minmax(8rem,.28fr) 1fr;
  gap:1.5rem;
}
.case-note strong { font-size:.76rem; letter-spacing:.08em; text-transform:uppercase; color:var(--ochre-dark); }
.case-note p { color:var(--slate-soft); }

.case-limit-list,
.case-output-list {
  list-style:none;
  margin:2rem 0 0;
  padding:0;
  border-top:1px solid currentColor;
}
.case-limit-list li,
.case-output-list li {
  display:grid;
  grid-template-columns:3rem 1fr;
  gap:1rem;
  padding:1.15rem 0;
  border-bottom:1px solid color-mix(in srgb,currentColor 22%, transparent);
}
.case-limit-list .num,
.case-output-list .num { font-family:var(--font-display); color:#E6BD78; }
.case-section:not(.dark) .case-output-list .num,
.case-section:not(.dark) .case-limit-list .num { color:var(--ochre-dark); }
.case-limit-list p,
.case-output-list p { margin:0; }

.case-quote {
  margin:2.5rem 0 0;
  padding:0 0 0 1.5rem;
  border-left:3px solid var(--ochre);
  font-family:var(--font-display);
  font-size:clamp(1.6rem,1.2rem + 1.25vw,2.5rem);
  line-height:1.28;
  max-width:52rem;
}

.portfolio-next {
  display:grid;
  grid-template-columns:1fr auto;
  gap:2rem;
  align-items:end;
}
.portfolio-next .actions { display:flex; flex-wrap:wrap; gap:1rem; }

@media (max-width: 68rem) {
  .portfolio-hero-grid,.case-hero-grid,.portfolio-case-grid,.case-section-grid { grid-template-columns:1fr; }
  .case-side { min-height:auto; border-right:0; border-bottom:1px solid var(--line); padding:0 0 1.5rem; flex-direction:row; align-items:end; }
  .case-side-number { font-size:4rem; }
  .case-section-heading { position:static; }
  .case-summary { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .case-summary > div:nth-child(3) { border-left:0; border-top:1px solid var(--line); padding-left:0; }
  .case-summary > div:nth-child(4) { border-top:1px solid var(--line); }
  .case-columns { grid-template-columns:1fr; }
  .case-column-card { min-height:auto; }
  .portfolio-next { grid-template-columns:1fr; align-items:start; }
}
@media (max-width: 44rem) {
  .case-facts,.case-summary { grid-template-columns:1fr; }
  .case-facts > div + div,.case-summary > div + div,.case-summary > div:nth-child(3) { border-left:0; border-top:1px solid var(--line); padding-left:0; }
  .case-note { grid-template-columns:1fr; gap:.5rem; }
  .case-data-table th,.case-data-table td { display:block; width:100%; padding:.85rem 0; }
  .case-data-table th { border-bottom:0; padding-bottom:.2rem; }
}

/* =========================================================
   ETAPA 39.5 · PANELA DO SUL
   ========================================================= */

.panela-subnav {
  border-bottom: 1px solid var(--line);
  background: var(--paper-deep);
}
.panela-subnav ul {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  gap: clamp(1rem, 2.8vw, 2.6rem);
  overflow-x: auto;
  overscroll-behavior-x: contain;
  -webkit-overflow-scrolling: touch;
  scrollbar-width: thin;
  scroll-padding-inline: 1rem;
}
.panela-subnav a {
  display: block;
  white-space: nowrap;
  padding: .9rem 0 .8rem;
  text-decoration: none;
  color: var(--slate-soft);
  font-size: .79rem;
  letter-spacing: .055em;
}
.panela-subnav a:hover,
.panela-subnav a[aria-current="page"] { color: var(--slate); }
.panela-subnav a[aria-current="page"] { border-bottom: 2px solid var(--ochre); }

.panela-hero,
.panela-list-hero,
.recipe-hero,
.food-hero,
.story-hero,
.method-hero {
  padding-block: clamp(5rem, 9vw, 8.5rem) clamp(4rem, 7vw, 6.5rem);
}
.panela-hero-grid,
.panela-list-grid,
.recipe-hero-grid,
.food-hero-grid,
.story-hero-grid,
.method-hero-grid {
  display: grid;
  grid-template-columns: minmax(0, 1.08fr) minmax(18rem, .72fr);
  gap: clamp(3rem, 8vw, 8rem);
  align-items: end;
}
.panela-hero h1,
.panela-list-hero h1,
.recipe-hero h1,
.food-hero h1,
.story-hero h1,
.method-hero h1 {
  max-width: 61rem;
}
.panela-hero-copy,
.panela-list-grid > :last-child,
.food-hero-grid > :last-child,
.story-hero-grid > :last-child,
.method-hero-grid > :last-child { max-width: 43rem; }

.panela-manifesto {
  background: var(--slate);
  color: var(--paper);
  padding-block: clamp(3rem, 6vw, 5.5rem);
}
.panela-manifesto blockquote {
  margin: 0;
  max-width: 70rem;
  font-family: var(--font-display);
  font-size: clamp(2rem, 1.4rem + 3vw, 4.5rem);
  line-height: 1.12;
  letter-spacing: -.02em;
}

.panela-door-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0,1fr));
  border-top: 1px solid var(--line);
  border-bottom: 1px solid var(--line);
}
.panela-door {
  min-height: 23rem;
  padding: 2rem clamp(1.5rem, 3vw, 2.4rem) 1.7rem 0;
  display: grid;
  grid-template-rows: auto 1fr auto;
  text-decoration: none;
  transition: background var(--transition), padding var(--transition);
}
.panela-door + .panela-door { border-left: 1px solid var(--line); padding-left: clamp(1.5rem, 3vw, 2.4rem); }
.panela-door:hover { background: var(--white); }
.door-number,
.panela-card-index,
.recipe-row-number {
  font-family: var(--font-display);
  color: var(--ochre-dark);
  font-size: clamp(1.6rem, 1.25rem + 1.2vw, 2.4rem);
  line-height: 1;
}
.panela-door > div { align-self: end; padding-top: 4rem; }
.panela-door h3 { margin-top: .5rem; font-size: clamp(2rem,1.5rem + 1.6vw,3rem); }
.panela-door p:last-child { margin-top: 1rem; color: var(--slate-soft); }
.door-arrow { justify-self: end; color: var(--ochre-dark); font-size: 1.3rem; }

.panela-featured { background: var(--white); }
.panela-card-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0,1fr));
  gap: 1px;
  background: var(--line);
  border: 1px solid var(--line);
}
.panela-card {
  min-height: 25rem;
  padding: clamp(1.6rem, 3vw, 2.5rem);
  background: var(--paper);
  display: flex;
  flex-direction: column;
  text-decoration: none;
}
.panela-card:hover { background: #F1EEE7; }
.panela-card .badge { align-self: flex-start; }
.panela-card-index { margin-top: auto; padding-top: 4rem; }
.panela-card h3 { margin-top: .8rem; font-size: clamp(1.9rem, 1.5rem + 1.5vw, 2.8rem); }
.panela-card > p { margin-top: .75rem; color: var(--slate-soft); max-width: 34rem; }
.panela-card .text-link { margin-top: 1.7rem; align-self: flex-start; }

.relation-grid {
  display: grid;
  grid-template-columns: minmax(0,.72fr) minmax(0,1fr);
  gap: clamp(3rem,8vw,8rem);
  align-items: start;
}
.panela-closing { background: var(--paper-deep); }
.panela-note-section { padding-block: 2rem 5rem; }

.recipe-catalog { border-top: 1px solid var(--line); }
.recipe-row {
  display: grid;
  grid-template-columns: 5rem minmax(0,1fr) auto;
  gap: clamp(1.25rem, 3vw, 2.5rem);
  align-items: center;
  padding: clamp(1.8rem, 3.5vw, 3rem) 0;
  border-bottom: 1px solid var(--line);
  text-decoration: none;
}
.recipe-row:hover h2 { color: var(--ochre-dark); }
.recipe-row h2 { margin-top: .75rem; font-size: clamp(2rem, 1.5rem + 1.8vw, 3.3rem); }
.recipe-row p { margin-top: .75rem; color: var(--slate-soft); max-width: 48rem; }

.recipe-descriptor {
  font-family: var(--font-display);
  font-size: clamp(1.25rem, 1.05rem + .8vw, 1.75rem);
  line-height: 1.45;
  color: var(--slate-soft);
  max-width: 50rem;
}
.recipe-hero-meta {
  border-left: 1px solid var(--line);
  padding-left: clamp(1.5rem,3vw,3rem);
  display: flex;
  flex-wrap: wrap;
  gap: .6rem;
  align-content: flex-start;
}
.recipe-hero-meta p { flex-basis: 100%; margin-top: 1.1rem; color: var(--slate-soft); }
.recipe-section,
.food-section,
.story-section,
.method-section { padding-block: clamp(4.5rem, 8vw, 7.5rem); border-top: 1px solid var(--line); }
.recipe-section.alt,
.food-section.alt,
.story-section.alt,
.method-section.alt { background: var(--white); }
.recipe-section.dark,
.food-section.dark,
.story-section.dark,
.method-section.dark { background: var(--slate); color: var(--paper); }
.recipe-section.dark .eyebrow,
.food-section.dark .eyebrow,
.story-section.dark .eyebrow,
.method-section.dark .eyebrow { color: #E6BD78; }
.recipe-section.dark .lead,
.food-section.dark .lead,
.story-section.dark .lead,
.method-section.dark .lead { color: #D3D7D7; }
.recipe-section.dark .text-link,
.food-section.dark .text-link { color: #E0C38F; border-bottom-color: rgba(224,195,143,.55); }
.recipe-section-grid,
.food-section-grid,
.story-section-grid,
.method-section-grid {
  display: grid;
  grid-template-columns: minmax(12rem,.36fr) minmax(0,1fr);
  gap: clamp(2rem,7vw,7rem);
}
.recipe-section-heading,
.food-section-heading,
.story-section-heading,
.method-section-heading { position: sticky; top: 8.5rem; align-self: start; }
.recipe-section-heading h2,
.food-section-heading h2,
.story-section-heading h2,
.method-section-heading h2 { margin-top: .8rem; font-size: clamp(2rem,1.6rem + 1.6vw,3.3rem); }
.recipe-section-content,
.food-section-content,
.story-prose,
.method-content { max-width: 59rem; }
.recipe-section-content > * + *,
.food-section-content > * + *,
.story-prose > * + *,
.method-content > * + * { margin-top: 1.25rem; }
.clean-list,
.method-list {
  margin: 1.6rem 0 0;
  padding: 0;
  list-style: none;
  border-top: 1px solid var(--line);
}
.clean-list li,
.method-list li {
  padding: .95rem 0;
  border-bottom: 1px solid var(--line);
}
.method-list { counter-reset: panela-step; }
.method-list li {
  counter-increment: panela-step;
  display: grid;
  grid-template-columns: 2.6rem 1fr;
  gap: 1rem;
}
.method-list li::before {
  content: counter(panela-step, decimal-leading-zero);
  font-family: var(--font-display);
  color: var(--ochre-dark);
}
.ingredients-detailed li { padding-block: .7rem; }

.mini-related-grid {
  display: grid;
  grid-template-columns: repeat(3,minmax(0,1fr));
  gap: 1px;
  background: var(--line);
  border: 1px solid var(--line);
}
.mini-related {
  min-height: 9rem;
  background: var(--paper);
  padding: 1.4rem;
  display: grid;
  grid-template-columns: 1fr auto;
  grid-template-rows: auto 1fr;
  gap: .8rem 1rem;
  text-decoration: none;
}
.mini-related .eyebrow { grid-column: 1/-1; }
.mini-related strong { align-self:end; font-family:var(--font-display); font-size:1.25rem; font-weight:500; }
.mini-related:hover strong { color: var(--ochre-dark); }

.food-grid {
  display: grid;
  grid-template-columns: repeat(2,minmax(0,1fr));
  gap: 1px;
  background: var(--line);
  border: 1px solid var(--line);
}
.food-card {
  min-height: 16rem;
  padding: clamp(1.5rem,3vw,2.3rem);
  background: var(--paper);
  display: grid;
  grid-template-columns: 5rem 1fr;
  gap: 1.5rem;
  text-decoration: none;
}
.food-card:last-child { grid-column: 1/-1; }
.food-card:hover { background: var(--white); }
.food-letter {
  font-family: var(--font-display);
  font-size: 4rem;
  line-height: .9;
  color: var(--paper-deep);
  -webkit-text-stroke: 1px var(--ochre-dark);
}
.food-card h2 { margin-top:.45rem; font-size:clamp(1.8rem,1.45rem + 1.25vw,2.7rem); }
.food-card p:last-child { margin-top:.75rem; color:var(--slate-soft); }
.definition-strip {
  display:flex;
  flex-wrap:wrap;
  gap:.8rem 1rem;
  align-items:center;
  margin-top:2rem;
  padding:1.25rem 0;
  border-top:1px solid var(--line);
  border-bottom:1px solid var(--line);
  font-family:var(--font-display);
  font-size:clamp(1.1rem,1rem + .5vw,1.4rem);
}
.definition-strip span:nth-child(even) { color:var(--ochre-dark); }

.story-feature {
  display:grid;
  grid-template-columns:minmax(8rem,.3fr) minmax(0,1fr);
  gap:clamp(2rem,6vw,6rem);
  align-items:start;
}
.story-number {
  font-family:var(--font-display);
  font-size:clamp(5rem,10vw,10rem);
  line-height:.8;
  color:var(--paper-deep);
  -webkit-text-stroke:1px var(--line);
}
.story-feature h2 { font-size:clamp(2.5rem,2rem + 2.5vw,4.7rem); }
.story-feature .lead { max-width:52rem; margin-top:1rem; }
.story-feature .button { margin-top:2rem; }

.source-grid {
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:1px;
  background:var(--line);
  border:1px solid var(--line);
}
.source-grid article { background:var(--paper); padding:clamp(1.4rem,3vw,2.2rem); min-height:17rem; }
.source-grid span { font-family:var(--font-display); color:var(--ochre-dark); font-size:1.4rem; }
.source-grid h3 { margin-top:3rem; font-size:clamp(1.4rem,1.2rem + .8vw,1.9rem); }
.source-grid p { margin-top:.8rem; color:var(--slate-soft); }
.state-list { border-top:1px solid var(--line); margin-top:2rem; }
.state-list > div { display:grid; grid-template-columns:11rem 1fr; gap:2rem; align-items:start; padding:1.15rem 0; border-bottom:1px solid var(--line); }
.state-list p { color:var(--slate-soft); }
.equation-list {
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  border-top:1px solid var(--line);
  border-bottom:1px solid var(--line);
  margin-block:2rem;
}
.equation-list span { padding:1.2rem 1.2rem 1.2rem 0; font-family:var(--font-display); font-size:clamp(1.15rem,1rem + .6vw,1.5rem); }
.equation-list span:nth-child(even) { border-left:1px solid var(--line); padding-left:1.2rem; }
.equation-list span:nth-child(n+3) { border-top:1px solid var(--line); }

@media (max-width: 68rem) {
  .panela-hero-grid,.panela-list-grid,.recipe-hero-grid,.food-hero-grid,.story-hero-grid,.method-hero-grid,
  .relation-grid,.recipe-section-grid,.food-section-grid,.story-section-grid,.method-section-grid { grid-template-columns:1fr; }
  .panela-door-grid { grid-template-columns:1fr; }
  .panela-door { min-height:auto; padding:2rem 0; }
  .panela-door + .panela-door { border-left:0; border-top:1px solid var(--line); padding-left:0; }
  .panela-door > div { padding-top:3rem; }
  .recipe-section-heading,.food-section-heading,.story-section-heading,.method-section-heading { position:static; }
  .recipe-hero-meta { border-left:0; border-top:1px solid var(--line); padding:1.5rem 0 0; }
  .mini-related-grid { grid-template-columns:1fr; }
  .food-grid { grid-template-columns:1fr; }
  .food-card:last-child { grid-column:auto; }
  .story-feature { grid-template-columns:1fr; }
  .story-number { font-size:5rem; }
}
@media (max-width: 48rem) {
  .panela-card-grid,.source-grid,.equation-list { grid-template-columns:1fr; }
  .recipe-row { grid-template-columns:3rem 1fr; }
  .recipe-row .door-arrow { grid-column:2; justify-self:start; }
  .food-card { grid-template-columns:3rem 1fr; }
  .food-letter { font-size:2.7rem; }
  .state-list > div { grid-template-columns:1fr; gap:.7rem; }
  .equation-list span:nth-child(even) { border-left:0; padding-left:0; }
  .equation-list span + span { border-top:1px solid var(--line); }
}

/* =========================================================
   ETAPA 39.6 · NUTRIÇÃO & EVIDÊNCIA
   ========================================================= */

.evidence-title-link { color: inherit; text-decoration: none; }
.evidence-title-link:hover { color: #E0C38F; }

.evidence-hero {
  background: var(--slate);
  color: var(--paper);
  padding-block: clamp(5.5rem, 10vw, 9rem) clamp(4.5rem, 8vw, 7rem);
}
.evidence-hero .eyebrow { color: #E6BD78; }
.evidence-hero .lead, .evidence-hero p { color: #D5D9D8; }
.evidence-hero-grid {
  display:grid;
  grid-template-columns:minmax(0,1.08fr) minmax(18rem,.72fr);
  gap:clamp(3rem,8vw,8rem);
  align-items:end;
}
.evidence-hero h1 { max-width: 62rem; }
.evidence-hero-note {
  border-left:1px solid rgba(255,255,255,.22);
  padding-left:clamp(1.5rem,3vw,3rem);
  max-width:38rem;
}
.evidence-principles { background: var(--white); }
.evidence-principle-grid {
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  border-top:1px solid var(--line);
  border-bottom:1px solid var(--line);
}
.evidence-principle { padding:2rem clamp(1.2rem,2.5vw,2rem) 2.25rem 0; }
.evidence-principle + .evidence-principle { border-left:1px solid var(--line); padding-left:clamp(1.2rem,2.5vw,2rem); }
.evidence-principle span { font-family:var(--font-display); color:var(--ochre-dark); font-size:1.45rem; }
.evidence-principle h2 { margin-top:2.7rem; font-size:clamp(1.55rem,1.25rem + 1vw,2.15rem); }
.evidence-principle p { margin-top:.8rem; color:var(--slate-soft); }

.evidence-catalog { border-top:1px solid var(--line); }
.evidence-row {
  display:grid;
  grid-template-columns:5rem minmax(0,1fr) minmax(12rem,.3fr);
  gap:clamp(1.25rem,3vw,3rem);
  align-items:start;
  padding:clamp(2rem,4vw,3.5rem) 0;
  border-bottom:1px solid var(--line);
  text-decoration:none;
}
.evidence-row-number { font-family:var(--font-display); color:var(--ochre-dark); font-size:1.5rem; }
.evidence-row h2 { margin-top:.55rem; font-size:clamp(2rem,1.45rem + 1.9vw,3.35rem); }
.evidence-row:hover h2 { color:var(--ochre-dark); }
.evidence-row-summary { color:var(--slate-soft); max-width:48rem; margin-top:.85rem; }
.evidence-row-meta { color:var(--clay); font-size:.78rem; line-height:1.55; text-transform:uppercase; letter-spacing:.055em; border-left:1px solid var(--line); padding-left:1.25rem; }

.evidence-article-hero {
  background:var(--slate);
  color:var(--paper);
  padding-block:clamp(4.8rem,9vw,8.2rem) clamp(3.8rem,7vw,6rem);
}
.evidence-article-hero .eyebrow { color:#E6BD78; }
.evidence-article-hero .lead, .evidence-article-hero p { color:#D4D8D7; }
.evidence-article-hero-grid {
  display:grid;
  grid-template-columns:minmax(0,1.15fr) minmax(17rem,.55fr);
  gap:clamp(3rem,8vw,8rem);
  align-items:end;
}
.evidence-article-hero h1 { max-width:65rem; font-size:clamp(2.75rem,1.8rem + 4vw,6.1rem); }
.evidence-article-meta { border-left:1px solid rgba(255,255,255,.22); padding-left:clamp(1.4rem,3vw,2.7rem); }
.evidence-article-meta dl { margin:1.6rem 0 0; }
.evidence-article-meta div { padding:.8rem 0; border-top:1px solid rgba(255,255,255,.16); }
.evidence-article-meta dt { color:#BFC5C4; font-size:.72rem; text-transform:uppercase; letter-spacing:.08em; }
.evidence-article-meta dd { margin:.28rem 0 0; color:var(--paper); }

.evidence-summary {
  background:var(--paper-deep);
  padding-block:clamp(3rem,6vw,5rem);
}
.evidence-summary-grid {
  display:grid;
  grid-template-columns:minmax(10rem,.32fr) minmax(0,1fr);
  gap:clamp(2rem,7vw,7rem);
}
.evidence-summary h2 { font-size:clamp(1.8rem,1.45rem + 1.2vw,2.6rem); }
.key-points { list-style:none; margin:0; padding:0; border-top:1px solid #CFC9BE; }
.key-points li { display:grid; grid-template-columns:2.5rem 1fr; gap:1rem; padding:1rem 0; border-bottom:1px solid #CFC9BE; }
.key-points li::before { content:"→"; color:var(--ochre-dark); font-family:var(--font-display); }

.evidence-body-section { padding-block:clamp(4rem,7vw,6.8rem); border-top:1px solid var(--line); }
.evidence-body-section.alt { background:var(--white); }
.evidence-body-grid {
  display:grid;
  grid-template-columns:minmax(12rem,.32fr) minmax(0,1fr);
  gap:clamp(2rem,7vw,7rem);
}
.evidence-body-heading { position:sticky; top:8.5rem; align-self:start; }
.evidence-body-heading h2 { margin-top:.75rem; font-size:clamp(1.9rem,1.55rem + 1.25vw,2.9rem); }
.evidence-prose { max-width:52rem; }
.evidence-prose > * + * { margin-top:1.25em; }
.evidence-prose h3 { margin-top:2em; font-size:clamp(1.35rem,1.15rem + .7vw,1.85rem); }
.evidence-prose ul { padding-left:1.25rem; }
.evidence-prose li + li { margin-top:.55rem; }
.evidence-prose a { color:var(--ochre-dark); text-underline-offset:.16em; }

.evidence-box {
  margin-block:2rem;
  border:1px solid var(--line);
  padding:clamp(1.4rem,3vw,2.2rem);
  background:var(--paper);
}
.evidence-box.dark { background:var(--slate); color:var(--paper); border-color:var(--slate); }
.evidence-box.dark p, .evidence-box.dark li { color:#D5D9D8; }
.evidence-box h3 { margin:0; }
.evidence-box p { margin-top:.8rem; color:var(--slate-soft); }
.evidence-box ul { margin:1rem 0 0; padding-left:1.2rem; }
.evidence-equation {
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:1px;
  margin-block:2rem;
  background:var(--line);
  border:1px solid var(--line);
}
.evidence-equation > div { background:var(--paper); padding:1.4rem; }
.evidence-equation strong { display:block; font-family:var(--font-display); font-size:1.35rem; font-weight:500; }
.evidence-equation span { display:block; margin-top:.5rem; color:var(--clay); font-size:.84rem; }

.sources-section { background:var(--white); }
.sources-list { list-style:none; padding:0; margin:1.5rem 0 0; border-top:1px solid var(--line); }
.sources-list li { padding:1.15rem 0; border-bottom:1px solid var(--line); }
.sources-list a { color:var(--slate); text-decoration:none; }
.sources-list a:hover { color:var(--ochre-dark); text-decoration:underline; text-underline-offset:.2em; }
.sources-list small { display:block; margin-top:.3rem; color:var(--clay); }
.article-disclaimer { margin-top:2.3rem; padding-top:1.4rem; border-top:1px solid var(--line); color:var(--clay); font-size:.86rem; }

.evidence-related {
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:1px;
  background:var(--line);
  border:1px solid var(--line);
}
.evidence-related a { background:var(--paper); padding:1.5rem; text-decoration:none; min-height:10rem; }
.evidence-related a:hover { background:var(--paper-deep); }
.evidence-related strong { display:block; margin-top:2.2rem; font-family:var(--font-display); font-size:1.3rem; font-weight:500; }

@media (max-width:68rem) {
  .evidence-hero-grid,.evidence-article-hero-grid,.evidence-summary-grid,.evidence-body-grid { grid-template-columns:1fr; }
  .evidence-hero-note,.evidence-article-meta { border-left:0; border-top:1px solid rgba(255,255,255,.22); padding:1.5rem 0 0; }
  .evidence-principle-grid { grid-template-columns:1fr; }
  .evidence-principle { padding:1.6rem 0; }
  .evidence-principle + .evidence-principle { border-left:0; border-top:1px solid var(--line); padding-left:0; }
  .evidence-principle h2 { margin-top:1.7rem; }
  .evidence-row { grid-template-columns:4rem 1fr; }
  .evidence-row-meta { grid-column:2; border-left:0; border-top:1px solid var(--line); padding:1rem 0 0; }
  .evidence-body-heading { position:static; }
}
@media (max-width:48rem) {
  .evidence-row { grid-template-columns:2.7rem 1fr; }
  .evidence-equation,.evidence-related { grid-template-columns:1fr; }
}


/* =========================================================
   ETAPA 39.7 — Serviços + Contacto
   ========================================================= */
.services-hero,
.contact-page-hero {
  padding-block: clamp(5.5rem, 10vw, 9.5rem) clamp(5rem, 8vw, 8rem);
}
.services-hero-grid,
.contact-page-grid {
  display:grid;
  grid-template-columns:minmax(0,1.12fr) minmax(18rem,.72fr);
  gap:clamp(3rem,8vw,8rem);
  align-items:end;
}
.services-hero h1,
.contact-page-hero h1 {
  max-width:62rem;
  font-size:clamp(3rem,2rem + 4.6vw,6.7rem);
}
.services-hero-note,
.contact-page-intro {
  border-left:1px solid var(--line);
  padding-left:clamp(1.5rem,3vw,3rem);
  max-width:36rem;
}
.services-hero-note > p:not(.lead),
.contact-page-intro > p:not(.lead) { color:var(--slate-soft); }

.service-detail-section { background:var(--white); }
.service-detail-alt { background:var(--paper-deep); }
.service-detail-grid {
  display:grid;
  grid-template-columns:minmax(10rem,.34fr) minmax(0,1fr);
  gap:clamp(3rem,8vw,8rem);
  align-items:start;
}
.service-detail-index {
  position:sticky;
  top:8rem;
  border-right:1px solid var(--line);
  min-height:17rem;
  padding-right:clamp(1.5rem,3vw,3rem);
  display:flex;
  flex-direction:column;
  justify-content:space-between;
}
.service-detail-index span {
  font-family:var(--font-display);
  color:var(--ochre-dark);
  font-size:clamp(4rem,7vw,7rem);
  line-height:.8;
  letter-spacing:-.05em;
}
.service-detail-index p {
  color:var(--clay);
  font-size:.78rem;
  letter-spacing:.1em;
  text-transform:uppercase;
}
.service-detail-main { max-width:58rem; }
.service-detail-main h2 { font-size:clamp(2.45rem,1.9rem + 2.4vw,4.2rem); max-width:52rem; }
.service-principles {
  display:grid;
  grid-template-columns:repeat(3,1fr);
  border-top:1px solid var(--line);
  border-bottom:1px solid var(--line);
  margin-top:2.4rem;
}
.service-principles > div { padding:1.7rem 1.4rem 1.7rem 0; }
.service-principles > div + div { border-left:1px solid var(--line); padding-left:1.4rem; }
.service-principles span,
.training-sequence span { color:var(--ochre-dark); font-family:var(--font-display); }
.service-principles h3 { margin-top:1rem; font-size:1.45rem; }
.service-principles p { margin-top:.65rem; color:var(--slate-soft); font-size:.94rem; }
.scope-note {
  margin-top:2rem !important;
  padding:1.1rem 1.25rem;
  border-left:2px solid var(--ochre);
  background:color-mix(in srgb,var(--paper) 78%,transparent);
  color:var(--slate-soft);
  font-size:.92rem;
}
.service-scope-list {
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:1px;
  background:var(--line);
  border:1px solid var(--line);
  margin-top:2.5rem;
}
.service-scope-list article { background:var(--paper); padding:1.6rem; min-height:15rem; }
.service-detail-alt .service-scope-list article { background:var(--white); }
.service-scope-list h3 { margin-top:.5rem; font-size:1.5rem; }
.service-scope-list article > p:last-child { margin-top:1rem; color:var(--slate-soft); }
.training-sequence { margin-top:2.5rem; border-top:1px solid var(--line); }
.training-sequence > div {
  display:grid;
  grid-template-columns:4rem 1fr;
  gap:1.25rem;
  padding:1.35rem 0;
  border-bottom:1px solid var(--line);
}
.training-sequence p { color:var(--slate-soft); }
.training-sequence strong { color:var(--slate); font-weight:600; }
.service-boundary { background:var(--slate); color:var(--paper); }
.service-boundary .eyebrow { color:#D7B67C; }
.service-boundary .lead,
.service-boundary p { color:#D8DBDA; }
.service-boundary .text-link { color:#E0C38F; border-bottom-color:rgba(224,195,143,.5); }
.service-boundary-grid {
  display:grid;
  grid-template-columns:minmax(0,.82fr) minmax(0,1fr);
  gap:clamp(3rem,8vw,8rem);
  align-items:start;
}
.section-end-link { margin-top:2rem; display:flex; justify-content:flex-end; }
.contact-page-cta { margin-top:1.35rem; }

.contact-page-hero { background:var(--paper-deep); }
.contact-channels { background:var(--paper); }
.contact-page-list { font-style:normal; border-top:1px solid var(--line); }
.contact-page-list a {
  display:grid;
  grid-template-columns:9rem minmax(0,1fr) auto;
  gap:2rem;
  align-items:baseline;
  padding:1.9rem 0;
  border-bottom:1px solid var(--line);
  text-decoration:none;
}
.contact-page-list a:hover strong,
.contact-page-list a:hover .contact-page-action { color:var(--ochre-dark); }
.contact-page-label { color:var(--clay); font-size:.76rem; text-transform:uppercase; letter-spacing:.1em; }
.contact-page-list strong { font-family:var(--font-display); font-size:clamp(1.3rem,1rem + 1vw,2rem); font-weight:500; overflow-wrap:anywhere; }
.contact-page-action { color:var(--clay); font-size:.85rem; font-weight:600; }
.contact-intent-section { background:var(--white); }
.contact-intent-grid,
.contact-expectations-grid,
.contact-closing-grid {
  display:grid;
  grid-template-columns:minmax(0,.72fr) minmax(0,1fr);
  gap:clamp(3rem,8vw,8rem);
  align-items:start;
}
.contact-intent-list { border-top:1px solid var(--line); }
.contact-intent-list a {
  display:grid;
  grid-template-columns:3.5rem minmax(0,1fr) auto;
  gap:1.25rem;
  align-items:center;
  padding:1.45rem 0;
  border-bottom:1px solid var(--line);
  text-decoration:none;
}
.contact-intent-list > a > span { font-family:var(--font-display); color:var(--ochre-dark); }
.contact-intent-list h3 { font-size:1.4rem; }
.contact-intent-list p { margin-top:.25rem; color:var(--clay); font-size:.9rem; }
.contact-intent-list strong { color:var(--ochre-dark); font-size:.84rem; font-weight:600; white-space:nowrap; }
.contact-expectations { background:var(--paper); }
.contact-expectations-list { border-top:1px solid var(--line); }
.contact-expectations-list > div { display:grid; grid-template-columns:3.5rem 1fr; gap:1.25rem; padding:1.45rem 0; border-bottom:1px solid var(--line); }
.contact-expectations-list span { font-family:var(--font-display); color:var(--ochre-dark); }
.contact-expectations-list p { color:var(--slate-soft); }
.contact-expectations-list strong { color:var(--slate); }
.contact-closing { background:var(--paper-deep); }

@media (max-width:68rem) {
  .services-hero-grid,
  .contact-page-grid,
  .service-detail-grid,
  .service-boundary-grid,
  .contact-intent-grid,
  .contact-expectations-grid,
  .contact-closing-grid { grid-template-columns:1fr; }
  .services-hero-note,
  .contact-page-intro { border-left:0; border-top:1px solid var(--line); padding-left:0; padding-top:2rem; max-width:46rem; }
  .service-detail-index { position:static; min-height:auto; border-right:0; border-bottom:1px solid var(--line); padding:0 0 1.5rem; flex-direction:row; align-items:end; gap:1.5rem; }
  .service-detail-index span { font-size:4.5rem; }
}
@media (max-width:48rem) {
  .service-principles,
  .service-scope-list { grid-template-columns:1fr; }
  .service-principles > div { padding:1.35rem 0; }
  .service-principles > div + div { border-left:0; border-top:1px solid var(--line); padding-left:0; }
  .service-scope-list article { min-height:auto; }
  .contact-page-list a { grid-template-columns:1fr; gap:.35rem; }
  .contact-intent-list a { grid-template-columns:2.5rem 1fr; }
  .contact-intent-list strong { grid-column:2; }
}


/* =========================================================
   ETAPA 39.8 — Pesquisa + páginas institucionais
   ========================================================= */
.nav-search-item a { display:inline-flex; align-items:center; gap:.4rem; }
.nav-search-item svg { width:1.05rem; height:1.05rem; }
.nav-search-label { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0; }

.search-hero,
.institutional-hero,
.notfound-hero { padding-block:clamp(5.5rem,10vw,9.5rem) clamp(4.5rem,8vw,7.5rem); }
.search-hero { background:var(--paper-deep); }
.search-hero-grid,
.institutional-hero-grid { display:grid; grid-template-columns:minmax(0,1.12fr) minmax(18rem,.72fr); gap:clamp(3rem,8vw,8rem); align-items:end; }
.search-hero h1,
.institutional-hero h1 { max-width:58rem; font-size:clamp(3.25rem,2rem + 5vw,7rem); }
.search-hero-note,
.institutional-intro { border-left:1px solid var(--line); padding-left:clamp(1.5rem,3vw,3rem); max-width:38rem; }
.search-hero-note > p:not(.lead),
.institutional-intro > p:not(.lead) { color:var(--slate-soft); }

.site-search-form { max-width:62rem; }
.site-search-form label { display:block; margin-bottom:.65rem; color:var(--slate); font-size:.82rem; font-weight:600; letter-spacing:.04em; }
.search-input-row { display:grid; grid-template-columns:minmax(0,1fr) auto; gap:.75rem; }
.site-search-form input[type="search"] { width:100%; min-height:3.35rem; border:1px solid var(--clay); background:var(--white); color:var(--slate); padding:.8rem 1rem; font:inherit; font-size:1rem; border-radius:var(--radius-sm); }
.site-search-form input[type="search"]:focus { outline:3px solid var(--focus); outline-offset:2px; border-color:var(--focus); }
.search-status { min-height:2rem; margin-top:1.4rem; color:var(--clay); font-size:.9rem; }
.search-results { border-top:1px solid var(--line); }
.search-result { display:grid; grid-template-columns:minmax(8rem,.22fr) minmax(0,1fr) auto; gap:clamp(1rem,3vw,2.5rem); padding:1.7rem 0; border-bottom:1px solid var(--line); align-items:start; }
.search-result-category { color:var(--ochre-dark); font-size:.75rem; text-transform:uppercase; letter-spacing:.08em; }
.search-result h2 { font-size:clamp(1.35rem,1.1rem + .7vw,1.9rem); }
.search-result h2 a { color:var(--slate); text-decoration:none; }
.search-result h2 a:hover { color:var(--ochre-dark); text-decoration:underline; text-underline-offset:.18em; }
.search-result p { margin-top:.55rem; color:var(--slate-soft); max-width:48rem; }
.search-result-arrow { color:var(--ochre-dark); font-family:var(--font-display); font-size:1.4rem; }
.search-empty { padding:2rem 0; max-width:48rem; color:var(--slate-soft); }
.search-browse { background:var(--white); }
.search-browse-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:1px; background:var(--line); border:1px solid var(--line); }
.search-browse-grid a { background:var(--paper); min-height:14rem; padding:1.5rem; text-decoration:none; display:flex; flex-direction:column; }
.search-browse-grid a:hover { background:var(--paper-deep); }
.search-browse-grid span { color:var(--ochre-dark); font-family:var(--font-display); }
.search-browse-grid strong { margin-top:auto; font-family:var(--font-display); color:var(--slate); font-size:1.55rem; font-weight:500; }
.search-browse-grid p { margin-top:.65rem; color:var(--clay); font-size:.9rem; }

.institutional-hero { background:var(--white); }
.institutional-body { background:var(--paper); }
.institutional-layout { display:grid; grid-template-columns:minmax(13rem,.3fr) minmax(0,1fr); gap:clamp(3rem,8vw,8rem); align-items:start; }
.institutional-index { position:sticky; top:8.5rem; border-top:1px solid var(--line); border-bottom:1px solid var(--line); padding:1.25rem 0; }
.institutional-index ul { list-style:none; padding:0; margin:1.2rem 0 0; }
.institutional-index li { padding:.6rem 0; border-top:1px solid color-mix(in srgb,var(--line) 75%,transparent); color:var(--slate-soft); font-size:.9rem; }
.institutional-prose { max-width:55rem; }
.institutional-prose h2 { margin-top:2.2em; font-size:clamp(1.7rem,1.35rem + 1vw,2.45rem); }
.institutional-prose h2:first-child { margin-top:0; }
.institutional-prose p { color:var(--slate-soft); }
.institutional-prose a { color:var(--ochre-dark); text-underline-offset:.18em; }
.institutional-updated { margin-top:3rem !important; padding-top:1.25rem; border-top:1px solid var(--line); font-size:.85rem; color:var(--clay) !important; }

.notfound-hero { min-height:calc(100svh - 5.25rem); display:flex; align-items:center; background:var(--paper-deep); }
.notfound-grid { display:grid; grid-template-columns:minmax(12rem,.45fr) minmax(0,1fr); gap:clamp(3rem,8vw,8rem); align-items:center; }
.notfound-code { font-family:var(--font-display); font-size:clamp(8rem,18vw,18rem); line-height:.7; color:color-mix(in srgb,var(--ochre) 48%,var(--paper)); letter-spacing:-.07em; }
.notfound-grid h1 { max-width:50rem; }

@media (max-width:68rem) {
  .nav-search-item svg { display:none; }
  .nav-search-label { position:static; width:auto; height:auto; margin:0; overflow:visible; clip:auto; white-space:normal; }
  .search-hero-grid,.institutional-hero-grid,.institutional-layout,.notfound-grid { grid-template-columns:1fr; }
  .search-hero-note,.institutional-intro { border-left:0; border-top:1px solid var(--line); padding-left:0; padding-top:2rem; max-width:48rem; }
  .institutional-index { position:static; }
  .search-browse-grid { grid-template-columns:repeat(2,1fr); }
}
@media (max-width:48rem) {
  .search-input-row { grid-template-columns:1fr; }
  .search-result { grid-template-columns:1fr auto; }
  .search-result-category { grid-column:1 / -1; }
  .search-browse-grid { grid-template-columns:1fr; }
  .search-browse-grid a { min-height:10rem; }
  .notfound-code { font-size:8rem; }
}


/* =========================================================
   ETAPA 40.4 · Acessibilidade — refinamentos de QA
   ========================================================= */
/* Foco com contraste suficiente em superfícies escuras. */
.dark :focus-visible,
.evidence-home :focus-visible,
.public-health-section :focus-visible,
.about-next :focus-visible,
.panela-manifesto :focus-visible,
.evidence-hero :focus-visible,
.evidence-article-hero :focus-visible,
.service-boundary :focus-visible {
  outline-color: var(--paper);
}

/* Em fundo papel profundo, Argila fica ligeiramente abaixo de 4.5:1
   em texto pequeno; nestes casos usa-se Ardósia suave, já pertencente
   ao sistema cromático aprovado. */
.contact-home .contact-list span,
.contact-home .contact-list small,
.teaching-section .subject-label,
.contact-page-hero .contact-page-label,
.search-browse-grid a:hover p {
  color: var(--slate-soft);
}

/* O destino da ligação de salto não fica escondido sob o cabeçalho sticky. */
main#conteudo:focus { outline: none; }

@media (forced-colors: active) {
  :focus-visible { outline: 3px solid CanvasText; }
  .primary-nav a[aria-current="page"],
  .panela-subnav a[aria-current="page"] {
    text-decoration: underline;
    text-decoration-thickness: .14em;
    text-underline-offset: .2em;
  }
}

.service-detail-alt .service-detail-index p,
.service-detail-alt .service-mode {
  color: var(--slate-soft);
}

.site-search-form input[type="search"]::placeholder {
  color: var(--slate-soft);
  opacity: 1;
}

/* ETAPA 40.5 — pesquisa */
.search-help {
  margin:-.15rem 0 .8rem;
  max-width:48rem;
  color:var(--slate-soft);
  font-size:.9rem;
}

/* ETAPA 40.9.3 — estados documentais, percursos em fundo escuro, retorno contextual */

.estado-explicador {
  flex-basis:100%;
  margin-top:1.25rem;
  padding-top:1.1rem;
  border-top:1px solid var(--line);
  font-size:.9rem;
}
.estado-explicador > summary {
  cursor:pointer;
  color:var(--slate-soft);
  font-weight:550;
}
.estado-explicador > summary:focus-visible { outline:3px solid var(--focus); outline-offset:4px; }
.estado-explicador dl { display:grid; gap:.9rem; margin:1.1rem 0 0; }
.estado-explicador dt {
  color:var(--ochre-dark);
  font-size:.72rem;
  font-weight:650;
  letter-spacing:.12em;
  text-transform:uppercase;
}
.estado-explicador dd { margin:.3rem 0 0; color:var(--slate-soft); }
.estado-explicador .text-link { margin-top:1.2rem; font-size:.85rem; }

/* Percurso sobre fundo escuro: substitui os estilos inline dos artigos de Evidência. */
.case-breadcrumbs-dark { color:#BFC5C4; }
.case-breadcrumbs-dark a { color:inherit; }

.retorno-contextual {
  border-top:1px solid var(--line);
  padding-block:clamp(1.75rem,3.5vw,2.5rem);
}
.retorno-contextual .text-link { font-size:.9rem; }

/* ETAPA 40.9.4 — ligações de ingrediente e aproximação composição/limite */

/* Ligação discreta do ingrediente para a página de alimento.
   Conserva a cor, o tamanho e o peso do texto editorial; sem ícone. */
.ingredient-link {
  color: inherit;
  text-decoration: underline;
  text-decoration-color: rgba(127,87,24,.35);
  text-decoration-thickness: .06em;
  text-underline-offset: .18em;
  transition: text-decoration-color var(--transition);
}
.ingredient-link:hover { text-decoration-color: currentColor; }

/* Aproxima a composição documentada da respectiva secção de limite,
   apenas nas receitas que têm tabela. Não altera .recipe-section em geral. */
.recipe-section.composition-section { padding-bottom: clamp(2.75rem, 5vw, 4.5rem); }
.recipe-section.composition-section + .recipe-section.dark { padding-top: clamp(3rem, 5.5vw, 5rem); }

/* ETAPA 40.9.5 — mapa de leitura dos artigos e dos estudos de caso */

.reading-index {
  border-top: 1px solid var(--line);
  border-bottom: 1px solid var(--line);
  padding-block: clamp(1.5rem, 3vw, 2.25rem);
}
.reading-index-label {
  margin: 0 0 1.1rem;
  color: var(--clay);
  font-size: var(--step--1);
  font-weight: 600;
  letter-spacing: .16em;
  text-transform: uppercase;
}
.reading-index-list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: .6rem clamp(1.5rem, 4vw, 3.5rem);
}
.reading-index-list a {
  color: var(--slate-soft);
  text-decoration: none;
  border-bottom: 1px solid rgba(127,87,24,.35);
  padding-bottom: .12rem;
  font-size: .92rem;
  line-height: 1.45;
}
.reading-index-list a:hover { color: var(--slate); border-bottom-color: currentColor; }

.reading-index-mobile { display: none; }
.reading-index-mobile > summary {
  cursor: pointer;
  color: var(--clay);
  font-size: var(--step--1);
  font-weight: 600;
  letter-spacing: .16em;
  text-transform: uppercase;
}
.reading-index-mobile > summary:focus-visible { outline: 3px solid var(--focus); outline-offset: 4px; }
.reading-index-mobile .reading-index-list { grid-template-columns: 1fr; gap: .8rem; margin-top: 1.2rem; }

/* Abaixo de 68rem os títulos laterais deixam de ser sticky; é aí que o mapa
   passa a <details>, para não competir com eles nem ocupar altura útil. */
@media (max-width: 68rem) {
  .reading-index-desktop { display: none; }
  .reading-index-mobile { display: block; }
}

/* Âncoras do mapa: impedir que o cabeçalho sticky tape o título de destino.
   Aplica-se apenas aos headings usados pelo mapa. */
.evidence-body-heading h2[id],
.case-section-heading h2[id] { scroll-margin-top: 6.5rem; }

/* ETAPA 40.9.6 — alternativa sem JavaScript na página de Pesquisa */
.search-noscript-links {
  display: flex;
  flex-wrap: wrap;
  gap: .9rem 1.75rem;
  margin-top: 1.1rem;
}
