/* Galeria de peças: a vitrine da forja. Mesmos tokens do site (customizer.css). */

/* Ambiente: um brilho de forja que deriva devagar atrás de tudo */
.gl-body::after{content:'';position:fixed;inset:-20%;z-index:-1;pointer-events:none;background:radial-gradient(ellipse 40% 30% at 70% 20%,rgba(221,119,61,.10),transparent 70%),radial-gradient(ellipse 35% 30% at 20% 80%,rgba(209,189,140,.05),transparent 70%);animation:gl-drift 70s ease-in-out infinite alternate}
@keyframes gl-drift{to{transform:translate3d(-6%,4%,0) rotate(3deg)}}

/* Abertura */
.gl-hero{max-width:1240px;margin:0 auto;padding:80px clamp(20px,4vw,40px) 44px;display:grid;grid-template-columns:minmax(0,7fr) minmax(0,5fr);gap:48px;align-items:end}
.gl-kicker{margin:0;font:600 12px var(--body);letter-spacing:.22em;color:var(--accent)}
.gl-hero h1{margin:16px 0 0;font:400 clamp(56px,7vw,96px)/.94 var(--display);letter-spacing:-.03em;text-wrap:balance}
.gl-hero h1 span{display:block}
.gl-hero-side{display:flex;flex-direction:column;gap:22px;padding-bottom:10px}
.gl-hero-side>p{margin:0;max-width:40ch;font-size:18px;color:var(--muted)}
.gl-count{display:flex;gap:28px;margin:0;align-items:baseline}
.gl-count div{display:flex;gap:8px;align-items:baseline}
.gl-count dt{order:1;font:600 36px/1 var(--body);letter-spacing:-.02em;color:var(--accent)}
.gl-count dd{order:2;margin:0;font-size:14px;color:var(--muted)}

/* Barra de filtros fixa */
.gl-bar{position:sticky;top:0;z-index:20;background:rgba(23,29,33,.94);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);border-block:1px solid var(--line-soft)}
.gl-bar-in{max-width:1240px;margin:0 auto;padding:12px clamp(20px,4vw,40px);display:flex;align-items:center;gap:12px;flex-wrap:wrap}
.gl-filters{display:flex;gap:10px;flex-wrap:wrap}
.gl-filters button{min-height:44px;padding:0 20px;border-radius:999px;border:1px solid #5b6a73;background:transparent;font:600 14px var(--body);transition:background .3s var(--ease),color .3s var(--ease),border-color .3s var(--ease)}
.gl-filters button span{opacity:.7;font-weight:500;margin-left:4px}
.gl-filters button:hover{border-color:var(--accent)}
.gl-filters button[aria-pressed=true]{background:var(--accent);border-color:var(--accent);color:#1b1b1b}

/* Grade */
.gl-grid-wrap{max-width:1240px;margin:0 auto;padding:44px clamp(20px,4vw,40px) 24px}
.gl-grid{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:32px 22px;outline:none}
.gl-grid li[hidden]{display:none}
.gl-card{all:unset;box-sizing:border-box;display:flex;flex-direction:column;gap:14px;width:100%;cursor:pointer;transition:transform .5s var(--ease)}
.gl-card:focus-visible{outline:2px solid var(--accent);outline-offset:6px}
.gl-photo{position:relative;aspect-ratio:4/5;overflow:hidden;background:var(--field);border:1px solid rgba(83,96,103,.55);transition:border-color .45s var(--ease),box-shadow .45s var(--ease)}
.gl-photo img{width:100%;height:100%;object-fit:cover;transition:transform .9s var(--ease),filter .5s var(--ease)}
.gl-card.is-sold .gl-photo img{filter:saturate(.8) brightness(.94)}
/* O fio de luz: reflexo de brasa que corre pela lâmina */
.gl-photo::after{content:'';position:absolute;inset:0;background:linear-gradient(115deg,transparent 35%,rgba(255,214,160,.22) 48%,transparent 60%);transform:translateX(-120%);pointer-events:none}
.gl-peek{position:absolute;left:0;right:0;bottom:0;padding:18px;display:flex;justify-content:space-between;align-items:center;font:600 13.5px var(--body);background:linear-gradient(transparent,rgba(12,16,19,.88));opacity:0;transform:translateY(8px);transition:opacity .4s var(--ease),transform .4s var(--ease)}
.gl-peek b{color:var(--accent);font-weight:600}
.gl-sold{position:absolute;left:0;top:16px;padding:6px 12px;background:#8c2f24;color:#f3ebe0;font:700 10.5px/1 var(--body);letter-spacing:.16em;text-transform:uppercase}
.gl-text{display:flex;flex-direction:column}
.gl-maker{display:block;font:600 12px var(--body);letter-spacing:.14em;text-transform:uppercase;color:var(--accent)}
.gl-name{display:block;margin-top:4px;font:400 25px/1.12 var(--display);color:var(--text)}
.gl-edge{display:block;margin-top:10px;height:1px;width:28px;background:linear-gradient(90deg,var(--ember),var(--accent));transition:width .7s var(--ease)}
@media (hover:hover){
  .gl-card:hover{transform:translateY(-6px)}
  .gl-card:hover .gl-photo{border-color:var(--accent);box-shadow:0 24px 48px rgba(0,0,0,.45),0 0 0 1px var(--accent)}
  .gl-card:hover .gl-photo img{transform:scale(1.05)}
  .gl-card:hover .gl-photo::after{transform:translateX(120%);transition:transform 1.1s var(--ease)}
  .gl-card:hover .gl-peek{opacity:1;transform:none}
  .gl-card:hover .gl-edge{width:100%}
}
.gl-card:focus-visible .gl-edge{width:100%}
.gl-card.is-launch .gl-photo img{visibility:hidden}

/* Entrada em cascata */
.gl-grid.is-motion li{opacity:0;transform:translateY(26px)}
.gl-grid.is-motion li.in{opacity:1;transform:none;transition:opacity .8s var(--ease) var(--d,0ms),transform .9s var(--ease) var(--d,0ms)}
.gl-empty{padding:60px 0;text-align:center;color:var(--muted);max-width:none}

/* Chamada final */
.gl-more{box-sizing:border-box;width:calc(100% - 2*clamp(20px,4vw,40px));max-width:1160px;margin:56px auto 0;padding:48px 52px;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:40px;align-items:center;border:1px solid var(--line-soft);background:radial-gradient(ellipse at 100% 100%,rgba(221,119,61,.22),transparent 60%),var(--panel)}
.gl-more h2{margin:0;font:500 clamp(34px,4vw,46px)/1.04 var(--display);letter-spacing:-.02em}
.gl-more p{margin:10px 0 0;max-width:52ch;color:var(--muted)}
.gl-more-actions{display:flex;flex-direction:column;gap:12px;min-width:280px}
.gl-btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:54px;padding:0 26px;border:1px solid var(--accent);background:var(--accent);color:#1b1b1b;font:700 15.5px var(--body);text-decoration:none;transition:filter .2s,background .2s,color .2s}
.gl-btn:hover{filter:brightness(1.08)}
.gl-btn svg{width:18px;height:18px}
.gl-btn--ghost{background:transparent;color:var(--accent);font-weight:600}
.page-footer{margin-top:72px}

/* ---------- A vitrine (peça aberta) ---------- */
.gl-viewer{position:fixed;inset:0;width:100%;height:100%;max-width:none;max-height:none;margin:0;padding:clamp(0px,4vh,48px) clamp(0px,4.5vw,64px);border:0;background:transparent;color:var(--text);overflow:hidden}
.gl-viewer[open]{display:grid}
.gl-viewer::backdrop{background:rgba(9,12,14,.78);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);opacity:0;transition:opacity .45s var(--ease)}
.gl-viewer.is-open::backdrop{opacity:1}
.gl-viewer{grid-template-columns:minmax(0,11fr) minmax(0,9fr);grid-template-rows:minmax(0,1fr);place-items:stretch}
.gl-viewer>.gl-v-stage{grid-area:1/1/2/2}.gl-viewer>.gl-v-info{grid-area:1/2/2/3}
.gl-v-stage{position:relative;display:grid;place-items:center;overflow:hidden;background:#0f1417;border:1px solid var(--line-soft);border-right:0;min-height:0;opacity:0;transition:opacity .35s var(--ease)}
.gl-v-stage::before{content:'';position:absolute;width:min(70%,560px);aspect-ratio:1;border-radius:50%;background:radial-gradient(circle,rgba(221,119,61,.30),transparent 66%);opacity:0;transform:scale(.6);transition:opacity .7s var(--ease) .3s,transform 1.1s var(--ease) .3s}
.gl-viewer.is-open .gl-v-stage{opacity:1}
.gl-viewer.is-open .gl-v-stage::before{opacity:1;transform:none}
.gl-v-image{position:relative;max-width:88%;max-height:calc(100svh - 2*clamp(0px,4vh,48px) - 130px);width:auto;height:auto;object-fit:contain;transition:opacity .35s var(--ease),transform .5s var(--ease)}
.gl-v-stage.has-photos .gl-v-image{max-height:calc(100svh - 2*clamp(0px,4vh,48px) - 190px)}
.gl-photo-strip{position:absolute;bottom:18px;left:50%;transform:translateX(-50%);display:flex;gap:8px;max-width:calc(100% - 210px);overflow-x:auto;padding:5px;scrollbar-width:thin}
.gl-photo-strip[hidden]{display:none}
.gl-photo-strip button{flex:none;width:62px;height:62px;padding:3px;border:1px solid #697780;background:#20282d;cursor:pointer}
.gl-photo-strip button[aria-pressed=true],.gl-photo-strip button:hover{border-color:var(--accent)}
.gl-photo-strip button:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
.gl-photo-strip img{width:100%;height:100%;object-fit:contain}
.gl-v-image.is-hidden{opacity:0}
.gl-v-image.is-swap-next{opacity:0;transform:translateX(28px)}
.gl-v-image.is-swap-prev{opacity:0;transform:translateX(-28px)}
.gl-v-nav{position:absolute;left:24px;bottom:22px;display:flex;gap:10px}
.gl-round{width:48px;height:48px;border-radius:50%;border:1px solid #5b6a73;background:rgba(23,29,33,.82);display:grid;place-items:center;transition:border-color .2s,background .2s}
.gl-round:hover{border-color:var(--accent)}
.gl-round svg{width:20px;height:20px}
.gl-v-index{position:absolute;right:24px;bottom:34px;font:500 13px var(--body);letter-spacing:.14em;color:var(--muted)}
.gl-v-dots{display:none}
.gl-v-info{position:relative;display:flex;flex-direction:column;gap:18px;padding:56px 56px 40px;background:var(--bg);border:1px solid var(--line-soft);overflow-y:auto;min-height:0;opacity:0;transform:translateX(24px);transition:opacity .45s var(--ease) .15s,transform .6s var(--ease) .15s}
.gl-viewer.is-open .gl-v-info{opacity:1;transform:none}
.gl-close{position:absolute;top:18px;right:18px;width:48px;height:48px;border:1px solid #5b6a73;background:transparent;display:grid;place-items:center}
.gl-close:hover{border-color:var(--accent)}
.gl-close svg{width:20px;height:20px}
.gl-status{align-self:flex-start;padding:6px 12px;border:1px solid #6f9c7f;color:#a6d8b4;font:700 11px/1 var(--body);letter-spacing:.16em;text-transform:uppercase}
.gl-status.is-sold{border-color:#b9574a;color:#f3b3a8}
.gl-v-maker{margin:0;font:600 13px var(--body);letter-spacing:.16em;text-transform:uppercase;color:var(--accent);padding-right:56px}
.gl-v-info h2{margin:0;font:400 clamp(38px,4vw,58px)/1 var(--display);letter-spacing:-.02em;padding-right:24px}
.gl-v-price{margin:0;font:500 clamp(27px,2.5vw,36px)/1.1 var(--display);color:var(--accent)}
.gl-v-edge{display:block;height:1px;background:linear-gradient(90deg,var(--ember),var(--accent) 40%,transparent);transform-origin:left;transform:scaleX(0)}
.gl-viewer.is-open .gl-v-edge{transform:none;transition:transform .9s var(--ease) .55s}
.gl-v-desc{margin:0;max-width:56ch;color:#ccd2d4;white-space:pre-line;overflow-wrap:anywhere}
.gl-v-note{margin:0;font-size:14px;color:var(--muted)}
.gl-v-actions{margin-top:auto;padding-top:8px;display:flex;gap:12px;flex-wrap:wrap}
.gl-v-hint{margin:0;min-height:20px;font-size:13px;color:var(--accent)}
/* A ficha entra em cascata */
.gl-in{opacity:0;transform:translateY(14px)}
.gl-viewer.is-open .gl-in{opacity:1;transform:none;transition:opacity .5s var(--ease) calc(.42s + var(--i,0)*.06s),transform .6s var(--ease) calc(.42s + var(--i,0)*.06s)}
.gl-viewer.is-open .gl-v-edge.gl-in{transform:none}
.gl-viewer.is-swapping .gl-in{opacity:0;transform:translateY(8px);transition:opacity .2s,transform .2s}
.gl-viewer.is-closing .gl-v-info{opacity:0;transform:translateX(24px);transition:opacity .3s var(--ease),transform .35s var(--ease)}
.gl-viewer.is-closing .gl-v-stage{opacity:0;transition:opacity .35s var(--ease) .1s}
.gl-fly{position:fixed;z-index:2147483000;object-fit:cover;pointer-events:none;box-shadow:0 30px 60px rgba(0,0,0,.5);will-change:left,top,width,height}

@media (max-width:1100px){.gl-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media (max-width:860px){
  .gl-hero{grid-template-columns:1fr;gap:20px;padding-top:44px}
  .gl-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:24px 12px}
  .gl-grid-wrap{padding-top:22px}
  .gl-name{font-size:20px}.gl-maker{font-size:10.5px;letter-spacing:.12em}
  .gl-sold{font-size:9.5px;padding:4px 8px;top:10px}
  .gl-bar-in{flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none}
  .gl-filters{flex-wrap:nowrap}.gl-filters button{flex:none;padding:0 16px}
  .gl-more{grid-template-columns:1fr;gap:20px;padding:28px 20px}
  .gl-more-actions{min-width:0}
  /* Vitrine no celular: foto em cima, ficha embaixo, botão fixo */
  .gl-viewer{padding:0;grid-template-columns:1fr;grid-template-rows:auto minmax(0,1fr)}
  .gl-viewer>.gl-v-stage{grid-area:1/1/2/2;height:min(52svh,460px);border:0}
  .gl-viewer>.gl-v-info{grid-area:2/1/3/2;border:0;padding:22px 18px 110px;gap:12px;transform:translateY(24px)}
  .gl-v-image{max-height:calc(min(52svh,460px) - 36px)}
  .gl-v-stage.has-photos .gl-v-image{max-height:calc(min(52svh,460px) - 128px);translate:0 -12px}
  .gl-photo-strip{bottom:8px;max-width:calc(100% - 28px);gap:7px}
  .gl-photo-strip button{width:52px;height:52px}
  .gl-v-nav{display:none}
  .gl-v-index{display:none}
  .gl-v-dots{display:flex;position:absolute;left:0;right:0;bottom:12px;justify-content:center;gap:6px}
  .gl-v-dots span{width:6px;height:6px;border-radius:3px;background:#4a5861;transition:width .3s var(--ease),background .3s}
  .gl-v-dots span.on{width:18px;background:var(--accent)}
  .gl-v-stage.has-photos .gl-v-dots{display:none}
  .gl-close{position:fixed;top:14px;right:14px;z-index:3;width:44px;height:44px;border-radius:50%;background:rgba(23,29,33,.85)}
  .gl-v-maker{padding-right:0}
  .gl-v-info h2{font-size:38px;padding-right:0}
  .gl-v-actions{position:fixed;left:0;right:0;bottom:0;margin:0;padding:14px 18px 20px;background:linear-gradient(transparent,var(--bg) 30%);flex-wrap:nowrap}
  .gl-v-actions .gl-btn:first-child{flex:1;padding:0 16px}
  .gl-v-actions .gl-btn--ghost{width:54px;padding:0;flex:none}
  .gl-v-actions .gl-btn--ghost span{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
}
@media (max-width:380px){.gl-hero h1{font-size:48px}}
@media (pointer:coarse){.gl-round,.gl-close{min-width:44px;min-height:44px}}
@media (prefers-reduced-motion:reduce){
  .gl-body::after{animation:none}
  .gl-grid.is-motion li{opacity:1;transform:none}
  .gl-viewer *,.gl-viewer::backdrop{transition-duration:.01ms!important;transition-delay:0s!important}
}
html{scrollbar-gutter:stable}

/* Selo "Vendida" com moeda dourada */
.gl-sold{display:inline-flex;align-items:center;gap:7px;background:linear-gradient(180deg,#a3372a,#7a2419);border:1px solid #e2bd6a;border-left:0;color:#f6e3b4}
.gl-sold::before{content:'$';display:inline-grid;place-items:center;border-radius:50%;background:radial-gradient(circle at 35% 30%,#fff3cc,#e2bd6a 45%,#9a6f22 100%);color:#4a2f06;font-family:Georgia,serif;font-weight:700;letter-spacing:0;vertical-align:middle;box-shadow:0 0 0 1px #f6e2a6,0 1px 3px #0009;width:16px;height:16px;font-size:10.5px}
.gl-status.is-sold{display:inline-flex;align-items:center;gap:8px;border-color:#e2bd6a;background:linear-gradient(180deg,#a3372a,#7a2419);color:#f6e3b4}
.gl-status.is-sold::before{content:'$';display:inline-grid;place-items:center;border-radius:50%;background:radial-gradient(circle at 35% 30%,#fff3cc,#e2bd6a 45%,#9a6f22 100%);color:#4a2f06;font-family:Georgia,serif;font-weight:700;letter-spacing:0;vertical-align:middle;box-shadow:0 0 0 1px #f6e2a6,0 1px 3px #0009;width:16px;height:16px;font-size:10.5px}
@media (max-width:860px){.gl-sold::before{width:13px;height:13px;font-size:9px}}

/* Convite para o mosaico em página própria */
.gl-archive-invite{max-width:1240px;margin:76px auto 88px;padding:0 clamp(20px,4vw,40px);display:grid;grid-template-columns:minmax(0,1fr) minmax(280px,.7fr);gap:clamp(40px,7vw,100px);align-items:center}
.gl-archive-invite-copy{border-top:1px solid #a7794c66;padding-top:34px}
.gl-archive-invite h2{font:400 clamp(46px,5vw,74px)/.98 var(--display);max-width:11ch;margin:15px 0 20px}
.gl-archive-invite-copy>p:not(.gl-kicker){color:var(--muted);font:400 17px/1.7 var(--body);max-width:42ch;margin:0 0 28px}
.gl-archive-invite-art{position:relative;display:block;overflow:hidden;width:min(100%,340px);aspect-ratio:620/1103;justify-self:end;border:1px solid #a7794c66;background:#231e1c;transition:transform .5s var(--ease),border-color .45s var(--ease),box-shadow .45s var(--ease)}
.gl-archive-invite-art img{display:block;width:100%;height:100%;object-fit:contain;transition:filter .5s var(--ease)}
.gl-archive-invite-art::after{content:'';position:absolute;inset:0;background:linear-gradient(115deg,transparent 35%,rgba(255,214,160,.22) 48%,transparent 60%);transform:translateX(-120%);pointer-events:none}
.gl-archive-invite-art:focus-visible{outline:2px solid var(--accent);outline-offset:6px}
@media(hover:hover){.gl-archive-invite-art:hover{transform:translateY(-6px);border-color:var(--accent);box-shadow:0 24px 48px rgba(0,0,0,.45),0 0 0 1px var(--accent)}.gl-archive-invite-art:hover img{filter:brightness(1.08)}.gl-archive-invite-art:hover::after{transform:translateX(120%);transition:transform 1.1s var(--ease)}}
@media(max-width:700px){.gl-archive-invite{display:block;margin:70px auto}.gl-archive-invite-art{width:min(100%,320px);margin:35px auto 0}}
@media(prefers-reduced-motion:reduce){.gl-archive-invite-art,.gl-archive-invite-art img,.gl-archive-invite-art::after{transition:none!important}}
