@import url('https://fonts.googleapis.com/css2?family=Barlow+Condensed:wght@500;600;700&family=Cinzel:wght@500;600&display=swap');
:root{--ink:#10141a;--gold:#9a6510;--line:#d9dce0;--muted:#7d8490;--green:#25b56b}*{box-sizing:border-box}html,body{margin:0;height:100%;overflow:hidden}body{background:#f7f7f8;color:var(--ink);font-family:'Barlow Condensed',Arial,sans-serif}.app{width:min(100%,480px);height:100dvh;margin:auto;padding:8px 16px 9px;display:grid;grid-template-rows:168px auto minmax(0,1fr) 92px 54px 42px;gap:9px}.brand{display:grid;place-items:center;overflow:hidden}.brand-crop{position:relative;width:230px;height:165px;overflow:hidden}.brand-crop img{position:absolute;width:496px;max-width:none;height:auto;left:-133px;top:-14px}.chooser h1{margin:0;text-align:center;font:600 clamp(1.08rem,5.2vw,1.42rem) Cinzel,serif;letter-spacing:-.035em}.services{display:grid;grid-template-rows:repeat(4,1fr);gap:8px;min-height:0}.service{position:relative;display:grid;grid-template-columns:34px 46px 1fr auto;align-items:center;gap:10px;padding:0 17px;border:1px solid var(--line);border-radius:13px;background:#fff;box-shadow:0 3px 8px #1118270d;cursor:pointer;transition:border-color .15s,background .15s,transform .12s}.service:active{transform:scale(.99)}.service input{position:absolute;opacity:0}.check{width:34px;height:34px;display:grid;place-items:center;border:1.5px solid #cdd2d8;border-radius:50%;color:transparent}.icon{font-size:1.6rem;text-align:center;line-height:1}.name{font-size:1.07rem;font-weight:600;letter-spacing:.18em}.price{display:flex;align-items:baseline;color:var(--gold);gap:3px}.price small{font:500 .76rem Cinzel}.price strong{font:600 1.42rem Cinzel}.service.selected{border-color:#b98a3c;background:#fffcf6;box-shadow:0 3px 11px #9a65101c}.service.selected .check{border-color:var(--gold);background:var(--gold);color:#fff}.service.selected .check::before{content:'✓';font-family:Arial;font-size:.85rem}.summary{display:grid;grid-template-columns:1fr auto;align-items:center;gap:12px;padding:12px 17px;border:1px solid var(--line);border-radius:13px;background:#fff;box-shadow:0 3px 8px #1118270d}.summary-copy{display:flex;align-items:center;gap:10px;min-width:0}.calendar{color:var(--gold);font-size:1.35rem}.summary-copy strong,.summary-copy small{display:block}.summary-copy strong{font-size:.9rem}.summary-copy small{margin-top:2px;color:var(--muted);font-size:.72rem}.summary-meta{display:flex;align-items:center;gap:13px}.summary-meta>span{display:block;text-align:right}.summary-meta small{display:block;font-size:.58rem;font-weight:600;letter-spacing:.18em}.summary-meta strong{display:block;margin-top:2px;font-size:.92rem}.total strong{color:#714b0d;font:600 1.7rem Cinzel;white-space:nowrap}.whatsapp{position:relative;display:flex;align-items:center;justify-content:center;gap:10px;padding:0 16px;border-radius:12px;background:#24bd70;color:#fff;text-decoration:none;box-shadow:0 6px 14px #24bd702d;transition:transform .12s,background .15s}.whatsapp:active{transform:scale(.99)}.whatsapp strong{font-size:.88rem;letter-spacing:.15em}.wa{width:25px;height:25px;display:grid;place-items:center;border:2px solid currentColor;border-radius:50%;font-size:.42rem}.arrow{position:absolute;right:18px;font:600 1.5rem Arial}.whatsapp.disabled{pointer-events:none;background:#e7e9ec;color:#858b96;box-shadow:none}.status{width:max-content;margin:auto;display:flex;align-items:center;gap:8px;padding:7px 14px;border:1px solid #d7dade;border-radius:999px;background:#fff;color:#626873;font-size:.62rem;letter-spacing:.16em}.status i{width:7px;height:7px;border-radius:50%;background:var(--green)}footer p{margin:5px 0 0;text-align:center;color:#9a9fa7;font-size:.55rem;letter-spacing:.12em}
@media(max-height:760px){.app{grid-template-rows:133px auto minmax(0,1fr) 78px 49px 34px;gap:7px}.brand-crop{height:130px;transform:scale(.8)}.service{border-radius:11px}.check{width:30px;height:30px}.summary{padding-block:8px}.summary-copy small{display:none}.status{padding-block:5px}}
@media(max-width:360px){.app{padding-inline:10px}.service{padding-inline:12px;grid-template-columns:31px 37px 1fr auto;gap:7px}.name{font-size:.94rem}.price strong{font-size:1.22rem}.summary{padding-inline:12px}.summary-meta{gap:8px}.whatsapp strong{font-size:.78rem}}
@media(min-width:700px){body{background:#ececef}.app{background:#f7f7f8;box-shadow:0 0 70px #1112}}
@media(prefers-reduced-motion:reduce){*{transition:none!important}}
.icon{height:34px;display:grid;place-items:center}.icon svg{width:40px;height:31px;display:block;fill:#10141a}.service:nth-child(3) .icon svg,.service:nth-child(4) .icon svg{width:42px;height:24px}.service.selected .icon svg{fill:#8f5d0c}

.app{grid-template-rows:168px minmax(0,278px) 92px 54px 42px;align-content:start}.brand-crop{width:180px;height:168px}.brand-crop img{width:360px;left:-90px;top:-5px}.chooser{min-height:0;display:grid;grid-template-rows:auto 1fr;gap:8px}
@media(max-height:760px){.app{grid-template-rows:132px minmax(0,242px) 78px 49px 34px}.brand-crop{width:150px;height:132px;transform:none}.brand-crop img{width:310px;left:-80px;top:-5px}.chooser{gap:5px}}
.brand-crop img{mix-blend-mode:multiply;filter:contrast(1.12) brightness(1.04)}body,.app{background:#fbfbfd}

/* Leitura e toque otimizados para mobile, inclusive para baixa visão. */
:root{--gold:#8b5908;--line:#c9cdd3;--muted:#59616d;--green:#168b50}
.chooser h1{font-size:clamp(1.2rem,5.5vw,1.48rem);line-height:1.25;letter-spacing:-.025em}
.service{grid-template-columns:38px 46px 1fr auto;min-height:56px;border-width:1.5px}
.check{width:38px;height:38px;border-width:2px;border-color:#aeb4bd}
.name{font-size:1.18rem;font-weight:700;letter-spacing:.11em}
.price small{font-size:.84rem;font-weight:600}.price strong{font-size:1.55rem}
.service.selected .check::before{font-size:1rem;font-weight:700}
.summary-copy strong{font-size:1rem}.summary-copy small{font-size:.8rem}
.summary-meta small{font-size:.68rem;font-weight:700;letter-spacing:.14em}.total strong{font-size:1.8rem}
.whatsapp strong{font-size:1rem;letter-spacing:.09em}
.whatsapp.disabled{background:#dfe2e6;color:#59616d}
.status{border-color:#c9cdd3;color:#4f5661;font-size:.7rem;font-weight:600;letter-spacing:.11em}
footer p{color:#69717d;font-size:.64rem;font-weight:600;letter-spacing:.1em}
.service:focus-within,.whatsapp:focus-visible{outline:3px solid #10141a;outline-offset:2px}
@media(max-width:360px){.service{grid-template-columns:34px 37px 1fr auto}.check{width:34px;height:34px}.name{font-size:1.04rem;letter-spacing:.08em}.price strong{font-size:1.35rem}.whatsapp strong{font-size:.9rem}}
.app{grid-template-rows:154px minmax(0,292px) 92px 54px 42px}
.brand-crop{height:154px}.brand-crop img{top:-12px}
@media(max-height:760px){.app{grid-template-rows:116px minmax(0,258px) 78px 49px 34px}.brand-crop{width:138px;height:116px}.brand-crop img{width:282px;left:-72px;top:-5px}.service{min-height:50px}}
.brand-crop{width:210px}.brand-crop img{width:420px;left:-105px;top:-13px}
@media(max-height:760px){.app{grid-template-rows:130px minmax(0,258px) 78px 49px 34px}.brand-crop{width:166px;height:130px}.brand-crop img{width:338px;left:-86px;top:-8px}}
.app{grid-template-rows:230px minmax(0,292px) 92px 54px 42px}
.brand-crop{width:240px;height:230px}.brand-crop img{width:496px;left:-128px;top:-10px}
@media(max-height:760px){.app{grid-template-rows:210px minmax(0,258px) 78px 49px 34px}.brand-crop{width:210px;height:210px}.brand-crop img{width:450px;left:-120px;top:-8px}}

/* Movimento ambiente: preserva a composição e mantém a leitura estável. */
.brand-crop img{animation:brand-breathe 5.5s ease-in-out infinite;transform-origin:center 55%}
.icon{animation:icon-drift 4s ease-in-out infinite}
.service:nth-child(2) .icon{animation-delay:-1s}.service:nth-child(3) .icon{animation-delay:-2s}.service:nth-child(4) .icon{animation-delay:-3s}
.service{animation:card-breathe 6s ease-in-out infinite}
.service:nth-child(2){animation-delay:-1.5s}.service:nth-child(3){animation-delay:-3s}.service:nth-child(4){animation-delay:-4.5s}
.status i{animation:open-pulse 2s ease-out infinite}
.whatsapp{overflow:hidden;isolation:isolate}
.whatsapp>*{position:relative;z-index:1}.whatsapp .arrow{position:absolute}
.whatsapp::after{content:'';position:absolute;z-index:0;inset:-25% auto -25% -35%;width:22%;background:linear-gradient(90deg,transparent,#ffffff70,transparent);transform:skewX(-18deg);animation:button-light 4.8s ease-in-out infinite}
.whatsapp.disabled::after{background:linear-gradient(90deg,transparent,#ffffff95,transparent)}
@keyframes brand-breathe{0%,100%{transform:translateY(0) scale(1)}50%{transform:translateY(-3px) scale(1.012)}}
@keyframes icon-drift{0%,100%{transform:translateY(0)}50%{transform:translateY(-2px)}}
@keyframes card-breathe{0%,100%{box-shadow:0 3px 8px #1118270d}50%{box-shadow:0 5px 13px #8b590817}}
@keyframes open-pulse{0%{box-shadow:0 0 0 0 #168b5060}70%,100%{box-shadow:0 0 0 6px #168b5000}}
@keyframes button-light{0%,58%{left:-35%}82%,100%{left:120%}}
@media(prefers-reduced-motion:reduce){.brand-crop img,.icon,.service,.status i,.whatsapp::after{animation:none!important}}
.app{grid-template-rows:250px minmax(0,292px) 92px 54px 42px}
.brand-crop{height:242px}
@media(max-height:760px){.app{grid-template-rows:230px minmax(0,258px) 78px 49px 34px}.brand-crop{height:222px}}

/* Respiração por escala, sem deslocar logo ou ícones. */
.brand-crop img{animation-name:brand-scale-breathe;animation-duration:5s}
.icon{animation-name:icon-scale-breathe;animation-duration:3.6s;transform-origin:center}
@keyframes brand-scale-breathe{0%,100%{transform:scale(.985)}50%{transform:scale(1.035)}}
@keyframes icon-scale-breathe{0%,100%{transform:scale(.94)}50%{transform:scale(1.07)}}
.brand-crop{height:248px}
@media(max-height:760px){.app{grid-template-rows:236px minmax(0,258px) 78px 49px 34px}.brand-crop{height:228px}}

/* Tesoura decorativa: as duas metades giram ao redor do parafuso. */
.app{position:relative}.scissors-motion{position:absolute;left:12px;bottom:8px;width:64px;height:52px;pointer-events:none;opacity:.82;transform:rotate(-9deg)}
.scissors-motion svg{width:100%;height:100%;overflow:visible}.scissors-motion g{fill:#15181d;stroke:#15181d;stroke-width:2;transform-box:view-box;transform-origin:32px 35px}
.scissors-motion g circle{fill:none;stroke-width:4}.scissor-top{animation:scissor-top-cut 2.2s ease-in-out infinite}.scissor-bottom{animation:scissor-bottom-cut 2.2s ease-in-out infinite}.scissor-screw{fill:#a06a13;stroke:#fff;stroke-width:1.5}
@keyframes scissor-top-cut{0%,100%{transform:rotate(-10deg)}45%,60%{transform:rotate(9deg)}}
@keyframes scissor-bottom-cut{0%,100%{transform:rotate(10deg)}45%,60%{transform:rotate(-9deg)}}
@media(max-width:370px){.scissors-motion{width:52px;height:43px;left:6px;bottom:6px}}
@media(prefers-reduced-motion:reduce){.scissor-top,.scissor-bottom{animation:none!important}}

/* Cabos, hastes e lâminas da tesoura. */
.scissors-motion{width:72px;height:59px;bottom:7px;opacity:.88}
.scissors-motion g{transform-origin:41px 38px;fill:none;stroke:#15181d;stroke-linecap:round;stroke-linejoin:round}
.scissors-motion .scissor-ring{fill:#fbfbfd;stroke-width:5}
.scissors-motion .scissor-arm{fill:none;stroke-width:6}
.scissors-motion .scissor-blade{fill:#15181d;stroke-width:1}
.scissors-motion .scissor-screw{fill:#a06a13;stroke:#fbfbfd;stroke-width:2}
@keyframes scissor-top-cut{0%,100%{transform:rotate(0)}45%,60%{transform:rotate(15deg)}}
@keyframes scissor-bottom-cut{0%,100%{transform:rotate(0)}45%,60%{transform:rotate(-15deg)}}
@media(max-width:370px){.scissors-motion{width:58px;height:48px}}
.scissors-motion .scissor-piece{fill:none;stroke:#15181d;stroke-width:6;stroke-linecap:round;stroke-linejoin:round}
.scissors-motion{width:76px;height:61px;transform:rotate(-7deg)}
.scissors-motion g{transform-origin:43px 39px}
.scissors-motion .scissor-ring{fill:#fbfbfd;stroke:#15181d;stroke-width:5}
.scissors-motion .scissor-piece{stroke-width:7}
.scissors-motion .scissor-blade{fill:#15181d;stroke:#15181d;stroke-width:1}
.scissors-motion .scissor-screw{fill:#6f747c;stroke:#fbfbfd;stroke-width:1.5}
.scissors-motion .scissor-pin{fill:#d8b56c;stroke:none}
.scissor-top{animation:scissor-top-smooth 3.4s cubic-bezier(.45,0,.55,1) infinite}
.scissor-bottom{animation:scissor-bottom-smooth 3.4s cubic-bezier(.45,0,.55,1) infinite}
@keyframes scissor-top-smooth{0%,100%{transform:rotate(-4deg)}50%{transform:rotate(12deg)}}
@keyframes scissor-bottom-smooth{0%,100%{transform:rotate(4deg)}50%{transform:rotate(-12deg)}}
@media(max-width:370px){.scissors-motion{width:61px;height:49px}}
.brand-crop img{animation:none}
body .brand{overflow:visible;transform:translateY(-32px)}
body .brand-crop{display:grid;place-items:center}
body .brand-crop img{position:static;width:auto;height:100%;max-width:100%;object-fit:contain;mix-blend-mode:normal;filter:none}
.brand-crop::after{content:'';position:absolute;inset:0;pointer-events:none;background:linear-gradient(110deg,transparent 38%,rgba(255,255,255,.08) 44%,rgba(255,255,255,.65) 50%,rgba(255,255,255,.08) 56%,transparent 62%);mix-blend-mode:screen;transform:translateX(-140%);animation:castro-shine 7s ease-in-out infinite}
@keyframes castro-shine{0%,65%{transform:translateX(-140%)}90%,100%{transform:translateX(140%)}}
@media(prefers-reduced-motion:reduce){.brand-crop::after{animation:none;display:none}}
.scissors-motion{width:82px;height:82px;bottom:0;transform:rotate(-2deg)}
.scissors-motion g{transform-origin:270px 245px}
.scissors-motion .scissor-ring{fill:#fbfbfd;stroke:#15181d;stroke-width:18}
.scissors-motion .scissor-piece{fill:none;stroke:#15181d;stroke-width:22;stroke-linecap:round;stroke-linejoin:round}
.scissors-motion .scissor-blade,.scissors-motion .scissor-grip{fill:#15181d;stroke:#15181d;stroke-width:2}
.scissors-motion .scissor-screw{fill:#6f747c;stroke:#fbfbfd;stroke-width:6}
.scissors-motion .scissor-pin{fill:#d8b56c}
@media(max-width:370px){.scissors-motion{width:66px;height:66px}}
.scissors-motion{width:84px;height:86px;bottom:0;transform:none}
.scissor-asset{position:absolute;display:block;max-width:none;will-change:transform}
.scissor-asset-one{width:79px;height:auto;left:2px;top:19px;transform-origin:52.63% 52.5%;animation:asset-one-cut 3.6s cubic-bezier(.45,0,.55,1) infinite}
.scissor-asset-two{width:57px;height:auto;left:17px;top:8px;transform-origin:46.5% 39.9%;animation:asset-two-cut 3.6s cubic-bezier(.45,0,.55,1) infinite}
.scissor-axis{position:absolute;left:39.5px;top:35.5px;width:7px;height:7px;border-radius:50%;background:#777b80;border:1.5px solid #fbfbfd;z-index:3}
@keyframes asset-one-cut{0%,100%{transform:rotate(-3deg)}50%{transform:rotate(8deg)}}
@keyframes asset-two-cut{0%,100%{transform:rotate(3deg)}50%{transform:rotate(-8deg)}}
@media(max-width:370px){.scissors-motion{width:68px;height:70px;transform:scale(.81);transform-origin:left bottom}}
@media(prefers-reduced-motion:reduce){.scissor-asset{animation:none!important}}
.scissors-motion{left:28px;bottom:68px;transform:scale(1.2);transform-origin:left bottom}
body .app{grid-template-rows:250px 292px 92px 54px;align-content:end;padding-bottom:max(16px,env(safe-area-inset-bottom))}
@media(max-height:760px){body .app{grid-template-rows:236px 258px 78px 49px}}
@media(max-height:670px){body .app{grid-template-rows:180px 258px 78px 49px}body .brand-crop{height:180px}}
.background-video,.background-veil{position:fixed;top:0;left:50%;width:min(100%,480px);height:100dvh;transform:translateX(-50%);pointer-events:none}
.background-video{object-fit:cover;z-index:0}.background-veil{display:none}
body .app{background:transparent;z-index:2}
@media(prefers-reduced-motion:reduce){.background-video{display:none}}
@media(max-width:370px){.scissors-motion{left:22px;transform:scale(.972)}}
.scissor-asset-one{width:79.0048px;left:2px;top:19px;transform-origin:41.5808px 20.256px;animation:asset-one-rhythm 6s ease-in-out infinite}
.scissor-asset-two{width:56.8544px;left:17.1424px;top:8.2864px;transform-origin:26.4384px 30.9696px;animation:asset-two-rhythm 6s ease-in-out infinite}
.scissor-axis{display:none}
@keyframes asset-one-rhythm{0%,3.333333%,6.666667%,10%,100%{transform:rotate(10deg)}1.666667%,5%,8.333333%{transform:rotate(-8deg)}}
@keyframes asset-two-rhythm{0%,3.333333%,6.666667%,10%,100%{transform:rotate(-10deg)}1.666667%,5%,8.333333%{transform:rotate(9deg)}}
@media(prefers-reduced-motion:reduce){.scissor-asset{animation:none!important}}

/* v35 (05/09/2026) — O BRASÃO INTEIRO, SEM CORTAR. Antes a caixa .brand-crop
   tinha altura fixa e overflow:hidden, e a imagem lá dentro NÃO obedecia o
   height:100% (o percentual não resolvia dentro do grid): ela enchia a
   largura (max-width:100%) e sobrava 57 a 105px pra baixo, que a caixa comia —
   tesouras e navalhas sumiam em toda tela, e no 375x667 ia junto o BARBEARIA.
   Medido com mede-castro.js antes e depois.
   Agora a linha do brasão é o que SOBRA da tela (minmax(0,1fr)) e a imagem
   cabe nela com object-fit:contain, encostada embaixo, perto da pergunta. */
body .app{grid-template-rows:minmax(0,1fr) 292px 92px 54px;align-content:end}
@media(max-height:760px){body .app{grid-template-rows:minmax(0,1fr) 258px 78px 49px}}
@media(max-height:670px){body .app{grid-template-rows:minmax(0,1fr) 258px 78px 49px}}
body .brand{display:block;height:100%;min-height:0;overflow:visible;transform:none}
body .brand-crop{display:flex;align-items:flex-end;justify-content:center;width:100%;height:100%;max-height:none;overflow:visible;transform:none}
body .brand-crop img{display:block;width:100%;height:100%;max-width:100%;max-height:360px;margin:0;object-fit:contain;object-position:center bottom;animation:none;filter:none;mix-blend-mode:normal}

/* v36 (06/09/2026) — pedido dele: o bloco do TOTAL com a MESMA altura das
   linhas de serviço, e a folga que sobra (92→58 e 78→51) vai toda pro botão
   AGENDAR NO WHATSAPP, que cresce de 54 pra 88px (76px em tela baixa). As
   linhas da grade continuam somando o mesmo, então o brasão não muda.
   Desabilitado, o botão fica CINZA ESCURO em vez do cinza claro. */
body .app{grid-template-rows:minmax(0,1fr) 292px 58px 88px}
@media(max-height:760px){body .app{grid-template-rows:minmax(0,1fr) 258px 51px 76px}}
@media(max-height:670px){body .app{grid-template-rows:minmax(0,1fr) 258px 51px 76px}}
body .summary{padding-block:0;min-height:0}
body .summary-copy small{margin-top:1px}
@media(max-height:760px){body .summary-copy small{display:none}}
body .whatsapp strong{font-size:1.15rem;letter-spacing:.1em}
body .wa{width:29px;height:29px;font-size:.48rem}
body .arrow{font-size:1.7rem}
body .whatsapp.disabled{background:#3b4047;color:#d5d8dd;box-shadow:none}
body .whatsapp.disabled::after{background:linear-gradient(90deg,transparent,#ffffff2e,transparent)}

/* v37 (06/09/2026) — pedido dele: o botão do WhatsApp em VERDE ESCURO quando
   ativo (era o verde claro #24bd70 da marca). Texto branco sobre #117a44 dá
   contraste 5,6:1. Desabilitado continua cinza escuro (v36). */
body .whatsapp{background:#117a44;box-shadow:0 6px 14px #117a4438}
body .whatsapp:active{background:#0e6538}
body .whatsapp.disabled{background:#3b4047;box-shadow:none}

/* v38 (06/09/2026) — corrige o v37 pelo pedido dele: DESATIVADO = verde escuro
   (#117a44, texto esmaecido), DISPONÍVEL = verde claro (#24bd70) que PULSA pra
   um verde mais claro (#3fd689) com brilho, a cada 1,8 s. Com movimento
   reduzido no aparelho, fica parado no verde claro. */
body .whatsapp{background:#24bd70;box-shadow:0 6px 14px #24bd702d;animation:whats-pulse 1.8s ease-in-out infinite}
body .whatsapp:active{background:#1ea862;animation:none}
body .whatsapp.disabled{background:#117a44;color:#bfe0cd;box-shadow:none;animation:none}
body .whatsapp.disabled::after{background:linear-gradient(90deg,transparent,#ffffff22,transparent)}
@keyframes whats-pulse{0%,100%{background:#24bd70;box-shadow:0 6px 14px #24bd702d}50%{background:#3fd689;box-shadow:0 8px 24px #24bd7070}}
@media(prefers-reduced-motion:reduce){body .whatsapp{animation:none!important}}

/* v39 (06/09/2026) — pedido dele: SUBIR um pouco o layout inteiro, sem mexer no
   fundo. O miolo é ancorado embaixo (align-content:end), então subir = mais
   respiro embaixo: +24px de padding inferior. O vídeo é fixo e não acompanha.
   A linha do brasão é elástica e absorve os 24px (no 390x844 vai de 355 pra 331). */
body .app{padding-bottom:max(40px,calc(env(safe-area-inset-bottom) + 24px))}

/* v40 (06/09/2026) — "suba um pouco o conjunto todo": mais 24px de respiro
   embaixo (40 → 64px). O brasão elástico absorve; no 390x844 vai de 331 pra 307. */
body .app{padding-bottom:max(64px,calc(env(safe-area-inset-bottom) + 48px))}

/* v41 (06/09/2026) — ele via o brilho do botão PARADO no desktop, esperando a
   vez de passar. No headless ele fica fora da caixa, mas o renderizador dele
   mostrava. Blindagem: em repouso o brilho tem OPACIDADE ZERO e só acende
   durante a passagem (58%→82% do ciclo); anda por transform, não por `left`.
   No botão desligado não existe brilho. Com movimento reduzido, some. */
body .whatsapp::after{left:0;width:22%;opacity:0;transform:translateX(-160%) skewX(-18deg);animation:whats-sweep 4.8s ease-in-out infinite}
body .whatsapp.disabled::after{display:none}
@keyframes whats-sweep{0%,58%{transform:translateX(-160%) skewX(-18deg);opacity:0}61%{opacity:1}79%{opacity:1}82%,100%{transform:translateX(560%) skewX(-18deg);opacity:0}}
@media(prefers-reduced-motion:reduce){body .whatsapp::after{display:none}}

/* v42 (06/09/2026) — o brilho PARADO que ele via à esquerda do quadro no desktop
   era o do BRASÃO (castro-shine), não o do botão: a regra que o desliga (linha
   ~105) só vale com movimento reduzido. Quando abri a caixa do brasão no v35
   (overflow:visible) ela parou de esconder o brilho em repouso, que fica a -140%.
   Agora a caixa tem EXATAMENTE o tamanho da imagem (flex, largura pelo
   conteúdo), volta a recortar, e o brilho ainda tem opacidade 0 fora da
   passagem — dupla trava, não depende do recorte. */
body .brand{display:flex;justify-content:center;align-items:flex-end;height:100%;min-height:0;overflow:visible}
body .brand-crop{display:block;width:auto;height:100%;max-height:360px;overflow:hidden;position:relative;flex:0 0 auto}
body .brand-crop img{display:block;width:auto;height:100%;max-width:none;max-height:none;margin:0;object-fit:contain}
body .brand-crop::after{opacity:0;transform:translateX(-140%);animation:castro-shine-v42 7s ease-in-out infinite}
@keyframes castro-shine-v42{0%,65%{transform:translateX(-140%);opacity:0}68%{opacity:1}87%{opacity:1}90%,100%{transform:translateX(140%);opacity:0}}
@media(prefers-reduced-motion:reduce){body .brand-crop::after{display:none}}

/* v43 (06/09/2026) — pedido dele: o brilho passa SÓ NO LOGO, no formato do
   logo, e não num retângulo. O ::after fica parado, do tamanho exato da
   imagem, com o próprio logo-branco.png de MÁSCARA (alfa = silhueta). Quem
   anda é o degradê por dentro (background-position, imagem 3× mais larga
   que a caixa): em repouso a faixa fica fora dos dois lados, e ainda com
   opacidade 0. A máscara não pode andar junto — por isso nada de transform. */
body .brand-crop::after{inset:0;transform:none;opacity:0;
  background:linear-gradient(110deg,transparent 40%,rgba(255,255,255,.10) 44%,rgba(255,255,255,.85) 50%,rgba(255,255,255,.10) 56%,transparent 60%);
  background-size:300% 100%;background-repeat:no-repeat;background-position:100% 0;
  -webkit-mask:url(logo-branco.png) center/100% 100% no-repeat;mask:url(logo-branco.png) center/100% 100% no-repeat;
  mix-blend-mode:screen;animation:castro-shine-v43 7s ease-in-out infinite}
@keyframes castro-shine-v43{0%,65%{background-position:100% 0;opacity:0}68%{opacity:1}87%{opacity:1}90%,100%{background-position:0% 0;opacity:0}}
