/* One shared visual system for navigation, dialogs, cards and footer. */
.announcement-bar { height:28px; overflow:hidden; display:flex; align-items:center; justify-content:center; background:#fff; }
.announcement-rotator { position:relative; width:100%; height:100%; }
.announcement-item { position:absolute; inset:0; display:flex; align-items:center; justify-content:center; text-align:center; padding-inline:var(--container-pad); font-size:10px; font-weight:700; letter-spacing:.09em; text-transform:uppercase; color:#111; opacity:0; transform:translateY(6px); transition:opacity .5s ease, transform .5s ease; pointer-events:none; }
.announcement-item.is-active { opacity:1; transform:translateY(0); }
.site-header { position:sticky; top:0; z-index:var(--z-header); background:#000; padding-block:16px; }
.header-nav { position:relative; width:min(86vw,1540px); height:64px; margin-inline:auto; display:flex; align-items:center; justify-content:space-between; gap:24px; padding:7px 10px 7px 28px; border:1px solid rgba(255,255,255,.24); border-radius:999px; background:rgba(10,10,10,.64); box-shadow:0 24px 70px rgba(0,0,0,.22); backdrop-filter:blur(18px); -webkit-backdrop-filter:blur(18px); }
.header-logo { display:inline-flex; width:clamp(132px,12vw,178px); height:42px; align-items:center; flex-shrink:0; overflow:hidden; }
.header-logo img { width:100%; height:100%; object-fit:contain; object-position:left center; }
.nav-links { position:absolute; left:50%; top:50%; transform:translate(-50%,-50%); display:flex; align-items:center; gap:clamp(24px,3vw,54px); }
.nav-links a { font-size:0.82rem; font-weight:800; color:rgba(255,255,255,.84); transition:color var(--transition-fast); }
.nav-links a:hover { color:#fff; }
.header-actions { display:flex; align-items:center; gap:8px; }
.header-contact-pill { min-height:48px; padding:6px 7px 6px 22px; border-radius:999px; display:inline-flex; align-items:center; gap:13px; background:rgba(255,255,255,.14); color:#fff; font-size:0.82rem; font-weight:900; white-space:nowrap; transition:background var(--transition-fast), transform var(--transition-fast); }
.header-contact-pill:hover { background:rgba(255,255,255,.22); transform:translateY(-1px); }
.header-contact-arrow { position:relative; width:34px; height:34px; border-radius:50%; display:inline-flex; align-items:center; justify-content:center; background:#fff; color:#101010; flex-shrink:0; }
.header-contact-arrow::before,.header-contact-arrow::after { content:''; position:absolute; background:currentColor; }
.header-contact-arrow::before { width:13px; height:2px; border-radius:2px; transform:rotate(-45deg); }
.header-contact-arrow::after { width:8px; height:8px; border-top:2px solid currentColor; border-right:2px solid currentColor; background:transparent; transform:translate(4px,-4px) rotate(-45deg); }
.header-nav .btn-icon { width:42px; height:42px; display:inline-flex; align-items:center; justify-content:center; border-radius:50%; color:#fff; background:rgba(255,255,255,.1); flex-shrink:0; }
.header-nav .btn-icon:hover { background:rgba(255,255,255,.22); }
.btn-icon { color:#202020; flex-shrink:0; }
.btn-icon:hover { background:#efefeb; }
.header-nav .btn-menu { display:none; }
.cart-badge { position:absolute; top:2px; right:1px; display:grid; place-items:center; min-width:17px; height:17px; padding:0 4px; border-radius:50%; background:#a32d25; color:#fff; font-size:10px; }
.dialog-open { overflow:hidden; }
.shop-dialog { border:0; color:#171717; background:#fff; padding:0; max-height:100dvh; max-width:100vw; margin:auto; }
.shop-dialog::backdrop { background:#1119; }
.shop-dialog[open] { display:flex; flex-direction:column; }
.dialog-heading { display:flex; justify-content:space-between; align-items:center; gap:12px; padding:20px 24px; border-bottom:1px solid var(--color-red); flex-shrink:0; }
.dialog-heading h2 { font-size:18px; font-weight:600; line-height:1.3; }
/* Menu mobile — tela cheia escura, como antes */
.mobile-nav { position:relative; width:100vw; height:100dvh; max-height:100dvh; margin:0; background:var(--color-black); color:#fff; padding:var(--space-xl) var(--container-pad); }
.mobile-nav-close { position:absolute; top:20px; right:var(--container-pad); color:#fff; }
.mobile-nav-links { margin-top:var(--space-xl); display:flex; flex-direction:column; gap:var(--space-md); overflow:auto; }
.mobile-nav-links a { font-family:var(--font-display); font-size:2rem; font-weight:700; text-transform:uppercase; color:rgba(255,255,255,.7); border-bottom:1px solid rgba(255,255,255,.12); padding-bottom:var(--space-md); }
.mobile-nav-links a:hover { color:#fff; }
/* Busca — overlay cheio escuro, como antes */
.search-overlay { position:relative; width:100vw; max-width:100vw; height:100dvh; max-height:100dvh; margin:0; background:rgba(10,10,10,.98); color:#fff; padding:var(--space-xl) var(--container-pad); }
.search-overlay-inner { width:100%; max-width:680px; margin-inline:auto; margin-top:80px; }
.search-form { display:flex; align-items:center; gap:var(--space-md); border-bottom:2px solid rgba(255,255,255,.18); padding-bottom:var(--space-md); margin-bottom:var(--space-xl); color:#fff; }
.search-form svg { flex-shrink:0; }
.search-form input { width:100%; min-width:0; border:0; background:transparent; color:#fff; font-size:20px; outline:0; }
.search-form input::placeholder { color:rgba(255,255,255,.4); }
.search-form .btn-icon { color:#fff; }
.search-status { padding-block:8px; font-size:13px; color:rgba(255,255,255,.55); }
.search-results { overflow:auto; }
.search-result-item { display:flex; align-items:center; gap:16px; padding:12px 0; border-top:1px solid rgba(255,255,255,.1); color:#fff; }
.search-result-item img { width:56px; height:70px; object-fit:cover; background:#222; }
.search-result-item strong { display:block; font-size:14px; font-weight:500; }
.search-result-item small { display:block; margin-top:4px; font-size:13px; color:rgba(255,255,255,.55); }
.search-results .text-link { display:inline-flex; margin-top:20px; padding-block:10px; color:#fff; border-color:rgba(255,255,255,.4); }
.cart-drawer { width:min(440px,100vw); height:100dvh; margin:0 0 0 auto; }
.cart-drawer-body { flex:1; min-height:0; overflow:auto; padding:0 24px; }
.cart-drawer-footer { flex-shrink:0; padding:20px 24px; border-top:1px solid var(--color-red); }
.cart-drawer-footer:empty { display:none; }
.cart-drawer-empty { display:grid; justify-items:center; align-content:center; gap:24px; min-height:340px; text-align:center; }
.cart-drawer-empty > svg { width:40px; height:40px; }
.cart-drawer-empty p { color:#666; max-width:250px; }
.cart-item { display:flex; gap:16px; padding:24px 0; border-bottom:1px solid var(--color-red); }
.cart-item-image { width:80px; flex-shrink:0; }
.cart-item-image img { width:80px; height:100px; object-fit:cover; background:#f3f3ef; }
.cart-item-info { flex:1; min-width:0; }
.cart-item-info h3 { font-size:13px; font-weight:600; line-height:1.4; }
.cart-item-variant { color:#666; font-size:12px; margin:6px 0; }
.cart-item-price { font-size:14px; font-weight:600; }
.cart-item-actions { display:flex; align-items:center; flex-wrap:wrap; justify-content:space-between; gap:10px; margin-top:10px; }
.qty-control { display:inline-flex; align-items:center; border:1px solid #ddd; }
.qty-control button { width:44px; height:44px; }
.qty-control span { width:30px; text-align:center; font-size:14px; }
.btn-remove-item { color:#555; font-size:12px; text-decoration:underline; min-height:44px; }
.cart-drawer-totals .row { display:flex; justify-content:space-between; gap:16px; }
.cart-drawer-totals p { color:#666; font-size:12px; margin:10px 0 18px; }
.free-shipping-progress { height:4px; background:#eee; }
.free-shipping-fill { height:100%; background:#777; }
.pcard { min-width:0; display:flex; flex-direction:column; color:#1c1c1c; }
.pcard-media-wrap { position:relative; }
.pcard-media { display:block; aspect-ratio:4/5; overflow:hidden; background:#f3f3ef; }
.pcard-media img { width:100%; height:100%; object-fit:cover; transition:transform 220ms ease; }
.pcard-media img[src*="logo-dominus"] { object-fit:contain; padding:24%; }
.pcard-media:hover img { transform:scale(1.025); }
.pcard-badge { position:absolute; top:12px; left:12px; pointer-events:none; padding:4px 8px; background:#fff; font-size:10px; letter-spacing:.03em; color:#555; }
.pcard-badge--discount { background:#a72f28; color:#fff; }
.pcard-badge--promo { background:var(--color-red); color:#fff; font-weight:700; }
.promo-banner { padding:14px 16px; background:#fff5f4; border:1px solid var(--color-red); border-radius:4px; }
.promo-banner strong { display:block; font-size:12px; letter-spacing:.06em; text-transform:uppercase; color:var(--color-red); margin-bottom:6px; }
.promo-banner p { font-size:13px; line-height:1.5; margin:0; }
.promo-banner-legal { margin-top:6px !important; font-size:11px !important; color:var(--color-gray-2); }
.pcard-badge--campaign { background:#000; color:#fff; font-weight:800; letter-spacing:.06em; }
/* Esquenta Black Friday */
.announcement-bar--campaign { height:auto; min-height:30px; background:#000; border-bottom:1px solid var(--color-red); }
.announcement-campaign { display:flex; align-items:center; justify-content:center; width:100%; min-height:30px; padding:6px var(--container-pad); text-align:center; font-size:11px; font-weight:800; letter-spacing:.06em; text-transform:uppercase; line-height:1.35; color:#fff; }
.announcement-campaign:hover { text-decoration:underline; text-underline-offset:3px; }
.cart-drawer-totals .row.savings { color:var(--color-red); font-size:13px; margin-bottom:8px; }
.cart-drawer-totals p.campaign-coupon-note, .campaign-coupon-note { display:block; margin:12px 0 0; padding:10px 12px; background:#f5f5f1; border-left:3px solid #000; color:#333; font-size:12px; line-height:1.5; }
.campaign-coupon-note b { font-weight:800; letter-spacing:.05em; color:#000; }
.promo-banner--campaign { background:#000; border-color:#000; color:#fff; }
.promo-banner--campaign strong { color:#fff; font-size:13px; letter-spacing:.08em; }
.promo-banner--campaign p { color:rgba(255,255,255,.9); }
.promo-banner--campaign .campaign-coupon-note { background:#1b1b1b; border-left-color:var(--color-red); color:rgba(255,255,255,.85); }
.promo-banner--campaign .campaign-coupon-note strong { display:inline; font-size:inherit; letter-spacing:0; text-transform:none; margin:0; }
.promo-banner--campaign .campaign-coupon-note b { color:#fff; }
.pcard-info { display:flex; flex-direction:column; flex:1; padding-top:15px; }
.pcard-name { font-size:14px; line-height:1.45; font-weight:500; margin-bottom:9px; min-height:2.9em; }
.pcard-name a:hover { text-decoration:underline; text-underline-offset:3px; }
.pcard-price { display:flex; flex-wrap:wrap; align-items:baseline; gap:9px; }
.pcard-price .price-current { font-family:var(--font-body); font-size:15px; font-weight:600; }
.pcard-price .price-old { font-size:12px; }
.pcard-payment { margin-top:2px; color:#686864; font-size:11px; }
.pcard-options { display:flex; align-items:center; justify-content:space-between; gap:6px; min-height:48px; margin:5px 0; }
.pcard-colors { display:flex; flex-wrap:wrap; align-items:center; }
.pcard-color { width:28px; height:44px; display:grid; place-items:center; }
.pcard-color span { width:16px; height:16px; border-radius:50%; background:var(--swatch); border:1px solid #1114; box-shadow:0 0 0 3px #fff; }
.pcard-color:hover span { outline:1px solid #666; outline-offset:3px; }
.pcard-colors small,.pcard-size-range { font-size:10px; color:#656561; }
.pcard-size-range { margin-left:auto; text-align:right; }
.pcard-buy { display:flex; align-items:center; justify-content:space-between; gap:8px; min-height:44px; padding:10px 12px; margin-top:auto; border:1px solid #cdcdc5; font-size:12px; }
.pcard-buy svg { width:17px; height:17px; }
.pcard-buy:hover { border-color:#222; background:#222; color:#fff; }
.site-footer { background:#000; color:#fff; border-top:1px solid var(--color-red); padding:52px 0 0; }
.footer-grid { display:grid; grid-template-columns:1.3fr 1fr 1fr 1.2fr; gap:40px; padding-bottom:44px; }
.footer-brand-logo { width:138px; height:75px; display:block; }
.footer-brand-logo img { width:100%; height:100%; object-fit:contain; }
.footer-brand p { margin:16px 0; color:rgba(255,255,255,.75); font-size:13px; line-height:1.8; }
.footer-instagram { display:inline-flex; align-items:center; min-height:44px; font-size:13px; color:#fff; }
.footer-col h2 { margin:14px 0; font-size:13px; font-weight:600; color:#fff; }
.footer-col a { display:inline-block; padding:8px 0; color:rgba(255,255,255,.75); font-size:12px; }
.footer-col a:hover { color:#fff; text-decoration:underline; }
.footer-bottom { display:flex; justify-content:space-between; gap:20px; padding:22px 0; border-top:1px solid var(--color-red); color:rgba(255,255,255,.75); font-size:11px; }
.whatsapp-float { width:44px; height:44px; right:18px; bottom:18px; background:#252c28; box-shadow:0 3px 10px #0002; }
.whatsapp-float svg { width:21px; height:21px; fill:none; color:#fff; }
.pcard-image-missing { display:flex; align-items:center; justify-content:center; width:100%; height:100%; padding:24px; font-size:12px; color:#686864; text-align:center; }
@media(max-width:1100px) {
  .header-nav { gap:16px; }
  .nav-links { gap:var(--space-lg); }
}
@media(max-width:1280px) { .whatsapp-float { display:none; } }
@media(max-width:1024px) {
  .header-nav { width:calc(100vw - 28px); height:60px; padding-left:22px; }
  .header-logo { width:126px; height:38px; }
  .header-contact-pill { display:none; }
  .header-nav .btn-icon { width:40px; height:40px; }
}
@media(max-width:900px) {
  .announcement-item { font-size:9px; }
  .announcement-campaign { font-size:10px; letter-spacing:.02em; }
  .nav-links { display:none; }
  .header-nav .btn-menu { display:inline-flex; }
  .footer-grid { grid-template-columns:1fr 1fr; gap:30px; }
}
@media(max-width:640px) {
  .header-nav { width:calc(100vw - 20px); height:56px; padding:6px 8px 6px 18px; }
  .header-actions { gap:4px; }
  .header-nav .btn-icon { width:38px; height:38px; }
}
@media(max-width:480px) {
  .pcard-name { font-size:12px; }
  .pcard-price .price-current { font-size:14px; }
  .pcard-badge { top:8px; left:8px; font-size:9px; }
  .pcard-options { flex-wrap:wrap; margin-block:4px; }
  .pcard-color { width:25px; }
  .pcard-buy { font-size:11px; padding:10px 8px; }
  .footer-grid { gap:24px 16px; }
  .footer-brand { grid-column:1/-1; }
  .footer-bottom { flex-direction:column; gap:8px; }
  .dialog-heading { padding:16px; }
  .cart-drawer-body { padding-inline:16px; }
}
/* Preço com desconto em destaque ao lado do preço original riscado. */
.pcard-price:has(.price-old) .price-current { color:var(--color-red); }
.cart-item-price .price-old { margin-right:4px; font-size:12px; }
.cart-summary-savings span:last-child { color:var(--color-red); font-weight:700; }
