/* ==========================================================================
   CARMIM THEME — carmim.css
   Adaptado do design original HTML/CSS
   ========================================================================== */

/* --- Reset & Base --- */
*, *::before, *::after {
    margin: 0; padding: 0; box-sizing: border-box;
}
html { scroll-behavior: smooth; background: #fff; }
body { background: #fff; min-height: 100vh; display: flex; flex-direction: column; font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif; }
img { max-width: 100%; display: block; }
a { color: inherit; }

/* --- Marca --- */
.logo { font-size: 24px; font-weight: normal; text-decoration: none; }
.texto-carmim { color: #960018; }

/* ==========================================================================
   BOTÃO VOLTAR AO TOPO
   ========================================================================== */
.back-to-top {
    position: fixed; bottom: 30px; right: 30px;
    width: 45px; height: 45px;
    background-color: rgba(150,0,24,0.8); color: #fff;
    border: none; border-radius: 50%; font-size: 20px; font-weight: bold;
    cursor: pointer; z-index: 2000;
    display: flex; align-items: center; justify-content: center;
    backdrop-filter: blur(5px);
    box-shadow: 0 4px 10px rgba(0,0,0,0.2);
    opacity: 0; visibility: hidden;
    transition: all 0.4s ease;
}
.back-to-top.visivel { opacity: 1; visibility: visible; }
.back-to-top:hover { background-color: rgba(150,0,24,1); transform: translateY(-5px); }

/* ==========================================================================
   CABEÇALHO
   ========================================================================== */
header {
    background-color: rgba(255,255,255,0.9);
    backdrop-filter: blur(10px); -webkit-backdrop-filter: blur(10px);
    padding: 15px 0;
    display: flex; justify-content: space-between; align-items: center;
    box-shadow: 0 4px 30px rgba(0,0,0,0.05);
    border-bottom: 1px solid rgba(255,255,255,0.3);
    position: sticky; top: 0; z-index: 1000;
}

/* Cabeçalho Transparente — Página Inicial */
header.header-transparente {
    background-color: transparent;
    backdrop-filter: none; -webkit-backdrop-filter: none;
    box-shadow: none; border-bottom: none;
    position: absolute; width: 100%;
}
header.header-transparente nav a { color: #fff; text-shadow: 0 2px 4px rgba(0,0,0,0.6); }
header.header-transparente nav a:hover { color: #960018; }
header.header-transparente .menu-btn { color: #fff; text-shadow: 0 2px 4px rgba(0,0,0,0.6); }

/* Navegação */
nav ul { list-style: none; display: flex; gap: 20px; }
nav a {
    text-decoration: none; color: #555; font-weight: 500;
    font-size: 12px; text-transform: uppercase; letter-spacing: 1px;
    transition: color 0.3s ease;
}
nav a:hover, nav .current-menu-item > a { color: #960018; }
nav#menu { margin-left: auto; }

/* Hamburger */
.menu-btn { display: none; font-size: 24px; background: none; border: none; color: #333; cursor: pointer; }

/* Ícones header */
.header-icones { display: flex; align-items: center; gap: 20px; margin-left: 30px; }
.icone-nav { color: #111; display: flex; align-items: center; position: relative; transition: color 0.3s ease; text-decoration: none; }
.icone-nav:hover { color: #960018; }
header.header-transparente .icone-nav { color: #fff; }

/* Contador do Carrinho */
.carrinho-contador {
    position: absolute; top: -8px; right: -10px;
    background-color: #960018; color: #fff;
    font-size: 11px; font-weight: bold;
    width: 18px; height: 18px; border-radius: 50%;
    display: flex; align-items: center; justify-content: center;
}

/* ==========================================================================
   HERO SLIDESHOW
   ========================================================================== */
.hero-slideshow.ecra-total {
    height: 100vh; position: relative; width: 100%; overflow: hidden; background: #000;
}
.slide {
    position: absolute; top: 0; left: 0; width: 100%; height: 100%;
    opacity: 0; transition: opacity 1.5s ease-in-out;
}
.slide.ativo { opacity: 1; z-index: 1; }
.slide img {
    position: absolute; top: 0; left: 50%; transform: translateX(-50%);
    width: 100%; max-width: 1920px; height: 100%; object-fit: cover; z-index: -1;
}

/* ==========================================================================
   BOTÃO GERAL
   ========================================================================== */
.btn {
    background-color: #960018; color: #fff;
    padding: 15px 35px; text-decoration: none; border-radius: 4px;
    font-weight: bold; font-size: 16px; display: inline-block;
    transition: background-color 0.3s ease, transform 0.2s ease;
}
.btn:hover { background-color: #6b0011; transform: translateY(-3px); color: #fff; }

/* ==========================================================================
   PORTEFÓLIO
   ========================================================================== */
.portefolio-sec { padding: 80px 0; }
.grelha-projetos { display: grid; grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); gap: 30px; }

.cartao-projeto {
    background: #fff; border-radius: 8px; overflow: hidden;
    box-shadow: 0 4px 6px rgba(0,0,0,0.05);
    border: 2px solid transparent;
    display: block; text-decoration: none;
    transition: border-color 0.3s ease, box-shadow 0.3s ease;
}
.cartao-projeto:hover { border-color: #960018; box-shadow: 0 6px 15px rgba(0,0,0,0.08); }
.cartao-projeto img { width: 100%; aspect-ratio: 1/1; object-fit: cover; }
.info-projeto { padding: 20px; text-align: left; }
.info-projeto h3 { font-size: 20px; color: #333; }
.info-projeto p { color: #777; font-size: 14px; margin-top: 5px; }

/* Paginação */
.paginacao .nav-links { display: flex; gap: 10px; justify-content: center; flex-wrap: wrap; }
.paginacao .page-numbers {
    padding: 8px 14px; border: 1px solid #ddd; border-radius: 4px;
    text-decoration: none; color: #555; font-size: 14px; transition: all 0.3s;
}
.paginacao .page-numbers.current, .paginacao .page-numbers:hover { background: #960018; color: #fff; border-color: #960018; }

/* ==========================================================================
   DETALHE DO PROJETO / PÁGINA DE CONTEÚDO
   ========================================================================== */
.projeto-hero-imagem {
    width: calc(100% - 40px); max-width: 1200px; height: 60vh; object-fit: cover;
    display: block; margin: 0 auto; position: relative; z-index: 1;
}
.projeto-detalhe-sec { padding: 60px 0 80px; position: relative; z-index: 2; }
.projeto-detalhe-sec h1 { font-size: 40px; color: #333; margin-bottom: 10px; }
.projeto-subtitulo { font-size: 18px; color: #777; margin-bottom: 50px; display: block; }

.projeto-grid { display: grid; grid-template-columns: 2fr 1fr; gap: 50px; margin-bottom: 60px; }
.projeto-descricao p { color: #555; line-height: 1.8; margin-bottom: 20px; font-size: 16px; }
.projeto-descricao ul, .projeto-descricao ol { padding-left: 20px; margin-bottom: 20px; color: #555; line-height: 1.8; }

.projeto-ficha-tecnica {
    background: #f9f9f9; padding: 30px; border-radius: 8px;
    border-left: 4px solid #960018; height: fit-content;
}
.projeto-ficha-tecnica h3 { margin-bottom: 20px; color: #333; font-size: 20px; }
.projeto-ficha-tecnica ul { list-style: none; }
.projeto-ficha-tecnica li {
    margin-bottom: 15px; color: #555;
    display: flex; justify-content: space-between;
    border-bottom: 1px solid #eaeaea; padding-bottom: 5px;
}
.projeto-ficha-tecnica strong { color: #333; }

.projeto-galeria { display: grid; grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); gap: 20px; }
.projeto-galeria img { width: 100%; aspect-ratio: 4/3; object-fit: cover; border-radius: 8px; transition: transform 0.3s ease; }
.projeto-galeria img:hover { transform: scale(1.02); }

/* Blocos de info */
.info-bloco { margin-top: 40px; }
.info-bloco h3 { font-size: 22px; color: #111; margin-bottom: 15px; border-bottom: 2px solid #f0f0f0; padding-bottom: 10px; }
.info-bloco p { color: #555; line-height: 1.8; font-size: 15px; }

/* ==========================================================================
   SERVIÇOS (WooCommerce Shop Archive)
   ========================================================================== */
.servicos-sec { background: #fff; padding: 80px 0; text-align: center; }
.servicos-sec h2 { font-size: 32px; color: #333; margin-bottom: 10px; }
.servicos-sec > p { color: #666; margin-bottom: 50px; }

.grelha-servicos { display: grid; grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); gap: 30px; }

.cartao-servico {
    background: #fff; padding: 40px 20px; border-radius: 8px;
    box-shadow: 0 4px 10px rgba(0,0,0,0.05);
    border: 2px solid transparent;
    display: block; text-decoration: none;
    transition: border-color 0.3s ease, transform 0.3s ease, box-shadow 0.3s ease;
}
.cartao-servico:hover { border-color: #960018; box-shadow: 0 6px 15px rgba(0,0,0,0.08); }
.icone-servico { font-size: 45px; margin-bottom: 20px; }
.cartao-servico h3 { font-size: 22px; color: #3c3c3c; margin-bottom: 15px; }
.cartao-servico p { color: #777; font-size: 15px; line-height: 1.6; }

/* ==========================================================================
   WOOCOMMERCE — CAIXA DE COMPRA (Single Product)
   ========================================================================== */
.compra-container {
    background: #f9f9f9; padding: 30px; border-radius: 8px;
    margin-bottom: 30px; border: 1px solid #eee;
}

/* Preço WooCommerce */
.woocommerce-Price-amount, .price .amount {
    font-size: 32px; font-weight: bold; color: #960018;
}
.woocommerce-Price-currencySymbol { font-size: 0.8em; }
.price del { font-size: 16px; color: #999; font-weight: normal; margin-right: 8px; }
.price ins { text-decoration: none; }

/* Variações (número de divisões) */
.variations { width: 100%; border-collapse: collapse; margin-bottom: 20px; }
.variations td, .variations th { padding: 8px 0; text-align: left; }
.variations label { font-size: 14px; font-weight: 700; color: #555; display: block; margin-bottom: 8px; }
.variations select {
    width: 100%; padding: 12px 15px;
    border: 1px solid #ccc; border-radius: 4px;
    font-size: 16px; background: #fff; cursor: pointer;
    font-family: inherit;
}
.variations select:focus { outline: none; border-color: #960018; }
.reset_variations { font-size: 12px; color: #960018; display: block; margin-top: 5px; }

/* Botão Add to Cart */
.single_add_to_cart_button,
.button.alt,
button.single_add_to_cart_button {
    width: 100%; background: #111; color: #fff;
    border: none; padding: 16px; font-size: 16px; font-weight: bold;
    border-radius: 4px; cursor: pointer; margin-top: 10px;
    transition: background-color 0.3s ease;
    font-family: inherit; letter-spacing: 0.5px;
}
.single_add_to_cart_button:hover { background: #960018; color: #fff; }
.woocommerce-variation-add-to-cart { margin-top: 15px; }

/* Quantidade */
.quantity { margin-bottom: 10px; }
.qty {
    padding: 10px; border: 1px solid #ccc; border-radius: 4px;
    font-size: 16px; width: 80px; text-align: center;
}

/* Aviso sem stock */
.woocommerce-variation-availability .stock { font-size: 13px; }
.out-of-stock { color: #960018; }
.in-stock { color: #5a8a5a; }

/* ==========================================================================
   WOOCOMMERCE — CARRINHO
   ========================================================================== */
.tabela-encomendas { width: 100%; border-collapse: collapse; margin-top: 20px; }
.tabela-encomendas th, .tabela-encomendas td { padding: 15px; text-align: left; border-bottom: 1px solid #eee; }
.tabela-encomendas th { background: #f9f9f9; color: #333; font-weight: 600; }
.tabela-encomendas td a.remove:hover { color: #6b0011 !important; }

/* Totais do carrinho */
.cart_totals h2, .wc-proceed-to-checkout h2 { font-size: 20px; margin-bottom: 15px; }
.shop_table { width: 100%; border-collapse: collapse; }
.shop_table th, .shop_table td { padding: 12px 0; border-bottom: 1px solid #eee; font-size: 15px; }
.shop_table .cart-subtotal td, .shop_table .order-total td { font-weight: bold; }
.shop_table .order-total td { color: #960018; font-size: 18px; }

.wc-proceed-to-checkout { margin-top: 20px; }
.checkout-button {
    display: block; width: 100%; background: #960018; color: #fff;
    text-align: center; padding: 15px; border-radius: 4px;
    text-decoration: none; font-weight: bold; font-size: 16px;
    transition: background-color 0.3s ease;
}
.checkout-button:hover { background: #6b0011; color: #fff; }

/* ==========================================================================
   WOOCOMMERCE — CHECKOUT
   ========================================================================== */
.woocommerce-checkout .projeto-detalhe-sec h1 { margin-bottom: 40px; }
.woocommerce-billing-fields h3, .woocommerce-shipping-fields h3, #order_review_heading { font-size: 22px; margin-bottom: 20px; border-bottom: 2px solid #f0f0f0; padding-bottom: 10px; }
.form-row { margin-bottom: 20px; }
.form-row label { display: block; margin-bottom: 6px; font-weight: 600; font-size: 14px; color: #555; }
.form-row input, .form-row select, .form-row textarea {
    width: 100%; padding: 12px; border: 1px solid #ccc; border-radius: 4px;
    font-family: inherit; font-size: 15px; transition: border-color 0.3s;
}
.form-row input:focus, .form-row select:focus { outline: none; border-color: #960018; }
.woocommerce-privacy-policy-text { font-size: 13px; color: #777; margin: 15px 0; }
#place_order {
    width: 100%; background: #960018; color: #fff; border: none;
    padding: 18px; font-size: 18px; font-weight: bold; border-radius: 4px;
    cursor: pointer; transition: background 0.3s; font-family: inherit;
}
#place_order:hover { background: #6b0011; }

/* ==========================================================================
   WOOCOMMERCE — NOTIFICAÇÕES
   ========================================================================== */
.woocommerce-message, .woocommerce-info, .woocommerce-error {
    padding: 15px 20px; border-radius: 4px; margin-bottom: 20px;
    font-size: 14px; display: flex; align-items: center; gap: 10px;
}
.woocommerce-message { background: #d4edda; color: #155724; border-left: 4px solid #28a745; }
.woocommerce-info { background: #cce5ff; color: #004085; border-left: 4px solid #007bff; }
.woocommerce-error { background: #f8d7da; color: #721c24; border-left: 4px solid #dc3545; }
.woocommerce-message a, .woocommerce-info a, .woocommerce-error a { color: inherit; font-weight: bold; }

/* ==========================================================================
   MINI-CART FLUTUANTE
   ========================================================================== */
.carrinho-flutuante {
    position: absolute; top: 50px; right: 0; width: 300px;
    background: #fff; border: 1px solid #eee;
    box-shadow: 0 10px 30px rgba(0,0,0,0.1); border-radius: 8px;
    padding: 20px; display: none; z-index: 3000; text-align: left;
}
.carrinho-flutuante.visivel { display: block; }
.carrinho-flutuante h4 { border-bottom: 1px solid #eee; padding-bottom: 10px; margin-bottom: 15px; font-size: 16px; }
.lista-itens-mini { max-height: 200px; overflow-y: auto; margin-bottom: 15px; }
.item-mini { display: flex; justify-content: space-between; font-size: 13px; margin-bottom: 8px; padding-bottom: 8px; border-bottom: 1px solid #eee; }
.total-mini { display: flex; justify-content: space-between; font-weight: bold; margin-bottom: 15px; color: #960018; }
.btn-verificar-carrinho {
    display: block; background: #111; color: #fff; text-align: center;
    padding: 12px; text-decoration: none; border-radius: 4px;
    margin-top: 15px; font-size: 14px; transition: background 0.3s;
}
.btn-verificar-carrinho:hover { background: #960018; color: #fff; }

/* ==========================================================================
   CONTACTOS
   ========================================================================== */
.contactos-sec { padding: 80px 0; background: #fff; }
.contacto-conteudo { display: grid; grid-template-columns: 1fr 1fr; gap: 50px; align-items: stretch; margin-top: 20px; }
.mapa-container { width: 100%; border-radius: 8px; overflow: hidden; box-shadow: 0 4px 15px rgba(0,0,0,0.08); }
.mapa-container iframe { width: 100%; height: 100%; min-height: 450px; border: none; display: block; filter: grayscale(100%); transition: filter 0.4s; }
.mapa-container iframe:hover { filter: grayscale(50%); }
.formulario-container { width: 100%; text-align: left; }
.formulario-container h3 { text-align: left; margin-bottom: 25px; color: #333; font-size: 22px; }

.grupo-form { margin-bottom: 20px; }
.grupo-form label { display: block; margin-bottom: 8px; color: #555; font-weight: 500; font-size: 14px; }
.grupo-form input, .grupo-form select, .grupo-form textarea {
    width: 100%; padding: 12px; border: 1px solid #ccc; border-radius: 4px;
    font-family: inherit; font-size: 15px; transition: border-color 0.3s;
}
.grupo-form input:focus, .grupo-form select:focus, .grupo-form textarea:focus { outline: none; border-color: #960018; }

.btn-enviar {
    width: 100%; background: #960018; color: #fff; padding: 15px;
    border: none; border-radius: 4px; font-size: 16px; font-weight: bold;
    cursor: pointer; transition: background 0.3s, transform 0.2s; margin-top: 10px;
    font-family: inherit;
}
.btn-enviar:hover { background: #6b0011; transform: translateY(-2px); }

/* ==========================================================================
   DASHBOARD — ÁREA RESERVADA (WooCommerce My Account)
   ========================================================================== */
.dashboard-sec { padding: 60px 0 80px; }
.dashboard-grid { display: grid; grid-template-columns: 250px 1fr; gap: 50px; align-items: start; }
.dashboard-menu { background: #f9f9f9; padding: 30px 20px; border-radius: 8px; width: 250px; height: fit-content; position: sticky; top: 120px; }
.dashboard-menu ul { list-style: none; }
.dashboard-menu li { margin-bottom: 15px; }
.dashboard-menu a { text-decoration: none; color: #555; font-weight: 500; display: block; padding: 8px 12px; border-radius: 4px; transition: all 0.3s; }
.dashboard-menu a:hover, .dashboard-menu a.ativo { background: #111; color: #fff; }
.dashboard-conteudo { width: 100%; min-height: 60vh; min-width: 0; }
.dashboard-conteudo h2 { font-size: 28px; margin-bottom: 20px; border-bottom: 2px solid #f0f0f0; padding-bottom: 10px; }

/* WooCommerce My Account Overrides */
.woocommerce-account .woocommerce-MyAccount-content { width: 100%; }
.woocommerce-orders-table { width: 100%; border-collapse: collapse; margin-top: 20px; }
.woocommerce-orders-table th, .woocommerce-orders-table td { padding: 15px; text-align: left; border-bottom: 1px solid #eee; }
.woocommerce-orders-table th { background: #f9f9f9; font-weight: 600; }
.woocommerce-button { padding: 8px 16px; background: #111; color: #fff; border-radius: 4px; text-decoration: none; font-size: 13px; display: inline-block; transition: background 0.3s; }
.woocommerce-button:hover { background: #960018; color: #fff; }
.woocommerce-button.view { background: transparent; color: #960018; border: 1px solid #960018; }
.woocommerce-button.view:hover { background: #960018; color: #fff; }

/* Order status tags */
.woocommerce-order-status-processing, .order-status.processing { background: #cce5ff; color: #004085; padding: 4px 10px; border-radius: 20px; font-size: 12px; font-weight: bold; white-space: nowrap; }
.woocommerce-order-status-completed, .order-status.completed { background: #d4edda; color: #155724; padding: 4px 10px; border-radius: 20px; font-size: 12px; font-weight: bold; white-space: nowrap; }
.woocommerce-order-status-pending, .order-status.pending-payment { background: #fff3cd; color: #856404; padding: 4px 10px; border-radius: 20px; font-size: 12px; font-weight: bold; white-space: nowrap; }
.woocommerce-order-status-on-hold, .order-status.on-hold { background: #f8d7da; color: #721c24; padding: 4px 10px; border-radius: 20px; font-size: 12px; font-weight: bold; white-space: nowrap; }

/* Estado tags (versão estática) */
.estado-tag { padding: 5px 10px; border-radius: 20px; font-size: 12px; font-weight: bold; }
.estado-pendente { background: #fff3cd; color: #856404; }
.estado-concluido { background: #d4edda; color: #155724; }
.estado-processo { background: #cce5ff; color: #004085; }

/* Address form */
.woocommerce-address-fields .form-row { margin-bottom: 20px; }
.woocommerce-EditAccountForm .form-row { margin-bottom: 20px; }

/* ==========================================================================
   LOGIN / REGISTER
   ========================================================================== */
.login-sec { display: flex; justify-content: center; align-items: center; min-height: 70vh; background: #f9f9f9; padding: 40px 20px; }
.login-caixa { background: #fff; padding: 40px; border-radius: 8px; box-shadow: 0 4px 15px rgba(0,0,0,0.05); width: 100%; max-width: 420px; text-align: center; }
.login-caixa h1 { font-size: 24px; margin-bottom: 10px; color: #333; }
.login-caixa p { color: #777; margin-bottom: 30px; font-size: 14px; }

/* WooCommerce Login Form */
.woocommerce-form-login, .woocommerce-form-register {
    background: #fff; padding: 40px; border-radius: 8px;
    box-shadow: 0 4px 15px rgba(0,0,0,0.05); max-width: 420px; width: 100%;
}
.woocommerce-form-login h2, .woocommerce-form-register h2 { font-size: 24px; margin-bottom: 25px; text-align: center; color: #333; }
.woocommerce-form__label-for-checkbox { display: flex; align-items: center; gap: 8px; font-size: 13px; color: #555; }
.lost_password { text-align: right; font-size: 13px; margin-top: -10px; margin-bottom: 20px; }
.lost_password a { color: #960018; text-decoration: none; }
.woocommerce-form-login .button { width: 100%; background: #960018; color: #fff; border: none; padding: 15px; font-size: 16px; font-weight: bold; border-radius: 4px; cursor: pointer; transition: background 0.3s; }
.woocommerce-form-login .button:hover { background: #6b0011; }

/* Link texto */
.link-texto { color: #960018; text-decoration: none; font-weight: 500; }
.link-texto:hover { text-decoration: underline; }

/* ==========================================================================
   RODAPÉ
   ========================================================================== */
footer.rodape-padrao {
    background: #fff; text-align: center; padding: 30px 0;
    border-top: 1px solid #eee; min-height: 130px; margin-top: auto;
    display: flex; flex-direction: column; justify-content: center; gap: 8px;
}
footer.footer-transparente {
    position: absolute; bottom: 0; width: 100%;
    background: transparent; padding: 20px 0; text-align: center;
    z-index: 1000; min-height: 130px;
    display: flex; flex-direction: column; justify-content: center; gap: 8px;
}
.info-contactos-rodape { font-size: 14px; color: #555; font-weight: 500; }
.info-contactos-rodape a { text-decoration: none; color: inherit; }
.info-contactos-rodape a:hover { color: #960018; }
.direitos { font-size: 13px; color: #888; }
footer.footer-transparente .info-contactos-rodape,
footer.footer-transparente .direitos { color: rgba(255,255,255,0.8); text-shadow: 0 2px 4px rgba(0,0,0,0.6); }

.redes-sociais { display: flex; justify-content: center; gap: 20px; margin-bottom: 4px; }
.redes-sociais a { color: #555; transition: color 0.3s; display: inline-flex; }
.redes-sociais a svg { width: 22px; height: 22px; fill: currentColor; }
.redes-sociais a:hover { color: #960018; }
footer.footer-transparente .redes-sociais a { color: rgba(255,255,255,0.8); }

/* ==========================================================================
   ALINHAMENTO GLOBAL (TRUQUE 1200px)
   ========================================================================== */
header,
.portefolio-sec,
.servicos-sec,
.contactos-sec,
.projeto-detalhe-sec,
.dashboard-sec,
footer,
.login-sec,
.woocommerce-checkout > * {
    padding-left: max(20px, calc((100vw - 1200px) / 2));
    padding-right: max(20px, calc((100vw - 1200px) / 2));
}

/* Excepções para elementos de largura total */
.hero-slideshow.ecra-total,
.projeto-hero-imagem { padding-left: 0; padding-right: 0; }

/* WooCommerce — a secção de checkout */
.woocommerce-checkout .woocommerce { width: 100%; }

/* ==========================================================================
   RESPONSIVIDADE
   ========================================================================== */
@media (max-width: 768px) {
    /* Hamburger Menu */
    .menu-btn { display: block; }

    nav {
        position: absolute; top: 100%; left: 0; width: 100%;
        background: rgba(255,255,255,0.97);
        box-shadow: 0 5px 5px rgba(0,0,0,0.1);
        max-height: 0; overflow: hidden;
        transition: max-height 0.4s ease-in-out;
        backdrop-filter: blur(15px);
    }
    nav.ativo { max-height: 400px; }
    nav ul { flex-direction: column; gap: 0; }
    nav ul li { text-align: center; padding: 15px 0; border-top: 1px solid #eee; }
    header.header-transparente nav a { color: #555; text-shadow: none; }

    /* Header */
    .header-icones { margin-left: auto; margin-right: 20px; gap: 15px; }

    /* Hero */
    .projeto-hero-imagem { width: 100%; height: 40vh; }

    /* Grids */
    .projeto-grid { grid-template-columns: 1fr; gap: 30px; }
    .contacto-conteudo { grid-template-columns: 1fr; gap: 40px; }
    .mapa-container iframe { min-height: 300px; }

    /* Títulos */
    .projeto-detalhe-sec h1 { font-size: 28px; }

    /* Dashboard */
    .dashboard-grid { grid-template-columns: 1fr; gap: 20px; }
    .dashboard-menu { position: relative !important; top: 0 !important; width: 100% !important; }

    /* Tabelas */
    .tabela-encomendas, .woocommerce-orders-table { display: block; overflow-x: auto; white-space: nowrap; }

    /* Mini cart */
    .carrinho-flutuante { width: 260px; right: -10px; }
}

@media (max-width: 480px) {
    .grelha-projetos { grid-template-columns: 1fr; }
    .grelha-servicos { grid-template-columns: 1fr; }
    .projeto-galeria { grid-template-columns: 1fr; }
}
