/**
	Theme Name: Goya Child Theme
	Description: This is a child theme of Goya.
	Template: goya
	Version: 1.0
	Author: Everthemes
	Author URI: http://themeforest.net/user/luisvelaz
	Tags: responsive-layout, flexible-header, custom-colors, mega-menu, woocommerce, shop, ajax, page-builder, translation-ready, gutenberg
	License: GNU General Public License v2 or later
	License URI: http://www.gnu.org/licenses/gpl-2.0.html
*/



/* HOME - Botão "Ver Vídeo ASC" - hover com azul Finisterra */
#video-block-text .vc_btn3.vc_btn3-color-blue.vc_btn3-style-outline:hover,
#video-block-text .vc_btn3.vc_btn3-color-blue.vc_btn3-style-outline:focus {
    background-color: #395873 !important;
    border-color: #395873 !important;
    color: #ffffff !important;
}

/* HOME - Bloco vídeo ASC: grid único para vídeo + texto + botão +
   selos de certificação, para poder reposicionar os selos em 3 estados
   consoante a largura, sem duplicar HTML. As camadas do WPBakery entre
   a linha e o conteúdo (coluna, coluna-inner, wrapper) são "achatadas"
   com display:contents para que vídeo, texto, botão e selos se tornem
   items diretos da grid. */
.vc_row-o-content-middle.vc_inner:has(#video-block-text) {
    display: grid;
    column-gap: 40px;
    row-gap: 16px;
}

.vc_row-o-content-middle.vc_inner:has(#video-block-text) > .vc_column_container,
.vc_row-o-content-middle.vc_inner:has(#video-block-text) > .vc_column_container > .vc_column-inner,
.vc_row-o-content-middle.vc_inner:has(#video-block-text) > .vc_column_container > .vc_column-inner > .wpb_wrapper,
.vc_row-o-content-middle.vc_inner:has(#video-block-text) .wpb_raw_html:has(.video-cert-badges),
.vc_row-o-content-middle.vc_inner:has(#video-block-text) .wpb_raw_html:has(.video-cert-badges) > .wpb_wrapper {
    display: contents;
}

.vc_row-o-content-middle.vc_inner:has(#video-block-text) .wpb_video_widget {
    grid-area: video;
    align-self: start;
}

.vc_row-o-content-middle.vc_inner:has(#video-block-text) .wpb_text_column {
    grid-area: text;
}

.vc_row-o-content-middle.vc_inner:has(#video-block-text) .vc_btn3-container {
    grid-area: button;
    align-self: center;
    justify-self: start;
    margin: 0;
}

.vc_row-o-content-middle.vc_inner:has(#video-block-text) .video-cert-badges {
    grid-area: certs;
    margin-top: 0 !important;
}

.wpb_video_wrapper {
	position: relative;
}
.wpb_video_wrapper .video-placeholder-youtube {
	position: absolute !important;
	top: 0 !important;
	left: 0 !important;
	width: 100% !important;
	height: 100% !important;
	background-size: cover !important;
	background-position: center !important;
}

/* Estado A - desktop largo: selos alinhados com o botão, à direita
   (só a partir daqui é que a coluna dos selos (25% da linha) tem
   largura suficiente para os dois logótipos lado a lado sem quebrar) */
@media (min-width: 1490px) {
    .vc_row-o-content-middle.vc_inner:has(#video-block-text) {
        grid-template-columns: 2fr 1fr 1fr;
        grid-template-areas:
            "video text   text"
            "video button certs";
        align-items: start;
    }

    .vc_row-o-content-middle.vc_inner:has(#video-block-text) .video-cert-badges {
        justify-self: end;
        align-self: center;
    }
}

/* Estado B - vídeo e texto ainda lado a lado, mas sem espaço para os
   selos ao lado do botão: selos passam para baixo do vídeo */
@media (min-width: 992px) and (max-width: 1489px) {
    .vc_row-o-content-middle.vc_inner:has(#video-block-text) {
        grid-template-columns: 1fr 1fr;
        grid-template-areas:
            "video  text"
            "certs  text"
            "certs  button";
        align-items: start;
    }

    .vc_row-o-content-middle.vc_inner:has(#video-block-text) .video-cert-badges {
        justify-self: start;
        align-self: start;
    }
}

/* Estado C - vídeo empilhado por cima do texto: selos entre o
   parágrafo e o botão */
@media (max-width: 991px) {
    .vc_row-o-content-middle.vc_inner:has(#video-block-text) {
        grid-template-columns: 1fr;
        grid-template-areas:
            "video"
            "text"
            "certs"
            "button";
    }

    .vc_row-o-content-middle.vc_inner:has(#video-block-text) .video-cert-badges {
        justify-self: start;
    }

    .vc_row-o-content-middle.vc_inner:has(#video-block-text) .wpb_text_column {
        margin-bottom: 0;
    }

    .vc_row-o-content-middle.vc_inner:has(#video-block-text) .vc_btn3-container {
        margin-top: 20px;
    }
}

.products .add_to_cart_button.button {
	text-transform: uppercase !important;
}

.et-banner-content-inner .et-banner-text {
    padding: 30px !important;
    background: rgb(57 88 115 / 85%);
}

.et-banner-link {
	font-size: 20px !important;
    outline: 1px solid white;
    padding: 10px !important;
	padding-left: 15px !important;
    padding-right: 15px !important;
}

.shop-full-width {
	padding-bottom: 100px;
}

/* Espaço entre a grelha de produtos e o footer, nas páginas de catálogo
   (loja, categorias) - em ambos os idiomas */
.shop-container {
    padding-bottom: 50px;
}

/* Aumento de margens entre blocos na página de produto */
.et-product-detail {
	margin-bottom: 100px;
}

.product-details-tabs {
	margin-bottom: 100px;
}

/* Listas na descrição de produto WooCommerce */
.woocommerce-product-details__short-description ul,
.woocommerce-Tabs-panel--description ul {
    list-style: disc;
    padding-left: 1.5em;
    margin-bottom: 1em;
}

.woocommerce-product-details__short-description ul li,
.woocommerce-Tabs-panel--description ul li {
    margin-bottom: 0.4em;
}

.woocommerce-product-details__short-description ul ul,
.woocommerce-Tabs-panel--description ul ul {
    list-style: circle;
    margin-top: 0.4em;
    margin-bottom: 0;
}

/* Mensagem de adição ao carrinho */
.woocommerce-message {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 0.6em;
    line-height: 1.4;
}

.woocommerce-message a.button {
    white-space: nowrap;
}

/* Remover o padding-bottom a mais da linha "Peso total" — aplica-se em
   geral (carrinho e checkout). */
.wc-block-components-totals-item.woo-cart-weight {
    padding-bottom: 0 !important;
}

/* Traduzir "Total Weight" apenas na versão PT — o plugin Cart Weight não
   tem ficheiro de idioma pt-pt, e a etiqueta é renderizada por um bloco
   React (Store API), por isso o filtro gettext do PHP não chega; a etiqueta
   original é encolhida a font-size:0 e "Peso total" é injetado via ::after
   (mantém o fluxo normal, evita desalinhamentos de position:absolute). */
html[lang="pt-PT"] .woo-cart-weight .wc-block-components-totals-item__label,
html[lang="pt-pt"] .woo-cart-weight .wc-block-components-totals-item__label {
    font-size: 0;
}
html[lang="pt-PT"] .woo-cart-weight .wc-block-components-totals-item__label::after,
html[lang="pt-pt"] .woo-cart-weight .wc-block-components-totals-item__label::after {
    content: 'Peso total';
    font-size: 0.95rem;
}

/* O plugin Cart Weight injeta esta linha num "slot" diferente
   (.wc-block-components-discounts-meta, normalmente usado para
   desconto/cupão) em vez do wrapper padrão das restantes linhas de
   totais — por isso herda um padding/margem diferentes. Corrige-se para
   alinhar com "Subtotal"/"CTT Expresso"/"IVA". Só no checkout
   (body.woocommerce-checkout) — no carrinho já estava bem alinhado por
   omissão, sem precisar desta correção (confirmámos com medição em
   pixels: sem o "body.woocommerce-checkout" a correção desalinha o
   carrinho, que não precisa dela). */
body.woocommerce-checkout .wc-block-components-discounts-meta:has(.woo-cart-weight) {
    margin: 0 !important;
    padding: 0 16px !important;
}

body.woocommerce-checkout .wc-block-components-totals-item.woo-cart-weight {
    margin: 0 !important;
    padding: 16px 0 0 !important;
}

/* Badge New nos cards de produto */
.product-inner .badge.new {
    font-size: 1rem;
    padding: 0.3em 0.7em;
}

/* Alinhar o badge "Novo" à direita, para não ficar sobreposto pelo
   badge customizado (finisterra-badge-imagem), que fica à esquerda */
.products .badge.new {
    left: auto;
    right: 5%;
    top: 8px;
    border: 1px solid grey;
    font-weight: bold;
}

/* woocommerce checkout */
.flexible-shipping-method-description-block {
    display: none;
}

/* =============================================
   Checkout — Aumentar tamanho de texto
   Afeta: checkboxes, resumo da encomenda
   ============================================= */

/* Textos das checkboxes */
.wc-block-components-checkbox__label {
    font-size: 0.95rem;
}

/* Nomes dos produtos no resumo */
.wc-block-components-product-name {
    font-size: 1.1rem !important;
}

/* Descrição curta dos produtos no resumo */
.wc-block-components-product-metadata__description p {
    font-weight: lighter !important;
    font-size: 0.995rem !important;
    margin-bottom: 6px;
}

/* Preço unitário dos produtos */
.wc-block-components-order-summary-item__individual-price {
    font-size: 0.995rem;
}

/* Preço total por linha */
.wc-block-components-order-summary-item__total-price .wc-block-formatted-money-amount {
    font-size: 0.975rem;
}

/* Labels Subtotal, CTT Expresso, IVA 6% */
.wc-block-components-totals-item__label {
    font-size: 0.95rem;
}

/* Valores correspondentes (lado direito) */
.wc-block-components-totals-item__value {
    font-size: 0.95rem;
}

/* Mensagem de erro NIF Horeca */
.wc-block-components-notice-banner.is-error {
    background: #fef2f2;
    border-left: 4px solid #c0392b;
    color: #7b1d1d;
    border-radius: 4px;
    margin-bottom: 16px;
}

.wc-block-components-notice-banner.is-error svg {
    fill: #c0392b;
}

/* Garantir que o aviso Horeca fica sempre antes do erro */
.wc-block-components-notices {
    order: -1;
}

.anets-horeca-notice {
    order: -2;
}

.anets-horeca-notice {
    background: #f0f5fb;
    border-left: 4px solid #2a5080;
    color: #1a3352;
    padding: 12px 16px;
    margin-bottom: 16px;
    font-size: .9rem;
    line-height: 1.5;
}

.wc-block-store-notice.wc-block-components-notice-banner.is-error {
    background: #fef2f2;
    border-left: 4px solid rgb(204, 24, 24);
    color: rgb(204, 24, 24);
    border-radius: 4px;
    margin-bottom: 40px !important;
}

.wc-block-store-notice.wc-block-components-notice-banner.is-error svg {
    fill: rgb(204, 24, 24);
}

/* Separadores verticais - selector por classe, independente do ID */
.et-iconbox:not(:last-child) .et-icon-inner {
    border-right: 1px solid rgba(0, 0, 0, 0.15) !important;
	padding-right: 27px;
}

@media (max-width: 768px) {
    .et-iconbox:not(:last-child) .et-icon-inner {
        border-right: none;
    }
}

.et-feature-icon {
    color: #395873 !important;    
}

.et-iconbox.icon-color-dark .wpb_text_column {
    color: rgb(104, 104, 104);
}

/* Pág. Sobre Nós */
.quem-somos-callout-block h2 {
	font-size: 1.5rem;	
}

.quem-somos-callout-block .vc_message_box-icon {
	display: none;
	width: 0;
}

.home-catalogo-heading {
	font-family: Jost !important;
}

/* FOOTER - bloco de contactos */
.footer-widgets #block-15 {
    margin-bottom: 10px;
}

/* Footer mobile - centrado com dividers */
@media (max-width: 991px) {
    .footer-widgets .footer1,
    .footer-widgets .footer2,
    .footer-widgets .footer3,
    .footer-widgets .footer4 {
        text-align: center;
        padding-top: 24px;
        padding-bottom: 24px;
        border-bottom: 1px solid rgba(255, 255, 255, 0.15);
    }

    .footer-widgets .footer4 {
        border-bottom: none;
    }

    .footer-widgets .footer1 img,
    .footer-widgets .footer4 img {
        margin: 0 auto;
    }

    .footer-widgets .menu {
        padding-left: 0;
    }

    .footer-widgets .wp-block-jetpack-contact-info {
        display: flex;
        flex-direction: column;
        align-items: center;
    }
}

/* HOME - Callout "Amostra grátis" numa só linha (texto + botão lado a lado) */
.amostra-gratis-callout .vc_cta3_content-container {
    display: flex;
    align-items: center;
    justify-content: space-between;
    flex-wrap: nowrap;
    gap: 20px;
}

.amostra-gratis-callout .vc_cta3-content,
.amostra-gratis-callout .vc_cta3-content-header {
    margin: 0;
}

.amostra-gratis-callout {
    --sample-icon-size: 40px;
    --sample-icon-gap: 12px;
}

.amostra-gratis-callout h2 {
    position: relative;
    margin: 0;
    font-size: 1.4rem;
    line-height: 1.4;
    padding-left: calc(var(--sample-icon-size) + var(--sample-icon-gap));
}

/* Ícone do callout gerado via ::before (não vive no atributo h2 do vc_cta):
   uma tag <i> vazia (sem texto, só a classe do Font Awesome) gravada nesse
   campo de texto rico era removida pelo editor do WPBakery sempre que a
   página era gravada, por ser considerada uma "tag vazia". */
.amostra-gratis-callout h2::before {
    content: "\f06b";
    font-family: "Font Awesome 5 Free";
    font-weight: 900;
    display: flex;
    align-items: center;
    justify-content: center;
    position: absolute;
    left: 0;
    top: calc((1.4em - var(--sample-icon-size)) / 2);
    width: var(--sample-icon-size);
    height: var(--sample-icon-size);
    border-radius: 50%;
    background-color: #ffffff;
    border: 1px solid rgba(26, 51, 82, 0.15);
    color: #1a3352;
    font-size: 1.15em;
    line-height: 1;
    margin: 0;
}

.amostra-gratis-callout .vc_cta3-actions {
    margin: 0;
    white-space: nowrap;
}

.amostra-gratis-callout .vc_btn3.vc_btn3-color-grey {
    background-color: transparent !important;
    border: 2px solid #1a3352 !important;
    color: #1a3352 !important;
    border-radius: 4px !important;
}

.amostra-gratis-callout .vc_btn3.vc_btn3-color-grey:hover,
.amostra-gratis-callout .vc_btn3.vc_btn3-color-grey:focus {
    background-color: #395873 !important;
    border-color: #395873 !important;
    color: #ffffff !important;
}

.amostra-gratis-callout .vc_btn3.vc_btn3-color-grey .vc_btn3-icon {
    color: inherit !important;
}

@media (max-width: 900px) {
    .amostra-gratis-callout .vc_cta3_content-container {
        flex-wrap: wrap;
    }

    .amostra-gratis-callout h2 {
        padding-left: 0;
    }

    .amostra-gratis-callout h2::before {
        display: flex;
        position: static;
        width: var(--sample-icon-size);
        height: var(--sample-icon-size);
        margin: 0 0 10px 0;
    }
}

/* PÁG. DE CONTACTOS */

/* Ninja Forms - mensagem de sucesso */
.nf-response-msg {
    background-color: #f0f7f0;
    border-left: 4px solid #1a3352;
    padding: 16px 20px;
    margin-top: 20px;
    border-radius: 2px;
}

.nf-response-msg p {
    margin: 0 0 4px 0;
    color: #1a3352;
    font-size: 14px;
}

.nf-response-msg p:last-child {
    margin-bottom: 0;
}

.nf-error-msg,
.nf-response-msg p {
	font-size: 1.15rem !important;
}

.product_after_shop_loop_price {
    display: flex;
    flex-direction: column !important;
    align-items: flex-start !important;
}

.product_after_shop_loop_price .price,
.summary .price {
    font-weight: bold;
}

.anets-preco-notas {
    text-align: left;
}

.anets-preco-nota-portes {
    display: block;
    margin: 0;
    padding: 0;
    text-indent: 0;
    font-size: 0.85em;
    color: #777;
}

.anets-preco-nota-inline {
    display: inline;
    font-weight: normal;
}

.anets-preco-valor-portes {
    letter-spacing: -0.1em;
    margin-right: 0.5em;
    font-weight: bold;
}

.ftr-peso-liquido-grid {
    width: 100%;
    text-align: left;
    font-size: 0.85em;
    color: #777;
    margin: 2px 0 6px;
}

/* Nota "(portes incluídos)" a seguir ao preço - mesmo tamanho/estilo da
   nota do peso líquido por lata */
.anets-preco-nota-portes {
    font-size: 0.85em;
    color: #777;
}

.after_shop_loop_actions {
    margin-top: 9px;
}

/* Alternador de idioma no menu principal - barra vertical a separar
   do resto dos itens do menu (só no item de topo, não no dropdown) */
#menu-main-navigation > li.wpml-ls-menu-item {
    position: relative;
    margin-left: 20px;
    padding-left: 20px;
}

#menu-main-navigation > li.wpml-ls-menu-item::before {
    content: "";
    position: absolute;
    left: 0;
    top: 50%;
    width: 1px;
    height: 1.2em;
    transform: translateY(-50%);
    background: rgba(0, 0, 0, 0.15);
}

/* Aplica-se apenas à página Sobre Nós (page-id-141) */
body.page-id-141 .hero-title {
    position: relative;
}

/* ==========================================================
   Sobre Nós — overlay uniforme sobre a imagem do banner
   Aplica-se apenas a esta página (page-id-141)
   ========================================================== */
body.page-id-141 .hero-title.parallax_image {
    position: relative !important;
    overflow: hidden;
}
body.page-id-141 .hero-title.parallax_image::after {
    content: "";
    position: absolute;
    inset: 0;
    background: rgba(0, 0, 0, 0.175);
    z-index: 1;
    pointer-events: none;
}
body.page-id-141 .hero-title.parallax_image .page-header {
    position: relative;
    z-index: 2;
}
body.page-id-141 .hero-title.parallax_image .page-title {
    text-shadow: 0 2px 6px rgba(0,0,0,0.6);
}