/* Kawane Lisboa Fotografia — 2026-10-29. Preto + dourado, igual à logo. */
:root {
  --bg: #0d0c0b; --bg2: #161412; --bg3: #201d1a; --linha: #2e2924;
  --ouro: #c98c52; --ouro2: #e2b07c; --texto: #ede6dd; --suave: #a59a8d; --apagado: #6f665c;
  --ok: #6fbf8a; --alerta: #e0a84a; --erro: #e06a5a;
  --serif: 'Cormorant Garamond', Georgia, serif; --sans: 'Montserrat', system-ui, sans-serif;
}
* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; background: var(--bg); color: var(--texto); font: 15px/1.6 var(--sans); }
a { color: var(--ouro2); text-decoration: none; }
a:hover { color: var(--ouro); }
img { max-width: 100%; display: block; }
h1, h2, h3 { font-family: var(--serif); font-weight: 500; letter-spacing: .5px; margin: 0 0 .5em; }
h1 { font-size: clamp(30px, 5vw, 46px); } h2 { font-size: clamp(26px, 4vw, 36px); } h3 { font-size: 22px; }
.wrap { max-width: 1180px; margin: 0 auto; padding: 0 20px; }
.ouro { color: var(--ouro2); } .suave { color: var(--suave); } .peq { font-size: 13px; }
.centro { text-align: center; }

/* topo */
.topo { position: sticky; top: 0; z-index: 50; background: rgba(13,12,11,.92); backdrop-filter: blur(8px); border-bottom: 1px solid var(--linha); }
.topo .wrap { display: flex; align-items: center; justify-content: space-between; height: 68px; gap: 16px; }
.topo .marca img { height: 46px; width: auto; }
.topo nav { display: flex; gap: 22px; align-items: center; }
.topo nav a { color: var(--texto); font-size: 13px; letter-spacing: 1.5px; text-transform: uppercase; }
.topo nav a:hover { color: var(--ouro2); }
@media (max-width: 760px) { .topo nav a:not(.btn) { display: none; } }

/* botões */
.btn { display: inline-flex; align-items: center; justify-content: center; gap: 8px; padding: 11px 22px; border-radius: 999px;
  border: 1px solid var(--ouro); background: transparent; color: var(--ouro2) !important; font: 600 13px var(--sans);
  letter-spacing: 1px; text-transform: uppercase; cursor: pointer; transition: .2s; }
.btn:hover { background: var(--ouro); color: #111 !important; }
.btn.cheio { background: var(--ouro); color: #111 !important; }
.btn.cheio:hover { background: var(--ouro2); }
.btn.peq { padding: 7px 14px; font-size: 11.5px; }
.btn.verde { border-color: #25d366; color: #25d366 !important; } .btn.verde:hover { background: #25d366; color: #111 !important; }
.btn.verm { border-color: var(--erro); color: var(--erro) !important; } .btn.verm:hover { background: var(--erro); color: #111 !important; }
.btn[disabled] { opacity: .4; pointer-events: none; }

/* seções públicas */
.hero { min-height: 78vh; display: grid; place-items: center; text-align: center; padding: 60px 20px;
  background: radial-gradient(ellipse at center, #1d1914 0%, var(--bg) 70%); }
.hero img { width: min(520px, 86vw); margin: 0 auto 26px; }
.hero p { color: var(--suave); max-width: 560px; margin: 0 auto 28px; font-size: 16px; }
.secao { padding: 80px 0; border-top: 1px solid var(--linha); }
.titulo-secao { text-align: center; margin-bottom: 36px; }
.titulo-secao small { display: block; color: var(--ouro); letter-spacing: 4px; text-transform: uppercase; font-size: 12px; margin-bottom: 6px; }
.filtros { display: flex; flex-wrap: wrap; gap: 8px; justify-content: center; margin-bottom: 28px; }
.filtros button { background: none; border: 1px solid var(--linha); color: var(--suave); padding: 7px 16px; border-radius: 999px; cursor: pointer; font: 12px var(--sans); letter-spacing: 1px; text-transform: uppercase; }
.filtros button.on, .filtros button:hover { border-color: var(--ouro); color: var(--ouro2); }
.mosaico { columns: 3 280px; column-gap: 12px; }
.mosaico a { display: block; margin-bottom: 12px; break-inside: avoid; overflow: hidden; border-radius: 6px; }
.mosaico img { width: 100%; transition: transform .5s; } .mosaico a:hover img { transform: scale(1.04); }
.sobre { display: grid; grid-template-columns: 1fr 1fr; gap: 50px; align-items: center; }
.sobre p { color: var(--suave); white-space: pre-line; }
@media (max-width: 760px) { .sobre { grid-template-columns: 1fr; } }
.rodape { padding: 40px 0; border-top: 1px solid var(--linha); color: var(--apagado); font-size: 13px; text-align: center; }

/* cartões / formulários */
.cartao { background: var(--bg2); border: 1px solid var(--linha); border-radius: 12px; padding: 24px; }
.caixa-codigo { max-width: 420px; margin: 60px auto; text-align: center; }
label { display: block; font-size: 12px; letter-spacing: 1px; text-transform: uppercase; color: var(--suave); margin: 14px 0 6px; }
input, select, textarea { width: 100%; background: var(--bg); border: 1px solid var(--linha); color: var(--texto); border-radius: 8px; padding: 11px 13px; font: 15px var(--sans); }
input:focus, select:focus, textarea:focus { outline: none; border-color: var(--ouro); }
.input-codigo { text-align: center; font-size: 24px; letter-spacing: 6px; text-transform: uppercase; font-family: var(--sans); font-weight: 500; }
.aviso { padding: 12px 16px; border-radius: 8px; margin: 14px 0; font-size: 14px; background: rgba(201,140,82,.1); border: 1px solid rgba(201,140,82,.35); color: var(--ouro2); }
.aviso.erro { background: rgba(224,106,90,.1); border-color: rgba(224,106,90,.4); color: var(--erro); }
.aviso.ok { background: rgba(111,191,138,.1); border-color: rgba(111,191,138,.4); color: var(--ok); }

/* lista de galerias do cliente */
.grade-gal { display: grid; grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); gap: 18px; }
.gal-card { background: var(--bg2); border: 1px solid var(--linha); border-radius: 12px; overflow: hidden; color: var(--texto); }
.gal-card .capa { aspect-ratio: 3/2; background: var(--bg3) center/cover; }
.gal-card .info { padding: 14px 16px; }
.selo { display: inline-block; font-size: 11px; padding: 2px 9px; border-radius: 999px; border: 1px solid var(--linha); color: var(--suave); }
.selo.ok { border-color: var(--ok); color: var(--ok); } .selo.alerta { border-color: var(--alerta); color: var(--alerta); } .selo.erro { border-color: var(--erro); color: var(--erro); }

/* galeria com seleção */
.fotos { display: grid; grid-template-columns: repeat(auto-fill, minmax(170px, 1fr)); gap: 8px; padding-bottom: 110px; }
.foto { position: relative; aspect-ratio: 1; overflow: hidden; border-radius: 6px; background: var(--bg3); cursor: zoom-in; }
.foto img { width: 100%; height: 100%; object-fit: cover; -webkit-user-drag: none; user-select: none; }
.foto .marcar { position: absolute; top: 8px; right: 8px; width: 34px; height: 34px; border-radius: 50%; border: 2px solid #fff;
  background: rgba(0,0,0,.45); color: transparent; display: grid; place-items: center; font-size: 18px; cursor: pointer; }
.foto.sel { outline: 3px solid var(--ouro); outline-offset: -3px; }
.foto.sel .marcar { background: var(--ouro); border-color: var(--ouro); color: #111; }
.foto .liberada { position: absolute; left: 8px; bottom: 8px; }
.foto .baixar { position: absolute; right: 8px; bottom: 8px; }
.barra-sel { position: fixed; left: 0; right: 0; bottom: 0; z-index: 60; background: rgba(22,20,18,.97); border-top: 1px solid var(--ouro);
  padding: 12px 0; transform: translateY(100%); transition: .25s; }
.barra-sel.on { transform: none; }
.barra-sel .wrap { display: flex; align-items: center; justify-content: space-between; gap: 14px; flex-wrap: wrap; }
.barra-sel .total { font-family: var(--serif); font-size: 26px; color: var(--ouro2); }
.pacotes-lista { display: flex; flex-wrap: wrap; gap: 8px; margin: 10px 0 20px; }
.pacotes-lista span { border: 1px dashed var(--ouro); color: var(--ouro2); border-radius: 8px; padding: 6px 12px; font-size: 13px; }

/* lightbox */
.lb { position: fixed; inset: 0; z-index: 100; background: rgba(0,0,0,.94); display: none; align-items: center; justify-content: center; }
.lb.on { display: flex; }
.lb img { max-width: 94vw; max-height: 86vh; object-fit: contain; user-select: none; -webkit-user-drag: none; }
.lb button { position: absolute; background: none; border: 0; color: #fff; font-size: 38px; cursor: pointer; padding: 14px; }
.lb .fechar { top: 6px; right: 10px; } .lb .ant { left: 6px; } .lb .prox { right: 6px; }
.lb .lb-acoes { position: absolute; bottom: 18px; left: 0; right: 0; display: flex; justify-content: center; gap: 10px; }

/* admin */
.adm-topo { background: var(--bg2); border-bottom: 1px solid var(--linha); }
.adm-topo .wrap { display: flex; align-items: center; gap: 20px; height: 60px; overflow-x: auto; }
.adm-topo img { height: 36px; width: auto; }
.adm-topo a { color: var(--suave); font-size: 13px; white-space: nowrap; }
.adm-topo a.on, .adm-topo a:hover { color: var(--ouro2); }
.adm { padding: 28px 0 80px; }
table { width: 100%; border-collapse: collapse; font-size: 14px; }
th, td { text-align: left; padding: 10px 8px; border-bottom: 1px solid var(--linha); vertical-align: middle; }
th { color: var(--suave); font-weight: 500; font-size: 12px; text-transform: uppercase; letter-spacing: 1px; }
.tabela-rolagem { overflow-x: auto; }
.linha-form { display: grid; grid-template-columns: repeat(auto-fit, minmax(180px, 1fr)); gap: 0 14px; }
.acoes { display: flex; gap: 6px; flex-wrap: wrap; }
.kpis { display: grid; grid-template-columns: repeat(auto-fit, minmax(180px, 1fr)); gap: 14px; margin-bottom: 24px; }
.kpi { background: var(--bg2); border: 1px solid var(--linha); border-radius: 12px; padding: 16px; }
.kpi b { display: block; font-family: var(--serif); font-size: 32px; color: var(--ouro2); font-weight: 500; }
.soltar { border: 2px dashed var(--ouro); border-radius: 12px; padding: 34px; text-align: center; color: var(--suave); cursor: pointer; }
.soltar.sobre-arq { background: rgba(201,140,82,.08); }
.progresso { height: 6px; background: var(--bg3); border-radius: 3px; overflow: hidden; margin-top: 12px; }
.progresso i { display: block; height: 100%; width: 0; background: var(--ouro); transition: width .2s; }
.adm-fotos { display: grid; grid-template-columns: repeat(auto-fill, minmax(120px, 1fr)); gap: 8px; }
.adm-fotos div { position: relative; } .adm-fotos img { aspect-ratio: 1; object-fit: cover; border-radius: 6px; }
.adm-fotos button { position: absolute; top: 4px; right: 4px; background: rgba(0,0,0,.6); border: 0; color: #fff; border-radius: 50%; width: 26px; height: 26px; cursor: pointer; }
