/* components.css - 6.2.0 bancada navy */

/* botoes */
.button{display:inline-flex; align-items:center; justify-content:center; gap:8px;
  padding:12px 22px; border:0; border-radius:var(--r-pill); cursor:pointer;
  background:var(--blue); color:#fff; font-weight:600; font-size:15px; line-height:1;
  transition:background .16s,transform .16s}
.button:hover{background:#2a6bd6; text-decoration:none}
.button:active{transform:translateY(1px)}
.button[disabled],.button[aria-disabled="true"]{background:#1d3b5c; opacity:.45; cursor:not-allowed; pointer-events:none}
.quiet{display:inline-flex; align-items:center; justify-content:center; gap:8px;
  padding:11px 18px; border-radius:var(--r-pill); cursor:pointer; font-weight:600; font-size:14px;
  background:transparent; color:var(--on-dark); border:1px solid var(--line-strong); transition:background .16s,border-color .16s}
.quiet:hover{background:rgba(158,186,214,.1); text-decoration:none}
.quiet[disabled]{opacity:.4; cursor:not-allowed}
.order-button:not([disabled]){background:var(--aqua); color:var(--ink-900)}
.order-button:not([disabled]):hover{background:#49e0c0}

/* prateleira de miniaturas */
.shelf{display:flex; gap:10px; flex-wrap:wrap}
.shelf button{width:72px; height:72px; padding:0; border-radius:14px; cursor:pointer;
  background:var(--plate); border:1px solid transparent; overflow:hidden; transition:border-color .16s,transform .16s}
.shelf button img{width:100%; height:100%; object-fit:contain}
.shelf button:hover{transform:translateY(-2px)}
.shelf button[aria-pressed="true"],.shelf button.is-active{border-color:var(--aqua); box-shadow:0 0 0 3px rgba(47,211,176,.2)}

/* painel do hero */
.hero-panel{position:relative; background:rgba(18,44,71,.55); border:1px solid var(--line);
  border-radius:var(--r-l); padding:22px; -webkit-backdrop-filter:blur(10px); backdrop-filter:blur(10px)}
@media (prefers-reduced-transparency:reduce){ .hero-panel{background:var(--ink-700); backdrop-filter:none} }

/* palco 3D / posteres */
.stage{position:relative; background:var(--plate); border-radius:var(--r-l); overflow:hidden; aspect-ratio:1/1}
.hero-stage{aspect-ratio:4/3}
.stage .poster,.stage .snapshot{width:100%; height:100%; object-fit:contain}
.stage canvas.webgl{position:absolute; inset:0; width:100%; height:100%; opacity:0; transition:opacity .35s}
.stage canvas.webgl.is-on{opacity:1}
.callouts{position:absolute; inset:0; width:100%; height:100%; pointer-events:none}
.callouts path{stroke:rgba(6,21,35,.35); stroke-width:1; fill:none}
.callouts text{fill:#2b4a66; font-size:12px}
.stage .view-3d[hidden],.stage .stage-hint[hidden]{display:none!important}
.view-3d{position:absolute; right:12px; bottom:12px; background:rgba(6,21,35,.82); color:#fff; border-color:transparent; z-index:2}
.view-3d:hover{background:var(--ink-900)}
.stage-hint{position:absolute; left:12px; bottom:16px; font-size:12px; color:#48627a}
.lot-poster{width:100%; aspect-ratio:1/1; background:var(--plate); border-radius:var(--r-l)}

/* cards de produto */
.product-card{position:relative; display:flex; flex-direction:column;
  background:var(--ink-800); border:1px solid var(--line); border-radius:var(--r-m); overflow:hidden;
  transition:border-color .16s,transform .16s}
.product-card:hover{border-color:var(--line-strong); transform:translateY(-2px)}
.product-card img{width:100%; aspect-ratio:1/1; object-fit:contain; background:var(--plate)}
.card-body{display:grid; gap:6px; padding:16px; flex:1 1 auto; align-content:start}
.card-body h3{font-size:16px}
.card-body .actions{display:flex; gap:8px; flex-wrap:wrap; margin-top:auto; padding-top:12px}
.card-body .actions .button,.card-body .actions .quiet{padding:9px 14px; font-size:14px}
.price{font-size:20px; font-weight:700; color:var(--on-dark)}
.best-price{font-size:13px; color:var(--aqua); font-weight:600}
.detail-volume{font-size:14px; color:var(--on-dark-mute)}

/* chips de quantidade/volume */
.chips{display:flex; flex-wrap:wrap; gap:8px}
.chips button{padding:8px 14px; border-radius:var(--r-pill); cursor:pointer; font-size:14px; font-weight:600;
  background:transparent; color:var(--on-dark); border:1px solid var(--line-strong)}
.chips button[aria-pressed="true"]{background:var(--aqua); color:var(--ink-900); border-color:var(--aqua)}

/* formularios */
label{display:block; font-size:13px; font-weight:600; letter-spacing:.04em; text-transform:uppercase; color:var(--on-dark-mute); margin-bottom:6px}
input[type="text"],input[type="number"],input:not([type]),input[inputmode="numeric"],select,textarea{
  width:100%; padding:12px 14px; border-radius:var(--r-s); background:rgba(6,21,35,.55);
  border:1px solid var(--line-strong); color:var(--on-dark)}
input::placeholder{color:#6f8aa3}
.check{display:flex; align-items:center; gap:10px; margin:12px 0 0; font-size:14px; text-transform:none; letter-spacing:0; font-weight:500; color:var(--on-dark)}
.check input{width:18px; height:18px; flex:0 0 auto; accent-color:var(--aqua)}
#cep-help{margin-top:10px; color:var(--on-dark-mute)}
#cep-city{margin-top:6px; color:var(--aqua)}

/* resumo de precos e tabelas */
.price-summary{display:grid; gap:8px; padding:16px; border-radius:var(--r-m); background:rgba(6,21,35,.45); border:1px solid var(--line); margin:16px 0}
.price-summary strong{font-size:22px}
.table-wrap{overflow-x:auto; border:1px solid var(--line); border-radius:var(--r-m)}
.detail-table{width:100%; border-collapse:collapse; font-size:14px}
.detail-table th,.detail-table td{padding:10px 14px; text-align:left; border-bottom:1px solid var(--line)}
.detail-table th{color:var(--on-dark-mute); font-weight:600; font-size:12px; letter-spacing:.1em; text-transform:uppercase}
.detail-table tr:last-child td{border-bottom:0}

/* dialogos */
dialog{width:min(920px,calc(100vw - 32px)); max-height:88vh; padding:0; border:1px solid var(--line-strong);
  border-radius:var(--r-l); background:var(--ink-800); color:var(--on-dark); overflow:auto}
dialog::backdrop{background:rgba(3,10,18,.72); -webkit-backdrop-filter:blur(3px); backdrop-filter:blur(3px)}
#menu-dialog{width:min(420px,calc(100vw - 32px))}
#cart-dialog{width:min(560px,calc(100vw - 32px))}
.dialog-top{position:sticky; top:0; z-index:2; display:flex; align-items:center; justify-content:space-between; gap:16px;
  padding:16px 20px; background:var(--ink-800); border-bottom:1px solid var(--line)}
#menu-dialog nav{display:grid; padding:12px 20px 22px}
#menu-dialog nav a{padding:14px 0; border-bottom:1px solid var(--line); color:var(--on-dark); font-size:17px; font-weight:600}
#menu-dialog nav a:last-child{border-bottom:0}
.detail-layout{display:grid; grid-template-columns:1fr 1fr; gap:24px; padding:20px}
.cart-content{display:grid; gap:14px; padding:20px}
.cart-item{display:flex; align-items:center; gap:12px; padding:12px; border:1px solid var(--line); border-radius:var(--r-m)}
.cart-item img{width:56px; height:56px; object-fit:contain; background:var(--plate); border-radius:10px}
.cart-item .quiet{padding:7px 12px; font-size:13px}
.cart-total{font-size:16px}
.cart-total strong{font-size:24px; color:var(--aqua)}
.checkout-actions{display:flex; gap:10px; flex-wrap:wrap; margin-top:14px}
#real-photos{display:flex; gap:10px; flex-wrap:wrap; margin-top:12px}
#real-photos img{width:84px; height:84px; object-fit:cover; border-radius:10px}

/* dock movel */
.order-dock{position:fixed; left:50%; transform:translateX(-50%); bottom:18px; z-index:35;
  display:none; padding:14px 26px; border:0; border-radius:var(--r-pill); cursor:pointer;
  background:var(--aqua); color:var(--ink-900); font-weight:700; box-shadow:0 12px 30px rgba(3,10,18,.45)}
@media (max-width:760px){
  .order-dock:not([hidden]){display:inline-flex}
  .detail-layout{grid-template-columns:1fr; padding:16px}
  dialog{width:calc(100vw - 32px)}
}

/* Consistent labels, focus, notices and contact controls. */
.button,.quiet,.chips button{min-height:44px}
.desktop-nav a,.footer nav a{display:inline-flex;align-items:center;min-height:44px}
.card-body h3 span{white-space:nowrap}
.card-body .price{font-size:18px}
.price-summary>div{display:grid;gap:4px}
.price-summary small,.price-summary strong{display:block}
.detail-table table{width:100%;border-collapse:collapse}
fieldset{border:0;padding:0;margin:16px 0}
legend{margin-bottom:8px}
select option{background:var(--ink-900);color:var(--on-dark)}
.research-note{font-size:13px;line-height:1.5;color:var(--on-dark-mute);margin-block:10px;padding-left:10px;border-left:2px solid var(--aqua)}
.research-disclaimer{position:fixed;inset:auto 0 0;z-index:45;background:var(--ink-900);border-top:1px solid var(--line-strong);color:var(--on-dark);padding:12px 20px max(12px,env(safe-area-inset-bottom));text-align:center;font-size:13px;line-height:1.5}
.whatsapp-dock{display:none}
.flight{position:fixed;pointer-events:none;z-index:100;object-fit:contain}
.modal-open{overflow:hidden}
.check{min-height:44px}
#age-dialog{max-width:560px}
#cart-feedback{color:var(--aqua)}
.policy-page{padding-block:36px}
.policy-page section{scroll-margin-top:20px;max-width:80ch;padding-block:30px}
.policy-page h1{font-size:clamp(28px,4vw,42px)}
.policy-page h2{margin-bottom:16px}
.policy-page p+p{margin-top:12px}
.policy-page nav{display:flex;flex-wrap:wrap;gap:16px;margin-top:20px}
.policy-page a{min-height:44px;display:inline-flex;align-items:center}
@media(max-width:760px){
 .order-dock{bottom:calc(var(--legal-height,0px) + 12px + env(safe-area-inset-bottom,0px));width:calc(100% - 24px);max-width:460px;padding:12px;min-height:44px}
 .cart-item{align-items:flex-start}.cart-item img{flex:0 0 46px;width:46px;height:64px}
 .checkout-actions>*{width:100%}
 .dialog-top{padding:12px;gap:8px}.dialog-top h2{font-size:22px}
 .research-disclaimer{font-size:12px;padding:10px 14px}
}

.delivery a{color:var(--blue);text-decoration:underline}
