/* ============================================================
   GPS Shop — Design System v2
   "Apple Store + instrumento de precisão"
   Pesagem de motion: Jakub (polimento) > Emil (restrição) > Jhey (showcase)
   Carregado por mu-plugins/gpsshop-custom-assets.php
   ============================================================ */

:root{
  --gps-orange: #F58220;
  --gps-orange-bright: #FF7A14;
  --gps-orange-ink: #A85608;          /* laranja escuro p/ texto em fundo claro (>=4.5:1) */
  --gps-navy: #092136;
  --gps-ink: #14202B;
  --gps-red: #E63329;
  --gps-green: #1FAA54;
  --gps-ease: cubic-bezier(.2,.7,.2,1);          /* ease-out forte (hover) */
  --gps-ease-reveal: cubic-bezier(.16,1,.3,1);   /* ease-out-quint (reveals) */
  --gps-dur-hover: .26s;
  --gps-dur-reveal: .55s;
  --gps-shadow-rest: 0 0 0 1px rgba(9,33,54,.05), 0 1px 2px rgba(9,33,54,.06), 0 2px 6px rgba(9,33,54,.04);
  --gps-shadow-lift: 0 0 0 1px rgba(9,33,54,.06), 0 6px 14px rgba(9,33,54,.10), 0 18px 36px rgba(9,33,54,.14);
}

/* ---------- Fundamentos ---------- */
html{ scroll-behavior:smooth; }

/* Transições suaves nos interativos */
a,button,.btn,.button,input[type=submit],.add_to_cart_button,
.single_add_to_cart_button,.wd-buttons a{
  transition:transform var(--gps-dur-hover) var(--gps-ease),
             box-shadow var(--gps-dur-hover) var(--gps-ease),
             background-color var(--gps-dur-hover) var(--gps-ease),
             color var(--gps-dur-hover) var(--gps-ease),
             border-color var(--gps-dur-hover) var(--gps-ease),
             filter var(--gps-dur-hover) var(--gps-ease);
}

/* ---------- Tipografia & hierarquia ---------- */
/* O tema define --wd-title-color:#fff global (p/ header/footer escuros);
   em conteúdo de página isso deixa títulos invisíveis — corrige só no conteúdo. */
.wd-content-area .entry-content{
  --wd-title-color:#14202B;
}

.title.woodmart-title-container{
  letter-spacing:-.015em;
  text-wrap:balance;
}
.title.woodmart-title-container.wd-fontsize-xxl{ font-weight:800; }
.title.woodmart-title-container.wd-fontsize-xl{ font-weight:700; }

/* ---------- Botões ---------- */
.btn:hover,.button:hover,.woocommerce a.button:hover,.woocommerce button.button:hover,
.add_to_cart_button:hover,.single_add_to_cart_button:hover,input[type=submit]:hover{
  transform:translateY(-2px) scale(1.05);
  box-shadow:0 8px 22px rgba(245,130,32,.38);
}
.btn:active,.button:active,.add_to_cart_button:active,.single_add_to_cart_button:active{
  transform:translateY(0) scale(.97);
  transition-duration:.09s;
}

/* Varredura de brilho — só nos primários (restrição) */
.btn.btn-color-primary,.single_add_to_cart_button,.gps-buy-now{
  position:relative; overflow:hidden;
}
.btn.btn-color-primary::before,.single_add_to_cart_button::before,.gps-buy-now::before{
  content:""; position:absolute; inset:0; pointer-events:none;
  background:linear-gradient(105deg,transparent 38%,rgba(255,255,255,.34) 50%,transparent 62%);
  transform:translateX(-130%);
}
.btn.btn-color-primary:hover::before,.single_add_to_cart_button:hover::before,.gps-buy-now:hover::before{
  transform:translateX(130%);
  transition:transform .65s var(--gps-ease);
}

/* CTA principal — pulso laranja (5 ciclos, depois descansa) */
@keyframes gpsPulse{
  0%{box-shadow:0 0 0 0 rgba(245,130,32,.5)}
  70%{box-shadow:0 0 0 14px rgba(245,130,32,0)}
  100%{box-shadow:0 0 0 0 rgba(245,130,32,0)}
}
.single_add_to_cart_button,.gps-buy-now,a.buy-now-btn{
  background:var(--gps-orange-bright)!important;color:#fff!important;
  font-weight:700!important;text-transform:uppercase;letter-spacing:.04em;
  animation:gpsPulse 2.4s var(--gps-ease) 5;
}
.single_add_to_cart_button:hover{ filter:brightness(1.07); }

/* Ripple (criado via JS no clique) */
.gps-ripple-host{ position:relative; overflow:hidden; }
.gps-ripple{
  position:absolute; border-radius:50%; pointer-events:none;
  background:rgba(255,255,255,.45);
  transform:scale(.3); opacity:.5;
  animation:gpsRipple .55s var(--gps-ease) forwards;
}
@keyframes gpsRipple{ to{ transform:scale(2.6); opacity:0; } }

/* ---------- Cards de produto ---------- */
.products .product-grid-item .product-wrapper,
.wd-product .product-wrapper{
  position:relative;
  border-radius:12px;
  box-shadow:var(--gps-shadow-rest);
  transition:box-shadow .32s var(--gps-ease);
  background:#fff;
}
.products .product-grid-item:hover .product-wrapper,
.wd-product:hover .product-wrapper{
  box-shadow:var(--gps-shadow-lift);
}
/* lift padrão (sem JS); o tilt JS sobrescreve via style inline */
@media (hover:hover){
  .product-grid-item,.wd-product{
    transition:transform .32s var(--gps-ease);
  }
  .product-grid-item:hover,.wd-product:hover{
    transform:translateY(-6px);
    z-index:3;
  }
}

/* Assinatura: mira de visor — cantoneiras laranja no hover */
.wd-product .product-wrapper::before,
.wd-product .product-wrapper::after{
  content:""; position:absolute; width:20px; height:20px; z-index:5;
  pointer-events:none; opacity:0;
  transition:opacity .3s var(--gps-ease), transform .3s var(--gps-ease);
}
.wd-product .product-wrapper::before{
  top:10px; left:10px;
  border-top:2px solid var(--gps-orange); border-left:2px solid var(--gps-orange);
  transform:translate(-5px,-5px);
}
.wd-product .product-wrapper::after{
  bottom:10px; right:10px;
  border-bottom:2px solid var(--gps-orange); border-right:2px solid var(--gps-orange);
  transform:translate(5px,5px);
}
.wd-product:hover .product-wrapper::before,
.wd-product:hover .product-wrapper::after{
  opacity:1; transform:translate(0,0);
}

/* Zoom sutil da imagem (slides em background e <img> simples) */
.wd-product .product-image-link,
.wd-product .wd-product-grid-slider{ overflow:hidden; border-radius:12px 12px 0 0; }
.wd-product .wd-product-grid-slide,
.wd-product .product-image-link > img{
  transition:transform .5s var(--gps-ease);
}
.wd-product:hover .wd-product-grid-slide,
.wd-product:hover .product-image-link > img{
  transform:scale(1.08);
}

/* Títulos de produto: permitir 2 linhas + reticências (tooltip com nome completo via JS) */
.wd-product .wd-entities-title{
  display:-webkit-box;
  -webkit-line-clamp:2;
  -webkit-box-orient:vertical;
  overflow:hidden;
  text-overflow:ellipsis;
  min-height:2.5em;          /* reserva 2 linhas p/ alinhar preços/botões */
  line-height:1.25;
  white-space:normal;
}

/* Badge "Consulte o preço" (injetado via JS no lugar de R$ 0,00) */
.gps-quote-badge{
  display:inline-flex; align-items:center; gap:.45em;
  font-weight:700; font-size:.92em; letter-spacing:.01em;
  color:var(--gps-orange-ink);
}
.gps-quote-badge::before{
  content:""; width:7px; height:7px; border-radius:50%;
  background:var(--gps-orange);
}

/* ---------- Categorias (carrossel e cards) ---------- */
.wd-cat .wd-cat-inner{ transition:transform .32s var(--gps-ease); }
.wd-cat:hover .wd-cat-inner{ transform:translateY(-5px); }
.wd-cat .wd-cat-image img{ transition:transform .45s var(--gps-ease), filter .45s var(--gps-ease); }
.wd-cat:hover .wd-cat-image img{ transform:scale(1.07); }

/* ---------- Hero (slider WoodMart) ---------- */
.elementor-widget-wd_slider .wd-slider{ position:relative; }
.elementor-widget-wd_slider .wd-slider::after{
  content:""; position:absolute; inset:auto 0 0 0; height:34%;
  background:linear-gradient(to top, rgba(9,33,54,.32), rgba(9,33,54,0));
  pointer-events:none; z-index:2;
}

/* ---------- Reveals de scroll (estado aplicado SÓ via JS) ---------- */
.gps-io{
  opacity:0;
  transform:translateY(18px);
  filter:blur(5px);
  transition:opacity var(--gps-dur-reveal) var(--gps-ease-reveal),
             transform var(--gps-dur-reveal) var(--gps-ease-reveal),
             filter var(--gps-dur-reveal) var(--gps-ease-reveal);
  transition-delay:calc(var(--gps-i,0) * 60ms);
}
.gps-io.gps-in{
  opacity:1; transform:none; filter:none;
}

/* ---------- Imagens lazy: materializar ao carregar (JS) ---------- */
.gps-img-fade{ opacity:0; filter:blur(6px); transition:opacity .45s var(--gps-ease), filter .45s var(--gps-ease); }
.gps-img-fade.gps-img-in{ opacity:1; filter:none; }

/* ---------- Selos / etiquetas ---------- */
@keyframes gpsBeat{0%,100%{transform:scale(1)}50%{transform:scale(1.07)}}
.woocommerce span.onsale,.product-labels .onsale,.wd-product .onsale,span.onsale,
.product-label-new,.wd-info-labels .label-sale{
  background:var(--gps-red)!important;color:#fff!important;font-weight:700;
  letter-spacing:.3px;box-shadow:0 3px 10px rgba(230,51,41,.5);
}
.stock.in-stock,.wd-product .stock.in-stock,.gps-trust,.free-shipping,
.wd-product .wd-product-stock-in{color:var(--gps-green)!important;font-weight:600}

/* ============================================================
   Gatilhos de conversão (usados por gpsshop-conversion.php)
   — preservados da v1, não remover
   ============================================================ */
.gps-discount{
  background:var(--gps-red)!important;color:#fff!important;font-weight:800!important;
  border-radius:50%;min-width:46px;height:46px;display:flex;align-items:center;justify-content:center;
  font-size:13px;box-shadow:0 4px 12px rgba(230,51,41,.5);animation:gpsBeat 2.4s ease-in-out infinite;
}
.gps-urgency{
  display:inline-block;margin:.5em 0;padding:.45em .8em;border-radius:8px;
  background:rgba(230,51,41,.1);color:var(--gps-red);font-weight:700;border:1px solid rgba(230,51,41,.3);
  animation:gpsBeat 2.2s ease-in-out infinite;
}
.gps-sold{
  display:inline-block;margin:.35em 0;color:var(--gps-green);font-weight:600;font-size:.95em;
}
.gps-social{
  display:inline-block;margin:.35em 0;color:#666;font-size:.9em;
}
.gps-social::before{content:"";display:inline-block;width:8px;height:8px;border-radius:50%;
  background:var(--gps-green);margin-right:6px;vertical-align:middle;
  animation:gpsLivePulse 1.6s ease-in-out infinite;}
@keyframes gpsLivePulse{0%,100%{opacity:1;transform:scale(1)}50%{opacity:.4;transform:scale(.7)}}
.gps-trust-badges{
  display:flex;flex-wrap:wrap;gap:8px;margin:16px 0;clear:both;
}
.gps-trust-badges span{
  display:inline-flex;align-items:center;gap:4px;font-size:.82em;font-weight:600;color:#2a2a2a;
  background:#f4f6f8;border:1px solid #e3e8ee;border-radius:8px;padding:6px 10px;line-height:1.2;
  transition:transform .2s var(--gps-ease),box-shadow .2s var(--gps-ease);
}
.gps-trust-badges span:hover{transform:translateY(-2px);box-shadow:0 6px 14px rgba(0,0,0,.1)}

/* ============================================================
   Checkout premium
   ============================================================ */

/* Esconde o h3 nativo duplicado (o layout já tem o título "Dados de cobrança") */
.woocommerce-checkout .elementor-widget-wd_checkout_billing_details_form .elementor-widget-container > h3:first-child,
.woocommerce-checkout .elementor-widget-wd_checkout_billing_details_form .woocommerce-billing-fields > h3{
  display:none;
}

/* Títulos de seção do checkout */
.woocommerce-checkout h4.woodmart-title-container{
  font-weight:800;
  margin-bottom:.7em;
}

/* Campos: base limpa + foco laranja + transição */
.woocommerce-checkout form.checkout input.input-text,
.woocommerce-checkout form.checkout select,
.woocommerce-checkout form.checkout textarea,
.woocommerce-checkout .checkout_coupon input.input-text{
  border:1px solid #DDE3EA;
  border-radius:8px;
  background:#fff;
  transition:border-color .2s var(--gps-ease), box-shadow .2s var(--gps-ease);
}
.woocommerce-checkout form.checkout input.input-text:focus,
.woocommerce-checkout form.checkout select:focus,
.woocommerce-checkout form.checkout textarea:focus,
.woocommerce-checkout .checkout_coupon input.input-text:focus{
  border-color:var(--gps-orange);
  box-shadow:0 0 0 3px rgba(245,130,32,.16);
  outline:none;
}
.woocommerce-checkout .select2-container--default .select2-selection--single{
  border:1px solid #DDE3EA;
  border-radius:8px;
  transition:border-color .2s var(--gps-ease), box-shadow .2s var(--gps-ease);
}
.woocommerce-checkout .select2-container--focus .select2-selection--single,
.woocommerce-checkout .select2-container--open .select2-selection--single{
  border-color:var(--gps-orange);
  box-shadow:0 0 0 3px rgba(245,130,32,.16);
}
.woocommerce-checkout form.checkout label{
  font-weight:600;
  font-size:.92em;
}

/* Resumo do pedido: painel escuro elegante */
.woocommerce-checkout .elementor-widget-wd_checkout_order_review .shop_table{
  background:var(--gps-navy);
  color:#E7EDF3;
  border:0;
  border-radius:14px;
  padding:14px 22px 18px;
  box-shadow:0 14px 34px rgba(9,33,54,.22);
}
.woocommerce-checkout .elementor-widget-wd_checkout_order_review .shop_table th,
.woocommerce-checkout .elementor-widget-wd_checkout_order_review .shop_table td{
  border-color:rgba(255,255,255,.09);
  color:#E7EDF3;
}
.woocommerce-checkout .elementor-widget-wd_checkout_order_review .shop_table thead th{
  color:#9FB0BF;
  text-transform:uppercase;
  font-size:.78em;
  letter-spacing:.06em;
}
.woocommerce-checkout .elementor-widget-wd_checkout_order_review .shop_table .product-name,
.woocommerce-checkout .elementor-widget-wd_checkout_order_review .shop_table a{
  color:#fff;
}
.woocommerce-checkout .elementor-widget-wd_checkout_order_review .shop_table .order-total th,
.woocommerce-checkout .elementor-widget-wd_checkout_order_review .shop_table .order-total td,
.woocommerce-checkout .elementor-widget-wd_checkout_order_review .shop_table .order-total .woocommerce-Price-amount{
  color:var(--gps-orange);
  font-weight:800;
  font-size:1.08em;
}
.woocommerce-checkout .elementor-widget-wd_checkout_order_review .shop_table .gps-quote-badge{
  color:var(--gps-orange);
}

/* Pagamento: caixa clara limpa */
.woocommerce-checkout #payment{
  background:#F6F8FA;
  border-radius:12px;
}

/* Botão Finalizar Pedido */
.woocommerce-checkout #place_order{
  width:100%;
  background:var(--gps-orange-bright)!important;
  color:#fff!important;
  font-weight:800!important;
  text-transform:uppercase;
  letter-spacing:.05em;
  padding-top:1em;
  padding-bottom:1em;
  border-radius:10px;
  animation:gpsPulse 2.4s var(--gps-ease) 5;
}
.woocommerce-checkout #place_order:hover{
  filter:brightness(1.07);
  box-shadow:0 10px 26px rgba(245,130,32,.42);
}

/* Selos + formas de pagamento (injetados via JS) */
.gps-checkout-trust{
  margin-top:16px;
  text-align:center;
}
.gps-checkout-trust .gps-trust-badges{
  justify-content:center;
  margin:0 0 10px;
}
.gps-pay-row{
  display:flex;
  flex-wrap:wrap;
  gap:8px;
  justify-content:center;
}
.gps-pay{
  display:inline-block;
  padding:4px 12px;
  border:1px solid #E2E8EE;
  border-radius:6px;
  background:#fff;
  font-weight:800;
  font-size:.78em;
  letter-spacing:.02em;
}
.gps-pay-visa{ color:#1A1F71; font-style:italic; }
.gps-pay-mc{ color:#EB001B; }
.gps-pay-pix{ color:#32BCAD; }
.gps-pay-boleto{ color:#14202B; }

/* ============================================================
   Orçamento via WhatsApp (produtos sob consulta)
   ============================================================ */
:root{ --gps-wa:#25D366; --gps-wa-dark:#1da851; }

.gps-quote-btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:.5em;
  background:var(--gps-wa)!important;
  color:#fff!important;
  font-weight:700!important;
  border:0!important;
  border-radius:8px;
  line-height:1.15;
  text-transform:none!important;
  box-shadow:0 4px 12px rgba(37,211,102,.30);
}
.gps-quote-btn .gps-wa-ico{ font-size:1.15em; flex:0 0 auto; }
.gps-quote-btn:hover{
  background:var(--gps-wa-dark)!important;
  color:#fff!important;
  transform:translateY(-2px) scale(1.02);
  box-shadow:0 8px 20px rgba(37,211,102,.40);
}
.gps-quote-btn:active{ transform:translateY(0) scale(.98); transition-duration:.09s; }

/* variante listagem: botão cheio embaixo do card, como o "Adicionar" do tema */
.wd-product .gps-quote-btn-loop{
  width:100%;
  padding:.85em 1em;
}

/* variante página de produto */
.gps-quote-single{ margin:.4em 0 .2em; }
.gps-quote-btn-single{
  width:100%;
  max-width:420px;
  padding:1em 1.4em;
  font-size:1.02em;
  letter-spacing:.01em;
  /* pulso sutil para chamar a ação principal (5 ciclos) */
  animation:gpsWaPulse 2.4s var(--gps-ease) 5;
}
@keyframes gpsWaPulse{
  0%{box-shadow:0 0 0 0 rgba(37,211,102,.5)}
  70%{box-shadow:0 0 0 14px rgba(37,211,102,0)}
  100%{box-shadow:0 0 0 0 rgba(37,211,102,0)}
}
.gps-quote-note{
  margin:.6em 0 0;
  font-size:.86em;
  color:var(--gps-orange-ink);
  font-weight:600;
}

/* ============================================================
   v2.1 — Header vidro, nav lateral laranja, sombra laranja
   ============================================================ */

/* Header fixo: vidro escuro com blur ao scrollar (fallback: cor sólida do tema) */
.whb-header .whb-row{
  transition:background-color .3s var(--gps-ease), box-shadow .3s var(--gps-ease);
}
.whb-sticked .whb-sticky-row{
  box-shadow:0 10px 30px rgba(9,33,54,.28);
}
@supports ((backdrop-filter:blur(14px)) or (-webkit-backdrop-filter:blur(14px))){
  .whb-sticked .whb-sticky-row.whb-with-bg{
    background-color:rgba(9,33,54,.80)!important;
    -webkit-backdrop-filter:blur(14px) saturate(1.5);
    backdrop-filter:blur(14px) saturate(1.5);
  }
}

/* Menu lateral de categorias: hover com destaque laranja */
.wd-nav-vertical .menu-item > a{
  border-radius:10px;
  transition:background-color .22s var(--gps-ease), color .22s var(--gps-ease);
}
.wd-nav-vertical .menu-item > a:hover{
  background-color:rgba(245,130,32,.12);
  color:var(--gps-orange-bright)!important;
}
.wd-nav-vertical .menu-item > a .wd-nav-img{
  transition:transform .22s var(--gps-ease);
}
.wd-nav-vertical .menu-item > a:hover .wd-nav-img{
  transform:scale(1.6);
}

/* Cards de produto: realce laranja no hover (substitui o navy do v2) */
.products .product-grid-item:hover .product-wrapper,
.wd-product:hover .product-wrapper{
  box-shadow:0 0 0 1px rgba(245,130,32,.20),
             0 6px 14px rgba(9,33,54,.08),
             0 20px 40px rgba(245,130,32,.18);
}

/* Subtítulos de seção: tom técnico discreto */
.title-subtitle{
  color:#5C6E7E;
  font-weight:600;
  letter-spacing:.01em;
}

/* ============================================================
   Acessibilidade: reduced motion desliga tudo
   ============================================================ */
@media (prefers-reduced-motion: reduce){
  html{ scroll-behavior:auto; }
  *,*::before,*::after{
    animation-duration:.01ms!important;
    animation-iteration-count:1!important;
    transition-duration:.01ms!important;
  }
  .gps-io{ opacity:1; transform:none; filter:none; }
  .gps-img-fade{ opacity:1; filter:none; }
}
