/* LAARO · pessoas no site
   Topo com mosaico de donos de negócio e seção "É para você" (segmentos + qualquer negócio).
   Fotos ilustrativas geradas no Real Oficial; nunca apresentadas como clientes. */

/* ---------- topo ---------- */
.hero--pessoas { min-height: 100svh; }
.hero--pessoas h1 { grid-column: 1 / 8; font-size: clamp(3.75rem, 9.2vw, 9.75rem); line-height: .9; margin-top: max(8rem, 18svh); }
.hero--pessoas .hero-foot { grid-column: 1 / 8; display: block; }
.hero--pessoas .hero-foot .copy { gap: 1.5rem; }
.hero-for { font-size: var(--step-lead); line-height: 1.25; font-weight: 600; letter-spacing: -0.015em; max-width: 26ch; }
.hero-for span { color: var(--paper-soft); font-weight: 500; }
.hero--pessoas .hero-foot .copy .hero-seo { font-size: var(--step-body); line-height: 1.5; font-weight: 400; letter-spacing: 0; color: var(--paper-soft); max-width: 46ch; }
.hero--pessoas .actions .btn { background: var(--red); color: var(--ink); }
@media (hover: hover) and (pointer: fine) { .hero--pessoas .actions .btn:hover { background: var(--paper); color: var(--ink); } }

.hero-faces { grid-column: 8 / 13; grid-row: 1 / 3; margin: 5.25rem calc(var(--margin) * -1) -2.5rem 0; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: .75rem; height: calc(100svh - 5.25rem); min-height: 35rem; overflow: hidden; position: relative; }
.hero-faces::before, .hero-faces::after { content: ""; position: absolute; left: 0; right: 0; z-index: 2; pointer-events: none; }
.hero-faces::before { top: 0; height: 5rem; background: linear-gradient(var(--night), rgba(17,19,24,0)); }
.hero-faces::after { bottom: 0; height: 7.5rem; background: linear-gradient(rgba(17,19,24,0), var(--night)); }
.hero-faces .col { overflow: hidden; height: 100%; }
.hero-faces .track { display: flex; flex-direction: column; gap: .75rem; padding-bottom: .75rem; animation: faces-up 48s linear infinite; will-change: transform; }
.hero-faces .col:nth-child(2) .track { animation-name: faces-down; animation-duration: 55s; }
.hero-faces .col:nth-child(3) .track { animation-duration: 43s; animation-delay: -14s; }
.hero-faces .dup, .hero-strip .dup { display: contents; }
.hero-faces figure, .hero-strip figure { position: relative; flex: 0 0 auto; overflow: hidden; background: var(--night-2); }
.hero-faces figure { height: 46svh; min-height: 18rem; }
.hero-faces img, .hero-strip img { width: 100%; height: 100%; object-fit: cover; display: block; }
.hero-faces figcaption, .hero-strip figcaption { position: absolute; left: .75rem; bottom: .75rem; background: var(--paper); color: var(--ink); font-size: var(--step-small); font-weight: 700; padding: .4rem .65rem; }
.hero-faces:hover .track { animation-play-state: paused; }
@keyframes faces-up { from { transform: translateY(0); } to { transform: translateY(-50%); } }
@keyframes faces-down { from { transform: translateY(-50%); } to { transform: translateY(0); } }
@keyframes faces-left { from { transform: translateX(0); } to { transform: translateX(-50%); } }
.hero-strip { display: none; }
@media (prefers-reduced-motion: no-preference) {
  .js .hero-faces, .js .hero-strip { opacity: 0; animation: face-in 1000ms var(--ease-out) 200ms forwards; }
}
@keyframes face-in { to { opacity: 1; } }
@media (prefers-reduced-motion: reduce) { .hero-faces .track, .hero-strip .track { animation: none; } }

@media (max-width: 63.99em) {
  .hero--pessoas h1, .hero--pessoas .hero-foot { grid-column: 1 / 9; }
  .hero-faces { grid-column: 9 / 13; grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .hero-faces .col:nth-child(3) { display: none; }
}
@media (max-width: 47.99em) {
  .hero--pessoas { display: flex; flex-direction: column; padding-top: 4.75rem; min-height: 0; }
  .hero-faces { display: none; }
  .hero-strip { display: block; order: -1; overflow: hidden; margin: 0 calc(var(--margin) * -1); }
  .hero-strip .track { display: flex; gap: .625rem; padding-right: .625rem; width: max-content; animation: faces-left 64s linear infinite; will-change: transform; }
  .hero-strip figure { width: 60vw; max-width: 15rem; height: 52svh; min-height: 20rem; max-height: 26rem; }
  .hero--pessoas h1 { margin-top: 1.75rem; font-size: clamp(3.5rem, 17vw, 5rem); }
  .hero--pessoas .hero-foot { margin-top: 1.5rem; }
}

/* ---------- É para você ---------- */
.pv { padding: clamp(5rem, 9vw, 8rem) var(--margin); }
.pv-head { align-items: end; margin-bottom: clamp(2rem, 4vw, 3.5rem); row-gap: 1.25rem; }
.pv-title { grid-column: 1 / 8; display: grid; gap: 1rem; }
.pv-kicker { font-size: var(--step-small); font-weight: 600; letter-spacing: .08em; text-transform: uppercase; color: var(--cobalt-dk); }
.pv-title .dot { color: var(--red); }
.pv-lead { grid-column: 8 / 13; font-size: var(--step-body); line-height: 1.55; color: var(--ink-soft); max-width: 40ch; }
.pv-body { align-items: start; row-gap: var(--gutter); }
.pv-pick { grid-column: 1 / 9; display: grid; gap: .875rem; }
.pv-tiles { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: .875rem; }
.pv-tile { display: flex; flex-direction: column; text-align: left; background: var(--paper); color: var(--ink); overflow: hidden; outline-offset: -4px;
  transition: transform var(--t-hover) var(--ease-out), background-color var(--t-hover) ease, color var(--t-hover) ease; }
.pv-tile img { width: 100%; aspect-ratio: 4 / 4.4; object-fit: cover; display: block; }
.pv-tile > span { display: block; padding: .85rem 1rem 1rem; font-weight: 700; font-size: var(--step-small); line-height: 1.25; }
.pv-tile[aria-selected="true"] { background: var(--night); color: var(--paper); outline: 4px solid var(--red); }
.pv-tile:active { transform: scale(.98); }
@media (hover: hover) and (pointer: fine) { .pv-tile:not([aria-selected="true"]):hover { transform: translateY(-3px); } }
.pv-other { display: grid; grid-template-columns: auto 1fr; align-items: center; column-gap: 1.25rem; text-align: left; background: var(--paper); color: var(--ink); padding: 1.25rem 1.5rem; outline-offset: -4px;
  transition: background-color var(--t-hover) ease, color var(--t-hover) ease; }
.pv-other .pv-plus { width: 3rem; height: 3rem; display: grid; place-items: center; background: var(--red); color: var(--ink); }
.pv-other .pv-plus svg { width: 1.4rem; height: 1.4rem; }
.pv-other strong { display: block; font-size: var(--step-body); font-weight: 700; }
.pv-other small { display: block; font-size: var(--step-small); line-height: 1.45; color: var(--ink-soft); margin-top: .2rem; }
.pv-other[aria-selected="true"] { background: var(--night); color: var(--paper); outline: 4px solid var(--red); }
.pv-other[aria-selected="true"] small { color: var(--paper-soft); }

.pv-panels { grid-column: 9 / 13; position: sticky; top: 5.5rem; }
.pv-panel { background: var(--night); color: var(--paper); padding: clamp(1.75rem, 2.6vw, 2.5rem); display: grid; gap: 1.25rem; }
.pv-panel + .pv-panel { margin-top: 1rem; }
.js .pv-panel[hidden] { display: none; }
.pv-panel .pv-for { font-size: var(--step-small); font-weight: 600; letter-spacing: .08em; text-transform: uppercase; color: var(--paper-soft); }
.pv-panel h3 { font-size: clamp(1.75rem, 1.2rem + 1.4vw, 2.5rem); line-height: 1.05; letter-spacing: -0.03em; font-weight: 800; }
.pv-panel h3 .dot { color: var(--red); }
.pv-panel p { font-size: var(--step-body); line-height: 1.55; color: var(--gelo); }
.pv-panel ul { list-style: none; padding: 0; margin: 0; border-top: 1px solid rgba(255,255,255,.14); }
.pv-panel li { display: flex; gap: .75rem; align-items: baseline; padding: .8rem 0; border-bottom: 1px solid rgba(255,255,255,.14); font-size: var(--step-small); line-height: 1.45; }
.pv-panel li::before { content: ""; width: .5rem; height: .5rem; flex: 0 0 auto; background: var(--red); transform: translateY(-1px); }
.pv-panel .btn { justify-self: stretch; justify-content: space-between; }
.pv-panel .link { justify-self: start; color: var(--paper); }
.pv-note { margin-top: 1.5rem; font-size: var(--step-small); color: var(--ink-soft); }

@media (max-width: 63.99em) {
  .pv-title, .pv-lead { grid-column: 1 / -1; }
  .pv-pick, .pv-panels { grid-column: 1 / -1; }
  .pv-panels { position: static; }
  .pv-tiles { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
@media (max-width: 47.99em) {
  .pv-tiles { grid-template-columns: none; grid-auto-flow: column; grid-template-rows: repeat(2, auto); grid-auto-columns: 42%; overflow-x: auto; scroll-snap-type: x mandatory;
    margin: 0 calc(var(--margin) * -1); padding: 0 var(--margin) .25rem; scrollbar-width: none; }
  .pv-tiles::-webkit-scrollbar { display: none; }
  .pv-tile { scroll-snap-align: start; }
  .pv-other { padding: 1rem; column-gap: 1rem; }
}
@media (max-width: 79.99em) and (min-width: 48em) { .hero-faces figcaption { font-size: .75rem; left: .5rem; bottom: .5rem; max-width: calc(100% - 1rem); } }

/* ---------- Simulador de busca ---------- */
.sim { padding: clamp(5rem, 9vw, 8rem) var(--margin); }
.sim-grid { align-items: center; row-gap: 3rem; }
.sim-copy { grid-column: 1 / 7; display: grid; gap: 1.5rem; align-content: start; }
.sim-kicker { display: flex; align-items: center; gap: .6rem; font-size: var(--step-small); font-weight: 600; letter-spacing: .08em; text-transform: uppercase; color: var(--cobalt-dk); }
.sim-kicker::before { content: ""; width: .6rem; height: .6rem; background: var(--red); }
.sim-title { font-size: clamp(2.25rem, 1.2rem + 3.4vw, 4.25rem); line-height: 1; letter-spacing: -0.04em; font-weight: 700; max-width: 16ch; }
.sim-title .dot { color: var(--red); }
.sim-lead { font-size: var(--step-body); line-height: 1.55; color: var(--ink-soft); max-width: 44ch; }
.sim-form { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem 1.25rem; max-width: 40rem; }
.sim-f { display: flex; flex-direction: column; gap: .5rem; font-size: var(--step-small); font-weight: 600; }
.sim-f--full { grid-column: 1 / -1; }
.sim-f[hidden] { display: none; }
.sim-f input, .sim-f select { height: 3.25rem; box-sizing: border-box; padding: 0 1rem; border: 1px solid var(--gelo-2); background: var(--paper); color: var(--ink); font: 500 1rem/1 var(--font); border-radius: 0; width: 100%; }
.sim-f input:focus, .sim-f select:focus { outline: none; border-color: var(--cobalt); box-shadow: inset 0 -2px 0 var(--cobalt); }
.sim-go { grid-column: 1 / -1; background: var(--night); color: var(--paper); min-height: 3.5rem; }
.sim-go svg { width: 1.2rem; height: 1.2rem; }
@media (hover: hover) and (pointer: fine) { .sim-go:hover { background: var(--cobalt); color: var(--paper); } }
.sim-after { display: grid; gap: 1.1rem; justify-items: start; max-width: 40rem; animation: sim-in 500ms var(--ease-out) both; }
.sim-after[hidden] { display: none; }
.sim-toggle { display: inline-flex; border: 1px solid var(--gelo-2); }
.sim-toggle button { min-height: 2.75rem; padding: 0 1.25rem; font-weight: 600; font-size: var(--step-small); background: var(--paper); color: var(--ink); }
.sim-toggle button[aria-pressed="true"] { background: var(--night); color: var(--paper); }
.sim-verdict { font-size: var(--step-body); line-height: 1.5; max-width: 46ch; }
.sim-note { font-size: .8125rem; line-height: 1.5; color: var(--ink-soft); max-width: 60ch; }

.sim-phone-wrap { grid-column: 8 / 13; display: flex; justify-content: center; }
.sim-phone { width: min(22.5rem, 100%); aspect-ratio: 360 / 740; box-sizing: border-box; padding: .875rem; background: var(--night); border-radius: 3.25rem; box-shadow: 0 40px 80px -30px rgba(17,19,24,.45); }
.sim-screen { position: relative; height: 100%; background: #fff; border-radius: 2.5rem; overflow: hidden; display: flex; flex-direction: column; color: var(--ink); font-size: 15px; }
.sim-notch { height: 34px; display: flex; justify-content: center; align-items: center; flex: 0 0 auto; }
.sim-notch span { width: 92px; height: 24px; background: var(--night); border-radius: 12px; }
.sim-bar { margin: 8px 16px 0; height: 48px; border-radius: 24px; background: #F1F3F7; display: flex; align-items: center; gap: 10px; padding: 0 16px; flex: 0 0 auto; }
.sim-bar svg { width: 18px; height: 18px; flex: 0 0 auto; }
.sim-q { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.sim-caret { width: 2px; height: 20px; background: var(--cobalt); flex: 0 0 auto; animation: sim-caret 900ms steps(1) infinite; }
[data-state="result"] .sim-caret, [data-state="loading"] .sim-caret { display: none; }
.sim-chips { display: flex; gap: 8px; margin: 12px 16px 8px; font-size: 12px; font-weight: 600; color: var(--ink-soft); flex: 0 0 auto; }
.sim-chips span { padding: 6px 12px; border-radius: 16px; border: 1px solid #DDE2EA; white-space: nowrap; }
.sim-chips span:first-child { background: var(--night); color: #fff; border-color: var(--night); }
.sim-idle, .sim-loading, .sim-result { display: none; }
[data-state="idle"] .sim-idle { display: flex; }
[data-state="loading"] .sim-loading { display: flex; }
[data-state="result"] .sim-result { display: flex; }
.sim-idle { flex: 1; flex-direction: column; align-items: center; justify-content: center; gap: 14px; padding: 32px; text-align: center; color: var(--ink-soft); line-height: 1.5; }
.sim-idle svg { width: 44px; height: 44px; }
.sim-loading { flex-direction: column; gap: 12px; padding: 8px 16px; animation: sim-pulse 900ms ease-in-out infinite; }
.sim-loading span { display: block; height: 64px; background: #EEF1F6; border-radius: 12px; }
.sim-loading span:first-child { height: 150px; border-radius: 14px; }
.sim-result { flex-direction: column; gap: 10px; padding: 4px 16px 32px; }
.sim-map { position: relative; height: 150px; border-radius: 14px; background: #E4EBF5; overflow: hidden; flex: 0 0 auto; }
.sim-map i { position: absolute; display: block; }
.sim-map .r1 { left: -10%; top: 46%; width: 120%; height: 10px; background: #fff; transform: rotate(-8deg); }
.sim-map .r2 { left: 30%; top: -20%; width: 8px; height: 140%; background: #fff; transform: rotate(14deg); }
.sim-map .r3 { left: 70%; top: -20%; width: 6px; height: 140%; background: #fff; transform: rotate(-6deg); }
.sim-map .g1 { left: 6%; top: 12%; width: 60px; height: 34px; background: #D3E4CF; border-radius: 6px; }
.sim-map .g2 { right: 8%; bottom: 10%; width: 72px; height: 40px; background: #D3E4CF; border-radius: 6px; }
.sim-map .sim-dot { width: 14px; height: 14px; box-sizing: content-box; padding: 0; border-radius: 50%; background: #8A93A6; border: 3px solid #fff; }
.sim-map .d1 { left: 18%; top: 58%; } .sim-map .d2 { left: 78%; top: 24%; } .sim-map .d3 { left: 60%; top: 70%; }
.sim-pin { position: absolute; left: 42%; top: 18%; display: none; flex-direction: column; align-items: center; gap: 4px; animation: sim-in 500ms var(--ease-out) both; }
.sim-pin b { background: #fff; font-size: 11px; font-weight: 700; padding: 4px 8px; border-radius: 8px; box-shadow: 0 2px 6px rgba(0,0,0,.18); white-space: nowrap; max-width: 140px; overflow: hidden; text-overflow: ellipsis; }
.sim-pin svg { width: 26px; height: 32px; }
[data-mode="laaro"] .sim-pin { display: flex; }
.sim-top { display: none; border: 2px solid var(--red); border-radius: 14px; padding: 12px; flex-direction: column; gap: 10px; animation: sim-in 500ms var(--ease-out) both; }
[data-mode="laaro"] .sim-top { display: flex; }
.sim-top-h { display: flex; gap: 12px; }
.sim-top-h img, .sim-top-h .sim-noimg { width: 64px; height: 64px; object-fit: cover; border-radius: 10px; flex: 0 0 auto; }
.sim-noimg { display: grid; place-items: center; background: var(--gelo); color: var(--cobalt); }
.sim-noimg svg { width: 28px; height: 28px; }
.sim-top-t { display: flex; flex-direction: column; gap: 3px; min-width: 0; }
.sim-top-t strong { font-size: 16px; line-height: 1.2; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.sim-stars { display: flex; align-items: center; gap: 4px; font-size: 13px; }
.sim-stars svg { width: 70px; height: 13px; }
.sim-stars em { font-style: normal; color: var(--ink-soft); }
.sim-meta { font-size: 12px; color: var(--ink-soft); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.sim-open { font-size: 12px; color: #12783C; font-weight: 600; }
.sim-acts { display: flex; gap: 6px; }
.sim-acts span { flex: 1; height: 34px; border-radius: 17px; border: 1px solid #DDE2EA; font-size: 12px; font-weight: 600; display: flex; align-items: center; justify-content: center; }
.sim-acts span:first-child { background: var(--cobalt); border-color: var(--cobalt); color: #fff; }
.sim-row { display: flex; gap: 12px; padding: 10px 4px; border-bottom: 1px solid #EEF1F6; }
.sim-row > i { width: 52px; height: 52px; border-radius: 10px; background: #E4E8EF; flex: 0 0 auto; }
.sim-row > span { display: flex; flex-direction: column; gap: 7px; padding-top: 4px; flex-grow: 1; }
.sim-row > span i { display: block; height: 9px; background: #EEF1F6; border-radius: 6px; }
.sim-row > span i:first-child { height: 11px; background: #DDE2EA; width: 68%; }
.sim-row > span i:nth-child(2) { width: 44%; } .sim-row > span i:nth-child(3) { width: 54%; }
.sim-row--3, .sim-low { display: none; }
[data-mode="hoje"] .sim-row--3 { display: flex; }
[data-mode="hoje"] .sim-low { display: flex; gap: 12px; padding: 10px 4px; opacity: .62; animation: sim-in 500ms var(--ease-out) both; }
.sim-low > i { width: 52px; height: 52px; border-radius: 10px; background: #F1F3F7; flex: 0 0 auto; display: grid; place-items: center; }
.sim-low > i svg { width: 20px; height: 20px; }
.sim-low > span { display: flex; flex-direction: column; gap: 3px; min-width: 0; font-size: 12px; color: var(--ink-soft); }
.sim-low > span b { font-size: 14px; color: var(--ink); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.sim-tag { position: absolute; left: 0; right: 0; bottom: 10px; text-align: center; font-size: 11px; font-weight: 600; letter-spacing: .08em; text-transform: uppercase; color: #8A93A6; }
@keyframes sim-caret { 50% { opacity: 0; } }
@keyframes sim-in { from { opacity: 0; transform: translateY(10px); } to { opacity: 1; transform: none; } }
@keyframes sim-pulse { 0%, 100% { opacity: .55; } 50% { opacity: 1; } }
@media (prefers-reduced-motion: reduce) { .sim-after, .sim-pin, .sim-top, .sim-low, .sim-loading, .sim-caret { animation: none; } }
@media (max-width: 63.99em) {
  .sim-copy, .sim-phone-wrap { grid-column: 1 / -1; }
}
@media (max-width: 47.99em) {
  .sim-form { grid-template-columns: 1fr; }
  .sim-phone { width: min(21rem, 100%); }
}
.sim-noimg[hidden], .sim-top-h img[hidden] { display: none; }

/* SEO: posicionamento visível no H1 do topo */
.hero-eyebrow { display: block; margin-bottom: 1.25rem; font-size: var(--step-small); line-height: 1.35; font-weight: 600; letter-spacing: .08em; text-transform: uppercase; color: var(--paper-soft); max-width: 40ch; }
.hero--pessoas h1 .hero-eyebrow { color: var(--paper-soft); }

/* ---------- Contato: mapa da agência ---------- */
.cx { display: grid; gap: 4px; margin-top: .5rem; max-width: 36rem; }
.cx-map { position: relative; height: 15rem; background: #16245E; overflow: hidden; }
.cx-map::before { content: ""; position: absolute; inset: 0; background:
  linear-gradient(115deg, transparent 47%, rgba(255,255,255,.10) 47.5%, rgba(255,255,255,.10) 49%, transparent 49.5%),
  linear-gradient(15deg, transparent 58%, rgba(255,255,255,.08) 58.5%, rgba(255,255,255,.08) 60%, transparent 60.5%),
  linear-gradient(170deg, transparent 30%, rgba(255,255,255,.06) 30.5%, rgba(255,255,255,.06) 31.5%, transparent 32%); }
.cx-map.is-live::before { display: none; }
.cx-pin { position: absolute; left: 50%; top: 50%; width: 30px; height: 38px; transform: translate(-50%, -100%); z-index: 2; pointer-events: none; filter: drop-shadow(0 4px 6px rgba(0,0,0,.35)); }
.cx-map.is-live .cx-pin { display: none; }
.cx-map .leaflet-container, .cx-map .leaflet-pane { background: #16245E; font-family: var(--font); }
.cx-map .leaflet-tile-pane { filter: grayscale(1) invert(1) brightness(.86) contrast(.92) sepia(.55) hue-rotate(185deg) saturate(2.4); }
.cx-map .leaflet-control-attribution { background: rgba(17,19,24,.6); color: #C9C9D1; font-size: 10px; }
.cx-map .leaflet-control-attribution a { color: #fff; }
.cx-map .leaflet-control-zoom a { background: var(--night); color: #fff; border-color: rgba(255,255,255,.2); border-radius: 0; }
.cx-mk { display: flex; flex-direction: column; align-items: center; gap: 4px; }
.cx-mk b { background: #fff; color: var(--ink); font: 700 12px/1 var(--font); padding: 6px 9px; white-space: nowrap; box-shadow: 0 2px 8px rgba(0,0,0,.3); }
.cx-mk svg { width: 30px; height: 38px; filter: drop-shadow(0 4px 6px rgba(0,0,0,.35)); }
.cx-card { display: flex; justify-content: space-between; align-items: center; gap: 1rem; padding: 1.1rem 1.25rem; background: rgba(255,255,255,.08); }
.cx-name { font-weight: 700; font-size: var(--step-body); margin-bottom: .2rem; }
.cx-addr p:last-child { font-size: var(--step-small); line-height: 1.5; color: #D6DEF6; }
.cx-route { flex: 0 0 auto; display: inline-flex; align-items: center; gap: .45em; min-height: 2.75rem; padding: 0 1rem; background: var(--paper); color: var(--ink); font-weight: 600; font-size: var(--step-small); text-decoration: none; transition: background-color var(--t-hover) ease, color var(--t-hover) ease; }
.cx-route svg { width: .95em; height: .95em; }
@media (hover: hover) and (pointer: fine) { .cx-route:hover { background: var(--red); color: var(--ink); } }
.cx-meta { display: grid; grid-template-columns: 1fr auto; gap: 4px; }
.cx-meta p { display: flex; flex-direction: column; gap: .15rem; padding: .9rem 1.25rem; background: rgba(255,255,255,.08); font-size: var(--step-small); font-weight: 600; }
.cx-meta span { font-size: .75rem; font-weight: 500; letter-spacing: .06em; text-transform: uppercase; color: #D6DEF6; }
.cx-soc { flex-direction: row !important; flex-wrap: wrap; align-items: center; column-gap: .9rem !important; }
.cx-soc span { width: 100%; }
.cx-soc a { display: inline-grid; place-items: center; width: 2rem; height: 2rem; color: #fff; }
.cx-soc .ico { width: 1.25rem; height: 1.25rem; }
@media (max-width: 47.99em) { .cx-card { flex-direction: column; align-items: flex-start; } .cx-map { height: 13rem; } }

/* ---------- Rodapé compacto ---------- */
.foot2 { background: var(--night); color: var(--paper); padding: clamp(3rem, 5vw, 4.5rem) var(--margin) 1.5rem; }
.foot2-top { display: grid; grid-template-columns: minmax(0, 1.6fr) repeat(3, minmax(0, 1fr)); gap: 2.5rem var(--gutter); padding-bottom: 2.5rem; border-bottom: 1px solid rgba(255,255,255,.12); }
.foot2-brand { display: grid; gap: 1.1rem; justify-items: start; align-content: start; }
.foot2-mark { display: block; width: 8.5rem; height: auto; color: var(--red); }
.foot2-brand p { font-size: var(--step-small); line-height: 1.55; color: var(--paper-soft); max-width: 30ch; }
.foot2-cta { min-height: 2.75rem; padding: 0 1.1rem; font-size: var(--step-small); }
.foot2-h { font-size: .75rem; font-weight: 600; letter-spacing: .08em; text-transform: uppercase; color: var(--paper-soft); margin-bottom: .9rem; }
.foot2-col ul { list-style: none; margin: 0; padding: 0; display: grid; gap: .55rem; font-size: var(--step-small); line-height: 1.45; color: var(--paper-soft); }
.foot2-col a { color: var(--paper); text-decoration: none; }
.foot2-col a:hover { text-decoration: underline; text-underline-offset: .2em; }
.foot2-soc { display: flex; gap: .5rem; margin-top: 1rem; }
.foot2-soc a { display: inline-grid; place-items: center; width: 2.5rem; height: 2.5rem; border: 1px solid rgba(255,255,255,.18); }
.foot2-soc a:hover { border-color: var(--paper); text-decoration: none; }
.foot2-soc .ico { width: 1.1rem; height: 1.1rem; }
.foot2-bar { display: flex; flex-wrap: wrap; justify-content: space-between; gap: .75rem 2rem; padding-top: 1.25rem; font-size: .8125rem; color: var(--paper-soft); }
.foot2-bar a { color: var(--paper-soft); }
@media (max-width: 63.99em) { .foot2-top { grid-template-columns: repeat(2, minmax(0, 1fr)); } .foot2-brand { grid-column: 1 / -1; } }
@media (max-width: 29.99em) { .foot2-top { grid-template-columns: 1fr; } }

/* Logo do topo: fica vermelho ao passar o mouse (e no foco do teclado) */
.top .mark, .dock .mark { transition: color 200ms ease; }
@media (hover: hover) and (pointer: fine) {
  .top a:hover .mark, .dock a:hover .mark { color: var(--red) !important; }
}
.top a:focus-visible .mark, .dock a:focus-visible .mark { color: var(--red) !important; }

/* ---------- Bifurcação por porte (home) ---------- */
.porte { padding: clamp(4.5rem, 8vw, 7rem) var(--margin); }
.porte-head { align-items: end; row-gap: 1rem; margin-bottom: clamp(2rem, 4vw, 3rem); }
.porte-title { grid-column: 1 / 8; font-size: clamp(2.25rem, 1.2rem + 3.4vw, 4rem); line-height: 1; letter-spacing: -0.04em; font-weight: 700; }
.porte-title .dot { color: var(--red); }
.porte-lead { grid-column: 8 / 13; font-size: var(--step-body); line-height: 1.55; color: var(--ink-soft); max-width: 40ch; }
.porte-cards { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem; }
.porte-card { display: grid; gap: .9rem; align-content: start; padding: clamp(1.75rem, 3vw, 2.75rem); background: var(--paper); color: var(--ink); text-decoration: none; min-height: 18rem;
  transition: transform var(--t-hover) var(--ease-out), background-color var(--t-hover) ease; }
.porte-card--dark { background: var(--night); color: var(--paper); }
.porte-k { font-size: var(--step-small); font-weight: 600; letter-spacing: .08em; text-transform: uppercase; color: var(--cobalt-dk); }
.porte-card--dark .porte-k, .porte-card--dark .porte-p { color: var(--paper-soft); }
.porte-h { font-size: clamp(1.6rem, 1.1rem + 1.4vw, 2.25rem); line-height: 1.1; font-weight: 700; letter-spacing: -0.03em; max-width: 20ch; }
.porte-p { font-size: var(--step-body); line-height: 1.55; color: var(--ink-soft); max-width: 44ch; }
.porte-go { margin-top: auto; padding-top: 1rem; display: inline-flex; align-items: center; gap: .6em; font-weight: 600; }
.porte-go svg { width: 1.1em; height: 1.1em; color: var(--red); transition: transform var(--t-hover) var(--ease-out); }
@media (hover: hover) and (pointer: fine) { .porte-card:hover { transform: translateY(-4px); } .porte-card:hover .porte-go svg { transform: translateX(4px); } }
@media (max-width: 63.99em) { .porte-title, .porte-lead { grid-column: 1 / -1; } }
@media (max-width: 47.99em) { .porte-cards { grid-template-columns: 1fr; } .porte-card { min-height: 0; } }

/* ===== Menu mobile e tablet: botão "Menu" + painel com todas as opções ===== */
.menu-btn { display: none; }
@media (max-width: 74.99em) {
  .top nav > a:not(.btn), .dock nav > a:not(.btn) { display: none; }
  .top nav, .dock nav { gap: .5rem; }
  .menu-btn { display: inline-flex; align-items: center; gap: .55rem; min-height: 2.75rem; padding: 0 .95rem; border: 1px solid rgba(255,255,255,.38);
    background: transparent; color: inherit; font: 600 var(--step-small)/1 var(--font); letter-spacing: .01em; cursor: pointer;
    -webkit-tap-highlight-color: transparent; touch-action: manipulation; transition: background var(--t-hover) var(--ease-out), border-color var(--t-hover) var(--ease-out); }
  .dock .menu-btn { min-height: 2.5rem; }
  .menu-btn:active { background: rgba(255,255,255,.12); }
  .menu-btn:focus-visible { outline: 2px solid var(--red); outline-offset: 2px; }
  .menu-btn__bars { display: grid; gap: 5px; width: 18px; }
  .menu-btn__bars i { display: block; height: 2px; background: currentColor; }
  .menu-btn__bars i:last-child { width: 12px; justify-self: end; }
}
html.mnav-lock, html.mnav-lock body { overflow: hidden; }
.mnav { position: fixed; inset: 0; z-index: 90; display: flex; flex-direction: column; background: var(--night); color: var(--paper);
  padding: max(.75rem, env(safe-area-inset-top)) var(--margin) max(1.25rem, env(safe-area-inset-bottom)); overflow-y: auto; overscroll-behavior: contain;
  opacity: 0; transform: translateY(-12px); transition: opacity 240ms var(--ease-out), transform 240ms var(--ease-out); }
.mnav[hidden] { display: none; }
.mnav.is-open { opacity: 1; transform: none; }
.mnav__head { display: flex; align-items: center; justify-content: space-between; min-height: 3.25rem; }
.mnav__mark .mark { display: block; width: 6rem; color: var(--paper); }
.mnav__close { display: grid; place-items: center; width: 2.75rem; height: 2.75rem; margin-right: -.5rem; background: none; border: 0; color: var(--paper); cursor: pointer; -webkit-tap-highlight-color: transparent; }
.mnav__close svg { width: 1.5rem; height: 1.5rem; }
.mnav__close:focus-visible, .mnav a:focus-visible { outline: 2px solid var(--red); outline-offset: 2px; }
.mnav__body { flex: 1; padding-top: clamp(1.25rem, 5vh, 2.5rem); }
.mnav__list, .mnav__sub { list-style: none; margin: 0; padding: 0; }
.mnav__list li { border-top: 1px solid rgba(255,255,255,.14); }
.mnav__list li:last-child { border-bottom: 1px solid rgba(255,255,255,.14); }
.mnav__list a { display: grid; grid-template-columns: 2.25rem 1fr auto; align-items: center; gap: .5rem; min-height: 4rem; padding: .5rem 0;
  color: var(--paper); text-decoration: none; font-size: clamp(1.375rem, 5.6vw, 2rem); font-weight: 600; letter-spacing: -.02em; line-height: 1.1; -webkit-tap-highlight-color: transparent; }
.mnav__n { font-size: .75rem; font-weight: 500; letter-spacing: .04em; color: var(--paper-soft); align-self: center; }
.mnav__arr { width: 1.25rem; height: 1.25rem; color: var(--paper-soft); transition: transform var(--t-hover) var(--ease-out), color var(--t-hover) var(--ease-out); }
.mnav__list a:active .mnav__arr { transform: translateX(4px); color: var(--red); }
.mnav__list a[aria-current] .mnav__t { text-decoration: underline; text-decoration-color: var(--red); text-decoration-thickness: 2px; text-underline-offset: .2em; }
.mnav__list a[aria-current] .mnav__n { color: var(--red); }
.mnav__sub { display: flex; flex-wrap: wrap; gap: .25rem 1.25rem; padding-top: 1.25rem; }
.mnav__sub a { display: inline-flex; align-items: center; min-height: 2.75rem; color: var(--paper-soft); text-decoration: none; font-size: var(--step-small); font-weight: 500; }
.mnav__foot { display: grid; gap: 1rem; padding-top: 1.5rem; }
.mnav__cta { display: flex; justify-content: center; align-items: center; min-height: 3.25rem; width: 100%; font-weight: 600; }
.mnav__soc { display: flex; gap: .5rem; }
.mnav__soc a { display: grid; place-items: center; width: 2.75rem; height: 2.75rem; border: 1px solid rgba(255,255,255,.22); color: var(--paper); }
.mnav__soc .ico { width: 1.1rem; height: 1.1rem; }
@media (prefers-reduced-motion: reduce) { .mnav { transition: none; transform: none; } }
@media (min-width: 75em) { .mnav { display: none !important; } }
.top nav > a:not(.btn), .dock nav > a:not(.btn) { white-space: nowrap; }
