/* =========================================================
   MIMA PRATAS925 — complementos da loja própria
   (sacola, checkout, pedido, busca). Usa as mesmas variáveis
   e o mesmo estilo do tema original.
   ========================================================= */

.visually-hidden{ position:absolute!important; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0; }
.hp-field{ position:absolute!important; left:-9999px; width:1px; height:1px; opacity:0; }
.muted{ color:var(--color-text-soft); font-size:13.5px; }
.img-placeholder{ width:100%; height:100%; background:var(--color-bg-blush); }
.empty-state{ text-align:center; color:var(--color-text-soft); padding:30px 0; }
[hidden]{ display:none !important; }

/* Card de produto (link + botão separados, HTML válido) */
.product-card-media-link{ display:block; width:100%; height:100%; }
.product-card-info{ display:block; }
.product-badge.is-soldout{ color:var(--color-text-soft); }
.stars-row{ display:inline-flex; gap:2px; }
.stars-row svg{ width:12px; height:12px; fill:var(--color-gold); }
.stars-row .is-off svg{ fill:var(--color-border); }
.product-card-stars{ text-decoration:none; }
@media (hover:none){
  .product-card-quickadd{ opacity:1; transform:none; left:8px; right:8px; bottom:8px; }
  .product-card-quickadd button{ padding:8px; font-size:10px; background:rgba(20,17,16,.86); border-color:transparent; }
}

/* Produto */
.stock-hint{ margin:8px 0 0; font-size:12.5px; color:var(--color-rose-dark); font-weight:600; }
.product-form .btn[disabled]{ opacity:.55; cursor:not-allowed; transform:none; }
.product-reviews{ margin-top:56px; }
.product-reviews h2{ text-align:center; font-size:clamp(24px,3vw,32px); margin-bottom:24px; }
.product-reviews-list{ display:grid; grid-template-columns:repeat(auto-fill,minmax(260px,1fr)); gap:18px; }
.product-reviews-list .review-card{ width:auto; margin:0; }
.related-products{ margin-top:64px; }
.collection-description{ max-width:640px; margin:10px auto 0; color:var(--color-text-soft); }
.collection-count{ font-size:12.5px; color:var(--color-text-soft); }

/* Busca */
.search-form{ max-width:460px; margin:0 auto 40px; display:flex; gap:10px; }
.search-form input{ flex:1; padding:12px 18px; border-radius:999px; border:1px solid var(--color-border); font-size:14px; min-width:0; }
.search-form .btn{ padding:12px 18px; }
.search-form .btn svg{ width:18px; height:18px; }
.search-count{ color:var(--color-text-soft); margin-bottom:30px; }

/* Newsletter */
.newsletter-feedback{ margin:14px 0 0 !important; font-size:13px; color:#fff !important; min-height:1em; }

/* Toast */
.toast{ position:fixed; left:50%; bottom:calc(84px + env(safe-area-inset-bottom,0px)); transform:translate(-50%,20px); background:var(--color-black); color:#fff; padding:12px 20px; border-radius:999px; font-size:13px; opacity:0; pointer-events:none; transition:var(--transition); z-index:200; max-width:calc(100% - 32px); text-align:center; }
.toast.is-visible{ opacity:1; transform:translate(-50%,0); }

/* ---------- Sacola (gaveta e página) ---------- */
.cart-line{ align-items:flex-start; }
.cart-line-info{ min-width:0; }
.cart-line-title a:hover{ color:var(--color-rose-dark); }
.cart-line-controls{ display:flex; align-items:center; justify-content:space-between; gap:10px; margin-top:8px; }
.qty-selector.is-small button{ width:30px; height:30px; font-size:15px; }
.qty-selector.is-small input{ width:32px; font-size:13px; }
.cart-remove{ background:none; border:none; color:var(--color-text-soft); font-size:12px; text-decoration:underline; padding:4px; }
.cart-remove:hover{ color:var(--color-rose-dark); }
.cart-line-total{ font-weight:600; font-size:13.5px; white-space:nowrap; }
.cart-line-problem{ font-size:12px; color:#b04a3a; margin-top:4px; }
.cart-note{ font-size:12px; color:var(--color-text-soft); margin:-6px 0 14px; }
.cart-page-grid .cart-summary-box{ align-self:start; position:sticky; top:110px; }
.cart-table-row .cart-line-title{ font-weight:600; }
@media (max-width:600px){
  .cart-table-row{ grid-template-columns:72px 1fr; grid-template-areas:"img info" "img qty" "img total"; row-gap:8px; }
  .cart-table-row > a{ grid-area:img; }
  .cart-table-row img{ width:72px; height:86px; }
  .cart-table-row > .cart-row-info{ grid-area:info; }
  .cart-table-row > .qty-selector{ grid-area:qty; justify-self:start; }
  .cart-table-row > .cart-row-total{ grid-area:total; }
}

/* ---------- Checkout ---------- */
.checkout-secure{ display:flex; align-items:center; justify-content:center; gap:6px; color:var(--color-text-soft); font-size:12.5px; margin-bottom:28px; }
.checkout-secure svg{ width:15px; height:15px; color:var(--color-success); }
.checkout-grid{ display:grid; grid-template-columns:1.5fr 1fr; gap:40px; align-items:start; }
@media (max-width:900px){ .checkout-grid{ grid-template-columns:1fr; gap:24px; } }
.checkout-summary{ position:sticky; top:100px; }
@media (max-width:900px){ .checkout-summary{ position:static; } }
.checkout-summary h2, .checkout-step h2, .order-grid h2, .payment-box h2{ font-size:22px; margin-bottom:14px; }
.checkout-step{ background:#fff; border:1px solid var(--color-border); border-radius:var(--radius-md); padding:24px; margin-bottom:18px; }
@media (max-width:600px){ .checkout-step{ padding:18px 16px; } }
.checkout-step h2{ display:flex; align-items:center; gap:10px; }
.checkout-step h2 span{ display:inline-flex; align-items:center; justify-content:center; width:26px; height:26px; border-radius:50%; background:var(--color-rose-light); color:var(--color-rose-dark); font-family:var(--font-body); font-size:13px; font-weight:700; }
.field-grid{ display:grid; gap:14px; }
.field-row{ display:grid; grid-template-columns:1fr 1fr; gap:14px; }
@media (max-width:420px){ .field-row{ grid-template-columns:1fr; } }
.field label{ display:block; font-size:12px; letter-spacing:.04em; font-weight:600; color:var(--color-black); margin-bottom:6px; }
.field input, .field select, .field textarea{ width:100%; padding:12px 14px; border:1px solid var(--color-border); border-radius:var(--radius-sm); font-size:15px; font-family:inherit; background:#fff; color:var(--color-text); }
.field input:focus, .field select:focus, .field textarea:focus, .cart-coupon input:focus{ outline:2px solid var(--color-rose-light); border-color:var(--color-rose); }
.field.has-error input, .field.has-error select{ border-color:#c0564a; }
.field-error{ display:block; color:#b04a3a; font-size:12px; margin-top:4px; min-height:0; }
.field-help{ display:inline-block; font-size:11.5px; color:var(--color-rose-dark); margin-top:5px; text-decoration:underline; }
.check{ display:flex; gap:8px; align-items:center; font-size:13px; color:var(--color-text-soft); margin-top:14px; }
.option-list{ display:grid; gap:10px; }
.option{ display:flex; gap:12px; align-items:flex-start; padding:14px 16px; border:1px solid var(--color-border); border-radius:var(--radius-md); cursor:pointer; transition:border-color var(--transition), background var(--transition); }
.option:hover{ border-color:var(--color-rose); }
.option input{ margin-top:3px; accent-color:var(--color-rose-dark); width:17px; height:17px; flex-shrink:0; }
.option.is-selected{ border-color:var(--color-rose-dark); background:var(--color-bg-soft); }
.option-body{ flex:1; min-width:0; }
.option-title{ display:flex; justify-content:space-between; gap:10px; font-weight:600; font-size:14px; color:var(--color-black); }
.option-desc{ font-size:12.5px; color:var(--color-text-soft); margin-top:2px; }
.option-free{ color:var(--color-success); font-weight:700; }
.option-strike{ text-decoration:line-through; color:var(--color-text-soft); font-weight:400; margin-right:6px; font-size:12px; }
.summary-lines{ display:grid; gap:12px; margin-bottom:16px; }
.summary-line{ display:grid; grid-template-columns:56px 1fr auto; gap:12px; align-items:center; font-size:13.5px; }
.summary-line img{ width:56px; height:66px; object-fit:cover; border-radius:var(--radius-sm); }
.summary-totals{ display:grid; grid-template-columns:1fr auto; gap:8px 12px; margin:16px 0 18px; font-size:14px; }
.summary-totals dt{ color:var(--color-text-soft); margin:0; }
.summary-totals dd{ margin:0; text-align:right; }
.summary-totals .total{ font-size:17px; font-weight:700; color:var(--color-black); padding-top:10px; border-top:1px solid var(--color-border); }
.summary-totals .is-discount{ color:var(--color-success); }
.summary-foot{ display:flex; gap:6px; align-items:flex-start; font-size:11.5px; color:var(--color-text-soft); margin:12px 0 0; }
.summary-foot svg{ width:14px; height:14px; flex-shrink:0; color:var(--color-success); margin-top:1px; }
.coupon-msg{ font-size:12px; margin:-8px 0 0; min-height:0; }
.coupon-msg.is-ok{ color:var(--color-success); }
.coupon-msg.is-error{ color:#b04a3a; }
.checkout-page .btn[disabled]{ opacity:.55; cursor:not-allowed; transform:none; }
.btn.is-loading{ opacity:.7; pointer-events:none; }

.notice{ border-radius:var(--radius-md); padding:14px 16px; font-size:13.5px; margin:0 0 18px; }
.notice-warn{ background:#fff7e8; border:1px solid #f1d9a8; color:#7a5a1a; }
.notice-error{ background:#fdf0ee; border:1px solid #f0c9c2; color:#9b3d30; }
.notice-ok{ background:#f1f6ee; border:1px solid #cfe0c4; color:#4f6441; }

/* ---------- Pedido ---------- */
.order-hero{ text-align:center; max-width:620px; margin:0 auto 26px; }
.order-hero-icon{ display:inline-flex; width:58px; height:58px; border-radius:50%; background:var(--color-rose-light); color:var(--color-rose-dark); align-items:center; justify-content:center; margin-bottom:12px; }
.order-hero-icon svg{ width:28px; height:28px; }
.order-hero p{ color:var(--color-text-soft); }
.order-steps{ list-style:none; display:grid; grid-template-columns:repeat(5,1fr); gap:6px; padding:0; margin:0 auto 30px; max-width:820px; counter-reset:s; }
.order-steps li{ text-align:center; font-size:11.5px; color:var(--color-text-soft); position:relative; padding-top:28px; }
.order-steps li span{ position:absolute; top:0; left:50%; transform:translateX(-50%); width:18px; height:18px; border-radius:50%; background:#fff; border:2px solid var(--color-border); z-index:1; }
.order-steps li::before{ content:""; position:absolute; top:8px; left:-50%; right:50%; height:2px; background:var(--color-border); }
.order-steps li:first-child::before{ display:none; }
.order-steps li.is-done span{ background:var(--color-rose); border-color:var(--color-rose); }
.order-steps li.is-done::before, .order-steps li.is-current::before{ background:var(--color-rose); }
.order-steps li.is-current span{ border-color:var(--color-rose-dark); box-shadow:0 0 0 4px var(--color-rose-light); }
.order-steps li.is-current{ color:var(--color-black); font-weight:600; }
@media (max-width:520px){ .order-steps li{ font-size:10px; } }
.payment-box{ background:#fff; border:1px solid var(--color-border); border-radius:var(--radius-lg); padding:26px; max-width:820px; margin:0 auto 24px; text-align:center; }
.payment-box .btn svg{ width:18px; height:18px; }
.test-box{ border-style:dashed; border-color:var(--color-rose); background:var(--color-bg-soft); }
.test-box h2 small{ font-family:var(--font-body); font-size:12px; color:var(--color-rose-dark); }
.test-actions{ display:flex; gap:10px; justify-content:center; flex-wrap:wrap; }
.pix-key{ display:flex; gap:10px; justify-content:center; align-items:center; flex-wrap:wrap; margin:10px 0; }
.pix-key code{ background:var(--color-bg-soft); border:1px dashed var(--color-rose); padding:10px 16px; border-radius:var(--radius-sm); font-size:15px; word-break:break-all; }
.pix-qrcode{ display:block; margin:14px auto; border:1px solid var(--color-border); border-radius:var(--radius-sm); padding:8px; background:#fff; }
.order-grid{ display:grid; grid-template-columns:1fr 1fr; gap:24px; max-width:820px; margin:0 auto; }
@media (max-width:760px){ .order-grid{ grid-template-columns:1fr; } }
.order-grid p{ font-size:14px; }
.lookup-form{ max-width:420px; margin:24px auto 0; display:grid; gap:14px; }
.summary-discount strong, .summary-discount span{ color:var(--color-success); }
