/* Overlays usados pela versão HTML (menu móvel, modal de serviços, galeria) */
.kx-overlay{position:fixed;inset:0;z-index:50;background:rgba(10,30,20,.8);opacity:0;transition:opacity .25s}
.kx-overlay.is-open{opacity:1}
.kx-panel{position:fixed;z-index:51}
.kx-sheet{top:0;right:0;height:100%;transform:translateX(100%);transition:transform .3s ease}
.kx-sheet.is-open{transform:none}
.kx-dialog{left:50%;top:50%;width:calc(100% - 2rem);transform:translate(-50%,-48%);opacity:0;transition:all .25s;background:var(--background,#fff)}
.kx-dialog.is-open{transform:translate(-50%,-50%);opacity:1}
.kx-close{position:absolute;right:1rem;top:1rem;z-index:2;width:2.5rem;height:2.5rem;border-radius:999px;border:0;background:rgba(255,255,255,.9);font-size:1.5rem;line-height:1;cursor:pointer}
.kx-lightbox{position:fixed;inset:0;z-index:52;display:flex;align-items:center;justify-content:center;padding:3rem 4rem}
.kx-lightbox img{max-width:100%;max-height:100%;border-radius:1rem;object-fit:contain}
.kx-nav{position:absolute;top:50%;transform:translateY(-50%);width:3rem;height:3rem;border-radius:999px;border:0;background:rgba(255,255,255,.9);font-size:1.6rem;cursor:pointer}
.kx-prev{left:1rem}.kx-next{right:1rem}
.kx-count{position:absolute;bottom:1rem;left:50%;transform:translateX(-50%);color:#fff;font-size:.85rem}
.kx-hidden{display:none!important}
.kx-err{margin-top:.375rem;font-size:.75rem;font-weight:500;color:var(--destructive,#c62828)}
.kx-msg{margin-top:1.5rem;border-radius:.75rem;padding:1rem;font-size:.9rem}
.kx-msg a{display:inline-block;margin:.75rem .5rem 0 0;padding:.6rem 1rem;border-radius:999px;background:var(--forest,#1f5130);color:#fff;font-weight:600}
