/*
Theme Name: Loja FPX Modern
Theme URI: https://loja.fpx.pt/
Description: Tema filho Flatsome para a Loja Oficial da Federação Portuguesa de Xadrez.
Author: OpenAI
Version: 1.9.8
Template: flatsome
Text Domain: loja-fpx-modern
*/
:root{
 --lfpx-navy:#112e4b;--lfpx-deep:#071b2e;--lfpx-blue:#1686bd;--lfpx-sky:#36aee0;
 --lfpx-ink:#10283f;--lfpx-muted:#687b8c;--lfpx-line:#e4eaf0;--lfpx-pale:#f3f7fa;
}
body{color:var(--lfpx-ink)}
/* Header: mantém a estrutura e as opções do Flatsome, modernizando a apresentação */
#header{z-index:100}
#header .header-main{background:#fff!important}
#header .header-nav{background:var(--lfpx-navy)!important}
#header .header-nav .nav>li>a{color:#fff!important;font-size:11px;font-weight:700;letter-spacing:.2px}
#header .header-nav .nav>li.active>a,#header .header-nav .nav>li>a:hover{background:var(--lfpx-blue)!important;color:#fff!important}
#header .header-nav .nav>li>a:before{display:none}
#header .header-main .nav>li>a{color:var(--lfpx-navy)}
#header .header-main .nav>li>a:hover{color:var(--lfpx-blue)}
#header .header-main .header-button a.button{background:var(--lfpx-blue)!important;border-color:var(--lfpx-blue)!important}
#header .header-main .cart-icon strong{border-color:var(--lfpx-blue)!important;color:var(--lfpx-blue)!important}
#header .header-main .cart-icon:hover strong{background:var(--lfpx-blue)!important;color:#fff!important}
.header-search-form-wrapper input{border-radius:24px!important}
.button.primary,.button.checkout,.button.alt{background:var(--lfpx-blue)!important;border-color:var(--lfpx-blue)!important;border-radius:5px!important}
.button.primary:hover,.button.checkout:hover,.button.alt:hover{background:var(--lfpx-navy)!important;border-color:var(--lfpx-navy)!important}
a{transition:color .18s ease}
#main{background:#fff}
.lfpx-home{background:#fff}
.lfpx-hero{position:relative;min-height:355px;display:flex;align-items:center;overflow:hidden;background:var(--lfpx-deep);color:#fff}
.lfpx-hero-video-wrap{position:absolute;z-index:0;inset:0;overflow:hidden;background:var(--lfpx-deep)}
.lfpx-hero-video{display:block;width:100%;height:100%;object-fit:cover;object-position:center 55%}
.lfpx-hero:before{content:"";position:absolute;z-index:1;inset:0;background-image:linear-gradient(90deg,#061a2d 0%,#061a2d 24%,#061a2de8 43%,#061a2d30 78%,transparent),url("assets/hero-xadrez.png");background-size:cover;background-position:center 55%}
.lfpx-hero-inner{position:relative;z-index:1;width:100%;max-width:1240px;margin:0 auto;padding:54px 30px}
.lfpx-eyebrow{font-size:11px;letter-spacing:2.4px;text-transform:uppercase;color:#5ac4ed;font-weight:800;margin-bottom:12px}
.lfpx-hero h1{color:#fff;font-size:clamp(36px,4.5vw,56px);line-height:1.02;letter-spacing:-1.5px;margin:0 0 14px;font-weight:800}
.lfpx-hero h1 span{color:var(--lfpx-sky)}
.lfpx-hero p{max-width:390px;color:#d8e3eb;font-size:14px;line-height:1.7;margin:0 0 24px}
.lfpx-button{display:inline-flex;align-items:center;gap:12px;background:var(--lfpx-blue);color:#fff!important;padding:13px 21px;border-radius:5px;font-weight:750;font-size:13px}
.lfpx-button:hover{background:#209ed5;color:#fff}
.lfpx-trust{display:grid;grid-template-columns:repeat(4,1fr);max-width:1232px;margin:0 auto;padding:17px 22px;border-bottom:1px solid var(--lfpx-line)}
.lfpx-trust-item{display:flex;align-items:center;gap:12px;padding:3px 18px;border-right:1px solid var(--lfpx-line)}
.lfpx-trust-item:last-child{border:0}
.lfpx-trust-icon{font-size:23px;color:var(--lfpx-blue);line-height:1}
.lfpx-trust-item strong{display:block;font-size:12px;color:var(--lfpx-ink)}
.lfpx-trust-item small{font-size:10px;color:var(--lfpx-muted)}
.lfpx-section{max-width:1280px;margin:0 auto;padding:32px 24px 0}
.lfpx-section-heading{display:flex;justify-content:space-between;align-items:end;gap:15px;margin-bottom:17px}
.lfpx-section-heading h2{font-size:23px;letter-spacing:-.6px;color:var(--lfpx-navy);margin:0}
.lfpx-section-heading p{font-size:12px;color:var(--lfpx-muted);margin:5px 0 0}
.lfpx-link{font-size:12px;font-weight:750;color:var(--lfpx-blue)}
.lfpx-category-section{padding-top:22px;padding-bottom:0}
.lfpx-categories{display:grid;grid-template-columns:repeat(9,minmax(0,1fr));gap:8px;align-items:stretch}
.lfpx-category{position:relative;isolation:isolate;display:block;min-width:0;aspect-ratio:.82/1;overflow:hidden;border-radius:9px;background:var(--lfpx-navy);color:#fff!important;box-shadow:0 3px 10px #10283f18;transition:transform .2s,box-shadow .2s}
.lfpx-category:hover{transform:translateY(-3px);color:#fff!important;box-shadow:0 10px 22px #10283f2b}
.lfpx-category-image{position:absolute;inset:0;display:block;width:100%;height:100%;overflow:hidden;background:#0a2945}
.lfpx-category-image img{display:block;width:100%;height:100%;object-fit:cover;object-position:center;transition:transform .45s ease,filter .3s ease;filter:saturate(.94) contrast(1.04)}
.lfpx-category:hover .lfpx-category-image img{transform:scale(1.045);filter:saturate(1.08) contrast(1.06)}
.lfpx-category:after{content:"";position:absolute;z-index:1;inset:0;background:linear-gradient(180deg,rgba(3,20,36,.02) 22%,rgba(3,20,36,.12) 47%,rgba(3,20,36,.94) 100%);pointer-events:none}
.lfpx-category-footer{position:absolute;z-index:2;left:0;right:0;bottom:0;min-height:49px;display:flex;align-items:flex-end;justify-content:space-between;gap:5px;padding:9px 9px 10px;background:transparent}
.lfpx-category-footer strong{display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden;color:#fff;font-size:10px;line-height:1.16;font-weight:750;text-shadow:0 1px 4px rgba(0,0,0,.24)}
.lfpx-category .arrow{flex:0 0 auto;color:#fff;font-size:19px;line-height:1;margin-bottom:-1px}
.lfpx-products{padding-top:18px;padding-bottom:45px}
.lfpx-products .lfpx-section-heading{align-items:center;margin-bottom:17px}
.lfpx-products .lfpx-section-heading h2{display:flex;align-items:center;gap:10px;font-size:21px}
.lfpx-products .lfpx-section-heading h2:before{content:"";display:inline-block;width:25px;height:3px;background:var(--lfpx-sky);flex:0 0 25px}
.lfpx-products .products{margin-top:0}
.lfpx-products ul.products li.product{border:1px solid var(--lfpx-line);border-radius:8px;overflow:hidden;padding-bottom:12px;transition:transform .2s,box-shadow .2s}
.lfpx-products ul.products li.product:hover{transform:translateY(-3px);box-shadow:0 12px 26px #10283f12}
.lfpx-products ul.products li.product .box-text{padding:12px 13px}
.lfpx-products ul.products li.product .product-title a{font-size:13px;color:var(--lfpx-ink)}
.lfpx-products ul.products li.product .price{color:var(--lfpx-navy);font-size:16px;font-weight:800}
.lfpx-products ul.products li.product .button{border-radius:4px!important;font-size:10px}
.lfpx-promo{margin:0 auto 45px;max-width:1232px;background:#edf5f9;border-radius:9px;padding:24px 28px;display:flex;justify-content:space-between;align-items:center;gap:20px}
.lfpx-promo h3{font-size:19px;color:var(--lfpx-navy);margin:0 0 5px}
.lfpx-promo p{font-size:12px;color:#607588;margin:0}
.woocommerce-breadcrumb{font-size:11px;color:var(--lfpx-muted)}
.woocommerce span.onsale{background:var(--lfpx-blue);border-radius:3px}
.woocommerce .widget_price_filter .ui-slider .ui-slider-range,.woocommerce .widget_price_filter .ui-slider .ui-slider-handle{background:var(--lfpx-blue)}
.woocommerce-message{border-top-color:var(--lfpx-blue)}
.woocommerce-message:before{color:var(--lfpx-blue)}
/* Rodapé com a mesma identidade visual do cabeçalho e dos cartões da loja */
.footer-wrapper{background:var(--lfpx-deep)!important;border-top:4px solid var(--lfpx-blue)}
#footer{background:var(--lfpx-deep)!important;color:#d6e3ec!important;padding-top:34px;padding-bottom:26px}
#footer .widget{margin-bottom:22px}
#footer .widget-title,#footer h1,#footer h2,#footer h3,#footer h4{color:#fff!important;font-weight:750;letter-spacing:-.2px}
#footer .widget-title{font-size:14px;margin-bottom:13px}
#footer .is-divider{height:3px;max-width:34px;background:var(--lfpx-sky);margin:8px 0 16px}
#footer p,#footer li,#footer address,#footer .text{color:#c6d4df}
#footer a{color:#d6e3ec;transition:color .18s ease}
#footer a:hover{color:var(--lfpx-sky)}
#footer ul{border:0}
#footer li{border-color:rgba(211,229,240,.12)}
#footer .social-icons a{border-color:rgba(211,229,240,.35);color:#fff}
#footer .social-icons a:hover{background:var(--lfpx-blue);border-color:var(--lfpx-blue);color:#fff}
.absolute-footer{background:#061624!important;border-top:1px solid rgba(214,230,240,.13);color:#8fa5b7!important;padding:15px 0}
.absolute-footer a{color:#c4d3df!important}
.absolute-footer a:hover{color:var(--lfpx-sky)!important}
.back-to-top{background:var(--lfpx-blue)!important;color:#fff!important;border-color:var(--lfpx-blue)!important}
@media(max-width:849px){
 .lfpx-hero-video{object-position:center center}
 .lfpx-hero{min-height:340px}.lfpx-hero:before{background-image:linear-gradient(90deg,#061a2df5,#061a2ddc 58%,#061a2d55),url("assets/hero-xadrez.png")}
 .lfpx-trust{grid-template-columns:repeat(2,1fr);padding:10px}.lfpx-trust-item{padding:9px 5px;border:0}
 .lfpx-categories{grid-template-columns:repeat(9,minmax(118px,1fr));overflow-x:auto;padding-bottom:7px;scroll-snap-type:x mandatory}
 .lfpx-category{scroll-snap-align:start}
 .lfpx-section{padding-left:15px;padding-right:15px}
 .lfpx-promo{margin-left:15px;margin-right:15px}
}
@media(max-width:549px){
 .lfpx-hero{min-height:350px}.lfpx-hero-inner{padding:36px 20px}.lfpx-hero h1{font-size:38px}
 .lfpx-trust-item strong{font-size:10px}.lfpx-trust-item small{font-size:9px}
 .lfpx-categories{grid-template-columns:repeat(9,minmax(124px,1fr));gap:8px;overflow-x:auto;padding-bottom:7px}
 .lfpx-category-footer{min-height:42px;padding:8px 9px}
 .lfpx-section-heading{align-items:start;flex-direction:column}
 .lfpx-section-heading h2{font-size:20px}
 .lfpx-promo{display:block;padding:20px}.lfpx-promo .lfpx-button{margin-top:14px}
}


/* Cabeçalho próprio: não depende do Header Builder do Flatsome */
#header{display:none!important}
.lfpx-site-header{position:relative;z-index:999;background:#fff;box-shadow:0 3px 16px #0b29400d}
.lfpx-header-inner{max-width:1280px;margin:0 auto;padding-left:24px;padding-right:24px;display:flex;align-items:center}
.lfpx-topbar{background:#0a2239;color:#d9e7f0;font-size:11px}
.lfpx-topbar .lfpx-header-inner{min-height:34px;justify-content:space-between}
.lfpx-top-links{display:flex;gap:20px}
.lfpx-top-links a{color:#d9e7f0}
.lfpx-mainbar .lfpx-header-inner{min-height:94px;gap:26px}
.lfpx-brand{display:block;width:265px;flex:0 0 265px}
.lfpx-brand img{width:100%;height:auto;display:block}
.lfpx-search{display:flex;flex:1;max-width:500px;margin-left:auto;border:1px solid #d8e1e8;border-radius:30px;overflow:hidden}
.lfpx-search input[type=search]{border:0!important;box-shadow:none!important;margin:0!important;padding:12px 17px!important;height:auto!important;min-width:0;flex:1;font-size:13px}
.lfpx-search input[type=hidden]{display:none}
.lfpx-search button{border:0;background:#fff;color:var(--lfpx-navy);padding:0 17px;font-size:22px}
.lfpx-header-actions{display:flex;gap:18px;align-items:center;white-space:nowrap;font-size:11px;font-weight:700;text-transform:uppercase}
.lfpx-header-actions a{color:var(--lfpx-navy)}
.lfpx-header-actions a:hover{color:var(--lfpx-blue)}
.lfpx-cart-count{display:inline-grid;place-items:center;background:var(--lfpx-blue);color:#fff;border-radius:50%;width:20px;height:20px;margin-left:4px}
.lfpx-store-nav{background:var(--lfpx-navy);color:#fff}
.lfpx-store-nav .lfpx-header-inner{display:block}
.lfpx-nav-list{display:flex;align-items:stretch;list-style:none!important;margin:0!important;padding:0!important;gap:0;overflow-x:auto}
.lfpx-nav-list>li{list-style:none!important;margin:0!important;padding:0!important;flex:0 0 auto}
.lfpx-nav-list>li>a{display:block;padding:16px 13px;color:#fff!important;font-size:11px;font-weight:750;letter-spacing:.2px;text-transform:uppercase;white-space:nowrap}
.lfpx-nav-list>li>a:hover,.lfpx-nav-list>li.current-menu-item>a{background:var(--lfpx-blue);color:#fff!important}
.lfpx-nav-list .sub-menu{display:none}
@media(max-width:849px){
 .lfpx-mainbar .lfpx-header-inner{min-height:78px;flex-wrap:wrap;gap:12px;padding-top:10px;padding-bottom:10px}
 .lfpx-brand{width:205px;flex-basis:205px}
 .lfpx-header-actions{margin-left:auto;gap:10px;font-size:10px}
 .lfpx-search{order:3;flex-basis:100%;max-width:none}
 .lfpx-nav-list>li>a{padding:14px 11px;font-size:10px}
}
@media(max-width:549px){
 .lfpx-header-inner{padding-left:14px;padding-right:14px}
 .lfpx-topbar .lfpx-header-inner{min-height:30px}
 .lfpx-top-links a:first-child{display:none}
 .lfpx-brand{width:175px;flex-basis:175px}
 .lfpx-header-actions{font-size:9px;gap:8px}
 .lfpx-mainbar .lfpx-header-inner{min-height:0}
}


/* Ajustes finais de proporção para a montra de categorias */
@media(max-width:849px){
 .lfpx-categories{grid-template-columns:repeat(9,minmax(126px,1fr))}
 .lfpx-category{aspect-ratio:.84/1}
}
@media(max-width:549px){
 .lfpx-category{aspect-ratio:.82/1}
 #footer{padding-top:26px;padding-bottom:20px}
 .absolute-footer{font-size:10px}
}


/* Rodapé FPX: uniformizar também as secções internas do UX Builder/Flatsome. */
html body #footer,
html body .footer-wrapper,
html body .footer-wrapper .footer-widgets,
html body .footer-wrapper .footer-1,
html body .footer-wrapper .footer-2,
html body #footer .section,
html body #footer .section-bg,
html body #footer .bg-fill {
    background-color: #071b2e !important;
    background-image: none !important;
}
html body #footer .container,
html body #footer .row,
html body #footer .col,
html body #footer .col-inner { background-color: transparent !important; }
html body #footer,
html body #footer p,
html body #footer li,
html body #footer address,
html body #footer .text { color: #cbd9e4 !important; }
html body #footer .widget-title,
html body #footer h1,
html body #footer h2,
html body #footer h3,
html body #footer h4 { color: #fff !important; }
html body #footer a { color: #dce8f0 !important; }
html body #footer a:hover { color: #36aee0 !important; }
html body .absolute-footer { background: #061624 !important; color: #9db0bf !important; }

/* Esconde qualquer conjunto antigo de cartões Visa/PayPal/Stripe do rodapé. */
.absolute-footer .payment-icons,
.absolute-footer .payment-icons-wrapper,
.absolute-footer .payment-icon { display: none !important; }
.lfpx-payment-methods {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: flex-end;
    gap: 8px;
    padding: 5px 0;
}
.lfpx-payment-label {
    color: #a9bdcc;
    font-size: 10px;
    font-weight: 600;
    letter-spacing: .3px;
    margin-right: 4px;
}
.lfpx-payment-badge {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    min-height: 32px;
    padding: 5px 10px;
    border: 1px solid rgba(220,235,245,.22);
    border-radius: 6px;
    background: rgba(255,255,255,.07);
    color: #fff;
    white-space: nowrap;
}
.lfpx-payment-badge strong { color: #fff; font-size: 10px; font-weight: 750; }
.lfpx-payment-mark {
    display: inline-grid;
    place-items: center;
    width: 22px;
    height: 22px;
    border-radius: 5px;
    background: #1686bd;
    color: #fff;
    font-size: 9px;
    line-height: 1;
    font-weight: 900;
    letter-spacing: -.4px;
}
.lfpx-mbway-mark { background: #e52b78; }
.lfpx-transfer-mark { background: #36aee0; font-size: 16px; }
@media(max-width:849px) {
    .lfpx-payment-methods { justify-content: center; }
    .lfpx-payment-label { flex-basis: 100%; text-align: center; margin: 0 0 2px; }
}
@media(max-width:549px) {
    .lfpx-payment-methods { gap: 6px; }
    .lfpx-payment-badge { min-height: 30px; padding: 4px 7px; gap: 5px; }
    .lfpx-payment-badge strong { font-size: 9px; }
}


/* ==========================================================
   Página individual de produto — correcção de grelha e espaçamento
   Mantém a galeria, os dados e os produtos complementares WooCommerce.
   ========================================================== */
.single-product #main .product-container {
    width: 100%;
    max-width: 1280px;
    margin-left: auto;
    margin-right: auto;
    box-sizing: border-box;
}

/* Algumas configurações do Flatsome reservam uma terceira coluna lateral.
   A página passa a usar duas colunas equilibradas: galeria e informação. */
.single-product .product-main .row.content-row,
.single-product .product-container .row.content-row:has(> .product-gallery):has(> .product-info),
.single-product .product-container > .row:has(> .product-gallery):has(> .product-info) {
    display: flex !important;
    flex-wrap: wrap !important;
    align-items: flex-start !important;
    width: 100% !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
}
.single-product .product-gallery {
    box-sizing: border-box !important;
    width: 55% !important;
    max-width: 55% !important;
    flex: 0 0 55% !important;
    min-width: 0 !important;
    padding-left: 15px !important;
    padding-right: 28px !important;
}
.single-product .product-info {
    box-sizing: border-box !important;
    width: 45% !important;
    max-width: 45% !important;
    flex: 0 0 45% !important;
    min-width: 0 !important;
    padding-left: 20px !important;
    padding-right: 15px !important;
    float: none !important;
}
.single-product .product-sidebar:empty,
.single-product .product-sidebar:has(> .col-inner:empty) {
    display: none !important;
}

/* Espaçamento e hierarquia na coluna de compra. */
.single-product .product-info .product-title,
.single-product .product-info h1 {
    color: #112e4b;
    font-size: clamp(25px, 2.3vw, 32px);
    line-height: 1.18;
    margin: 0 0 14px;
    overflow-wrap: anywhere;
}
.single-product .product-info .price {
    display: block;
    margin: 12px 0 18px;
    color: #112e4b;
    font-size: 23px;
    line-height: 1.25;
    font-weight: 800;
}
.single-product .product-info .woocommerce-product-details__short-description,
.single-product .product-info .product-short-description {
    color: #25394b;
    font-size: 15px;
    line-height: 1.7;
    margin: 0 0 18px;
}
.single-product .product-info p {
    line-height: 1.65;
}
.single-product .product-info .cart {
    clear: both;
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 10px;
    margin: 18px 0;
}
.single-product .product-info .cart .quantity {
    margin: 0 !important;
}
.single-product .product-info .cart .single_add_to_cart_button {
    min-height: 44px;
    padding-left: 22px;
    padding-right: 22px;
    white-space: normal;
}

/* Cartões de artigos complementares: separados do texto e sem flutuações. */
.single-product .product-info .product-small,
.single-product .product-info .product-small.box {
    box-sizing: border-box;
    clear: both;
    width: 100%;
    max-width: 100%;
    margin: 14px 0 18px !important;
    border: 1px solid #e4eaf0;
    border-radius: 8px;
    background: #fff;
    overflow: hidden;
}
.single-product .product-info .product-small .box-image {
    width: 28% !important;
    max-width: 120px;
    min-width: 76px;
}
.single-product .product-info .product-small .box-text {
    min-width: 0;
    padding: 12px 14px !important;
}
.single-product .product-info .product-small .product-title,
.single-product .product-info .product-small .product-title a {
    font-size: 14px;
    line-height: 1.35;
    color: #112e4b;
    overflow-wrap: anywhere;
}
.single-product .product-info .product-small p {
    font-size: 13px;
    line-height: 1.55;
    margin-bottom: 8px;
}

/* Galeria: imagens e miniaturas sem larguras inesperadas. */
.single-product .product-gallery .woocommerce-product-gallery,
.single-product .product-gallery .product-images {
    width: 100%;
    max-width: 100%;
}
.single-product .product-gallery img {
    max-width: 100%;
    height: auto;
}
.single-product .product-gallery .product-thumbnails {
    margin-top: 12px;
}
.single-product .product-gallery .product-thumbnails img {
    display: block;
    width: 100%;
    height: auto;
    object-fit: contain;
}

/* Conteúdo descritivo e produtos relacionados passam para baixo da grelha principal. */
.single-product .product-footer,
.single-product .woocommerce-tabs,
.single-product .related,
.single-product .up-sells.upsells {
    clear: both;
    width: 100%;
}
.single-product .woocommerce-tabs {
    margin-top: 34px;
}
.single-product .related,
.single-product .up-sells.upsells {
    margin-top: 30px;
}

@media (max-width: 849px) {
    .single-product .product-gallery,
    .single-product .product-info {
        width: 100% !important;
        max-width: 100% !important;
        flex: 0 0 100% !important;
        padding-left: 15px !important;
        padding-right: 15px !important;
    }
    .single-product .product-info {
        padding-top: 26px !important;
    }
    .single-product .product-info .product-title,
    .single-product .product-info h1 {
        font-size: 26px;
    }
}
@media (max-width: 549px) {
    .single-product #main .product-container {
        padding-left: 8px;
        padding-right: 8px;
    }
    .single-product .product-info {
        padding-top: 20px !important;
    }
    .single-product .product-info .price {
        font-size: 21px;
    }
    .single-product .product-info .product-small .box-image {
        width: 32% !important;
        min-width: 72px;
    }
    .single-product .product-info .cart {
        align-items: stretch;
    }
    .single-product .product-info .cart .single_add_to_cart_button {
        flex: 1 1 auto;
    }
}


/* ==========================================================
   Página de produto — galeria ampliada e largura integral
   Inspirado na disposição da página de referência da Loja FPX.
   ========================================================== */

/* Libertar a página dos limites estreitos do contentor padrão do Flatsome. */
body.single-product #main .shop-container > .container,
body.single-product #main .shop-container .product-container,
body.single-product #main .product-container,
body.single-product #main .product-main,
body.single-product #main .product-main > .row,
body.single-product #main .product-main .row.content-row,
body.single-product #main .product-container > .row,
body.single-product #main .product-container .row.content-row {
    width: 100% !important;
    max-width: none !important;
    box-sizing: border-box !important;
}

/* Margens laterais controladas: o conteúdo usa praticamente toda a janela. */
body.single-product #main .shop-container > .container {
    padding-left: clamp(18px, 3.2vw, 64px) !important;
    padding-right: clamp(18px, 3.2vw, 64px) !important;
}

/* Duas colunas claras: galeria maior e informação com espaço suficiente. */
body.single-product #main .product-container .row.content-row,
body.single-product #main .product-main .row.content-row,
body.single-product #main .product-container > .row:has(> .product-gallery):has(> .product-info) {
    display: flex !important;
    flex-wrap: nowrap !important;
    align-items: flex-start !important;
    width: 100% !important;
    max-width: none !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
}

body.single-product #main .product-gallery {
    width: 64% !important;
    max-width: 64% !important;
    flex: 0 0 64% !important;
    min-width: 0 !important;
    padding: 0 34px 0 0 !important;
    box-sizing: border-box !important;
}

body.single-product #main .product-info {
    width: 36% !important;
    max-width: 36% !important;
    flex: 0 0 36% !important;
    min-width: 0 !important;
    padding: 0 0 0 28px !important;
    box-sizing: border-box !important;
}

/* Imagem principal: aproveitar toda a largura útil da galeria. */
body.single-product .product-gallery .woocommerce-product-gallery,
body.single-product .product-gallery .product-images,
body.single-product .product-gallery .image-tools {
    width: 100% !important;
    max-width: 100% !important;
}

body.single-product .product-gallery .woocommerce-product-gallery__wrapper,
body.single-product .product-gallery .product-gallery-slider,
body.single-product .product-gallery .flickity-viewport {
    width: 100% !important;
    max-width: 100% !important;
}

body.single-product .product-gallery .woocommerce-product-gallery__image img,
body.single-product .product-gallery .product-images img,
body.single-product .product-gallery .slide img {
    display: block;
    width: 100% !important;
    max-width: 100% !important;
    height: auto !important;
    object-fit: contain;
}

/* Miniaturas maiores e distribuídas numa linha mais limpa. */
body.single-product .product-gallery .product-thumbnails {
    display: flex !important;
    flex-wrap: wrap !important;
    gap: 12px !important;
    margin-top: 16px !important;
}

body.single-product .product-gallery .product-thumbnails .col,
body.single-product .product-gallery .product-thumbnails .flickity-slider > * {
    padding: 0 !important;
    margin: 0 !important;
}

body.single-product .product-gallery .product-thumbnails img {
    width: 100% !important;
    height: auto !important;
    object-fit: contain;
}

/* Dar à descrição e aos complementos uma largura confortável. */
body.single-product .product-info .product-title,
body.single-product .product-info h1 {
    font-size: clamp(28px, 2.4vw, 38px);
    line-height: 1.15;
    margin-bottom: 16px;
}

body.single-product .product-info .price {
    font-size: clamp(24px, 2vw, 30px);
    margin: 14px 0 20px;
}

body.single-product .product-info .woocommerce-product-details__short-description,
body.single-product .product-info .product-short-description {
    font-size: 16px;
    line-height: 1.75;
    max-width: 900px;
}

body.single-product .product-info .product-small,
body.single-product .product-info .product-small.box {
    display: flex;
    align-items: flex-start;
    gap: 14px;
    width: 100%;
    max-width: 100%;
}

/* Descrição completa, separadores e produtos relacionados em toda a largura. */
body.single-product #main .product-footer,
body.single-product #main .woocommerce-tabs,
body.single-product #main .related,
body.single-product #main .up-sells.upsells {
    width: 100% !important;
    max-width: none !important;
    clear: both;
}

body.single-product #main .woocommerce-tabs {
    margin-top: 52px;
    padding-top: 30px;
    border-top: 1px solid #e4eaf0;
}

body.single-product #main .related,
body.single-product #main .up-sells.upsells {
    margin-top: 46px;
}

/* Tablets e telemóveis: empilhar sem cortar imagens nem informação. */
@media (max-width: 849px) {
    body.single-product #main .shop-container > .container {
        padding-left: 16px !important;
        padding-right: 16px !important;
    }
    body.single-product #main .product-container .row.content-row,
    body.single-product #main .product-main .row.content-row {
        flex-wrap: wrap !important;
    }
    body.single-product #main .product-gallery,
    body.single-product #main .product-info {
        width: 100% !important;
        max-width: 100% !important;
        flex: 0 0 100% !important;
        padding: 0 !important;
    }
    body.single-product #main .product-info {
        padding-top: 30px !important;
    }
    body.single-product .product-info .product-title,
    body.single-product .product-info h1 {
        font-size: 28px;
    }
}

@media (max-width: 549px) {
    body.single-product #main .shop-container > .container {
        padding-left: 10px !important;
        padding-right: 10px !important;
    }
    body.single-product #main .product-info {
        padding-top: 22px !important;
    }
    body.single-product .product-gallery .product-thumbnails {
        gap: 7px !important;
    }
}


/* Montra de categorias: fotografias reais em cartões com apresentação clara de catálogo. */
.lfpx-category{position:relative!important;display:flex!important;flex-direction:column!important;aspect-ratio:.82/1!important;overflow:hidden!important;border:1px solid #e5ebf0!important;border-radius:11px!important;background:#fff!important;color:#112e4b!important;box-shadow:0 4px 16px rgba(16,40,63,.08)!important;transition:transform .22s ease,box-shadow .22s ease,border-color .22s ease!important}
.lfpx-category:hover{transform:translateY(-4px)!important;border-color:#cbdbe6!important;color:#112e4b!important;box-shadow:0 12px 26px rgba(16,40,63,.13)!important}
.lfpx-category-image{position:relative!important;inset:auto!important;display:flex!important;flex:1 1 auto!important;align-items:center!important;justify-content:center!important;width:100%!important;height:auto!important;min-height:0!important;aspect-ratio:1/1!important;overflow:hidden!important;padding:10px!important;box-sizing:border-box!important;background:radial-gradient(ellipse at 50% 42%,#fff 0%,#fbfcfd 57%,#f0f4f7 100%)!important}
.lfpx-category-image img{display:block!important;width:100%!important;height:100%!important;max-width:100%!important;max-height:100%!important;object-fit:contain!important;object-position:center!important;padding:0!important;filter:saturate(1.04) contrast(1.025)!important;transition:transform .35s ease,filter .25s ease!important}
.lfpx-category:hover .lfpx-category-image img{transform:scale(1.035)!important;filter:saturate(1.09) contrast(1.045)!important}
.lfpx-category:after{display:none!important}
.lfpx-category-footer{position:relative!important;z-index:2!important;inset:auto!important;display:flex!important;flex:0 0 auto!important;align-items:center!important;justify-content:space-between!important;gap:8px!important;min-height:47px!important;padding:10px 11px!important;background:#112e4b!important}
.lfpx-category-footer strong{display:-webkit-box!important;-webkit-line-clamp:2!important;-webkit-box-orient:vertical!important;overflow:hidden!important;color:#fff!important;font-size:11px!important;line-height:1.25!important;font-weight:700!important;text-shadow:none!important}
.lfpx-category .arrow{color:#7fd0f2!important;font-size:20px!important}

/* Página de contactos: formulário com aspecto coerente com a identidade Loja FPX. */
body.lfpx-contact-page #main .wpcf7,body.lfpx-contact-page #main .wpforms-container,body.lfpx-contact-page #main .fluentform,body.lfpx-contact-page #main .gform_wrapper,body.lfpx-contact-page #main form.contact-form,body.lfpx-contact-page #main .contact-form{max-width:900px!important;margin:20px auto 44px!important;padding:clamp(20px,3vw,36px)!important;border:1px solid #e3ebf1!important;border-radius:16px!important;background:linear-gradient(145deg,#fff 0%,#f7fafc 100%)!important;box-shadow:0 12px 34px rgba(17,46,75,.08)!important}
body.lfpx-contact-page #main .wpcf7 label,body.lfpx-contact-page #main .wpforms-container label,body.lfpx-contact-page #main .fluentform label,body.lfpx-contact-page #main .gform_wrapper label,body.lfpx-contact-page #main form.contact-form label{display:block!important;margin:0 0 7px!important;color:#112e4b!important;font-size:13px!important;font-weight:700!important}
body.lfpx-contact-page #main .wpcf7 input:not([type=submit]):not([type=checkbox]):not([type=radio]),body.lfpx-contact-page #main .wpcf7 select,body.lfpx-contact-page #main .wpcf7 textarea,body.lfpx-contact-page #main .wpforms-container input:not([type=submit]):not([type=checkbox]):not([type=radio]),body.lfpx-contact-page #main .wpforms-container select,body.lfpx-contact-page #main .wpforms-container textarea,body.lfpx-contact-page #main .fluentform input:not([type=submit]):not([type=checkbox]):not([type=radio]),body.lfpx-contact-page #main .fluentform select,body.lfpx-contact-page #main .fluentform textarea,body.lfpx-contact-page #main .gform_wrapper input:not([type=submit]):not([type=checkbox]):not([type=radio]),body.lfpx-contact-page #main .gform_wrapper select,body.lfpx-contact-page #main .gform_wrapper textarea,body.lfpx-contact-page #main form.contact-form input:not([type=submit]),body.lfpx-contact-page #main form.contact-form textarea,body.lfpx-contact-page #main form.contact-form select{width:100%!important;min-height:48px!important;padding:12px 14px!important;border:1px solid #d6e0e8!important;border-radius:8px!important;background:#fff!important;color:#17334c!important;box-shadow:none!important;font-size:14px!important;transition:border-color .18s ease,box-shadow .18s ease!important}
body.lfpx-contact-page #main .wpcf7 textarea,body.lfpx-contact-page #main .wpforms-container textarea,body.lfpx-contact-page #main .fluentform textarea,body.lfpx-contact-page #main .gform_wrapper textarea,body.lfpx-contact-page #main form.contact-form textarea{min-height:160px!important;resize:vertical!important}
body.lfpx-contact-page #main .wpcf7 input:focus,body.lfpx-contact-page #main .wpcf7 select:focus,body.lfpx-contact-page #main .wpcf7 textarea:focus,body.lfpx-contact-page #main .wpforms-container input:focus,body.lfpx-contact-page #main .wpforms-container select:focus,body.lfpx-contact-page #main .wpforms-container textarea:focus,body.lfpx-contact-page #main .fluentform input:focus,body.lfpx-contact-page #main .fluentform select:focus,body.lfpx-contact-page #main .fluentform textarea:focus,body.lfpx-contact-page #main .gform_wrapper input:focus,body.lfpx-contact-page #main .gform_wrapper select:focus,body.lfpx-contact-page #main .gform_wrapper textarea:focus,body.lfpx-contact-page #main form.contact-form input:focus,body.lfpx-contact-page #main form.contact-form textarea:focus{outline:none!important;border-color:#1686bd!important;box-shadow:0 0 0 3px rgba(22,134,189,.13)!important}
body.lfpx-contact-page #main .wpcf7 input[type=submit],body.lfpx-contact-page #main .wpforms-container button[type=submit],body.lfpx-contact-page #main .wpforms-container input[type=submit],body.lfpx-contact-page #main .fluentform button[type=submit],body.lfpx-contact-page #main .gform_wrapper .gform_button,body.lfpx-contact-page #main form.contact-form button[type=submit],body.lfpx-contact-page #main form.contact-form input[type=submit]{min-height:48px!important;padding:12px 28px!important;border:0!important;border-radius:7px!important;background:#1686bd!important;color:#fff!important;font-size:13px!important;font-weight:750!important;text-transform:none!important;box-shadow:0 5px 14px rgba(22,134,189,.2)!important;transition:transform .18s ease,background .18s ease,box-shadow .18s ease!important}
body.lfpx-contact-page #main .wpcf7 input[type=submit]:hover,body.lfpx-contact-page #main .wpforms-container button[type=submit]:hover,body.lfpx-contact-page #main .wpforms-container input[type=submit]:hover,body.lfpx-contact-page #main .fluentform button[type=submit]:hover,body.lfpx-contact-page #main .gform_wrapper .gform_button:hover,body.lfpx-contact-page #main form.contact-form button[type=submit]:hover,body.lfpx-contact-page #main form.contact-form input[type=submit]:hover{transform:translateY(-1px)!important;background:#112e4b!important}
body.lfpx-contact-page #main .wpcf7 p,body.lfpx-contact-page #main .wpforms-container .wpforms-field,body.lfpx-contact-page #main .fluentform .ff-el-group,body.lfpx-contact-page #main .gform_wrapper .gfield{margin-bottom:18px!important}
body.lfpx-contact-page #main .wpcf7-not-valid-tip,body.lfpx-contact-page #main .wpforms-error,body.lfpx-contact-page #main .gfield_validation_message{color:#b42318!important;font-size:12px!important}
body.lfpx-contact-page #main .wpcf7-response-output{margin:18px 0 0!important;padding:12px 15px!important;border-radius:8px!important}
body.lfpx-contact-page #main .contact-info .col-inner,body.lfpx-contact-page #main .contact-card,body.lfpx-contact-page #main .contact-box{height:100%;padding:20px!important;border:1px solid #e3ebf1!important;border-radius:12px!important;background:#fff!important;box-shadow:0 5px 18px rgba(17,46,75,.055)!important}
@media(max-width:549px){body.lfpx-contact-page #main .wpcf7,body.lfpx-contact-page #main .wpforms-container,body.lfpx-contact-page #main .fluentform,body.lfpx-contact-page #main .gform_wrapper,body.lfpx-contact-page #main form.contact-form,body.lfpx-contact-page #main .contact-form{margin:14px 0 30px!important;padding:18px 14px!important;border-radius:11px!important}}


/* Ajuste pontual 1.9.1 — pesquisa mais compacta no cabeçalho */
@media (min-width: 850px) {
    .lfpx-mainbar .lfpx-search {
        width: 350px !important;
        max-width: 350px !important;
        flex: 0 1 350px !important;
        min-width: 260px !important;
        height: 50px !important;
        margin-left: auto !important;
        border-radius: 26px !important;
        box-sizing: border-box !important;
    }
    .lfpx-mainbar .lfpx-search input[type="search"] {
        height: 48px !important;
        min-height: 48px !important;
        padding: 0 15px !important;
        line-height: 48px !important;
        font-size: 13px !important;
        box-sizing: border-box !important;
    }
    .lfpx-mainbar .lfpx-search button {
        width: 46px !important;
        min-width: 46px !important;
        height: 48px !important;
        padding: 0 !important;
        display: inline-flex !important;
        align-items: center !important;
        justify-content: center !important;
        font-size: 20px !important;
    }
    .lfpx-mainbar .lfpx-header-inner {
        gap: 24px !important;
    }
}

@media (min-width: 850px) and (max-width: 1100px) {
    .lfpx-mainbar .lfpx-search {
        width: 300px !important;
        max-width: 300px !important;
        flex-basis: 300px !important;
        min-width: 220px !important;
    }
}

@media (max-width: 849px) {
    .lfpx-mainbar .lfpx-search {
        width: 100% !important;
        max-width: none !important;
        min-width: 0 !important;
        flex: 1 0 100% !important;
        height: 48px !important;
    }
    .lfpx-mainbar .lfpx-search input[type="search"] {
        min-height: 46px !important;
        height: 46px !important;
        line-height: 46px !important;
    }
}


/* ==========================================================
   V1.9.2 — Controlos da galeria fora da fotografia
   e miniaturas mais próximas.
   ========================================================== */

/* A barra/ferramentas de imagem deixa de flutuar sobre o produto. */
body.single-product .product-gallery .image-tools,
body.single-product .product-gallery .image-tools.show-on-hover {
    position: relative !important;
    inset: auto !important;
    top: auto !important;
    right: auto !important;
    bottom: auto !important;
    left: auto !important;
    z-index: 2 !important;
    display: flex !important;
    align-items: center !important;
    justify-content: flex-end !important;
    width: 100% !important;
    max-width: 100% !important;
    height: auto !important;
    margin: 0 0 8px !important;
    padding: 0 !important;
    transform: none !important;
    pointer-events: auto !important;
    background: transparent !important;
}

/* Mantém os botões de zoom/lightbox visíveis sem criar uma faixa sobre a foto. */
body.single-product .product-gallery .image-tools .zoom-button,
body.single-product .product-gallery .image-tools a,
body.single-product .product-gallery .image-tools button {
    position: relative !important;
    inset: auto !important;
    margin: 0 0 0 6px !important;
}

/* Espaço uniforme e mais curto entre as fotografias em miniatura. */
body.single-product .product-gallery .product-thumbnails {
    gap: 5px !important;
    margin-top: 8px !important;
}

body.single-product .product-gallery .product-thumbnails .col,
body.single-product .product-gallery .product-thumbnails .flickity-slider > *,
body.single-product .product-gallery .product-thumbnails .thumb,
body.single-product .product-gallery .product-thumbnails a {
    margin: 0 !important;
    padding: 0 !important;
}

body.single-product .product-gallery .product-thumbnails img {
    display: block !important;
    width: 100% !important;
    height: auto !important;
}

/* Em telemóveis, manter a mesma proximidade sem apertar os alvos de toque. */
@media (max-width: 549px) {
    body.single-product .product-gallery .product-thumbnails {
        gap: 4px !important;
        margin-top: 7px !important;
    }
}


/* ==========================================================
   V1.9.3 — Miniaturas em grelha equilibrada, com seleção visível.
   Mantém os links/eventos nativos da galeria WooCommerce/Flatsome.
   ========================================================== */

/* Seis fotografias ficam distribuídas em duas linhas de três. */
body.single-product .product-gallery .product-thumbnails {
    display: grid !important;
    grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
    align-items: start !important;
    justify-content: stretch !important;
    gap: 7px !important;
    width: 100% !important;
    height: auto !important;
    margin-top: 8px !important;
    overflow: visible !important;
}

/* Se o Flatsome envolver as miniaturas num viewport/slider,
   neutraliza apenas o posicionamento do carrossel para permitir duas linhas.
   Os links e os eventos de clique das miniaturas são mantidos. */
body.single-product .product-gallery .product-thumbnails .flickity-viewport,
body.single-product .product-gallery .product-thumbnails .flickity-slider {
    display: contents !important;
    position: static !important;
    width: 100% !important;
    height: auto !important;
    min-height: 0 !important;
    overflow: visible !important;
    transform: none !important;
}

body.single-product .product-gallery .product-thumbnails > .col,
body.single-product .product-gallery .product-thumbnails .flickity-slider > .col,
body.single-product .product-gallery .product-thumbnails > a,
body.single-product .product-gallery .product-thumbnails .flickity-slider > a {
    position: relative !important;
    display: block !important;
    float: none !important;
    left: auto !important;
    top: auto !important;
    width: auto !important;
    max-width: none !important;
    min-width: 0 !important;
    height: auto !important;
    margin: 0 !important;
    padding: 0 !important;
    flex: initial !important;
    transform: none !important;
    pointer-events: auto !important;
    cursor: pointer !important;
    box-sizing: border-box !important;
}

body.single-product .product-gallery .product-thumbnails a {
    display: block !important;
    width: 100% !important;
    pointer-events: auto !important;
    cursor: pointer !important;
}

body.single-product .product-gallery .product-thumbnails img {
    display: block !important;
    width: 100% !important;
    height: auto !important;
    max-width: 100% !important;
    object-fit: contain !important;
    border: 1px solid #e2e8ed !important;
    border-radius: 4px !important;
    transition: border-color .18s ease, box-shadow .18s ease, opacity .18s ease !important;
}

/* Realça a miniatura activa, sem esconder as restantes fotografias. */
body.single-product .product-gallery .product-thumbnails .is-nav-selected img,
body.single-product .product-gallery .product-thumbnails .is-selected img,
body.single-product .product-gallery .product-thumbnails .selected img,
body.single-product .product-gallery .product-thumbnails a[aria-current="true"] img {
    border: 2px solid #1686bd !important;
    box-shadow: 0 0 0 2px rgba(22, 134, 189, .10) !important;
    opacity: 1 !important;
}

body.single-product .product-gallery .product-thumbnails .col:not(.is-nav-selected) img {
    opacity: .86;
}

body.single-product .product-gallery .product-thumbnails .col:hover img,
body.single-product .product-gallery .product-thumbnails a:hover img {
    border-color: #8fb3c9 !important;
    opacity: 1 !important;
}

@media (max-width: 549px) {
    body.single-product .product-gallery .product-thumbnails {
        grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
        gap: 5px !important;
    }
}


/* ==========================================================
   V1.9.6 — Fotografias dos produtos mais visíveis.
   Enquadramento uniforme sem cortar tabuleiros, peças ou acessórios.
   ========================================================== */

/* Montra da página inicial e grelhas de arquivo WooCommerce. */
body .lfpx-products ul.products li.product .box-image,
body.woocommerce.archive ul.products li.product .box-image,
body.woocommerce-page ul.products li.product .box-image,
body.single-product #main .related ul.products li.product .box-image,
body.single-product #main .up-sells ul.products li.product .box-image {
    position: relative !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    width: 100% !important;
    height: auto !important;
    aspect-ratio: 1 / 1 !important;
    padding: 0 !important;
    overflow: hidden !important;
    background: #f7f9fb !important;
    box-sizing: border-box !important;
}

/* Ligações e wrappers do Flatsome devem preencher a área sem forçar crop. */
body .lfpx-products ul.products li.product .box-image > a,
body .lfpx-products ul.products li.product .box-image > div,
body.woocommerce.archive ul.products li.product .box-image > a,
body.woocommerce.archive ul.products li.product .box-image > div,
body.woocommerce-page ul.products li.product .box-image > a,
body.woocommerce-page ul.products li.product .box-image > div,
body.single-product #main .related ul.products li.product .box-image > a,
body.single-product #main .up-sells ul.products li.product .box-image > a {
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    width: 100% !important;
    height: 100% !important;
    min-height: 0 !important;
    padding: 0 !important;
    overflow: hidden !important;
}

/* Imagem inteira e centrada — nada de cortar os limites do produto. */
body .lfpx-products ul.products li.product .box-image img,
body.woocommerce.archive ul.products li.product .box-image img,
body.woocommerce-page ul.products li.product .box-image img,
body.single-product #main .related ul.products li.product .box-image img,
body.single-product #main .up-sells ul.products li.product .box-image img {
    position: static !important;
    display: block !important;
    width: 100% !important;
    height: 100% !important;
    max-width: 100% !important;
    max-height: 100% !important;
    object-fit: contain !important;
    object-position: center center !important;
    padding: 8px !important;
    margin: 0 !important;
    transform: none !important;
    background: transparent !important;
}

/* Evitar que o efeito de hover do tema amplie e corte a fotografia. */
body .lfpx-products ul.products li.product:hover .box-image img,
body.woocommerce.archive ul.products li.product:hover .box-image img,
body.woocommerce-page ul.products li.product:hover .box-image img {
    transform: none !important;
}

/* Manter os nomes e os preços alinhados sem reduzir a área da imagem. */
body .lfpx-products ul.products li.product .box-text,
body.woocommerce.archive ul.products li.product .box-text,
body.woocommerce-page ul.products li.product .box-text {
    padding: 12px 13px 14px !important;
    background: #fff !important;
}

body .lfpx-products ul.products li.product .product-title,
body.woocommerce.archive ul.products li.product .product-title,
body.woocommerce-page ul.products li.product .product-title {
    min-height: 2.5em;
    line-height: 1.35;
}

/* Em ecrãs pequenos, manter a imagem inteira com margem ligeiramente menor. */
@media (max-width: 549px) {
    body .lfpx-products ul.products li.product .box-image img,
    body.woocommerce.archive ul.products li.product .box-image img,
    body.woocommerce-page ul.products li.product .box-image img {
        padding: 5px !important;
    }
}


/* ==========================================================
   V1.9.7 — Área fotográfica correcta para cartões WooCommerce.
   Utiliza a imagem em proporção original, inteira e centrada.
   ========================================================== */

/* Área quadrada e fixa: evita que a altura seja determinada pela miniatura antiga. */
body .lfpx-products ul.products li.product .box-image,
body.woocommerce ul.products li.product .box-image,
body.woocommerce-page ul.products li.product .box-image,
body .related ul.products li.product .box-image,
body .up-sells ul.products li.product .box-image {
    position: relative !important;
    display: block !important;
    width: 100% !important;
    height: auto !important;
    aspect-ratio: 1 / 1 !important;
    min-height: 0 !important;
    max-height: none !important;
    padding: 0 !important;
    padding-bottom: 0 !important;
    overflow: hidden !important;
    box-sizing: border-box !important;
    background: #f7f9fb !important;
}

/* Wrapper interno do Flatsome ocupa toda a área quadrada. */
body .lfpx-products ul.products li.product .box-image > a,
body .lfpx-products ul.products li.product .box-image > .image-fade_in_back,
body.woocommerce ul.products li.product .box-image > a,
body.woocommerce ul.products li.product .box-image > .image-fade_in_back,
body.woocommerce-page ul.products li.product .box-image > a,
body.woocommerce-page ul.products li.product .box-image > .image-fade_in_back,
body .related ul.products li.product .box-image > a,
body .related ul.products li.product .box-image > .image-fade_in_back,
body .up-sells ul.products li.product .box-image > a,
body .up-sells ul.products li.product .box-image > .image-fade_in_back {
    position: absolute !important;
    inset: 0 !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    width: 100% !important;
    height: 100% !important;
    min-height: 0 !important;
    margin: 0 !important;
    padding: 0 !important;
    overflow: hidden !important;
    box-sizing: border-box !important;
}

/* Link dentro do wrapper image-fade_in_back (estrutura normal do Flatsome). */
body .lfpx-products ul.products li.product .box-image .image-fade_in_back > a,
body.woocommerce ul.products li.product .box-image .image-fade_in_back > a,
body.woocommerce-page ul.products li.product .box-image .image-fade_in_back > a,
body .related ul.products li.product .box-image .image-fade_in_back > a,
body .up-sells ul.products li.product .box-image .image-fade_in_back > a {
    position: absolute !important;
    inset: 0 !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    width: 100% !important;
    height: 100% !important;
    margin: 0 !important;
    padding: 0 !important;
}

/* A imagem não é cortada nem ampliada ao passar o rato. */
body .lfpx-products ul.products li.product .box-image img,
body.woocommerce ul.products li.product .box-image img,
body.woocommerce-page ul.products li.product .box-image img,
body .related ul.products li.product .box-image img,
body .up-sells ul.products li.product .box-image img {
    position: static !important;
    display: block !important;
    width: 100% !important;
    height: 100% !important;
    max-width: 100% !important;
    max-height: 100% !important;
    object-fit: contain !important;
    object-position: center center !important;
    padding: 12px !important;
    margin: 0 !important;
    transform: none !important;
    background: transparent !important;
    box-sizing: border-box !important;
}

/* As classes de imagem secundária do Flatsome não devem fazer zoom/crop. */
body .lfpx-products ul.products li.product:hover .box-image img,
body.woocommerce ul.products li.product:hover .box-image img,
body.woocommerce-page ul.products li.product:hover .box-image img {
    transform: none !important;
}

/* Em ecrãs pequenos, reduzir ligeiramente a margem interior. */
@media (max-width: 549px) {
    body .lfpx-products ul.products li.product .box-image img,
    body.woocommerce ul.products li.product .box-image img,
    body.woocommerce-page ul.products li.product .box-image img {
        padding: 7px !important;
    }
}


/* V1.9.8 — logótipo ligeiramente ampliado, mantendo proporções. */
.lfpx-brand img {
    width: 100% !important;
    height: auto !important;
    object-fit: contain;
}
