/* Estilos das duas páginas (index.html e galeria.html) e da 404.html */
:root{padding-top:env(safe-area-inset-top,0px);padding-bottom:env(safe-area-inset-bottom,0px)}

/* Layout: o mesmo mundo da pré-venda. Fundo de oficina escuro, fotos P&B com granulado e marcas de registro de serigrafia; "a tinta é a única cor": o vermelho da tinta é o único destaque, usado em pontos pequenos. Faixas horizontais com fio fino entre elas. */
:root{
  --bg:#0e0e0d;
  --surface:#1d1d1b;
  --line:#2e2e2b;
  --fg:#f1f1ee;
  --muted:#8d8d87;
  --ink:#7d8288;
  --accent:#ec5340; /* vermelho da tinta: contraste 5,4 sobre o fundo */
  --red:#e0402f;
  --wa:#25d366; /* verde do WhatsApp */
  --wa-hover:#4be083;
  --err:#ff8f7a;
  --display:"Montserrat",system-ui,-apple-system,"Segoe UI",sans-serif;
  --body:"Montserrat",system-ui,-apple-system,"Segoe UI",sans-serif;
  --mono:"IBM Plex Mono",ui-monospace,"SFMono-Regular",Menlo,monospace;
  color-scheme:dark;
}
*{box-sizing:border-box}
[hidden]{display:none!important}
html{scroll-behavior:smooth}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
html,body{background:var(--bg)}
body{margin:0;color:var(--fg);font-family:var(--body);font-size:15px;line-height:1.6;-webkit-font-smoothing:antialiased}
img{display:block;max-width:100%}
a{color:inherit}
button,input,select,textarea{font:inherit;color:inherit}
:focus-visible{outline:2px solid var(--fg);outline-offset:3px}
body::before{content:"";position:fixed;inset:0 0 auto;height:env(safe-area-inset-top,0px);z-index:30;background:var(--bg)}

.in{max-width:1200px;margin:0 auto;padding-left:max(16px,env(safe-area-inset-left,0px));padding-right:max(16px,env(safe-area-inset-right,0px))}
.band{border-top:1px solid var(--line)}
.band > .in{padding-block:72px}
@media (min-width:900px){.band > .in{padding-block:104px}}

.eyebrow{font-family:var(--mono);font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--muted)}
/* quadradinho de tinta antes do rótulo de cada seção */
.copyblock > .eyebrow::before,.head > .eyebrow:first-child::before,.pv .eyebrow:first-child::before,.g-head .eyebrow::before,.nf .eyebrow::before{content:"";display:inline-block;width:7px;height:7px;background:var(--accent);margin-right:10px;vertical-align:1px}
::selection{background:var(--accent);color:#fff}
h1,h2,h3{font-family:var(--display);margin:0;text-wrap:balance}
h2.sec{font-weight:900;font-size:clamp(32px,6vw,56px);line-height:.95;letter-spacing:-.02em;text-transform:uppercase;margin-top:10px;overflow-wrap:anywhere}
.lead{color:var(--muted);max-width:56ch;margin:16px 0 0;font-size:16px}
.head{display:grid;gap:0;margin-bottom:40px}

/* botões */
.btn{display:inline-flex;align-items:center;justify-content:space-between;gap:14px;padding:16px 20px;font-family:var(--display);font-weight:800;font-size:13px;letter-spacing:.14em;text-transform:uppercase;text-decoration:none;cursor:pointer;border:1px solid var(--fg)}
.btn.solid{background:var(--fg);color:var(--bg)}
.btn.solid:hover{background:#fff}
.btn.ghost{background:transparent;color:var(--fg)}
.btn.ghost:hover{background:var(--fg);color:var(--bg)}
.btn .arr{font-family:var(--mono);font-weight:500;letter-spacing:0}

/* topo */
.top{position:sticky;top:env(safe-area-inset-top,0px);z-index:20;background:rgba(14,14,13,.92);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);border-bottom:1px solid var(--line)}
.top .in{display:flex;align-items:center;justify-content:space-between;gap:16px;height:56px}
.logo{display:inline-flex;align-items:center;gap:10px;font-family:var(--display);font-weight:900;letter-spacing:.08em;font-size:15px;text-decoration:none}
.logo .mark{width:28px;height:28px;color:var(--fg);flex:none}
.foot .mark{display:block;width:56px;height:56px;color:var(--fg);margin-bottom:18px}
.foot dd a.go{display:inline-block;margin-top:6px;font-family:var(--mono);font-size:11px;letter-spacing:.12em;text-transform:uppercase}
.nav{display:none;gap:28px;font-family:var(--mono);font-size:11px;letter-spacing:.12em;text-transform:uppercase}
.nav a{text-decoration:none;color:var(--muted)}
.nav a:hover{color:var(--fg)}
.top .btn{padding:9px 14px;font-size:11px}
@media (min-width:860px){.nav{display:flex}}

/* hero */
.hero .in{display:grid;gap:40px;padding-block:48px 72px}
@media (min-width:900px){.hero .in{grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr);align-items:end;padding-block:72px 104px}}
.hero h1{font-weight:900;font-size:clamp(46px,9.5vw,112px);line-height:.88;letter-spacing:-.03em;text-transform:uppercase;margin-top:14px;overflow-wrap:anywhere}
.hero h1 span{color:var(--fg)}
.hero .lead{font-size:17px;color:#c4c4bf}
.ctas{display:flex;gap:10px;flex-wrap:wrap;margin-top:28px}
/* números do topo */
.stats{margin:36px 0 0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));border-top:1px solid var(--line);max-width:560px}
.stats > div{display:grid;gap:6px;align-content:start;padding:18px 16px 18px 0;border-bottom:1px solid var(--line);min-width:0}
.stats > div:nth-child(odd){border-right:1px solid var(--line)}
.stats > div:nth-child(even){padding-left:18px;padding-right:0}
.stats dd{order:-1;margin:0;font-family:var(--display);font-weight:900;font-size:clamp(34px,5.2vw,50px);line-height:1;letter-spacing:-.03em;font-variant-numeric:tabular-nums;white-space:nowrap}
.stats dd small{font-size:.55em;color:var(--accent);margin-left:2px;vertical-align:.45em}
.stats dt{font-family:var(--mono);font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);line-height:1.45}
.stats dt a{text-decoration:none}
.stats dt a:hover{color:var(--fg);text-decoration:underline;text-underline-offset:3px}

/* faixa de clientes */
.clients{border-top:1px solid var(--line);padding-block:28px 34px;overflow:hidden}
.clients .eyebrow{margin:0 0 18px;font-weight:400}
.marquee{display:flex;overflow:hidden;-webkit-mask-image:linear-gradient(90deg,transparent,#000 7%,#000 93%,transparent);mask-image:linear-gradient(90deg,transparent,#000 7%,#000 93%,transparent)}
.marquee ul{flex:none;display:flex;align-items:center;margin:0;padding:0;list-style:none;animation:marquee 60s linear infinite}
.marquee li{display:flex;align-items:center;font-family:var(--display);font-weight:900;font-size:clamp(24px,3.6vw,40px);line-height:1.1;letter-spacing:-.01em;text-transform:uppercase;white-space:nowrap;color:#c4c4bf}
.marquee li::after{content:"";flex:none;width:22px;height:22px;margin:0 30px;background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30' fill='none' stroke='%23ec5340' stroke-width='1.6'%3E%3Ccircle cx='15' cy='15' r='8'/%3E%3Cpath d='M15 0v30M0 15h30'/%3E%3C/svg%3E") center/contain no-repeat}
@keyframes marquee{to{transform:translateX(-100%)}}
@media (prefers-reduced-motion:reduce){
  .marquee{-webkit-mask-image:none;mask-image:none}
  .marquee ul{flex:1 1 100%;animation:none;flex-wrap:wrap;row-gap:10px;padding-inline:max(16px,env(safe-area-inset-left,0px))}
  .marquee ul[aria-hidden]{display:none}
}

/* fotos e espaços de foto */
.frame{position:relative;background:#000;overflow:hidden;max-width:100%}
.frame img,.frame video{width:100%;height:100%;object-fit:cover}
.frame::after{content:"";position:absolute;inset:10px;pointer-events:none;opacity:.7;background:
  linear-gradient(var(--fg),var(--fg)) top left/16px 1px no-repeat,
  linear-gradient(var(--fg),var(--fg)) top left/1px 16px no-repeat,
  linear-gradient(var(--fg),var(--fg)) top right/16px 1px no-repeat,
  linear-gradient(var(--fg),var(--fg)) top right/1px 16px no-repeat,
  linear-gradient(var(--fg),var(--fg)) bottom left/16px 1px no-repeat,
  linear-gradient(var(--fg),var(--fg)) bottom left/1px 16px no-repeat,
  linear-gradient(var(--fg),var(--fg)) bottom right/16px 1px no-repeat,
  linear-gradient(var(--fg),var(--fg)) bottom right/1px 16px no-repeat}
.grain{pointer-events:none;position:absolute;inset:0;opacity:.18;mix-blend-mode:overlay;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='.9' numOctaves='2'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E")}
.ph{display:flex;align-items:flex-end;padding:22px;background-color:var(--surface);background-image:radial-gradient(circle,rgba(125,130,136,.32) 1.1px,transparent 1.4px);background-size:9px 9px}
.ph span{position:relative;z-index:1;font-family:var(--mono);font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--muted);background:var(--bg);padding:4px 8px}
.reg{position:absolute;top:22px;right:22px;width:30px;height:30px;z-index:2;opacity:.85}
.hero .frame{aspect-ratio:4/5}

.vtag{position:absolute;left:14px;bottom:14px;z-index:2;font-family:var(--mono);font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--fg);background:rgba(14,14,13,.7);padding:4px 8px}

/* fotos que trocam sozinhas */
button.frame{display:block;width:100%;padding:0;border:0;cursor:zoom-in;font:inherit;color:inherit;text-align:left}
.slides{position:absolute;inset:0;display:block}
.slides img,.slides video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:0;transition:opacity 1.4s ease}
.slides img.on,.slides video.on{opacity:1}
@media (prefers-reduced-motion:reduce){.slides img,.slides video{transition:none}}
.dots{position:absolute;left:14px;bottom:14px;z-index:2;display:flex;gap:5px}
.dots i{width:14px;height:2px;background:rgba(241,241,238,.35)}
.dots i.on{background:var(--fg)}
.works{grid-auto-flow:row dense}
.work.tall{grid-row:span 2;grid-template-rows:1fr auto}
.work.tall .frame{aspect-ratio:auto;height:100%;min-height:320px}
@media (min-width:900px){.work.tall-lg{grid-row:span 2;grid-template-rows:1fr auto}.work.tall-lg .frame{aspect-ratio:auto;height:100%;min-height:320px}}
.work figcaption b,.work figcaption span{transition:opacity .4s}

/* foto ampliada */
.lb{position:fixed;inset:0;z-index:40;background:rgba(8,8,7,.96);display:grid;grid-template-rows:auto 1fr auto;padding:calc(12px + env(safe-area-inset-top,0px)) max(16px,env(safe-area-inset-right,0px)) calc(16px + env(safe-area-inset-bottom,0px)) max(16px,env(safe-area-inset-left,0px))}
.lb-top{display:flex;justify-content:space-between;align-items:center;gap:12px;min-height:44px}
.lb-cap{font-size:14px;min-width:0}
.lb-cap b{font-weight:700;margin-right:10px}
.lb-cap span{font-family:var(--mono);font-size:12px;color:var(--muted)}
.lb-x,.lb-nav{border:1px solid var(--line);background:transparent;color:var(--fg);cursor:pointer;font-family:var(--mono);font-size:13px;letter-spacing:.08em;text-transform:uppercase;padding:10px 14px}
.lb-x:hover,.lb-nav:hover{border-color:var(--fg)}
.lb-stage{min-height:0;display:flex;align-items:center;justify-content:center;padding-block:12px}
.lb-stage img{max-width:100%;max-height:100%;object-fit:contain}
.lb-bot{display:flex;justify-content:space-between;align-items:center;gap:12px}
.lb-count{font-family:var(--mono);font-size:12px;color:var(--muted);font-variant-numeric:tabular-nums}

/* passos */
.steps{list-style:none;margin:0;padding:0;display:grid;gap:0;counter-reset:s;border-top:1px solid var(--line)}
@media (min-width:760px){.steps{grid-template-columns:repeat(4,minmax(0,1fr));border-top:0}}
.steps li{counter-increment:s;padding:24px 0;border-bottom:1px solid var(--line);display:grid;gap:8px;align-content:start}
@media (min-width:760px){.steps li{padding:0 24px 0 0;border-bottom:0;border-top:1px solid var(--fg);padding-top:20px;margin-right:16px}.steps li:first-child{border-top-color:var(--accent)}}
.steps li::before{content:counter(s,decimal-leading-zero);font-family:var(--mono);font-size:12px;color:var(--accent);letter-spacing:.1em}
.steps h3{font-weight:800;font-size:18px;text-transform:uppercase;letter-spacing:.01em}
.steps p{margin:0;color:var(--muted);font-size:14px}

/* pré-venda */
.pv{display:grid;gap:40px}
@media (min-width:900px){.pv{grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:center}}
.pv ul{list-style:none;padding:0;margin:24px 0 28px;display:grid;gap:12px}
.pv li{display:grid;grid-template-columns:22px 1fr;gap:10px;font-size:15px}
.pv li::before{content:"✓";font-family:var(--mono);color:var(--accent)}
.sheet{border:1px solid var(--line);background:var(--surface);font-variant-numeric:tabular-nums;min-width:0}
.sheet header{display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap;padding:14px 16px;border-bottom:1px solid var(--line)}
.sheet header b{font-family:var(--display);font-weight:800;text-transform:uppercase;letter-spacing:.06em;font-size:13px}
.sizes{display:grid;grid-template-columns:repeat(6,minmax(0,1fr))}
.sizes div{padding:16px 6px;text-align:center;border-right:1px solid var(--line);display:grid;gap:4px}
.sizes div:last-child{border-right:0}
.sizes small{font-family:var(--mono);font-size:11px;color:var(--muted);letter-spacing:.08em}
.sizes b{font-family:var(--display);font-weight:800;font-size:clamp(18px,3vw,26px)}
.bars{padding:0 16px 16px;display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:6px;align-items:end;height:96px;border-bottom:1px solid var(--line)}
.bars i{display:block;background:var(--red)}
.sheet footer{display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap;padding:14px 16px;font-family:var(--mono);font-size:12px;color:var(--muted)}
.sheet footer b{color:var(--fg);font-weight:500}

/* produções */
.works{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
@media (min-width:900px){.works{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}}
.work{display:grid;gap:10px;margin:0;min-width:0}
.work .frame{aspect-ratio:1/1}
.work.wide{grid-column:span 2}
.work.wide .frame{aspect-ratio:2/1}
.work .frame video{position:absolute;inset:0;z-index:1}
.vtag.top{top:14px;bottom:auto}
.work figcaption{display:flex;justify-content:space-between;gap:10px;flex-wrap:wrap;font-size:13px}
.work figcaption b{font-weight:700}
.work figcaption span{font-family:var(--mono);font-size:12px;color:var(--muted)}
.more{margin-top:28px;display:flex;justify-content:space-between;align-items:center;gap:16px;flex-wrap:wrap;color:var(--muted);font-size:14px}

/* depoimentos */
.score{display:flex;align-items:baseline;gap:14px;flex-wrap:wrap;margin-top:18px}
.score b{font-family:var(--display);font-weight:900;font-size:44px;line-height:1;font-variant-numeric:tabular-nums}
.score span{font-family:var(--mono);font-size:12px;color:var(--muted);letter-spacing:.08em;text-transform:uppercase}
.stars{color:var(--fg);letter-spacing:.18em;font-size:14px}
.reviews{display:grid;gap:12px;grid-template-columns:1fr}
@media (min-width:760px){.reviews{grid-template-columns:repeat(3,minmax(0,1fr))}}
.review{margin:0;border:1px solid var(--line);padding:22px;display:grid;gap:16px;align-content:space-between;min-width:0}
.review blockquote{margin:0;font-size:16px;line-height:1.55}
.review figcaption{display:grid;gap:2px;border-top:1px solid var(--line);padding-top:14px;font-size:13px}
.review figcaption b{font-weight:700}
.review figcaption span{font-family:var(--mono);font-size:11px;color:var(--muted);letter-spacing:.08em;text-transform:uppercase}

/* serviços */
.svc{display:grid;grid-template-columns:1fr;border-top:1px solid var(--line)}
@media (min-width:640px){.svc{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (min-width:980px){.svc{grid-template-columns:repeat(3,minmax(0,1fr))}}
.svc article{padding:28px 0;border-bottom:1px solid var(--line);display:grid;gap:10px;align-content:start;min-width:0}
@media (min-width:640px){.svc article{padding:28px 28px 28px 0}}
.svc .tag{font-family:var(--mono);font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--accent)}
.svc h3{font-weight:800;font-size:21px;text-transform:uppercase;letter-spacing:-.005em;line-height:1.1}
.svc p{margin:0;color:var(--muted);font-size:14px;max-width:44ch}

/* orçamento */
.quote{display:grid;gap:40px}
@media (min-width:980px){.quote{grid-template-columns:minmax(0,1.15fr) minmax(0,.85fr);align-items:start}}
.qform{display:grid;gap:28px;min-width:0}
fieldset{border:0;margin:0;padding:0;display:grid;gap:10px;min-width:0}
legend,.lbl{font-family:var(--mono);font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--muted);padding:0;margin-bottom:10px}
.chips{display:flex;flex-wrap:wrap;gap:6px}
.chips label{position:relative}
.chips input{position:absolute;opacity:0;inset:0;margin:0;cursor:pointer}
.chips span{display:block;padding:10px 14px;border:1px solid var(--line);font-weight:700;font-size:13px;letter-spacing:.04em;cursor:pointer;transition:border-color .15s,background .15s}
.chips label:hover span{border-color:var(--muted)}
.chips input:checked + span{border-color:var(--fg);background:var(--surface)}
.chips input:focus-visible + span{outline:2px solid var(--fg);outline-offset:2px}
.row2{display:grid;gap:14px}
@media (min-width:560px){.row2{grid-template-columns:repeat(2,minmax(0,1fr))}}
.f{display:grid;gap:6px;min-width:0}
.f input,.f textarea{width:100%;font-family:var(--body);font-size:16px;background:var(--surface);border:1px solid var(--line);padding:13px 14px;border-radius:0;outline:none;color:var(--fg)}
.f input:focus,.f textarea:focus{border-color:var(--fg)}
.f textarea{min-height:88px;resize:vertical}
.f .lbl{margin:0}
.f .opt{text-transform:none;letter-spacing:0}
.err{color:var(--err);font-size:13px;min-height:1px}
.preview{position:relative;border:1px solid var(--line);background:var(--surface);display:grid;min-width:0}
@media (min-width:980px){.preview{position:sticky;top:calc(env(safe-area-inset-top,0px) + 76px)}}
.preview header{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:14px 16px;border-bottom:1px solid var(--line)}
.preview pre{margin:0;padding:18px 16px;white-space:pre-wrap;word-break:break-word;font-family:var(--mono);font-size:13px;line-height:1.7;color:#d9d9d4;min-height:220px}
.preview .actions{display:grid;gap:8px;padding:16px;border-top:1px solid var(--line)}
.preview .btn{width:100%}
.preview .note{font-size:12px;color:var(--muted);margin:0}
.copy{border:1px solid var(--line);background:transparent;font-family:var(--mono);font-size:11px;letter-spacing:.1em;text-transform:uppercase;padding:6px 10px;cursor:pointer;color:var(--muted)}
.copy:hover{border-color:var(--fg);color:var(--fg)}

/* foto do pedido */
.upload{position:relative;display:flex;align-items:center;gap:14px;flex-wrap:wrap;border:1px dashed var(--line);padding:14px;cursor:pointer;min-width:0}
.upload:hover{border-color:var(--muted)}
.upload input{position:absolute;opacity:0;width:1px;height:1px}
.upload:focus-within{outline:2px solid var(--fg);outline-offset:2px}
.upload .ubtn{border:1px solid var(--fg);padding:9px 14px;font-weight:700;font-size:12px;letter-spacing:.1em;text-transform:uppercase}
.upload .fname{font-size:13px;color:var(--muted);min-width:0;word-break:break-all;flex:1}
.upload.has{border-style:solid;border-color:var(--fg)}
.upload.has .fname{color:var(--fg)}
.upload img{width:56px;height:56px;object-fit:cover;border:1px solid var(--line)}
.clear{border:0;background:transparent;color:var(--muted);font-family:var(--mono);font-size:11px;letter-spacing:.1em;text-transform:uppercase;cursor:pointer;padding:6px}
.clear:hover{color:var(--fg)}
.attach{display:flex;align-items:center;gap:12px;padding:0 16px 16px;font-size:13px;color:var(--muted)}
.attach img{width:48px;height:48px;object-fit:cover;border:1px solid var(--line)}

/* perguntas */
.faq{display:grid;border-top:1px solid var(--line);max-width:860px}
.faq details{border-bottom:1px solid var(--line)}
.faq summary{list-style:none;cursor:pointer;display:flex;justify-content:space-between;gap:16px;padding:20px 0;font-weight:700;font-size:17px}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"+";font-family:var(--mono);font-weight:400;color:var(--muted);font-size:20px;line-height:1}
.faq details[open] summary::after{content:"–"}
.faq p{margin:0 0 22px;color:var(--muted);max-width:64ch}

/* rodapé */
.foot .in{padding-block:56px calc(96px + env(safe-area-inset-bottom,0px));display:grid;gap:36px}
@media (min-width:860px){.foot .in{grid-template-columns:1.4fr repeat(4,minmax(0,1fr))}}
.foot .big{font-family:var(--display);font-weight:900;font-size:clamp(40px,8vw,72px);line-height:.9;letter-spacing:-.02em;text-transform:uppercase}
.foot dl{margin:0;display:grid;gap:4px}
.foot dt{font-family:var(--mono);font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--muted)}
.foot dd{margin:0 0 14px;font-size:15px;user-select:text}
.foot dd a{text-underline-offset:3px}
.legal{grid-column:1/-1;border-top:1px solid var(--line);padding-top:18px;display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap;font-family:var(--mono);font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--muted)}

/* WhatsApp fixo */
.wa{position:fixed;z-index:25;right:calc(16px + env(safe-area-inset-right,0px));bottom:calc(16px + env(safe-area-inset-bottom,0px));display:flex;align-items:center;gap:10px;background:var(--wa);color:#0b0b0a;text-decoration:none;padding:13px 16px;font-family:var(--display);font-weight:800;font-size:12px;letter-spacing:.12em;text-transform:uppercase;box-shadow:0 6px 24px rgba(0,0,0,.45)}
.wa svg{width:18px;height:18px}
.wa:hover{background:var(--wa-hover)}
.btn.wa-btn{background:var(--wa);border-color:var(--wa);color:#0b0b0a}
.btn.wa-btn:hover{background:var(--wa-hover);border-color:var(--wa-hover)}
.btn.wa-btn svg{width:18px;height:18px;flex:none}

@media (prefers-reduced-motion:no-preference){
  .hero .copyblock > *{animation:rise .7s cubic-bezier(.2,.7,.2,1) both}
  .hero .copyblock > *:nth-child(2){animation-delay:.06s}
  .hero .copyblock > *:nth-child(3){animation-delay:.12s}
  .hero .copyblock > *:nth-child(4){animation-delay:.18s}
  .hero .copyblock > *:nth-child(5){animation-delay:.24s}
  @keyframes rise{from{transform:translateY(12px);opacity:.001}to{transform:none;opacity:1}}
}

/* galeria */
.nav a[aria-current="page"]{color:var(--fg)}
.g-head{display:grid;gap:18px;padding-block:48px 28px}
@media (min-width:900px){.g-head{padding-block:72px 36px}}
.g-head h1{font-family:var(--display);font-weight:900;font-size:clamp(46px,9vw,104px);line-height:.9;letter-spacing:-.03em;text-transform:uppercase;margin:6px 0 0}
.g-head .lead{margin:0}
.filters{position:sticky;top:calc(env(safe-area-inset-top,0px) + 56px);z-index:15;background:rgba(14,14,13,.94);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);border-block:1px solid var(--line)}
.filters .in{display:flex;gap:6px;overflow-x:auto;padding-block:12px;scrollbar-width:none}
.filters .in::-webkit-scrollbar{display:none}
.chip-f{flex:none;border:1px solid var(--line);background:transparent;color:var(--fg);padding:10px 14px;font-weight:700;font-size:13px;letter-spacing:.02em;cursor:pointer;white-space:nowrap}
.chip-f span{font-family:var(--mono);font-weight:400;font-size:11px;color:var(--muted);margin-left:4px}
.chip-f:hover{border-color:var(--muted)}
.chip-f[aria-pressed="true"]{border-color:var(--fg);background:var(--fg);color:var(--bg)}
.chip-f[aria-pressed="true"] span{color:var(--bg)}
.grid-g{columns:2 160px;column-gap:8px;padding-block:20px 8px}
@media (min-width:760px){.grid-g{columns:3 220px;column-gap:12px}}
@media (min-width:1100px){.grid-g{columns:4 240px}}
.g-item{break-inside:avoid;margin:0 0 14px;display:grid;gap:8px}
.g-open{position:relative;display:block;width:100%;padding:0;border:0;background:var(--surface);cursor:zoom-in;overflow:hidden}
.g-open img,.g-open video{display:block;width:100%;height:auto;transition:transform .5s ease}
.g-open:hover img,.g-open:hover video{transform:scale(1.025)}
@media (prefers-reduced-motion:reduce){.g-open img,.g-open video{transition:none}.g-open:hover img,.g-open:hover video{transform:none}}
.play{position:absolute;top:10px;right:10px;font-size:10px;line-height:1;color:var(--fg);background:rgba(14,14,13,.7);padding:6px 7px}
.g-item figcaption{display:flex;justify-content:space-between;gap:8px;flex-wrap:wrap;font-size:13px;min-width:0}
.g-item figcaption b{font-weight:700}
.g-item figcaption span{font-family:var(--mono);font-size:11px;color:var(--muted)}
.g-cta{display:flex;justify-content:space-between;align-items:center;gap:20px;flex-wrap:wrap;border-top:1px solid var(--line);padding-block:40px 72px;margin-top:24px}
.g-cta h2{font-family:var(--display);font-weight:900;font-size:clamp(28px,5vw,44px);line-height:.95;text-transform:uppercase;letter-spacing:-.02em;margin:0}
.g-cta .ctas{margin:0}
.lb-stage video{max-width:100%;max-height:100%;object-fit:contain}

/* menu do celular */
.top-act{display:flex;align-items:center;gap:8px}
.menu-btn{display:inline-flex;align-items:center;gap:8px;border:1px solid var(--line);background:transparent;color:var(--fg);padding:9px 12px;font-family:var(--mono);font-size:11px;letter-spacing:.12em;text-transform:uppercase;cursor:pointer}
.menu-btn:hover{border-color:var(--fg)}
.burger{display:grid;gap:4px;width:14px}
.burger i{display:block;height:1.5px;background:currentColor;transition:transform .2s}
.menu-btn[aria-expanded="true"] .burger i:first-child{transform:translateY(2.75px) rotate(45deg)}
.menu-btn[aria-expanded="true"] .burger i:last-child{transform:translateY(-2.75px) rotate(-45deg)}
@media (max-width:859px){
  .nav{position:absolute;top:100%;left:0;right:0;flex-direction:column;gap:0;background:var(--bg);border-bottom:1px solid var(--line);padding:4px max(16px,env(safe-area-inset-left,0px)) 20px;max-height:calc(100dvh - 56px - env(safe-area-inset-top,0px));overflow-y:auto}
  .nav.open{display:flex}
  .nav a{padding:15px 0;border-bottom:1px solid var(--line);font-family:var(--display);font-weight:800;font-size:20px;letter-spacing:.01em;color:var(--fg)}
  .nav a:last-child{border-bottom:0}
  .nav a[aria-current="page"]{color:var(--muted)}
}
@media (min-width:860px){.menu-btn{display:none}}
@media (max-width:380px){.menu-lbl{display:none}}
.logo span{white-space:nowrap}
@media (max-width:359px){.top .in{gap:10px}.top .btn{padding:9px 10px;letter-spacing:.08em}.logo{gap:8px;font-size:14px}}
@media (prefers-reduced-motion:no-preference){
  .nav.open{animation:drop .22s ease-out both}
  @keyframes drop{from{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:none}}
}

/* topo no celular: o vídeo aparece primeiro, antes do título */
@media (max-width:899px){
  .hero .in{padding-top:16px;gap:28px}
  .hero .frame{order:-1;aspect-ratio:4/3;max-height:52svh;width:100%}
}

/* nos cartões com vídeo, as fotos só aparecem na foto ampliada: não baixam antes */
.frame:not([data-rotate]) .slides{display:none}

/* orçamento */
.hint{color:var(--muted);font-size:13px;line-height:1.45}

/* página 404 */
.nf .in{min-height:calc(100svh - 57px);display:grid;align-content:center;gap:18px;padding-block:56px}
.nf h1{font-weight:900;font-size:clamp(56px,14vw,160px);line-height:.85;letter-spacing:-.03em;text-transform:uppercase}
.nf .ctas{margin-top:12px}

/* blocos surgem ao entrar na tela, guiados pela rolagem (só CSS).
   Navegadores sem suporte mostram tudo normalmente. */
@supports (animation-timeline: view()){
  @media (prefers-reduced-motion:no-preference){
    .head,.steps li,.pv > *,.work,.review,.svc article,.faq,.qform,.g-item,.g-cta{
      animation:reveal linear both;
      animation-timeline:view();
      animation-range:entry 0% entry 70%;
    }
    @keyframes reveal{from{opacity:0;transform:translateY(28px)}to{opacity:1;transform:none}}
  }
}

/* transição suave entre a página inicial e a galeria; o topo fica parado */
@media (prefers-reduced-motion:no-preference){
  @view-transition{navigation:auto}
  header.top{view-transition-name:topo}
  ::view-transition-old(root){animation:vt-out .22s ease-in both}
  ::view-transition-new(root){animation:vt-in .38s cubic-bezier(.2,.7,.2,1) both}
  @keyframes vt-out{to{opacity:0;transform:translateY(-8px)}}
  @keyframes vt-in{from{opacity:0;transform:translateY(14px)}}
}

/* topo no computador: o vídeo vai de "Estamparia · Serigrafia" até o fim dos números,
   e os quatro números ficam lado a lado numa linha só */
@media (min-width:900px){
  .hero .in{align-items:stretch}
  .hero .frame{aspect-ratio:auto;height:auto;min-height:420px;align-self:stretch}
  .hero .frame > video,.hero .frame > img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
  .stats{grid-template-columns:repeat(4,minmax(0,1fr));max-width:none}
  .stats > div,.stats > div:nth-child(even),.stats > div:last-child{padding:18px 10px;border-right:1px solid var(--line);text-align:center;justify-items:center}
  .stats > div:last-child{border-right:0}
  .stats dd{font-size:clamp(28px,2.7vw,42px)}
}

/* páginas de serviço (SEO) */
.lp-h1{font-size:clamp(40px,7vw,84px);line-height:.95;text-transform:uppercase;font-weight:900;letter-spacing:-.02em;margin:10px 0 0}
.lp-fotos{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin-top:8px}
.lp-fotos img{width:100%;aspect-ratio:4/5;object-fit:cover}
@media (max-width:640px){.lp-fotos{grid-template-columns:repeat(2,minmax(0,1fr))}.lp-fotos img:nth-child(3){display:none}}
.lp-more{margin-top:28px;color:var(--muted);font-size:14px}
.lp-more a,.legal a{color:inherit;text-underline-offset:3px}
.lp-links{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin-bottom:28px}
@media (max-width:900px){.lp-links{grid-template-columns:repeat(2,minmax(0,1fr))}}
.lp-links a{display:grid;gap:6px;border:1px solid var(--line);padding:16px;text-decoration:none;color:var(--fg);min-width:0}
.lp-links a:hover{border-color:var(--fg)}
.lp-links b{font-weight:800;text-transform:uppercase;font-size:14px;letter-spacing:.02em}
.lp-links span{font-family:var(--mono);font-size:11px;color:var(--muted);letter-spacing:.06em}
.svc p a{color:var(--fg);text-underline-offset:3px}
