* { box-sizing: border-box; }
:root { font-family: system-ui, sans-serif; color: #182b3b; background: #f2f5f8; }
body { margin: 0; }
header, main { width: 100%; max-width: 1120px; margin: auto; padding: 24px; }
header { display: flex; flex-wrap: wrap; gap: 24px; }
a { color: #164fb0; }
h1 { font-size: 2rem; overflow-wrap: anywhere; }
section, article { background: white; border: 1px solid #dce3ea; border-radius: 12px; padding: 20px; margin-bottom: 20px; }
.grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(230px, 1fr)); gap: 20px; align-items: start; }
.grid > .cartao-produto { min-width: 0; width: 100%; overflow: hidden; margin: 0; }
.grid h3, .grid p { overflow-wrap: anywhere; }
.moldura-foto { width: 100%; height: 200px; overflow: hidden; display: flex; align-items: center; justify-content: center; background: #f5f7fa; border-radius: 8px; margin-bottom: 12px; padding: 8px; }
.grid .moldura-foto > img.foto-produto { display: block; width: 100%; max-width: 100%; height: 100%; max-height: 100%; object-fit: contain; object-position: center; margin: 0; }
.sem-foto { color: #516779; }
.miniatura { display: block; width: 90px; height: 90px; max-width: 100%; object-fit: contain; background: #f5f7fa; border-radius: 6px; }
.galeria .miniatura { width: 60px; height: 60px; }
.fotos-admin, .galeria { display: flex; gap: 10px; flex-wrap: wrap; margin: 14px 0; }
.galeria a { display: block; flex: 0 0 60px; }
.produto-admin { border-bottom: 1px solid #dce3ea; padding: 20px 0; }
summary { cursor: pointer; padding: 10px 0; }
label { display: block; margin: 14px 0 5px; }
input, textarea, select { padding: 10px; border: 1px solid #aebdcc; border-radius: 5px; max-width: 100%; font: inherit; }
input:not([type=hidden]), textarea { width: 100%; }
button { border: 0; background: #174fb0; color: white; padding: 11px 16px; border-radius: 5px; cursor: pointer; margin: 8px 0; font: inherit; max-width: 100%; }
button:hover { background: #103b88; }
.aviso { padding: 18px; background: #e2edff; border-radius: 8px; overflow-wrap: anywhere; }
.scroll { overflow: auto; }
table { width: 100%; border-collapse: collapse; }
td, th { padding: 12px; text-align: left; border-bottom: 1px solid #dce3ea; }
small { color: #516779; }
.inline { display: inline-block; margin-right: 12px; }
pre { white-space: pre-wrap; font: inherit; }
.grid + section { margin-top: 24px; }
@media (max-width: 540px) {
 header, main { padding: 14px; }
 .grid { grid-template-columns: minmax(0, 1fr); }
 section, article { padding: 16px; }
}

/* Loja e carrinho lateral */
:root { --accent:#176b59; --ink:#182f2b; background:#f5f7f5; color:var(--ink); }
header,main { max-width:1360px; }
header { border-bottom:1px solid #dfe6e1; }
button,.finalizar { background:var(--accent); }
button:hover,.finalizar:hover { background:#105442; }
a { color:var(--accent); }
.intro-loja { display:flex; justify-content:space-between; flex-wrap:wrap; gap:12px; align-items:center; margin:0 0 32px; color:#65766e; }
.intro-loja p { margin:0; font-size:18px; }
.intro-loja span { font-size:13px; }
.layout-loja { display:grid; grid-template-columns:minmax(0,1fr) 370px; gap:30px; align-items:start; }
.catalogo { min-width:0; }
.catalogo-titulo { display:flex; align-items:center; justify-content:space-between; gap:15px; margin:0 0 22px; }
.catalogo-titulo h2,.carrinho-cabecalho h2 { margin:6px 0 0; }
.eyebrow { font-size:10px; letter-spacing:1.8px; font-weight:750; color:#71867b; }
.ir-carrinho { font-size:13px; }
.grid { grid-template-columns:repeat(auto-fill,minmax(210px,1fr)); gap:18px; }
.grid > .cartao-produto { border:1px solid #e1e7e3; border-radius:18px; padding:16px; box-shadow:0 4px 15px #12352204; }
.grid .moldura-foto { height:200px; background:#f5f7f5; border-radius:12px; }
.cartao-produto h3 { font-size:17px; margin-bottom:8px; }
.cartao-produto p { font-size:14px; color:#6a7870; line-height:1.5; }
.cartao-produto strong { font-size:20px; }
.adicionar { width:100%; margin:16px 0 0; border-radius:10px; }
.carrinho-lateral { position:sticky; top:20px; border:1px solid #dfe6e1; background:white; border-radius:20px; padding:22px; box-shadow:0 12px 35px #193b2710; min-width:0; }
.carrinho-cabecalho { display:flex; justify-content:space-between; align-items:center; padding-bottom:20px; }
.carrinho-cabecalho h2 { font-size:21px; }
.contador { background:#eaf3ee; color:var(--accent); min-width:34px; padding:8px; border-radius:50%; text-align:center; font-size:13px; font-weight:700; }
.carrinho-itens { max-height:45vh; overflow-y:auto; overscroll-behavior:contain; }
.item-carrinho { display:grid; grid-template-columns:58px minmax(0,1fr); gap:12px; padding:18px 0; border-top:1px solid #edf0ed; }
.foto-carrinho { display:block; width:58px; height:68px; object-fit:contain; border-radius:9px; background:#f5f7f5; }
.placeholder { display:grid; place-items:center; }
.item-info { min-width:0; }
.item-info h3 { margin:0 0 5px; font-size:14px; overflow-wrap:anywhere; }
.item-info small { font-size:12px; }
.quantidade-form { display:flex; align-items:center; flex-wrap:wrap; gap:7px; margin-top:10px; }
.seletor-quantidade { display:flex; border:1px solid #dce5df; border-radius:7px; height:34px; overflow:hidden; }
.seletor-quantidade button { background:#f5f8f5; color:var(--ink); padding:0; width:29px; margin:0; border-radius:0; }
.seletor-quantidade input { width:46px; padding:3px; border:0; border-radius:0; text-align:center; appearance:textfield; font-size:13px; }
.seletor-quantidade input::-webkit-inner-spin-button { appearance:none; }
button:disabled { opacity:.4; cursor:not-allowed; }
button.aplicar { font-size:11px; margin:0; padding:7px; }
button.remover { margin:7px 0 0; padding:0; background:transparent; color:#748279; font-size:11px; text-decoration:underline; }
.subtotal { grid-column:2; font-size:14px; }
.resumo-total { display:flex; justify-content:space-between; gap:12px; padding:20px 0; border-top:1px solid #e3e9e4; margin-top:10px; font-size:13px; }
.resumo-total strong { font-size:23px; white-space:nowrap; }
.finalizar { display:block; color:white; text-align:center; padding:15px; border-radius:10px; text-decoration:none; font-weight:600; font-size:14px; }
.nota-pagamento { text-align:center; font-size:12px; color:#758278; line-height:1.6; }
.carrinho-vazio { text-align:center; padding:28px 5px; color:#738378; }
.carrinho-vazio > span { font-size:32px; }
.carrinho-vazio h3 { color:var(--ink); font-size:16px; }
.carrinho-vazio p { font-size:13px; line-height:1.6; }
.indisponivel { color:#963924; font-size:12px; }
#checkout { margin-top:28px; scroll-margin-top:20px; }
#checkout[hidden],[hidden] { display:none !important; }
#checkout p { font-size:13px; color:#69796e; line-height:1.6; }
:focus-visible { outline:3px solid #92c4b2; outline-offset:3px; }
@media(max-width:1000px) { .layout-loja { grid-template-columns:minmax(0,1fr) 325px; gap:20px; } .grid { grid-template-columns:repeat(auto-fill,minmax(180px,1fr)); } }
@media(max-width:760px) { .layout-loja { display:flex; flex-direction:column; } .catalogo,.carrinho-lateral { width:100%; } .carrinho-lateral { position:static; } .carrinho-itens { max-height:none; } .grid { grid-template-columns:repeat(2,minmax(0,1fr)); } .moldura-foto { height:160px !important; } }
@media(max-width:420px) { .grid { grid-template-columns:minmax(0,1fr); } }

.passos-checkout { display:flex; flex-wrap:wrap; gap:20px; margin:0 0 28px; font-size:14px; }
.passos-checkout span { color:#176b59; font-weight:700; }
.checkout-pagina { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:28px; align-items:start; }
.checkout-pagina section { min-width:0; border-radius:18px; padding:26px; }
.linha-resumo { display:grid; grid-template-columns:58px minmax(0,1fr) auto; gap:14px; padding:20px 0; border-bottom:1px solid #edf0ed; align-items:center; }
.linha-resumo h3 { font-size:15px; margin:0 0 8px; overflow-wrap:anywhere; }
.linha-resumo p { margin:0 0 5px; font-size:13px; }
.linha-resumo > strong { white-space:nowrap; font-size:15px; }
.campos-duplos { display:grid; grid-template-columns:1fr 1fr; gap:14px; }
.campos-duplos > div { min-width:0; }
.nota-dados { font-size:13px; color:#69796e; line-height:1.7; }
.confirmar-encomenda { width:100%; padding:16px; border-radius:10px; }
@media(max-width:760px) { .checkout-pagina { grid-template-columns:minmax(0,1fr); gap:12px; } }
@media(max-width:420px) { .campos-duplos { grid-template-columns:minmax(0,1fr); gap:0; } .linha-resumo { grid-template-columns:48px minmax(0,1fr); } .linha-resumo > strong { grid-column:2; } .linha-resumo .foto-carrinho { width:48px; } }

.categorias-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:22px}.categoria-card{display:block;min-width:0;background:white;border:1px solid #e0e7df;border-radius:18px;overflow:hidden;text-decoration:none;color:#203b33;transition:box-shadow .18s,transform .18s}.categoria-card:hover{transform:translateY(-3px);box-shadow:0 12px 30px #193b2710}.categoria-imagem{height:190px;background:#edf2e9;display:grid;place-items:center;padding:16px}.categoria-imagem img{width:100%;height:100%;min-height:0;object-fit:contain}.categoria-imagem>span{font-size:55px;color:#7e9b83}.categoria-info{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:22px}.categoria-info h3{font-size:19px;margin:0 0 7px;overflow-wrap:anywhere}.categoria-info p{font-size:12px;color:#7c8a7b;margin:0}.categoria-info>span{font-size:22px;color:#528365}.categoria-voltar{margin-bottom:22px;font-size:13px}.editar-categoria{border-top:1px solid #e5ebe2;padding-top:15px;margin-top:15px}.produto-admin select{width:100%}@media(max-width:420px){.categorias-grid{grid-template-columns:minmax(0,1fr)}}@media(prefers-reduced-motion:reduce){.categoria-card{transition:none}.categoria-card:hover{transform:none}}
