/* ==========================================================================
   LOJA / ARQUIVOS DE PRODUTO
   Uma coluna (sem barra lateral), grelha de cartões .curso-card do Guia.
   ========================================================================== */
.store-layout {
    display: block;
    margin-block: var(--sp-6) var(--sp-8);
}
.store-layout #primary { width: 100%; }
.woocommerce .shop-container { display: block; }
.woocommerce .woocommerce-sidebar { display: none; }
.woocommerce .woocommerce-products-area { width: 100%; }

/* O plugin imprime titulo/descricao/banner da categoria depois da grelha.
   O titulo fica no cabecalho; a descricao regressa ao fundo da pagina,
   a largura completa e com letra um pouco mais pequena. */
.category-banner { display: none; }
.category-content { margin-top: var(--sp-7); }
.category-content .page-title { display: none; }
.category-content .term-description {
    max-width: none;
    margin: 0;
    text-align: center;
    font-size: var(--fs-sm);
    line-height: var(--lh-body);
    color: var(--c-muted);
}
.category-content .term-description p { margin: 0 0 var(--sp-3); }
.category-content .term-description p:last-child { margin-bottom: 0; }

/* Breadcrumb */
.woocommerce-breadcrumb {
    margin: 0 0 var(--sp-2);
    text-align: center;
    font-size: var(--fs-xs);
    color: var(--c-muted);
}
.woocommerce-breadcrumb a { color: var(--c-muted); text-decoration: none; }
.woocommerce-breadcrumb a:hover { color: var(--c-accent); }

/* Pesquisa: o titulo ja diz tudo; esconde o breadcrumb repetido. */
.search .woocommerce-breadcrumb { display: none; }

/* Cabecalho: titulo (variacao 4) + descricao */
.woocommerce-products-header { margin-bottom: var(--sp-6); }
.woocommerce-products-header .page-title { margin: 0; }
.woocommerce-products-header .term-description {
    max-width: 680px;
    margin: var(--sp-3) auto 0;
    text-align: center;
    color: var(--c-muted);
}

/* Barra de ferramentas: contagem + ordenacao */
.shop-toolbar {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: var(--sp-3) var(--sp-4);
    margin-bottom: var(--sp-5);
}
.shop-toolbar .woocommerce-result-count {
    margin: 0;
    font-size: var(--fs-sm);
    color: var(--c-muted);
}
.shop-toolbar .woocommerce-ordering { margin: 0; }
.shop-toolbar .woocommerce-ordering select { min-width: 210px; }

/* Grelha de produtos */
.woocommerce ul.products {
    list-style: none;
    margin: 0;
    padding: 0;
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: var(--sp-5);
    clear: both;
}
.woocommerce ul.products::before,
.woocommerce ul.products::after { content: none; }

/* Cartao: o desenho vem de .curso-card (components.css) */
.woocommerce ul.products li.product.curso-card {
    margin: 0;
    width: auto;
    float: none;
    display: flex;
}
.curso-card__media-ph {
    display: grid;
    place-items: center;
    aspect-ratio: 1 / 1;
    background: linear-gradient(135deg, var(--c-primary-soft), var(--c-secondary-soft));
    color: var(--c-primary-300);
}
.woocommerce ul.products li.product.curso-card .curso-card__media img {
    display: block;
    width: 100%;
    aspect-ratio: 1 / 1;
    object-fit: cover;
    margin: 0;
}

/* Preco (WooCommerce: <del> + <ins>) */
.curso-card .price { color: var(--c-primary); }
.curso-card .price .woocommerce-Price-amount { font-size: var(--fs-xl); font-weight: var(--fw-bold); }
.curso-card .price del { color: var(--c-muted); font-size: var(--fs-sm); }
.curso-card .price del .woocommerce-Price-amount { font-size: inherit; font-weight: var(--fw-regular); }
.curso-card .price ins { text-decoration: none; }

/* Sem resultados */
.woocommerce .woocommerce-info {
    background: var(--c-white);
    border: 1px solid var(--c-line);
    border-left: 3px solid var(--c-gold);
    border-radius: var(--r-md);
    padding: var(--sp-4) var(--sp-5);
    color: var(--c-text);
}

/* Carrinho vazio: aviso e botão “Voltar para a loja” com respiro.
   Borda esquerda igual às restantes (sem o realce dourado). */
.woocommerce-cart .woocommerce-info {
    margin: 0 0 var(--sp-4);
    border-left: 1px solid var(--c-line);
}

/* Paginacao */
.woocommerce nav.woocommerce-pagination { margin-top: var(--sp-7); }
.woocommerce nav.woocommerce-pagination ul {
    display: flex;
    justify-content: center;
    gap: var(--sp-2);
    margin: 0;
    padding: 0;
    border: 0;
    list-style: none;
}
.woocommerce nav.woocommerce-pagination ul li { margin: 0; border: 0; }
.woocommerce nav.woocommerce-pagination ul li a,
.woocommerce nav.woocommerce-pagination ul li span {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 2.75rem;
    height: 2.75rem;
    padding: 0 var(--sp-3);
    border: 1px solid var(--c-line);
    border-radius: var(--r-md);
    color: var(--c-text);
    text-decoration: none;
    font-size: var(--fs-sm);
}
.woocommerce nav.woocommerce-pagination ul li a:hover {
    border-color: var(--c-primary);
    color: var(--c-primary);
}
.woocommerce nav.woocommerce-pagination ul li span.current {
    background: var(--c-primary);
    border-color: var(--c-primary);
    color: var(--c-white);
}

@media (max-width: 900px) {
    .woocommerce ul.products { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 620px) {
    .woocommerce ul.products { grid-template-columns: 1fr; }
    .shop-toolbar { align-items: flex-start; flex-direction: column; }
    .shop-toolbar .woocommerce-ordering,
    .shop-toolbar .woocommerce-ordering select { width: 100%; }
}

/* ==========================================================================
   PRODUTO INDIVIDUAL
   Duas colunas (média + resumo), separadores e separadores de secção.
   ========================================================================== */
.single-product .woocommerce-breadcrumb { margin-bottom: var(--sp-6); }

.woocommerce div.product {
    display: grid;
    grid-template-columns: minmax(0, 1.08fr) minmax(0, .92fr);
    gap: var(--sp-7);
    align-items: start;
    max-width: 1120px;
    margin-inline: auto;
}
.woocommerce div.product .woocommerce-product-gallery { grid-column: 1; margin: 0; }
.woocommerce div.product .summary { grid-column: 2; margin: 0; }
.woocommerce div.product .woocommerce-tabs,
.woocommerce div.product .upsells,
.woocommerce div.product .related,
.woocommerce div.product .product-info { grid-column: 1 / -1; }

/* Media: video ou galeria */
.woocommerce div.product .woocommerce-product-gallery figure,
.woocommerce-product-gallery__wrapper { margin: 0; }
.woocommerce-product-gallery__image img { display: block; width: 100%; border-radius: var(--r-lg); }
.product-video-wrapper video {
    display: block;
    width: 100%;
    aspect-ratio: 16 / 9;
    object-fit: contain;
    background: #000;
    border-radius: var(--r-lg);
}
.woocommerce-product-gallery .flex-control-thumbs {
    display: flex;
    flex-wrap: wrap;
    gap: var(--sp-2);
    margin: var(--sp-3) 0 0;
    padding: 0;
    list-style: none;
}
.woocommerce-product-gallery .flex-control-thumbs li { width: 84px; margin: 0; }
.woocommerce-product-gallery .flex-control-thumbs img {
    display: block;
    width: 100%;
    border: 2px solid transparent;
    border-radius: var(--r-sm);
    cursor: pointer;
}
.woocommerce-product-gallery .flex-control-thumbs img.flex-active { border-color: var(--c-gold); }
.woocommerce div.product .woocommerce-product-gallery { opacity: 1 !important; }

/* Sem imagem: painel suave com o icone de curso (em vez do placeholder Woo) */
.woocommerce-product-gallery__image--placeholder {
    display: grid;
    place-items: center;
    aspect-ratio: 16 / 10;
    border-radius: var(--r-lg);
    background: linear-gradient(135deg, var(--c-primary-soft), var(--c-secondary-soft));
    color: var(--c-primary-300);
}
.woocommerce-product-gallery__image--placeholder img { display: none; }
.woocommerce-product-gallery__image--placeholder::after {
    content: "";
    width: 64px;
    height: 64px;
    background: currentColor;
    -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M22 10 12 5 2 10l10 5 10-5z'/%3E%3Cpath d='M6 12v5c0 1.5 2.7 3 6 3s6-1.5 6-3v-5'/%3E%3C/svg%3E") center / contain no-repeat;
    mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M22 10 12 5 2 10l10 5 10-5z'/%3E%3Cpath d='M6 12v5c0 1.5 2.7 3 6 3s6-1.5 6-3v-5'/%3E%3C/svg%3E") center / contain no-repeat;
}
.woocommerce-product-gallery__trigger { display: none; }

/* Etiquetas (duração / curso gravado) */
.tagproduto {
    display: inline-flex;
    align-items: center;
    margin: 0 var(--sp-2) var(--sp-3) 0;
    padding: .3em .8em;
    border-radius: var(--r-pill);
    font-size: var(--fs-xs);
    font-weight: var(--fw-medium);
    letter-spacing: var(--ls-wide);
    text-transform: uppercase;
}
.tagproduto.numero-de-horas { background: var(--c-gold-soft); color: var(--c-gold-700); }
.tagproduto.curso-gravado { background: var(--c-primary-soft); color: var(--c-primary); }

/* Titulo (variacao 4, alinhada a esquerda) */
.woocommerce div.product .product_title {
    margin: 0;
    font-family: var(--font-heading);
    font-weight: var(--fw-light);
    font-size: var(--fs-3xl);
    line-height: 1.15;
    color: var(--c-ink);
}
.woocommerce div.product .product_title::after {
    content: "";
    display: block;
    width: 56px;
    height: 3px;
    margin-top: var(--sp-2);
    background: var(--c-gold);
    border-radius: var(--r-pill);
}

/* Classificacao media (junto ao titulo) */
.woocommerce div.product .woocommerce-product-rating {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: var(--sp-2);
    margin-top: var(--sp-3);
}
.woocommerce div.product .woocommerce-product-rating .star-rating { margin: 0; }
.woocommerce div.product .woocommerce-review-link {
    font-size: var(--fs-xs);
    color: var(--c-muted);
    text-decoration: none;
}
.woocommerce div.product .woocommerce-review-link:hover { color: var(--c-accent); }

/* Preco */
.woocommerce div.product p.price,
.woocommerce div.product span.price {
    display: flex;
    align-items: baseline;
    gap: var(--sp-2);
    margin: var(--sp-4) 0 0;
    font-family: var(--font-heading);
    font-size: var(--fs-2xl);
    font-weight: var(--fw-bold);
    color: var(--c-primary);
}
.woocommerce div.product p.price del,
.woocommerce div.product span.price del {
    font-size: var(--fs-base);
    font-weight: var(--fw-regular);
    color: var(--c-muted);
}
.woocommerce div.product p.price ins,
.woocommerce div.product span.price ins { text-decoration: none; }

/* Descricao curta */
.woocommerce-product-details__short-description {
    margin-top: var(--sp-4);
    color: var(--c-text);
    line-height: var(--lh-body);
}
.woocommerce-product-details__short-description > :last-child { margin-bottom: 0; }

/* Comprar */
.woocommerce div.product form.cart { margin: var(--sp-5) 0 0; }
.woocommerce div.product form.cart .quantity { display: none; }
.woocommerce div.product form.cart .single_add_to_cart_button {
    width: 100%;
    margin: 0;
}

/* Categoria */
.woocommerce div.product .product_meta {
    margin-top: var(--sp-4);
    padding-top: var(--sp-3);
    border-top: 1px solid var(--c-line);
    font-size: var(--fs-sm);
    color: var(--c-muted);
}
.woocommerce div.product .product_meta a { color: var(--c-ink); text-decoration: none; }
.woocommerce div.product .product_meta a:hover { color: var(--c-accent); }

/* Informacao do produto: formador (2/3) + modulos (1/3), avaliacoes em baixo */
.product-info { width: 100%; max-width: 1120px; margin: var(--sp-8) 0 0; }
.product-info__grid {
    display: grid;
    grid-template-columns: minmax(0, 2fr) minmax(0, 1fr);
    gap: var(--sp-7);
    align-items: start;
}
.product-info__grid--single { grid-template-columns: minmax(0, 1fr); }
.product-info__grid--single .formador-content { max-width: 75ch; }
.product-info__grid--single .product-info__modulos { max-width: 760px; }
.product-info__formador .formador-content { max-width: none; }
.product-info__formador .formador-content p { text-align: justify; }
.product-info__modulos .curso-modulos { max-width: none; }
.product-info__modulos .curso-modulos .modulo-title {
    padding: var(--sp-2) 0;
    font-size: var(--fs-sm);
}
.product-info__modulos .curso-modulos .sub-modulos .modulo-title { font-size: var(--fs-xs); }
.product-info__reviews { margin-top: var(--sp-8); }

/* Separadores (Formador / Modulos / Avaliacoes) */
.woocommerce div.product .woocommerce-tabs { margin-top: var(--sp-8); }
.woocommerce-tabs ul.tabs {
    display: flex;
    flex-wrap: wrap;
    gap: var(--sp-5);
    margin: 0;
    padding: 0;
    list-style: none;
    border-bottom: 1px solid var(--c-line);
}
.woocommerce-tabs ul.tabs li { margin: 0; }
.woocommerce-tabs ul.tabs li a {
    display: block;
    margin-bottom: -1px;
    padding: var(--sp-3) 0;
    border-bottom: 2px solid transparent;
    font-size: var(--fs-sm);
    font-weight: var(--fw-medium);
    color: var(--c-muted);
    text-decoration: none;
}
.woocommerce-tabs ul.tabs li a:hover { color: var(--c-ink); }
.woocommerce-tabs ul.tabs li.active a {
    color: var(--c-ink);
    border-bottom-color: var(--c-gold);
}
.woocommerce-tabs .panel { padding-top: var(--sp-6); }
.woocommerce-tabs .panel > h2 {
    margin: 0 0 var(--sp-4);
    font-size: var(--fs-2xl);
}

/* Formador: no desktop a foto flutua e o texto contorna; no telemovel
   a foto fica centrada em cima, com o nome e a bio por baixo. */
.product-info__formador .formador-profile {
    display: block;
    padding: 0;
    background: transparent;
    border-radius: 0;
    text-align: left;
}
.product-info__formador .formador-profile::after { content: ""; display: block; clear: both; }
.product-info__formador .formador-image {
    float: left;
    width: 180px;
    margin: 0 var(--sp-5) var(--sp-3) 0;
}
.product-info__formador .formador-image img {
    display: block;
    width: 100%;
    height: auto;
    aspect-ratio: 1;
    object-fit: cover;
    border-radius: 50%;
}
.product-info__formador .formador-content { max-width: none; min-width: 0; }
.product-info__formador .formador-content h3 {
    margin: 0 0 var(--sp-2);
    font-size: var(--fs-lg);
}
.product-info__formador .formador-content p {
    margin-bottom: var(--sp-4);
    text-align: justify;
}
.product-info__formador .formador-content > :last-child { margin-bottom: 0; }

/* Titulo das seccoes Formador / Modulos */
.product-info__title {
    position: relative;
    margin: 0 0 var(--sp-5);
    padding-bottom: var(--sp-3);
    border-bottom: 1px solid var(--c-line);
    font-size: var(--fs-xl);
}
.product-info__title::after {
    content: "";
    position: absolute;
    left: 0;
    bottom: -1px;
    width: 56px;
    height: 3px;
    background: var(--c-gold);
    border-radius: var(--r-pill);
}

/* Modulos do produto (markup do plugin) */
.curso-modulos { max-width: 720px; }
.curso-modulos .modulos-list,
.curso-modulos .sub-modulos { margin: 0; padding: 0; list-style: none; }
.curso-modulos .modulos-list > li { border-bottom: 1px solid var(--c-line); }
.curso-modulos .modulos-list > li:last-child { border-bottom: 0; }
.curso-modulos .modulo-title {
    display: flex;
    align-items: center;
    gap: var(--sp-3);
    padding: var(--sp-3) 0;
    font-size: var(--fs-base);
    color: var(--c-ink);
}
.curso-modulos .modulo-title::before {
    content: "";
    flex: 0 0 6px;
    width: 6px;
    height: 6px;
    border-radius: 50%;
    background: var(--c-gold);
}
.curso-modulos .sub-modulos {
    margin-left: 2px;
    padding-left: var(--sp-5);
    border-left: 1px solid var(--c-line);
}
.curso-modulos .sub-modulos .modulo-title {
    padding: var(--sp-2) 0;
    font-size: var(--fs-sm);
    color: var(--c-muted);
}
.curso-modulos .sub-modulos .modulo-title::before { background: var(--c-line-strong); }

/* Avaliacoes */
.product-info__reviews .woocommerce-Reviews-title { display: none; }
.woocommerce #reviews .woocommerce-noreviews { margin: 0 0 var(--sp-3); }
.woocommerce #reviews .commentlist { margin: 0 0 var(--sp-6); padding: 0; list-style: none; }
.woocommerce #reviews .commentlist li { margin-bottom: var(--sp-4); }
.woocommerce #reviews .comment_container { display: flex; gap: var(--sp-4); }
.woocommerce #reviews .comment_container img.avatar {
    width: 48px;
    height: 48px;
    border-radius: 50%;
}
.woocommerce #reviews .comment-text { flex: 1; min-width: 0; }
.woocommerce #reviews .comment-text .meta { margin: 0 0 var(--sp-1); font-size: var(--fs-xs); color: var(--c-muted); }
.woocommerce #reviews .comment-text .description p { margin: 0; }

/* Estrelas (lista) — o CSS do WooCommerce esta desligado.
   O span tem a largura da classificacao (ex.: 80%) e corta as estrelas. */
.woocommerce .star-rating {
    position: relative;
    display: inline-block;
    overflow: hidden;
    width: 5.35em;
    height: 1.2em;
    font-size: 1rem;
    line-height: 1.2;
    letter-spacing: .02em;
    color: var(--c-gold);
}
.woocommerce .star-rating::before {
    content: "\2605\2605\2605\2605\2605";
    position: absolute;
    top: 0;
    left: 0;
    color: var(--c-line-strong);
}
.woocommerce .star-rating span {
    position: absolute;
    top: 0;
    left: 0;
    overflow: hidden;
    width: 100%;
    height: 1.2em;
    padding-top: 1.2em;
    color: var(--c-gold);
}
.woocommerce .star-rating span::before {
    content: "\2605\2605\2605\2605\2605";
    position: absolute;
    top: 0;
    left: 0;
    letter-spacing: .02em;
    color: var(--c-gold);
}

/* Formulario de avaliacao */
.woocommerce #review_form { max-width: 720px; }
.woocommerce #review_form .comment-reply-title { display: none; }
.woocommerce #review_form .comment-form-rating { margin: 0 0 var(--sp-2); }
.woocommerce #review_form .comment-form-rating label {
    display: block;
    margin-bottom: var(--sp-1);
    font-size: var(--fs-sm);
    font-weight: var(--fw-medium);
    color: var(--c-ink);
}
.woocommerce #review_form p.stars {
    display: flex;
    gap: 0;
    margin: 0 0 var(--sp-4);
}
.woocommerce #review_form p.stars a {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 1.3rem;
    height: 1.3rem;
    font-size: 0;
    text-decoration: none;
}
.woocommerce #review_form p.stars a::before {
    content: "\2605";
    font-size: 1.28rem;
    line-height: 1;
    color: var(--c-line-strong);
}
.woocommerce #review_form p.stars.selected a::before { color: var(--c-gold); }
.woocommerce #review_form p.stars.selected a.active ~ a::before { color: var(--c-line-strong); }
.woocommerce #review_form p.stars:hover a::before { color: var(--c-gold); }
.woocommerce #review_form p.stars a:hover ~ a::before { color: var(--c-line-strong); }
.woocommerce #review_form .comment-form-comment,
.woocommerce #review_form .comment-form-author,
.woocommerce #review_form .comment-form-email { margin: 0 0 var(--sp-4); }
.woocommerce #review_form .comment-form-comment label,
.woocommerce #review_form .comment-form-author label,
.woocommerce #review_form .comment-form-email label {
    display: block;
    margin-bottom: var(--sp-2);
    font-size: var(--fs-sm);
    font-weight: var(--fw-medium);
    color: var(--c-ink);
}
.woocommerce #review_form .comment-form-comment textarea { width: 100%; }
.woocommerce #review_form .form-submit { margin: 0; }

/* Cabecalhos de seccao (Tambem pode gostar / Cursos relacionados) */
.woocommerce div.product .upsells,
.woocommerce div.product .related { margin-top: var(--sp-8); }
.woocommerce div.product .upsells > h2,
.woocommerce div.product .related > h2 {
    position: relative;
    margin: 0 0 var(--sp-5);
    padding-bottom: var(--sp-3);
    border-bottom: 1px solid var(--c-line);
    font-size: var(--fs-xl);
}
.woocommerce div.product .upsells > h2::after,
.woocommerce div.product .related > h2::after {
    content: "";
    position: absolute;
    left: 0;
    bottom: -1px;
    width: 56px;
    height: 3px;
    background: var(--c-gold);
    border-radius: var(--r-pill);
}

@media (max-width: 900px) {
    .woocommerce div.product { grid-template-columns: 1fr; gap: var(--sp-6); }
    .product-info__grid { grid-template-columns: 1fr; }
    .woocommerce-tabs ul.tabs { gap: var(--sp-4); flex-wrap: nowrap; overflow-x: auto; }
    .woocommerce-tabs ul.tabs li a { white-space: nowrap; }
}
@media (max-width: 620px) {
    .woocommerce-tabs ul.tabs { gap: var(--sp-3); }
    .woocommerce-tabs ul.tabs li a { font-size: var(--fs-xs); }
    .product-info__formador .product-info__title { text-align: center; }
    .product-info__formador .product-info__title::after {
        left: 50%;
        transform: translateX(-50%);
    }
    .product-info__formador .formador-image {
        float: none;
        width: 170px;
        margin: 0 auto var(--sp-4);
    }
    .product-info__formador .formador-content { text-align: center; }
    .product-info__formador .formador-content p { text-align: justify; hyphens: auto; }
}

/* ---------- Tabelas (carrinho, etc.) ---------- */
.woocommerce table.shop_table {
    width: 100%;
    border-collapse: collapse;
    margin-bottom: var(--gap);
}
.woocommerce table.shop_table th,
.woocommerce table.shop_table td {
    padding: .75rem;
    text-align: left;
    vertical-align: middle;
}
.woocommerce table.shop_table img { width: 64px; height: auto; }

/* ---------- Carrinho ---------- */
/* Carrinho: tabela de artigos + totais numa só coluna centrada */
.woocommerce-cart .woocommerce { max-width: 900px; margin-inline: auto; }
.woocommerce-cart .woocommerce-notices-wrapper:empty { display: none; }
.woocommerce-cart .shop_table { min-width: 0; table-layout: fixed; }
.woocommerce-cart .shop_table .product-remove { width: 44px; }
.woocommerce-cart .shop_table .product-thumbnail { width: 88px; }
.woocommerce-cart .shop_table .product-price,
.woocommerce-cart .shop_table .product-subtotal { width: 120px; text-align: right; white-space: nowrap; }
.woocommerce-cart .shop_table .product-quantity { width: 140px; text-align: right; white-space: nowrap; }
.woocommerce-cart .shop_table th,
.woocommerce-cart .shop_table td { padding-inline: var(--sp-3); }
.woocommerce-cart .cart-collaterals { margin-top: var(--sp-6); }
.woocommerce-cart .cart-collaterals .cross-sells { margin-bottom: var(--sp-6); }
.woocommerce-cart .cart_totals table.shop_table { width: 100%; }
.woocommerce-cart .cart_totals table th { width: auto; text-align: left; }
.woocommerce-cart .cart_totals table td { width: 180px; text-align: right; white-space: nowrap; }
.woocommerce-cart .cart_totals h2 { font-size: var(--fs-xl); margin: 0 0 var(--sp-4); }

/* Miniatura do produto */
.woocommerce-cart .product-thumbnail img {
    width: 72px;
    height: 72px;
    object-fit: cover;
    border-radius: var(--r-md);
}

/* Cruz de remover: círculo vermelho com X branco (sempre) */
.woocommerce a.remove {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 22px;
    height: 22px;
    padding: 1px 0 0 0px;
    border: 1px solid var(--c-danger);
    border-radius: var(--r-pill);
    background: var(--c-danger);
    color: var(--c-white);
    text-decoration: none;
    font-size: 14px;
    line-height: 1;
}
.woocommerce a.remove:hover { background: #8E1C16; border-color: #8E1C16; color: var(--c-white); }

/* Linha de ações: cupão à esquerda, actualizar à direita */
.woocommerce-cart .actions { padding-top: var(--sp-5); }
.woocommerce-cart .actions input[type="hidden"] { display: none; }
/* Nome do curso: como o título dos cartões da Guia (escuro, sem sublinhado) */
.woocommerce-cart .cart_item .product-name a {
    color: var(--c-ink);
    text-decoration: none;
}
.woocommerce-cart .cart_item .product-name a:hover {
    color: var(--c-accent);
}

/* Esconde o subtotal quando é igual ao total (sem descontos/portes/taxas) */
.cart-subtotal-equals-total .cart_totals tr.cart-subtotal { display: none; }

/* Fecha a tabela de totais com sublinhado também na última linha (Total) */
.woocommerce-cart .cart_totals table tr.order-total th,
.woocommerce-cart .cart_totals table tr.order-total td {
    border-bottom: 1px solid var(--c-line);
}

/* Cupão: campo + botão integrados (variante do componente .input-group) */
.woocommerce-cart .actions .coupon {
    float: left;
    display: flex;
    align-items: stretch;
    width: 100%;
    max-width: 470px;
    margin: 0;
}
.woocommerce-cart .actions .coupon .input-text {
    flex: 1 1 auto;
    min-width: 0;
    border-top-right-radius: 0;
    border-bottom-right-radius: 0;
}
.woocommerce-cart .actions .coupon .button {
    flex: 0 0 auto;
    margin-left: -1px;
    border-top-left-radius: 0;
    border-bottom-left-radius: 0;
    white-space: nowrap;
}
.woocommerce-cart .actions > .button { float: right; }

@media (max-width: 620px) {
    /* Carrinho em blocos: cada artigo empilhado (usa data-title) */
    .woocommerce-cart .woocommerce { max-width: none; }
    .woocommerce-cart table.cart { table-layout: auto; min-width: 0; }
    .woocommerce-cart table.cart thead { display: none; }
    .woocommerce-cart table.cart tbody tr { display: block; position: relative; padding: var(--sp-4) 0; border-bottom: 1px solid var(--c-line); }
    .woocommerce-cart table.cart tbody td { display: block; width: auto; border: 0; padding: .2rem 0; text-align: right; }
    .woocommerce-cart table.cart tbody td::before { content: attr(data-title); float: left; font-size: var(--fs-sm); color: var(--c-muted); }
    .woocommerce-cart table.cart td.product-remove { position: absolute; top: var(--sp-4); right: 0; width: auto; padding: 0; }
    .woocommerce-cart table.cart td.product-remove::before { content: none; }
    .woocommerce-cart table.cart td.product-thumbnail { display: none; }
    .woocommerce-cart table.cart td.product-name { text-align: left; padding-right: 2.5rem; margin-bottom: var(--sp-2); font-weight: var(--fw-medium); }
    .woocommerce-cart table.cart td.product-name::before { content: none; }
    .woocommerce-cart table.cart td.product-price,
    .woocommerce-cart table.cart td.product-subtotal { width: auto; }
    .woocommerce-cart table.cart td.actions { padding-top: var(--sp-4); }
    .woocommerce-cart table.cart td.actions::before { content: none; }
    .woocommerce-cart .actions .coupon { float: none; width: 100%; max-width: none; }
    .woocommerce-cart .actions .coupon .button { width: auto; }
    .woocommerce-cart .actions > .button { float: none; width: 100%; margin-top: var(--sp-3); }
}

/* ==========================================================================
   ESGOTADO — "Ser notificado"
   O plugin substitui o botão de compra por este bloco quando o produto está
   esgotado. O CSS de origem (`absites-outofstock-notify`) está desligado.
   ========================================================================== */
.absites-notify-box {
    margin: var(--sp-5) 0;
    padding: var(--sp-5);
    background: var(--c-gold-soft);
    border: 1px solid #EFE0BC;
    border-radius: var(--r-lg);
}

.absites-notify-badge {
    display: inline-block;
    margin-bottom: var(--sp-3);
    padding: .3em .85em;
    background: var(--c-gold);
    border-radius: var(--r-pill);
    color: var(--c-white);
    font-family: var(--font-body);
    font-size: 11px;
    font-weight: var(--fw-bold);
    letter-spacing: var(--ls-caps);
    line-height: 1.5;
    text-transform: uppercase;
}

.absites-notify-text {
    margin: 0 0 var(--sp-4);
    font-size: var(--fs-sm);
    line-height: var(--lh-body);
    color: var(--c-text);
}

.absites-notify-form {
    display: flex;
    align-items: stretch;
    margin: 0;
}

.absites-notify-email {
    flex: 1 1 auto;
    min-width: 0;
    height: var(--control-h);
    margin: 0;
    padding: 0 var(--sp-4);
    background: var(--c-white);
    border: 1px solid var(--c-line);
    border-right: 0;
    border-radius: var(--r-md) 0 0 var(--r-md);
    box-shadow: none;
    color: var(--c-text);
    font-family: var(--font-body);
    font-size: var(--fs-sm);
}
.absites-notify-email::placeholder { color: var(--c-muted); }
.absites-notify-email:focus {
    position: relative;
    z-index: 1;
    outline: none;
    border-color: var(--c-gold);
    box-shadow: var(--focus-ring);
}

.absites-notify-submit {
    flex: 0 0 auto;
    height: var(--control-h);
    padding: 0 var(--sp-5);
    background: var(--c-primary);
    border: 0;
    border-radius: 0 var(--r-md) var(--r-md) 0;
    color: var(--c-white);
    font-family: var(--font-body);
    font-size: var(--fs-sm);
    font-weight: var(--fw-medium);
    letter-spacing: var(--ls-wide);
    line-height: 1;
    cursor: pointer;
    transition: background var(--tr-fast);
}
.absites-notify-submit:hover { background: var(--c-primary-700); }
.absites-notify-submit:disabled {
    background: var(--c-gray);
    cursor: not-allowed;
}

.absites-notify-feedback {
    margin: var(--sp-3) 0 0;
    font-size: var(--fs-sm);
    font-weight: var(--fw-bold);
}
.absites-notify-feedback.absites-notify-success { color: var(--c-success); }
.absites-notify-feedback.absites-notify-error { color: var(--c-danger); }

@media (max-width: 620px) {
    .absites-notify-box { padding: var(--sp-4); }
    .absites-notify-form {
        flex-direction: column;
        gap: var(--sp-2);
    }
    .absites-notify-email,
    .absites-notify-submit {
        width: 100%;
        border-radius: var(--r-md);
    }
    .absites-notify-email { border-right: 1px solid var(--c-line); }
}

/* ==========================================================================
   MOSTRAR / OCULTAR PASSWORD (WooCommerce)
   O CSS de origem do WooCommerce está desligado; este é o componente.
   ========================================================================== */
.woocommerce .password-input {
    display: flex;
    flex-direction: column;
    justify-content: center;
    position: relative;
}
.woocommerce .password-input input[type="password"] { padding-right: 2.75rem; }
.woocommerce .password-input input::-ms-reveal { display: none; }
.woocommerce .show-password-input {
    position: absolute;
    top: 50%;
    right: .7em;
    transform: translateY(-50%);
    margin: 0;
    padding: 0;
    background: transparent;
    border: 0;
    border-radius: 0;
    color: var(--c-muted);
    line-height: 1;
    cursor: pointer;
    -webkit-appearance: none;
    appearance: none;
}
.woocommerce .show-password-input::before {
    content: "";
    display: block;
    width: 22px;
    height: 22px;
    background-repeat: no-repeat;
    background-size: cover;
    background-image: url('data:image/svg+xml,<svg width="20" height="20" viewBox="0 0 20 20" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M17.3 3.3C16.9 2.9 16.2 2.9 15.7 3.3L13.3 5.7C12.2437 5.3079 11.1267 5.1048 10 5.1C6.2 5.2 2.8 7.2 1 10.5C1.2 10.9 1.5 11.3 1.8 11.7C2.6 12.8 3.6 13.7 4.7 14.4L3 16.1C2.6 16.5 2.5 17.2 3 17.7C3.4 18.1 4.1 18.2 4.6 17.7L17.3 4.9C17.7 4.4 17.7 3.7 17.3 3.3ZM6.7 12.3L5.4 13.6C4.2 12.9 3.1 11.9 2.3 10.7C3.5 9 5.1 7.8 7 7.2C5.7 8.6 5.6 10.8 6.7 12.3ZM10.1 9C9.6 8.5 9.7 7.7 10.2 7.2C10.7 6.8 11.4 6.8 11.9 7.2L10.1 9ZM18.3 9.5C17.8 8.8 17.2 8.1 16.5 7.6L15.5 8.6C16.3 9.2 17 9.9 17.6 10.8C15.9 13.4 13 15 9.9 15H9.1L8.1 16C8.8 15.9 9.4 16 10 16C13.3 16 16.4 14.4 18.3 11.7C18.6 11.3 18.8 10.9 19.1 10.5C18.8 10.2 18.6 9.8 18.3 9.5ZM14 10L10 14C12.2 14 14 12.2 14 10Z" fill="%23111111"/></svg>');
}
.woocommerce .show-password-input.display-password::before {
    background-image: url('data:image/svg+xml,<svg width="20" height="20" viewBox="0 0 20 20" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M18.3 9.49999C15 4.89999 8.50002 3.79999 3.90002 7.19999C2.70002 8.09999 1.70002 9.29999 0.900024 10.6C1.10002 11 1.40002 11.4 1.70002 11.8C5.00002 16.4 11.3 17.4 15.9 14.2C16.8 13.5 17.6 12.8 18.3 11.8C18.6 11.4 18.8 11 19.1 10.6C18.8 10.2 18.6 9.79999 18.3 9.49999ZM10.1 7.19999C10.6 6.69999 11.4 6.69999 11.9 7.19999C12.4 7.69999 12.4 8.49999 11.9 8.99999C11.4 9.49999 10.6 9.49999 10.1 8.99999C9.60003 8.49999 9.60003 7.69999 10.1 7.19999ZM10 14.9C6.90002 14.9 4.00002 13.3 2.30002 10.7C3.50002 8.99999 5.10002 7.79999 7.00002 7.19999C6.30002 7.99999 6.00002 8.89999 6.00002 9.89999C6.00002 12.1 7.70002 14 10 14C12.2 14 14.1 12.3 14.1 9.99999V9.89999C14.1 8.89999 13.7 7.89999 13 7.19999C14.9 7.79999 16.5 8.99999 17.7 10.7C16 13.3 13.1 14.9 10 14.9Z" fill="%23111111"/></svg>');
}

/* ==========================================================================
   CHECKOUT — Finalizar compra
   Facturação à esquerda; resumo + pagamento à direita. 1 coluna ≤900px.
   ========================================================================== */
.woocommerce-checkout .woocommerce {
    max-width: 900px;
    margin-inline: auto;
}
.woocommerce-checkout .woocommerce-notices-wrapper:empty { display: none; }

/* Avisos de topo (iniciar sessão / cupão) */
.woocommerce-checkout .woocommerce-info {
    margin: 0 0 var(--sp-3);
    padding: var(--sp-3) var(--sp-4);
    background: var(--c-white);
    border: 1px solid var(--c-line);
    border-left: 3px solid var(--c-gold);
    border-radius: var(--r-md);
    border-top-left-radius: 0;
    border-bottom-left-radius: 0;
    font-size: var(--fs-sm);
    line-height: 1.45;
    color: var(--c-muted);
}
.woocommerce-checkout .woocommerce-info a { font-weight: var(--fw-medium); }

/* Formulário de login (revelado ao clicar) */
.woocommerce-checkout .woocommerce-form-login,
.woocommerce-order-received .woocommerce-form-login {
    max-width: 560px;
    margin: 0 0 var(--sp-5);
    padding: var(--sp-5);
    background: var(--c-white);
    border: 1px solid var(--c-line);
    border-radius: var(--r-lg);
    box-shadow: var(--sh-sm);
}
.woocommerce-checkout .woocommerce-form-login p:last-child { margin-bottom: 0; }

/* Cupão: linha compacta, sem caixa, alinhada com o aviso acima */
.woocommerce-checkout .woocommerce-form-coupon {
    display: flex;
    align-items: stretch;
    gap: var(--sp-2);
    max-width: none;
    margin: 0 0 var(--sp-4);
    padding: 0;
    background: none;
    border: 0;
    box-shadow: none;
}
.woocommerce-checkout .woocommerce-form-coupon p,
.woocommerce-checkout .woocommerce-form-coupon .form-row {
    float: none;
    width: auto;
    margin: 0;
    padding: 0;
}
.woocommerce-checkout .woocommerce-form-coupon .form-row-first { flex: 1 1 auto; min-width: 0; }
.woocommerce-checkout .woocommerce-form-coupon .form-row-last { flex: 0 0 auto; }
.woocommerce-checkout .woocommerce-form-coupon .clear { display: none; }
.woocommerce-checkout .woocommerce-form-coupon #coupon_code {
    width: 100%;
    height: 44px;
    min-height: 0;
    padding: 0 var(--sp-3);
    border: 1px solid var(--c-line-strong);
    border-radius: var(--r-sm);
    background: var(--c-white);
    font-size: var(--fs-sm);
}
.woocommerce-checkout .woocommerce-form-coupon #coupon_code:focus {
    border-color: var(--c-primary);
}
.woocommerce-checkout .woocommerce-form-coupon .button {
    width: auto;
    height: 44px;
    min-height: 0;
    margin: 0;
    padding: 0 var(--sp-5);
    border-radius: var(--r-sm);
    font-size: var(--fs-sm);
}

/* Uma só coluna centrada (como o carrinho) */
.woocommerce-checkout .absites-checkout-form {
    display: block;
    margin-top: var(--sp-5);
}
.absites-checkout-billing { margin-bottom: var(--sp-6); }
.absites-checkout-form #order_review_heading { margin-top: var(--sp-7); }
.absites-checkout-form #order_review { min-width: 0; }

/* Cabeçalhos de secção (com a mesma barra dourada do título da página) */
.absites-checkout-form h3 {
    margin: 0 0 var(--sp-5);
    font-family: var(--font-heading);
    font-weight: var(--fw-regular);
    font-size: var(--fs-lg);
    line-height: var(--lh-snug);
    color: var(--c-ink);
}
.absites-checkout-form h3::after {
    content: "";
    display: block;
    width: 32px;
    height: 2px;
    margin-top: var(--sp-3);
    background: var(--c-gold);
    border-radius: var(--r-pill);
}

/* Campos: dois por linha no desktop */
.woocommerce-billing-fields__field-wrapper {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    column-gap: var(--sp-5);
    row-gap: var(--sp-4);
}
.woocommerce-checkout .form-row {
    display: flex;
    flex-direction: column;
    gap: var(--sp-2);
    margin: 0;
    padding: 0;
    float: none;
    width: auto;
}
.woocommerce-checkout .form-row-wide { grid-column: 1 / -1; }
.woocommerce-checkout .form-row > label {
    display: block;
    margin: 0;
    font-size: var(--fs-sm);
    font-weight: var(--fw-medium);
    line-height: 1.3;
    color: var(--c-ink);
}
.woocommerce-checkout .form-row .required { color: var(--c-gold-700); text-decoration: none; }
.woocommerce-checkout .form-row .optional { color: var(--c-muted); font-weight: var(--fw-regular); }
.woocommerce-checkout .form-row .woocommerce-input-wrapper { display: block; width: 100%; }
.woocommerce .form-row > label.woocommerce-form__label-for-checkbox {
    display: inline-flex;
    align-items: center;
    gap: var(--sp-2);
    font-weight: var(--fw-regular);
    cursor: pointer;
}
.woocommerce .form-row > label.woocommerce-form__label-for-checkbox input[type="checkbox"] {
    width: 18px;
    height: 18px;
    margin: 0;
    accent-color: var(--c-primary);
    cursor: pointer;
}
.woocommerce-checkout .form-row input.input-text,
.woocommerce-checkout .form-row select,
.woocommerce-checkout .form-row textarea { width: 100%; }

/* Campos que dependem do NIF (Morada / CP / Localidade / Empresa) */
.absites-checkout-form .form-row.absites-nif-dependent,
.absites-checkout-form .form-row.absites-company-field { display: none; }
.absites-checkout-form.absites-nif-active .form-row.absites-nif-dependent,
.absites-checkout-form.absites-empresa-nif .form-row.absites-company-field {
    display: flex;
    animation: absites-reveal .24s ease both;
}
.absites-checkout-form.absites-nif-active .form-row.absites-nif-dependent > label::after {
    content: " *";
    color: var(--c-gold-700);
}
.absites-checkout-form.absites-nif-active .form-row.absites-nif-dependent label .optional,
.absites-checkout-form.absites-empresa-nif .form-row.absites-company-field label .optional { display: none; }
@keyframes absites-reveal {
    from { opacity: 0; transform: translateY(-4px); }
    to   { opacity: 1; transform: none; }
}

/* Validação inline */
.absites-checkout-form .form-row.absites-field-error input,
.absites-checkout-form .form-row.absites-field-error select,
.absites-checkout-form .form-row.absites-field-error textarea {
    border-color: var(--c-danger);
    background: var(--c-danger-soft);
}
.absites-field-error-msg {
    display: block;
    font-size: var(--fs-xs);
    line-height: 1.4;
    color: var(--c-danger);
}
.absites-terms-consent.absites-field-error { border-color: var(--c-danger); box-shadow: 0 0 0 3px var(--c-danger-soft); }

/* Avisos do WooCommerce (erros / sucesso) */
.woocommerce .woocommerce-error,
.woocommerce .woocommerce-message {
    list-style: none;
    margin: 0 0 var(--sp-5);
    padding: var(--sp-4) var(--sp-5);
    border-radius: var(--r-md);
    font-size: var(--fs-sm);
    line-height: 1.5;
}
.woocommerce .woocommerce-error { background: var(--c-danger-soft); border-left: 3px solid var(--c-danger); border-top-left-radius: 0; border-bottom-left-radius: 0; color: var(--c-danger); }
.woocommerce .woocommerce-error li { margin: 0; }
.woocommerce .woocommerce-message { background: var(--c-success-soft); border-left: 3px solid var(--c-success); border-top-left-radius: 0; border-bottom-left-radius: 0; color: var(--c-success); }

/* Resumo da compra (cartão) */
.absites-review-order {
    width: 100%;
    margin: 0 0 var(--sp-4);
    border: 1px solid var(--c-line);
    border-collapse: separate;
    border-spacing: 0;
    border-radius: var(--r-lg);
    background: var(--c-white);
    box-shadow: var(--sh-sm);
    overflow: hidden;
}
.absites-review-order th,
.absites-review-order td {
    padding: var(--sp-4) var(--sp-5);
    border-bottom: 1px solid var(--c-line);
    vertical-align: middle;
}
.absites-review-order tbody tr:last-child td { border-bottom: 1px solid var(--c-line); }
.absites-review-order tfoot tr th,
.absites-review-order tfoot tr td { border-top: 0; border-bottom: 1px solid var(--c-line); }
.absites-review-order tfoot tr:last-child th,
.absites-review-order tfoot tr:last-child td { border-bottom: 0; }
.absites-review-order .product-name { width: auto; }
.woocommerce .absites-review-order td.product-total {
    text-align: right;
    white-space: nowrap;
    font-size: var(--fs-sm);
    font-weight: var(--fw-medium);
    color: var(--c-ink);
}
.absites-review-order tfoot th { text-align: left; font-size: var(--fs-sm); font-weight: var(--fw-medium); color: var(--c-muted); }
.absites-review-order tfoot td { text-align: right; }
.absites-review-order tr.order-total th,
.absites-review-order tr.order-total td { font-size: var(--fs-lg); color: var(--c-ink); }
.absites-review-order tr.order-total th { font-weight: var(--fw-bold); }
.absites-review-order tr.order-total td strong { font-weight: var(--fw-bold); color: var(--c-primary); }
.absites-review-order small.includes_tax {
    display: block;
    margin-top: 2px;
    font-size: var(--fs-xs);
    font-weight: var(--fw-regular);
    color: var(--c-muted);
}

/* Artigo do resumo — mesma linha do carrinho:
   miniatura + nome + dados do artigo (Data, Local, Bilhete…) + preço. */
.absites-line-item { display: flex; align-items: flex-start; gap: var(--sp-4); }
.absites-line-item__media {
    flex: 0 0 auto;
    width: 64px;
    height: 64px;
    border-radius: var(--r-md);
    overflow: hidden;
    background: var(--c-offwhite);
}
.absites-line-item__media img,
.absites-line-item__img { display: block; width: 100%; height: 100%; object-fit: cover; }
.absites-line-item__body { flex: 1 1 auto; min-width: 0; }
.absites-line-item__title {
    font-size: var(--fs-sm);
    font-weight: var(--fw-medium);
    line-height: 1.4;
    color: var(--c-ink);
}
.absites-line-item__qty {
    margin-left: var(--sp-2);
    font-size: var(--fs-xs);
    font-weight: var(--fw-regular);
    color: var(--c-muted);
    white-space: nowrap;
}

/* Dados do artigo (Data / Local / Bilhete / Adultos): uma linha cada,
   com o rótulo e o valor na mesma linha — igual ao carrinho. */
.woocommerce table.cart td.product-name dl.variation,
.absites-review-order td.product-name dl.variation {
    margin: 2px 0 0;
    font-size: var(--fs-xs);
    line-height: 1.6;
    color: var(--c-muted);
}
.woocommerce table.cart td.product-name dl.variation dt,
.woocommerce table.cart td.product-name dl.variation dd,
.absites-review-order td.product-name dl.variation dt,
.absites-review-order td.product-name dl.variation dd {
    display: inline;
    margin: 0;
    padding: 0;
    font-style: normal;
}
.woocommerce table.cart td.product-name dl.variation dt,
.absites-review-order td.product-name dl.variation dt {
    margin-right: 4px;
    font-weight: var(--fw-medium);
}
.woocommerce table.cart td.product-name dl.variation dd::after,
.absites-review-order td.product-name dl.variation dd::after {
    content: "";
    display: block;
}
.woocommerce table.cart td.product-name dl.variation dd p,
.absites-review-order td.product-name dl.variation dd p {
    display: inline;
    margin: 0;
}
.absites-line-item__data { margin-top: 2px; }
.absites-line-item__data .variation { margin: 0; }

/* Bloco de confiança */
.absites-trust-block {
    margin: 0 0 var(--sp-4);
    padding: 0;
    background: none;
    border: 0;
    border-radius: 0;
    text-align: center;
}
.absites-reassurance { margin: 0 0 var(--sp-3); font-size: var(--fs-sm); line-height: 1.5; color: var(--c-muted); }
.absites-trust-badges { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--sp-3) var(--sp-5); justify-items: center; }
.absites-trust-badges li { display: flex; align-items: center; justify-content: center; gap: var(--sp-2); font-size: var(--fs-xs); color: var(--c-muted); text-align: center; }
.absites-trust-badges svg { flex: none; color: var(--c-muted); }

/* Pagamento */
.woocommerce-checkout #payment {
    padding: var(--sp-5);
    background: var(--c-white);
    border: 1px solid var(--c-line);
    border-radius: var(--r-lg);
    box-shadow: var(--sh-sm);
}
.woocommerce-checkout #payment ul.payment_methods { list-style: none; margin: 0 0 var(--sp-2); padding: 0; }
.woocommerce-checkout #payment ul.payment_methods li {
    padding: var(--sp-3) 0;
    border-bottom: 1px solid var(--c-line);
    font-size: var(--fs-sm);
}
.woocommerce-checkout #payment ul.payment_methods li:last-child { border-bottom: 0; }
.woocommerce-checkout #payment ul.payment_methods li > p { display: contents; margin: 0; }
.woocommerce-checkout #payment ul.payment_methods li > p:empty { display: none; }
.woocommerce-checkout #payment ul.payment_methods li label {
    display: inline-flex;
    flex-wrap: wrap;
    align-items: center;
    gap: var(--sp-2);
    margin: 0;
    font-size: var(--fs-base);
    color: var(--c-ink);
    cursor: pointer;
}
.woocommerce-checkout #payment ul.payment_methods li label br { display: none; }
.woocommerce-checkout #payment ul.payment_methods li label img { max-height: 24px; width: auto; margin: 0; }
.woocommerce-checkout #payment ul.payment_methods input[type="radio"] {
    width: 18px;
    height: 18px;
    margin: 0 var(--sp-2) 0 0;
    accent-color: var(--c-primary);
    vertical-align: middle;
}
.woocommerce-checkout #payment div.payment_box {
    position: relative;
    margin: var(--sp-3) 0 0;
    padding: var(--sp-4);
    background: var(--c-offwhite);
    border-radius: var(--r-md);
    font-size: var(--fs-sm);
    line-height: 1.5;
    color: var(--c-text);
}
.woocommerce-checkout #payment div.payment_box::before { display: none; }
.woocommerce-checkout #payment .form-row { margin: 0; }
.woocommerce-checkout #payment .form-row.place-order { margin-top: 0; }

/* Consentimentos (termos + marketing) */
.absites-terms-consent,
.absites-marketing-consent {
    margin-top: var(--sp-3);
    padding: var(--sp-4);
    background: var(--c-offwhite);
    border: 1px solid var(--c-line);
    border-radius: var(--r-md);
    transition: border-color var(--tr-fast);
}
.absites-terms-consent:hover,
.absites-marketing-consent:hover { border-color: var(--c-line-strong); }
.absites-terms-consent > label,
.absites-marketing-consent > label {
    display: flex;
    align-items: center;
    gap: var(--sp-3);
    margin: 0;
    font-size: var(--fs-sm);
    line-height: 1.5;
    color: var(--c-text);
    cursor: pointer;
}
.absites-terms-consent input[type="checkbox"],
.absites-marketing-consent input[type="checkbox"] {
    flex: none;
    width: 20px;
    height: 20px;
    margin: 0;
    accent-color: var(--c-primary);
    cursor: pointer;
}
.woocommerce-checkout .woocommerce-privacy-policy-text { display: none; }

/* Botão finalizar */
.woocommerce-checkout #place_order {
    width: 100%;
    margin-top: var(--sp-4);
    font-size: var(--fs-base);
}

/* ==========================================================================
   OBRIGADO / ENCOMENDA RECEBIDA
   ========================================================================== */
.woocommerce-order-received .woocommerce { max-width: 760px; margin-inline: auto; }

.woocommerce-order-received .woocommerce-notice--success,
.woocommerce-order-received .woocommerce-thankyou-order-received {
    margin: 0 0 var(--sp-6);
    padding: 0;
    background: none;
    border: 0;
    font-size: var(--fs-lg);
    font-weight: var(--fw-medium);
    color: var(--c-success);
    text-align: center;
}

/* O content.css dá padding-left às listas do conteúdo; aqui a lista é um
   cartão e os separadores têm de ir de ponta a ponta. */
.woocommerce-order-received ul.absites-order-overview {
    list-style: none;
    margin: 0 0 var(--sp-6);
    padding: 0;
    background: var(--c-white);
    border: 1px solid var(--c-line);
    border-radius: var(--r-lg);
    box-shadow: var(--sh-sm);
    overflow: hidden;
}
ul.absites-order-overview li {
    display: flex;
    align-items: center;
    gap: var(--sp-3);
    margin: 0;
    padding: var(--sp-4) var(--sp-5);
    border-bottom: 1px solid var(--c-line);
}
ul.absites-order-overview li:last-child { border-bottom: 0; }
ul.absites-order-overview .absites-overview-icon { flex: none; display: flex; color: var(--c-gold-700); }
ul.absites-order-overview .absites-overview-text {
    flex: 1 1 auto;
    min-width: 0;
    display: flex;
    flex-wrap: wrap;
    align-items: baseline;
    justify-content: space-between;
    gap: var(--sp-2);
}
ul.absites-order-overview .absites-overview-label {
    font-size: var(--fs-xs);
    letter-spacing: var(--ls-caps);
    text-transform: uppercase;
    color: var(--c-muted);
}
ul.absites-order-overview li strong { font-size: var(--fs-sm); font-weight: var(--fw-bold); color: var(--c-ink); text-align: right; }

/* Aviso de confirmação do pagamento: texto simples, centrado, sem caixa. */
.absites-thankyou-message {
    max-width: 560px;
    margin: 0 auto var(--sp-6);
    padding: 0;
    background: none;
    border: 0;
    font-size: var(--fs-sm);
    line-height: 1.6;
    color: var(--c-muted);
    text-align: center;
}
.absites-thankyou-message p { margin: 0; }

.woocommerce-order-received .woocommerce-order-details,
.woocommerce-order-received .woocommerce-customer-details { margin-top: var(--sp-7); }
.woocommerce-order-received .entry-content h2 { font-size: var(--fs-xl); margin-bottom: var(--sp-4); }
.woocommerce-order-received .woocommerce-table--order-details {
    margin: 0;
    background: var(--c-white);
    border: 1px solid var(--c-line);
    border-radius: var(--r-lg);
    overflow: hidden;
}

.woocommerce-order-received .woocommerce-table td.product-name a {
    color: var(--c-ink);
    text-decoration: none;
}
.woocommerce-order-received .woocommerce-table td.product-name a:hover { color: var(--c-accent); }
.woocommerce-order-received .product-quantity { color: var(--c-muted); font-weight: var(--fw-regular); }
.woocommerce-order-received address {
    padding: var(--sp-4) var(--sp-5);
    background: var(--c-white);
    border: 1px solid var(--c-line);
    border-radius: var(--r-lg);
    font-style: normal;
    line-height: var(--lh-snug);
}
.woocommerce-order-received .woocommerce-info {
    margin: 0 0 var(--sp-5);
    padding: var(--sp-4) var(--sp-5);
    background: var(--c-white);
    border: 1px solid var(--c-line);
    border-left: 3px solid var(--c-gold);
    border-radius: var(--r-md);
    border-top-left-radius: 0;
    border-bottom-left-radius: 0;
    font-size: var(--fs-sm);
    color: var(--c-muted);
}

/* ---------- Obrigado: telemóvel ---------- */
/* O content.css transforma as tabelas em blocos com scroll horizontal e
   nowrap; nos detalhes da compra (2 colunas) isso cortava o total. Aqui a
   tabela volta a ser tabela e o nome do artigo quebra em várias linhas. */
@media (max-width: 700px) {
    .woocommerce-order-received .entry-content .woocommerce-table--order-details {
        display: table;
        width: 100%;
        white-space: normal;
        overflow: hidden;
    }
    .woocommerce-order-received .woocommerce-table--order-details th,
    .woocommerce-order-received .woocommerce-table--order-details td {
        padding: var(--sp-3) var(--sp-4);
    }
    .woocommerce-order-received .woocommerce-table--order-details td.product-name { width: auto; }
    .woocommerce-order-received .woocommerce-table--order-details th:last-child,
    .woocommerce-order-received .woocommerce-table--order-details td:last-child {
        text-align: right;
    }

    /* Resumo: etiqueta em cima e valor por baixo, alinhados à esquerda em
       todas as linhas (antes umas ficavam à direita e outras à esquerda). */
    .woocommerce-order-received ul.absites-order-overview li { align-items: flex-start; }
    .woocommerce-order-received ul.absites-order-overview .absites-overview-text {
        flex-direction: column;
        align-items: flex-start;
        justify-content: flex-start;
        gap: 2px;
    }
    .woocommerce-order-received ul.absites-order-overview li strong { text-align: left; }
}

/* Confirmação de email (visitante, WooCommerce core) */
.woocommerce-order-received .woocommerce-verify-email {
    max-width: 480px;
    margin: 0 auto;
    padding: var(--sp-5);
    background: var(--c-white);
    border: 1px solid var(--c-line);
    border-radius: var(--r-lg);
    box-shadow: var(--sh-sm);
}
.woocommerce-order-received .woocommerce-verify-email > p:first-of-type { font-size: var(--fs-sm); color: var(--c-muted); }
.woocommerce-order-received .woocommerce-verify-email .form-row { margin: 0 0 var(--sp-4); }
.woocommerce-order-received .woocommerce-verify-email .button { width: 100%; }

@media (max-width: 620px) {
    .woocommerce-checkout .woocommerce { max-width: none; }
    .woocommerce-billing-fields__field-wrapper { grid-template-columns: 1fr; column-gap: 0; }
    .woocommerce-checkout .form-row-wide { grid-column: auto; }
    .absites-review-order th,
    .absites-review-order td { padding: var(--sp-3) var(--sp-4); }
    /* Artigo em bloco: sem miniatura e preço por baixo (como no carrinho) */
    .absites-review-order tbody tr.cart_item { display: block; width: 100%; }
    .absites-review-order tbody td.product-name,
    .absites-review-order tbody td.product-total { display: block; width: 100%; }
    .absites-review-order tbody td.product-total { padding-top: 0; }
    .absites-line-item { gap: var(--sp-3); }
    .absites-line-item__media { display: none; }
    .woocommerce-checkout #payment { padding: var(--sp-4); }
    .woocommerce-checkout .woocommerce-info { padding: var(--sp-3); }
    .woocommerce-checkout .woocommerce-form-login,
    .woocommerce-order-received .woocommerce-form-login { padding: var(--sp-4); }
    .absites-trust-badges { grid-template-columns: 1fr; }
}

/* O content.css torna as tabelas roláveis em mobile; o resumo do checkout
   deve permanecer uma tabela normal (sem scroll horizontal). */
@media (max-width: 700px) {
    .woocommerce-checkout .entry-content .absites-review-order {
        display: table;
        overflow: visible;
        white-space: normal;
    }
}

/* Em ecrãs pequenos o resumo passa a blocos: artigo + dados e, por baixo,
   o preço alinhado à direita (mesmo ritmo do carrinho). */
@media (max-width: 620px) {
    .woocommerce-checkout .entry-content .absites-review-order { display: block; }
    .absites-review-order tbody,
    .absites-review-order tfoot { display: block; }
    .absites-review-order tbody tr.cart_item,
    .absites-review-order tfoot tr { display: block; width: 100%; }
    .absites-review-order tbody td { display: block; width: 100%; }
    .absites-review-order tbody tr td.product-name { border-bottom: 0; }
    .absites-review-order tfoot tr {
        display: flex;
        align-items: baseline;
        justify-content: space-between;
    }
    .absites-review-order tfoot th,
    .absites-review-order tfoot td { display: block; width: auto; }
}

/* ---------- A minha conta ---------- */
.woocommerce-account .woocommerce {
    display: flex;
    gap: var(--gap);
    align-items: flex-start;
}
.woocommerce-MyAccount-navigation { flex: 0 0 220px; }
.woocommerce-MyAccount-navigation ul { list-style: none; margin: 0; padding: 0; }
.woocommerce-MyAccount-navigation li a { display: block; padding: .6rem .25rem; }
.woocommerce-MyAccount-content { flex: 1 1 auto; min-width: 0; }

/* ---------- Responsivo ---------- */
@media (max-width: 900px) {
    .store-layout { flex-direction: column; }
    #sidebar { flex-basis: auto; width: 100%; }
    .woocommerce ul.products { grid-template-columns: repeat(2, 1fr); }
    .woocommerce div.product { grid-template-columns: 1fr; }
    .woocommerce div.product .woocommerce-product-gallery,
    .woocommerce div.product .summary { grid-column: 1; }
    .woocommerce-checkout .absites-checkout-form { gap: var(--sp-6); }
    .woocommerce-account .woocommerce { flex-direction: column; }
    .woocommerce-MyAccount-navigation { flex-basis: auto; width: 100%; }
}
@media (max-width: 560px) {
    .woocommerce ul.products { grid-template-columns: 1fr; }
}
