/* Atlas Lab · linguagem "planta" · promovida em 30/09/2026 (atlas-planta.css)
   [WILLIANS 29/09 20h07 a 20h22] piso 3D do topo mantido; sem esferas nem bolhas;
   estética de desenho técnico; seções alternando escuro e claro no estilo Modal;
   fotos com proximidade humana (provisórias, de banco, ver img/CREDITOS.md).
   Carrega DEPOIS de atlas-tokens.css, do <style> da página e de atlas-moderno.css.
   Ordem dos tons: topo escuro · case escuro · áreas claro · processo petróleo
   com grade · aprova claro · pra quem claro com foto · compromissos escuro · quem claro ·
   FAQ claro · conversar escuro com foto e piso · rodapé escuro com carimbo.
   [WILLIANS 07/10] só 3 fundos de seção: preto #070b0d, claro #f6f8f8 e petróleo #0e5a66
   (este só nas seções de processo e compromissos que já eram petróleo). O verde-água e o petróleo escuro
   saíram; card de superfície escura único #0f1619.
   Nada aqui usa radial-gradient: zero círculo de brilho. */

:root {
  --planta-mono: "JetBrains Mono", ui-monospace, "SFMono-Regular", Menlo, Consolas, monospace;
  --planta-traco: #8fa3a8;           /* linha de corte e cruzetas: meio-tom visível no claro e no escuro */
  --planta-escuro: #070b0d;
  --planta-escuro-2: #070b0d;   /* [WILLIANS 07/10] mesmo preto do topo em todas as seções escuras (era #0c1417) */
  --planta-claro: #f6f8f8;
  --planta-petroleo: #0e5a66;
  /* grade milimetrada: fina 8px + forte 40px */
  --grade-fina: rgba(255, 255, 255, .035);
  --grade-forte: rgba(255, 255, 255, .085);
}

/* além do fim da página (rolagem elástica, rodapé curto) aparece o preto, não o claro do body */
html { background: #070b0d; }

/* ===== Chrome geral das seções ===== */
.planta main { counter-reset: prancha; }
.planta main > section {
  position: relative;
  isolation: isolate;
  border-top: none;                 /* a separação agora é a linha de corte */
  counter-increment: prancha;
}

/* ===== Tons de cada seção (fundo sólido real, é o que o medidor lê) ===== */
.planta main > section.hero.escuro {
  background: var(--planta-escuro) !important;   /* [WILLIANS 07/10] topo começa direto no preto; o piso 3D fica no ::before */
  --cor-fundo: var(--planta-escuro);
}
.planta #case.escuro {
  background: var(--planta-escuro-2) !important;
  --cor-fundo: var(--planta-escuro-2);
}
.planta #areas {
  background: var(--planta-claro);
  --cor-fundo: var(--planta-claro);
  --cor-superficie: #ffffff;
}
.planta #como.tom-petroleo {
  background: var(--planta-petroleo) !important;
  --cor-fundo: var(--planta-petroleo);
  --cor-superficie: #0b4b55;
  --cor-superficie-2: #0a444d;
  --cor-texto: #ffffff;
  --cor-texto-2: #dbe9eb;
  --cor-texto-sutil: #c6dcdf;
  --cor-petroleo: #b3f0f3;
  --cor-petroleo-hover: #d8f8f9;
  --cor-petroleo-tint: #0a3f47;
  --cor-borda: #2f7883;
  --cor-borda-forte: #8fc3ca;
  --grade-fina: rgba(255, 255, 255, .05);
  --grade-forte: rgba(255, 255, 255, .11);
}
/* destaque em degradê sobre o petróleo: paradas mais claras (as do nicho.css), porque o
   --grad-marca padrão dá 4,44:1 (#5fd3de) e 4,28:1 (#f2b457) contra #0e5a66 no título do celular */
.planta #como.tom-petroleo h2 .em {
  background: linear-gradient(92deg, #7fe0e9 0%, #a8ead7 45%, #f6c47a 100%);
}
.planta #aprova {
  background: var(--planta-claro);
  --cor-fundo: var(--planta-claro);
  --cor-superficie: #ffffff;
}
.planta #icp {
  background: var(--planta-claro);
  --cor-fundo: var(--planta-claro);
  --cor-superficie: #ffffff;
}
.planta #princ.escuro {
  background: var(--planta-escuro) !important;
  --cor-fundo: var(--planta-escuro);
}
.planta #quem {
  background: var(--planta-claro);
  --cor-fundo: var(--planta-claro);
  --cor-superficie: #ffffff;
}
/* FAQ: era petróleo escuro, virou claro com os tokens de texto escuro das outras seções claras
   [WILLIANS 07/10]; o HTML perdeu as classes escuro e tom-petroleo-escuro */
.planta #faq {
  background: var(--planta-claro) !important;
  --cor-fundo: var(--planta-claro);
  --cor-superficie: #ffffff;
}
.planta #conversar {
  background: var(--planta-escuro) !important;
  overflow: hidden;
  --cor-faixa: var(--planta-escuro);
  --cor-faixa-2: #0f1619;
  --cor-borda-faixa: #2a3a3f;
}

/* ===== Grades [WILLIANS 07/10]: no preto, só a grade ciano 64 px (a mesma do #case e do piso);
   a milimetrada branca 40/8 fica só nas seções petróleo (.tom-petroleo) ===== */
.planta main > section.escuro:not(.hero):not(.tom-petroleo) { overflow: hidden; }
.planta main > section.escuro:not(.hero):not(.tom-petroleo)::before {
  content: ""; position: absolute; inset: 0 -30% 0 -30%; z-index: -1; pointer-events: none;
  background-image:
    linear-gradient(90deg, rgba(95, 211, 222, .24) 1px, transparent 1px),
    linear-gradient(rgba(95, 211, 222, .24) 1px, transparent 1px);
  background-size: 64px 64px;
  background-position: 0 0;
  -webkit-mask-image: linear-gradient(180deg, #000 0, rgba(0, 0, 0, .45) 260px, rgba(0, 0, 0, .22) 100%);
  mask-image: linear-gradient(180deg, #000 0, rgba(0, 0, 0, .45) 260px, rgba(0, 0, 0, .22) 100%);
  transform: none; animation: none;
}
.planta main > section.tom-petroleo::before {
  content: ""; position: absolute; inset: 0; z-index: -1; pointer-events: none;
  background-image:
    linear-gradient(var(--grade-forte) 1px, transparent 1px),
    linear-gradient(90deg, var(--grade-forte) 1px, transparent 1px),
    linear-gradient(var(--grade-fina) 1px, transparent 1px),
    linear-gradient(90deg, var(--grade-fina) 1px, transparent 1px);
  background-size: 40px 40px, 40px 40px, 8px 8px, 8px 8px;
  background-position: -1px -1px;
  -webkit-mask-image: linear-gradient(180deg, #000 0%, rgba(0, 0, 0, .45) 100%);
  mask-image: linear-gradient(180deg, #000 0%, rgba(0, 0, 0, .45) 100%);
  transform: none; animation: none;
}

/* ===== Numeração de planta na margem (desktop largo) ===== */
.planta main > section::after,
.planta main > section.hero.escuro::after {
  content: counter(prancha, decimal-leading-zero) "/10";
  display: none;
  position: absolute; z-index: 2; pointer-events: none;
  top: var(--esp-7);
  left: max(12px, calc(50% - (var(--largura-pagina) / 2) - 104px));
  font-family: var(--planta-mono); font-size: 12px; font-weight: 500; letter-spacing: .08em;
  color: var(--cor-texto-sutil);
  padding-top: 8px; border-top: 1px solid currentColor;
  animation: none;
}
.planta #conversar::after { color: #b8ccd0; }
@media (min-width: 1320px) {
  .planta main > section::after,
  .planta main > section.hero.escuro::after { display: block; }
}

/* ===== Linha de corte de 1px com cruzetas nas pontas ===== */
.planta .corte {
  position: relative; z-index: 3; height: 0;
  border-top: 1px solid rgba(143, 163, 168, .55);
}
.planta .corte span {
  display: block; position: relative;
  max-width: var(--largura-pagina); margin: 0 auto; height: 0;
}
.planta .corte span::before,
.planta .corte span::after {
  content: ""; position: absolute; top: -9px; width: 17px; height: 17px;
  background:
    linear-gradient(var(--planta-traco), var(--planta-traco)) center / 17px 1px no-repeat,
    linear-gradient(var(--planta-traco), var(--planta-traco)) center / 1px 17px no-repeat;
}
.planta .corte span::before { left: calc(var(--gutter) - 8px); }
.planta .corte span::after { right: calc(var(--gutter) - 8px); }
@media (min-width: 640px) {
  .planta .corte span::before { left: calc(var(--esp-5) - 8px); }
  .planta .corte span::after { right: calc(var(--esp-5) - 8px); }
}

/* ===== Rótulo mono caixa alta (eyebrow e legendas) ===== */
.planta .eyebrow,
.planta .rotulo-mono {
  font-family: var(--planta-mono);
  font-size: 12px; font-weight: 500; letter-spacing: .1em; text-transform: uppercase;
}
.planta .eyebrow { color: var(--cor-texto-sutil); }
.planta .eyebrow::before { width: 14px; height: 1px; }
.planta .aprova-head { align-items: flex-end; }
.planta .aprova-head .eyebrow { flex-basis: 100%; }

/* ===== Cards: canto reto e cantoneiras em L ===== */
.planta .area, .planta .step, .planta .casa, .planta .aprova-lista li, .planta .icp-card,
.planta .studio-card, .planta .cliente, .planta .conv-form, .planta .props {
  border-radius: 2px;
  position: relative;
  --cant: #0b1113;
}
.planta .escuro .area, .planta .escuro .step, .planta .escuro .casa, .planta .escuro .cliente { --cant: #6fd6df; }
.planta #como .step { --cant: #b3f0f3; }
.planta .conv-form { --cant: #0e5a66; }

.planta .area::after, .planta .step::after, .planta .casa::after, .planta .aprova-lista li::after,
.planta .icp-card::after, .planta .studio-card::after, .planta .cliente::after, .planta .conv-form::after,
.planta .props::after {
  content: ""; position: absolute; inset: 0; pointer-events: none; z-index: 1;
  --l: 14px; --t: 2px;
  background:
    linear-gradient(var(--cant), var(--cant)) left top / var(--l) var(--t) no-repeat,
    linear-gradient(var(--cant), var(--cant)) left top / var(--t) var(--l) no-repeat,
    linear-gradient(var(--cant), var(--cant)) right top / var(--l) var(--t) no-repeat,
    linear-gradient(var(--cant), var(--cant)) right top / var(--t) var(--l) no-repeat,
    linear-gradient(var(--cant), var(--cant)) left bottom / var(--l) var(--t) no-repeat,
    linear-gradient(var(--cant), var(--cant)) left bottom / var(--t) var(--l) no-repeat,
    linear-gradient(var(--cant), var(--cant)) right bottom / var(--l) var(--t) no-repeat,
    linear-gradient(var(--cant), var(--cant)) right bottom / var(--t) var(--l) no-repeat;
}
/* a linha em gradiente no topo dos cards (camada moderna) sai: a cantoneira faz esse papel */
.planta .area::before, .planta .step::before, .planta .casa::before { content: none; }

/* número do processo: quadrado de prancha, não círculo */
.planta .step .s-num {
  border-radius: 2px; font-family: var(--planta-mono); font-size: 14px; font-weight: 600;
}
.planta .step .s-tag { border-radius: 2px; font-family: var(--planta-mono); font-size: 12px; letter-spacing: .04em; }
.planta .area .num { font-family: var(--planta-mono); }
.planta .aprova-lista .ico, .planta .prop .ini { border-radius: 2px; }

/* ===== Faixa própria casa: continua o escuro do case ===== */
.planta .homebase {
  background: var(--planta-escuro-2);
  border-top: 1px solid #1c282c;
}
.planta .homebase .tag { color: #9fb0b5; font-family: var(--planta-mono); font-weight: 500; letter-spacing: .1em; }
.planta .homebase-items .dom { color: #6fd6df; }
.planta .homebase-items a:hover .dom { color: #a5e9ee; }
.planta .homebase-items .what { color: #9fb0b5; }

/* ===== FOTO (a): faixa de largura total com véu e frase ===== */
.planta .faixa-foto {
  position: relative; margin: 0; overflow: hidden;
  height: clamp(340px, 38vw, 540px);
  background: var(--planta-escuro);
}
.planta .faixa-foto img {
  position: absolute; inset: 0; width: 100%; height: 100%;
  object-fit: cover; object-position: 70% 62%;
}
.planta .faixa-foto::before {           /* véu: escuro onde está o texto, a foto respira à direita */
  content: ""; position: absolute; inset: 0; z-index: 1;
  background: linear-gradient(90deg, rgba(7, 11, 13, .92) 0%, rgba(7, 11, 13, .80) 38%, rgba(7, 11, 13, .20) 75%, rgba(7, 11, 13, .05) 100%);
}
.planta .faixa-foto::after {            /* moldura técnica: cantoneiras a 16px da borda */
  content: ""; position: absolute; inset: 16px; z-index: 2; pointer-events: none;
  --c: rgba(179, 240, 243, .8); --l: 22px; --t: 1px;
  background:
    linear-gradient(var(--c), var(--c)) left top / var(--l) var(--t) no-repeat,
    linear-gradient(var(--c), var(--c)) left top / var(--t) var(--l) no-repeat,
    linear-gradient(var(--c), var(--c)) right top / var(--l) var(--t) no-repeat,
    linear-gradient(var(--c), var(--c)) right top / var(--t) var(--l) no-repeat,
    linear-gradient(var(--c), var(--c)) left bottom / var(--l) var(--t) no-repeat,
    linear-gradient(var(--c), var(--c)) left bottom / var(--t) var(--l) no-repeat,
    linear-gradient(var(--c), var(--c)) right bottom / var(--l) var(--t) no-repeat,
    linear-gradient(var(--c), var(--c)) right bottom / var(--t) var(--l) no-repeat;
}
.planta .faixa-foto figcaption {
  position: relative; z-index: 3; height: 100%;
  max-width: var(--largura-pagina); margin: 0 auto;
  padding: var(--esp-6) var(--esp-5);
  display: flex; flex-direction: column; justify-content: center; gap: var(--esp-3);
}
.planta .faixa-foto figcaption > * { align-self: flex-start; }
.planta .faixa-foto .rotulo-mono { color: #c6dcdf; }
.planta .faixa-frase {
  font-family: var(--fonte-titulo); font-weight: 700; color: #ffffff;
  font-size: clamp(1.75rem, 1.1rem + 2.6vw, 3rem); line-height: 1.1; letter-spacing: -.01em;
  max-width: 15ch;
}
@media (max-width: 760px) {
  .planta .faixa-foto { height: 420px; }
  .planta .faixa-foto img { object-position: 78% 30%; }
  .planta .faixa-foto::before {
    background: linear-gradient(0deg, rgba(7, 11, 13, .94) 0%, rgba(7, 11, 13, .86) 42%, rgba(7, 11, 13, .25) 78%, rgba(7, 11, 13, .10) 100%);
  }
  .planta .faixa-foto figcaption { justify-content: flex-end; padding: var(--esp-6) var(--gutter) calc(var(--esp-6) + 8px); }
}

/* ===== FOTO (b): pra quem, com moldura técnica ===== */
.planta .moldura-foto { margin: 0 0 var(--esp-6); position: relative; }
.planta .moldura-img { position: relative; padding: 8px; }
.planta .moldura-img::after {           /* cantoneiras fora da foto, como marca de corte */
  content: ""; position: absolute; inset: 0; pointer-events: none;
  --c: #0b1113; --l: 20px; --t: 2px;
  background:
    linear-gradient(var(--c), var(--c)) left top / var(--l) var(--t) no-repeat,
    linear-gradient(var(--c), var(--c)) left top / var(--t) var(--l) no-repeat,
    linear-gradient(var(--c), var(--c)) right top / var(--l) var(--t) no-repeat,
    linear-gradient(var(--c), var(--c)) right top / var(--t) var(--l) no-repeat,
    linear-gradient(var(--c), var(--c)) left bottom / var(--l) var(--t) no-repeat,
    linear-gradient(var(--c), var(--c)) left bottom / var(--t) var(--l) no-repeat,
    linear-gradient(var(--c), var(--c)) right bottom / var(--l) var(--t) no-repeat,
    linear-gradient(var(--c), var(--c)) right bottom / var(--t) var(--l) no-repeat;
}
.planta .moldura-img img {
  display: block; width: 100%; height: auto;
  aspect-ratio: 16 / 7; object-fit: cover; object-position: 50% 30%;
  /* canto chanfrado em cima à direita */
  clip-path: polygon(0 0, calc(100% - 22px) 0, 100% 22px, 100% 100%, 0 100%);
}
.planta .moldura-foto figcaption {
  display: flex; justify-content: space-between; gap: var(--esp-3); flex-wrap: wrap;
  margin: 0 8px; padding: 8px 12px;
  background: #0f1619; color: #cfe0e3;
}
@media (max-width: 760px) {
  .planta .moldura-img img { aspect-ratio: 4 / 3; object-position: 40% 30%; }
}

/* ===== FOTO (c): fundo do conversar com véu + piso 3D voltando no fechamento ===== */
.planta .conversar-foto { position: absolute; inset: 0; z-index: -2; pointer-events: none; }
.planta .conversar-foto img { width: 100%; height: 100%; object-fit: cover; object-position: 50% 35%; display: block; }
.planta .conversar-foto::after {
  content: ""; position: absolute; inset: 0;
  background: linear-gradient(180deg, rgba(7, 11, 13, .76) 0%, rgba(7, 11, 13, .82) 55%, rgba(7, 11, 13, .95) 100%);
}
.planta #conversar::before {
  content: ""; position: absolute; z-index: -1; pointer-events: none;
  left: -30%; right: -30%; bottom: -6%; height: 60%;
  background-image:
    linear-gradient(rgba(95, 211, 222, .36) 1px, transparent 1px),
    linear-gradient(90deg, rgba(95, 211, 222, .36) 1px, transparent 1px);
  background-size: 64px 64px;
  transform: perspective(700px) rotateX(64deg);
  transform-origin: 50% 100%;
  -webkit-mask-image: linear-gradient(to top, #000 10%, transparent 85%);
  mask-image: linear-gradient(to top, #000 10%, transparent 85%);
  animation: atlas-piso 14s linear infinite;
}
.planta #conversar .wrap { position: relative; z-index: 1; }
.planta #conversar { padding-bottom: calc(var(--esp-7) + 88px); }  /* respiro para o piso aparecer embaixo do formulário */

/* ===== Carimbo de prancha no rodapé ===== */
.planta .carimbo {
  margin-top: var(--esp-5);
  display: grid; grid-template-columns: repeat(4, auto); justify-content: start;
  width: max-content; max-width: 100%;
  border: 1px solid #2a3a3f;
  font-family: var(--planta-mono); font-size: 12px; letter-spacing: .1em; text-transform: uppercase;
  color: #b8ccd0;
}
.planta .carimbo span { padding: 8px 14px; border-left: 1px solid #2a3a3f; }
.planta .carimbo span:first-child { border-left: none; }
.planta .carimbo b { color: #f5f2ec; font-weight: 600; }
@media (max-width: 640px) {
  .planta .carimbo { grid-template-columns: 1fr 1fr; }
  .planta .carimbo span:nth-child(3) { border-left: none; }
  .planta .carimbo span:nth-child(n+3) { border-top: 1px solid #2a3a3f; }
}

/* ===== Menos movimento: o piso do fechamento para também ===== */
@media (prefers-reduced-motion: reduce) {
  .planta #conversar::before { animation: none !important; }
}

/* ===== Ajustes de 29/09 22h51 [WILLIANS] ===== */
/* Topo cerca de 10% mais baixo: painel de eventos mais curto e menos respiro embaixo */
.planta .hero.escuro .console-body { height: 437px; }
/* painel 5% menor e centrado na coluna; respiro embaixo pra borda 3D não ser cortada */
.planta .hero.escuro .console { width: 95%; margin-inline: auto; position: relative; top: -20px; }
@media (min-width: 860px) { .planta main > section.hero.escuro { padding-bottom: var(--esp-7); } }

/* Emenda topo → case: o piso 3D chega até a borda e continua como grade plana no case */
.planta main > section.hero.escuro {
  background: var(--planta-escuro) !important;   /* [WILLIANS 07/10] sem o degradê mais claro no alto: preto do começo ao fim */
}
.planta main > section.hero.escuro::before { bottom: 0; }
/* Emenda v2 [WILLIANS 22h56 "que as linhas fiquem alinhadas"]: o case usa UMA grade só, com a
   mesma geometria do piso (64 px, começando em -30% da largura, cor petróleo). Cada linha do
   piso continua numa linha do case; a grade branca 40/8 sai desta seção. */
.planta #case.escuro { background: var(--planta-escuro-2) !important; overflow: hidden; }
.planta #case.escuro::before {
  inset: 0 -30% 0 -30%;
  background-image:
    linear-gradient(90deg, rgba(95, 211, 222, .24) 1px, transparent 1px),
    linear-gradient(rgba(95, 211, 222, .24) 1px, transparent 1px);
  background-size: 64px 64px;
  background-position: 0 0;
  -webkit-mask-image: linear-gradient(180deg, #000 0, rgba(0, 0, 0, .45) 260px, rgba(0, 0, 0, .22) 100%);
  mask-image: linear-gradient(180deg, #000 0, rgba(0, 0, 0, .45) 260px, rgba(0, 0, 0, .22) 100%);
}

/* Print do site da Oceanic no vazio da coluna do case */
.planta .site-print {
  margin: var(--esp-6) 0 0; position: relative;
  border: 1px solid var(--cor-borda); border-radius: var(--raio-md); overflow: hidden;
  background: #0f1619; box-shadow: 0 18px 40px rgba(0, 0, 0, .35);
}
.planta .site-barra {
  display: flex; align-items: center; gap: 6px; padding: 8px 12px;
  border-bottom: 1px solid var(--cor-borda); font-family: var(--planta-mono); font-size: 11px; color: var(--cor-texto-sutil);
}
.planta .site-barra i { width: 8px; height: 8px; border-radius: 50%; border: 1px solid var(--cor-borda-forte); }
.planta .site-barra span { margin-left: 8px; }
.planta .site-print img { display: block; width: 100%; height: auto; }
.planta .site-print figcaption { padding: 8px 12px; border-top: 1px solid var(--cor-borda); font-size: 11px; color: var(--cor-texto-sutil); }

/* Print do site da Oceanic levemente inclinado, com sombra discreta [WILLIANS 22h57] */
.planta .site-print {
  transform: perspective(1400px) rotateY(9deg) rotateX(4deg) rotateZ(-.6deg);
  transform-origin: 40% 50%;
  box-shadow:
    18px 22px 40px rgba(0, 0, 0, .38),
    6px 6px 0 -1px rgba(14, 90, 102, .35);
  margin-right: var(--esp-4);
}
@media (max-width: 640px) {
  .planta .site-print { transform: perspective(1000px) rotateY(6deg) rotateX(3deg); margin-right: var(--esp-3); }
}
.planta .hero .console-host { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; min-width: 0; }

/* Print da Oceanic inclinado pro lado esquerdo e centrado na coluna [WILLIANS 23h02] */
.planta .cliente > div:first-child { display: flex; flex-direction: column; }
.planta .cliente > div:first-child .cliente-link { align-self: flex-start; margin-bottom: var(--esp-5); }
.planta .site-print {
  width: 90%; margin: auto;
  transform: translateX(-5px) perspective(1400px) rotateY(-9deg) rotateX(4deg) rotateZ(.6deg);
  transform-origin: 60% 50%;
  box-shadow:
    -18px 22px 40px rgba(0, 0, 0, .38),
    -6px 6px 0 -1px rgba(14, 90, 102, .35);
}
@media (max-width: 640px) {
  .planta .site-print { width: 92%; transform: perspective(1000px) rotateY(-6deg) rotateX(3deg); }
}

/* Destaque do print sem moldura: halo claro suave em volta [WILLIANS 23h07, "só destacar do fundo"] */
.planta .site-print {
  box-shadow:
    -18px 22px 44px rgba(0, 0, 0, .35),
    0 0 0 1px rgba(143, 224, 201, .28),
    0 0 70px rgba(95, 211, 222, .20),
    0 0 140px rgba(95, 211, 222, .10) !important;
}

/* [WILLIANS 07/10 17h59] blocos que eram petróleo viram o preto do topo: nenhuma seção escura
   pega o brilho de canto do section.escuro do atlas-moderno.css */
.planta main > section.escuro:not(.hero),
body.planta > section.escuro:not(.hero) {
  background: var(--planta-escuro) !important;
  --cor-fundo: var(--planta-escuro);
}
