/* ==========================================================================
   HC ENGENHARIA — STYLES (funil de CONSTRUCAO FINANCIADA, Goiania/GO)
   Tokens do kit em marca/kit. Simbolo = o monograma HC (torres + arcos da ponte +
   C com engrenagem); 2o motivo = a engrenagem, que tileia como regua e divisoria.
   A textura de dobra e a estamparia GRADE do kit, no modulo medido da marca.
   Folha clonada da LP RESIDENCIAL da propria HC (mesmo kit, mesma marca), que por
   sua vez saiu da comercial. As dobras vem da Moura, e aqui as de financiamento
   VOLTAM (bloco 12), porque este e o funil delas. Trava que continua valendo:
   a HC nao parcela por conta propria (onboarding 00:35:18) e nunca executou obra
   financiada (R1 00:27:11), entao o financiamento e ferramenta, nunca historico.
   ========================================================================== */

:root {

  /* --- KIT DE MARCA HC ENGENHARIA, VERSAO DOURADA -------------------------
     Fonte: pasta "logo dourada" no Drive do cliente (24/08/2026), com o arquivo
     `kit marca` (prancha do cliente, com a paleta declarada) e `logo dourada`
     (o emblema em PNG com alpha). A prancha do cliente vale como manual: as seis
     cores abaixo sao as DECLARADAS por ela, nao extraidas por mim. As medicoes
     no arquivo confirmam a familia (anel do emblema vai de rgb(150,93,15) a
     rgb(253,235,104), miolo em rgb(6,6,3)).

     Substitui o kit azul #005798, que era da versao monocromatica antiga.

     Motivos em data URI, para funcionar em file://, print e PDF (playbook 15.1).
     mark-full = o monograma (torres + arco + H + C com engrenagem), recortado do
                 emblema por componente conectado, sem o anel e sem o lettering
     mark-band / mark-dot = a ENGRENAGEM do miolo do C, REDESENHADA em vetor a
                 partir da geometria medida no emblema (10 dentes, fracao angular
                 do dente 0,506, raio de raiz 0,804 do raio de ponta, miolo vazado
                 a 0,667, anel interno entre 0,543 e 0,405). Vetor e nao recorte
                 porque o emblema e raster com bisel, e o serrilhado aparece na
                 mascara de 9px. Gerador em marca/_dourada/_gerar-motivos.py
     stamp-grade / stamp-grade-lisa = grade pura, geometria, nao mudam com a marca
     stamp-planta / stamp-malha = a grade e a engrenagem NOVA */

  --mark-full: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAASwAAAC4CAYAAABZ/dGUAAA7kklEQVR4nO19B7gkRdn1OzP37i4LyyJJcpYMS1oJAiIrSRQQFEFFMICCiIKY9QPUH0UJIkkBAREBRUEk+xEXYRXJSYKAS9pllwybbpj5nvI/Rw9lz0zPTHdP90yd5+ln7p3QXV1dderNZRbQCGX5+yIzO0X+r4SuCwjo3oQMeCsGzKxqZm8zs1+Y2T5mNmxma5vZEmY2amYlHAEBAQFdJSuHxczsr2ZWM7MROWaY2fe97wfiCggI6BpZbWNmT4GshvHqHxeY2bLy26AmBgQEZAInIQ3i762hDj5oZgdA/avieNPMZgtpPQ11cRFRs4O0FRAQkBqUYL4KInrIzJbCe7cLQTl71opmdqUnbV1vZh+Q8wT7YEBAwgiT6j9q3Dgz+6GZHQdVbztIUhVIVcQCM3vGzHY3s1PNbD7enw2D/JfMbAVIY0HaCggISJysnCp4LSSlk+Vzqog3iCR1BohoDD7bzMxuw2dOhfyWmR1mZltFXCcgICCgLZCM1jWzaSCcvYVgykI013uEReP8gEhnx0P6cpLVR8xsfzO7xMw2lnPmybZVyekRPK4BAR5INOuZ2RtQ57aPIJZmhOWr1c62dQW+92cz+6yZHWRme8p3grQVENAmOOn6BSUQxgi8f6eb2T/NbFeEMAzgs1ZQlfM+A8P7J83sZ2a2hpkdA0nrfDP7ipm9iOuMgtiyRhltPsLMpkg7Wm1LHEmohPOOEYnWYZ7Y+BZCG9x7DnfCluikVetSHwUEdB0kFYcDMREuk4kUJfnEkbAUqkaubGaPe57EJ81st4jzZwlKhHfXiS1L43jdzB41s8fwqp+5/1/w3nNk2o8LakAT9MuA4CR1K/mvzOzjkHyOwQSp4LNO4aQG9ut02K8+izitjcxsVTO7HKERTtp6RdJ7+Nus8Cru2XlAf2xms1qUaO6BtEgpKgo1fD5LJChDsO0YSFEzker0IF5L6LOTJP0pSFkBfYOyENbhGPyHymeN1JpWJSz/ugoXJvEyiIkBpwdFXCttlD3P58UZXZfE7Pe3u++xIED28RPyvTw5KgICUgVJYGEzuwPSxKZ4bzDGZOiEsFQNJUlsaWaveerPNNi6+P2sCesC3Ms48XzGOXhfcQ7/vvR99vE10idOlQ6EFdBXgaNU85aC0dupZO8ys7sw4ZgfmCZqktYzAHJ6DzyJxBYgUxcK0Y1nUvISu+Memq7U7PD7Oep9NcoHqSqgrwiLXrhJSLFZHPFW97XpCUwCI+jvu2F43xZtG0EJm7OQj0ivY78h2KneipI4cSpNJN2KJ/VS9eZ39D09V+EyMXrR6O6MuUNIj7nZzP5uZu+GRMWQhm6BrnzXjlvN7FOI16qhzb26gATEIyeSRz3JtFVEjfUo5xJV9G6F2vQ1YQ3BG3cHwhYOFrJKwhPYKTgQXXv+gVzECUVb6QI6AqUdxsRVI8amc0QsbWar4fOVoDGQUNzvX4KZwWEHM3sYHtgDMA9uw3nXRJhNDQv4E3D6TMP/Q56HO7fE1SuEVRLj+hHwAp6LygscHHkgK8VoTMN/QG+ABGVCCCSJJeF4WQMZF+7/TcxsopQtagd0MCk28P53ISd/M7NLzeyPCFUxLKjaxlyglwirihXJxVadA7IahFicy9XCa1e31MFcDcgeREVIiovmIqjs8QHYMh05Ldrk+dTqjGOOG9o+S973n8VCfhcCd6ciI2NbZDpsiUyPXeHBPtHMToP0xvOHMZIw+JDGYbWYkJBBsVKnWkOnZM92LS1hDn/yQiDSQtkL1XBqczcXL/bx/0of/6PgYQ3liP5cBKramUgH87MBqjBdDHte2CQzDobM7AFkejhHFOHI63vod/e9uUglozQW8l9TVAnvl8J7SRHWtRkQ1iXeNdMmrJtx3d26LOH1EmFpahaxo5n9HDYjn0BITkkTU80jQjXiK3ndD43ESVmE86bfKN87Fu8P5oG4ekUlJFwi7SMggSRSOmo453LWe89iPF7d4LQcq81FU/scNjSzvaBmqR2Jtit65bJ45iXvf5LYICQod/wP8jmvhDbhpMDfosrIN0BuR+fZtlU08KEsgYqfSUgMPOey4kVJU8JyRk/LYBXj+c/FdZftsiRTZAnLl6g2QL8ukHsZhSSlVTHycFSbtO1JZEFcgnzPy2DzIrIwXwR0QCq9Qlhs95dx3YW9NmWNIhKWphRxh6XzPKLKI0nVGhwkL6qpSmy6a9RpkkpmEriaCXqRIeMOcI0EjqoGWsP7LyIxN48TJ4lnf7D3f0BjDMgEp0Q1FRVmx8hkZyR5UVD25gPvkfOEToBDkDFyMXaXovczE4mrSB0aF3FsMbRvaV4cCcpHtcvR8WlhVHIZrQcJOWnQ6zyCIMzzECpwgKhXJKpe6MuSNx9ISKOwf7rc15ugGezr5cymhl4krGbg6vF2MzvBzL5gZjtLJHzUYHMica/ClYgOaD5xaWT+KkJn9ofhelRsWb1AVM2g0pcjpw+a2YUwlawEQtcg2UTRb4RFUloWcUhHYOD9AFvS7ySrpMkAdJ/1Klw0dUD9+cHJORke1eMQNkPVr+uu/i6SOPvG9cXnkA53uARyJy5t9QthlWBfcJ27OjZGXR/ev+UR+bsS4q0+gQfgcrnqpTP0ArQOlUMIa/jv/qliHJyIybhdD6p+nUCrP4xAazkRNr0N8V6/SJ6pkPLySPykF8f3lAyh/jh30OEKcZB8p1e8hF+XODNtU797CVWdcTXUbhFJokhev1oXDvUoDqEaif+cO0K5T1bJCQiOexIdyiJ+SlQLYJOYgLrrB2IyuxX2Yz0sgbj7DXirYb0KFWca0lZYy6zX50unUI/iAPYuOBP13vheQB2wcyah9pQjnD8g33AL/D8fr07aWMtb5Wvo8C1l9ajhAej5232weZGwlvTa1K8SFttRxkYlfOYakxQOa0vauhs2QO3nAOkQdspW2B2mhp1hiO09wnJ2K2InpPew05+GRPYc3ts3gWC5QFj5IiyS+MpwsFAFTDPHr1+OYUmo/qD0d1vPtddEXNa9GoW34laU7TgG22qNqbOl1hj0hVP/rjOzzUFw87Gb862YUIY0BYq3vWBM7IV76AQsQbQV8ujeKSpgv/dNEhjAfBsHLeJokVr7un/pjdgSeU81SFe743NG8Rq8PSphfVq+o5LTplAj1dZ1NwhNr1tkCWvRPlYJee29xKAeVEBLRdJS9fonknzfa0JTSwNvUFS3y1FeVidpJQZhqfGQ2AdbqLPz3aagp0hNoVYNsnnKJfxeRtfNE2GpJ/BIUf+CF9AyUxFv6FfS4oBfCDFFw5Ae/M9bISyLICJHhkcJIdYQIvGBOtfKO2F9Ddd1u1P3Uz0sXYxOwfWCvcoytWsxSfxGCavpedJSG8PbUUnxdW8C+p3QKmFZxPsuyvkq7wFcFiHNFUUlnNBHKqHmx50ikycY1y3zYwivN7UiaZULHl/lbvhkGMJnok72PWLoS6rIGPOj3HlnozDbobCROewB79J++K5uCpp3OGNoP4BqoJOmTsXzGxZHTEB3nB3boXDgeNkGr6dQkWJ954G0ToywUzX6basSVj37x5qofa0rx5HyvUbn6LaE5Tynj+agDEoWElaUZBWV6RAO65qkFUs9LBqbMYp2O8mY/zKSmJk1n/Z2XjVJ7HwMMVwHS6kaFw7x0zQz1hNCGbExlB77Ifr6FJGsQtR1viSt95jZ1Sgoqbv/vAV5nlA+WItoFUQirwqiOlFUsCzrTDOxs4yI+Bfx/y+RLH0E2pPnyN5+SEytgKAOELIqksreDxjAc3GCyI8apfGUC1bmY0vsQHIFCOIkfNatvQdpJ2OlyRL08R+jbK7lmBBKXey3rMAqAh8ys7Pxd5Cs8olBkNYhyPuNlIKLQlic9K5u1elmdhb0XRrXu42atHECDIhz2zhHlpiPVJRFZBPOXiQrt8j9RuxYvXafvQQWRHT21feKFlM4wlL8Ewm7tCUlgST7gd7LVs+Z9co/jMDXhXpQyqItc1WYD/K8oUXAW8Gdpv+I50fb9L8/LBpYiC9JRmdF0W5IayQLV3cpy0nFuvZ5JKtO2lSS4zIUbOxJd3mPguPSLaS/N7PF8P6/nl/RHiKll6Q752XrPlx8V9bIq8TxQzwXluFtpwz2GSgt9F9qRUDuUcFz2xhxlv92XhWNsMaLAT5J5MEQGzxX/7GtubxNa5Os3ED/LKrEBrIqvufQhQ19m0b4ohAWVTUX7/R3MRQnhTyoRXloQx7u/1UEjup7rUhWG2CzT67KeZUiA+KT1nfMbDe3AOVBsogDDlyXdkNppN8neK+CG3q2ApISY+JIXkVZkAOiURXN49dux+miEJYfFRvIKjnkcVLX2vQKfheleLkTcZHhp7Ao9N58b7mSt/5fNDBm7nGo9+OLJGGlZXQP+P+1vYoMSlNToDoUVbKqeSExcSuelprcL3ct5/mKQGDMRrjYzL5oZrP4QdEIKyA5kPjXRl4mPaZFQklI6zQJ4C3CpPSlI3+fADdpXzCz6Wb2IOIPyyCgm5E07LAMvGm8981QbmlD5OX5c5whQXktAT0KsroQu1WZ9Es1EFb/wk0IQ87jvhKwVyRQFfwmdj0qiipISUpJahjxgG7D1j+jFLcLt3kjxvmujXhvGZS/3gqOiPchJk290Xna6JSqbwVJ6oeJ5PjvuMtAWAFFVJ9MYrQ2QCXYIqiCSlQkqT9i34C74AH3EaXK1UQarvcZa8S5iiIs2LgGiGs3ENlATohL++UgpN5pzbt/IxBW/4KDs50QgrygikRZTT7Ps+pHonoU9pmL8DfBfEc1trcr9ZY8+9YwCNEdJ0CN3A9ql6vL1i3i0iyEA5GkXte5Fgirf0HV4Hi8VgtoaN/FzPbM+a7C9Ha5Nt+L/r5EbFAkMZITjeSdouYRnhLYKEKE3HEc4hs/B9uXZaha8zozIVldIbFXkci7CB2QPopEVCar/3hU78iz8dgwAWehHtemiCcaklpq3Ecz7edQ87baYr+9gL0CJ+F1tiwIabaJ0py7/g5CVg0JOxBW/4KD0RVEtJxO+ihwMn1BcgXzNo6p/o2ABDZEYUeNvs+CpOqBmwkvA3VwAMRxDLyMv/cINS2pcybCUR4UNbAh8vagmyGvq2mRwEnCAoPfKNBY4ER33q8v5bAKg8ZRXYFdpI8BGVDF4t6H3UQNffkKNiFZQTIMnkbBwz1gsCfxJk1W96Dm1UPN1EBFnh52HHDjgEBaydmwkhyMaYMG6YMhHbRTdywt0Es5AjLdTXZwItHmCTUkmj+NWC+qi7RzXY6sgd+LqtYp0bKK6LUorPhQq4SYl4cdt50/QbzNmwVqe97Afrser91e7eOCk36imR2eQ7KqwOO6DUqiUKXKeypZyWufbrLi9vncG1I4ibddNZbb310DMl8g6n1s5OWBNwMlqq1Q0MsxdZCy+svYTumK3qy8lHWm8fh6GNX/mpHROinUI1NKWzXUJ9vHzF5qw65VEy/uRVA1h9u1jxWFsIg3cx5vUySMFGgCUbpaUqSrPIwB2mNc0vVOkEhalhpyjJpIsq4u/o6Ivo97jxp/5gJXPyrCRltkXjTCCkb35AjBSauWk4nfrJAhpatdIV3lIapdyeooIdFeISuijJzEQaQLvReSFiPR64ESMMnqOImVa1tF7vZD70Xk2V6h7Vs2Z4TFwe8CK+d45ZG5ldrncyBd1SLIarAgz74d0AhPg/k9kLRebBCJT+/t61hkjhOprKM+CoSVHOi2ngpXcd5X2lhu5AzBgfwk+k4rMbgJsAW8Vt3enJb2mGNAVkl50PKKUTN7DX+TqO+G4VzTiAjGxb2JvMWrZeftjvsoEFZy4ASbkyOppRHy2sax3v8c5IfkgBRGhKyOToms2i2PM5DifC5FeESnIXhXJWGS+Ruw6d0WNyA0LgJhJY/Qp51BJz9L3rwDwYzWRemKZHUdyMoSlKJLkm/Y7tZrI6KeMQg0qbGoavjqCNx15z5V9n1kmMJdsHPd3kpAaFyEyRWQZ3B8Uv3olprNuKSbzGwv2NPWSUBKZT0s2sVGYeB2m6zERQlS6ScQo8j2ksCaVSSNC5LoP0RFLGOHolfQhmlItbkjTl5gO8hrhntAgMmEcyTRLTWW0sWLiEWaIyksncRZqUdxCUx0J0VuDTXqRCR3NyLqCj7bFbmKc83sfnjxXDzYlTCSJ61Ka5XUYVSsXRxq4BsppPMUnrC6bcvIEn5xtn4Bo8TfgYTcbkW208i/N6ouUHLoZEIyIHNr2IHeY2ZLed85FsGof2tQDbaE121AXOPgnDCQmPNi/g6e13sktS3p3MkPIc2HBvfUJOGiElaeVdlqm2TEjQdof1BDpn6/3MI5tS1q3ygC8fE+9xDDbdbjlQbm70AdTELNoVS0DTzKei0l6kF8584GhDWKLd13l/PyPKzg+SFIqMub2YwEa/fzPK6K6XMS0F3t14kfhRI65v3epM4TxjVoFwPpBsQgye/OwcMeEnvGKGwDb8fBNIdGB1d/2jB4kOzo1cqrl5DgwN++i9dnfuCJKUgOHL8cA7Rn6aK0bQMjfAXvb4wSQSRXHjz/KOKh0pJ6bsCmGMydTBVFlLDK2Kssb3laXHm3gy2BXhq/rIiugssLwR2AipSLwsi8Od5f1cyWw/fvxbl9kICeQ4xMGV6bW9BPbsA+LzXQH8HnJv2Yt7ixIZC0i73K2jtYk2e6F/o8acn0dfEOluqQkauouhLsZWO9Z0SJ6pMNpCYS4b1eYb4kwGseiDGbSfZB0QiLD4XlZfO4NdWgGCOrQgwGO8WaKK2xFCYDCWunOpsQKJhO0wj715kcT8K7sx5sI64dDhPweoGZfUu2k8rDgjAZBumsd8NhPNGFMGIn6fFivz6Csi4r16nrxej+I1CuZoH3+Qie3Ye8jS0UnBu3piBV8z7+FPFeaigaYVFH3iSHthgOmMvM7F2o5LgyJt2mMIZugAlY7754TxrprYGEzQZErc7zdSvgRvK+83YZruMKzRk2c3g+5nWyQAkShmX8nGncdwb2I1Owy9TwXOZAAv5EHcJihP8XMW6mI7bpJbRpNTxHV27H6pAR33tQrt0IpTbuVzWI1FE0wiKcRyKv+CbEeBc89zBqjytoUzIxsvNvEzUhCu1KGboLC6UnSoGuQJvDE5YP6Fbr75W/s5aufopKoa1KV1TnGk16SjtTQVj1JB8+K9rxPtlCO9gWhwdiaCO8FtsWd5HI1JRQVMLKo8GYk8qtysR4sV3RmKoklRX8dA+9vgtUfDVHaqBJcvbSGTsIqFo56er0Ngzt+v1G9iI+j/ti1KSno6QakQXQaHGj1PYYTA31+pGOoBGMheVgI86juaVwXkIidx0pGI5wLTPtwg858A/fyxfl7VMJLQlUc9anrHwwGcUasyzUR1X8p4jebsXsoNLQag22HiM5VCVaPqriJz3FjLIfA8M7j0G8r1Ht1Trq55ryXZXSNcp+XSQqP4Dvk8hyhaISlp8gmydoTlg1gniIcsShIQ96RH2X0GtwgOeFfDpR99/dQV5dO+Bkdt60M1qsbUUyOAhu/r9ik9IREA1d/oM45wTk4Z0X4UmmJM5xVEb81DOwj56Lyp3T8Z7mDZI01WO3GmxYd8IWNuq1xS0KP4MncVvMrbNzJm0XWiUswzaUtw5VQirFWKGeh+qhK+w8GGLVjrAkpA3an2rwMLqQCGugYtLuonE9eVSlTRwDT4tNbXIHlQvaASWZK1usqkmJaWPsqDyCZ3Y+SOEc7xobQ93cwiv6x/ipKqLSp2JX6AfhqZzvJRIP4rnubGYfMbO1YYB3BGVC9lQbJyHH73Oy5dhkeELXkPbVELDqpMzD8lZBtWiExUl7n6gKeZEmlvaIYw7E6ycwUEqwJUzH956XJNJWMQFbM1Xxuh6e5RQEEVIF8MGBlyURxMUgXP3zYfujNzWrdlYQOvAj/B9nXHEBGQ9paRGRcl27fwFiugLP3oWufF/2JSBB8fViBKneVedaY2XMM8zhchyGdmyFMtLvEzJkO8ehnZtiT8DvSzC2Vnfgvo+3o025Iq0igJLKzcgrm4Iky1Ylh4oEd1JlG0b4QbsqMiUpV1XxU1idNgOBxWmPr/6N9Q6qFLrVeLNzrgWX90nIoH/O8xTSbvFmDiqP8n6mijdsLWknV/00D0b/39xCX+jzmOqdJ6rt8+Rv2ir5/4UI1dE+4fNv1JYSiH5shDS/HYKI9ZpUF7WN/v86L4YxlpOq+NB3EhaRF6mKcA/9axHv+8Z2Ncjzdz7qudDVzjHoxWnpQBuFKvEoVkeuvGthY8/dkXQ7AV6hvEhanPD8O8tNUjmefud5zRqBUsv3sEhF5TpSeilJFVr+rgLb1BHynCjlDIkENRY1qDaW9KwZsJXN9tREXr8K8t0Sezh+F8+bqidJql46TUnO90tI8LlAUQkrL1BblauueBUGBxGV1a8Og9Vh76jncub7L2HTSYPExUj/ehJb2SOBubCLuOPniBPbHtfOky2QfTCUMZEyHOG2GDFUJpN+F8TdUb2Lgm68QCJ0790Iw/zzQhwkn7ehbvoekHBoY1K8COKaARPJRXi+Og4WYC/PG2BT2yhm1oB6E50DwnJmfimcSrh9TlRCXnch2F5ehTF8KxDXXijtez5sB38xs2fh3Xk2QoWod4zCQ3QZDNOnYeU8HtdYo0Ef+Gpn1K403QT7/EZ4Bg0SoIZwpKkOUtp4WCTXZuOJ33HEcqaXJ9roWkx0dl45Xwo3GM2PRHqU38YFWHjm4W//3HOxgesaEc+eC+VVdVTXqP4YgoGe5wlok7Amg3DyRFjjJbl4ThsTptnR7BwL4JZ2W4Bfgt1ltoU0Vg9LwO62VJfVQvb5vZAqTPYe5ARP8+A1/l8HWsfWiNtqRAYjHlnRK8j73wVBnjUhjPlNnn8Vz36+vPcG7sWpoCYaAO1dtzVoJ681C4JBu/3R9yDR3AJd/iisKGrH6TZhvSDSAM87IsZL/q9EFFd68GOt/HPW+92jMOjujUJ4hlV4MlSZmlRDoJs8qnpAmuC1PiEu+U9nSFgMR9mxDWmCJGCorkHCqTYx6pOoON5O8YhqyPv9P1CP6ztQ8aZB/Rtp8Lu7kNNKgznv6x0gJH8xZJvdON4Q3w1k1SaozkxFPMkpEI3zRli6SmV5+FHyrBSh35kPKaaG8AEWXbsG9+BeV5R766ZX6PQm0kqS/VZDeAm9uu2Qtap0d8gCo89mjhdBzv49W+5VCfpJLCqTRFry4WygnwE58XfDQlwvwrHC65GA9vX6l22cjes5BLJqA369oPMQzzIbKthADgkrCzd83ENJTN/zv3cFXl3Q5MdkE4QsbRdqb/nfjAiL55/qSSHtgOr39l4/8xouuNO3WZGshoSsZqNCA8v+EGUv80HhCO2rsIvy2kMRKiivbxKgrET5A+9eAlqAPpSFUChslgy26SKOB8KKL4Xxb1VffaK9H2kcqipmAU6qKzMiLE7UoyVdpZO2l9Fv7E+qmzd51WYNkeQkK97nTQj8JUhOjao5DMj/S8PB4y9O35Y20p61DqRulQYfwGLV6JoBDR7COGwj9LA3yEZySFgzcyhhtSpp0D5Wg8q9q9d35R4lrM8n2Pbvy7lJGJM8yWWHOmTl1Dfz4uzioOQR195isKdH8ShpZ0WKNuqccn/vic+CStgEPqvvJmUx2KnasVQJSzkhrNkRhKURw9p+P1E5bwf7eD5y4ZxBOYsdhvl8rs+IsPiM1sR4W9t7rnHBMbg47GFKhndIFdoyciaf9L7zlNRN60QtLcki/jW5Bg3ym+I7Y/A6RcwGtHs6J41DIKwG0IfE5FAO1gURXhMXRPnxNlIG0iAsRjFP73ClJ5nlhcT8dpwgE9pSUhs4SY73JnTax4ooNbxZm+OAZLRNhKTqNAQTw/lheH8I35sr103CZlgSNf4BmUPu9Y9yHT47ai+cb7OQ68iYPc3WyGMOatfgAt4ulUGkhsMavCznI92g3QebVi6hIW1iPdgG1kN9oa2QesHjBxD9b0BS9LwGZKFhEN0kLSWNYRhx1/T6tJQwYZ2QAWGph3BtqUzQCFr2RQ9KNSd5BDELUhftVxXxIjJ2ymUeWMIBvQN4PcYjR1ZoMMlTPMZbNGuQNgM88EFX4L7l5B3xAuGeQr1xl05ClHJEWPydXwq5GRZC4vFkpGicA2/VzAbE0U01UtWzN5GysXhE3xZFJeRCcCfG4VnimWtnfE1CBoOS/HUegXDbLkrSbyD2LOkqtGW8ri+qHhd/lyWhKWK7em2qIp7sQCTQ74McVLcgL4PXvoJfJ+p86TCVqNxA+igmNsHMdEZqt6pnp5ma87xUG6BIHlWNoZn7fBGoFt9A2ZCnIyabGnSzPoa9gMavi7rTqZqYpdGd/XdfjDZzXKwDSexChF7wmOY9D/bRN3FujuGj8D4X5994950kKni92JP67hVBgSaYeTHG0xzsvjRHNjHp+ZQdJYT1kRqiD7CGILh9vc4Y6/12E+jemn7QTcIaB1vEo5C0Wi1PQjIr1SGwzZGbeF+EmhQVJJr2oa5w2hSnRPRzq+DvrsqQsO6P+axMAm8b9Yue20lU6vW71Bvvh0Z4+JJCBefexevLBaihRoxHcr3ffnUU+ffnth3recP8oEhGP/NigjjolahKEaWQ14d94wXYB/S7ecklXL/DQajxOuU6tr6DvVpHHJBZS11RdZ1YCbWdFJ9uENbtkDJcsGazMfCYeN2i6u77595O+sKw4Ogis41330miLFKhzrMhSYEyeC3jBD1TraxKGMhAr6uAq8sqxYc6FzlSGtmrBsiFYeO50RvA/8xhHFYVhJUkVArzsTmqBTyTA+LiNZ/oQNrqBmHdiIoXzm7WbBIyzKZZ/1JCYThIGZ43epJpK6JdNo0wkTJeN/TGeg0edpPwhitiOjmGRTJs1lepIO1AwLI8wEMgFUySz36FErLfgwGSHphhqEKHYlVydq734DPauXJRAdFDCW1fQsp8dOpB42BjXS0lr79i44N1kFP2sLjYSVxZoCzXXA12nZNkC/O8r8Rx3fVxvsPCg7MwdvneckJQpQw3U6lFvLewNz+dXarvURHp48feyvQoiuebPDhVITaHQVelBordnIhP5VDCqiE9Yn+UebGUJ6tvwB+HSgfad9WM7VwqbT2EhSZupHw3JKw7kA7DqP5GbXwkhoTFz56W+2Haz0OehNWpd7oReM715JpU4Z2QYGjfQtjoIo7kyHHkhI+ekrC4hdDaKFp3pFzvdLjyr5Va1AuklKzzwvwZ6iNJSovjc+Bzi+68gWVx61UFTRIc+Azymy8bHzip9U9eAvloxtIW97r7qoRklNuUCtLCOJgXHElak2qjSvr1wMqcS0lpYUre3MKMz4H2vjSDMReWv7kN2HRvPq3otYPkFbU9nXo9reiExShbFq+/UpJoH4dU9Xm4R8eAqEaxw8c5sG+djAnGPdqqniF6Dr53vOyam+UAj4MsI4IpibC87liUFfkf7NIyBSQ2X3ZnyaIsMvfqGwdv8KVQiUiwjZBlVdRhtPH8GHFYi3g13/XQHYlqOOei3vl04S1B+kxrrJTx+i65T85DbhJraKO/l6XON3X+DGAcUdXN27xrCdrxW0huXQ3F/fnwdCeQ9yHyW8VOvy5QDZ10PbxjFKPbQRYq4dth1Iybk1XqsL8Xgy2QeWIEdwc2UbOv8vo5CzVRjb2z0M56/VKRMkJpq4Q85mBxfQh9GfVMOC5+ju83ylDQdvtpOazzxd9fk7KXcEAqjDIY2wXIqv1sp4jxMA/xW4fBe/o+bGKyTofzLzdgwOAASnXMk4hoqoPaSYOIK1K9f4FHVHNhvD0U6mGj4NMiExa/0ypxsa2ryIC8FzYsrWfkl03xt3/KghRo/6hhk9KD6tw3++oz3m/SPjZAvfx6Kpr+757vqqhvxUjwo6SGlxL0aR5hfUjuq4o9ANKIdK+gzZMi2uTqnZmodZokTWnRBWw3QqHzCbnSV7xcwAdkUwGdQM64+TfpJKqF/N3jyG/SWBFdMTqJps4jYbVbLI1tXSlixX8Y8WoflntWo/dYrJwvR6yuaR76nDXuqeT11ecyIiyS9Q7YzmrPDiWev3vtftgj5YkI0tRUmTRyCQfx+msvfmqGkCdJjUTL9syUSHhNfiap5tE737LNaoxHVr+G0VGZfBVJE6h5+YI1JAS/X6pd+iTF6xlsDRfLuUsFIyz+bkmkIJ3QQB2JQ1hcsf3qovSCrSbxXDoZl5OaSFkQRBX2D06OX3kLHvvqCxm1h+f/Mmx+h8YgLD87gZvfuvfPlfNyAdhcSroYCIrfYbWGDRL0ug3g9d2S9DxUp6LouuLVZV9c5tXM6ilw0vxABoHT0y0iwZLh/2T7GqSr3yN9QFEvyrssu5S8mNOwhlYIaynptxVabINPWLwfSjL0StVg+9O2+Cr13lBP/MmWxsHnz9y2Kz2jbpbbfJHcf4tNKM5r8MwagX25m5yXz8QZ85UkVgNJaZbAnQnVwxoQSW6GR8oPSYobv/cT+Q6/xzzBvMfOtQTaq8ZKhcURMTJSlKTeTobnBJqHetbreOdsVqqED/PDmGClghPW0riPYSnpUUmAsFSCGIVNKKotSlxredJWFtHyz2DheQykaXJPfupWGofGTC0hpVdKHWgbj3jE/xKes9oSz5QFO6riaKukVZZnuwoCijknmUbkSh1pXuOKIE4tnf0yxm/P1b0a9Bi6KgNObTIMGB3x1EUnihKtiJ/83h6ea7bohFVDOY963++EsGrYQqvRufX9w+R3SatklJhmY4Jujb6/A4sYd65Z2/tNmqTJ+LBJWETp4Gl1wtJW9YMIqcXFxHFulFGm5bmI72lN97j22or8vZ3YJVUV5J6LqnafLNfn/Lxa2tkzqHh2hgWQeEwMem+XmkY1ydnaucMa4bz2BzHRe4mwDmjw/XYJiwPxFO/+652P195Sop/9aq+dHGynCyRVLAISc9elSvOEJwWldfD+9oMt8aNteqFp/viWJ2GNwFu+npcUv7q3OxCflfaDPpuyZzvTuu/rIlxhKGKrr5Pl2VODWR2pcCTrUQkopdaTtx3C28KAt9HliJCVFtin/kyvH1d469DTwGTNXiSsTzb4fqeExZUzziQcFPvaLz0ppF2pija1Bfj//aIi8X5vkHIsBruO3kNax4gYm/eDBhC3r4gBiT98wesvnn+anFfHWdRWXyMI+1kjYrsvhTvPqd7W9VorTclKpTW/AIGOnTdlTidZTTZz8IZXxiQbgX2KRDKA7YS0E06VDm9WuK4VOPdzIKz4hPUHfLdV1dvgPePgTkLa8XPoOK6mSrmVEgg/C8Jinz2Ldt0JCS+OHYd2K0ONqDebPIdPSf+qKeTsOmXBRyH1TEOK2zQz+yGqm3wb/6ukqBujfsXrY5Lkrxr0q9oNVQouHGlRRC7LBoyMWWFYg0ZRP+J5/jolKnb24ZigOyO9J0hY8Qjr8jaeg6pFH48Y1HGIoArD+jNQty6ArconLMO4ImFpdc4sgke5M/Pi8Bi2Go/15Sb9ownolHqo0pW9AE4efnxirc7B7bz4/82ScN4KWWlbRyXwVVXJwoAiLw2KfKDseJa0HYZU9Tb5XRI3yoFzN8Tu7aGDB8JKj7B8CWJ7Kdcch0Q0sloTcDf1Ys7qEdZBMSZXUofucPNFSYSup55T+lpUPH5xgm9JBMzv04BMgxPiZxGBwJqzOFzHrvgQqoQQtHWZR1ZxbJIa2DpV7rkQ4CBnqVXnRTLx5vwJ78+B987/XZJtuAED3j3YQFj/ISzGNiVNWAQH/jukWOBwjFV6rhSx0zriinqEtXEDiSXpg/32NNTnIZBqPbWQ/bG3SENxrsPYq5meyjXoGbnXROrPRQ3yFp+ENPV9hCxoiI/29cQIsopjk/Ttn4WIcOcKsJ54m9Qz8Szev1dKaaQhPlZkUG8CD+WcHorD6sTovkqdlXhE4nx0P7p2od6tq5us1roJg3mT0XfVRxFWCZ5DkmPWFVTVBhTVZ5QMXabCrZ4aFUVSvjeOn53h7bY0JsI7tyrm2rreEVX8b4zX3l1Re06fiUqs9aRXSot3S7Bp7iUstWE8AhcssZ7UMD87oSjduIS1EXTreX1OWFz9l4Rh9sUGE/Ay7/7bhRaku6wBaVGSuAMJxY0M2PUIy+BhzpKwNEl4BhxG9bza7ItNPUKIklL89zQVZjpyZ11slr87VLN4qAGEEvkktzkqpPgERLJ8TOK1fLLV723i3WuuwYnzeQRpLiVq4HNeQFzaN+UT1omBsP4rJ3ExhAW8V44pePVL83b6LLiYNSItHh/wnmFcwqqgsF43JCwSzVdiBtyeFKFyaXXdfUAiV0QUx+M1X0DdMO4C7aMEAmNoj48lUJv+tx75KDnWkH40BpHuP4kgNb4eWCSy4iBieYop8oBu9wrZZ+FB8AnLDZB+l7C6CaoIZUl6H/ImyRMostjIFsRz+YRFqYZlcLq1qcYLyPGsJ2WRWNVLPt/Lq6WDwfDdrzeQ6kgcF8OGtTWORbzrVzA3t4ZAcaEX+6ikS2npFSEhxRTZ0p7P0IVOFGUs/nsgjscDY+PHiIF9P3kvC902EFZjaMWDqKPeZOvEkMpJrGWFNPiRRmUdH1GLWxRh0T7z04gJnbWU5SowNJq8bP+ysivO4yh6R7BEC7E5av5ronmj+5wBNe5cBPP+owHRqtTGc/8amhHbohUnDColw0hujoikzzUGJMXgnyClcUiteU2ikbNk30BY+Za0VD2kV2t3qakU9TtiMIKwaLvxNwHtBmmNIKRDJ3i98bkOQn8m1CFoP+UnKnRDywQ1C9YdlVCHeh7isyPaGdV2gzrK+u5xFrM4BQsShd8obh6wKILh9sWqeQVuZhPEZQzItlMBxQIH1wreJgntoCqve4G0mE+6vthPKnj/OyAj1ukv4XPfCzWK927Ail/JcMsyHxUYxUkIUX3FGu2ugN83EHLDNrvfECSZQdyf2/nJh0rK3K+AsVfzcWjCMhOa6z3D8d7GMPXaXkaU/zP4P07df95PvX5JHPW8H9dAHJ+GksdbgrCcXSKQVbHBFfUQEEynqiEHaw05aG7DC0N80J/hrKGksCFCYDZBOzZEhDfVIQ76Gto0BI8wpYasQdLZGrYn7jITBbY5zg5FvJ8d5P9636OUOgakT6+gr2b6KIu9dmGvf6Ouwx2NSJJxzUbv8+4/VaiIW5YyG6+DqHaEbrsDdGjuiBNQfLyOGK7FUbOJpNMOKDEZam+9glr+70I4zM5wSiyK686BhHAfSG0GDMs6ydkWbo3VLXtKBffnVL27cD/1Fu04OxKRzGogQr4Xda4yjPmXoy+rqObAelfbw+geRRYlsa2ti7LkzZ5x3N2UyriH8yFZnwS+eD1LaZilL/YFMU3Gzbn/u11uItiwkl+k6K1yIRFJEQKN8EtIGk8Nf38bDpyl4ek9BCVR1H6zoZyHE3BFEJwakbM+qNq+Ksbrdt395QgPsX9fJL6XJZwoCowBq2fnom3LJWYnZXcmDxyLxWSBhG+sknYoRFkuQHJi3tf1cK9ehM+DZBXQDJx4L0EVuRrvLY+YvanY6ussqHqfEQnGt4NU8ZmzqfwG73XLjkUb20RIFRPF9tMqSkI2Ez3plOC5/wCJijujD4gHbxDpOU81sDnxvMxd7FStpoZ1NExEW0JVHUY60U2IzG+kOidCWLyRAbhO90cA2r6iKgb0FtJSsajKPAl14UX8/6KoDLdJ6hDb0qg9v5TzdgtUdbhr+fg2U1b4/Z29oM4o59dZ+L6fcjWM37wCqdUnLEpdJMMdofpHkWMr989S3pvgnId67V0FjpLUSIsDgDdyLgIfX0eQGcmqGwbPgHQxnCJxVWWX4K9g8dsI9qpRbMTgVxOIAiWNW1CNoNuLJyftFihiOdqGmsW5NA7n4447DEWginULnF60F9Xrm98g3MhEBaSncRDnvKdD6ZQexp2w648rcnAE6nuRmLhb+6ogrVXa7J+G8FeshcCefxA1MaA34RamNNWsEUyc8zGwn4f6sBoCJxsZihWUYr4kEpnlQNL6GlTd4RbtuySUQ6HB/BZqH23IY3GN3zeRPGv43msQNKgqltFPt8PxsT7U89fa9LaSpFeA/W4LFB84IUKKquC5ryrq4UiSkhbZjyvXooiiHerQaxSQX1BCoYdqIoy7aaCGSTQHnuYLoEotUid2Z6hOe2uoivAmVJvM4n4iwLmyPOy8U0DGccN9OKeGYSO+GI6PDUDk74QdmQnrjSTKUbweg9/cC+P3o6ikQrQzl0mWo7BVLYLig4cjl7ceEVHSono4BXa2VMOh8haSH7yEyYFSzQ0YxOeknLnAmJ2J2AnZj+xWL1e9rc6oclzV5ch3PdiGRyRCvxVJSwNE00Cpwf6ezaBtOlZi677peR8b9Q/tbE9C0kpkjJXFY8HdMoIq2F/g7tlpgSv7a6jPNBKx4lOKcDGAUQsmCeKbsK/qebuFCiTCtaD+7IpJGrfKLomatiiSsr9hRCvkNOBFyLPyQiughDQedrRJsNd9A9uFUbJq1j61ad0IZ8VIp6TFuBmW0XAIHsH+QhahAgxReAoR8PQqWQyVkL8fQKDpkRIKkYe+ewntuRJ2LUperZQHJ3kxf7BVR1fNyz9sp29IQiNQTZ+Fqvph2NOObYGs9JxVqId/QQWKkU5iOssI1rsPeVBxwvIDegtZqf8krWNg+4nKbWvUlhGMz/NRjy0PY3UcgmRvgbr6Q9ieFvdy/fKMsjgSSoixug3OgP3BDXuKx6/V8aKe3YtQVrpVR8VbTvY8Ct8HI3t/IitJhRHcFWwP95cGLvt6KMEDdlcLCbppowpD+UxURtgDqTOfFVJulvfXTaKqoo27oP7YUchKeAjEtUYCnj6quDWEYZC0Bto50QsIQGvH5dktFKWdRYDz/mQFtWd9zkt2jvv7MjxV03NAWnQoLAQ7z05Qa9eAEHATKr5SVaOtqVvbZpXE0E+i2gwkcjWkxQuhBv5UKmsk4ZDh/VZxvbbUQzJf3ryCzVCISog5Bx0uLpgzy0WAEsd9KNHL2J1Wo+hPaENCSxNV5D1yko9I8vfp2CuQtiZ6RbOQukpCVGron4yQijsg8fwdhQf3QSwm+zXJ7ALyTbVd9ZB2gKJILHzIt3aQyxXw1iJ5buJbxpIKn92xkPBbWWUZg3V7DtJ1FGpTY5kZEtPB8JRdBwfXvvI5v5vkzjQl8Tpq6EgZ6jiJ6iMSa7UOSJU2pzTDLageXtwqaeXlYbeCEgZ5UUg276k5Tr3KeixQtZuNqg2tSMyceHehblsrElra8AmHqh+Jy+Xf/Qhq199g79KNH7gg8/BDFcoRh36Xf6vXcQBq/95I9bkERDUb1WHZTl200h4LagqgehjLplVU1aqbpW56BRw0rvSLdWEBoGp4KZKb92+BeChlfQ0R9GO6HP3eDCQErc65ETyKf0Iq3HVQdZNQcRczs3cjm2FX/L+stMFgr6pXXz9LiZTq4QBqz2v1jp4hrCBddQ4++2u62KdU6Vxtrk/U2Ry00e+cJ+v9UC0mFmDDT1WztJLCjjDWPwzJh977v+E3DyIuqiTPiX9vAGP/fQjyXBn5g7rPIa/nt6HbUEnrAhDswY1Iq6iEledBWRRwMEzElvLdAD1QM6EmLdzibwdh1P4uDPgdR1JniLIndY2B1KXg7lTtYFRU707LYGcxl0fhObZGpFWUhxs3IjqgdbAEcbdAA/yBImHFVQ3pFnclTz4Gz1eeDPFxQIlH8/D4P1FvX0SL2OiC5JQnSSquk2C4GWkV6cGaGDCdfh5yHjsDB4GvOmQNTtJ5KBnc6m9HQbqfiZj0RYISjRrcmyUwV7zvdivGKwmwfpcjrTPEwVIqKmERcW0dAc2lVLf/pOVkRW4n9YMu+Psx0Lu5JVhAMmNguB5pFY2w6PZ1uWghDisZ5GE1ZrQ48+9aBQvJnQnjbdiKrtgYjCCtf4V2FI2wLEfSQEByZLk08tguw9ZV7TxjGpgPhVeNgZkBvUFa/4pVKyphBfQWaihBsgfy8KxN1bCEPMXdkCSdlzI0AZ2TlgtdWb2oXsKA3oMjmIEO67aPSt2tPRGQyQDFPKi+Aa2hJkHiLhr+jSBhBeQFrGTQKbGQtFz1gQ+KEb6InsN+RhWvI6ge4TaU/WJRCSvvq2URK2D0EkaxMl+FLeaDEb5YoHpfBVn9Dvtazi2qSpjnwNHFsLq7agIOwfDbHQxj0Ls68GUpX1zUMd8vqAlZuY14L5f4rMKFNfCGVsqxBPMG6iB9Hv8XsY97AY6Y3gaV0OUqHhckrcKogaNCVozL+ldAcNEmk+6TltdI9xFMFEeqlmNi7YfBP1fyFZW0WFonIH9kVUXNrrdIVkRRxeMFObY3lTAhWGsooDuoSp7kqJCWiXpY5DSWXlQDa54a+F8LS9EkrDSIliVrk0INqUMTrBjIo5SaNJhz6EtawXvYfYzK656NyKqoElYJW5bXEjrXvbJtVBJBhhNR8uSBghjd+yUvU8sEq6TFInJFXbyLDIagDMMb2JCsrMC5hDcmmEvYzu64zQjAFVu7M+cSDPvOVbnMczvTGD+UtPbF5MjTZhb9ghE8i8excasa2K1XCMtSmFyllPTxvEuvbhNQg3pkfZDCwue8PDY6LSPdYw+Uic5TbfheRk3CSx7Axhf3xPXgFpWw8g6qGXkGq4zmnViTXuT+aWazpMqnKxG9BXaRGWhjm/iA+GDfDmAH781hjom9WATC6j/wmbtNPq0AxJqWpDUOu8m4yTIDsXOnSe2loCImC61r9UVsOjKvVXU8EFb/ol/DLmpy/y+LLXQUpWk+BgmMxuAgbXUG7jBdgXS7FXaVZjhRSwtmIKz+AyegE8cdQhzSf/pkAJthbIMdsQfRP8G21R5GpOyzq3W2qZn9xdvgtSUEwuo/cJC4+lMOgbD+0y/0XD1mZttB4poltq1+U5/bBftqAFLV7oixerlT50YgrP5FnhPI82BrGYVNy+3E8zPZuca9H4grGtzFmn31C0hVf0zKNhgIq38RJKv6ICENIOTBbTm1LdQZbhsfouT/205VRp/diXCFz4hUlYj3NRBWQEA8G8ytsG19CvFDzENMOvC4qERVwU7cB8HjerP0UWIe10BYAQHxJiVtL+ea2WZmdriZvST7Bo72UShE1SOqhyFNuX45C+aGVCq9BsIKCKphPDD8oYIJ+RMz2xDE9aBsgMrvVnvUKVGLIKpNYa+an4ZUpQiElR9kHe9TwsQLLvvWE6hJXM+DuDaGqngdvkc7FyWRWsHvd9Srue9SaQ7EfUcRVWr3GwgrP3BpIlliPGwxNIoWdVJ1m7gGRFXcGZP4ZBjry95ELoK9qyZtJTG743UzO8fMppjZJmZ2tqh+qRMVEQgrH9UDajBY8r0skNkg62HUvIldRrmiL5nZuma2C7Yae02qRHDO5YXAal5bStJWV+77CjM7wMzWMbNPo1KKZU1U1meJr3kG7R5P4DWrhz+KUjiLYWAGdD7pTeKN5pjZtTiWNbOtIZ3saGarRuxszYnPlJVSgjbGmrxqhDlVPG3LLIQlXIq2u+RkQm10XXEwFJ2wSgn8rpSApOm3g4Fz1RZ+xw0js8KriJU51cw+3uUNGlrdlj7PqEaMK5dcfQmOsZC+3om8OlcpYs0GfaBk2Ok8j5ovM83sfjObhlCEu6H+mSdJ0R7XVQz0iB2hnZrwFH+H8Xe7k0bPYUJUjciKg3kYdoCFMHCfSbDyadx2O+LqNl7tQfVUiUalmAUwWrvj55iDa4PE1kJKkNvEZD0pt93pPB3FYvR3qKfOdvkIYsvcmHvF+75G9XedpIpMWCraDqIQ28uyHXkzkNxWk9VvGYjoT0kh/LjgyrM0SKeGOlNbgAzuqkNA/H85qS2edQ34hUEUU7tYcbOM57g/JmmvhlnQ1mWi7pXl/QdxOHwPryvg89VwVCGJOXIz9BvHKsetkv6NUEsNEfpzPPUuiqBYxy3kTXYIrk5/RpWBzdC5M1ALegAPsNzkoNHzNygN/KiQzLtaOA8nmvv+flIQzh07oJLlMAaYnpOvHwNRvCS/c4m2WSwiJOrrYTe7EeSVNVmwHU41mo6YntfQN0VcTNsFycs3yqeFsnetQi0QRWkso2adDeAMTLJ3QKqJEmlbwfIwPD8h20K1giUgKc1Hf7pM/0Vx3kfqSGxOMlwdNZmcirA+als/mIFKyNV4GRDEvDYkyzTaYzBOv9rHtboUJC41wJcxNiZjodTNM9zfx2Au+M+T46mtki55QlEIi+Kqk1iON7MzIdXQ0zVWPCxxQPuVYXKMgPwGWzgPvzcfdii2cTzOtwCSC8MWSt5v5ssKR5f47V0mj4B8o4yx6yLsXbkWjmOaJlxhPEf4PTuG/g8IvwWGY+9o4wAAAABJRU5ErkJggg==');
  --mark-band: url('data:image/png;base64,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');
  --mark-dot: url('data:image/png;base64,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');
  --stamp-grade: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAWMAAAFjCAYAAADowmrhAAAEI0lEQVR42u3YsY3EMBAEweZD+ac87ysAnQBVeXTHaCx4ti0AfurPBAC/d93exyRVzSa2sY1tntzFZQyQbwoAxBhAjAEQYwAxBkCMAcQYADEGEGMAxBhAjAEQYwAxBkCMAcQYADEGEGMAxBhAjAEQYwAxBkCMAcQYADEGEGMAxBhAjAEQYwAxBkCMAcQYADEGEGMAxBhAjAEQYwAxBkCMAcQYADEGEGMAxBhAjAEQYwAxBkCMAcQYADEGEGMAxBhAjAEQYwAxBkCMAcQYADEGEGMAxBhAjAEQYwAxBkCMAcQYADEGQIwBxBiAqrNtZgBwGQN83nW/lE1S1WxiG9vY5sldXMYA+aYAQIwBxBgAMQYQYwDEGECMARBjADEGQIwBxBgAMQYQYwDEGECMARBjADEGQIwBxBgAMQYQYwDEGECMARBjADEGQIwBxBgAMQYQYwDEGECMARBjADEGQIwBxBgAMQYQYwDEGECMARBjADEGQIwBxBgAMQYQYwDEGECMARBjADEGQIwBxBgAMQYQYwDEGECMARBjADEGQIwBxBgAMQYQYwDEGECMARBjAMQYQIwBEGOAlzjbZgYAlzHA5133S9kkVc0mtrGNbZ7cxWUMkG8KAMQYQIwBEGMAMQZAjAHEGAAxBhBjAMQYQIwBEGMAMQZAjAHEGAAxBhBjAMQYQIwBEGMAMQZAjAHEGAAxBhBjAMQYQIwBEGMAMQZAjAHEGAAxBhBjAMQYQIwBEGMAMQZAjAHEGAAxBhBjAMQYQIwBEGMAMQZAjAHEGAAxBhBjAMQYQIwBEGMAMQZAjAHEGAAxBhBjAMQYQIwBEGMAMQZAjAHEGAAxBkCMAcQYADEGeImzbWYAcBkDfN51v5RNUtVsYhvb2ObJXVzGAPmmAECMAcQYADEGEGMAxBhAjAEQYwAxBkCMAcQYADEGEGMAxBhAjAEQYwAxBkCMAcQYADEGEGMAxBhAjAEQYwAxBkCMAcQYADEGEGMAxBhAjAEQYwAxBkCMAcQYADEGEGMAxBhAjAEQYwAxBkCMAcQYADEGEGMAxBhAjAEQYwAxBkCMAcQYADEGEGMAxBhAjAEQYwAxBkCMAcQYADEGEGMAxBhAjAEQYwDEGECMARBjgJc422YGAJcxwOdd90vZJFXNJraxjW2e3MVlDJBvCgDEGECMARBjADEGQIwBxBgAMQYQYwDEGECMARBjADEGQIwBxBgAMQYQYwDEGECMARBjADEGQIwBxBgAMQYQYwDEGECMARBjADEGQIwBxBgAMQYQYwDEGECMARBjADEGQIwBxBgAMQYQYwDEGECMARBjADEGQIwBxBgAMQYQYwDEGECMARBjADEGQIwBxBgAMQYQYwDEGECMARBjADEGQIwBxBgAMQZAjAHEGICqs21mAHAZA3zeP5wwM7M4xYI0AAAAAElFTkSuQmCC');
  --stamp-planta: url('data:image/png;base64,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');
  --stamp-malha: url('data:image/png;base64,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');
  --stamp-grade-lisa: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAWMAAAFjCAYAAADowmrhAAAELUlEQVR42u3YMY4EIRAEwe4T//9yrXNI8AA0SEQ465eR20MnSQHwqfH/26bYrH9QtrGNbWxzfJs/OwB8T4wBxBgAMQYQYwDEGECMARBjADEGQIwBxBgAMQYQYwDEGECMARBjADEGQIwBxBgAMQYQYwDEGECMARBjADEGQIwBxBgAMQYQYwDEGECMARBjADEGQIwBxBgAMQYQYwDEGECMARBjADEGQIwBxBgAMQYQYwDEGECMARBjADEGQIwBxBgAMQYQYwDEGECMARBjADEGQIwBxBgAMQYQYwDEGECMARBjADEGQIwBEGMAMQagqqo6ScwA4DIGeN6YF7IpNuvXgm1sYxvbHN/GZQxQnikAEGMAMQZAjAHEGAAxBhBjAMQYQIwBEGMAMQZAjAHEGAAxBhBjAMQYQIwBEGMAMQZAjAHEGAAxBhBjAMQYQIwBEGMAMQZAjAHEGAAxBhBjAMQYQIwBEGMAMQZAjAHEGAAxBhBjAMQYQIwBEGMAMQZAjAHEGAAxBhBjAMQYQIwBEGMAMQZAjAHEGAAxBhBjAMQYQIwBEGMAMQZAjAHEGAAxBhBjAMQYADEGEGMAxBjgEp0kZgBwGQM8b8wL2RSb9WvBNraxjW2Ob+MyBijPFACIMYAYAyDGAGIMgBgDiDEAYgwgxgCIMYAYAyDGAGIMgBgDiDEAYgwgxgCIMYAYAyDGAGIMgBgDiDEAYgwgxgCIMYAYAyDGAGIMgBgDiDEAYgwgxgCIMYAYAyDGAGIMgBgDiDEAYgwgxgCIMYAYAyDGAGIMgBgDiDEAYgwgxgCIMYAYAyDGAGIMgBgDiDEAYgwgxgCIMYAYAyDGAGIMgBgDiDEAYgyAGAOIMQBiDHCJThIzALiMAZ435oVsis36tWAb29jGNse3cRkDlGcKAMQYQIwBEGMAMQZAjAHEGAAxBhBjAMQYQIwBEGMAMQZAjAHEGAAxBhBjAMQYQIwBEGMAMQZAjAHEGAAxBhBjAMQYQIwBEGMAMQZAjAHEGAAxBhBjAMQYQIwBEGMAMQZAjAHEGAAxBhBjAMQYQIwBEGMAMQZAjAHEGAAxBhBjAMQYQIwBEGMAMQZAjAHEGAAxBhBjAMQYQIwBEGMAMQZAjAHEGAAxBkCMAcQYADEGuEQniRkAXMYAzxvzQjbFZv1asI1tbGOb49u4jAHKMwUAYgwgxgCIMYAYAyDGAGIMgBgDiDEAYgwgxgCIMYAYAyDGAGIMgBgDiDEAYgwgxgCIMYAYAyDGAGIMgBgDiDEAYgwgxgCIMYAYAyDGAGIMgBgDiDEAYgwgxgCIMYAYAyDGAGIMgBgDiDEAYgwgxgCIMYAYAyDGAGIMgBgDiDEAYgwgxgCIMYAYAyDGAGIMgBgDiDEAYgwgxgCIMYAYAyDGAGIMgBgDIMYAYgyAGANcopPEDADf+gE8oTOzJ68bcQAAAABJRU5ErkJggg==');
  --modulo-marca: 71px;
  --angulo-marca: 31deg;   /* obliqua dominante, re-medida no emblema dourado por
                              histograma de orientacao de aresta nas torres */

  /* --- PALETA DECLARADA NA PRANCHA DO CLIENTE ----------------------------- */
  --preto-profundo:   #0A0806;
  --grafite:          #302F31;
  --bronze-escuro:    #613E16;
  --ouro-bronze:      #956D3B;
  --ouro-metalico:    #CFA25B;
  --champagne:        #F6E4AC;

  /* --- COMO ELAS VIRAM SISTEMA -------------------------------------------
     O ouro metalico da 2,34:1 contra branco: ele NAO pode ser texto nem
     marcador fino em dobra clara. Por isso a marca tem TRES papeis, e nao um:
       --brand       #CFA25B  preenchimento e superficie (8,5:1 com texto no ink)
       --brand-ink   #613E16  a marca como TEXTO em dobra CLARA  (9,5:1)
       --brand-light #F6E4AC  a marca como TEXTO em dobra ESCURA (15,8:1)
     Trocar um pelo outro no lugar errado apaga o acento sem dar erro. */
  --brand: #CFA25B;
  --brand-ink: #613E16;
  --brand-2: #956D3B;
  --brand-light: #F6E4AC;
  --brand-soft: #CFA25B1a;

  /* Raio 5px: a geometria segue o MONOGRAMA (torres, H e C, tudo de angulo
     reto), nao o anel do emblema. O circulo do anel aparece nos elementos que
     ja sao selo: o selo da regua, os circulos de etapa e o FAB. */
  --radius-btn: 5px; --radius-card: 5px;

  /* Marca */
  --color-primary: #CFA25B;          /* ouro metalico: PREENCHIMENTO */
  --color-primary-strong: #956D3B;   /* ouro bronze: hover e profundidade */
  --color-primary-soft: #F7F0E1;     /* tint claro, na familia champagne */
  --cta: var(--brand-ink);           /* quem clica precisa de texto legivel */

  /* Institucional / superficies (familia quente, derivada do preto profundo) */
  --color-ink: #0A0806;
  --color-ink-2: #171310;
  --color-ink-3: #221B14;
  --color-graphite: #302F31;
  --color-slate: #5C534A;

  /* Neutras quentes: cinza frio ao lado de ouro le como sujeira */
  --color-bg: #FFFFFF;
  --color-bg-soft: #F8F5EF;
  --color-bg-mute: #EFE9DD;
  --color-line: #E3DACA;
  --color-text: #171310;
  --color-text-mute: #5C534A;
  --color-on-dark: #F0E9DB;
  --color-on-dark-mute: #B9AC96;
  /* Metal do emblema: os dois extremos do degrade do anel, e a mediana */
  --color-aco: #956D3B;
  --color-aco-escuro: #613E16;
  --color-aco-claro: #CFA25B;
  --color-azul-engrenagem: #CFA25B;   /* nome herdado do kit azul; hoje e o ouro */

  /* Acento de destaque em fundo escuro */
  --color-gold: #F6E4AC;

  /* Verde = pontos de conversao (form, popup, CTA fixo) */
  --color-green: #1FA858;
  --color-green-deep: #148244;
  --color-green-light: #2BD46E;

  /* Header fixo */
  --header-h: 96px;

  /* Tipografia do kit */
  --font-display: "Montserrat", "Inter", system-ui, -apple-system, sans-serif;
  --font-body: "Inter", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;

  /* Layout */
  --container: 1200px;
  --container-pad: clamp(20px, 4vw, 40px);
  --radius-sm: 5px;
  --radius: 5px;
  --radius-lg: 5px;

  /* Sombras (quentes, na familia do preto profundo) */
  --shadow-sm: 0 4px 14px rgba(10, 8, 6, 0.08);
  --shadow: 0 12px 40px rgba(10, 8, 6, 0.14);
  --shadow-lg: 0 24px 60px rgba(10, 8, 6, 0.22);
  --shadow-accent: 0 16px 40px rgba(207, 162, 91, 0.30);

  /* Degrade MEDIDO no anel do emblema (rgb 150,93,15 -> 253,235,104) */
  --grad-aco: linear-gradient(180deg, #613E16, #CFA25B);
  --grad-azul: linear-gradient(180deg, #CFA25B, #956D3B);
  --grad-marca: linear-gradient(31deg, #613E16 0%, #CFA25B 48%, #F6E4AC 72%, #956D3B 100%);

  /* Transicoes */
  --ease: cubic-bezier(.2,.7,.2,1);
  --t-fast: .2s var(--ease);
  --t: .35s var(--ease);
  --t-slow: .6s var(--ease);
}

/* ==========================================================================
   RESET & BASE
   ========================================================================== */

*, *::before, *::after { box-sizing: border-box; }
* { margin: 0; padding: 0; }

html {
  scroll-behavior: smooth;
  -webkit-text-size-adjust: 100%;
  scroll-padding-top: calc(var(--header-h) + 16px);
}

body {
  font-family: var(--font-body);
  font-size: 16px;
  line-height: 1.65;
  color: var(--color-text);
  background: var(--color-bg);
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  overflow-x: hidden;
}

img, svg, video { max-width: 100%; height: auto; display: block; }
a { color: inherit; text-decoration: none; transition: color var(--t-fast); }
button { font: inherit; cursor: pointer; border: 0; background: transparent; color: inherit; }
ul, ol { list-style: none; }

/* ==========================================================================
   GEOMETRIA ANGULAR (13.1) — a logo é um HEXÁGONO (retas + chanfros),
   então o site inteiro é angular. Exceção: o FAB do WhatsApp continua
   redondo (botão de marca reconhecível) e os marcadores hexagonais usam
   clip-path (não dependem de border-radius).
   ========================================================================== */
*, *::before, *::after { border-radius: var(--radius-btn, 5px); }

/* Marcador/ícone hexagonal da marca (pointy-top, igual à logo) */
.mark-shape {
  clip-path: none;   /* HC: marca de angulo reto, sem chanfro */
}

::selection { background: var(--color-primary); color: var(--color-ink); }

.container {
  width: 100%;
  max-width: var(--container);
  margin: 0 auto;
  padding-left: var(--container-pad);
  padding-right: var(--container-pad);
}

/* ==========================================================================
   TIPOGRAFIA UTILITÁRIA
   ========================================================================== */

.eyebrow {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  font-family: var(--font-display);
  font-size: 13px;
  font-weight: 600;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--color-primary);
  margin-bottom: 18px;
}
.eyebrow--dark { color: var(--color-ink); }
.eyebrow--light { color: var(--color-primary); }

/* Tarja de destaque (alto contraste sobre a foto do hero) */
.eyebrow--badge {
  color: #fff;
  background: rgba(10,8,6, 0.85);
  -webkit-backdrop-filter: blur(6px); backdrop-filter: blur(6px);
  padding: 10px 18px;
  margin-bottom: 22px;
  clip-path: none;   /* HC: marca de angulo reto, sem chanfro */
  box-shadow: 0 10px 28px rgba(0, 0, 0, 0.35);
  max-width: 100%;
}
.eyebrow--badge .eyebrow__dot { background: var(--color-primary); }
@media (max-width: 600px) {
  .eyebrow--badge { white-space: normal; line-height: 1.5; padding: 12px 20px;
  clip-path: none;   /* HC: marca de angulo reto, sem chanfro */ }
}

/* Marcador de TODO eyebrow = hexágono da marca (não uma bolinha genérica) */
.eyebrow::before {
  content: "";
  width: 12px; height: 12px;
  background: var(--color-primary);
  -webkit-mask: var(--mark-dot) center/contain no-repeat;
  mask: var(--mark-dot) center/contain no-repeat;
  flex: 0 0 auto;
}
.eyebrow__dot { display: none; }

.section-title {
  font-family: var(--font-display);
  font-weight: 600;
  color: var(--color-ink);
  font-size: clamp(28px, 4vw, 48px);
  line-height: 1.14;
  letter-spacing: -0.01em;
  margin-bottom: 18px;
  max-width: 22ch;
  text-wrap: balance;
}
.section-title--light { color: #fff; }

.section-lead {
  font-size: clamp(16px, 1.4vw, 18px);
  color: var(--color-text-mute);
  max-width: 60ch;
  margin-bottom: 44px;
}
.section-lead--light { color: var(--color-on-dark-mute); }
.section-lead--short { max-width: 50ch; }

.accent {
  color: var(--brand-ink);   /* ouro metalico da 2,3:1 no claro: texto e bronze */
  position: relative;
  /* nowrap só em telas grandes — em mobile pode quebrar */
}
@media (min-width: 900px) {
  .accent { white-space: nowrap; }
}

/* Régua sob o acento = barra chanfrada nas pontas (traço do hexágono),
   não uma linha arredondada genérica. */
.hero__headline .accent::after,
.section-title .accent::after {
  content: "";
  position: absolute;
  left: 0; right: 0; bottom: -6px;
  height: 5px;
  background: var(--color-primary);
  clip-path: none;   /* HC: marca de angulo reto, sem chanfro */
  opacity: .85;
}

/* ==========================================================================
   BOTÕES
   ========================================================================== */

/* TODOS os botões têm pontas HEXAGONAIS (identidade da marca) */
.btn {
  position: relative;
  overflow: hidden;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  font-family: var(--font-display);
  font-weight: 600;
  letter-spacing: 0.01em;
  padding: 14px 26px;
  clip-path: none;   /* HC: marca de angulo reto, sem chanfro */
  transition: transform var(--t-fast), background var(--t), color var(--t), filter var(--t);
  cursor: pointer;
  text-align: center;
  white-space: nowrap;
  will-change: transform;
}
.btn svg { width: 18px; height: 18px; position: relative; z-index: 2; }
.btn:hover { transform: translateY(-2px); }
.btn:active { transform: translateY(1px); }

/* Brilho que atravessa o botão secundário (sheen) */
.btn--ghost-light::after {
  content: "";
  position: absolute;
  top: 0; left: -130%;
  width: 60%; height: 100%;
  background: linear-gradient(100deg, transparent, rgba(255,255,255,0.55), transparent);
  transform: skewX(-18deg);
  animation: btnShine 4.2s ease-in-out infinite;
  pointer-events: none;
  z-index: 1;
}
@keyframes btnShine { 0% { left: -130%; } 55%, 100% { left: 140%; } }

.btn--lg { padding: 18px 34px; font-size: 16px; }
.btn--sm { padding: 10px 20px; font-size: 14px; }
.btn--block { width: 100%; }

/* =====================================================================
   Botões preenchidos = corpo hexagonal (::before) + ANEL DE PULSO que
   expande e some (::after), igual ao ctaPulse do Militão/Moura.
   Como o clip-path apaga box-shadow, o anel é um pseudo hexagonal
   que cresce (inset negativo) por trás do corpo e desaparece.
   ===================================================================== */
.btn--accent, .btn--green {
  background: transparent;   /* o corpo colorido vem do ::before */
  clip-path: none;           /* remove o clip do .btn base p/ o anel escapar */
  overflow: visible;
  isolation: isolate;
}
.btn--accent { color: var(--color-ink); }
.btn--green  { color: #fff; }
.btn--accent:hover, .btn--green:hover { color: #fff; }

.btn--accent::before, .btn--green::before,
.btn--accent::after,  .btn--green::after {
  content: "";
  position: absolute; inset: 0;
  clip-path: none;   /* HC: marca de angulo reto, sem chanfro */
  pointer-events: none;
}
/* corpo (fica na frente do anel, atrás do texto) */
.btn--accent::before { z-index: -1; background: var(--color-primary); transition: filter var(--t), background var(--t); }
.btn--green::before  { z-index: -1; background: linear-gradient(115deg, var(--color-green-light) 0%, var(--color-green) 55%, var(--color-green-deep) 100%); transition: filter var(--t); }
/* ANEL que pulsa: cresce ~13px pra fora e some */
.btn--accent::after { z-index: -2; background: var(--color-primary); animation: ringPulse 1.7s ease-out infinite; }
.btn--green::after  { z-index: -2; background: var(--color-green-light); animation: ringPulse 1.7s ease-out infinite; }
@keyframes ringPulse {
  0%   { inset: 0;      opacity: .55; }
  70%  { inset: -13px;  opacity: 0; }
  100% { inset: -13px;  opacity: 0; }
}
.btn--accent:hover::before { background: var(--color-primary-strong); }
.btn--green:hover::before  { filter: brightness(1.08); }

.btn--ghost {
  background: var(--color-bg-mute);
  color: var(--color-ink);
}
.btn--ghost:hover { background: #EFE9DD; }

/* Secundário sobre imagem = hexágono fosco translúcido */
.btn--ghost-light {
  background: rgba(255, 255, 255, 0.14);
  color: #fff;
  -webkit-backdrop-filter: blur(6px);
  backdrop-filter: blur(6px);
}
.btn--ghost-light:hover { background: rgba(255, 255, 255, 0.24); }

.btn--compact { padding: 12px 22px; font-size: 14px; animation: none; }
/* folga do texto para as pontas anguladas nos botões grandes */
.btn--lg { padding-left: 36px; padding-right: 36px; }

/* =================================================================
   READ PROGRESS BAR                                                  */
.read-progress {
  position: fixed;
  top: 0; left: 0;
  height: 3px;
  width: 0;
  background: linear-gradient(90deg, var(--color-primary), var(--color-primary-soft));
  z-index: 1000;
  transition: width 0.1s linear;
  pointer-events: none;
}

/* =================================================================
   SITE HEADER — fundo sólido da marca + faixa de nav deslizante      */
.site-header {
  position: fixed;
  inset: 0 0 auto 0;
  z-index: 900;
  height: var(--header-h);
  display: flex;
  align-items: center;
  background: linear-gradient(115deg, var(--color-ink-2) 0%, var(--color-ink) 60%, var(--color-ink) 100%);
  border-bottom: 1px solid rgba(255,255,255,0.08);
  transition: box-shadow 0.35s var(--ease), background 0.35s var(--ease);
}
.site-header::before {
  content: '';
  position: absolute;
  inset: 0 0 auto 0;
  height: 2px;
  background: linear-gradient(90deg, transparent, var(--color-primary) 30%, #F6E4AC 50%, var(--color-primary) 70%, transparent);
  opacity: 0.8;
}
.site-header.is-solid {
  background: linear-gradient(115deg, rgba(23,19,16,0.94) 0%, rgba(10,8,6,0.95) 60%, rgba(10,8,6,0.96) 100%);
  -webkit-backdrop-filter: blur(14px);
  backdrop-filter: blur(14px);
  box-shadow: 0 10px 34px -14px rgba(0,0,0,0.7);
}
.site-header__inner {
  position: relative;
  display: flex;
  align-items: center;
  gap: 16px;
  width: 100%;
  height: 100%;
}
.site-header__brand { display: inline-flex; align-items: center; flex-shrink: 0; line-height: 0; }
.site-header__brand img { height: 62px; width: auto; filter: drop-shadow(0 3px 8px rgba(0,0,0,0.35)); }

/* faixa de nav: acompanha a rolagem, desliza até a seção atual (todas as telas) */
.site-nav {
  display: flex;
  align-items: center;
  gap: 8px;
  margin-left: auto;
  overflow-x: auto;
  scroll-behavior: smooth;
  scrollbar-width: none;
  -ms-overflow-style: none;
  -webkit-overflow-scrolling: touch;
  -webkit-mask: linear-gradient(90deg, transparent 0, #000 4%, #000 92%, transparent 100%);
          mask: linear-gradient(90deg, transparent 0, #000 4%, #000 92%, transparent 100%);
}
.site-nav::-webkit-scrollbar { display: none; }
.site-nav a[data-section] {
  flex: 0 0 auto;
  padding: 8px 17px;
  font-family: var(--font-display);
  font-size: 14px;
  font-weight: 500;
  color: rgba(255,255,255,0.82);
  white-space: nowrap;
  clip-path: none;   /* HC: marca de angulo reto, sem chanfro */
  transition: color 0.2s var(--ease), background 0.25s var(--ease);
}
.site-nav a[data-section]:hover { color: #fff; background: rgba(255,255,255,0.16); }
/* seção atual: chip BRANCO hexagonal (cor diferente do botão turquesa do header) */
.site-nav a[data-section].current {
  color: var(--color-ink);
  background: #fff;
  font-weight: 700;
}
.site-header__cta { flex-shrink: 0; margin-left: 4px; }

@media (max-width: 900px) {
  :root { --header-h: 74px; }
  .site-header__cta { display: none; }
  .site-header__brand img { height: 46px; }
  /* SEM hambúrguer: os nomes continuam sempre visíveis, deslizando pro lado */
  .site-nav { margin-left: 12px; gap: 8px; }
  .site-nav a[data-section] {
    padding: 6px 14px;
    font-size: 13px;
    color: #fff;
    background: rgba(255,255,255,0.12);
  }
  .site-nav a[data-section].current { background: #fff; color: var(--color-ink); }
}

/* ==========================================================================
   HERO (sem navbar — logo embutida no início do conteúdo)
   ========================================================================== */

.hero {
  position: relative;
  min-height: 100vh;
  min-height: 100svh;
  display: flex;
  align-items: center;
  padding: calc(var(--header-h) + 44px) 0 110px; /* topo livre do header fixo */
  overflow: hidden;
  isolation: isolate;
  color: #fff;
}

.hero__brand {
  display: block;            /* força quebra após a logo */
  width: fit-content;        /* o anchor envolve só a imagem */
  margin-bottom: 32px;
  transition: opacity var(--t-fast);
  line-height: 0;
}
.hero__brand:hover { opacity: 0.85; }
.hero__brand img {
  /* Proporção real após o crop (2696x1750 ≈ 1.54:1).
     Definimos width pelo viewport e deixamos a height seguir
     o aspect-ratio dos atributos width/height do <img>. */
  width: clamp(180px, 20vw, 280px);
  height: auto;
  max-width: 100%;
  filter: drop-shadow(0 6px 18px rgba(0, 0, 0, 0.45));
  display: block;
}
.eyebrow--light {
  /* Quando dentro do hero, garante alinhamento à esquerda */
  align-self: flex-start;
}
@media (max-width: 600px) {
  /* No mobile a logo fica centralizada acima do conteúdo */
  .hero__brand {
    margin-left: auto;
    margin-right: auto;
    margin-bottom: 24px;
  }
  .hero__brand img { width: clamp(180px, 50vw, 240px); }
  /* Botões do hero ocupam a largura toda (mais fáceis de tocar) */
  .hero__cta { flex-direction: column; align-items: stretch; }
  .hero__cta .btn { width: 100%; justify-content: center; }
}

.hero__bg {
  position: absolute;
  inset: 0;
  z-index: -1;
}
.hero__bg picture { display: block; width: 100%; height: 100%; }
.hero__bg img {
  width: 100%; height: 100%;
  object-fit: cover;
  object-position: center;
  animation: heroZoom 18s var(--ease) infinite alternate;
}
.hero__overlay {
  position: absolute;
  inset: 0;
  /* escuro à esquerda (texto) e mais leve à direita (casa aparece mais) */
  background:
    linear-gradient(90deg, rgba(10,8,6, 0.72) 0%, rgba(10,8,6, 0.58) 40%, rgba(10,8,6, 0.44) 100%),
    linear-gradient(180deg, rgba(10,8,6, 0.30) 0%, transparent 32%, rgba(10,8,6, 0.62) 100%);
}
@media (max-width: 760px) {
  /* Celular: escuro atrás do texto (topo) e mais leve embaixo para a
     casa aparecer; leve reforço no rodapé da dobra para contraste. */
  .hero__overlay {
    background:
      linear-gradient(180deg,
        rgba(10,8,6, 0.88) 0%,
        rgba(10,8,6, 0.74) 34%,
        rgba(10,8,6, 0.30) 60%,
        rgba(10,8,6, 0.20) 78%,
        rgba(10,8,6, 0.55) 100%);
  }
  /* Imagem mobile já é retrato enquadrado na casa */
  .hero__bg img { object-position: center; }
}

@keyframes heroZoom {
  from { transform: scale(1.0); }
  to   { transform: scale(1.08); }
}

.hero__content {
  position: relative;
  /* usa a largura do container (alinha o texto com a logo e as outras dobras) */
  text-align: left;
}

.hero__headline {
  font-family: var(--font-display);
  font-weight: 600;
  font-size: clamp(32px, 5vw, 58px);
  line-height: 1.14;
  letter-spacing: -0.015em;
  color: #fff;
  margin-bottom: 26px;
  max-width: 20ch;
  text-wrap: balance;
}
/* no hero o acento pode quebrar naturalmente (evita linha gigante e desalinhada) */
.hero__headline .accent { color: var(--color-primary); white-space: normal; }
.hero__headline .accent::after {
  height: 4px;
  bottom: -3px;
}

.hero__sub {
  font-size: clamp(16px, 1.4vw, 19px);
  color: var(--color-on-dark-mute);
  max-width: 60ch;
  margin-bottom: 36px;
}

.hero__cta {
  display: flex;
  flex-wrap: wrap;
  gap: 14px;
}

/* Chamada "Conheça a Romualdo" — em FLUXO (nunca sobre os botões), todas as telas */
.hero__cue {
  display: inline-flex;
  align-items: center;
  gap: 12px;
  margin-top: clamp(26px, 4vh, 44px);
  padding-top: clamp(18px, 2.6vh, 26px);
  border-top: 1px solid rgba(255,255,255,0.16);
  font-family: var(--font-display);
  font-size: 12px;
  font-weight: 600;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: rgba(255,255,255,0.9);
}
.hero__cue:hover { color: var(--color-primary); }
/* Chevron dentro de um selo HEXAGONAL (borda hexagonal, não quadrada) */
.hero__cue-chevron {
  display: inline-grid;
  place-items: center;
  width: 32px; height: 35px;
  clip-path: none;   /* HC: marca de angulo reto, sem chanfro */
  background: rgba(207,162,91, 0.22);
  color: #fff;
  animation: cueBounce 1.8s ease-in-out infinite;
}
.hero__cue:hover .hero__cue-chevron { background: var(--color-primary); color: var(--color-ink); }
.hero__cue-chevron svg { width: 16px; height: 16px; }
@keyframes cueBounce {
  0%, 100% { transform: translateY(0); }
  50%      { transform: translateY(4px); }
}

@media (max-width: 900px) {
  .hero { padding-bottom: 72px; }
}

/* ==========================================================================
   PROOF
   ========================================================================== */

.proof {
  background: var(--color-ink);
  color: #fff;
  padding: 36px 0;
  position: relative;
  z-index: 2;
}
.proof__grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 28px;
  align-items: center;
}
.proof__grid--3 { grid-template-columns: repeat(3, 1fr); }

/* Autoridade em foco único: +15 anos bem destacado */
.proof--single { padding: clamp(40px, 6vw, 64px) 0; }
.proof__solo {
  display: flex; align-items: center; justify-content: center;
  gap: clamp(24px, 5vw, 56px); flex-wrap: wrap;
}
.proof__seal {
  flex: 0 0 auto; display: inline-flex; align-items: center; justify-content: center;
}
.proof__seal img {
  width: clamp(58px, 6vw, 76px); height: auto; display: block;
  filter: drop-shadow(0 6px 22px rgba(207,162,91, 0.42));
  animation: sealPulse 3.6s var(--ease) infinite alternate;
}
@keyframes sealPulse {
  from { filter: drop-shadow(0 6px 18px rgba(207,162,91, 0.30)); }
  to   { filter: drop-shadow(0 6px 30px rgba(207,162,91, 0.60)); }
}
@media (max-width: 640px) {
  .proof__seal { padding-bottom: 4px; }
}
.proof__solo-num {
  flex: 0 0 auto; text-align: center;
  font-family: var(--font-display); font-weight: 700;
  font-size: clamp(46px, 7vw, 78px); color: var(--color-primary);
  line-height: 0.9; letter-spacing: -0.03em;
  text-shadow: 0 8px 40px rgba(207,162,91,0.30);
}
.proof__solo-num small {
  display: block; margin-top: 7px;
  font-size: 0.22em; color: var(--color-on-dark-mute); font-weight: 600;
  letter-spacing: 0.14em; text-transform: uppercase;
}
.proof__solo-label {
  flex: 1 1 0; max-width: 46ch; font-size: clamp(16px, 1.5vw, 19px);
  color: var(--color-on-dark); line-height: 1.55;
  border-left: 3px solid var(--color-primary); padding-left: 26px;
}
.proof__solo-label strong { color: #fff; font-weight: 600; }
.proof__solo-label .proof__hl { color: var(--color-primary); font-weight: 700; }
@media (max-width: 640px) {
  .proof__solo { flex-direction: column; text-align: center; gap: 18px; }
  .proof__solo-label { border-left: 0; border-top: 3px solid var(--color-primary); padding-left: 0; padding-top: 16px; }
}
.proof__num--word {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  color: var(--color-primary);
  font-size: clamp(22px, 2.6vw, 32px);
}
.proof__arrow { color: var(--color-on-dark-mute); font-weight: 400; }
.proof__item {
  text-align: center;
  border-left: 1px solid rgba(255,255,255,0.08);
  padding: 6px 14px;
}
.proof__item:first-child { border-left: 0; }
.proof__num {
  font-family: var(--font-display);
  font-size: clamp(28px, 3.2vw, 40px);
  font-weight: 700;
  color: var(--color-primary);
  line-height: 1;
  letter-spacing: -0.01em;
}
.proof__num small {
  font-size: 0.45em;
  color: var(--color-on-dark-mute);
  font-weight: 500;
  margin-left: 4px;
}
.proof__label {
  font-size: 13px;
  color: var(--color-on-dark-mute);
  margin-top: 8px;
  line-height: 1.4;
}

@media (max-width: 720px) {
  .proof__grid { grid-template-columns: repeat(2, 1fr); gap: 20px; }
  .proof__grid--3 { grid-template-columns: 1fr; }
  .proof__item { border-left: 0; }
}

/* ==========================================================================
   OFFER (DARK)
   ========================================================================== */

.offer {
  background:
    var(--color-ink);
  color: #fff;
  padding: clamp(70px, 9vw, 120px) 0;
  position: relative;
  overflow: hidden;
}
.offer::before {
  content: "";
  position: absolute;
  top: -120px; right: -120px;
  width: 420px; height: 420px;
  background: radial-gradient(circle, rgba(207,162,91, 0.18) 0%, transparent 70%);
  pointer-events: none;
}
.offer::after {
  content: "";
  position: absolute;
  bottom: -160px; left: -120px;
  width: 380px; height: 380px;
  background: radial-gradient(circle, rgba(207,162,91, 0.08) 0%, transparent 70%);
  pointer-events: none;
}
.offer__head { max-width: 700px; margin-bottom: 50px; position: relative; }

.offer__grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 24px;
  position: relative;
}

.offer__card {
  background: rgba(255,255,255,0.04);
  border: 1px solid rgba(255,255,255,0.10);
  border-radius: var(--radius-lg);
  padding: 40px;
  position: relative;
  transition: transform var(--t), border-color var(--t), background var(--t);
}
.offer__card:hover {
  transform: translateY(-4px);
  border-color: rgba(207,162,91, 0.4);
  background: rgba(207,162,91, 0.06);
}
.offer__card--featured {
  background: linear-gradient(160deg, rgba(207,162,91, 0.12), rgba(207,162,91, 0.02));
  border-color: rgba(207,162,91, 0.35);
}

.offer__badge {
  display: inline-block;
  font-family: var(--font-display);
  font-size: 12px;
  font-weight: 600;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  padding: 8px 14px;
  border-radius: 999px;
  background: rgba(255,255,255,0.08);
  color: var(--color-on-dark);
  margin-bottom: 20px;
}
.offer__badge--accent {
  background: var(--color-primary);
  color: var(--color-ink);
}

.offer__title {
  font-family: var(--font-display);
  font-size: clamp(22px, 2.4vw, 28px);
  color: #fff;
  margin-bottom: 8px;
}
.offer__lead {
  color: var(--color-on-dark-mute);
  margin-bottom: 24px;
  font-size: 15.5px;
}

.offer__list {
  display: flex;
  flex-direction: column;
  gap: 12px;
}
.offer__list li {
  position: relative;
  padding-left: 28px;
  color: var(--color-on-dark);
  font-size: 15px;
  line-height: 1.6;
}
.offer__list li::before {
  content: "";
  position: absolute;
  left: 0; top: 6px;
  width: 17px; height: 18px;
  -webkit-mask: var(--mark-band) center/contain no-repeat;
  mask: var(--mark-band) center/contain no-repeat;
  background: var(--color-primary);
}
.offer__list li::after {
  content: "";
  position: absolute;
  left: 4.5px; top: 11px;
  width: 8px; height: 4px;
  border-left: 2px solid var(--color-ink);
  border-bottom: 2px solid var(--color-ink);
  transform: rotate(-45deg);
}
.offer__list strong { color: #fff; font-weight: 600; }

.offer__note {
  margin-top: 32px;
  padding-top: 24px;
  border-top: 1px dashed rgba(255,255,255,0.12);
  font-size: 13.5px;
  color: var(--color-on-dark-mute);
  text-align: center;
}

@media (max-width: 760px) {
  .offer__grid { grid-template-columns: 1fr; }
  .offer__card { padding: 28px; }
}

/* ===== Exemplos de financiamento (cards) ===== */
.financing__grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 22px;
  margin-top: 8px;
  position: relative;
}
.financing__card {
  display: flex;
  flex-direction: column;
  background: rgba(255,255,255,0.04);
  border: 1px solid rgba(255,255,255,0.10);
  overflow: hidden;
  transition: transform var(--t), border-color var(--t), background var(--t);
}
.financing__card:hover {
  transform: translateY(-5px);
  border-color: rgba(207,162,91,0.45);
  background: rgba(207,162,91,0.06);
}
.financing__card--featured { border-color: rgba(207,162,91,0.4); background: linear-gradient(180deg, rgba(207,162,91,0.10), rgba(255,255,255,0.02)); }
.financing__img { aspect-ratio: 4 / 3; overflow: hidden; background: var(--color-ink-2); }
.financing__img img { width: 100%; height: 100%; object-fit: cover; transition: transform 0.7s var(--ease); }
.financing__card:hover .financing__img img { transform: scale(1.05); }
.financing__body { padding: 24px 24px 26px; display: flex; flex-direction: column; flex: 1; }
.financing__tier {
  display: inline-block; align-self: flex-start;
  font-family: var(--font-display); font-size: 12px; font-weight: 600;
  letter-spacing: 0.04em; padding: 7px 12px; margin-bottom: 16px;
  background: rgba(255,255,255,0.08); color: var(--color-on-dark);
  clip-path: none;   /* HC: marca de angulo reto, sem chanfro */
}
.financing__tier--accent { background: var(--color-primary); color: var(--color-ink); }
.financing__type { font-family: var(--font-display); font-size: 22px; font-weight: 600; color: #fff; margin-bottom: 14px; }
.financing__type span { color: var(--color-primary); }
.financing__specs { display: flex; flex-direction: column; gap: 7px; margin-bottom: 20px; padding-bottom: 20px; border-bottom: 1px solid rgba(255,255,255,0.10); }
.financing__specs li { color: var(--color-on-dark-mute); font-size: 14px; padding-left: 18px; position: relative; line-height: 1.5; }
.financing__specs li::before { content: ""; position: absolute; left: 0; top: 6px; width: 9px; height: 10px; background: var(--color-primary); -webkit-mask: var(--mark-band) center/contain no-repeat;
  mask: var(--mark-band) center/contain no-repeat; }
.financing__price { display: flex; flex-direction: column; gap: 2px; margin-bottom: 16px; }
.financing__label { font-size: 11px; font-weight: 600; text-transform: uppercase; letter-spacing: 0.14em; color: var(--color-on-dark-mute); }
.financing__value { font-family: var(--font-display); font-size: 18px; font-weight: 600; color: rgba(255,255,255,0.92); }
.financing__installment { margin-top: auto; padding-top: 16px; border-top: 1px dashed rgba(255,255,255,0.14); display: flex; flex-direction: column; gap: 2px; }
.financing__inst-label { font-size: 11px; font-weight: 600; text-transform: uppercase; letter-spacing: 0.14em; color: var(--color-primary); }
.financing__inst-value { font-family: var(--font-display); font-size: clamp(26px, 2.4vw, 32px); font-weight: 700; color: #fff; letter-spacing: -0.02em; line-height: 1.1; }
.financing__inst-value small { font-size: 0.5em; font-weight: 500; color: var(--color-on-dark-mute); margin-left: 2px; }
.financing__cta { text-align: center; margin-top: 40px; position: relative; }

@media (max-width: 860px) { .financing__grid { grid-template-columns: 1fr; max-width: 440px; margin-left: auto; margin-right: auto; } }

/* ==========================================================================
   EXPERTS / RESPONSÁVEL
   ========================================================================== */

.experts {
  padding: clamp(70px, 9vw, 120px) 0;
  background: var(--color-bg-soft);
  position: relative;
}
.experts__inner {
  display: grid;
  grid-template-columns: minmax(300px, 460px) 1fr;
  gap: clamp(40px, 6vw, 80px);
  align-items: center;
}

.experts__photo {
  /* Hexágono: chanfro no canto superior-esquerdo e inferior-direito
     (retângulo com 2 cantos opostos cortados = 6 lados). A borda
     turquesa aparece pelo padding + fundo em degradê. */
  --moldura: 3px;   /* HC: moldura reta, sem chanfro */
  position: relative;
  border-radius: 0;
  padding: 3px;
  background: linear-gradient(135deg, var(--color-primary), var(--color-primary-strong));
  clip-path: none;   /* HC: marca de angulo reto, sem chanfro */
  filter: drop-shadow(0 24px 46px rgba(10,8,6, 0.24));
}
.experts__photo img {
  width: 100%; height: auto;
  display: block;
  position: relative;
  z-index: 1;
  aspect-ratio: 3/4;
  object-fit: cover;
  object-position: center top;
  clip-path: none;   /* HC: marca de angulo reto, sem chanfro */
}
.experts__caption {
  position: absolute;
  left: 18px; right: 18px; bottom: 20px;
  z-index: 2;
  background: rgba(10,8,6, 0.88);
  backdrop-filter: blur(8px);
  color: #fff;
  padding: 15px 30px;
  border-radius: 0;
  /* Pontas hexagonais nas laterais (igual aos botões da marca) */
  clip-path: none;   /* HC: marca de angulo reto, sem chanfro */
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  font-size: 14px;
}
.experts__caption strong {
  font-family: var(--font-display);
  font-weight: 600;
  font-size: 16px;
}
.experts__caption span {
  color: var(--color-on-dark-mute);
  font-size: 13px;
  margin-top: 4px;
}

.experts__copy { max-width: 600px; }
/* título da dobra ocupa a coluna toda (evita quebra em 3 linhas com "com quem" solto) */
.experts__copy .section-title { max-width: none; margin-bottom: 22px; }
.experts__copy .section-title .accent { white-space: normal; }
.experts__lead {
  font-size: 16.5px;
  color: var(--color-text-mute);
  margin-bottom: 18px;
}
.experts__cta {
  margin-top: 30px;
  padding-top: 26px;
  border-top: 1px solid var(--color-line);
}

.experts__points {
  display: flex;
  flex-direction: column;
  gap: 14px;
  margin: 28px 0 32px;
  padding-top: 24px;
  border-top: 1px solid var(--color-line);
}
.experts__points li {
  display: flex;
  align-items: center;
  gap: 18px;
}
.experts__points-num {
  font-family: var(--font-display);
  font-size: 28px;
  font-weight: 700;
  color: var(--color-primary-strong);
  min-width: 60px;
  line-height: 1;
}
.experts__points-text {
  color: var(--color-ink);
  font-weight: 500;
  font-size: 15.5px;
}

@media (max-width: 860px) {
  .experts__inner { grid-template-columns: 1fr; }
  .experts__photo { max-width: 420px; margin: 0 auto; }
}

/* ==========================================================================
   GALLERY (carrossel infinito automático — “marquee”)
   ========================================================================== */

.gallery {
  padding: clamp(70px, 9vw, 120px) 0;
  background: var(--color-bg);
  overflow: hidden;
  position: relative;
}
.gallery__head { margin-bottom: 48px; }
.gallery__cta {
  text-align: center;
  margin-top: 56px;
}

.marquee-wrap { position: relative; }
/* Setas hexagonais para controlar a galeria */
.marquee__nav {
  position: absolute; top: 50%; transform: translateY(-50%);
  z-index: 5; width: 50px; height: 56px;
  display: grid; place-items: center;
  background: var(--color-primary); color: var(--color-ink);
  clip-path: none;   /* HC: marca de angulo reto, sem chanfro */
  cursor: pointer;
  filter: drop-shadow(0 8px 18px rgba(207,162,91,0.4));
  transition: transform var(--t), background var(--t);
}
.marquee__nav:hover { background: var(--color-primary-strong); transform: translateY(-50%) scale(1.08); }
.marquee__nav:active { transform: translateY(-50%) scale(0.96); }
.marquee__nav svg { width: 22px; height: 22px; }
.marquee__nav--prev { left: clamp(8px, 3vw, 32px); }
.marquee__nav--next { right: clamp(8px, 3vw, 32px); }
@media (max-width: 600px) {
  .marquee__nav { width: 42px; height: 48px; }
  .marquee__nav svg { width: 18px; height: 18px; }
}

.marquee {
  position: relative;
  width: 100%;
  overflow: hidden;
  /* Máscara nas bordas para fade-in/out elegante */
  -webkit-mask-image: linear-gradient(90deg, transparent 0, #000 8%, #000 92%, transparent 100%);
          mask-image: linear-gradient(90deg, transparent 0, #000 8%, #000 92%, transparent 100%);
  padding: 8px 0;
  cursor: grab;
  /* Permite scroll vertical da página, captura swipe horizontal */
  touch-action: pan-y;
  user-select: none;
  -webkit-user-select: none;
}
.marquee.is-dragging { cursor: grabbing; }

.marquee__track {
  display: flex;
  gap: 22px;
  width: max-content;
  will-change: transform;
}
.marquee__item img {
  -webkit-user-drag: none;
  user-drag: none;
  pointer-events: none; /* impede que o browser inicie o drag-to-save da imagem */
}

.marquee__item {
  position: relative;
  flex: 0 0 auto;
  width: clamp(260px, 32vw, 400px);
  height: clamp(320px, 42vw, 520px);
  border-radius: var(--radius);
  overflow: hidden;
  background: var(--color-bg-soft);
  box-shadow: 0 10px 30px rgba(10,8,6, 0.10);
  isolation: isolate;
}
.marquee__item img {
  position: absolute;
  inset: 0;
  width: 100%; height: 100%;
  object-fit: cover;
  transition: transform 1.2s var(--ease);
}
.marquee__item::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, transparent 45%, rgba(10,8,6, 0.85) 100%);
  z-index: 1;
  pointer-events: none;
}
.marquee__item figcaption {
  position: absolute;
  left: 18px; right: 18px; bottom: 18px;
  z-index: 2;
  font-family: var(--font-display);
  color: #fff;
  font-size: 14px;
  font-weight: 500;
  letter-spacing: 0.02em;
  display: flex;
  align-items: center;
  gap: 10px;
}
.marquee__item figcaption::before {
  content: "";
  width: 11px; height: 12px;
  -webkit-mask: var(--mark-band) center/contain no-repeat;
  mask: var(--mark-band) center/contain no-repeat;
  background: var(--color-primary);
  flex: 0 0 auto;
}
.marquee__item:hover img {
  transform: scale(1.06);
}

@media (max-width: 600px) {
  .marquee__track { gap: 14px; }
  .marquee {
    -webkit-mask-image: linear-gradient(90deg, transparent 0, #000 4%, #000 96%, transparent 100%);
            mask-image: linear-gradient(90deg, transparent 0, #000 4%, #000 96%, transparent 100%);
  }
}

/* ==========================================================================
   PROCESS / COMO FUNCIONA
   ========================================================================== */

.process {
  padding: clamp(70px, 9vw, 120px) 0;
  background: var(--color-bg-soft);
  position: relative;
  overflow: hidden;
}
.process::before {
  content: "";
  position: absolute; inset: 0;
  background: radial-gradient(ellipse at 50% -10%, rgba(207,162,91,0.08), transparent 55%);
  pointer-events: none;
}
.process .container { position: relative; z-index: 1; }

/* ===== PASSOS em grade 2×2 (visual + reveal dinâmico) ===== */
.steps {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 22px;
  max-width: 920px;
  margin: 48px auto 0;
}
.step {
  position: relative;
  overflow: hidden;
  background: #fff;
  border: 1px solid var(--color-line);
  padding: 30px 30px 28px;
  opacity: 0;
  transform: translateY(28px);
  transition: opacity .6s var(--ease), transform .6s var(--ease),
              box-shadow .35s var(--ease), border-color .35s var(--ease);
}
.step.on { opacity: 1; transform: translateY(0); }
.step:hover {
  transform: translateY(-5px);
  box-shadow: 0 20px 44px rgba(48,31,7,0.11);
  border-color: rgba(207,162,91,0.45);
}
/* barra de acento no topo que "desenha" ao revelar */
.step::before {
  content: "";
  position: absolute; top: 0; left: 0; height: 4px; width: 100%;
  background: linear-gradient(90deg, var(--color-primary), var(--color-primary-strong));
  transform: scaleX(0); transform-origin: left;
  transition: transform .6s var(--ease) .18s;
}
.step.on::before { transform: scaleX(1); }
/* número-fantasma gigante ao fundo */
.step__ghost {
  position: absolute; top: -26px; right: 4px;
  font-family: var(--font-display); font-weight: 700;
  font-size: 172px; line-height: 1;
  color: var(--color-primary);
  opacity: 0.22; pointer-events: none; user-select: none;
  transition: opacity .35s var(--ease), transform .5s var(--ease);
}
.step:hover .step__ghost { opacity: 0.32; transform: translateY(4px); }
/* ícone hexagonal em degradê — "pop" ao entrar */
.step__icon {
  position: relative; z-index: 1;
  display: inline-grid; place-items: center;
  width: 60px; height: 66px; margin-bottom: 14px;
  background: linear-gradient(150deg, var(--color-primary), var(--color-primary-strong));
  color: #fff;
  clip-path: none;   /* HC: marca de angulo reto, sem chanfro */
  box-shadow: 0 10px 24px rgba(207,162,91,0.38);
  transform: scale(0.4) rotate(-18deg); opacity: 0;
  transition: transform .55s cubic-bezier(.2,1.35,.4,1) .16s, opacity .4s .16s,
              box-shadow .35s var(--ease);
}
.step__icon svg { width: 27px; height: 27px; }
.step.on .step__icon { transform: scale(1) rotate(0); opacity: 1; }
.step:hover .step__icon {
  box-shadow: 0 14px 32px rgba(207,162,91,0.58);
  transform: translateY(-3px);
}
.step__kicker {
  position: relative; z-index: 1; display: block;
  font-family: var(--font-display); font-size: 12px; font-weight: 700;
  letter-spacing: 0.16em; text-transform: uppercase; color: var(--color-primary);
  margin-bottom: 6px;
}
.step__title {
  position: relative; z-index: 1;
  font-family: var(--font-display); font-weight: 700;
  font-size: clamp(18px, 2vw, 21px); color: var(--color-ink);
  line-height: 1.2; letter-spacing: -0.01em; margin-bottom: 10px;
}
.step__text { position: relative; z-index: 1; font-size: 15px; color: var(--color-text-mute); line-height: 1.6; }
@media (max-width: 620px) { .steps { grid-template-columns: 1fr; } }

/* ===== TIMELINE (vitrine do processo — trilho que preenche + nós que acendem) ===== */
.timeline {
  position: relative;
  max-width: 760px;
  margin: 46px auto 0;
}
.timeline__track, .timeline__fill {
  position: absolute;
  left: 30px; width: 3px;
  z-index: 0;
}
.timeline__track { top: 34px; bottom: 34px; background: var(--color-line); }
.timeline__fill {
  top: 34px; height: 0;
  background: linear-gradient(180deg, var(--color-primary), var(--color-primary-strong));
  box-shadow: 0 0 14px rgba(207,162,91,0.5);
  transition: height .7s var(--ease);
  z-index: 1;
}

.timeline__step {
  position: relative;
  display: grid;
  grid-template-columns: 62px 1fr;
  gap: 22px;
  align-items: start;
  padding-bottom: 24px;
}
.timeline__step:last-child { padding-bottom: 0; }

.timeline__marker {
  position: relative; z-index: 2;
  width: 60px; height: 66px;
  display: grid; place-items: center;
  clip-path: none;   /* HC: marca de angulo reto, sem chanfro */
  background: var(--color-ink);
  color: #fff;
  font-family: var(--font-display); font-weight: 700; font-size: 22px;
  box-shadow: inset 0 0 0 2px rgba(207,162,91,0.28);
  transition: background .4s var(--ease), box-shadow .4s var(--ease), transform .4s var(--ease);
}
.timeline__step.on .timeline__marker {
  background: var(--color-primary-strong);
  color: #fff;
  box-shadow: inset 0 0 0 2px var(--color-primary), 0 10px 24px rgba(207,162,91,0.5);
  transform: scale(1.06);
}

.timeline__card {
  position: relative;
  background: #fff;
  border: 1px solid var(--color-line);
  padding: 20px 24px;
  box-shadow: 0 6px 20px rgba(48,31,7,0.05);
  transition: border-color .4s var(--ease), box-shadow .4s var(--ease), transform .4s var(--ease);
}
/* passo aceso ganha destaque (o texto NUNCA some, mesmo sem JS) */
.timeline__step.on .timeline__card {
  border-color: rgba(207,162,91,0.4);
  box-shadow: 0 14px 32px rgba(48,31,7,0.10);
  transform: translateX(3px);
}
/* seta (losango angular) apontando do card para o nó */
.timeline__card::before {
  content: "";
  position: absolute; left: -8px; top: 24px;
  width: 14px; height: 14px;
  background: #fff;
  border-left: 1px solid var(--color-line);
  border-bottom: 1px solid var(--color-line);
  transform: rotate(45deg);
  transition: border-color .4s var(--ease);
}
.timeline__step.on .timeline__card::before { border-color: rgba(207,162,91,0.35); }
.timeline__card h3 {
  font-family: var(--font-display);
  font-size: clamp(19px, 2vw, 22px);
  color: var(--color-ink); font-weight: 700;
  letter-spacing: -0.01em; line-height: 1.2;
  margin-bottom: 8px;
}
.timeline__card p { font-size: 15px; color: var(--color-text-mute); line-height: 1.6; }

@media (max-width: 560px) {
  .timeline__step { grid-template-columns: 50px 1fr; gap: 16px; }
  .timeline__track, .timeline__fill { left: 24px; }
  .timeline__marker { width: 48px; height: 54px; font-size: 18px; }
  .timeline__card { padding: 16px 18px; }
}

/* ===== Comparativo: pedreiro solto × Romualdo ===== */
.compare { max-width: 920px; margin: 46px auto 0; }
.compare__lead {
  text-align: center;
  font-family: var(--font-display);
  font-size: clamp(17px, 1.9vw, 21px);
  font-weight: 600; color: var(--color-ink);
  max-width: 60ch; margin: 0 auto 28px; line-height: 1.4;
}
.compare__lead strong { color: #d23b3b; font-weight: 700; }

.compare__grid { display: grid; grid-template-columns: 1fr 1fr; gap: 20px; align-items: stretch; }

.compare__col {
  position: relative;
  background: #fff;
  border: 1px solid var(--color-line);
  padding: 28px 26px;
}
.compare__col--bad { border-top: 4px solid #d23b3b; }
.compare__col--good {
  border: 1px solid rgba(207,162,91,0.4);
  border-top: 4px solid var(--color-primary);
  overflow: hidden;
  animation: compareGlow 2.8s ease-in-out infinite;
}
@keyframes compareGlow {
  0%, 100% { box-shadow: 0 18px 44px rgba(207,162,91,0.16); }
  50%      { box-shadow: 0 22px 56px rgba(207,162,91,0.34); }
}
/* brilho que atravessa o card vencedor */
.compare__col--good::after {
  content: ""; position: absolute; top: -60%; left: -45%;
  width: 40%; height: 220%;
  background: linear-gradient(100deg, transparent, rgba(207,162,91,0.16), transparent);
  transform: rotate(12deg);
  animation: cardSheen 5.5s ease-in-out infinite;
  pointer-events: none;
}

.compare__seal {
  position: absolute; top: 0; right: 0;
  /* o verde claro com texto branco dava 3,09:1 e reprova AA; o profundo da 5,0:1 */
  background: var(--color-green-deep); color: #fff;
  font-family: var(--font-display); font-size: 10.5px; font-weight: 700;
  letter-spacing: 0.08em; text-transform: uppercase;
  padding: 7px 14px 7px 18px;
  clip-path: none;   /* HC: marca de angulo reto, sem chanfro */
}
.compare__tag {
  display: inline-block;
  font-family: var(--font-display); font-size: 13px; font-weight: 700;
  letter-spacing: 0.04em; text-transform: uppercase; margin-bottom: 4px;
}
.compare__tag--bad { color: #d23b3b; }
.compare__tag--good { color: var(--color-green-deep); }
.compare__title {
  font-family: var(--font-display); font-size: clamp(17px, 1.9vw, 20px);
  color: var(--color-ink); font-weight: 700; margin-bottom: 22px;
  padding-bottom: 16px; border-bottom: 1px solid var(--color-line);
}

.compare__list { display: flex; flex-direction: column; gap: 15px; }
.cmp { display: flex; align-items: flex-start; gap: 12px; }
.cmp__ic {
  flex: 0 0 auto; width: 24px; height: 26px; margin-top: 1px;
  display: grid; place-items: center; color: #fff;
  clip-path: none;   /* HC: marca de angulo reto, sem chanfro */
}
.cmp__ic svg { width: 12px; height: 12px; }
.cmp__ic--x { background: #d23b3b; }
.cmp__ic--check { background: var(--color-green); }
.cmp__txt {
  position: relative; font-size: 14.5px; line-height: 1.45;
  color: var(--color-text); padding-bottom: 4px;
  transition: color .4s var(--ease);
}
.compare__col--good .cmp__txt strong { color: var(--color-ink); font-weight: 600; }
/* o "risco" (linha vermelha) fica SEMPRE ABAIXO da frase, nunca por cima */
.compare__col--bad .cmp[data-strike] .cmp__txt::after {
  content: ""; position: absolute; left: 0; right: 0; bottom: 0;
  height: 2px; background: #d23b3b;
  transform: scaleX(0); transform-origin: left;
  transition: transform .55s var(--ease);
}
.compare__col--bad .cmp.is-struck .cmp__txt::after { transform: scaleX(1); }
.compare__col--bad .cmp.is-struck .cmp__txt { color: var(--color-slate); }

@media (max-width: 720px) {
  .compare__grid { grid-template-columns: 1fr; }
}

/* ===== Dobra "Não arrisque / pedreiro solto" (clara e discreta) ===== */
.risk-band {
  position: relative;
  color: var(--color-text);
  padding: clamp(56px, 7vw, 92px) 0;
  background: var(--color-bg);
  border-top: 1px solid var(--color-line);
}
/* 2 colunas: frase (+CTA) à esquerda, lista de riscos à frente */
.risk-band__inner {
  position: relative; z-index: 1;
  display: grid;
  grid-template-columns: minmax(250px, 360px) 1fr;
  gap: clamp(30px, 5vw, 70px);
  align-items: center;
}
.risk-band__aside .section-title--light {
  color: var(--color-ink); max-width: 13ch; margin-bottom: 26px;
}
.eyebrow--onred { color: #c0392b; }
.eyebrow--onred::before { background: #c0392b; }
.accent-red { color: #c0392b; font-weight: inherit; }

.risk-band__list { margin: 0; display: flex; flex-direction: column; }
.rb {
  display: flex; align-items: center; gap: 15px;
  padding: 15px 4px;
  border-bottom: 1px solid var(--color-line);
}
.rb:last-child { border-bottom: 0; }
.rb__ic {
  flex: 0 0 auto; width: 26px; height: 29px;
  display: grid; place-items: center;
  background: #c0392b; color: #fff;
  clip-path: none;   /* HC: marca de angulo reto, sem chanfro */
}
.rb__ic svg { width: 13px; height: 13px; }
.rb__txt {
  position: relative;
  font-size: clamp(15px, 1.5vw, 16px); line-height: 1.4;
  color: var(--color-text); padding-bottom: 3px;
  transition: color .4s var(--ease);
}
/* linha vermelha do "risco" SEMPRE abaixo da frase */
.rb__txt::after {
  content: ""; position: absolute; left: 0; right: 0; bottom: 0;
  height: 2px; background: #c0392b;
  transform: scaleX(0); transform-origin: left;
  transition: transform .55s var(--ease);
}
.rb.is-struck .rb__txt::after { transform: scaleX(1); }
.rb.is-struck .rb__txt { color: var(--color-text-mute); }

.risk-band__cta { margin-top: 0; }
@media (max-width: 760px) {
  /* Ordem no celular: título, lista de riscos e, por último, o botão.
     display:contents no aside faz o título e o CTA virarem itens do flex. */
  .risk-band__inner { display: flex; flex-direction: column; gap: 26px; }
  .risk-band__aside { display: contents; }
  .risk-band__aside .section-title--light { max-width: none; order: 1; margin: 0; }
  .risk-band__list { order: 2; }
  .risk-band__cta { order: 3; }
}

/* ==========================================================================
   OBJECTIONS / FAQ
   ========================================================================== */

.objections {
  padding: clamp(70px, 9vw, 120px) 0;
  background: var(--color-bg);
}
.objections__grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 14px;
  margin-top: 20px;
}
/* item ímpar sozinho na última linha ocupa a largura toda (evita buraco) */
.objections__grid .objection:last-child:nth-child(odd) { grid-column: 1 / -1; }
.objection {
  background: var(--color-bg-soft);
  border: 1px solid transparent;
  border-radius: var(--radius);
  padding: 20px 24px;
  transition: background var(--t), border-color var(--t), box-shadow var(--t);
}
.objection[open] {
  background: #fff;
  border-color: rgba(207,162,91, 0.4);
  box-shadow: var(--shadow-sm);
}
.objection summary {
  list-style: none;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  font-family: var(--font-display);
  font-weight: 500;
  font-size: 16px;
  color: var(--color-ink);
  line-height: 1.4;
}
.objection summary::-webkit-details-marker { display: none; }
.objection__icon {
  position: relative;
  width: 22px; height: 22px;
  flex: 0 0 22px;
  border-radius: 50%;
  background: var(--color-primary-soft);
  border: 1px solid rgba(207,162,91, 0.4);
  transition: transform var(--t), background var(--t);
}
.objection__icon::before, .objection__icon::after {
  content: "";
  position: absolute;
  top: 50%; left: 50%;
  width: 10px; height: 2px;
  background: var(--color-primary-strong);
  transform: translate(-50%, -50%);
  border-radius: 2px;
  transition: transform var(--t);
}
.objection__icon::after { transform: translate(-50%, -50%) rotate(90deg); }
.objection[open] .objection__icon { background: var(--color-primary); border-color: var(--color-primary); }
.objection[open] .objection__icon::before { background: var(--color-ink); }
.objection[open] .objection__icon::after  { transform: translate(-50%, -50%) rotate(0); background: var(--color-ink); }

.objection p {
  margin-top: 14px;
  color: var(--color-text-mute);
  font-size: 15px;
  line-height: 1.7;
}

@media (max-width: 760px) { .objections__grid { grid-template-columns: 1fr; } }

/* ==========================================================================
   VIABILITY / FORM
   ========================================================================== */

.viability {
  padding: clamp(70px, 9vw, 120px) 0;
  background: linear-gradient(160deg, var(--color-ink) 0%, var(--color-ink-2) 100%);
  position: relative;
  overflow: hidden;
  color: #fff;
}
.viability::before {
  content: "";
  position: absolute;
  top: -200px; right: -200px;
  width: 480px; height: 480px;
  border-radius: 50%;
  background: radial-gradient(circle, rgba(207,162,91, 0.18) 0%, transparent 70%);
  pointer-events: none;
}

.viability__inner {
  display: grid;
  grid-template-columns: 1fr 480px;
  gap: clamp(40px, 6vw, 80px);
  align-items: start;
  position: relative;
}

.viability__copy { padding-top: 12px; }

.viability__note {
  margin-top: 28px;
  font-size: 13.5px;
  color: var(--color-on-dark-mute);
  border-left: 3px solid var(--color-primary);
  padding-left: 14px;
  line-height: 1.6;
}
.viability__note strong { color: #fff; }

/* FORM */
.form {
  background: #fff;
  color: var(--color-text);
  border-radius: var(--radius-lg);
  padding: 36px;
  box-shadow: var(--shadow-lg);
  position: relative;
}
.form::before {
  content: "";
  position: absolute;
  top: -2px; left: -2px; right: -2px; height: 6px;
  background: linear-gradient(90deg, var(--color-primary) 0%, transparent 100%);
  border-top-left-radius: var(--radius-lg);
  border-top-right-radius: var(--radius-lg);
}

.form__title {
  font-family: var(--font-display);
  font-size: 22px;
  color: var(--color-ink);
  margin-bottom: 6px;
}
.form__subtitle {
  font-size: 14px;
  color: var(--color-text-mute);
  margin-bottom: 22px;
}

.form__field {
  margin-bottom: 14px;
  display: flex;
  flex-direction: column;
}
.form__field label {
  font-size: 13px;
  font-weight: 500;
  color: var(--color-ink);
  margin-bottom: 6px;
}
.form__field input,
.form__field select {
  padding: 13px 14px;
  border: 1.5px solid var(--color-line);
  border-radius: 10px;
  font: inherit;
  font-size: 15px;
  color: var(--color-ink);
  background: #fff;
  transition: border-color var(--t-fast), box-shadow var(--t-fast);
  width: 100%;
}
.form__field input::placeholder { color: var(--color-aco); }
.form__field input:focus,
.form__field select:focus {
  outline: none;
  border-color: var(--color-primary);
  box-shadow: 0 0 0 4px rgba(207,162,91, 0.18);
}

.form__row {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 14px;
}

.form__consent {
  margin-top: 14px;
  font-size: 12.5px;
  color: var(--color-text-mute);
  line-height: 1.55;
  text-align: center;
}

.form__feedback {
  margin-top: 14px;
  padding: 12px 14px;
  border-radius: 10px;
  font-size: 14px;
  text-align: center;
}
.form__feedback.is-success {
  background: rgba(207,162,91, 0.12);
  color: var(--color-ink);
  border: 1px solid rgba(207,162,91, 0.4);
}
.form__feedback.is-error {
  background: #FEEBEC;
  color: #A0231A;
  border: 1px solid #F4C7C9;
}

button[type="submit"].btn {
  margin-top: 6px;
}

@media (max-width: 960px) {
  .viability__inner { grid-template-columns: 1fr; }
  .form { padding: 28px; }
}
@media (max-width: 480px) {
  .form__row { grid-template-columns: 1fr; }
}

/* ==========================================================================
   FORMULÁRIO 2 ETAPAS (padrão construção financiada — 13.7)
   ========================================================================== */
.form-head { max-width: 640px; margin: 0 auto 26px; text-align: center; }
.form-head .eyebrow { justify-content: center; }
.form-head .section-title { max-width: none; margin-left: auto; margin-right: auto; }
.form-head .section-lead { margin-left: auto; margin-right: auto; margin-bottom: 0; }

.steps-indicator {
  display: flex; align-items: center; justify-content: center; gap: 0;
  max-width: 460px; margin: 0 auto 24px; position: relative; z-index: 1;
}
.step-item { display: flex; align-items: center; gap: 10px; }
.step-circle {
  width: 34px; height: 34px; flex: 0 0 34px;
  clip-path: none;   /* HC: marca de angulo reto, sem chanfro */
  display: grid; place-items: center;
  background: rgba(255,255,255,0.14); color: #fff;
  font-family: var(--font-display); font-weight: 700; font-size: 14px;
  transition: background var(--t), color var(--t);
}
.step-circle.active { background: var(--color-primary); color: var(--color-ink); }
.step-circle.complete { background: var(--color-green); color: #fff; }
.step-label { font-size: 13.5px; color: var(--color-on-dark-mute); font-weight: 500; }
.step-item.active .step-label { color: #fff; }
.step-connector { flex: 1 1 auto; height: 2px; background: rgba(255,255,255,0.16); margin: 0 14px; position: relative; overflow: hidden; }
.step-connector-fill { position: absolute; inset: 0 auto 0 0; width: 0; background: var(--color-primary); transition: width .4s var(--ease); }

.form-card {
  background: #fff; color: var(--color-text);
  max-width: 560px; margin: 0 auto;
  padding: 34px; box-shadow: var(--shadow-lg);
  position: relative;
}
.form-card::before {
  content: ""; position: absolute; top: 0; left: 0; right: 0; height: 5px;
  background: var(--color-primary);
  clip-path: none;   /* HC: marca de angulo reto, sem chanfro */
}
.form-step { display: none; }
.form-step.active { display: block; animation: formFade 0.35s var(--ease); }
@keyframes formFade { from { opacity: 0; transform: translateY(8px); } to { opacity: 1; transform: translateY(0); } }
.form-step-title { font-family: var(--font-display); font-size: 19px; color: var(--color-ink); margin-bottom: 18px; }

.form-group { display: flex; flex-direction: column; gap: 6px; margin-bottom: 16px; }
.form-group label { font-size: 13px; font-weight: 500; color: var(--color-ink); }
.form-group input, .form-group select {
  padding: 13px 14px; border: 1.5px solid var(--color-line);
  font: inherit; font-size: 15px; color: var(--color-ink); background: #fff; width: 100%;
  transition: border-color var(--t-fast), box-shadow var(--t-fast);
}
.form-group input::placeholder { color: var(--color-aco); }
.form-group input:focus, .form-group select:focus {
  outline: 0; border-color: var(--color-primary); box-shadow: 0 0 0 4px rgba(207,162,91,0.18);
}
.form-group input.error, .form-group select.error { border-color: #c83232; background: #fff6f6; }
.form-row { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }
.form-actions { display: flex; gap: 12px; margin-top: 6px; align-items: stretch; }
.form-actions .btn--back { flex: 0 0 auto; }
.btn--back { background: var(--color-bg-mute); color: var(--color-ink); }
.btn--back:hover { background: var(--color-line); color: var(--color-ink); }

.form-success { display: none; text-align: center; padding: 22px 10px; }
.form-success.show { display: block; animation: formFade 0.4s var(--ease); }
.form-success h3 { font-family: var(--font-display); font-size: 21px; color: var(--color-ink); margin-bottom: 8px; }
.form-success p { color: var(--color-text-mute); font-size: 15px; line-height: 1.6; max-width: 44ch; margin: 0 auto; }

.form-prereq { text-align: center; font-size: 13px; color: var(--color-on-dark-mute); margin: 20px auto 0; max-width: 560px; }

.trust-badges { display: flex; flex-wrap: wrap; justify-content: center; gap: 12px 26px; max-width: 640px; margin: 20px auto 0; position: relative; z-index: 1; }
.trust-item { display: inline-flex; align-items: center; gap: 8px; font-size: 13px; color: var(--color-on-dark-mute); }
.trust-item svg { width: 17px; height: 17px; color: var(--color-primary); }

@media (max-width: 480px) {
  .form-card { padding: 26px 20px; }
  .form-row { grid-template-columns: 1fr; }
  .step-label { display: none; }
}

/* ==========================================================================
   FOOTER
   ========================================================================== */

/* =================================================================
   DIVISÓRIA HEXAGONAL — o símbolo da marca separando as dobras       */
.brand-divider {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 16px;
  padding: 8px 0;
  background: var(--color-bg);
}
.brand-divider--dark { background: var(--color-ink); }
.brand-divider::before,
.brand-divider::after {
  content: "";
  height: 1px;
  width: clamp(40px, 12vw, 120px);
  background: linear-gradient(90deg, transparent, rgba(207,162,91,0.5));
}
.brand-divider::after { transform: scaleX(-1); }
.brand-divider__mark {
  position: absolute; left: 50%; top: 50%; transform: translate(-50%,-50%); z-index: 1;
  width: 18px; height: 18px; background: var(--brand);
  -webkit-mask: var(--mark-dot) center/contain no-repeat;
  mask: var(--mark-dot) center/contain no-repeat;
}
.brand-divider__mark--sm { width: 11px; height: 12px; opacity: 0.5; }

/* Textura de favo (hexágonos) em baixíssima opacidade nas dobras escuras */
.brand-texture { position: relative; }
.brand-texture > .container,
.brand-texture > * { position: relative; z-index: 1; }
.brand-texture::after {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 0;
  pointer-events: none;
  opacity: 0.5;
  background: var(--brand);
  -webkit-mask: var(--stamp-grade) left top/160px repeat;
  mask: var(--stamp-grade) left top/160px repeat;
}

/* Rodapé enxuto: sem navegação e sem contato direto (o caminho é o funil) */
.site-footer {
  background: var(--color-ink);
  color: var(--color-on-dark);
  padding: 64px 0 40px;
  text-align: center;
}
.site-footer .container {
  display: flex;
  flex-direction: column;
  align-items: center;
}
.site-footer__logo {
  display: inline-block;
  line-height: 0;
  margin-bottom: 24px;
}
.site-footer__logo img {
  width: clamp(150px, 16vw, 190px);
  height: auto;
  filter: drop-shadow(0 4px 12px rgba(0, 0, 0, 0.4));
}
.site-footer__divider {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 14px;
  margin-bottom: 24px;
}
.site-footer__divider::before,
.site-footer__divider::after {
  content: "";
  height: 1px;
  width: 56px;
  background: linear-gradient(90deg, transparent, rgba(207,162,91,0.5));
}
.site-footer__divider::after { transform: scaleX(-1); }
.site-footer__tagline {
  color: var(--color-on-dark-mute);
  font-size: 14.5px;
  line-height: 1.65;
  max-width: 60ch;
  margin-bottom: 30px;
}
.site-footer__info {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 14px 30px;
  margin-bottom: 34px;
}
.site-footer__info-item {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  font-size: 13.5px;
  color: var(--color-on-dark-mute);
}
.site-footer__info-item svg {
  width: 18px; height: 18px;
  color: var(--color-primary);
  flex: 0 0 18px;
}
.site-footer__copy {
  font-size: 12.5px;
  color: var(--color-on-dark-mute);
  border-top: 1px solid rgba(255,255,255,0.08);
  padding-top: 24px;
  width: 100%;
  max-width: 720px;
}
.site-footer__dev {
  font-size: 12.5px;
  color: var(--color-on-dark-mute);
  margin-top: 8px;
}
.site-footer__dev { display: inline-flex; align-items: center; justify-content: center; gap: 8px; flex-wrap: wrap; }
/* Selo M² BLACK = botão de contorno hexagonal (vazado) */
.dev-badge {
  position: relative;
  display: inline-flex; align-items: center;
  padding: 8px 18px;
  background: var(--color-primary);
  clip-path: none;   /* HC: marca de angulo reto, sem chanfro */
  font-family: var(--font-display); font-weight: 700; font-size: 12px; letter-spacing: 0.10em;
  transition: transform var(--t-fast);
}
.dev-badge::before {
  content: ""; position: absolute; inset: 1.6px;
  background: var(--color-ink);
  clip-path: none;   /* HC: marca de angulo reto, sem chanfro */
  z-index: 0;
  transition: background var(--t);
}
.dev-badge span { position: relative; z-index: 1; color: var(--color-primary); transition: color var(--t); }
.dev-badge:hover { transform: translateY(-2px); }
.dev-badge:hover::before { background: var(--color-primary); }
.dev-badge:hover span { color: var(--color-ink); }

/* =================================================================
   CTA FIXO (barra full-width, todas as versões)                      */
.mobile-cta {
  position: fixed;
  bottom: 0; left: 0; width: 100%;
  z-index: 850;
  display: flex;
  justify-content: center;
  padding: 12px 16px calc(12px + env(safe-area-inset-bottom));
  background: rgba(10,8,6, 0.92);
  -webkit-backdrop-filter: blur(12px);
  backdrop-filter: blur(12px);
  border-top: 1px solid rgba(255,255,255,0.1);
  transform: translateY(120%);
  transition: transform 0.35s var(--ease);
}
.mobile-cta.is-visible { transform: translateY(0); }
.mobile-cta .btn { width: 100%; max-width: 560px; }
.mobile-cta .btn--green::after { animation: none; opacity: 0; } /* barra fixa não pulsa */

/* =================================================================
   FAB WhatsApp — sempre redondo                                      */
.wa-fab {
  position: fixed; right: 18px; bottom: 18px; z-index: 95;
  width: 58px; height: 58px;
  border: 0; cursor: pointer;
  border-radius: 50% !important; /* exceção proposital à identidade angular */
  display: grid; place-items: center;
  background: #25d366; color: #fff;
  box-shadow: 0 14px 30px -8px rgba(37,211,102,0.6);
  transition: transform 0.3s var(--ease), box-shadow 0.3s var(--ease), bottom 0.3s var(--ease);
  animation: waPulse 2.6s var(--ease) infinite;
}
.wa-fab svg { width: 32px; height: 32px; }
.wa-fab:hover { transform: scale(1.06); box-shadow: 0 18px 36px -8px rgba(37,211,102,0.75); }
@keyframes waPulse {
  0%, 100% { box-shadow: 0 14px 30px -8px rgba(37,211,102,0.6), 0 0 0 0 rgba(37,211,102,0.5); }
  50%      { box-shadow: 0 14px 30px -8px rgba(37,211,102,0.6), 0 0 0 12px rgba(37,211,102,0); }
}
.wa-fab.lifted { bottom: calc(94px + env(safe-area-inset-bottom)); }
@media (max-width: 767px) {
  .wa-fab { width: 52px; height: 52px; }
  .wa-fab.lifted { bottom: calc(90px + env(safe-area-inset-bottom)); }
  .wa-fab svg { width: 28px; height: 28px; }
}

/* =================================================================
   LEAD POPUP (40s)                                                   */
.lead-popup { position: fixed; inset: 0; z-index: 1100; display: grid; place-items: center; padding: 20px; }
.lead-popup[hidden] { display: none; }
.lead-popup__backdrop { position: absolute; inset: 0; background: rgba(10,8,6,0.72); -webkit-backdrop-filter: blur(4px); backdrop-filter: blur(4px); animation: popupFade 0.3s var(--ease); }
/* O popup carrega o formulario completo em 2 passos e nao cabe em tela baixa.
   O overlay centraliza por grid (place-items:center): card maior que a tela
   transborda pros DOIS lados e o topo fica inalcancavel, sem scroll pra
   recuperar. 40px = os 20px de padding do overlay, dos dois lados. */
.lead-popup__card { position: relative; width: 100%; max-width: 440px; background: #fff; border-radius: var(--radius-lg); padding: 40px 32px 34px; box-shadow: var(--shadow-lg); animation: popupRise 0.4s var(--ease); max-height: calc(100vh - 40px); max-height: calc(100dvh - 40px); overflow-y: auto; overscroll-behavior: contain; }
@keyframes popupFade { from { opacity: 0; } to { opacity: 1; } }
@keyframes popupRise { from { opacity: 0; transform: translateY(20px); } to { opacity: 1; transform: translateY(0); } }
.lead-popup__close { position: absolute; top: 14px; right: 16px; width: 36px; height: 36px; border: 0; background: transparent; font-size: 1.7rem; line-height: 1; color: var(--color-aco); cursor: pointer; transition: color 0.2s var(--ease); }
.lead-popup__close:hover { color: var(--color-ink); }
.lead-popup__title { font-family: var(--font-display); font-size: 24px; color: var(--color-ink); margin-bottom: 8px; line-height: 1.2; }
.lead-popup__sub { font-size: 14.5px; color: var(--color-text-mute); margin-bottom: 22px; line-height: 1.6; }
.lead-popup__form .btn { margin-top: 4px; }
.lead-popup__success { display: none; text-align: center; padding: 10px 0; }
.lead-popup__success.show { display: block; animation: popupFade 0.4s var(--ease); }
.lead-popup__success h3 { font-family: var(--font-display); font-size: 20px; color: var(--color-ink); margin-bottom: 6px; }
.lead-popup__success p { color: var(--color-text-mute); font-size: 14.5px; line-height: 1.6; }
.success-icon {
  width: 58px; height: 62px;
  clip-path: none;   /* HC: marca de angulo reto, sem chanfro */
  display: grid; place-items: center; margin: 0 auto 14px;
  background: rgba(31,168,88,0.16); color: var(--color-green);
}
.success-icon svg { width: 28px; height: 28px; }

.error-msg { display: none; font-size: 12.5px; color: #c83232; font-weight: 500; margin-top: 4px; }
.error-msg.show { display: block; }
.form__field input.error { border-color: #c83232; background: #fff6f6; }

/* ==========================================================================
   REVEAL ON SCROLL
   ========================================================================== */

[data-reveal] {
  opacity: 0;
  transform: translateY(28px);
  transition: opacity .7s var(--ease), transform .7s var(--ease);
  will-change: opacity, transform;
}
[data-reveal].is-revealed {
  opacity: 1;
  transform: translateY(0);
}

/* Stagger sutil para grids */
[data-reveal]:nth-child(2) { transition-delay: .06s; }
[data-reveal]:nth-child(3) { transition-delay: .12s; }
[data-reveal]:nth-child(4) { transition-delay: .18s; }
[data-reveal]:nth-child(5) { transition-delay: .24s; }
[data-reveal]:nth-child(6) { transition-delay: .30s; }

/* Reveal genérico (aplicado via JS a títulos, cards, provas, form etc.) */
.reveal { opacity: 0; transform: translateY(26px); transition: opacity .7s var(--ease), transform .7s var(--ease); will-change: opacity, transform; }
.reveal.is-visible { opacity: 1; transform: none; }
/* Cascata nos grids (itens entram em sequência) */
.offer__grid .offer__card:nth-child(2) { transition-delay: .12s; }
.proof__grid .proof__item:nth-child(2) { transition-delay: .09s; }
.proof__grid .proof__item:nth-child(3) { transition-delay: .18s; }
.objections__grid .objection:nth-child(2) { transition-delay: .06s; }
.objections__grid .objection:nth-child(3) { transition-delay: .12s; }
.objections__grid .objection:nth-child(4) { transition-delay: .18s; }

/* Sheen que atravessa o card em destaque da oferta (vida na dobra) */
.offer__card--featured { overflow: hidden; }
.offer__card--featured::after {
  content: ""; position: absolute; top: -60%; left: -40%;
  width: 40%; height: 220%;
  background: linear-gradient(100deg, transparent, rgba(207,162,91,0.14), transparent);
  transform: rotate(12deg);
  animation: cardSheen 5.5s ease-in-out infinite;
  pointer-events: none;
}
@keyframes cardSheen { 0% { left: -40%; } 60%, 100% { left: 130%; } }

/* Microinteração: cards de objeção e provas sobem no hover */
.objection:hover { transform: translateY(-3px); }
.proof__item { transition: transform var(--t); }
.proof__item:hover { transform: translateY(-4px); }

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
  }
  [data-reveal], .reveal, .timeline__card, .step { opacity: 1; transform: none; }
  .step__icon { opacity: 1; transform: none; }
  .step::before { transform: scaleX(1); }
  .hero__bg img { animation: none; }
}


/* ==========================================================================
   CAMADA DE IDENTIDADE HCP
   O simbolo da HCP e a casa ambar recortada por cor do vetor: nao da pra descrever
   entao ele entra como MASCARA (--mark-full) e a crista do telhado como
   faixa tileavel (--mark-band). Substitui a gramatica hexagonal do Romualdo.
   ========================================================================== */

.section-title::after {
  content: ""; display: block; width: 62px; max-width: 120px; height: 4px;
  margin-top: 16px; background: var(--brand);
  -webkit-mask: linear-gradient(90deg, #000 0 62%, transparent 62% 70%, #000 70% 100%);
  mask: linear-gradient(90deg, #000 0 62%, transparent 62% 70%, #000 70% 100%);
  transition: width .6s var(--ease);
}
.section-title--light::after { background: var(--brand-light); }

.brand-divider { display: block; height: 30px; padding: 0; position: relative;
  background: var(--color-bg-soft); overflow: hidden; }
.brand-divider::before {
  content: ""; position: absolute; inset: 0;
  background: var(--brand); opacity: .16;
  -webkit-mask: var(--stamp-grade) center/150px repeat-x;
  mask: var(--stamp-grade) center/150px repeat-x;
}
.brand-divider::after {
  content: ""; position: absolute; left: 50%; top: 50%; width: 240px; height: 1px;
  transform: translate(-50%,-50%);
  background: linear-gradient(90deg, transparent, var(--brand), transparent);
}

.brand-texture { position: relative; isolation: isolate; }
/* o monograma inteiro, grande e discreto, no canto da dobra escura */
.brand-mono { position: relative; isolation: isolate; }
.brand-mono::after {
  content: ""; position: absolute; inset: 0; z-index: 0; pointer-events: none;
  background: var(--brand-light);
  -webkit-mask: var(--mark-full) right -6% bottom -10%/34% no-repeat;
  mask: var(--mark-full) right -6% bottom -10%/34% no-repeat;
  opacity: .07;
}
.brand-texture > * { position: relative; z-index: 1; }

.proof__seal img { filter: drop-shadow(0 0 18px rgba(207,162,91, .45)); }

/* ==========================================================================
   DOBRAS PRÓPRIAS DA HCP
   O Romualdo é construção financiada e tem foto de obra; a HCP é B2B
   comercial e não tem acervo. Estas dobras substituem hero com foto,
   galeria e exemplos por faixa de renda.
   ========================================================================== */

/* --- Hero sem foto: o fundo é a própria marca, nunca imagem de banco ------ */
.hero--flat {
  min-height: auto; height: auto; padding: calc(var(--header-h) + 96px) 0 96px;
  background:
    radial-gradient(1200px 620px at 82% 18%, rgba(207,162,91, .20), transparent 62%),
    linear-gradient(155deg, var(--color-ink) 0%, var(--color-ink-2) 58%, var(--color-ink-3) 100%);
  color: var(--color-on-dark);
}
.hero--flat .hero__bg, .hero--flat .hero__overlay { display: none; }
.hero--flat .hero__content { position: relative; max-width: 900px; }
.hero--flat .hero__sub { color: var(--color-on-dark-mute); max-width: 66ch; }
.hero--flat::after { opacity: .10; }

/* --- Statbar (gramática do Icconne, 3 números) ---------------------------- */
.statbar { background: var(--color-bg-soft); padding: 56px 0; border-bottom: 1px solid var(--color-line); }
.statbar__grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 28px; }
.statbar__item { position: relative; padding-left: 22px; }
.statbar__item::before {
  content: ""; position: absolute; left: 0; top: 4px; bottom: 4px; width: 4px;
  background: var(--brand);
  -webkit-mask: var(--mark-band) center/100% auto repeat-y;
  mask: var(--mark-band) center/100% auto repeat-y;
}
.statbar__seal { position: absolute; right: 8px; top: -6px; opacity: .16; }
.statbar__seal img { width: 52px; height: auto; }
.statbar__num {
  font-family: var(--font-display); font-weight: 700; line-height: 1;
  font-size: clamp(2.2rem, 4.4vw, 3.1rem); color: var(--color-ink);
}
.statbar__num small { font-size: .42em; margin-left: .18em; color: var(--brand-2); font-weight: 600; }
.statbar__label { margin-top: 10px; color: var(--color-text-mute); font-size: .96rem; max-width: 30ch; }

/* --- Diferencial (4 cards numerados) -------------------------------------- */
.diff { padding: 96px 0; background: var(--color-bg); }
.diff__grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 22px; margin-top: 44px; }
.diff__card {
  position: relative; padding: 30px 28px 28px; background: var(--color-bg-soft);
  border: 1px solid var(--color-line); border-left: 4px solid var(--brand);
  border-radius: var(--radius-card); transition: transform var(--t), box-shadow var(--t);
}
.diff__card:hover { transform: translateY(-4px); box-shadow: var(--shadow); }
.diff__num {
  display: block; font-family: var(--font-display); font-weight: 700;
  font-size: 2.1rem; line-height: 1; color: var(--brand); opacity: .34; margin-bottom: 14px;
}
.diff__title { font-family: var(--font-display); font-size: 1.16rem; color: var(--color-ink); margin-bottom: 10px; }
.diff__text { color: var(--color-text-mute); font-size: .99rem; line-height: 1.62; }

/* --- Gestão / camada de proteção ------------------------------------------ */
.gestao { padding: 96px 0; background: var(--color-bg-soft); }
.gestao__inner { display: grid; grid-template-columns: 1.25fr .85fr; gap: 46px; align-items: start; }
.gestao__lead { color: var(--color-text-mute); font-size: 1.04rem; line-height: 1.72; margin-top: 20px; }
.gestao__list { margin-top: 24px; display: grid; gap: 12px; }
.gestao__list li { position: relative; padding-left: 30px; color: var(--color-text); line-height: 1.55; }
.gestao__list li::before {
  content: ""; position: absolute; left: 0; top: 3px; width: 16px; height: 17px;
  background: var(--brand);
  -webkit-mask: var(--mark-band) center/contain no-repeat;
  mask: var(--mark-band) center/contain no-repeat;
}
.gestao__cta { margin-top: 30px; }
.gestao__aside {
  padding: 34px 30px; background: var(--color-ink); color: var(--color-on-dark);
  border-radius: var(--radius-card);
}
.gestao__aside-title { font-family: var(--font-display); font-size: 1.1rem; margin-bottom: 20px; color: #fff; }
.gestao__tags { display: grid; gap: 10px; }
.gestao__tags li {
  padding: 11px 14px; background: rgba(255, 255, 255, .06);
  border-left: 3px solid var(--brand-light); font-size: .95rem; color: var(--color-on-dark);
}
.gestao__aside-note { margin-top: 20px; font-size: .86rem; color: var(--color-on-dark-mute); opacity: .8; }

/* --- Responsável técnico sem retrato -------------------------------------- */
.experts--nophoto .experts__inner { grid-template-columns: 1fr; max-width: 820px; margin-inline: auto; text-align: left; }
.experts__signature {
  display: flex; align-items: center; gap: 14px; margin-top: 28px; padding-top: 22px;
  border-top: 1px solid var(--color-line);
}
.experts__seal {
  display: grid; place-items: center; width: 58px; height: 58px; flex: none;
  background: var(--brand-soft); border: 1px solid var(--brand); border-radius: var(--radius-card);
}
.experts__seal img { width: 34px; height: auto; }
.experts__signature strong { display: block; font-family: var(--font-display); color: var(--color-ink); }
.experts__signature small { display: block; color: var(--color-text-mute); font-size: .9rem; margin-top: 2px; }

@media (max-width: 900px) {
  .statbar__grid { grid-template-columns: 1fr; gap: 30px; }
  .diff__grid { grid-template-columns: 1fr; }
  .gestao__inner { grid-template-columns: 1fr; gap: 34px; }
}
@media (max-width: 420px) {
  .hero--flat { padding: calc(var(--header-h) + 64px) 0 68px; }
  .diff, .gestao { padding: 68px 0; }
  .diff__card { padding: 24px 20px; }
}

/* ==========================================================================
   CONTENÇÃO HORIZONTAL
   A nav da HCP tem 6 itens com rótulos mais longos que os do Romualdo e,
   sem min-width:0, o flex não deixava a faixa encolher: os links empurravam
   a largura da PÁGINA e tudo vazava para a direita no celular.
   Sem hambúrguer (playbook 13.3): a faixa rola na horizontal.
   ========================================================================== */
html, body { overflow-x: clip; }          /* clip e não hidden: não quebra sticky */
.site-header__inner { min-width: 0; }
.site-nav {
  min-width: 0; overflow-x: auto; overscroll-behavior-x: contain;
  scrollbar-width: none; -ms-overflow-style: none;
}
.site-nav::-webkit-scrollbar { display: none; }
.site-nav a { flex: none; white-space: nowrap; }
.container { max-width: min(var(--container), 100%); }
.hero--flat .hero__content { max-width: min(900px, 100%); }
img, svg, video { max-width: 100%; }

/* ==========================================================================
   HERO COM FOTO (altura automática, não 100vh: copy longa não clipa o CTA)
   ========================================================================== */
.hero--photo { position: relative; isolation: isolate; }
.hero--photo .hero__bg { display: block; position: absolute; inset: 0; z-index: -2; overflow: hidden; }
.hero--photo .hero__bg img { width: 100%; height: 100%; object-fit: cover; object-position: center 42%; }
/* No funil residencial a foto do hero E o argumento (area de lazer entregue),
   entao o overlay e mais leve que o da LP comercial, onde a foto era so fundo.
   O texto e centralizado, entao o escuro vem por cima e por baixo, e as bordas
   ficam claras para o revestimento e o jardim vertical aparecerem.
   Medido: o menor contraste do H1 sobre o ponto mais claro da foto e 8.9:1. */
.hero--photo .hero__overlay {
  display: block; position: absolute; inset: 0;
  background:
    linear-gradient(180deg, rgba(10,8,6,.86) 0%, rgba(10,8,6,.70) 30%, rgba(10,8,6,.62) 62%, rgba(10,8,6,.78) 100%),
    radial-gradient(120% 80% at 50% 42%, rgba(10,8,6,.34) 0%, rgba(10,8,6,.10) 60%, transparent 100%);
}
.hero--photo::after { opacity: .05; }

/* Célula da galeria em 4:3: o acervo residencial da HC é foto DEITADA de
   ambiente (piscina, deck, jardim, gourmet). Na célula 4:5 que a LP comercial
   usa, o cover comia as laterais e a composição do ambiente sumia. A regra do
   playbook 15.7 (proporção >= 0.80) continua respeitada, agora ao contrário:
   quem manda é a proporção do arquivo, não a da célula. */
.marquee__item { aspect-ratio: 4 / 3; width: clamp(280px, 30vw, 390px); }
.marquee__item img { width: 100%; height: 100%; object-fit: cover; }

/* ==========================================================================
   v3 — RITMO, MOVIMENTO E ENTRADA/SAÍDA
   ========================================================================== */

/* --- 1. Respiro entre dobras mais curto ---------------------------------- */
:root { --dobra-y: clamp(52px, 5.4vw, 76px); }
.statbar, .process, .risk-band, .gestao, .gallery, .experts, .objections, .viability {
  padding-top: var(--dobra-y); padding-bottom: var(--dobra-y);
}
.hero--flat { padding: calc(var(--header-h) + 64px) 0 68px; }
.gallery__head, .form-head { margin-bottom: 30px; }
.section-lead { margin-bottom: 0; }
.steps, .diff__grid, .objections__grid { margin-top: 32px; }
.gallery__cta, .financing__cta, .gestao__cta, .experts__cta { margin-top: 26px; }
.brand-divider { height: 26px; }
.brand-divider__mark { width: 16px; height: 16px; }

/* --- 2. Degradê animado com as cores da marca ---------------------------- */
@property --g1 { syntax: '<percentage>'; inherits: false; initial-value: 0%; }
.brand-flow {
  /* As alfas destes tres radiais cairam pela metade na troca do kit azul pelo
     dourado, e a regra existe em DOIS lugares (aqui e em `.escopo.brand-flow`,
     bloco v11): mexer so num deles nao muda a dobra que o outro pinta.
     Motivo: sobre azul, um radial forte so clareava o azul. Sobre o preto
     profundo, ouro a .42 empurra a dobra inteira para MARROM MEDIO, e ela
     deixa de conversar com as outras dobras escuras da pagina, que sao quase
     pretas. O brilho fica, a lavagem sai. */
  position: relative; isolation: isolate;
  background:
    radial-gradient(90% 130% at 12% 0%,  rgba(207,162,91,.18), transparent 58%),
    radial-gradient(80% 120% at 92% 30%, rgba(149,109,59,.22), transparent 62%),
    radial-gradient(70% 110% at 50% 108%, rgba(246,228,172,.12), transparent 60%),
    linear-gradient(150deg, var(--color-ink) 0%, var(--color-ink-2) 55%, var(--color-ink-3) 100%);
  background-size: 180% 180%, 190% 190%, 170% 170%, 100% 100%;
  animation: brandFlow 22s ease-in-out infinite alternate;
}
@keyframes brandFlow {
  0%   { background-position:   0% 0%,  100% 30%, 50% 100%, 0 0; }
  50%  { background-position:  40% 30%,  60% 10%, 20%  70%, 0 0; }
  100% { background-position:  10% 60%,  90% 60%, 80%  90%, 0 0; }
}

/* Fio de luz da marca que corre no topo das dobras escuras */
.brand-wire { position: relative; }
.brand-wire::before {
  content: ""; position: absolute; top: 0; left: 0; right: 0; height: 2px; z-index: 2;
  background: linear-gradient(90deg, transparent, var(--brand) 18%, var(--brand-light) 50%, var(--brand) 82%, transparent);
  background-size: 220% 100%;
  animation: wireRun 5.5s linear infinite;
  opacity: .85;
}
@keyframes wireRun { from { background-position: 220% 0; } to { background-position: -20% 0; } }

/* Brilho que pulsa atrás do hero */
.hero--photo .hero__overlay::after {
  content: ""; position: absolute; inset: 0;
  background: radial-gradient(46% 62% at 22% 46%, rgba(207,162,91,.26), transparent 68%);
  animation: heroGlow 7s ease-in-out infinite alternate;
}
@keyframes heroGlow { from { opacity: .45; transform: scale(1); } to { opacity: .95; transform: scale(1.12); } }

/* --- 3. Entrada E saída (o elemento recolhe ao sair do viewport) ---------- */
[data-anim] {
  opacity: 0; transform: translateY(26px) scale(.985);
  transition: opacity .62s var(--ease), transform .62s var(--ease);
  will-change: opacity, transform;
}
[data-anim].is-in { opacity: 1; transform: none; }
[data-anim].is-out { opacity: 0; transform: translateY(-18px) scale(.99); }
[data-anim="left"]  { transform: translateX(-32px); }
[data-anim="right"] { transform: translateX(32px); }
[data-anim="zoom"]  { transform: scale(.93); }
[data-anim].is-in   { transform: none; }

/* escalonamento dos filhos: cada card entra logo depois do anterior */
[data-anim-stagger] > * { opacity: 0; transform: translateY(22px);
  transition: opacity .55s var(--ease), transform .55s var(--ease); }
[data-anim-stagger].is-in > * { opacity: 1; transform: none; }
[data-anim-stagger].is-in > *:nth-child(1) { transition-delay: .04s }
[data-anim-stagger].is-in > *:nth-child(2) { transition-delay: .12s }
[data-anim-stagger].is-in > *:nth-child(3) { transition-delay: .20s }
[data-anim-stagger].is-in > *:nth-child(4) { transition-delay: .28s }
[data-anim-stagger].is-in > *:nth-child(5) { transition-delay: .36s }

@media (prefers-reduced-motion: reduce) {
  [data-anim], [data-anim-stagger] > * { opacity: 1 !important; transform: none !important; }
  .brand-flow, .brand-wire::before, .hero--photo .hero__overlay::after { animation: none; }
}

/* --- 4. Selo de foto provisória ------------------------------------------ */
.experts__photo { position: relative; }
.experts__placeholder-tag {
  position: absolute; top: 14px; left: 14px; z-index: 3;
  padding: 7px 13px; font-family: var(--font-display); font-weight: 600;
  font-size: .74rem; letter-spacing: .08em; text-transform: uppercase;
  color: var(--color-ink); background: var(--brand-light);
  border-radius: var(--radius-btn);
  box-shadow: 0 6px 18px rgba(10,8,6,.32);
}

/* --- Correção de contraste: a dobra de risco virou escura com o brand-flow,
       e o texto dos bullets (vermelho sobre claro no original) sumiu. -------- */
.risk-band.brand-flow .rb__txt { color: var(--color-on-dark); }
.risk-band.brand-flow .rb { border-bottom-color: rgba(255,255,255,.14); }
.risk-band.brand-flow .rb__ic { background: #c0392b; color: #fff; }
.risk-band.brand-flow .rb[data-strike] .rb__txt::after { background: rgba(255,255,255,.55); }
.risk-band.brand-flow .section-title { color: #fff; }
.risk-band.brand-flow .accent-red { color: #ff7a6b; }

/* ==========================================================================
   v4
   ========================================================================== */

/* --- 1. Régua de autoridade: degradê escuro e números em cor brilhante ----
   VALE SO PARA A VERSAO ESCURA. Esta LP usa `.statbar--claro` (bloco 13.4),
   porque aqui a dobra fica entre duas escuras. */
.statbar:not(.statbar--claro):not(.statbar--faixa) {
  position: relative; isolation: isolate; border-bottom: 0;
  color: var(--color-on-dark);
  background:
    radial-gradient(70% 140% at 8% 0%,   rgba(207,162,91,.34), transparent 60%),
    radial-gradient(65% 130% at 92% 100%, rgba(246,228,172,.26), transparent 62%),
    linear-gradient(120deg, var(--color-ink) 0%, var(--color-ink-3) 48%, var(--color-ink-2) 100%);
  background-size: 190% 190%, 180% 180%, 100% 100%;
  animation: brandFlow 20s ease-in-out infinite alternate;
  padding-top: calc(var(--dobra-y) + 6px); padding-bottom: calc(var(--dobra-y) + 6px);
}
.statbar:not(.statbar--claro):not(.statbar--faixa)::before {
  content: ""; position: absolute; top: 0; left: 0; right: 0; height: 2px; z-index: 2;
  background: linear-gradient(90deg, transparent, var(--brand) 20%, var(--brand-light) 50%, var(--brand) 80%, transparent);
  background-size: 220% 100%; animation: wireRun 5.5s linear infinite;
}
.statbar__item { padding-left: 26px; }
.statbar__item::before { background: var(--brand-light); opacity: .9; width: 3px; }
.statbar:not(.statbar--claro):not(.statbar--faixa) .statbar__num {
  color: transparent; background: linear-gradient(96deg, #FFFFFF 0%, var(--brand-light) 42%, var(--brand) 100%);
  background-size: 220% 100%; -webkit-background-clip: text; background-clip: text;
  animation: numShine 6s ease-in-out infinite alternate;
  text-shadow: none; filter: drop-shadow(0 4px 16px rgba(207,162,91,.30));
  font-size: clamp(2.5rem, 5vw, 3.5rem);
}
@keyframes numShine { from { background-position: 0% 0; } to { background-position: 100% 0; } }
.statbar:not(.statbar--claro):not(.statbar--faixa) .statbar__num small { color: var(--brand-light); -webkit-text-fill-color: var(--brand-light); }
.statbar:not(.statbar--claro):not(.statbar--faixa) .statbar__label { color: var(--color-on-dark-mute); }
.statbar__seal { opacity: .22; }

/* --- 2. Portfólio: cartões menores -------------------------------------- */
.marquee__item { width: clamp(168px, 16vw, 216px); }
.marquee__item figcaption { font-size: .82rem; }

/* --- 3. Como funciona: cards alinhados com o texto ----------------------- */
/* o <ol> herdava o recuo de lista e empurrava os cards para dentro */
.steps { padding-left: 0; margin-left: 0; list-style: none; }

/* --- 4. Gestão: colunas equilibradas e aside da altura do texto ---------- */
.gestao__inner { grid-template-columns: 1fr 1fr; align-items: stretch; }
.gestao__aside { display: flex; flex-direction: column; justify-content: center; }
.gestao__copy { display: flex; flex-direction: column; }
.gestao__cta { margin-top: auto; padding-top: 24px; }

/* --- 5. Botões: degradê da marca animado, e pulso ------------------------ */
.btn--accent, .btn--green, .btn--ghost-light, .site-header__cta {
  position: relative; background-size: 220% 100%;
  animation: btnFlow 6s ease-in-out infinite alternate, btnPulse 2.8s ease-in-out infinite;
}
.btn--accent, .site-header__cta {
  background-image: linear-gradient(96deg, var(--brand-2) 0%, var(--brand) 38%, var(--brand-light) 62%, var(--brand) 100%);
  color: var(--color-ink);
}
/* verde continua verde: no padrão, verde = conversão e não pode virar ciano */
.btn--green {
  background-image: linear-gradient(96deg, var(--color-green-deep) 0%, var(--color-green) 42%, var(--color-green-light) 64%, var(--color-green) 100%);
  color: #fff;
}
.btn--ghost-light {
  background-image: linear-gradient(96deg, rgba(207,162,91,.16) 0%, rgba(246,228,172,.26) 50%, rgba(207,162,91,.16) 100%);
}
@keyframes btnFlow { from { background-position: 0% 0; } to { background-position: 100% 0; } }
@keyframes btnPulse {
  0%, 100% { box-shadow: 0 0 0 0 rgba(207,162,91,.42); }
  55%      { box-shadow: 0 0 0 14px rgba(207,162,91,0); }
}
.btn--green { animation-name: btnFlow, btnPulseGreen; }
@keyframes btnPulseGreen {
  0%, 100% { box-shadow: 0 0 0 0 rgba(31,168,88,.45); }
  55%      { box-shadow: 0 0 0 14px rgba(31,168,88,0); }
}
.btn--accent:hover, .btn--green:hover, .site-header__cta:hover { animation-play-state: paused; }

@media (prefers-reduced-motion: reduce) {
  .statbar, .statbar::before, .statbar__num,
  .btn--accent, .btn--green, .btn--ghost-light, .site-header__cta { animation: none; }
}

/* ==========================================================================
   v5 — CONTRASTE DO HERO
   O brilho pulsante estava em 22% da largura, atrás da coluna de texto, e
   clareava o fundo exatamente onde ele precisa ser escuro. Foi para o lado
   direito, onde não há texto. Somado a isso: scrim mais forte na coluna
   esquerda, corpo em cor cheia (não na mute) e acento no ciano claro, que
   é o que sobrevive sobre a fachada de vidro esverdeada.
   ========================================================================== */

/* 1. o brilho sai de trás do texto */
.hero--photo .hero__overlay::after {
  background: radial-gradient(40% 56% at 82% 40%, rgba(207,162,91,.22), transparent 70%);
}
@keyframes heroGlow { from { opacity: .35; transform: scale(1); } to { opacity: .72; transform: scale(1.10); } }

/* 2. scrim: quase opaco onde o texto vive, e só abre no terço direito */
.hero--photo .hero__overlay {
  background:
    linear-gradient(96deg,
      rgba(10,8,6,.97) 0%,
      rgba(10,8,6,.94) 38%,
      rgba(10,8,6,.82) 58%,
      rgba(31,20,4,.55) 78%,
      rgba(31,20,4,.42) 100%),
    linear-gradient(180deg, rgba(10,8,6,.80) 0%, rgba(10,8,6,.30) 34%, rgba(10,8,6,.72) 100%);
}
.hero--photo .hero__bg img { filter: saturate(.85) contrast(.92) brightness(.72); }

/* 3. texto do hero em cor cheia, com sombra de segurança */
.hero--flat .hero__sub {
  color: var(--color-primary-soft); font-size: clamp(1.02rem, 1.22vw, 1.14rem); line-height: 1.68;
  text-shadow: 0 1px 12px rgba(10,8,6,.85);
}
.hero__headline { text-shadow: 0 2px 20px rgba(10,8,6,.75); }
.hero--photo .hero__headline .accent { color: var(--brand-light); }
.hero--photo .eyebrow--badge {
  background: rgba(10,8,6,.86); color: var(--color-on-dark);
  border: 1px solid rgba(246,228,172,.34);
}
.hero__cue { color: #F7F0E1; text-shadow: 0 1px 10px rgba(10,8,6,.8); }

/* 4. o botão fantasma precisa de borda para existir sobre foto */
.hero--photo .btn--ghost-light {
  border: 1.5px solid rgba(246,228,172,.55); color: #fff;
  backdrop-filter: blur(3px);
}

/* --- v5.1: o pior ponto do fundo (não a média) é que decide -------------- */
/* O parágrafo chegava a ~1020px, já na região em que o scrim abria: sobrava
   uma mancha clara da fachada atrás de texto pequeno (2,65:1). Duas travas:
   a coluna de texto encurta, e o scrim forte vai mais para a direita.       */
.hero--photo .hero__overlay {
  background:
    linear-gradient(96deg,
      rgba(10,8,6,.97) 0%,
      rgba(10,8,6,.96) 46%,
      rgba(10,8,6,.93) 64%,
      rgba(10,8,6,.72) 80%,
      rgba(31,20,4,.48) 100%),
    linear-gradient(180deg, rgba(10,8,6,.80) 0%, rgba(10,8,6,.34) 34%, rgba(10,8,6,.74) 100%);
}
.hero--flat .hero__sub { max-width: 58ch; }
.hero__headline { max-width: 20ch; }

/* ==========================================================================
   v7
   ========================================================================== */

/* --- Régua de autoridade: centralizada, maior e proporcional ------------- */
.statbar__grid {
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: clamp(20px, 3vw, 44px); align-items: center;
  max-width: 1080px; margin-inline: auto;
}
.statbar__item {
  padding: 6px 0 6px 0; text-align: center;
  display: flex; flex-direction: column; align-items: center; gap: 8px;
}
.statbar__item::before {           /* a crista vira um traço curto sob o número */
  content: ""; position: static; order: 3;
  width: 46px; height: 4px; opacity: .95;
  -webkit-mask: var(--mark-band) center/auto 100% repeat-x;
  mask: var(--mark-band) center/auto 100% repeat-x;
}
.statbar__num { font-size: clamp(2.9rem, 5.6vw, 4.2rem); line-height: .98; order: 1; }
.statbar__num small { font-size: .34em; }
.statbar__label { order: 2; max-width: 26ch; margin-top: 2px; font-size: 1rem; }
.statbar__seal { display: none; }  /* o selo desalinhava a grade de 3 colunas */
.statbar { padding-top: calc(var(--dobra-y) + 18px); padding-bottom: calc(var(--dobra-y) + 18px); }

/* --- Portfólio quadrado e menor ----------------------------------------- */
.marquee__item { aspect-ratio: 1 / 1; width: clamp(150px, 13.5vw, 190px); }

/* --- Telefone: seletor de país + dica + erro com exemplo ----------------- */
.tel-row { display: flex; gap: 8px; align-items: stretch; }
.tel-row .tel-country { flex: 0 0 auto; width: auto; max-width: 42%; min-width: 104px; padding-right: 26px; }
.tel-row input { flex: 1 1 auto; min-width: 0; }
.tel-hint { display: block; margin-top: 6px; font-size: .82rem; color: var(--color-text-mute); }
.error-msg b { color: #ff6b5b; font-weight: 700; letter-spacing: .01em; }
.error-msg strong { color: inherit; }
@media (max-width: 380px) { .tel-row .tel-country { max-width: 46%; min-width: 92px; font-size: 13px; } }

/* --- Hero: deixar a foto aparecer mais, sem perder o texto --------------- */
/* o scrim forte vira um painel SÓ atrás da coluna de texto; o resto da
   fachada clareia. Assim a foto respira e o contraste continua medido. */
.hero--photo .hero__bg img { filter: saturate(.95) contrast(1.0) brightness(.86); }
.hero--photo .hero__overlay {
  background:
    linear-gradient(96deg,
      rgba(10,8,6,.94) 0%,
      rgba(10,8,6,.90) 40%,
      rgba(10,8,6,.72) 56%,
      rgba(10,8,6,.34) 74%,
      rgba(31,20,4,.16) 100%),
    linear-gradient(180deg, rgba(10,8,6,.62) 0%, rgba(10,8,6,.16) 36%, rgba(10,8,6,.60) 100%);
}
.hero--flat .hero__content::before {
  content: ""; position: absolute; z-index: -1;
  left: calc(var(--container-pad) * -1); right: 22%; top: -32px; bottom: -32px;
  background: linear-gradient(96deg, rgba(21,13,3,.80) 0%, rgba(21,13,3,.66) 62%, transparent 100%);
  filter: blur(18px);
}
.hero--flat .hero__content { position: relative; z-index: 1; }
@media (max-width: 900px) { .hero--flat .hero__content::before { right: -10%; } }

/* ==========================================================================
   v9
   ========================================================================== */

/* --- Régua de autoridade: volta ao layout anterior, só melhor centrada ---- */
/* Desfaz o v7 (que centralizou o texto e escondeu o selo) e recupera o bloco
   alinhado à esquerda com a barra da crista. O que muda: a grade inteira
   passa a ser centrada como conjunto e as três colunas ficam do mesmo peso. */
.statbar__grid {
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: clamp(24px, 3.2vw, 52px);
  max-width: 1120px; margin-inline: auto;
  align-items: center; justify-items: center;
}
.statbar__item {
  display: block; text-align: left; position: relative;
  padding: 4px 0 4px 26px; width: max-content; max-width: 100%;
}
.statbar__item::before {                 /* barra vertical da crista, como antes */
  content: ""; position: absolute; left: 0; top: 4px; bottom: 4px;
  width: 3px; height: auto; order: 0; opacity: .9;
  background: var(--brand-light);
  -webkit-mask: var(--mark-band) center/100% auto repeat-y;
  mask: var(--mark-band) center/100% auto repeat-y;
}
.statbar__num  { font-size: clamp(2.4rem, 4.4vw, 3.3rem); line-height: 1; }
.statbar__num small { font-size: .38em; }
.statbar__label { max-width: 24ch; margin-top: 8px; font-size: .97rem; }
.statbar__seal { display: block; }       /* o selo volta */
.statbar { padding-top: calc(var(--dobra-y) + 8px); padding-bottom: calc(var(--dobra-y) + 8px); }

/* --- Gestão vira faixa curta: só declaração e CTA ------------------------ */
.gestao--band { padding-top: calc(var(--dobra-y) - 6px); padding-bottom: calc(var(--dobra-y) - 6px); }
.gestao--band .gestao__inner { display: block; max-width: 900px; margin-inline: auto; text-align: center; }
.gestao--band .section-title::after { margin-inline: auto; }
.gestao--band .eyebrow { justify-content: center; }
.gestao--band .gestao__cta { margin-top: 22px; }

/* --- Escopo: cards compactos, na língua do dono do imóvel ---------------- */
.escopo { padding: var(--dobra-y) 0; background: var(--color-bg); }
.escopo__grid {
  display: grid; grid-template-columns: repeat(3, 1fr);
  gap: 16px; margin-top: 30px;
}
.escopo__card {
  padding: 22px 20px; background: var(--color-bg-soft);
  border: 1px solid var(--color-line); border-left: 3px solid var(--brand);
  border-radius: var(--radius-card);
  transition: transform var(--t), box-shadow var(--t), border-color var(--t);
}
.escopo__card:hover { transform: translateY(-3px); box-shadow: var(--shadow-sm); border-left-color: var(--brand-2); }
.escopo__card h3 {
  font-family: var(--font-display); font-size: 1.02rem; color: var(--color-ink);
  margin-bottom: 8px; line-height: 1.3;
}
.escopo__card p { font-size: .93rem; line-height: 1.55; color: var(--color-text-mute); }
.escopo__nota { margin-top: 20px; font-size: .87rem; color: var(--color-text-mute); opacity: .85; }

@media (max-width: 900px) {
  .escopo__grid { grid-template-columns: 1fr 1fr; }
  .statbar__grid { grid-template-columns: 1fr; justify-items: start; gap: 26px; }
}
@media (max-width: 560px) { .escopo__grid { grid-template-columns: 1fr; } }

/* ==========================================================================
   v10 — CARDS DE ESCOPO EM DESTAQUE
   A dobra virou escura para os cards existirem como objeto luminoso. Cada
   card tem: borda em degradê animado (mask-composite, não pseudo empilhado),
   brilho que segue a entrada, varredura de luz no hover e a marca d'água do P.
   ========================================================================== */
.escopo { position: relative; isolation: isolate; color: var(--color-on-dark); }
.escopo .section-lead, .escopo__nota--light { color: var(--color-on-dark-mute); }

.escopo__grid { gap: 18px; margin-top: 34px; perspective: 1200px; }

.escopo__card {
  position: relative; overflow: hidden; isolation: isolate;
  padding: 0; border: 0; border-radius: var(--radius-card);
  background: linear-gradient(150deg, rgba(255,255,255,.075), rgba(255,255,255,.02));
  backdrop-filter: blur(6px);
  transition: transform .45s var(--ease), box-shadow .45s var(--ease);
  animation-delay: calc(var(--i) * .18s);
}
/* borda em degradê animado: pinta só a moldura, sem cobrir o conteúdo */
.escopo__card::before {
  content: ""; position: absolute; inset: 0; z-index: 2; pointer-events: none;
  border-radius: inherit; padding: 1.5px;
  background: linear-gradient(115deg, var(--brand-light), var(--brand) 28%, transparent 46%,
                               transparent 62%, var(--brand-2) 84%, var(--brand-light));
  background-size: 260% 260%;
  -webkit-mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0);
  mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0);
  -webkit-mask-composite: xor; mask-composite: exclude;
  animation: bordaFlow 8s ease-in-out infinite alternate;
  animation-delay: calc(var(--i) * -1.1s);
  opacity: .75; transition: opacity .4s var(--ease);
}
@keyframes bordaFlow { from { background-position: 0% 50%; } to { background-position: 100% 50%; } }

/* brilho de fundo que acende no hover */
.escopo__glow {
  position: absolute; inset: -30% -10% auto -10%; height: 70%; z-index: 0;
  background: radial-gradient(60% 100% at 30% 0%, rgba(207,162,91,.55), transparent 70%);
  opacity: .22; transition: opacity .45s var(--ease), transform .6s var(--ease);
}
/* marca d'água: o P da marca no canto do card */
.escopo__mark {
  position: absolute; right: -10px; bottom: -14px; width: 92px; height: 118px; z-index: 0;
  background: var(--brand-light);
  -webkit-mask: var(--mark-full) center/contain no-repeat;
  mask: var(--mark-full) center/contain no-repeat;
  opacity: .07; transition: opacity .45s var(--ease), transform .55s var(--ease);
}
/* varredura de luz que atravessa no hover */
.escopo__card::after {
  content: ""; position: absolute; inset: 0; z-index: 1; pointer-events: none;
  background: linear-gradient(105deg, transparent 38%, rgba(255,255,255,.16) 50%, transparent 62%);
  transform: translateX(-120%); transition: transform .75s var(--ease);
}
.escopo__body { position: relative; z-index: 3; padding: 26px 22px 24px; }
.escopo__card h3 {
  font-family: var(--font-display); font-size: 1.08rem; color: #fff;
  margin-bottom: 10px; line-height: 1.28;
}
.escopo__card p { font-size: .94rem; line-height: 1.58; color: var(--color-on-dark-mute); }

.escopo__card:hover, .escopo__card:focus-within {
  transform: translateY(-8px) scale(1.015);
  box-shadow: 0 22px 54px rgba(10,8,6,.55), 0 0 0 1px rgba(246,228,172,.22);
}
.escopo__card:hover::before, .escopo__card:focus-within::before { opacity: 1; }
.escopo__card:hover::after,  .escopo__card:focus-within::after  { transform: translateX(120%); }
.escopo__card:hover .escopo__glow { opacity: .55; transform: translateY(6px); }
.escopo__card:hover .escopo__mark { opacity: .18; transform: translate(-4px, -6px) rotate(-4deg); }
.escopo__card:hover h3 { color: var(--brand-light); }

@media (prefers-reduced-motion: reduce) {
  .escopo__card, .escopo__card::before, .escopo__card::after,
  .escopo__glow, .escopo__mark { animation: none; transition: none; }
}

/* ==========================================================================
   v11
   ========================================================================== */

/* --- Correção: a regra .escopo (v9) definia fundo branco e vinha DEPOIS de
       .brand-flow, então vencia e a dobra ficava clara com texto branco em
       cima de branco. Especificidade maior devolve o degradê animado. ------ */
.escopo.brand-flow {
  background:
    radial-gradient(90% 130% at 12% 0%,  rgba(207,162,91,.18), transparent 58%),
    radial-gradient(80% 120% at 92% 30%, rgba(149,109,59,.22), transparent 62%),
    radial-gradient(70% 110% at 50% 108%, rgba(246,228,172,.12), transparent 60%),
    linear-gradient(150deg, var(--color-ink) 0%, var(--color-ink-2) 55%, var(--color-ink-3) 100%);
  background-size: 180% 180%, 190% 190%, 170% 170%, 100% 100%;
  animation: brandFlow 22s ease-in-out infinite alternate;
}
.escopo.brand-flow .section-title { color: #fff; }

/* --- Portfólio: carrossel manual, quadrado -------------------------------- */
/* o autoplay foi desligado no main.js (speed = 0); as setas e o arrasto
   continuam valendo. Aqui só reforçamos a leitura de "isto se navega". */
.marquee { cursor: grab; }
.marquee:active { cursor: grabbing; }
.marquee__item { aspect-ratio: 1 / 1; width: clamp(190px, 17vw, 250px); }
.marquee__nav {
  opacity: 1; background: var(--brand); color: var(--color-ink);
  box-shadow: 0 10px 26px rgba(10,8,6,.35);
}
.marquee__nav:hover { background: var(--brand-light); }

/* ==========================================================================
   v12
   ========================================================================== */

/* --- Carrossel: as fotos NÃO estavam quadradas --------------------------- */
/* A regra base do clone fixa height: clamp(320px, 42vw, 520px), e altura
   explícita vence aspect-ratio. Por isso o 1/1 não pegava. */
.marquee__item {
  height: auto; aspect-ratio: 1 / 1;
  width: clamp(200px, 18vw, 260px);
}
.marquee__item img { width: 100%; height: 100%; object-fit: cover; display: block; }
.marquee__track { gap: 16px; }

/* --- Como funciona: os cards ocupavam só o miolo da dobra ---------------- */
/* .steps tinha max-width: 920px dentro de um container de 1200px, o que
   deixava ~140px vazios de cada lado. Agora a grade preenche a dobra. */
.steps {
  max-width: none; width: 100%;
  gap: clamp(18px, 2.2vw, 30px);
  margin: 34px 0 0;
}
.step { padding: clamp(28px, 2.6vw, 40px) clamp(26px, 2.4vw, 38px); }
.step__title { font-size: clamp(1.08rem, 1.35vw, 1.26rem); }
.step__text  { font-size: clamp(.95rem, 1.02vw, 1.02rem); line-height: 1.62; }
.step__ghost { font-size: clamp(4.4rem, 7vw, 7rem); }

@media (max-width: 900px) { .steps { grid-template-columns: 1fr; } }

/* --- v13: fotos do portfólio um pouco maiores, seguem quadradas ---------- */
.marquee__item { width: clamp(250px, 23vw, 330px); }
.marquee__item figcaption { font-size: .88rem; }

/* --- v14: o número fantasma estava sendo decepado ------------------------ */
/* .step tem overflow:hidden e o ghost ficava em top:-26px, ou seja, metade
   dele nascia fora do card. Com a fonte maior do v12 o corte ficou evidente.
   Agora ele mora inteiro dentro do card, atrás do conteúdo. */
.step__ghost {
  top: 12px; right: 18px; bottom: auto;
  font-size: clamp(3.4rem, 5.2vw, 5.4rem);
  line-height: .86; opacity: .18;
}
.step:hover .step__ghost { opacity: .28; transform: translateY(2px); }

/* ==========================================================================
   v15 — A DOBRA DE ESCOPO GANHA IDENTIDADE PRÓPRIA
   Ela vinha colada na dobra de risco e com o MESMO brand-flow, então as duas
   liam como um bloco escuro só (playbook 14.12). Aqui ela deixa de repetir
   o degradê da vizinha: base quase preta, malha de cor em movimento, grade
   técnica ao fundo e cards preenchidos em vez de só contornados.
   ========================================================================== */
.escopo--mesh {
  position: relative; isolation: isolate; overflow: hidden;
  color: var(--color-on-dark);
  background: var(--color-ink);   /* HC: dobra escura e azul, nao marrom */
  padding-top: calc(var(--dobra-y) + 14px); padding-bottom: calc(var(--dobra-y) + 14px);
}
/* malha de cor: três manchas girando em tempos diferentes */
.escopo--mesh::before {
  content: ""; position: absolute; inset: -20%; z-index: 0; pointer-events: none;
  background:
    radial-gradient(30% 34% at 18% 26%, rgba(207,162,91,.50), transparent 62%),
    radial-gradient(28% 32% at 82% 22%, rgba(246,228,172,.34), transparent 64%),
    radial-gradient(34% 38% at 62% 84%, rgba(149,109,59,.55), transparent 66%);
  filter: blur(28px);
  animation: meshDrift 26s ease-in-out infinite alternate;
}
@keyframes meshDrift {
  0%   { transform: translate3d(0,0,0) scale(1); }
  50%  { transform: translate3d(3%,-2%,0) scale(1.08); }
  100% { transform: translate3d(-3%,3%,0) scale(1.04); }
}
/* grade técnica: lê como prancheta de engenharia, não como fundo genérico */
.escopo--mesh::after {
  content: ""; position: absolute; inset: 0; z-index: 0; pointer-events: none;
  background-image:
    linear-gradient(rgba(246,228,172,.055) 1px, transparent 1px),
    linear-gradient(90deg, rgba(246,228,172,.055) 1px, transparent 1px);
  background-size: 64px 64px;
  mask: radial-gradient(120% 90% at 50% 40%, #000 30%, transparent 78%);
  -webkit-mask: radial-gradient(120% 90% at 50% 40%, #000 30%, transparent 78%);
}
.escopo--mesh > .container { position: relative; z-index: 2; }
.escopo--mesh .section-title { color: #fff; }
.escopo--mesh .escopo__nota--light { color: var(--color-on-dark-mute); }

/* --- cards preenchidos, com degradê próprio e realce por posição --------- */
.escopo--mesh .escopo__card {
  background:
    linear-gradient(158deg, rgba(207,162,91,.22) 0%, rgba(149,109,59,.14) 46%, rgba(10,8,6,.72) 100%);
  box-shadow: inset 0 1px 0 rgba(255,255,255,.10), 0 10px 30px rgba(12,8,2,.45);
}
.escopo--mesh .escopo__card:nth-child(3n+2) {
  background: linear-gradient(158deg, rgba(246,228,172,.22) 0%, rgba(207,162,91,.12) 48%, rgba(10,8,6,.72) 100%);
}
.escopo--mesh .escopo__card:nth-child(3n+3) {
  background: linear-gradient(158deg, rgba(149,109,59,.30) 0%, rgba(207,162,91,.10) 50%, rgba(10,8,6,.74) 100%);
}
/* número de ordem, que também separa esta dobra da de risco */
.escopo--mesh .escopo__card .escopo__body::before {
  content: "0" counter(escopo); counter-increment: escopo;
  display: block; font-family: var(--font-display); font-weight: 700;
  font-size: .82rem; letter-spacing: .16em; color: var(--brand-light);
  opacity: .75; margin-bottom: 12px;
}
.escopo--mesh .escopo__grid { counter-reset: escopo; }
.escopo--mesh .escopo__card:hover {
  transform: translateY(-10px) scale(1.02);
  box-shadow: inset 0 1px 0 rgba(255,255,255,.18), 0 26px 60px rgba(12,8,2,.6),
              0 0 0 1px rgba(246,228,172,.30);
}
.escopo--mesh .escopo__mark { opacity: .10; }
.escopo--mesh .escopo__card:hover .escopo__mark { opacity: .24; }

/* ==========================================================================
   v16 — HERO CENTRALIZADO
   O texto deixa de morar na coluna esquerda, então o scrim também muda: era
   uma faixa forte à esquerda que abria para a direita, e vira um véu uniforme
   com vinheta central. Sem isso o texto centralizado cairia justamente na
   parte clara da fachada.
   ========================================================================== */
.hero--flat .hero__content {
  text-align: center;
  max-width: min(1000px, 100%);
  margin-inline: auto;
}
.hero--flat .hero__headline {
  max-width: 22ch; margin-inline: auto;
}
.hero--flat .hero__sub {
  max-width: 62ch; margin-inline: auto;
  font-size: clamp(.95rem, 1.02vw, 1.04rem);   /* menor, como pedido */
  line-height: 1.66;
}
.hero--flat .eyebrow--badge { display: inline-flex; justify-content: center; }
.hero--flat .hero__cta { justify-content: center; }
.hero--flat .hero__cue { justify-content: center; margin-inline: auto; }
.hero--flat .hero__cue::before { margin-inline: auto; }

/* véu uniforme + vinheta, no lugar da faixa lateral */
.hero--photo .hero__overlay {
  background:
    radial-gradient(78% 76% at 50% 46%, rgba(21,13,3,.92) 0%, rgba(21,13,3,.86) 46%, rgba(10,8,6,.66) 78%, rgba(10,8,6,.52) 100%),
    linear-gradient(180deg, rgba(10,8,6,.72) 0%, rgba(10,8,6,.34) 38%, rgba(10,8,6,.70) 100%);
}
.hero--photo .hero__bg img { filter: saturate(.95) contrast(1.0) brightness(.80); }
.hero--photo .hero__overlay::after {
  background: radial-gradient(38% 50% at 50% 42%, rgba(207,162,91,.16), transparent 72%);
}
/* o painel desfocado acompanha o texto: passa a ser centrado */
.hero--flat .hero__content::before {
  left: 50%; right: auto; transform: translateX(-50%);
  width: min(1120px, 96%); top: -28px; bottom: -28px;
  background: radial-gradient(62% 70% at 50% 50%, rgba(10,8,6,.72) 0%, rgba(10,8,6,.42) 62%, transparent 100%);
  filter: blur(22px);
}
@media (max-width: 900px) {
  .hero--flat .hero__content::before { width: 118%; }
}

/* ==========================================================================
   v17
   ========================================================================== */

/* quebras fixas do H1 só a partir de 900px: abaixo disso o texto reflui
   sozinho, senão a quebra forçada gera linha órfã no celular */
.br-lg { display: none; }
@media (min-width: 900px) { .br-lg { display: inline; } }
.hero--flat .hero__headline { max-width: none; }

/* --- Respiro entre dobras mais curto ainda ------------------------------- */
:root { --dobra-y: clamp(38px, 3.8vw, 56px); }
.hero--flat { padding: calc(var(--header-h) + 44px) 0 48px; }
.gallery__head, .form-head { margin-bottom: 22px; }
.steps { margin-top: 26px; }
.escopo__grid { margin-top: 26px; }
.objections__grid { margin-top: 24px; }
.gallery__cta, .gestao__cta, .experts__cta, .financing__cta { margin-top: 20px; }
.brand-divider, .brand-divider__mark { height: 14px; }
.section-lead { margin-bottom: 0; }
.hero__cue { margin-top: 26px; }

/* --- v18: as três linhas do H1 precisam CABER, senão o navegador requebra -- */
/* A coluna era 1000px e a fonte ia a 58px: a linha mais longa ("sob controle
   e prazo para começar a faturar.") não cabia e virava duas. Coluna mais
   larga + corpo um pouco menor fazem a sequência pedida fechar em 3 linhas. */
.hero--flat .hero__content { max-width: min(1200px, 100%); }
.hero--flat .hero__headline { font-size: clamp(30px, 3.55vw, 49px); }
.hero--flat .hero__sub { max-width: 58ch; }

/* ==========================================================================
   v19 — A FOTO APARECE, O TEXTO CONTINUA LEGÍVEL
   Antes: véu radial forte (.92 no centro) cobrindo a fachada inteira. A foto
   quase sumia. Agora: a imagem clareia bastante e o escurecimento passa a ser
   uma elipse justa ATRÁS DO TEXTO, bem desfocada, mais sombra no próprio
   glifo. Assim o contraste vem de onde as letras estão, não da tela toda.
   ========================================================================== */
.hero--photo .hero__bg img {
  filter: saturate(1.06) contrast(1.06) brightness(1.02);
}
/* véu geral bem mais leve: só assenta a imagem, não a apaga */
.hero--photo .hero__overlay {
  background:
    radial-gradient(86% 82% at 50% 46%, rgba(10,8,6,.50) 0%, rgba(10,8,6,.42) 52%, rgba(21,13,3,.30) 80%, rgba(10,8,6,.26) 100%),
    linear-gradient(180deg, rgba(21,13,3,.58) 0%, rgba(21,13,3,.10) 34%, rgba(21,13,3,.52) 100%);
}
.hero--photo .hero__overlay::after {
  background: radial-gradient(34% 44% at 50% 40%, rgba(207,162,91,.14), transparent 74%);
}
/* o escurecimento que garante leitura vive colado ao texto */
.hero--flat .hero__content::before {
  left: 50%; transform: translateX(-50%);
  width: min(1180px, 98%); top: -34px; bottom: -34px;
  background:
    radial-gradient(52% 46% at 50% 34%, rgba(14,9,2,.90) 0%, rgba(14,9,2,.62) 58%, transparent 100%),
    radial-gradient(46% 34% at 50% 74%, rgba(14,9,2,.80) 0%, rgba(14,9,2,.44) 62%, transparent 100%);
  filter: blur(30px);
}
/* sombra no glifo: resolve o pixel claro isolado sem escurecer a foto */
.hero__headline { text-shadow: 0 2px 10px rgba(14,9,2,.92), 0 0 34px rgba(14,9,2,.7); }
.hero--flat .hero__sub { text-shadow: 0 1px 8px rgba(14,9,2,.95), 0 0 22px rgba(14,9,2,.75); }
.hero__cue { text-shadow: 0 1px 8px rgba(14,9,2,.9); }
.hero--photo .eyebrow--badge { background: rgba(10,8,6,.72); backdrop-filter: blur(4px); }

/* --- v19.1: o acento e o eyebrow reprovaram; aperta só o foco atrás do texto */
.hero--photo .hero__bg img { filter: saturate(1.05) contrast(1.05) brightness(.93); }
.hero--flat .hero__content::before {
  background:
    radial-gradient(50% 44% at 50% 33%, rgba(12,8,2,.95) 0%, rgba(12,8,2,.78) 56%, transparent 100%),
    radial-gradient(44% 32% at 50% 73%, rgba(12,8,2,.88) 0%, rgba(12,8,2,.56) 62%, transparent 100%);
  filter: blur(26px);
}
.hero--photo .eyebrow--badge { background: rgba(14,9,2,.88); }

/* --- v19.2: acento do H1 estava em 2,87 contra mínimo 3,0. Ajuste fino no
       foco atrás do texto (a paleta do kit não permite clarear o ciano). --- */
.hero--flat .hero__content::before {
  background:
    radial-gradient(50% 45% at 50% 33%, rgba(12,8,2,.98) 0%, rgba(12,8,2,.86) 58%, transparent 100%),
    radial-gradient(44% 33% at 50% 73%, rgba(12,8,2,.90) 0%, rgba(12,8,2,.60) 64%, transparent 100%);
}

/* --- v19.3: a elipse de cima cobria 50% da largura, mas a 1a linha do H1
       tem quase 1200px: as pontas dela caíam fora do foco. Alargada. ------- */
.hero--flat .hero__content::before {
  background:
    radial-gradient(68% 46% at 50% 33%, rgba(12,8,2,.97) 0%, rgba(12,8,2,.84) 62%, transparent 100%),
    radial-gradient(48% 34% at 50% 74%, rgba(12,8,2,.90) 0%, rgba(12,8,2,.58) 64%, transparent 100%);
}

/* ==========================================================================
   AJUSTES PEDIDOS (03/08)
   ========================================================================== */

/* --- 1. O MARCADOR PASSA A SER A CASA, NAO A JANELA ----------------------
   O kit entrega dois motivos: a casa (--mark-full) e a janela de 4 folhas
   (--mark-band). A janela e otima TILEADA, como regua sob titulo e como
   divisoria entre dobras. Sozinha, a 11px, ela vira "quatro quadradinhos" e
   nao le como HCP. Entao: marcador PONTUAL = casa; faixa TILEADA = janela,
   que e onde ela de fato funciona. */
/* HC: aqui a regra INVERTE em relacao a HCP. A casa da HCP lia bem a 13px; o
   monograma da HC (torres + arcos + C) vira borrao azul nesse tamanho, e o kit
   ja registra isso na nota `marcador`. Todo marcador PONTUAL e a engrenagem
   (--mark-dot), que le inteira a 1em. O monograma so aparece grande, na
   textura da dobra (.brand-mono). */
.eyebrow::before,
.escopo__mark,
.marquee__item figcaption::before,
.financing__specs li::before,
.gestao__list li::before {
  -webkit-mask-image: var(--mark-dot);
          mask-image: var(--mark-dot);
}
/* a engrenagem e 1:1 */
.eyebrow::before,
.marquee__item figcaption::before { width: 13px; height: 13px; }
.escopo__mark { width: 19px; height: 19px; }
.financing__specs li::before { width: 11px; height: 11px; }
.gestao__list li::before { width: 17px; height: 17px; }

/* --- 2. ICONE DO PASSO COM O DEGRADE ANIMADO DOS BOTOES ------------------
   Mesmo gradiente e mesmo btnFlow do .btn--accent, para o "Como funciona"
   pulsar na mesma frequencia do resto da pagina. A cor do traco vira o ink
   (igual ao botao ambar): branco sobre ambar nao passa contraste. */
.step__icon {
  background: none;
  background-image: linear-gradient(96deg,
    var(--brand-2) 0%, var(--brand) 38%, var(--brand-light) 62%, var(--brand) 100%);
  background-size: 220% 100%;
  animation: btnFlow 6s ease-in-out infinite alternate;
  color: var(--color-ink);
}
.step:hover .step__icon { animation-duration: 3s; }

/* --- 3. DOBRA DO CASO: VIDEO LATERALIZADO --------------------------------
   O video e vertical (1080x1920, camera de celular). Em vez de encaixar a
   forca num quadro 16:9, a dobra usa o retrato como coluna e o texto ao
   lado, que e o unico arranjo em que ele nao aparece com tarja preta. */
.caso { position: relative; padding: clamp(64px, 8vw, 104px) 0; }
.caso__inner {
  display: grid; align-items: center;
  grid-template-columns: 1.02fr 0.98fr;
  gap: clamp(30px, 5vw, 68px);
}
.caso__copy { position: relative; z-index: 1; }
.caso__lead { color: var(--color-on-dark-mute); font-size: clamp(15px, 1.5vw, 17px);
  line-height: 1.75; margin-bottom: 18px; max-width: 54ch; }
.caso__list { display: flex; flex-direction: column; gap: 12px; margin: 24px 0 30px; }
.caso__list li {
  position: relative; padding-left: 30px;
  color: var(--color-on-dark); font-size: clamp(14px, 1.4vw, 15.5px); line-height: 1.55;
}
.caso__list li::before {
  content: ""; position: absolute; left: 0; top: 3px; width: 19px; height: 16px;
  background: var(--brand);
  -webkit-mask: var(--mark-full) center/contain no-repeat;
          mask: var(--mark-full) center/contain no-repeat;
}
.caso__col { justify-self: center; width: 100%; max-width: 400px; }
.caso__media {
  position: relative; width: 100%;
  padding: 3px;
  background: linear-gradient(135deg, var(--color-primary), var(--color-primary-strong));
  clip-path: none;   /* HC: marca de angulo reto, sem chanfro */
}
.caso__media video {
  display: block; width: 100%; height: auto; aspect-ratio: 9 / 16;
  object-fit: cover; background: var(--color-ink);
  clip-path: none;   /* HC: marca de angulo reto, sem chanfro */
}
.caso__legenda {
  margin-top: 14px; text-align: center;
  font-size: 12.5px; letter-spacing: 0.04em; color: var(--color-on-dark-mute);
}
@media (max-width: 900px) {
  .caso__inner { grid-template-columns: 1fr; gap: 34px; }
  .caso__col { max-width: 330px; order: 1; }
  .caso__copy { order: 2; }
}

/* Movimento reduzido: o degrade dos icones e o video param. */
@media (prefers-reduced-motion: reduce) {
  .step__icon { animation: none; }
  .caso__media video { display: block; }
}

/* ==========================================================================
   AJUSTES PEDIDOS (03/08, 2a rodada)
   ========================================================================== */

/* --- 1. LOGO ANIMADA (cabecalho e rodape) --------------------------------
   Duas camadas do mesmo canvas: a casa e o resto do lockup. A casa e
   "construida" por um wipe da esquerda para a direita, que e a ordem em que
   a linha se desenha de verdade (perna -> telhado -> descida). O lettering
   entra depois, em fade. So CSS: identidade que depende de JS some em print
   e em PDF, que e como o cliente costuma abrir (playbook 15.3). */



/* o wrapper virou o filho direto do brand: as regras de tamanho apontavam
   para o <img>, que agora esta um nivel abaixo */
.site-header__brand img { height: auto; width: 100%; }
.site-footer__logo img { height: auto; width: 100%; }

/* --- 2. A REGUA DO ACENTO SAI DE BAIXO DA LINHA SEGUINTE -----------------
   O ::after era absolute sobre o inline inteiro: quando o acento quebrava em
   duas linhas, a regua caia POR CIMA da linha de baixo e cortava a palavra.
   Underline por background com box-decoration-break resolve, porque cada
   fragmento de linha ganha a sua propria regua, sempre logo abaixo dela. */
.hero__headline .accent::after,
.section-title .accent::after { content: none; }

.hero__headline .accent,
.section-title .accent {
  position: relative;
  padding-bottom: .13em;
  background-image: linear-gradient(var(--brand-ink), var(--brand-ink));
  background-repeat: no-repeat;
  background-size: 100% .09em;
  background-position: 0 100%;
  -webkit-box-decoration-break: clone;
          box-decoration-break: clone;
}

/* --- 3. DOBRA DO CASO: ESTAMPARIA DE LINHAS + DEGRADE ANIMADO ------------
   Malha de linhas horizontais e verticais por cima do brand-flow (que ja
   anima o degrade). A malha anda devagar em diagonal, para a dobra nao ficar
   estatica, e some nas bordas por mascara, senao vira quadriculado de fundo
   de planilha. */
.caso { overflow: hidden; }
.caso::after {
  content: ""; position: absolute; inset: -60px; z-index: 0; pointer-events: none;
  background-image:
    repeating-linear-gradient(90deg, rgba(246,228,172,.14) 0 1px, transparent 1px 78px),
    repeating-linear-gradient(0deg,  rgba(246,228,172,.10) 0 1px, transparent 1px 78px);
  animation: casoMalha 26s linear infinite;
  -webkit-mask-image: radial-gradient(120% 90% at 50% 45%, #000 40%, transparent 88%);
          mask-image: radial-gradient(120% 90% at 50% 45%, #000 40%, transparent 88%);
}
@keyframes casoMalha {
  from { background-position: 0 0, 0 0; }
  to   { background-position: 78px 78px, 78px 78px; }
}
.caso__inner { position: relative; z-index: 1; }

/* sem o checklist a coluna encurtou: o texto passa a centralizar com o video */
.caso__inner { align-items: center; }
.caso__copy { display: flex; flex-direction: column; justify-content: center; }
.caso__lead { margin-bottom: 16px; max-width: 46ch; }
.caso__lead:last-of-type { margin-bottom: 30px; }

/* --- 4. O VIDEO PULSA ----------------------------------------------------
   Mesma gramatica do ringPulse dos botoes: um anel da marca que cresce e
   some, mais uma respiracao leve na moldura. */
.caso__media { animation: casoRespira 4.2s ease-in-out infinite; }
@keyframes casoRespira {
  0%, 100% { transform: scale(1);     box-shadow: 0 18px 50px rgba(10,8,6,.45); }
  50%      { transform: scale(1.018); box-shadow: 0 26px 70px rgba(207,162,91,.34); }
}
.caso__media::after {
  content: ""; position: absolute; inset: 0; z-index: -1;
  background: var(--color-primary);
  animation: casoAnel 2.9s ease-out infinite;
  clip-path: none;   /* HC: marca de angulo reto, sem chanfro */
}
@keyframes casoAnel {
  0%   { inset: 0;     opacity: .5; }
  70%  { inset: -18px; opacity: 0; }
  100% { inset: -18px; opacity: 0; }
}

@media (prefers-reduced-motion: reduce) {
  .caso::after, .caso__media, .caso__media::after { animation: none; }
}

/* A regua do .section-title nasce alinhada a esquerda. Nas dobras em que o
   titulo e centralizado (formulario e popup) ela ficava sozinha na margem,
   parecendo sujeira. Centraliza junto. */
.form-head .section-title::after,
.lead-popup .section-title::after { margin-inline: auto; }

/* A regua do acento so cabe se a linha tiver folga. Com line-height 1.14 ela
   ou encostava na descendente do "q" (padding curto) ou invadia a linha de
   baixo (padding longo). O certo e abrir a entrelinha dos titulos que levam
   acento: 1.14 -> 1.26 resolve os dois casos e nao muda o tamanho da fonte. */
.hero__headline, .section-title { line-height: 1.26; }

/* --- 5. MOLDURA DO VIDEO COM A SILHUETA DA CASA, DE TOPO RETO ------------
   Pedido do cliente: a forma da casa da logo, mas com o telhado quadrado em
   vez de pontudo. O angulo NAO foi chutado: `_build/medir-telhado.py` mediu a
   aba do simbolo do kit e ela e exatamente 45 graus. Num quadro 9:16, manter
   45 graus na tela custa 16/9 de largura para cada 1 de altura, entao um
   chanfro de 12% da altura come 21.3% da largura de cada lado. Sem isso o
   telhado sai deitado e a forma so LEMBRA uma casa em vez de ser a da HCP. */
.caso__media,
.caso__media video,
.caso__media::after {
  clip-path: none;   /* HC: marca de angulo reto, sem chanfro */
}
/* a moldura tem 3px de sobra; o video herda a mesma silhueta e a diferenca
   vira o contorno ambar, igual ao par usado na foto do responsavel */
.caso__media { padding: 3px; }

/* ==========================================================================
   AJUSTES PEDIDOS (03/08, 3a rodada)
   ========================================================================== */

/* --- 6. BOTAO COM DUAS CORES DE VERDADE ----------------------------------
   O degrade antigo era ambar-com-ambar (brand-2 so no 0%, que com o
   background-size raramente entrava em cena), entao lia como cor chapada.
   Agora a terracota entra em BANDA, varrendo de uma borda a outra, e o
   contraste entre as duas cores do manual fica visivel.

   ⚠ Por que a terracota nao ocupa metade do botao: o rotulo e escuro
   (--color-ink), e escuro sobre terracota da 3.3:1, abaixo do minimo. Sobre
   ambar da 7.4:1. Entao a terracota fica nas pontas, varrendo, e o miolo
   onde o texto mora continua ambar. Duas cores visiveis sem perder o rotulo. */
.btn--accent, .site-header__cta {
  background-image: linear-gradient(100deg,
    var(--brand-2) 0%, var(--brand) 24%, var(--brand-light) 48%,
    var(--brand) 72%, var(--brand-2) 100%);
  background-size: 260% 100%;
  animation: btnFlow 5s ease-in-out infinite alternate, btnPulse 2.8s ease-in-out infinite;
}
.btn--accent::before, .site-header__cta::before {
  background: linear-gradient(100deg,
    var(--brand-2) 0%, var(--brand) 26%, var(--brand-light) 50%,
    var(--brand) 74%, var(--brand-2) 100%);
  background-size: 260% 100%;
  animation: btnFlow 5s ease-in-out infinite alternate;
}
.btn--accent:hover::before, .site-header__cta:hover::before {
  background: linear-gradient(100deg, var(--brand-2), var(--brand) 55%, var(--brand-2));
}

/* --- 7. "POR DENTRO DE UMA ENTREGA": DEGRADE MAIS FORTE E MAIS MOVIMENTO --
   A dobra usava o brand-flow padrao, que e discreto de proposito nas dobras
   de formulario. Aqui ela e vitrine, entao ganha degrade proprio, com as tres
   cores da marca em oposicao, mais uma varredura diagonal que atravessa a
   dobra e um brilho que respira atras do video. */
.caso {
  background:
    radial-gradient(78% 108% at 10% 4%,  rgba(207,162,91,.46), transparent 58%),
    radial-gradient(72% 104% at 94% 26%, rgba(149,109,59,.62), transparent 62%),
    radial-gradient(64% 96%  at 46% 106%, rgba(246,228,172,.34), transparent 60%),
    linear-gradient(146deg, var(--color-ink) 0%, var(--color-ink-3) 52%, var(--color-ink-2) 100%);
  background-size: 200% 200%, 210% 210%, 190% 190%, 100% 100%;
  animation: casoFlow 16s ease-in-out infinite alternate;
}
@keyframes casoFlow {
  0%   { background-position:   0% 0%, 100% 20%, 50% 100%, 0 0; }
  50%  { background-position:  55% 40%, 45%  0%, 10%  60%, 0 0; }
  100% { background-position: 100% 90%,  0% 70%, 90%  20%, 0 0; }
}
/* varredura diagonal: a luz que corre pela dobra */
.caso__brilho {
  content: ""; position: absolute; inset: -30% -10%; z-index: 0; pointer-events: none;
  background: linear-gradient(104deg,
    transparent 34%, rgba(246,228,172,.20) 47%, rgba(207,162,91,.30) 52%,
    rgba(246,228,172,.18) 57%, transparent 70%);
  background-size: 260% 100%;
  animation: casoVarre 7.5s ease-in-out infinite;
}
@keyframes casoVarre {
  0%   { background-position: 130% 0; opacity: 0; }
  18%  { opacity: 1; }
  82%  { opacity: 1; }
  100% { background-position: -30% 0; opacity: 0; }
}

/* --- 8. CONTRASTE DO TEXTO DA DOBRA -------------------------------------
   O corpo usava --color-on-dark-mute (var(--color-on-dark-mute)) sobre um fundo que ficou mais
   saturado: ficou apagado. Sobe para o creme cheio e ganha um pouco de peso. */
.caso__lead {
  color: var(--color-primary-soft);
  font-weight: 400;
  text-shadow: 0 1px 12px rgba(28,18,3,.55);
}
.caso .section-title--light { color: var(--color-bg-soft); }
.caso .eyebrow--light { color: var(--brand-light); }
.caso__legenda { color: #EDE3CF; }

@media (prefers-reduced-motion: reduce) {
  .caso, .caso__brilho { animation: none; }
}

/* ==========================================================================
   AJUSTES PEDIDOS (03/08, 4a rodada)
   ========================================================================== */

/* --- 9. ESTAMPARIA REUTILIZAVEL -----------------------------------------
   A malha de linhas era exclusiva da dobra do caso. Virou classe, porque a
   dobra do formulario pediu a mesma coisa e duplicar o codigo faz as duas
   divergirem na primeira alteracao. */
.malha {
  position: absolute; inset: -60px; z-index: 0; pointer-events: none;
  background: var(--brand-light);
  opacity: .10;
  -webkit-mask:
    var(--stamp-grade) left top/150px repeat,
    radial-gradient(120% 90% at 50% 45%, #000 40%, transparent 88%);
  -webkit-mask-composite: source-in;
  mask:
    var(--stamp-grade) left top/150px repeat,
    radial-gradient(120% 90% at 50% 45%, #000 40%, transparent 88%);
  mask-composite: intersect;
  animation: casoMalha 26s linear infinite;
}
/* a dobra do caso passa a usar a classe; o ::after proprio sai de cena */
.caso::after { content: none; }
.viability { position: relative; overflow: hidden; }

/* --- 10. HERO SEM A MANCHA ATRAS DO TEXTO -------------------------------
   O clone resolvia o contraste do H1 com uma elipse escura e desfocada atras
   do texto (rgba .97, blur 26px) mais duas sombras de texto empilhadas. Isso
   le como borrao sobre a foto, e foi o que o cliente apontou.

   A troca: a foto passa a ser graduada por INTEIRO (uma graduacao uniforme le
   como tratamento de imagem; uma elipse le como sujeira), o texto ganha peso
   proprio, e a sombra cai para um contorno leve, so para segurar a borda da
   letra sobre as partes claras da vitrine. */
.hero--flat .hero__content::before { content: none; }

/* brightness calibrado para a foto do hero. A area de lazer (foto de dia,
   deck claro e pastilha) pedia .60; o render de fachada e uma cena de fim
   de tarde e a .60 fechava a dobra em preto. Esta e a ULTIMA declaracao de
   filtro do hero na folha (existem outras 4 acima); mexer aqui. */
.hero--photo .hero__bg img { filter: saturate(1.0) contrast(1.02) brightness(.88); }
.hero--photo .hero__overlay {
  background:
    linear-gradient(100deg, rgba(28,18,3,.86) 0%, rgba(28,18,3,.74) 46%, rgba(28,18,3,.60) 100%),
    linear-gradient(180deg, rgba(28,18,3,.70) 0%, rgba(28,18,3,.28) 38%, rgba(28,18,3,.78) 100%);
}

/* o texto passa a se sustentar sozinho: mais peso e menos sombra */
.hero__headline {
  font-weight: 700;
  letter-spacing: -0.02em;
  text-shadow: 0 1px 3px rgba(14,9,2,.55);
}
.hero--flat .hero__sub {
  color: var(--color-bg-mute);
  font-weight: 500;
  text-shadow: 0 1px 3px rgba(14,9,2,.5);
}
.hero__cue { text-shadow: 0 1px 3px rgba(14,9,2,.5); }
/* o badge ja tinha fundo proprio; so firma a borda */
.hero--photo .eyebrow--badge {
  background: rgba(20,13,2,.78);
  border: 1px solid rgba(246,228,172,.30);
}

/* --- 11. ENTRELINHA DOS TITULOS DE VOLTA PARA PERTO ----------------------
   Eu tinha aberto para 1.26 para caber a regua do acento. Ficou arejado
   demais no H2 do formulario, que tem 3 linhas. Aperta para 1.18 e a regua
   encolhe junto, senao ela volta a encostar na linha de baixo.

   A conta: com line-height L, sobra (L-1)/2 em de folga abaixo de cada linha.
   Em 1.18 isso da .09em. A regua ocupa do .08em ao .155em, entao ainda cabe
   na folga, e continua abaixo da descendente do "q" (~.21em da base). */
.hero__headline, .section-title { line-height: 1.18; }
.hero__headline .accent,
.section-title .accent {
  padding-bottom: .08em;
  background-size: 100% .075em;
}

/* ==========================================================================
   AJUSTES DA HC (o que a estrutura clonada da HCP nao previa)
   ========================================================================== */

/* --- 1. RESPONSAVEL TECNICO SEM RETRATO ----------------------------------
   O acervo do cliente so tem selfie de canteiro, e selfie esticada para
   retrato reprova (playbook 15.6). No lugar da foto entra a ASSINATURA
   PESSOAL do kit (nome + titulo + CREA), que e asset real da marca, sobre a
   grade da estamparia. Quando o retrato chegar, volta o .experts__photo e
   esta dobra sai sem mexer em mais nada. */
.experts--sem-foto .experts__inner { align-items: center; }
.experts__assinatura {
  position: relative;
  display: flex; align-items: center; justify-content: center;
  padding: clamp(30px, 5vw, 56px);
  background: var(--color-bg-soft);
  border: 1px solid var(--color-line);
  border-radius: var(--radius-card);
  overflow: hidden;
}
.experts__assinatura::before {           /* a grade do kit, bem apagada */
  content: ""; position: absolute; inset: 0; z-index: 0; pointer-events: none;
  background: var(--brand); opacity: .07;
  -webkit-mask: var(--stamp-grade) center/150px repeat;
  mask: var(--stamp-grade) center/150px repeat;
}
.experts__assinatura::after {            /* regua da marca, no rodape do quadro */
  content: ""; position: absolute; left: 0; right: 0; bottom: 0; height: 4px;
  background: linear-gradient(90deg, var(--brand), var(--brand-light), var(--brand));
}
.experts__assinatura img {
  position: relative; z-index: 1;
  width: 100%; max-width: 340px; height: auto;
}
@media (max-width: 860px) {
  .experts--sem-foto .experts__inner { grid-template-columns: 1fr; }
  .experts__assinatura { padding: 34px 24px; }
}

/* --- 2. O CASO EM DUAS FOTOS, NAO EM VIDEO -------------------------------
   A HCP tinha video vertical do cartorio. A HC nao tem video de obra, entao a
   dobra mostra a MESMA obra em dois momentos (estrutura e entrega), empilhados
   com deslocamento: le como antes e depois sem precisar escrever "antes" e
   "depois", que a HC nao pode provar foto a foto. */
.caso__media--par {
  display: grid; gap: 14px; padding: 0; background: none; animation: none;
}
.caso__media--par img {
  width: 100%; height: auto; display: block;
  border-radius: var(--radius-card);
  border: 3px solid var(--brand);
  box-shadow: var(--shadow-lg);
}
.caso__media--par img:first-child { transform: translateX(-4%) rotate(-.6deg); }
.caso__media--par img:last-child  { transform: translateX(4%) rotate(.6deg); }
@media (max-width: 860px) {
  .caso__media--par img:first-child,
  .caso__media--par img:last-child { transform: none; }
}
.caso__col { max-width: 460px; }

/* --- 3. STATBAR: o rotulo do 3o item e longo -----------------------------
   "engenheiro responsavel" nao cabe na mesma linha do numero como cabia um
   "%" ou um "anos", entao o <small> quebra e alinha pela base. */
.statbar__num { display: flex; align-items: baseline; flex-wrap: wrap; gap: 2px 6px; }
.statbar__num small { margin-left: 0; line-height: 1.2; }

/* --- 4. Logo no header mobile --------------------------------------------
   A logo da HC e EMPILHADA, entao ela ocupa altura onde a da HCP ocupava
   largura: a 104px ela come um terco da tela de 393px e briga com a nav. */
@media (max-width: 620px) {
}

/* --- 8. ACENTO EM DOBRA ESCURA -------------------------------------------
   O azul cheio da marca (#CFA25B) tem 7.4:1 contra BRANCO, e o kit registra
   isso, mas contra o ink das dobras escuras ele cai para ~2:1. Resultado: o
   acento apagava justamente onde a promessa esta (titulo do risco, do escopo,
   do caso e do formulario). Nas dobras escuras o acento passa a ser o
   --brand-light, que e o cores.brand_claro do kit, como manda o playbook na
   secao "Cor da marca escura". Em dobra clara o acento continua a cor cheia.
   A regua do acento e background-image, entao ela troca junto. */
.section-title--light .accent {
  color: var(--brand-light);
  background-image: linear-gradient(var(--brand-light), var(--brand-light));
}

/* Mesmo motivo, mesma cor: o eyebrow das dobras escuras (escopo e formulario)
   tambem estava no azul cheio e sumia no fundo. A dobra do caso ja tinha o
   conserto pontual (regra ".caso .eyebrow--light"), o resto nao tinha. */
.escopo .eyebrow--light,
.viability .eyebrow--light { color: var(--brand-light); }

/* ==========================================================================
   BLOCO 9 — COMPONENTES PORTADOS DA MOURA (dobras e animacoes)
   Pedido do Gabriel: seguir as dobras e as animacoes da LP da Moura
   (construcao-financiada-moura.pages.dev), com o material da HC.
   Entram aqui: hero sticky com trilha de rolagem, proof bar de 4 contadores,
   timeline vertical com preenchimento, galeria em GRADE (nao marquee),
   divisoria de motivo tileado, comparativo de 2 colunas e FAQ acordeao.
   Re-skinado para os tokens do kit da HC (azul #CFA25B e aco): a Moura e bronze
   e creme, e cor da Moura nesta pagina seria marca de outro cliente.
   ========================================================================== */

/* --- 9.1 HERO STICKY -------------------------------------------------------
   A Moura usa uma trilha de 260vh com um bloco sticky dentro, e o curso da
   rolagem move o currentTime de um video da obra sendo construida.
   A HC NAO TEM VIDEO DE OBRA, e o acervo de canteiro que existe (Residencia
   Moises, 377 fotos) nao e sequencia de ponto fixo: o angulo salta a cada foto
   e viraria slideshow, nao construcao. O README da propria Moura manda "sem
   video, recolher a trilha".
   Solucao: mantem a MECANICA (trilha + sticky + progresso pela rolagem), e o
   que a rolagem move e a FOTO, num avanco lento de escala. O lead sente a dobra
   viva sem a gente inventar obra que a HC nao tem.
   A variavel --hero-p (0 a 1) e escrita pelo JS. */
.hero--track { padding: 0; }
.hero--track .hero__scroll-track { height: 200vh; position: relative; }
.hero--track .hero__sticky {
  position: sticky; top: 0;
  height: 100vh; width: 100%;
  overflow: hidden;
  display: grid; place-items: center;
  isolation: isolate;
}
.hero--track .hero__bg { position: absolute; inset: 0; z-index: -2; overflow: hidden; }
.hero--track .hero__bg img {
  width: 100%; height: 100%; object-fit: cover;
  transform: scale(calc(1.12 - var(--hero-p, 0) * 0.12));
  transform-origin: 50% 62%;
  will-change: transform;
}
.hero--track .hero__content {
  position: relative; z-index: 2;
  max-width: 920px; text-align: center;
  transform: translateY(calc(var(--hero-p, 0) * -26px));
}

/* A trilha so existe onde sobra curso de rolagem. Em tela baixa ou no celular
   ela recolhe, senao o conteudo nao cabe nos 100vh e o overflow:hidden do
   sticky CLIPA os CTAs em silencio (o erro que a Meninea pagou, jul/2026). */
@media (max-height: 780px), (max-width: 900px) {
  .hero--track .hero__scroll-track { height: auto; }
  .hero--track .hero__sticky {
    position: static; height: auto;
    padding: calc(var(--header-h) + 52px) 0 62px;
  }
  .hero--track .hero__bg img { transform: none; }
  .hero--track .hero__content { transform: none; }
}
@media (prefers-reduced-motion: reduce) {
  .hero--track .hero__bg img { transform: none; }
  .hero--track .hero__content { transform: none; }
}

/* --- 9.2 PROOF BAR DE 4 CONTADORES ----------------------------------------
   Substitui a statbar de 3. O 4o item e palavra, nao numero: e a gramatica da
   Moura para dizer gestao completa sem inventar metrica que a HC nao tem. */
.proof {
  background: var(--color-ink); color: #fff;
  padding: 58px 0; position: relative; z-index: 1;
  border-bottom: 1px solid rgba(255,255,255,.08);
}
.proof::before {
  content: ""; position: absolute; inset: 0 0 auto 0; height: 2px;
  background: linear-gradient(90deg, transparent, var(--brand-light) 50%, transparent);
  opacity: .7;
}
.proof__grid { display: grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap: 30px 20px; }
@media (min-width: 860px) { .proof__grid { grid-template-columns: repeat(4, minmax(0,1fr)); gap: 24px; } }
.proof__item { text-align: center; padding: 10px; position: relative; }
.proof__num {
  font-family: var(--font-display);
  font-size: clamp(1.9rem, 1.3rem + 2.4vw, 3rem);
  font-weight: 700; color: var(--brand-light);
  line-height: 1; letter-spacing: -0.02em;
  display: inline-flex; align-items: baseline; justify-content: center; max-width: 100%;
}
.proof__num em { font-style: normal; font-size: .7em; margin-right: 2px; opacity: .85; }
.proof__num small { font-size: .42em; margin-left: 6px; font-weight: 600; letter-spacing: .02em; opacity: .85; }
.proof__num--word { font-size: clamp(1.05rem, .8rem + 1vw, 1.5rem); gap: 8px; flex-wrap: wrap; color: #fff; }
.proof__arrow { color: var(--brand-light); font-weight: 400; }
.proof__label { margin-top: 10px; font-size: .875rem; color: rgba(255,255,255,.75); font-weight: 500; }

/* separador entre os itens: a engrenagem do kit tileada, no lugar da linha seca */
.proof__item + .proof__item::before {
  content: ""; position: absolute; left: -10px; top: 12px; bottom: 12px; width: 3px;
  background: var(--brand-light); opacity: .35;
  -webkit-mask: var(--mark-band) center/100% auto repeat-y;
          mask: var(--mark-band) center/100% auto repeat-y;
}
@media (max-width: 859px) { .proof__item:nth-child(odd)::before { display: none; } }

/* --- 9.3 TIMELINE VERTICAL COM PREENCHIMENTO ------------------------------
   Substitui a grade de 4 cards do passo a passo. O trilho preenche conforme
   cada etapa acende e o numero acende junto: e o que faz o passo a passo ser
   lido como caminho, e nao como quatro caixas soltas. */
.process--timeline { background: var(--color-ink); color: #fff; }
.process--timeline .section-title { color: #fff; }
.process--timeline .section-lead { color: rgba(255,255,255,.72); }
.timeline { position: relative; margin-top: 3rem; padding-left: 8px; display: grid; gap: clamp(18px, 3vw, 30px); }
.timeline::before {
  content: ""; position: absolute; left: 33px; top: 20px; bottom: 20px;
  width: 2px; background: rgba(255,255,255,.14); z-index: 0;
}
.timeline__fill {
  position: absolute; left: 33px; top: 20px; width: 2px; height: 0;
  background: linear-gradient(180deg, var(--brand-light), var(--brand));
  box-shadow: 0 0 16px rgba(246,228,172,.45);
  transition: height 1.1s var(--ease); z-index: 0;
}
.timeline__step {
  position: relative; z-index: 1; display: grid;
  grid-template-columns: 68px 1fr; align-items: start; gap: 20px;
  opacity: .42; transform: translateY(14px);
  transition: opacity .5s var(--ease), transform .5s var(--ease);
}
.timeline__step.on { opacity: 1; transform: translateY(0); }
.timeline__marker {
  position: relative; z-index: 2; width: 68px; height: 68px;
  display: grid; place-items: center;
  background: #171310;
  border: 1.5px solid rgba(255,255,255,.16);
  transition: background .45s var(--ease), border-color .45s var(--ease), box-shadow .45s var(--ease), transform .45s var(--ease);
}
.timeline__num { font-family: var(--font-display); font-weight: 700; font-size: 1.35rem; color: rgba(255,255,255,.55); transition: color .45s var(--ease); }
.timeline__step.on .timeline__marker {
  background: linear-gradient(150deg, var(--brand), #956D3B);
  border-color: var(--brand-light);
  box-shadow: 0 0 0 5px rgba(246,228,172,.14), 0 18px 34px -14px rgba(207,162,91,.7);
  transform: scale(1.06);
}
.timeline__step.on .timeline__num { color: #fff; }
.timeline__card {
  background: rgba(255,255,255,.04); border: 1px solid rgba(255,255,255,.1);
  padding: 24px 26px;
  transition: background .45s var(--ease), border-color .45s var(--ease), transform .45s var(--ease);
}
.timeline__step.on .timeline__card { background: rgba(255,255,255,.06); border-color: rgba(246,228,172,.35); }
.timeline__card:hover { transform: translateX(4px); }
.timeline__card h3 { font-family: var(--font-display); font-size: 1.15rem; color: #fff; margin-bottom: 10px; }
.timeline__card p { color: rgba(255,255,255,.74); font-size: .95rem; line-height: 1.65; }
@media (max-width: 560px) {
  .timeline::before, .timeline__fill { left: 27px; }
  .timeline__step { grid-template-columns: 56px 1fr; gap: 14px; }
  .timeline__marker { width: 56px; height: 56px; }
  .timeline__num { font-size: 1.1rem; }
}

/* --- 9.4 GALERIA EM GRADE -------------------------------------------------
   A Moura mostra as obras numa grade, nao num carrossel. Grade deixa o lead
   varrer o portfolio inteiro de uma vez; o carrossel esconde dois tercos. */
.gallery--grid { background: var(--color-ink); color: #fff; }
.gallery--grid .section-title { color: #fff; }
.gallery--grid .section-lead { color: rgba(255,255,255,.72); }
.gallery__grid { margin-top: 2.5rem; display: grid; gap: 12px; grid-template-columns: repeat(2, 1fr); }
@media (min-width: 720px)  { .gallery__grid { grid-template-columns: repeat(3, 1fr); } }
@media (min-width: 1080px) { .gallery__grid { grid-template-columns: repeat(4, 1fr); } }
.gallery__item {
  margin: 0; aspect-ratio: 4/3; overflow: hidden; position: relative;
  border: 1px solid rgba(255,255,255,.1);
}
.gallery__item img {
  width: 100%; height: 100%; object-fit: cover;
  transition: transform .7s var(--ease), filter .5s var(--ease);
  filter: saturate(.92) brightness(.96);
}
.gallery__item:hover img { transform: scale(1.05); filter: saturate(1) brightness(1); }
.gallery__item figcaption {
  position: absolute; left: 0; right: 0; bottom: 0;
  padding: 26px 14px 10px;
  background: linear-gradient(180deg, transparent, rgba(10,8,6,.85));
  font-size: .8rem; color: #fff;
}

/* --- 9.5 DIVISORIA DE MOTIVO TILEADO --------------------------------------
   Na Moura e o telhado da marca repetido entre dobras. Na HC o motivo que
   tileia e a ENGRENAGEM do miolo do C (kit, nota motivo_banda). */
.mark-divider { height: 24px; background: var(--color-bg-soft); position: relative; }
.mark-divider::before {
  content: ""; position: absolute; inset: 0;
  background: var(--brand); opacity: .45;
  -webkit-mask: var(--mark-band) center / 30px 18px repeat-x;
          mask: var(--mark-band) center / 30px 18px repeat-x;
}

/* --- 9.6 COMPARATIVO DE 2 COLUNAS ----------------------------------------
   Substitui a lista unica de riscos. A coluna boa e a que carrega o CTA, e as
   frases da coluna ruim ganham o risco riscado item a item (data-strike). */
.compare { background: var(--color-bg-soft); color: var(--color-ink); padding: var(--dobra-y) 0; }
.compare__grid { margin-top: 2.5rem; display: grid; gap: 22px; grid-template-columns: 1fr; align-items: stretch; }
@media (min-width: 860px) { .compare__grid { grid-template-columns: 1fr 1fr; gap: 26px; } }
.compare__col { padding: 34px 30px; display: flex; flex-direction: column; position: relative; border: 1px solid var(--color-line); background: #fff; }
.compare__col--bad { background: #FCFAF6; }
.compare__col--good {
  background: linear-gradient(160deg, var(--color-ink), #171310);
  border-color: var(--brand);
  color: #fff;
}
.compare__seal {
  position: absolute; top: -13px; left: 30px;
  background: var(--color-green-deep); color: #fff;
  font-size: .68rem; font-weight: 700; text-transform: uppercase; letter-spacing: .14em;
  padding: 6px 14px;
}
.compare__head { margin-bottom: 22px; position: relative; }
.compare__col--good .compare__head { margin-top: 14px; }
.compare__tag { display: inline-block; font-size: .72rem; font-weight: 700; text-transform: uppercase; letter-spacing: .14em; margin-bottom: 10px; }
.compare__tag--bad { color: #c14a3f; }
.compare__tag--good { color: var(--brand-light); }
.compare__title { font-family: var(--font-display); font-size: 1.3rem; line-height: 1.2; }
.compare__col--good .compare__title { color: #fff; }
.compare__list { display: grid; gap: 14px; position: relative; list-style: none; padding: 0; margin: 0; }
.compare__list li { position: relative; padding-left: 30px; font-size: .95rem; line-height: 1.5; }
.compare__list li::before {
  content: ""; position: absolute; left: 0; top: 3px; width: 18px; height: 18px;
  background-repeat: no-repeat; background-position: center; background-size: contain;
}
.compare__col--bad .compare__list li::before {
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23c14a3f' stroke-width='3' stroke-linecap='round'%3E%3Cpath d='M6 6l12 12M18 6L6 18'/%3E%3C/svg%3E");
}
.compare__col--bad .compare__list li[data-strike] {
  background-image: linear-gradient(#c14a3f, #c14a3f);
  background-repeat: no-repeat;
  background-position: 30px 62%;
  background-size: 0% 1.5px;
  transition: background-size .55s var(--ease);
}
.compare__col--bad .compare__list li[data-strike].is-struck { background-size: calc(100% - 30px) 1.5px; }
.compare__list--check li::before {
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%2370c2ff' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='20 6 9 17 4 12'/%3E%3C/svg%3E");
}
.compare__col--good .compare__list li { color: rgba(255,255,255,.9); }
.compare__col--good .btn { margin-top: 26px; }

/* --- 9.7 FAQ ACORDEAO (botao, nao <details>) ------------------------------
   O <details> nao anima a abertura; a Moura anima por max-height, e e isso que
   faz a dobra parecer viva em vez de saltar. */
.faq__list { display: grid; gap: 12px; margin-top: 2rem; }
.faq__item { border: 1px solid var(--color-line); background: #fff; }
.faq__q {
  width: 100%; text-align: left; background: none; border: 0; cursor: pointer;
  font-family: inherit; font-size: 1rem; font-weight: 600; color: var(--color-ink);
  padding: 20px 54px 20px 22px; position: relative; line-height: 1.4;
}
.faq__icon { position: absolute; right: 20px; top: 50%; width: 16px; height: 16px; transform: translateY(-50%); }
.faq__icon::before, .faq__icon::after {
  content: ""; position: absolute; background: var(--brand);
  transition: transform .3s var(--ease), opacity .3s var(--ease);
}
.faq__icon::before { left: 0; top: 7px; width: 16px; height: 2px; }
.faq__icon::after  { left: 7px; top: 0; width: 2px; height: 16px; }
.faq__item.is-open .faq__icon::after { transform: scaleY(0); opacity: 0; }
.faq__item.is-open { border-color: var(--brand); }
.faq__a { max-height: 0; overflow: hidden; transition: max-height .4s var(--ease); }
.faq__a p { padding: 0 22px 22px; color: var(--color-text-mute); font-size: .95rem; line-height: 1.7; }
.faq__cta { margin-top: 2rem; }

/* --- 9.8 QUEM SOMOS COM RETRATO ------------------------------------------
   O retrato do Homero finalmente existe: o cliente marcou o arquivo no Drive
   como "usar essa quem somos". A dobra da assinatura sem foto sai. */
.experts--retrato .experts__inner { align-items: center; }
.experts--retrato .experts__photo { margin: 0; position: relative; }
.experts--retrato .experts__photo img {
  width: 100%; height: 100%; object-fit: cover;
  aspect-ratio: 3/4;
  border: 1px solid var(--color-line);
}
/* A tarja da legenda e sobreposta e ja nasce branca sobre o ink (regra base
   .experts__caption). Nao repintar de escuro aqui: com o fundo escuro da tarja
   o nome sumia dentro da propria tarja. So o posicionamento muda, para a tarja
   cair no rodape do retrato e nao no peito. */
.experts--retrato .experts__caption { bottom: 16px; left: 14px; right: 14px; }

/* --- 9.9 ALTERNANCIA DE DOBRA CLARA E ESCURA (playbook 14.12) -------------
   Na Moura a proof bar, o passo a passo e a galeria sao TODOS escuros e ficam
   colados, o que o playbook proibe (duas dobras escuras coladas). Como a ordem
   das dobras e o que o Gabriel pediu, e nao a paleta delas, a correcao e de
   pele, nao de estrutura: a proof bar e a galeria viram claras e o passo a
   passo continua escuro. A sequencia fica hero escuro, proof clara, timeline
   escura, galeria clara, comparativo claro, escopo escuro, quem somos claro,
   duvidas claras, formulario escuro. */
.proof { background: var(--color-bg-soft); border-bottom: 1px solid var(--color-line); color: var(--color-ink); }
.proof::before { background: linear-gradient(90deg, transparent, var(--brand) 50%, transparent); opacity: .45; }
.proof__num { color: var(--brand); }
.proof__label { color: var(--color-text-mute); }
.proof__num--word { color: var(--color-ink); }
.proof__arrow { color: var(--brand); }
.proof__item + .proof__item::before { background: var(--brand); opacity: .4; }

.gallery--grid { background: var(--color-bg-soft); color: var(--color-ink); }
.gallery--grid .section-title { color: var(--color-ink); }
.gallery--grid .section-lead { color: var(--color-text-mute); }
.gallery--grid .gallery__item { border-color: var(--color-line); }

/* --- 9.10 SELO DO COMPARATIVO ---------------------------------------------
   O selo nasce em top:-13px para saltar do topo da coluna. Sem empilhamento
   proprio ele fica ATRAS do fundo em degrade da coluna boa e aparece cortado
   pela metade. */
.compare__col { isolation: isolate; }
.compare__seal { z-index: 2; }
.compare__col--good > *:not(.compare__seal) { position: relative; z-index: 1; }

/* --- 9.11 A TRILHA PRECISA OCUPAR A LARGURA TODA -------------------------
   A secao .hero herdada e um GRID centralizado, entao a trilha entrava como
   item de grade e encolhia para a largura do conteudo (920px medidos): a foto
   cobria dois tercos da tela e o terco da direita ficava chapado.
   Nao da para ver isso em print de pagina inteira, so medindo o box. */
.hero--track { display: block; }
.hero--track .hero__scroll-track { width: 100%; justify-self: stretch; }
.hero--track .hero__sticky { width: 100%; max-width: none; }

/* --- 9.12 REGUA DE AUTORIDADE DE FOCO UNICO -------------------------------
   Pedido do Gabriel: na regua entra SO o "+10 anos", igual as LPs de CF do
   Romualdo e da Renova. Substitui a proof bar de 4 contadores da Moura
   (blocos 9.2 e a pele do 9.9, que deixam de casar seletor e viram inertes).

   Por que numero unico e o certo aqui, e nao so estetica: das quatro metricas
   que a proof bar da Moura pedia, a HC so tem uma que se sustenta em peca.
   Obra entregue nao existe como numero, obra simultanea muda de mes para mes,
   e "100% com engenheiro" era metrica montada por mim, nao dita pelo cliente.
   As duas provas que sobram (equipe propria e o mesmo engenheiro respondendo)
   viram FRASE ao lado, que e exatamente a gramatica da dobra no Romualdo.

   Diferenca de pele para o Romualdo: la a dobra e escura sobre o ink. Aqui ela
   fica na faixa CLARA, porque o hero acima e escuro e o passo a passo abaixo
   tambem: escura no meio dos dois seria a terceira dobra escura colada
   (playbook 14.12). O selo e o simbolo do kit, com o pulso no azul da marca. */
.proof--single {
  background: var(--color-bg-soft);
  color: var(--color-ink);
  padding: clamp(40px, 6vw, 64px) 0;
  border-bottom: 1px solid var(--color-line);
}
.proof--single::before { display: none; }   /* o filete do bloco 9.2 nao vale aqui */

.proof__solo {
  display: flex; align-items: center; justify-content: center;
  gap: clamp(24px, 5vw, 56px); flex-wrap: wrap;
}
.proof__seal { flex: 0 0 auto; display: inline-flex; align-items: center; justify-content: center; }
.proof__seal img {
  width: clamp(58px, 6vw, 76px); height: auto; display: block;
  filter: drop-shadow(0 6px 22px rgba(207,162,91, .34));
  animation: seloPulso 3.6s var(--ease) infinite alternate;
}
@keyframes seloPulso {
  from { filter: drop-shadow(0 6px 18px rgba(207,162,91, .22)); }
  to   { filter: drop-shadow(0 6px 30px rgba(207,162,91, .48)); }
}
@media (prefers-reduced-motion: reduce) { .proof__seal img { animation: none; } }

.proof__solo-num {
  flex: 0 0 auto; text-align: center;
  font-family: var(--font-display); font-weight: 700;
  font-size: clamp(46px, 7vw, 78px); color: var(--brand);
  line-height: .9; letter-spacing: -.03em;
}
.proof__solo-num small {
  display: block; margin-top: 7px;
  font-size: .22em; color: var(--color-text-mute); font-weight: 600;
  letter-spacing: .14em; text-transform: uppercase;
}
.proof__solo-label {
  flex: 1 1 0; max-width: 46ch;
  font-size: clamp(16px, 1.5vw, 19px);
  color: var(--color-text-mute); line-height: 1.55;
  border-left: 3px solid var(--brand); padding-left: 26px;
  text-align: left;
}
.proof__solo-label strong { color: var(--color-ink); font-weight: 600; }
.proof__solo-label .proof__hl { color: var(--brand); font-weight: 700; }
@media (max-width: 640px) {
  .proof__solo { flex-direction: column; text-align: center; gap: 18px; }
  .proof__seal { padding-bottom: 4px; }
  .proof__solo-label {
    border-left: 0; border-top: 3px solid var(--brand);
    padding-left: 0; padding-top: 16px; text-align: center;
  }
}

/* ==========================================================================
   BLOCO 10 — AJUSTES PEDIDOS NA REVISAO (06/08/2026)
   ========================================================================== */

/* --- 10.1 "COMO FUNCIONA": CABECA ALINHADA COM OS CARDS -------------------
   O titulo e o lead nasciam na borda do container e os cards da timeline
   comecam depois da coluna do marcador. Dava um degrau de quase 100px, que e
   justamente o que o Gabriel marcou de vermelho no print.
   A sangria e a soma real: padding da lista (8) + marcador (68) + vao (20). */
/* ⛔ Mesma armadilha da base do comparativo: existe um bloco .timeline HERDADO
   do clone (linha ~1235) com `max-width: 760px; margin: 46px auto 0`. Como o meu
   bloco 9.3 so declarou margin-TOP, o 760px centralizado continuou valendo, e a
   lista inteira ficava deslocada 180px para dentro (medido) enquanto a cabeca
   da dobra ficava na borda. Era esse o degrau marcado de vermelho no print.
   Desligar o max-width e a margem lateral e o que faz a sangria bater. */
.timeline { max-width: none; margin-left: 0; margin-right: 0; }

/* Sangria da cabeca = padding da lista (8) + marcador (68) + vao (20). */
:root { --tl-sangria: 96px; }
.timeline__head { padding-left: var(--tl-sangria); }
@media (max-width: 560px) {
  /* no celular o marcador encolhe (56px) e o vao tambem (14px); alem disso uma
     sangria dessas come a largura util, entao a cabeca volta para a borda. */
  :root { --tl-sangria: 0px; }
}

/* --- 10.2 GALERIA EM CARROSSEL ------------------------------------------
   Volta a ser carrossel (o marquee que o main.js ja controla: setas, arrasto e
   pausa no hover). A grade mostrava tudo de uma vez, mas o pedido e carrossel. */
.gallery--carrossel { background: var(--color-bg-soft); color: var(--color-ink); }
.gallery--carrossel .section-title { color: var(--color-ink); }
.gallery--carrossel .section-lead { color: var(--color-text-mute); }
.gallery--carrossel .marquee-wrap { margin-top: 2.25rem; }

/* Legenda legivel: a do padrao antigo era so um degrade fraco. */
.marquee__item figcaption {
  position: absolute; left: 0; right: 0; bottom: 0;
  padding: 30px 14px 12px;
  background: linear-gradient(180deg, transparent, rgba(10,8,6,.88));
  font-size: .82rem; color: #fff; line-height: 1.35;
}

/* Tarja de PROJETO 3D. As duas pecas 3D que o cliente curou entram, mas
   rotuladas: o playbook 15.8 nao proibe render na pagina, proibe render
   passando por obra executada. */
.marquee__item--projeto { position: relative; }
.marquee__tag {
  position: absolute; top: 10px; left: 10px; z-index: 2;
  background: rgba(10,8,6,.88); color: var(--brand-light);
  border: 1px solid rgba(246,228,172,.45);
  font-size: .66rem; font-weight: 700; letter-spacing: .12em; text-transform: uppercase;
  padding: 5px 9px;
}

/* --- 10.3 COMPARATIVO REALINHADO ----------------------------------------
   Tres coisas quebravam a leitura da dobra:

   a) O RISCO cortava a palavra. O efeito era uma linha unica desenhada a 62%
      da altura do item; com item de tres linhas ela caia no meio da segunda e
      parecia defeito. Agora a marca de risco e uma regua que cresce POR BAIXO
      do item (borda inferior animada), que e como o exemplo que o Gabriel
      mandou faz. De quebra, os itens foram encurtados para uma linha.
   b) O SELO "A escolha segura" aparecia cortado ao meio: ele nasce em top
      negativo e a coluna precisa de espaco reservado no topo para ele caber.
   c) As duas colunas tinham alturas e ritmos diferentes. Agora a lista ocupa o
      espaco livre (flex:1) e o rodape de cada coluna (fecho vermelho de um
      lado, CTA do outro) fica ancorado embaixo, entao as duas terminam juntas. */
/* ⛔ A CAUSA RAIZ do "tudo desajustado": existe um bloco .compare HERDADO do
   clone (linha ~1325), da epoca em que esta dobra era um quadro estreito no
   meio da pagina. Ele continuava valendo para tudo que eu nao tinha declarado:

     .compare        { max-width: 920px }  -> a dobra inteira encolhia para 920px
                                              numa tela de 1440 (medido)
     .compare__title { border-bottom }     -> desenhava uma SEGUNDA regua, alem
                                              da do .compare__head
     .compare__col--good { overflow: hidden } -> era isto que cortava o selo ao
                                              meio, e nao empilhamento

   Playbook 13.21.0: em site reskinado, a regra da base vira codigo morto que
   volta a morder. Aqui elas sao desligadas na cara, uma a uma. */
.compare { max-width: none; margin: 0; }
.compare__title { margin-bottom: 0; padding-bottom: 0; border-bottom: 0; }

.compare__grid { align-items: stretch; }
.compare__col {
  padding: 34px 30px 30px;
  display: flex; flex-direction: column;
}
/* O selo vira FAIXA DENTRO da coluna, como no exemplo que o Gabriel mandou.
   Assim ele convive com o overflow:hidden que o brilho do card precisa, em vez
   de brigar com ele. */
.compare__col--good { overflow: hidden; padding-top: 0; }
.compare__seal {
  position: static; display: block;
  margin: 0 -30px 22px; padding: 11px 30px;
  /* verde PROFUNDO: o claro com texto branco da 3,09:1 e reprova AA */
  background: var(--color-green-deep, #148244); color: #fff;
  font-size: .72rem; letter-spacing: .12em;
}
.compare__col--good .compare__head { margin-top: 0; }

.compare__head { margin-bottom: 20px; padding-bottom: 16px; border-bottom: 1px solid var(--color-line); }
.compare__col--good .compare__head { border-bottom-color: rgba(246,228,172,.28); }
.compare__col--bad { padding-top: calc(34px + 44px); }   /* alinha com a faixa do lado bom */

.compare__list { flex: 1 1 auto; align-content: start; gap: 0; }
.compare__list li {
  padding: 12px 0 12px 30px;
  font-size: .95rem; line-height: 1.45;
}
.compare__list li::before { top: 14px; }

/* a) risco por baixo, nao por cima da palavra */
.compare__col--bad .compare__list li[data-strike] {
  background-image: linear-gradient(#c14a3f, #c14a3f);
  background-repeat: no-repeat;
  background-position: 30px 100%;
  background-size: 0% 1px;
  transition: background-size .55s var(--ease);
}
.compare__col--bad .compare__list li[data-strike].is-struck { background-size: calc(100% - 30px) 1px; }

/* c) rodape ancorado */
.compare__fecho {
  margin-top: 20px;
  background: #fdf3f2; border: 1px solid rgba(193,74,63,.28);
  color: #a33a30; font-size: .92rem; line-height: 1.5; font-weight: 500;
  padding: 14px 16px;
}
.compare__col--good .btn { margin-top: 20px; }

@media (max-width: 859px) {
  .compare__col { padding: 30px 22px 26px; }
  .compare__col--good { padding-top: 38px; }
  .compare__seal { left: 22px; }
}

/* --- 10.4 REGUA DE AUTORIDADE COM A ESTAMPARIA, COMO NA LP COMERCIAL ------
   Mesmo tratamento fechado na LP comercial: a estamparia MALHA do kit (a
   engrenagem em grade escalonada), no angulo da marca, QUASE TRANSPARENTE e
   cobrindo a regua INTEIRA.

   O transbordo e o ponto que engana: a camada e girada 28 graus, e girar um
   retangulo largo e baixo joga as pontas para fora do quadro. O deslocamento
   vertical e (largura/2) x sen(28), ~0,23 da largura, o que numa regua de
   1440 da uma altura inteira. Como % no `inset` resolve topo e base contra a
   ALTURA, transbordo pequeno na vertical deixa o canto superior esquerdo e o
   inferior direito vazios. 200% da altura para cada lado cobre com folga.

   Uma diferenca de pele em relacao a comercial: la a regua e escura e a
   engrenagem entra no --brand-light. Aqui a regua e clara (para nao colar
   tres dobras escuras, playbook 14.12), entao quem estampa e o azul cheio da
   marca, na mesma opacidade baixa. */
.proof--single { position: relative; isolation: isolate; overflow: hidden; }
.proof--single::after {
  content: ""; position: absolute; z-index: -1; pointer-events: none;
  inset: -200% -20%;
  background: var(--brand); opacity: .06;
  transform: rotate(var(--angulo-marca, 28deg));
  -webkit-mask: var(--stamp-malha) left top/132px repeat;
          mask: var(--stamp-malha) left top/132px repeat;
}

/* ==========================================================================
   BLOCO 11 — OS AJUSTES DE DESIGN DA LP COMERCIAL, PORTADOS PARA CA
   Pedido do Gabriel: "nao e so da regua, mas todos os ajustes que fizemos de
   design". Esta folha nasceu de um FORK da folha da LP comercial feito antes
   das tres ultimas rodadas de acerto visual, entao tudo o que foi decidido la
   depois disso nunca chegou aqui. Abaixo, cada acerto com o motivo que o
   gerou, adaptado onde a estrutura das duas LPs difere.
   ========================================================================== */

/* --- 11.1 CARDS DO ESCOPO: SUPERFICIE SOLIDA, NAO TRANSLUCIDA -------------
   Tres tentativas ate acertar, na comercial: veu branco, depois azul
   transclucido, e no fim cor CHAPADA. Motivo: translucido sobre degrade nunca
   fecha contraste, porque o card muda de cor conforme a parte do fundo que
   esta atras dele. Cor chapada um degrau acima do fundo resolve, com faixa
   clara na lateral para o card virar superficie e o fundo continuar fundo. */
/* ⚠️ Os :nth-child(3n+2) e (3n+3) da base tem UMA CLASSE A MAIS de peso que
   `.escopo--mesh .escopo__card`, entao so os cards da primeira coluna pegavam
   a cor chapada e os outros quatro continuavam translucidos. Medido: cards 1 e
   4 em rgb(34,27,20), os demais em transparente. Por isso os tres seletores
   aparecem aqui, e nao so o generico. */
.escopo--mesh .escopo__card,
.escopo--mesh .escopo__card:nth-child(3n+2),
.escopo--mesh .escopo__card:nth-child(3n+3) {
  background: #221B14;
  border: 1px solid rgba(246,228,172,.42);
  border-left: 4px solid var(--brand-light);
  -webkit-backdrop-filter: none; backdrop-filter: none;
  box-shadow: 0 20px 44px -24px rgba(0,0,0,.85);
  transition: background var(--t, .3s) var(--ease), border-color var(--t, .3s) var(--ease), transform .18s var(--ease);
}
.escopo--mesh .escopo__card:hover,
.escopo--mesh .escopo__card:nth-child(3n+2):hover,
.escopo--mesh .escopo__card:nth-child(3n+3):hover {
  background: #2E241A; border-color: var(--brand-light);
  transform: translateY(-3px);
}
.escopo--mesh .escopo__card h3 { color: #fff; }
.escopo--mesh .escopo__card p { color: #EDE3CF; }
.escopo--mesh .escopo__mark { background: var(--brand-light); opacity: .9; }
.escopo--mesh .escopo__glow { display: none; }   /* o brilho lavava o card */

/* --- 11.2 DOBRA DO FORMULARIO: UMA GRADE SO, E ELA RECUA ------------------
   Duas coisas, na ordem em que apareceram na comercial:
   a) `.brand-texture` e `.malha` desenhavam grade as DUAS, em tamanhos
      diferentes, e a soma virava moire. Era isso que lia como "linha grossa e
      fina bagunçada". Fica a textura da dobra; a malha sai.
   b) Mesmo sozinha a grade competia com a leitura. Cai para 7% e ganha uma
      mascara que a apaga no miolo, que e onde o texto mora. E a variante LISA
      (todas as linhas iguais), porque a grade COM eixo, ampliada no fundo,
      lia como falha e nao como ritmo. */
.viability .malha { display: none; }
.viability.brand-texture::after {
  background: var(--brand-light);
  opacity: .07;
  -webkit-mask:
    var(--stamp-grade-lisa) left top/120px repeat,
    radial-gradient(80% 62% at 50% 46%, transparent 0%, #000 78%);
  mask:
    var(--stamp-grade-lisa) left top/120px repeat,
    radial-gradient(80% 62% at 50% 46%, transparent 0%, #000 78%);
  -webkit-mask-composite: source-in; mask-composite: intersect;
}
.viability .section-title--light { color: #fff; text-shadow: 0 2px 18px rgba(10,8,6,.55); }
.viability .section-lead--light { color: #F7F0E1; }
.viability .step-label { color: #F7F0E1; }
.viability .trust-item { color: #F7F0E1; }

/* --- 11.3 ACENTO E EYEBROW EM DOBRA ESCURA, VERSAO COMPLETA ---------------
   O bloco 8 daqui ja trocava a COR do acento e do eyebrow. Faltava o resto do
   que a comercial acabou fazendo: o marcador do eyebrow (::before) e a regua
   do titulo (::after) continuavam no azul cheio e sumiam junto.
   Os seletores mudam de uma LP para a outra: aqui nao existe .risk-band nem
   .statbar, e existem .process--timeline e .compare, que la nao existem. */
.escopo--mesh .accent,
.viability .accent,
.process--timeline .accent,
.section-title--light .accent {
  color: var(--brand-light);
  background-image: linear-gradient(var(--brand-light), var(--brand-light));
}
.escopo--mesh .eyebrow--light,
.viability .eyebrow--light,
.process--timeline .eyebrow--light { color: var(--brand-light); }
.escopo--mesh .eyebrow--light::before,
.viability .eyebrow--light::before,
.process--timeline .eyebrow--light::before { background: var(--brand-light); }
.section-title--light::after { background: var(--brand-light); }

/* --- 11.4 CTA SOBRE DOBRA ESCURA: O AZUL CHEIO SOME ----------------------
   Mesmo problema do acento, agora no botao: `btn--accent` e azul da marca, e
   em dobra escura ele fica azul sobre azul. Sobre fundo escuro quem assume e o
   --brand-light, com o texto no ink (contraste alto nos dois sentidos), e o
   hover clareia para branco. */
.escopo--mesh .btn--accent,
.offer .btn--accent,
.viability .btn--accent,
.process--timeline .btn--accent {
  background-color: var(--brand-light);
  background-image: none;
  color: var(--color-ink);
  box-shadow: 0 14px 34px -16px rgba(246,228,172,.75);
}
.escopo--mesh .btn--accent::before,
.offer .btn--accent::before,
.viability .btn--accent::before,
.process--timeline .btn--accent::before { background: var(--brand-light); }
.escopo--mesh .btn--accent:hover,
.offer .btn--accent:hover,
.viability .btn--accent:hover,
.process--timeline .btn--accent:hover { background-color: #FBF1D7; color: var(--color-ink); }
.escopo--mesh .btn--accent:hover::before,
.offer .btn--accent:hover::before,
.viability .btn--accent:hover::before,
.process--timeline .btn--accent:hover::before { background: #FBF1D7; }

/* --- 11.5 HERO COM FOTO CLARA --------------------------------------------
   A classe que a comercial criou quando o hero trocou de foto escura para foto
   ensolarada: o veu padrao foi calibrado para foto escura, e com foto clara o
   H1 branco encosta no ceu e perde legibilidade. Aqui a foto do hero tambem e
   ensolarada (deck, piscina e ceu aberto), entao a classe vale e esta aplicada
   no <section> do hero. Ela reforca o veu SO onde o texto mora, sem apagar a
   foto, e por isso substitui o overlay do bloco 9.1. */
.hero--claro .hero__overlay {
  background:
    linear-gradient(180deg, rgba(10,8,6,.90) 0%, rgba(10,8,6,.74) 26%, rgba(10,8,6,.58) 58%, rgba(10,8,6,.80) 100%),
    radial-gradient(110% 74% at 50% 44%, rgba(10,8,6,.40) 0%, rgba(10,8,6,.12) 62%, transparent 100%);
}

/* --- 10.5 CARD "FOTOS DE EXEMPLO" ----------------------------------------
   As imagens do carrossel passaram a ser referencia de projeto (banco da casa),
   e nao obra entregue pela HC. Sem aviso, a dobra afirmaria autoria que a HC
   nao tem (playbook 13.22 e 15.8). O card fica ANTES do carrossel, na leitura,
   para o lead ver o aviso antes das fotos, e nao depois. */
.gallery__aviso {
  display: inline-flex; align-items: center; gap: 12px; flex-wrap: wrap;
  margin-top: 18px; padding: 12px 16px;
  background: #fff; border: 1px solid var(--color-line);
  border-left: 3px solid var(--brand);
  font-size: .9rem; color: var(--color-text-mute); line-height: 1.45;
}
.gallery__aviso-tag {
  flex: 0 0 auto;
  background: var(--brand); color: var(--color-ink);
  font-size: .68rem; font-weight: 700; letter-spacing: .12em; text-transform: uppercase;
  padding: 5px 10px;
}
@media (max-width: 560px) { .gallery__aviso { display: flex; } }


/* ==========================================================================
   BLOCO 12 — DOBRA DE FINANCIAMENTO (cards por faixa de renda)
   Esta dobra nao existia na LP residencial da HC: la ela tinha sido REMOVIDA
   por ser de financiamento e substituida pela grade de escopo. Aqui ela volta,
   que e o funil dela, e vem da gramatica que a Moura e o Romualdo usam.
   O que muda em relacao ao clone: nada de degrade no card (o kit da HC ja
   resolveu isso no botao, e cor chapada sobre a dobra escura fecha contraste
   sem depender de qual parte do fundo esta atras), e o marcador da spec e a
   ENGRENAGEM do kit (--mark-band), o mesmo motivo pontual do resto da pagina,
   e nao o losango do clone.
   O wrapper continua sendo `.offer`, que ja pinta a dobra escura desta folha.
   ========================================================================== */

.financing__grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 24px;
  position: relative;
}
.financing__card {
  display: flex;
  flex-direction: column;
  background: #221B14;                       /* superficie SOLIDA, nunca translucida */
  border: 1px solid rgba(255,255,255,.10);
  overflow: hidden;
  transition: transform var(--t), border-color var(--t), box-shadow var(--t);
}
.financing__card:hover {
  transform: translateY(-4px);
  border-color: rgba(246,228,172,.45);
  box-shadow: 0 26px 50px -28px rgba(0,0,0,.7);
}
.financing__card--featured {
  border-color: rgba(246,228,172,.40);
  box-shadow: 0 0 0 1px rgba(246,228,172,.18) inset;
}
.financing__img { aspect-ratio: 4 / 3; overflow: hidden; background: var(--color-ink-2); }
.financing__img img { width: 100%; height: 100%; object-fit: cover; transition: transform .7s var(--ease); }
.financing__card:hover .financing__img img { transform: scale(1.05); }

.financing__body { padding: 24px 24px 26px; display: flex; flex-direction: column; flex: 1; }
.financing__tier {
  align-self: flex-start;
  background: rgba(255,255,255,.08);
  border: 1px solid rgba(255,255,255,.16);
  color: var(--color-on-dark);
  font-size: 11px; font-weight: 700; letter-spacing: .12em; text-transform: uppercase;
  padding: 6px 10px; margin-bottom: 14px;
}
.financing__tier--accent {
  background: var(--brand-light);
  border-color: var(--brand-light);
  color: var(--color-ink);
}
.financing__type {
  font-family: var(--font-display);
  font-size: 22px; font-weight: 600; color: #fff; margin-bottom: 14px;
}
.financing__type span { color: var(--brand-light); }

.financing__specs {
  display: flex; flex-direction: column; gap: 7px;
  margin-bottom: 20px; padding-bottom: 20px;
  border-bottom: 1px solid rgba(255,255,255,.10);
}
.financing__specs li {
  color: var(--color-on-dark); font-size: 14px; line-height: 1.5;
  padding-left: 22px; position: relative;
}
/* o marcador e a engrenagem do kit, o mesmo motivo pontual do eyebrow */
.financing__specs li::before {
  content: ""; position: absolute; left: 0; top: 4px;
  width: 12px; height: 12px;
  background: var(--brand-light);
  -webkit-mask: var(--mark-band) center / contain no-repeat;
          mask: var(--mark-band) center / contain no-repeat;
}

.financing__price { display: flex; flex-direction: column; gap: 2px; margin-bottom: 16px; }
.financing__label {
  font-size: 11px; font-weight: 700; text-transform: uppercase; letter-spacing: .14em;
  color: var(--color-on-dark-mute);
}
.financing__value { font-family: var(--font-display); font-size: 19px; font-weight: 700; color: #fff; }

.financing__installment {
  margin-top: auto; padding-top: 16px;
  border-top: 1px dashed rgba(255,255,255,.16);
  display: flex; flex-direction: column; gap: 2px;
}
.financing__inst-label {
  font-size: 11px; font-weight: 700; text-transform: uppercase; letter-spacing: .14em;
  color: var(--brand-light);
}
.financing__inst-value {
  font-family: var(--font-display);
  font-size: clamp(26px, 2.4vw, 32px); font-weight: 700; color: #fff;
  letter-spacing: -.02em; line-height: 1.1;
}
.financing__inst-value small { font-size: .5em; font-weight: 500; color: var(--color-on-dark-mute); margin-left: 2px; }

.financing__cta { text-align: center; margin-top: 40px; position: relative; }

@media (max-width: 1000px) {
  .financing__grid { grid-template-columns: 1fr; max-width: 440px; margin-left: auto; margin-right: auto; }
}


/* ==========================================================================
   BLOCO 13 — A MARCA DOURADA NA PAGINA
   O que muda de estrutura, e nao so de cor, quando a logo vira um EMBLEMA
   CIRCULAR. Escrito por ultimo de proposito: vence as regras herdadas do kit
   azul sem precisar sair caçando cada uma (playbook 13.21.0).
   ========================================================================== */

/* --- 13.1 O SELO NO LUGAR DA LOGO DE 2 CAMADAS ---------------------------
   A animacao antiga cortava a logo no vao horizontal entre o monograma e o
   lettering. O emblema e redondo e nao tem esse vao: a logo passa a ser UMA
   imagem, e a entrada e um fade com escala, mais um brilho que corre o anel
   uma vez so. Continua 100% CSS. */
.logo-selo { position: relative; display: block; line-height: 0; }
.logo-selo img { display: block; width: 100%; height: auto; }
.logo-selo {
  opacity: 0; transform: scale(.9);
  animation: seloEntra .8s .15s var(--ease) forwards;
}
@keyframes seloEntra { to { opacity: 1; transform: none; } }

/* o brilho: uma faixa clara atravessa o emblema uma vez, como metal pegando luz */
.logo-selo::after {
  content: ""; position: absolute; inset: 0; border-radius: 50%;
  background: linear-gradient(115deg, transparent 38%, rgba(255,255,255,.55) 50%, transparent 62%);
  opacity: 0; pointer-events: none;
  animation: seloBrilho 1.5s .85s var(--ease) 1;
  -webkit-mask: radial-gradient(circle, #000 49%, transparent 50%);
          mask: radial-gradient(circle, #000 49%, transparent 50%);
}
@keyframes seloBrilho {
  0%   { opacity: 0; transform: translateX(-55%); }
  35%  { opacity: 1; }
  100% { opacity: 0; transform: translateX(55%); }
}
.logo-selo--rodape { animation-delay: .35s; }
.logo-selo--rodape::after { animation-delay: 1.05s; }

/* Tamanho: o emblema e QUADRADO, e o header tem 96px. A logo antiga era
   deitada (1499x991) e cabia com 104px de largura; um quadrado de 104px
   estouraria a barra. Medido para sobrar respiro em cima e embaixo. */
.site-header__brand .logo-selo { width: 64px; }
.site-header__brand img { width: 100%; height: auto; }
.site-footer__logo .logo-selo { width: 132px; }
.site-footer__logo img { width: 100%; height: auto; }
@media (max-width: 760px) { .site-header__brand .logo-selo { width: 52px; } }

@media (prefers-reduced-motion: reduce) {
  .logo-selo { opacity: 1; transform: none; animation: none; }
  .logo-selo::after { animation: none; opacity: 0; }
}


/* --- 13.3 O ANEL DO EMBLEMA VIRA SISTEMA ---------------------------------
   O que o emblema traz de novo e o ANEL. Ele reaparece nos elementos que ja
   eram redondos, agora com a borda dourada em vez de preenchimento chapado:
   circulo de etapa, seta do carrossel e icone do FAQ. O resto da pagina segue
   a geometria do monograma, que e reta (raio 5px). */
.step-circle.active,
.marquee__nav {
  box-shadow: 0 0 0 1px var(--brand-light) inset;
}


/* --- 13.4 REGUA DE AUTORIDADE NO FORMATO DA LP COMERCIAL ------------------
   A dobra `proof--single` (selo + numero centralizado) saiu e entrou a
   `statbar__solo` da LP comercial da HC: numero grande a esquerda, titulo e
   frase a direita. As regras da statbar nao existiam nesta folha, que nasceu
   da residencial: entram aqui inteiras, e nao herdadas pela metade.

   A DIFERENCA de proposito em relacao a comercial: la a dobra e escura, aqui
   ela e CLARA (`statbar--claro`), porque o hero acima e o passo a passo abaixo
   ja sao escuros e tres escuras coladas quebram o ritmo (playbook 14.12).
   Com fundo claro, o numero NAO pode ser o ouro metalico (2,34:1): quem assume
   e o --brand-ink, o bronze escuro, com 9,5:1. */

.statbar {
  position: relative; isolation: isolate;
  background: var(--color-bg-soft);
  border-top: 1px solid var(--color-line);
  border-bottom: 1px solid var(--color-line);
  padding: clamp(46px, 6vw, 72px) 0;
}
/* o fio dourado do topo, o mesmo da comercial */
.statbar::before {
  content: ""; position: absolute; top: 0; left: 0; right: 0; height: 2px; z-index: 2;
  background: linear-gradient(90deg, transparent, var(--brand-2) 20%, var(--brand) 50%, var(--brand-2) 80%, transparent);
  background-size: 220% 100%; animation: wireRun 5.5s linear infinite;
}
/* engrenagens do kit atras da dobra, bem apagadas */
.statbar::after {
  content: ""; position: absolute; inset: 0; z-index: -1; pointer-events: none;
  background: var(--brand); opacity: .05;
  -webkit-mask: var(--stamp-malha) left top/150px repeat;
          mask: var(--stamp-malha) left top/150px repeat;
}

.statbar__solo {
  display: grid;
  grid-template-columns: auto 1fr;
  align-items: center;
  gap: clamp(24px, 4vw, 56px);
  position: relative;
}
.statbar__num {
  /* `order: 0` nao e decoracao: a folha herda um `order: 1` da grade de 3
     colunas antiga (linha ~2573), e `order` vale para item de GRID tambem.
     Sem isto o numero vai para a DIREITA e o texto para a esquerda, que e o
     inverso da LP comercial. Mesmo remendo que a comercial precisou fazer. */
  order: 0;
  font-family: var(--font-display); font-weight: 700;
  display: flex; align-items: baseline; gap: 0;
  font-size: clamp(3.4rem, 8vw, 6rem);
  line-height: .9; white-space: nowrap;
  color: var(--brand-ink);
}
.statbar__mais { font-size: .62em; margin-right: .04em; color: var(--brand-2); }
.statbar__num small {
  font-size: .30em; margin-left: .18em; letter-spacing: .04em;
  font-weight: 600; color: var(--brand-2);
}
.statbar__texto { order: 1; }
.statbar__titulo {
  font-family: var(--font-display);
  font-size: clamp(1.15rem, 2.2vw, 1.7rem);
  font-weight: 600; line-height: 1.25; color: var(--color-text);
  margin-bottom: 10px; max-width: 26ch;
  position: relative; padding-left: 22px;
}
/* o marcador do titulo e a engrenagem do kit, tileada como regua vertical */
.statbar__titulo::before {
  content: ""; position: absolute; left: 0; top: 2px; bottom: 2px; width: 4px;
  background: var(--brand-2);
  -webkit-mask: var(--mark-band) center/100% auto repeat-y;
          mask: var(--mark-band) center/100% auto repeat-y;
}
.statbar__label {
  max-width: 62ch; margin: 0; padding-left: 22px;
  color: var(--color-text-mute); font-size: 1rem; line-height: 1.6;
}
.statbar__label strong { color: var(--color-text); font-weight: 600; }

@media (max-width: 780px) {
  .statbar__solo { grid-template-columns: 1fr; gap: 14px; }
  .statbar__num { justify-content: flex-start; }
}


/* ==========================================================================
   BLOCO 14 — REVISAO DE 24/08 (numeros de autoridade, quebras e portfolio)
   ========================================================================== */

/* --- 14.1 A H1 PARA DE QUEBRAR SOZINHA -----------------------------------
   A coluna do hero era 920px (`.hero--track .hero__content`) e o `text-wrap:
   balance` decidia as quebras. Com a frase da Moura, 118 caracteres, isso dava
   5 linhas desiguais, com "Goiania" sozinha numa delas e o acento partido.
   Agora as quebras sao explicitas no HTML (`<br class="br-lg">`), e o que o CSS
   faz e dar coluna para elas caberem e DESLIGAR o balance, que brigaria com os
   <br>. Abaixo de 900px os <br> somem e o texto volta a fluir sozinho. */
/* 1180 e nao 1120: o `.hero__content` tambem e `.container`, entao ele come
   40px de padding de cada lado. A caixa util e 1100px, e a linha mais longa
   da H1 mede 1046px. Com 1120 a util era 1040 e ela quebrava por 6 pixels. */
.hero--track .hero__content { max-width: 1180px; }
/* `text-wrap: wrap`, e nao `normal`: `normal` NAO e valor valido do shorthand
   (wrap | nowrap | balance | stable | pretty), entao a declaracao era jogada
   fora em silencio e o `balance` da linha 594 continuava valendo. Ele encolhe
   a caixa do H1 para a medida "balanceada" (1040px em vez dos 1120 da coluna),
   e a primeira linha, de 1046px, quebrava por 6 pixels. */
.hero--flat .hero__headline { font-size: clamp(30px, 3.05vw, 42px); text-wrap: wrap; }
.hero--flat .hero__sub { max-width: 74ch; }   /* acompanha a coluna nova da H1 */

/* --- 14.2 REGUA DE AUTORIDADE COM QUATRO NUMEROS -------------------------
   Ate 24/08 a regua tinha UM numero, porque era o unico que se sustentava. O
   cliente preencheu os outros tres no ClientOps e a dobra virou grade. A frase
   que antes ficava ao lado do numero virou a lead da dobra, acima da grade.
   Em fundo claro o numero NAO pode ser o ouro metalico (2,34:1): e o
   --brand-ink, com 9,5:1. */
.statbar--claro .statbar__intro {
  max-width: 62ch;
  margin: 0 0 clamp(30px, 3.4vw, 44px);
  color: var(--color-text-mute);
  font-size: clamp(1rem, 1.25vw, 1.1rem);
  line-height: 1.65;
  position: relative; padding-left: 22px;
}
.statbar--claro .statbar__intro strong { color: var(--color-text); font-weight: 600; }
/* o marcador e a engrenagem do kit, tileada como regua vertical */
.statbar--claro .statbar__intro::before {
  content: ""; position: absolute; left: 0; top: 3px; bottom: 3px; width: 4px;
  background: var(--brand-2);
  -webkit-mask: var(--mark-band) center/100% auto repeat-y;
          mask: var(--mark-band) center/100% auto repeat-y;
}

.statbar--claro .statbar__grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: clamp(20px, 2.6vw, 34px);
  position: relative;
}
.statbar--claro .statbar__item {
  position: relative;
  padding-left: 20px;
  border-left: 1px solid var(--color-line);
}
/* a barra dourada de cada item e a engrenagem, nao um traco generico */
.statbar--claro .statbar__item::before {
  content: ""; position: absolute; left: -2px; top: 2px; height: 46px; width: 4px;
  background: var(--brand);
  -webkit-mask: var(--mark-band) center/100% auto repeat-y;
          mask: var(--mark-band) center/100% auto repeat-y;
}
.statbar--claro .statbar__num {
  order: 0;
  font-family: var(--font-display); font-weight: 700;
  display: flex; align-items: baseline; gap: 0;
  font-size: clamp(2.4rem, 4vw, 3.6rem);
  line-height: .95; white-space: nowrap;
  color: var(--brand-ink);
  margin: 0 0 8px;
}
.statbar--claro .statbar__mais { font-size: .58em; margin-right: .04em; color: var(--brand-2); }
.statbar--claro .statbar__num small {
  /* 18,4px com peso 600 nao alcanca o limite de "texto grande" da WCAG
     (24px, ou 18,66px em bold), entao o minimo aqui e 4,5:1 e nao 3:1. O ouro
     bronze da 4,18:1 sobre o creme e reprova por pouco; o bronze escuro da 8,58. */
  font-size: .32em; margin-left: .2em; letter-spacing: .02em;
  font-weight: 600; color: var(--brand-ink); white-space: nowrap;
}
.statbar--claro .statbar__label {
  margin: 0; max-width: 22ch;
  color: var(--color-text-mute); font-size: .95rem; line-height: 1.5;
}

@media (max-width: 980px) {
  .statbar--claro .statbar__grid { grid-template-columns: repeat(2, 1fr); gap: 26px 22px; }
}
@media (max-width: 520px) {
  .statbar--claro .statbar__grid { grid-template-columns: 1fr; }
  .statbar--claro .statbar__label { max-width: none; }
}

/* --- 14.3 O PORTFOLIO PASSOU A MISTURAR OBRA REAL E REFERENCIA -----------
   O aviso unico "Fotos de exemplo" saiu, e a honestidade virou POR PECA. A
   tarja dourada so pode aparecer no que a HC executou; a vazada, no que e
   imagem de projeto. Sem uma das duas, a dobra afirma autoria que a HC nao
   tem (playbook 13.22 e 15.8). */
.marquee__item { position: relative; }
.marquee__tag {
  position: absolute; top: 10px; left: 10px; z-index: 2;
  font-family: var(--font-display);
  font-size: .62rem; font-weight: 700; letter-spacing: .12em; text-transform: uppercase;
  padding: 5px 9px;
  background: rgba(10,8,6,.72); color: var(--color-on-dark);
  border: 1px solid rgba(246,228,172,.34);
  -webkit-backdrop-filter: blur(3px); backdrop-filter: blur(3px);
}
.marquee__tag--real {
  background: var(--brand); color: var(--color-ink);
  border-color: var(--brand);
}

/* --- 14.4 FAQ: LINHA MAIS LONGA, MENOS QUEBRA ----------------------------
   A resposta ficava numa coluna estreita e cada paragrafo virava 6 ou 7 linhas
   curtas. A medida confortavel de leitura vai ate ~75 caracteres; aqui ela
   estava perto de 45. Solta a coluna e diminui um tico a entrelinha. */
.faq__list { max-width: none; }
.faq__a p {
  max-width: 88ch;
  padding: 0 26px 24px;
  font-size: 1rem; line-height: 1.62;
}
.faq__q { text-align: left; }
.objections .section-lead { max-width: 62ch; }

/* --- 14.5 LEADS DE DOBRA: MEDIDA MAIS LONGA ------------------------------
   `section-lead--short` prendia a lead em 50ch e cada paragrafo virava 5 ou 6
   linhas curtas. 68ch e a medida confortavel sem virar bloco de texto. */
.section-lead--short { max-width: 68ch; }
.gallery .section-lead { max-width: 78ch; }

/* --- 14.6 CABECA DO FORMULARIO: COLUNA MAIS LARGA ------------------------
   `.form-head` estava preso em 640px com titulo de 48px: "Peca a analise de
   viabilidade da sua construcao financiada em menos de 1min" caia em 4 linhas
   curtas, e o acento sozinho numa delas. Coluna maior e corpo um tico menor
   fecham em 2 linhas. O mesmo vale para o titulo do popup, que e a mesma frase
   num card estreito, e por isso continua com corpo proprio. */
.form-head { max-width: 900px; }
.viability .form-head .section-title { font-size: clamp(28px, 3.2vw, 42px); text-wrap: wrap; }
.viability .form-head .section-lead { max-width: 72ch; }

/* a resposta do FAQ tem medida de leitura, nao de bloco de texto */
.faq__a p { max-width: 84ch; }


/* ==========================================================================
   BLOCO 15 — REVISAO 2 DE 24/08 (logo branca e regua em faixa de destaque)
   ========================================================================== */

/* --- 15.1 A LOGO VOLTA A SER A BRANCA EMPILHADA --------------------------
   A pedido, o header e o rodape passam a usar a MESMA logo branca da LP
   comercial da HC. O emblema circular dourado continua sendo a marca, mas so
   como selo (favicon e apple-touch): a 64px o lettering do anel dele virava
   borrao, e branco chapado le muito melhor sobre o header escuro.
   Com o arquivo de volta, a animacao de 2 camadas tambem volta: ela corta a
   logo no vao horizontal entre o monograma e o lettering, que existe nesta
   versao e nao existia no emblema redondo. */
.logo-anim { position: relative; display: inline-block; line-height: 0; }
.logo-anim__simbolo,
.logo-anim__resto { display: block; width: 100%; height: auto; }
.logo-anim__resto { position: absolute; inset: 0; }

.logo-anim__simbolo {
  clip-path: inset(100% 0 0 0);   /* sobe: e uma torre sendo erguida */
  animation: logoSimbolo 1.05s .2s cubic-bezier(.62,.04,.3,1) forwards;
}
@keyframes logoSimbolo { to { clip-path: inset(0 0 0 0); } }

.logo-anim__resto {
  opacity: 0;
  animation: logoResto .75s 1.0s ease forwards;
}
@keyframes logoResto {
  from { opacity: 0; transform: translateY(5px) scale(.985); }
  to   { opacity: 1; transform: none; }
}
/* o rodape entra quando o lead chega la, nao junto com o cabecalho */
.logo-anim--rodape .logo-anim__simbolo { animation-delay: .35s; }
.logo-anim--rodape .logo-anim__resto   { animation-delay: 1.15s; }

/* A logo e DEITADA (1499x991), entao volta a caber com largura maior que a do
   emblema quadrado, que precisava ficar em 64px para nao estourar os 96px do
   header. */
.site-header__brand .logo-anim { width: 116px; }
.site-header__brand img { width: 100%; height: auto; }
.site-footer__logo .logo-anim { width: 176px; }
.site-footer__logo img { width: 100%; height: auto; }
@media (max-width: 760px) { .site-header__brand .logo-anim { width: 88px; } }

@media (prefers-reduced-motion: reduce) {
  .logo-anim__simbolo { clip-path: none; animation: none; }
  .logo-anim__resto { opacity: 1; animation: none; }
}

/* --- 15.2 A REGUA VIRA FAIXA DE DESTAQUE ---------------------------------
   Duas mudancas pedidas: o paragrafo de contexto que abria a dobra saiu (a
   regua e numero, nao texto), e a unidade passou para o LADO do numero.

   "Mais destacada" sem virar dobra escura: o hero acima e o passo a passo
   abaixo ja sao escuros, e escura no meio dos dois seria a terceira colada
   (playbook 14.12). O destaque vem de outro lugar: superficie champagne (a
   faixa mais clara e mais quente da pagina inteira, entre dois pretos), fio
   dourado em cima E embaixo, numero bem maior e cada item numa celula com
   fundo proprio. */
.statbar--claro {
  background: var(--color-primary-soft);
  border-top: 0; border-bottom: 0;
  padding: clamp(38px, 4.6vw, 62px) 0;
}
.statbar--claro::before,
.statbar--claro::after { height: 3px; }
.statbar--claro::after {
  content: ""; position: absolute; top: auto; bottom: 0; left: 0; right: 0;
  inset: auto 0 0 0; z-index: 2;
  background: linear-gradient(90deg, transparent, var(--brand-2) 20%, var(--brand) 50%, var(--brand-2) 80%, transparent);
  background-size: 220% 100%; animation: wireRun 5.5s linear infinite reverse;
  -webkit-mask: none; mask: none; opacity: 1;
}
/* a estamparia de engrenagens fica atras da faixa inteira, bem apagada */
.statbar--claro .statbar__grid::before {
  content: ""; position: absolute; inset: -30px -100vw; z-index: -1; pointer-events: none;
  background: var(--brand); opacity: .06;
  -webkit-mask: var(--stamp-malha) left top/150px repeat;
          mask: var(--stamp-malha) left top/150px repeat;
}

.statbar--claro .statbar__grid {
  display: grid;
  /* `minmax(0, 1fr)` e nao `1fr`: `1fr` e `minmax(auto, 1fr)`, e o card mais
     largo (o do "+100 mil m2") empurrava a propria coluna. Medido: 243, 292,
     262 e 251px em vez de quatro iguais. */
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: clamp(14px, 1.8vw, 24px);
  position: relative;
  isolation: isolate;
  /* a base tem `justify-items: start` numa media query de celular (linha ~2651),
     herdada da grade de 3 colunas antiga. Com card, `start` encolhe cada um ate
     o tamanho do texto e a coluna fica escadinha. */
  justify-items: stretch;
}
.statbar--claro .statbar__item {
  position: relative;
  /* `width: auto` desfaz um `width: max-content` herdado da grade de 3 colunas
     antiga (linha ~2637). Sem ele o card encolhe ate o tamanho do texto e a
     coluna do celular vira escadinha, com cada card de uma largura. */
  width: auto;
  padding: clamp(18px, 2vw, 26px) clamp(16px, 1.8vw, 24px);
  border: 1px solid rgba(149,109,59,.22);
  border-top: 3px solid var(--brand);
  background: rgba(255,255,255,.72);
  box-shadow: 0 10px 30px -22px rgba(10,8,6,.55);
}
.statbar--claro .statbar__item::before { content: none; }   /* a barra lateral saiu: o topo dourado assume */

.statbar--claro .statbar__num {
  order: 0;
  font-family: var(--font-display); font-weight: 700;
  display: flex; align-items: baseline; gap: 0; flex-wrap: nowrap;
  /* medido: com 4,2rem o card do "+100 mil m2" estourava a propria celula de
     262px. A unidade fica na MESMA linha do numero (foi o pedido), entao quem
     cede e o corpo, nao a quebra. */
  font-size: clamp(2.3rem, 3.6vw, 3.5rem);
  line-height: .92; white-space: nowrap;
  color: var(--brand-ink);
  margin: 0 0 6px;
}
.statbar--claro .statbar__mais { font-size: .54em; margin-right: .03em; color: var(--brand-2); }
/* a unidade AO LADO do numero, na mesma linha de base */
.statbar--claro .statbar__num small {
  font-size: .30em; margin-left: .22em; letter-spacing: .01em;
  font-weight: 700; color: var(--brand-ink); white-space: nowrap;
  text-transform: lowercase;
}
.statbar--claro .statbar__label {
  margin: 0; max-width: 24ch;
  color: var(--color-text-mute); font-size: .92rem; line-height: 1.45;
}

@media (max-width: 1080px) {
  .statbar--claro .statbar__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; }
}
@media (max-width: 520px) {
  .statbar--claro .statbar__grid { grid-template-columns: 1fr; }
  .statbar--claro .statbar__label { max-width: none; }
}


/* ==========================================================================
   BLOCO 16 - REGUA DE AUTORIDADE EM FAIXA ESCURA
   Substitui a faixa champagne com card (bloco 15.2). Modelo mandado pelo
   Gabriel em 24/08: numero grande em branco, "+" e unidade no dourado, rotulo
   em caixa alta espacada embaixo, filete vertical entre os itens, sem card.

   As regras do bloco 15.2 apontam para `.statbar--claro`, e esta faixa e
   `.statbar--faixa`: nada la em cima precisa ser desfeito, elas simplesmente
   deixam de casar. O que precisa ser neutralizado e o que aponta para
   `.statbar` puro, que vem da LP comercial e da grade de 3 colunas antiga.

   Contraste sobre #0A0806: branco 19,99:1, champagne 15,82:1, ouro 8,54:1 e
   o rotulo em --color-on-dark-mute 8,95:1. Todos passam com folga.
   ========================================================================== */

.statbar.statbar--faixa {
  position: relative; isolation: isolate;
  background: var(--color-ink);
  border: 0;
  padding: clamp(34px, 4vw, 54px) 0;
  overflow: hidden;
}
/* filete dourado em cima e embaixo: e ele que separa esta faixa do hero acima
   e do passo a passo abaixo, que tambem sao escuros (playbook 14.12) */
.statbar.statbar--faixa::before,
.statbar.statbar--faixa::after {
  content: ""; position: absolute; left: 0; right: 0; height: 2px; z-index: 2;
  background: linear-gradient(90deg, transparent, var(--brand-2) 18%, var(--brand) 50%, var(--brand-2) 82%, transparent);
  background-size: 220% 100%;
  -webkit-mask: none; mask: none; opacity: 1;
}
.statbar.statbar--faixa::before { top: 0; animation: wireRun 5.5s linear infinite; }
.statbar.statbar--faixa::after  { bottom: 0; animation: wireRun 5.5s linear infinite reverse; }

/* a textura de fundo e a estamparia do kit, no lugar dos chevrons do modelo:
   o motivo da HC e a engrenagem, nao um triangulo generico (playbook 15.2) */
.statbar--faixa .statbar__grid::before {
  content: ""; position: absolute; inset: -60px -100vw; z-index: -1; pointer-events: none;
  /* a .07 a estamparia clareava a faixa inteira e ela saia MARROM, mais clara
     que o passo a passo logo abaixo. No modelo a textura mal se ve. */
  background: var(--brand); opacity: .035;
  -webkit-mask: var(--stamp-malha) center/230px repeat;
          mask: var(--stamp-malha) center/230px repeat;
}

.statbar--faixa .statbar__grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 0;
  position: relative;
  isolation: isolate;
  justify-items: stretch;
  align-items: center;
}

.statbar--faixa .statbar__item {
  width: auto;                 /* desfaz o `width: max-content` herdado (linha ~2637) */
  padding: 6px clamp(10px, 1.6vw, 22px);
  text-align: center;
  background: none; border: 0; box-shadow: none;
  position: relative;
}
/* o filete vertical entre os itens, e nao depois do ultimo */
.statbar--faixa .statbar__item::before {
  content: ""; position: absolute; left: 0; top: 50%; transform: translateY(-50%);
  width: 1px; height: 60%;
  background: linear-gradient(180deg, transparent, rgba(246,228,172,.30) 22%, rgba(246,228,172,.30) 78%, transparent);
  -webkit-mask: none; mask: none; opacity: 1;
}
.statbar--faixa .statbar__item:first-child::before { content: none; }

.statbar--faixa .statbar__num {
  order: 0;                    /* desfaz o `order: 1` herdado (linha ~2573) */
  font-family: var(--font-display); font-weight: 700;
  display: flex; align-items: baseline; justify-content: center; gap: 0;
  font-size: clamp(2.2rem, 3.9vw, 3.8rem);
  line-height: .95; white-space: nowrap;
  color: #fff;
  margin: 0 0 10px;
  /* o modelo tem numero chapado, sem o degrade de texto da LP comercial */
  background: none; -webkit-background-clip: border-box; background-clip: border-box;
  -webkit-text-fill-color: #fff;
  animation: none; filter: none; text-shadow: none;
}
.statbar--faixa .statbar__mais {
  font-size: .60em; margin-right: .04em;
  color: var(--brand); -webkit-text-fill-color: var(--brand);
}
.statbar--faixa .statbar__num small {
  font-size: .34em; margin-left: .16em; letter-spacing: .01em;
  font-weight: 600; white-space: nowrap;
  color: var(--brand-light); -webkit-text-fill-color: var(--brand-light);
}

.statbar--faixa .statbar__label {
  margin: 0; max-width: none;
  color: var(--color-on-dark-mute);
  font-family: var(--font-display);
  font-size: clamp(.68rem, .82vw, .78rem);
  font-weight: 600; line-height: 1.4;
  letter-spacing: .14em; text-transform: uppercase;
}

@media (max-width: 900px) {
  .statbar--faixa .statbar__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); row-gap: 30px; }
  /* com duas colunas, o filete some no comeco de cada linha */
  .statbar--faixa .statbar__item:nth-child(odd)::before { content: none; }
}
@media (max-width: 460px) {
  .statbar--faixa .statbar__grid { grid-template-columns: 1fr; row-gap: 26px; }
  .statbar--faixa .statbar__item::before { content: none; }
  /* sem filete vertical, quem separa e uma regua horizontal curta */
  .statbar--faixa .statbar__item + .statbar__item {
    padding-top: 26px;
    border-top: 1px solid rgba(246,228,172,.18);
  }
}
