:root{
  --marmore:#F7F5F0; --marmore-puro:#FCFBF8;
  --nero:#17150F; --grafite:#2B2722;
  --ouro:#B8924A; --ouro-claro:#D8BC82; --ouro-escuro:#94702C;
  --travertino:#E6DAC3; --travertino-escuro:#CDB991;
  --veia:rgba(23,21,15,.12); --veia-clara:rgba(247,245,240,.16);
  --serif:'Cormorant Garamond',Georgia,serif;
  --grotesk:'Archivo','Helvetica Neue',Arial,sans-serif;
  --mono:'IBM Plex Mono',ui-monospace,Menlo,monospace;
  --ease:cubic-bezier(.16,1,.3,1);
}
*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth}
body{background:var(--marmore);color:var(--nero);font-family:var(--grotesk);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;overflow-x:clip}
::selection{background:var(--ouro);color:var(--marmore-puro)}
img{display:block;max-width:100%}
a{color:inherit;text-decoration:none}

/* ---- texturas de pedra em CSS (fallback / acentos) ---- */
.slab-marmore{background-color:#f4f1ea;background-image:linear-gradient(118deg,rgba(180,146,74,.05) 0%,transparent 30%),radial-gradient(120% 90% at 18% 12%,rgba(255,255,255,.9),transparent 55%),radial-gradient(90% 120% at 88% 90%,rgba(205,185,145,.18),transparent 60%),repeating-linear-gradient(64deg,transparent 0 22px,rgba(120,110,95,.05) 22px 23px,transparent 23px 46px),linear-gradient(160deg,#fbfaf7,#ece6d9)}
.slab-nero{background-color:#17150F;color:var(--marmore);background-image:radial-gradient(90% 120% at 80% 8%,rgba(184,146,74,.16),transparent 55%),repeating-linear-gradient(58deg,transparent 0 28px,rgba(216,188,130,.05) 28px 29px,transparent 29px 60px),radial-gradient(120% 90% at 12% 92%,rgba(120,110,95,.18),transparent 60%),linear-gradient(150deg,#211e17,#100e0a)}
.slab-travertino{background-color:#E6DAC3;background-image:repeating-linear-gradient(0deg,rgba(150,120,70,.06) 0 5px,transparent 5px 11px),radial-gradient(120% 100% at 30% 20%,rgba(255,252,245,.7),transparent 55%),linear-gradient(160deg,#ece2cf,#d8c6a0)}
.vein-gold{height:1px;border:0;background:linear-gradient(90deg,transparent,var(--ouro-claro) 18%,var(--ouro) 50%,var(--ouro-claro) 82%,transparent)}
.vein-ink{height:1px;border:0;background:linear-gradient(90deg,transparent,var(--veia) 20%,var(--veia) 80%,transparent)}

/* grão + cursor (ref. DS) */
.grain::after{content:"";position:fixed;inset:-50%;z-index:90;pointer-events:none;opacity:.04;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='2'/%3E%3C/filter%3E%3Crect width='160' height='160' filter='url(%23n)' opacity='0.6'/%3E%3C/svg%3E");animation:grain 7s steps(10) infinite}
@keyframes grain{0%,100%{transform:translate(0,0)}20%{transform:translate(-3%,2%)}40%{transform:translate(2%,-3%)}60%{transform:translate(-2%,-2%)}80%{transform:translate(3%,3%)}}
.cursor{position:fixed;z-index:99;top:0;left:0;width:8px;height:8px;border-radius:50%;background:var(--ouro);pointer-events:none;transform:translate(-50%,-50%);transition:width .3s var(--ease),height .3s var(--ease),opacity .3s,background .3s}
.cursor.is-link{width:46px;height:46px;background:transparent;border:1px solid var(--ouro)}
@media(pointer:coarse){.cursor{display:none}}

/* tipografia / utilitários */
.disp{font-family:var(--serif);font-weight:500;line-height:.98;letter-spacing:-.01em}
.gold-foil{background:linear-gradient(92deg,var(--ouro-escuro),var(--ouro-claro) 40%,#fff3d4 50%,var(--ouro-claro) 60%,var(--ouro-escuro));-webkit-background-clip:text;background-clip:text;color:transparent}
.engraved{color:#cabfa6;text-shadow:0 1px 0 rgba(255,255,255,.5),0 -1px 1px rgba(0,0,0,.25)}
.eyebrow{font-family:var(--mono);font-size:11px;letter-spacing:.28em;text-transform:uppercase;color:var(--ouro-escuro)}
.section-num{font-family:var(--mono);font-size:11px;letter-spacing:.28em;color:var(--ouro)}

/* reveal on scroll */
.reveal{opacity:0;transform:translateY(26px);will-change:opacity,transform}
.reveal.in{opacity:1;transform:none;transition:opacity .9s var(--ease),transform .9s var(--ease)}
.row{display:block;overflow:hidden}
.row>span{display:inline-block;transform:translateY(110%);transition:transform 1s var(--ease)}
.lit .row>span{transform:none}

/* marquee */
.marquee{white-space:nowrap;overflow:hidden}
.marquee .track{display:inline-block;will-change:transform;animation:slide 32s linear infinite}
@keyframes slide{from{transform:translateX(0)}to{transform:translateX(-50%)}}

/* botões */
.btn-gold{display:inline-block;background:var(--nero);color:var(--marmore);font-family:var(--mono);font-size:12px;letter-spacing:.2em;text-transform:uppercase;padding:16px 32px;position:relative;overflow:hidden;transition:color .5s var(--ease)}
.btn-gold span{position:relative;z-index:2}
.btn-gold::before{content:"";position:absolute;inset:0;background:linear-gradient(92deg,var(--ouro-escuro),var(--ouro-claro));transform:translateY(101%);transition:transform .5s var(--ease);z-index:1}
.btn-gold:hover{color:var(--nero)}
.btn-gold:hover::before{transform:translateY(0)}
.btn-ghost{display:inline-block;border:1px solid var(--veia);font-family:var(--mono);font-size:12px;letter-spacing:.2em;text-transform:uppercase;padding:15px 30px;transition:border-color .4s,background .4s,color .4s}
.btn-ghost:hover{border-color:var(--ouro);color:var(--ouro-escuro)}
.btn-ghost.on-dark{border-color:var(--veia-clara);color:var(--marmore)}
.btn-ghost.on-dark:hover{border-color:var(--ouro-claro);color:var(--ouro-claro)}
.link-underline{position:relative;font-family:var(--mono);font-size:12px;letter-spacing:.18em;text-transform:uppercase}
.link-underline::after{content:"";position:absolute;left:0;bottom:-4px;height:1px;width:0;background:var(--ouro);transition:width .4s var(--ease)}
.link-underline:hover::after{width:100%}

/* chips / nav */
.chip{display:inline-flex;align-items:center;gap:8px;border:1px solid var(--veia);border-radius:999px;padding:8px 17px;font-family:var(--mono);font-size:11px;letter-spacing:.12em;text-transform:uppercase;transition:border-color .35s,background .35s,color .35s;cursor:pointer;background:transparent}
.chip:hover{border-color:var(--ouro)}
.chip.active{border-color:var(--ouro);background:var(--nero);color:var(--marmore)}
.nav-link{font-family:var(--mono);font-size:11px;letter-spacing:.16em;text-transform:uppercase;opacity:.7;transition:opacity .3s,color .3s}
.nav-link:hover{opacity:1;color:var(--ouro-escuro)}

/* cards */
.card{transition:transform .6s var(--ease),box-shadow .6s var(--ease)}
.card:hover{transform:translateY(-6px);box-shadow:0 30px 60px -30px rgba(23,21,15,.45)}
.amb{position:relative;border-radius:10px;overflow:hidden;aspect-ratio:4/5}
.amb img{width:100%;height:100%;object-fit:cover;filter:grayscale(.35) contrast(1.04);transition:filter .8s var(--ease),transform 1.4s var(--ease)}
.amb:hover img{filter:grayscale(0) contrast(1.05);transform:scale(1.05)}
.amb .veil{position:absolute;inset:0;background:linear-gradient(to top,rgba(17,21,15,.82) 0%,rgba(17,21,15,.15) 45%,transparent 70%)}
.amb .cap{position:absolute;left:0;right:0;bottom:0;padding:22px;color:var(--marmore)}

/* materiais */
.mat{border:1px solid var(--veia);border-radius:8px;overflow:hidden;background:var(--marmore-puro);transition:transform .4s var(--ease),border-color .4s}
.mat:hover{transform:translateY(-4px);border-color:var(--ouro)}
.mat img{aspect-ratio:1/1;width:100%;object-fit:cover}

/* portfolio grid (masonry-ish) */
.pf{border-radius:8px;overflow:hidden;background:#ece6d9}
.pf img{width:100%;height:100%;object-fit:cover;filter:grayscale(.25) contrast(1.04);transition:filter .8s var(--ease),transform 1.4s var(--ease)}
.pf:hover img{filter:grayscale(0);transform:scale(1.04)}

/* faq */
details.faq{border-bottom:1px solid var(--veia)}
details.faq summary{list-style:none;cursor:pointer;padding:22px 0;display:flex;justify-content:space-between;align-items:center;gap:20px;font-family:var(--serif);font-size:clamp(19px,2.4vw,26px);font-weight:500}
details.faq summary::-webkit-details-marker{display:none}
details.faq summary .pl{font-family:var(--mono);color:var(--ouro);font-size:22px;transition:transform .3s}
details.faq[open] summary .pl{transform:rotate(45deg)}
details.faq .ans{padding:0 0 22px;color:var(--grafite);line-height:1.75;max-width:760px}

/* input */
.fld{width:100%;padding:14px 0;background:transparent;border:0;border-bottom:1px solid var(--veia);font-family:var(--grotesk);font-size:15px;outline:none;transition:border-color .3s}
.fld:focus{border-color:var(--ouro)}
.fld::placeholder{color:#a99e89}

.whats-float{position:fixed;right:18px;bottom:18px;z-index:80;width:58px;height:58px;border-radius:50%;background:#25D366;display:flex;align-items:center;justify-content:center;box-shadow:0 12px 30px -8px rgba(0,0,0,.4);transition:transform .3s}
.whats-float:hover{transform:scale(1.08)}
.hero-mark{will-change:transform}

/* ===================== BLOG ===================== */
.post-body{max-width:760px;font-size:17px;line-height:1.85;color:var(--grafite)}
.post-body>p{margin:0 0 18px}
.post-body h2{font-family:var(--serif);font-weight:600;font-size:clamp(26px,3.4vw,38px);line-height:1.15;color:var(--nero);margin:40px 0 14px;letter-spacing:-.01em}
.post-body h3{font-family:var(--serif);font-weight:600;font-size:clamp(20px,2.6vw,26px);color:var(--nero);margin:28px 0 10px}
.post-body ul,.post-body ol{margin:0 0 18px;padding-left:22px}
.post-body li{margin:7px 0}
.post-body a{color:var(--ouro-escuro);text-decoration:underline;text-underline-offset:3px;text-decoration-color:var(--ouro-claro);transition:text-decoration-color .3s}
.post-body a:hover{text-decoration-color:var(--ouro)}
.post-body strong{color:var(--nero);font-weight:700}
.post-body blockquote{border-left:3px solid var(--ouro);padding:4px 0 4px 22px;margin:26px 0;font-family:var(--serif);font-size:23px;font-style:italic;color:var(--nero);line-height:1.4}
.post-body table{width:100%;border-collapse:collapse;margin:24px 0;font-size:15px}
.post-body th,.post-body td{border:1px solid var(--veia);padding:10px 13px;text-align:left;vertical-align:top}
.post-body th{background:var(--travertino);font-family:var(--mono);font-size:11px;text-transform:uppercase;letter-spacing:.06em;color:var(--nero)}
.post-body img{border-radius:10px;margin:24px 0;max-width:100%}
.breadcrumb{font-family:var(--mono);font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--ouro-escuro)}
.breadcrumb a{opacity:.65}.breadcrumb a:hover{opacity:1}
.post-card{display:flex;flex-direction:column;border:1px solid var(--veia);border-radius:12px;overflow:hidden;background:var(--marmore-puro);transition:transform .4s var(--ease),box-shadow .4s var(--ease);height:100%}
.post-card:hover{transform:translateY(-4px);box-shadow:0 30px 60px -40px rgba(23,21,15,.4)}
.post-card .ph{aspect-ratio:16/10;overflow:hidden;background:#ece6d9}
.post-card .ph img{width:100%;height:100%;object-fit:cover;filter:grayscale(.3);transition:filter .6s,transform 1.2s var(--ease)}
.post-card:hover .ph img{filter:grayscale(0);transform:scale(1.04)}
