/*
Theme Name: AondeVamos 2026
Theme URI: https://aondevamos.pt
Author: Aonde Vamos
Description: Tema base para o portal de eventos AondeVamos.pt
Version: 0.1
Text Domain: aondevamos
*/


:root {
        /* Cores Principais */
        --yellow-primary: #FFD500;
        --yellow: #FFD500;
        --black: #000000;
        --blue-primary: #2563EB;
        --blue: #2563EB;

        /* Categorias */
        --category-festivais: #FF1493;
        --category-feiras: #F97316;
        --category-espetaculos: #7C3AED;
        --category-miudos: #00BCD4;
        --category-diversos: #00A86B;
        --color-recomendado: #9C27B0;

        /* Tipografia */
        --font-heading: 'Poppins', sans-serif;
        --font-body: 'Inter', sans-serif;
    }

    /* LIGHT MODE */
    :root,
    html[data-theme="light"] {
        --white: #FFFFFF;
        --gray-light: #F9F9F9;
        --gray-medium: #E0E0E0;
        --gray-dark: #1A1A1A;
        --text-primary: #1A1A1A;
        --text-secondary: #4A4A4A; /* ALTERADO de #666666 para #4A4A4A - melhor contraste */
        --text-tertiary: #757575; /* ALTERADO de #999999 para #757575 - melhor contraste */
        --border-color: #E0E0E0;

        /* Semânticas de interação */
        --hover-bg: #F9F9F9;
        --hover-bg-strong: #F0F0F0;
        --item-border: #F0F0F0;

        /* Badges de entrada — valores fixos (não invertem no dark) */
        --badge-free-bg: #E6F9EE;
        --badge-free-color: #1A7A3C;
        --badge-paid-bg: #E6F1FB;
        --badge-paid-color: #185FA5;
        --badge-donation-bg: #FFF8E1;
        --badge-donation-color: #9A6B00;
        --badge-recom-bg: #FFF8E1;
        --badge-recom-color: #9A6B00;
        --badge-recom-border: #FDE68A;

        /* Sidebar concelhos */
        --pill-bg: #F2F2F2;
        --pill-bg-hover: #E8E8E8;

        /* Auth sheet */
        --sheet-btn-bg: #111111;
        --sheet-btn-color: #FFFFFF;
        --sheet-input-focus: #111111;
    }

    /* DARK MODE */
    html[data-theme="dark"] {
        --white: #1e1e1c;
        --gray-light: #2c2c2b;
        --gray-medium: #404040;
        --gray-dark: #FFFFFF;
        --text-primary: #FFFFFF;
        --text-secondary: #E0E0E0;
        --text-tertiary: #BDBDBD;
        --border-color: #404040;

        /* Semânticas de interação */
        --hover-bg: #252523;
        --hover-bg-strong: #303030;
        --item-border: #333333;

        /* Badges de entrada — manter legibilidade em dark */
        --badge-free-bg: #1A4D2E;
        --badge-free-color: #4ADE80;
        --badge-paid-bg: #1E3A5F;
        --badge-paid-color: #60A5FA;
        --badge-donation-bg: #4A3800;
        --badge-donation-color: #FCD34D;
        --badge-recom-bg: #4A3800;
        --badge-recom-color: #FCD34D;
        --badge-recom-border: #92400E;

        /* Sidebar concelhos */
        --pill-bg: #2c2c2b;
        --pill-bg-hover: #3a3a38;

        /* Auth sheet */
        --sheet-btn-bg: #FFFFFF;
        --sheet-btn-color: #111111;
        --sheet-input-focus: #FFFFFF;
    }

    


    * {
        margin: 0;
        padding: 0;
        box-sizing: border-box;
        -webkit-tap-highlight-color: transparent;
    }

    body {
        font-family: var(--font-body);
        background: var(--white);
        color: var(--text-primary);
    }

    /* ==========================================
       SIDEBAR ESQUERDA
       ========================================== */
    .left-sidebar {
        position: fixed;
        left: 0;
        top: 0;
        width: 280px;
        height: 100vh;
        background: var(--white);
        border-right: 1px solid var(--border-color);
        padding: 20px 16px;
        display: flex;
        flex-direction: column;
        z-index: 999;
        overflow-y: auto;
    }
    body.logged-in.admin-bar .left-sidebar {
        top: 32px;
    }

    .logo-section {
        display: flex;
        align-items: center;
        gap: 12px;
        margin-bottom: 24px;
        width: 100%;
    align-self: center;
    max-width: 137px;
    }

    /* CTAs na sidebar esquerda — ocultos por padrão, visíveis apenas quando sidebar direita está oculta */
    .left-sidebar-ctas {
        display: none;
        margin-bottom: 20px;
        gap: 8px;
        flex-direction: column;
    }

    @media (max-width: 1400px) {
        .left-sidebar-ctas {
            display: flex;
        }
    }

    .hamburger-btn {
        width: 40px;
        height: 40px;
        background: var(--gray-light);
        border: none;
        border-radius: 8px;
        cursor: pointer;
        display: flex;
        flex-direction: column;
        align-items: center;
        justify-content: center;
        gap: 5px;
        transition: all 0.3s ease;
    }

    .hamburger-btn:hover {
        background: var(--yellow-primary);
    }

    .hamburger-line {
        width: 20px;
        height: 2px;
        background: var(--black);
        border-radius: 2px;
    }

    .logo-container {
        background: var(--yellow-primary);
        padding: 12px 20px 6px 20px;
        border-radius: 12px;
        flex: 1;
    }

    .logo-container img {
        height: 35px;
        width: 100%;
        object-fit: contain;
    }

    .districts-dropdown {
        position: fixed;
        left: 16px;
        top: 80px;
        width: 420px;
        max-height: 0;
        overflow: hidden;
        background: var(--white);
        border: 2px solid var(--border-color);
        border-radius: 16px;
        box-shadow: 0 8px 24px rgba(0,0,0,0.15);
        transition: max-height 0.4s ease, opacity 0.3s ease;
        opacity: 0;
        z-index: 2000;
    }

    .districts-dropdown.active {
        max-height: 600px;
        opacity: 1;
    }

    .districts-header {
        padding: 20px;
        border-bottom: 1px solid var(--border-color);
        font-family: var(--font-heading);
        font-weight: 700;
        font-size: 16px;
    }

    .districts-grid {
        padding: 20px;
        display: grid;
        grid-template-columns: repeat(3, 1fr);
        gap: 10px;
    }

    .district-link {
        padding: 12px;
        text-align: center;
        background: var(--gray-light);
        border-radius: 8px;
        text-decoration: none;
        color: var(--text-primary);
        font-weight: 600;
        font-size: 14px;
        transition: all 0.2s ease;
    }

    .district-link:hover {
        background: var(--yellow-primary);
    }

    .district-link.active {
        background: var(--yellow-primary);
        color: #000;
        font-weight: 700;
    }

    .sidebar-search {
        margin-bottom: 24px;
    }

    .search-wrapper {
        position: relative;
    }

    .search-input {
        width: 100%;
        padding: 14px 16px 14px 44px;
        border: 2px solid var(--border-color);
        border-radius: 50px;
        font-size: 15px;
        background: var(--gray-light);
        transition: all 0.3s ease;
    }

    .search-input:focus {
        outline: none;
        border-color: var(--yellow-primary);
        background: var(--white);
    }

    .search-icon {
        position: absolute;
        left: 16px;
        top: 50%;
        transform: translateY(-50%);
        font-size: 18px;
        opacity: 0.5;
    }

    .categories-section {
        flex: 1;
    }

    .sidebar-nav-label {
        font-size: 10px;
        font-weight: 700;
        text-transform: uppercase;
        letter-spacing: .1em;
        color: var(--text-tertiary);
        padding: 16px 8px 10px;
        display: block;
    }
    .section-title {
        font-family: var(--font-heading);
        font-weight: 700;
        font-size: 13px;
        text-transform: uppercase;
        color: var(--text-tertiary);
        margin-bottom: 16px;
        padding: 0 8px;
    }

    .nav-list {
        list-style: none;
    }

    .nav-item {
        margin-bottom: 4px;
    }

    .nav-link {
        display: flex;
        align-items: center;
        gap: 14px;
        padding: 14px 16px;
        border-radius: 50px;
        text-decoration: none;
        color: var(--text-primary);
        font-family: var(--font-heading);
        font-weight: 600;
        font-size: 17px;
        transition: all 0.2s ease;
    }
    .nav-link:hover {
        background: var(--gray-light);
    }
    

    /* Item activo na sidebar — cor da categoria */
    .nav-link.active { font-weight: 800; }
    body.cat-feiras-e-mercados  .nav-link.active { color: #E8720C; }
    body.cat-festas-e-festivais .nav-link.active { color: #E8357A; }
    body.cat-espetaculos        .nav-link.active { color: #7C3AED; }
    body.cat-infantil           .nav-link.active { color: #0891B2; }
    body.cat-diversos           .nav-link.active { color: #059669; }

    .nav-icon {
        font-size: 24px;
        width: 24px;
    }

    .sidebar-filters {
        padding-top: 20px;
        border-top: 1px solid var(--border-color);
        margin-bottom: 20px;
    }

    .filters-scroll {
        display: flex;
        flex-direction: column;
        gap: 10px;
    }

    .filter-chip {
        padding: 14px 20px;
        background: var(--white);
        border: 2px solid var(--border-color);
        border-radius: 50px;
        font-family: var(--font-heading);
        font-weight: 700;
        font-size: 15px;
        color: var(--text-primary);
        cursor: pointer;
        transition: all 0.3s ease;
        text-align: center;
    }

    .filter-chip:hover {
        border-color: var(--yellow-primary);
        background: var(--yellow-primary);
    }

    .filter-chip.active {
        background: var(--yellow-primary);
        border-color: var(--yellow-primary);
    }

    /* ==========================================
       LAYOUT PRINCIPAL
       ========================================== */
    .page-wrapper {
        margin-left: 280px;
        display: grid;
        grid-template-columns: 1fr 360px;
        gap: 0;
        min-height: 100vh;
    }

    .main-content {
        background: var(--white);
        min-height: 100vh;
        min-width: 0;
    }

    /* BREADCRUMB COM ANIMAÇÃO AO SCROLL */
    .breadcrumb-wrapper {
        background: var(--white);
    }

    .breadcrumb-wrapper.scrolled {
        box-shadow: none;
        border-bottom: none;
    }

    .breadcrumb {
        display: flex;
        align-items: center;
        flex-wrap: wrap;
        gap: 6px;
        padding: 14px 0;
        transition: all 0.3s ease;
    }

    .breadcrumb-wrapper.scrolled .breadcrumb {
        padding: 8px 0;
        gap: 6px;
    }

    .breadcrumb a {
        font-size: 13px;
        font-weight: 600;
        color: var(--text-secondary);
        text-decoration: none;
        padding: 4px 8px;
        border-radius: 6px;
        transition: all 0.2s ease;
    }

    .breadcrumb a:hover {
        color: var(--text-primary);
        background: var(--gray-light);
    }

    .breadcrumb .separator {
        font-size: 13px;
        color: var(--border-color);
        user-select: none;
    }

    .breadcrumb .current {
        font-size: 13px;
        font-weight: 700;
        color: var(--text-primary);
        padding: 4px 8px;
        white-space: nowrap;
        overflow: hidden;
        text-overflow: ellipsis;
        max-width: 260px;
    }

    .breadcrumb-wrapper.scrolled .breadcrumb a,
    .breadcrumb-wrapper.scrolled .breadcrumb .current {
        font-size: 12px;
        padding: 3px 6px;
    }
    .breadcrumb-wrapper.scrolled .breadcrumb .separator {
        font-size: 11px;
    }

    /* ── Mobile: mostrar só o link anterior (penúltimo) com ← ── */
    @media (max-width: 768px) {
        .breadcrumb { padding: 10px 0; flex-wrap: nowrap; }

        /* Esconder tudo */
        .breadcrumb > *  { display: none; }

        /* Mostrar só o penúltimo <a> (link de volta) */
        .breadcrumb > a:last-of-type {
            display: inline-flex;
            align-items: center;
            font-size: 14px;
            padding: 4px 0;
            line-height: 1;
        }

        /* Adicionar seta de volta — alinhada verticalmente */
        .breadcrumb > a:last-of-type::before {
            content: '←';
            margin-right: 6px;
            font-size: 14px;
            line-height: 1;
            display: inline-flex;
            align-items: center;
        }
    }

    .leaderboard-ad {
        background: var(--gray-light);
        border: 2px dashed var(--border-color);
        padding: 60px 20px;
        text-align: center;
        color: var(--text-tertiary);
        font-family: var(--font-heading);
        font-weight: 600;
        font-size: 14px;
        margin: 16px auto 40px;
        max-width: 970px;
        border-radius: 12px;
        width: calc(100% - 32px);
    }
  
    .container,
    .main-container {
        max-width: 970px;
        margin: 0 auto;
        padding: 0 0px 0px;
    }
    body.home .main-container {
        max-width: 970px;
        padding: 0;
    }
    body.home.page-quando .main-container {
        padding: 0 16px;
    }
    body.home:not(.page-quando):not(.page-user) .breadcrumb-wrapper {
        display: none;
    }

    .events-feed {
        padding: 40px;
        max-width: 1200px;
        margin: 0 auto;
    }
 
    /* ==========================================
       RIGHT SIDEBAR
       ========================================== */
    .right-sidebar {
        background: var(--white);
        border-left: 1px solid var(--border-color);
        padding: 20px 16px;
    }

    .sidebar-ctas {
        margin-bottom: 24px;
        display: flex;
        gap: 8px;
        align-items: center;
    }

    .cta-button {
        display: block;
        font-family: var(--font-heading);
        font-weight: 700;
        font-size: 15px;
        cursor: pointer;
        transition: all 0.2s ease;
        text-decoration: none;
        text-align: center;
    }

    .cta-primary {
        flex: 1;
        padding: 14px 16px;
        background: var(--yellow-primary);
        color: #000000;
        border: none;
        border-radius: 50px;
    }

    .cta-primary:hover {
        background: var(--black);
        color: var(--yellow-primary);
        transform: translateY(-2px);
    }

    .cta-secondary {
        flex-shrink: 0;
        padding: 10px 4px;
        background: transparent;
        color: var(--text-secondary);
        border: none;
        border-radius: 0;
        font-size: 13px;
        font-weight: 600;
        display: flex;
        align-items: center;
        gap: 4px;
        white-space: nowrap;
    }

    .cta-secondary::after {
        content: '→';
        font-size: 14px;
        transition: transform 0.2s ease;
    }

    .cta-secondary:hover {
        color: var(--text-primary);
        background: transparent;
    }

    .cta-secondary:hover::after {
        transform: translateX(3px);
    }

    .ad-space {
        background: var(--gray-light);
        border: 2px dashed var(--border-color);
        border-radius: 16px;
        padding: 80px 20px;
        margin-bottom: 24px;
        text-align: center;
        color: var(--text-tertiary);
        font-family: var(--font-heading);
        font-weight: 600;
        font-size: 14px;
    }

    .signup-banner {
        background: linear-gradient(135deg, var(--yellow-primary) 0%, #FFC700 100%);
        border-radius: 16px;
        padding: 28px 24px;
        margin-bottom: 24px;
        text-align: center;
    }

    .signup-banner h3 {
        font-family: var(--font-heading);
        font-weight: 800;
        font-size: 22px;
        margin-bottom: 12px;
    }

    .signup-banner p {
        font-size: 15px;
        margin-bottom: 20px;
        opacity: 0.9;
        line-height: 1.5;
    }

    .signup-banner button {
        width: 100%;
        padding: 16px;
        background: var(--black);
        color: var(--yellow-primary);
        border: none;
        border-radius: 50px;
        font-family: var(--font-heading);
        font-weight: 700;
        font-size: 17px;
        cursor: pointer;
        transition: all 0.3s ease;
    }

    .signup-banner button:hover {
        transform: scale(1.05);
    }

    .stats-widget {
        background: linear-gradient(135deg, #2563EB 0%, #60A5FA 100%);
        color: white;
        border-radius: 16px;
        padding: 40px 24px;
        text-align: center;
    }

    .stats-number {
        font-family: var(--font-heading);
        font-weight: 900;
        font-size: 56px;
        margin-bottom: 12px;
        line-height: 1;
    }

    .stats-label {
        font-size: 17px;
        font-weight: 600;
    }
 

    /* ==========================================
       MOBILE
       ========================================== */
    .mobile-wrapper {
        display: none;
    }

    .mobile-top-bar {
        position: fixed;
        top: 0;
        left: 0;
        right: 0;
        background: var(--white);
        border-bottom: 1px solid var(--border-color);
        padding: 12px 16px;
        z-index: 1000;
        display: flex;
        align-items: center;
        justify-content: space-between;
    }

    .mobile-logo-container {
        background: var(--yellow-primary);
        padding: 8px 16px 10px 16px;
        border-radius: 10px;
    }
    .overlay-header .mobile-logo-container {
     padding: 8px 16px 4px;
        
    }
    .mobile-logo-img {
        height: 24px;
        display: block;
        width: auto;
    }

    .mobile-menu-btn {
        width: 40px;
        height: 40px;
        background: var(--gray-light);
        border: none;
        border-radius: 8px;
        display: flex;
        flex-direction: column;
        align-items: center;
        justify-content: center;
        gap: 4px;
        cursor: pointer;
    }

    .mobile-menu-line {
        width: 18px;
        height: 2px;
        background: var(--black);
        border-radius: 2px;
    }

    .mobile-overlay-menu {
        position: fixed;
        top: 0;
        left: 0;
        right: 0;
        bottom: 0;
        background: var(--white);
        z-index: 2000;
        transform: translateX(-100%);
        transition: transform 0.3s ease;
        overflow-y: auto;
        padding: 10px 18px;
    }

    .mobile-overlay-menu.active {
        transform: translateX(0);
    }

    .overlay-header {
        display: flex;
        align-items: center;
        justify-content: space-between;
        margin-bottom: 24px;
    }

    .close-menu-btn {
        width: 40px;
        height: 40px;
        background: var(--gray-light);
        border: none;
        border-radius: 50%;
            font-size: 29px;
    cursor: pointer;
    font-weight: bold;
    }

    .mobile-search {
        margin-bottom: 24px;
    }

    .mobile-search-input {
        width: 100%;
        padding: 16px 20px 16px 50px;
        border: 2px solid var(--border-color);
        border-radius: 50px;
        font-size: 16px;
        background: var(--gray-light);
    }

    .mobile-search-icon {
        position: absolute;
        left: 20px;
        top: 50%;
        transform: translateY(-50%);
        font-size: 20px;
        opacity: 0.5;
    }

    .mobile-ctas {
        display: flex;
        align-items: center;
        gap: 8px;
        margin-bottom: 0;
    }

    .mobile-ctas .cta-primary {
        flex: 1;
        padding: 12px 16px;
        font-size: 14px;
    }

    .mobile-ctas .cta-secondary {
        flex-shrink: 0;
        font-size: 13px;
        padding: 10px 4px;
    }

    /* Botão Distritos - Layout Melhorado */
    .district-selector-btn {
        width: 100%;
        padding: 10px 8px;
        background: transparent;
        border: none;
        border-radius: 8px;
        display: flex;
        align-items: center;
        justify-content: space-between;
        cursor: pointer;
        margin-bottom: 4px;
        transition: background 0.15s;
        text-align: left;
    }

    .district-selector-btn:hover {
        background: var(--hover-bg);
    }

    .district-selector-btn:active {
        transform: scale(0.98);
    }

    .district-text {
        text-align: left;
    }

    .district-label {
        font-size: 10px;
        font-weight: 700;
        color: var(--text-tertiary);
        text-transform: uppercase;
        letter-spacing: .08em;
        display: block;
        margin-bottom: 2px;
    }

    .district-value {
        font-family: var(--font-heading);
        font-weight: 700;
        font-size: 15px;
        color: var(--text-primary);
    }

    .district-arrow {
        font-size: 18px;
        color: var(--text-tertiary);
    }

    .mobile-categories {
        margin-bottom: 24px;
    }

    .mobile-section-title {
        font-family: var(--font-heading);
        font-weight: 700;
        font-size: 14px;
        text-transform: uppercase;
        color: var(--text-tertiary);
        margin-bottom: 16px;
    }

    .mobile-category-link {
        display: flex;
        align-items: center;
        gap: 16px;
        padding: 16px;
        background: var(--gray-light);
        border-radius: 12px;
        text-decoration: none;
        color: var(--black);
        font-family: var(--font-heading);
        font-weight: 600;
        font-size: 16px;
        margin-bottom: 10px;
    }

    .mobile-category-icon {
        font-size: 28px;
    }

    /* Filtros Mobile - Chips Horizontais */
    .mobile-filters {
        margin-bottom: 24px;
    }

    .mobile-filters-scroll {
        display: flex;
        gap: 10px;
        overflow-x: auto;
        padding: 12px 0;
        -webkit-overflow-scrolling: touch;
        scrollbar-width: none;
    }

    .mobile-filters-scroll::-webkit-scrollbar {
        display: none;
    }

    .mobile-filter-chip {
        flex-shrink: 0;
        padding: 12px 24px;
        background: var(--white);
        border: 2px solid var(--border-color);
        border-radius: 50px;
        font-family: var(--font-heading);
        font-weight: 700;
        font-size: 15px;
        white-space: nowrap;
        cursor: pointer;
        transition: all 0.2s ease;
    }

    .mobile-filter-chip.active {
        background: var(--yellow-primary);
        border-color: var(--yellow-primary);
    }

    /* Bottom Sheet */
    .districts-bottom-sheet {
        position: fixed;
        left: 0;
        right: 0;
        bottom: 0;
        background: var(--white);
        border-radius: 20px 20px 0 0;
        max-height: 70vh;
        transform: translateY(100%);
        transition: transform 0.3s ease;
        z-index: 3000;
        box-shadow: 0 -4px 24px rgba(0,0,0,0.2);
    }

    .districts-bottom-sheet.active {
        transform: translateY(0);
    }

    .sheet-handle {
        width: 40px;
        height: 4px;
        background: var(--border-color);
        border-radius: 2px;
        margin: 12px auto;
    }

    .sheet-header {
        padding: 0 20px 16px;
        border-bottom: 1px solid var(--border-color);
    }

    .sheet-title {
        font-family: var(--font-heading);
        font-weight: 800;
        font-size: 20px;
        margin-bottom: 12px;
    }

    .sheet-search {
        position: relative;
    }

    .sheet-search input {
        width: 100%;
        padding: 12px 16px 12px 44px;
        border: 2px solid var(--border-color);
        border-radius: 50px;
        font-size: 15px;
        background: var(--gray-light);
    }

    .sheet-search-icon {
        position: absolute;
        left: 16px;
        top: 50%;
        transform: translateY(-50%);
        font-size: 18px;
        opacity: 0.5;
    }

    .sheet-content {
        padding: 20px;
        max-height: calc(70vh - 140px);
        overflow-y: auto;
    }

    .district-item {
        display: block;
        padding: 16px;
        background: var(--gray-light);
        border-radius: 12px;
        margin-bottom: 10px;
        font-family: var(--font-heading);
        font-weight: 600;
        font-size: 16px;
        text-align: center;
        cursor: pointer;
        text-decoration: none;
        color: var(--text-primary);
        transition: all 0.2s ease;
    }

    .district-item:hover,
    .district-item:active {
        background: var(--yellow-primary);
        color: #000;
        transform: scale(0.98);
    }

    .district-item.active {
        background: var(--yellow-primary);
        color: #000;
    }

    .sheet-overlay {
        position: fixed;
        top: 0;
        left: 0;
        right: 0;
        bottom: 0;
        background: rgba(0,0,0,0.5);
        opacity: 0;
        pointer-events: none;
        transition: opacity 0.3s ease;
        z-index: 2999;
    }

    .sheet-overlay.active {
        opacity: 1;
        pointer-events: all;
    }

    .mobile-content {
        padding-top: 60px;
        padding-bottom: 20px;
    }
    
    .mobile-leaderboard {
        background: var(--gray-light);
        border: 2px dashed var(--border-color);
        padding: 40px 20px;
        margin: 16px auto;
        border-radius: 12px;
        text-align: center;
        color: var(--text-tertiary);
        font-size: 12px;
    }

    .mobile-demo {
        padding: 20px;
        text-align: center;
    }

    /* ==========================================
       RESPONSIVE BREAKPOINTS
       ========================================== */
    @media (max-width: 1400px) {
        .page-wrapper {
            grid-template-columns: 1fr;
        }

        .right-sidebar {
            display: none;
        }
    }

    

    @media (max-width: 768px) {
        
        
        .left-sidebar,
        .districts-dropdown,
        .right-sidebar {
            display: none !important;
        }

        /* Leaderboard fora do main-container (header da página) */
        .main-content > .leaderboard-ad {
            width: calc(100% - 32px);
            margin: 24px auto 20px;
        }
        /* Leaderboard dentro do main-container — respeita padding lateral */
        .main-container .leaderboard-ad {
            width: 100%;
            margin-bottom: 20px;
        }
        .breadcrumb-wrapper {
            padding: 0 16px;
        }
        .container,
        .main-container {
            padding: 0 16px;
        }
        body { overflow-x: hidden; }
        /* quando raiz pode herdar body.home que zera padding — forçar */
        body.page-quando .main-container {
            padding: 0 16px !important;
        }
        /* av-hdr alinhado com o conteúdo — sem padding extra (container trata disso) */
        .av-hdr {
            padding-left: 0;
            padding-right: 0;
        }
        /* Cards mini — sangrar à direita para mostrar que há mais */
        .av-hscroll {
            margin-left: -16px;
            margin-right: -16px;
            padding-left: 0;
            padding-right: 0;
            scroll-padding-left: 16px;
        }
        .av-hscroll::before,
        .av-hscroll::after {
            content: '';
            flex-shrink: 0;
            width: 16px;
        }
        .av-hscroll::after { width: 40px; }

        /* Mesmo espaçador para todos os scrolls horizontais */
        .av-intencao__btns::before,
        .av-section__subcats::before,
        .av-cat-intencao__quando::before,
        .av-cat-nav-mobile::before,
        .av-cols::before {
            content: '';
            flex-shrink: 0;
            width: 16px;
        }
        .av-intencao__btns::after,
        .av-section__subcats::after,
        .av-cat-intencao__quando::after,
        .av-cat-nav-mobile::after,
        .av-cols::after {
            content: '';
            flex-shrink: 0;
            width: 40px;
        }
        /* Nav de categorias — scroll horizontal */
        .av-section__subcats {
            flex-wrap: nowrap;
            overflow-x: auto;
            -webkit-overflow-scrolling: touch;
            scrollbar-width: none;
            margin-left: -16px;
            margin-right: -16px;
            padding-bottom: 4px;
        }
        .av-section__subcats::-webkit-scrollbar { display: none; }
        .mobile-wrapper {
            display: block;
        }

        .page-wrapper {
            margin-left: 0;
            margin-top: 65px;
        }
    }
 
     @media (min-width: 769px) {  
        .main-content { 
            padding: 0 16px;
        }
    }
 
    

    /* ── Galeria do single evento ── */
    
    
    
    
    

    /* THEME TOGGLE */
    .theme-toggle-wrapper {
        display: flex;
        align-items: center;
        margin-left: auto;
        padding: 8px;
        justify-content: flex-end;
    }

    .theme-toggle {
        display: flex;
        background: var(--gray-light);
        border: 1px solid var(--border-color);
        border-radius: 50px;
        padding: 4px;
        gap: 4px;
    }

    .theme-btn {
        width: 32px;
        height: 32px;
        border: none;
        border-radius: 50%;
        cursor: pointer;
        font-size: 16px;
        background: transparent;
        color: var(--text-tertiary);
        transition: all 0.2s ease;
    }

    .theme-btn:hover {
        background: var(--gray-medium);
    }

    .theme-btn.active {
        background: var(--yellow-primary);
        color: #000000;
    }

    @media (max-width: 768px) {
        .theme-toggle-wrapper {
            position: absolute;
            top: 4px;
            right: 70px;
            z-index: 1001;
        }
    } 








    /* Shell principal da página de conta */
.page-section--user {
    padding: 0 0 48px;
}

.user-shell {
    max-width: 960px;
    margin: 0 auto;
    background: var(--white);
    border-radius: 0;
    border: none;
    padding: 24px 0 28px;
}

/* Cabeçalho do card */
.user-shell__header {
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
    gap: 16px;
    align-items: center;
    margin-bottom: 20px;
}

.user-shell__title {
    font-family: var(--font-heading);
    font-size: clamp(1.4rem, 3vw, 1.8rem);
    font-weight: 900;
    letter-spacing: -.03em;
    margin: 0;
    color: var(--text-primary);
}

/* Tabs */
.user-tabs {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}

.user-tab {
    display: inline-flex;
    align-items: center;
    padding: 6px 14px;
    border-radius: 999px;
    border: 1.5px solid var(--border-color);
    background: var(--white);
    font-size: 0.85rem;
    color: var(--text-secondary);
    text-decoration: none;
    transition: all 0.15s;
}

.user-tab:hover {
    border-color: var(--text-primary); 
}

.user-tab--active {
    background: var(--text-primary);
    border-color: var(--text-primary);
    color: var(--white);
}

.user-tab--highlight {
    background: var(--yellow-primary);
    border-color: var(--yellow-primary);
    color: #000;
    font-weight: 700;
}

.user-tab--highlight:hover {
    background: var(--text-primary);
    border-color: var(--text-primary);
    color: var(--yellow-primary);
}

/* Bloco utilizador */
.user-shell__body {
    border-top: 1px solid var(--border-color);
    padding-top: 20px;
}

.user-header {
    display: flex;
    align-items: center;
    gap: 16px;
    margin-bottom: 18px;
}

.user-header__avatar img { border-radius: 50%; }
.user-header__name { font-weight: 700; font-size: 1rem; margin-bottom: 2px; }
.user-header__role { font-size: 0.8rem; color: var(--text-tertiary); }

.user-metrics {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(160px, 1fr));
    gap: 12px;
    margin-bottom: 24px;
}

.user-metric {
    background: var(--gray-light);
    border-radius: 12px;
    border: 1.5px solid var(--border-color);
    padding: 12px 14px;
}

.user-metric__value { font-weight: 700; font-size: 1.1rem; margin-bottom: 3px; }
.user-metric__label { font-size: 0.8rem; color: var(--text-tertiary); }

.user-section { margin-top: 8px; }
.user-section__title { font-size: 0.95rem; font-weight: 600; margin-bottom: 14px; }

.user-empty { padding: 16px 0 4px; }
.user-empty__title { font-weight: 600; margin-bottom: 4px; }
.user-empty__text { font-size: 0.85rem; color: var(--text-tertiary); margin-bottom: 10px; }

@media (max-width: 768px) {
    .user-shell { padding: 18px 16px 22px; }
    .user-shell__header { align-items: flex-start; }
}

/* Login / Registo */
.user-shell--login {
    max-width: 480px;
    border: none;
    border-radius: 0;
    padding: 0;
    background: transparent;
}

@media(max-width: 768px) {
    .user-shell--login { padding: 0 16px; }
    .page-section--user { padding: 0 0 32px; }
}

.login-container {
    padding: 20px 0 0;
    border: none;
    background: transparent;
}

.user-shell--login .user-shell__body {
    border-top: none;
    padding-top: 0;
}

/* Form fields alinhados com o resto do site */
.user-login-form .form-group {
    margin-bottom: 16px;
}

.user-login-form .form-group label {
    display: block;
    font-size: 0.9rem;
    font-weight: 600;
    color: #1A1A1A;
    margin-bottom: 6px;
}

.user-login-form .form-control {
    width: 100%;
    padding: 12px 14px;
    /*border-radius: 999px;              /* mesmo look dos filtros/busca */
    border: 1px solid #E0E0E0;
    font-size: 0.95rem;
    background: #FFFFFF;
    transition: border-color 0.2s ease, box-shadow 0.2s ease;
    box-sizing: border-box;
}

.user-login-form .form-control:focus {
    outline: none;
    border-color: #FFD500;
    box-shadow: 0 0 0 3px rgba(255, 213, 0, 0.15);
}

/* Lembrar-me + link */
.form-row--login {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin: 4px 0 20px;
    gap: 16px;
    font-size: 0.85rem;
}

.checkbox-label {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    cursor: pointer;
    color: #444;
}

.checkbox-label input {
    width: 16px;
    height: 16px;
}

.forgot-password {
    color: var(--text-secondary); /* ALTERADO de #666 para var(--text-secondary) */
    text-decoration: none;
    font-size: 0.85rem;
}

.forgot-password:hover {
    color: #000;
}
 

/* Rodapé do login */
.login-footer {
    text-align: center;
    margin-top: 20px;
    font-size: 0.9rem;
    color: var(--text-secondary); /* ALTERADO de #666 para var(--text-secondary) */
}

.login-footer__link {
    color: #000;
    font-weight: 600;
    text-decoration: none;
}

.login-footer__link:hover {
    color: #FFD500;
}

/* Alertas */
.alert {
    padding: 12px 14px;
    border-radius: 12px;
    font-size: 0.85rem;
    margin-bottom: 16px;
}

.alert-error {
    background: #FEF2F2;
    border: 1px solid #FECACA;
    color: #B91C1C;
}


 /* BOTÕES */
        .btn { font-family: var(--font-heading); font-weight: 700; border-radius: 50px; border: 2px solid transparent; cursor: pointer; transition: all 0.2s ease; text-align: center; display: inline-flex; align-items: center; justify-content: center; text-decoration: none; }
        .btn-sm { padding: 9px 19px; font-size: 14px; min-height: 44px; }
        .btn-md { padding: 12px 24px; font-size: 15px; min-height: 48px; }
        .btn-lg { padding: 16px 32px; font-size: 17px; min-height: 52px; }
        .btn-primary { background: var(--yellow-primary); color: #000000; border-color: var(--yellow-primary); }
        .btn-primary:hover { background: #000000; color: var(--yellow-primary); border-color: #000000;  }
        
        .btn-outline { background: transparent; }
        html[data-theme="light"] .btn-outline { border-color: #e0e0e0; color: #1A1A1A; }
        
        html[data-theme="light"] .btn-outline:hover{ background: var(--yellow-primary); border-color: var(--yellow-primary); color: #000000;  }
        html[data-theme="light"] .btn-outline-2:hover{ background: #F9F9F9; border-color:#1A1A1A; color: #000000;  }
        
        
        
 
        .btn-secondary { background: var(--blue-primary); color: #350202; border-color: var(--blue-primary); }
        .btn-secondary:hover { background: #1E40AF; border-color: #1E40AF;  }
.btn-block {
    width: 100%;display: block; text-align: center;
}

.alert-evento {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 16px 18px;
    border-radius: 10px;
    margin-bottom: 24px;
    border: 1px solid transparent;
    background: #ecfdf3;
    color: #14532d;
}

.alert-evento__icon {
    flex: 0 0 32px;
    height: 32px;
    border-radius: 50%;
    background: #22c55e;
    color: #fff;
    display: flex;
    align-items: center;
    justify-content: center;
    font-weight: 700;
}

.alert-evento__content strong {
    display: block;
    margin-bottom: 4px;
    font-size: 15px;
}

.alert-evento__content p {
    margin: 0;
    font-size: 14px;
}

/* Versão de erro */
.alert-evento.alert-error {
    background: #fef2f2;
    color: #7f1d1d;
    border-color: #fecaca;
}

.alert-evento.alert-error .alert-evento__icon {
    background: #ef4444;
}
.alert-evento__link {
    margin-left: 8px;
    font-weight: 600;
    text-decoration: underline;
}




















 
.event-occurrences-note, .event-schedule-compact{
    font-size: 14px;
    margin-bottom: 3px;
    letter-spacing: 0.5px;

}










/* ========================================
   ESTILOS DA GALERIA
   ======================================== */

.evento-galeria {
    margin: 3rem 0;
    max-width: 620px;
    margin: auto;
}

.galeria-titulo {
    font-size: 1.75rem;
    font-weight: 700;
    margin-bottom: 1.5rem;
    color: #1a1a1a;
}

/* ========================================
   DESKTOP: Vertical (uma embaixo da outra)
   ======================================== */
@media (min-width: 1024px) {
    .galeria-container {
        display: flex;
        flex-direction: column;
        gap: 1.5rem;
    }
    
    .galeria-item {
        width: 100%;
        border-radius: 8px;
        overflow: hidden;
        background: #f3f4f6;
    }
    
    .galeria-imagem {
        width: 100%;
        height: auto;
        display: block;
     }
    
   
}

/* ========================================
   TABLET/MOBILE: Horizontal com scroll
   ======================================== */
@media (max-width: 1023px) {
    .galeria-container {
        display: flex;
        flex-direction: row;
        gap: 1rem;
        overflow-x: auto;
        overflow-y: hidden;
        scroll-snap-type: x mandatory;
        -webkit-overflow-scrolling: touch; /* Smooth scroll iOS */
        padding-bottom: 1rem;
        
        /* Scrollbar customizada */
        scrollbar-width: thin;
        scrollbar-color: #cbd5e1 #f1f5f9;
    }
    
    /* Webkit scrollbar (Chrome, Safari) */
    .galeria-container::-webkit-scrollbar {
        height: 8px;
    }
    
    .galeria-container::-webkit-scrollbar-track {
        background: #f1f5f9;
        border-radius: 10px;
    }
    
    .galeria-container::-webkit-scrollbar-thumb {
        background: #cbd5e1;
        border-radius: 10px;
    }
    
    .galeria-container::-webkit-scrollbar-thumb:hover {
        background: #94a3b8;
    }
    
    .galeria-item {
        flex: 0 0 315px; /* Largura fixa */
        scroll-snap-align: start;
        border-radius: 8px;
        overflow: hidden;
        background: #f3f4f6;
    }
    
    .galeria-imagem {
        width: 280px;
        height: 350px; /* Proporção vertical */
        object-fit: cover;
        display: block;
    }
}

/* Mobile pequeno: itens menores */
@media (max-width: 640px) {
    .galeria-item {
        flex: 0 0 315px;
    }
    
    .galeria-imagem {
        width: 220px;
        height: 280px;
    }
}

/* WebP Picture Tag Support (ambos layouts) */
.galeria-item picture {
    display: block;
    width: 100%;
    height: 100%;
}

.galeria-item picture img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}










































/* TIPOGRAFIA BASE */
body {
    font-family: var(--font-body, 'Inter', system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif);
    font-size: 16px;
    line-height: 1.6;
    color: var(--text-primary, #1A1A1A);
}

h1, h2, h3, h4 {
    font-family: var(--font-heading, 'Poppins', system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif);
    font-weight: 700;
    color: var(--text-primary, #1A1A1A);
    margin: 0 0 16px;
}

/* SEÇÃO GENÉRICA (guide-section) */
.guide-section {
    padding: 20px 0;
    max-width: 970px;
    margin: 0 auto;
}
.single-evento-page .guide-section { padding-top: 8px; }
.event-content {
    padding: 0;
    max-width: 728px;
    margin: auto;
}
.event-content p {
    margin-bottom: 20px;
}
  /* primeira não tem borda em cima */
.event-info-block .info-item:first-of-type {
    border-top: none;
}

/* última não tem borda em baixo */
.event-info-block .info-item:last-of-type {
    border-bottom: none;
}
/* ============================================================
   SINGLE EVENTO
   ============================================================ */

/* Título — esquerda, editorial */
.event-hero-example h1.page-title {
    font-family: var(--font-heading);
    font-weight: 900;
    font-size: clamp(1.6rem, 4vw, 2.4rem);
    line-height: 1.1;
    letter-spacing: -.03em;
    color: var(--text-primary);
    text-align: left;
    margin: 0 0 24px;
}

/* Grid: poster à esquerda (maior), info à direita (contida) */
.poster_info {
    display: grid;
    grid-template-columns: 1fr 390px;
    gap: 18px;
    align-items: start;
}

/* Poster */
.poster-example {
    border-radius: 16px;
    overflow: hidden;
    background: var(--gray-light);
    width: 100%;
}
.poster-example img {
    display: block;
    width: 100%;
    height: auto;
    border-radius: 16px;
}
.poster-example.is-placeholder { display: none; }

/* Card de info — limpo, fixo à direita */
.event-info-block {
    background: var(--white);
    border: 1.5px solid var(--border-color);
    border-radius: 16px;
    padding: 20px 20px;
    width: 100%;
    position: sticky;
    top: 20px;
}

/* Botão guardar — integrado como item, no fundo do card */
.av-event-actions {
    margin-top: 4px;
    padding-top: 12px;
    border-top: 1px solid var(--item-border);
    display: flex;
    flex-direction: column;
    gap: 8px;
}
.av-fav-single {
    display: flex;
    align-items: center;
    gap: 10px;
    background: none;
    border: none;
    cursor: pointer;
    padding: 6px 0;
    font-family: var(--font-heading);
    font-size: 13px;
    font-weight: 700;
    color: var(--text-secondary);
    transition: color .15s;
    width: 100%;
    text-align: left;
}
.av-fav-single:hover { color: #E8357A; }
.av-fav-single.active { color: #E8357A; }
.av-fav-single svg { flex-shrink: 0; }

.av-event-actions-secondary {
    display: flex;
    gap: 12px;
}
.av-edit-btn {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    font-size: 12px;
    font-weight: 600;
    color: var(--text-secondary);
    text-decoration: none;
    transition: color .15s;
}
.av-edit-btn:hover { color: var(--text-primary); }

/* Mobile */
@media (max-width: 1100px) {
    .poster_info {
        grid-template-columns: 1fr;
        gap: 10px;
    }
    .poster-example {
        max-width: 560px;
    }
    .event-info-block {
        position: static;
        border-radius: 12px;
        padding: 16px 18px;
    }
    .event-hero-example h1.page-title {
        font-size: clamp(1.4rem, 6vw, 2rem);
        margin-bottom: 16px;
    }
}
 
/* Itens de informação */
.info-item {
    padding: 10px 0;
    border-top: 1px solid var(--border-color);
}
.info-item:last-of-type { border-bottom: 1px solid var(--border-color); }
.info-label {
    font-size: 10px;
    font-weight: 700;
    text-transform: uppercase;
    color: var(--text-tertiary);
    margin-bottom: 3px;
    letter-spacing: 0.5px;
}
.info-value {
    font-family: var(--font-body);
    font-weight: 600;
    font-size: 14px;
    color: var(--text-primary);
    line-height: 1.4;
}
.info-value--light {
    font-weight: 400;
    font-size: 13px;
    line-height: 1.5;
}
.info-value.free { color: #00A86B; }

/* Banner compacto in-content */
.av-banner-ad { margin: 16px auto; max-width: 970px; }
.av-banner-ad__inner {
    background: var(--gray-light);
    border: 1.5px dashed var(--border-color);
    border-radius: 10px;
    padding: 18px 20px;
    text-align: center;
    color: var(--text-tertiary);
    font-size: 12px;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: .06em;
    max-width: 728px;
    margin: 0 auto;
}
.av-banner-ad__inner span { display: block; font-size: 10px; margin-bottom: 2px; }
@media(max-width:768px){
    .av-banner-ad { margin: 16px 0; }
    .av-banner-ad__inner { max-width: 100%; }
}

.guide-section h3 { font-family: var(--font-heading); font-weight: 700; font-size: 24px; }
.wp-block-list { margin-left: 30px; margin-bottom: 35px; }
/* ── Subcategorias inline no cabeçalho de categoria ── */
.av-hdr__subcats{display:flex;flex-wrap:wrap;align-items:center;gap:6px;margin-top:12px;padding-top:12px;border-top:1px solid var(--item-border);border-bottom:1px solid var(--item-border);background:var(--white);transition:box-shadow .2s,padding .2s}
.av-hdr__subcats.is-stuck{box-shadow:0 2px 8px rgba(0,0,0,.06);padding-bottom:12px}
.av-hdr__subcat-sep{font-size:12px;color:var(--text-tertiary);user-select:none}
.av-hdr__subcat-link{font-size:13px;font-weight:600;color:var(--text-secondary);text-decoration:none;transition:color .15s}
.av-hdr__subcat-link:hover{color:var(--text-primary)}
.av-hdr__subcat-link.active{color:var(--s-cor, var(--text-primary));font-weight:700}
.av-hdr__subcat-all{font-size:13px;font-weight:700;color:var(--text-primary)}
.av-hdr__subcat-back{font-size:13px;font-weight:600;color:var(--text-secondary);text-decoration:none;transition:color .15s}
.av-hdr__subcat-back:hover{color:var(--text-primary)}

/* ============================================================
   TEMPLATE CATEGORIA — av-cat-archive
   ============================================================ */

/* Bloco de intenção */
.av-cat-intencao{margin-bottom:24px}

.av-cat-intencao__subcats{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:12px}

.av-cat-btn{
    padding:8px 18px;
    border-radius:20px;
    border:1.5px solid var(--border-color);
    background:var(--white);
    font-family:var(--font-heading);
    font-size:13px;
    font-weight:700;
    color:var(--text-secondary);
    cursor:pointer;
    transition:all .15s;
    white-space:nowrap;
}
.av-cat-btn:hover{border-color:var(--text-primary);color:var(--text-primary)}
.av-cat-btn.active{background:var(--text-primary);border-color:var(--text-primary);color:var(--white)}

.av-cat-intencao__quando{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:4px}

.av-cat-btn--back{color:var(--text-secondary);border-color:transparent;background:transparent;padding-left:4px}
.av-cat-btn--back:hover{background:transparent;border-color:transparent;color:var(--text-primary)}

.av-quando-btn{
    padding:8px 18px;
    border-radius:20px;
    border:1.5px solid var(--border-color);
    background:var(--white);
    font-size:13px;
    font-weight:600;
    color:var(--text-secondary);
    cursor:pointer;
    transition:all .15s;
    white-space:nowrap;
    font-family:var(--font-heading);
    text-decoration:none;
    display:inline-block;
}
.av-quando-btn:hover{border-color:var(--text-primary);color:var(--text-primary)}
.av-quando-btn.active{background:var(--yellow-primary);border-color:var(--yellow-primary);color:#000;font-weight:700}

/* Meta (contador) */
.av-cat-feed-meta{
    font-size:12px;
    color:var(--text-tertiary);
    font-weight:600;
    margin-bottom:12px;
    min-height:18px;
}

/* Feed com transição */
#av-feed{transition:opacity .2s ease}

/* Dark mode */




/* Mobile */
@media(max-width:768px){
    .av-cat-intencao__quando{
        flex-wrap:nowrap;
        overflow-x:auto;
        -webkit-overflow-scrolling:touch;
        scrollbar-width:none;
        margin-left:-16px;
        margin-right:-16px;
        padding-bottom:4px;
    }
    .av-cat-intencao__quando::-webkit-scrollbar{display:none}
    .av-quando-btn{flex-shrink:0}

    .av-hdr__subcats{
        flex-wrap:nowrap;
        overflow-x:auto;
        -webkit-overflow-scrolling:touch;
        scrollbar-width:none;
        padding-bottom:4px;
        padding-left:16px;
        padding-right:16px;
        margin-left:0;
        margin-right:0;
    }
    .av-hdr__subcats::-webkit-scrollbar{display:none}
    .av-hdr__subcat-link,
    .av-hdr__subcat-back,
    .av-hdr__subcat-all,
    .av-hdr__subcat-sep{flex-shrink:0}
}

/* ============================================================
   CARD DE EVENTO — av-card
   ============================================================ */

.av-archive{max-width:100%;margin:0 auto;padding:0 0 40px}

/* Cabeçalho do arquivo */
.av-archive__header{padding:20px 0 16px}
.av-archive__title{font-size:1.4rem;font-weight:700;color:var(--text-primary);margin-bottom:6px}
.av-archive__title span{color:var(--text-secondary);font-weight:400}
.av-archive__desc{font-size:14px;color:var(--text-secondary);margin-bottom:8px;line-height:1.6}
.av-archive__count{font-size:12px;color:var(--text-tertiary);font-weight:600}
.av-archive__back{font-size:13px;color:var(--text-secondary);text-decoration:none;display:inline-block;margin-bottom:6px}
.av-archive__back:hover{color:var(--text-primary)}

/* Filtros */
.av-archive__filters{display:flex;flex-wrap:wrap;gap:6px;padding:0 0 16px;border-bottom:1px solid var(--border-color);margin-bottom:8px}
.av-filter-btn{padding:6px 14px;border-radius:20px;border:1.5px solid var(--border-color);background:var(--white);font-size:13px;font-weight:600;color:var(--text-secondary);text-decoration:none;transition:all .15s;cursor:pointer;white-space:nowrap}
.av-filter-btn:hover{border-color:var(--text-primary);color:var(--text-primary)}
.av-filter-btn--active{background:var(--text-primary);border-color:var(--text-primary);color:var(--white)}

/* Feed */
.av-feed{}

.ev-card{border-bottom:1px solid var(--item-border);position:relative}
.ev-card:last-child{border-bottom:none}
.ev-card__link{display:flex;gap:14px;padding:16px 0;align-items:flex-start;text-decoration:none;color:inherit}
.ev-card__link:hover .ev-card__title{color:#C8A000}
.ev-card__img-link{display:block;flex-shrink:0;text-decoration:none}

/* Botão favorito — posicionado no canto do card */
.ev-fav-btn{position:absolute;top:16px;right:0;background:none;border:none;cursor:pointer;padding:4px;color:var(--text-tertiary);line-height:1;transition:color .15s;flex-shrink:0}
.ev-fav-btn:hover{color:#E53935}
.ev-fav-btn--active{color:#E53935}

/* Imagem */
.ev-card__img{width:100px;border-radius:10px;overflow:hidden;background:var(--gray-light)}
.ev-card__img img{width:100%;height:auto;display:block;border-radius:10px}
.ev-card__img--empty{width:100px;min-height:100px;display:flex;align-items:center;justify-content:center;color:var(--text-tertiary);border:1px dashed var(--border-color);border-radius:10px}

/* Corpo */
.ev-card__body{flex:1;min-width:0;display:flex;flex-direction:column;gap:5px}
.ev-card__top{display:flex;align-items:flex-start;justify-content:space-between;gap:6px}
.ev-card__badges{display:flex;flex-wrap:wrap;gap:5px;align-items:center}

/* Pill de categoria */
.ev-cat-pill{font-size:11px;font-weight:700;padding:2px 8px;border-radius:20px;white-space:nowrap}
.ev-recom-badge{font-size:10px;font-weight:700;color:var(--badge-recom-color);background:var(--badge-recom-bg);padding:2px 7px;border-radius:20px;border:1px solid var(--badge-recom-border)}

/* Botão favorito */
.ev-fav-btn{background:none;border:none;cursor:pointer;padding:2px;color:var(--text-tertiary);line-height:1;transition:color .15s;flex-shrink:0}
.ev-fav-btn:hover{color:#E53935}
.ev-fav-btn--active{color:#E53935}

/* Título */
.ev-card__title{font-size:14px;font-weight:700;color:var(--text-primary);line-height:1.35;transition:color .15s}

/* Local */
.ev-card__local{font-size:12px;color:var(--text-secondary);display:flex;align-items:center;gap:4px}

/* Excerpt */
.ev-card__excerpt{font-size:12px;color:var(--text-secondary);line-height:1.5;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}

/* Footer */
.ev-card__footer{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-top:2px}
.ev-card__date{font-size:12px;color:var(--text-secondary);font-weight:500;display:flex;align-items:center;gap:4px}

/* Badges entrada */
.ev-entrada{font-size:11px;font-weight:700;padding:2px 8px;border-radius:20px;white-space:nowrap}
.ev-entrada--gratis{color:var(--badge-free-color);background:var(--badge-free-bg)}
.ev-entrada--donativo{color:var(--badge-donation-color);background:var(--badge-donation-bg)}
.ev-entrada--pago{color:var(--badge-paid-color);background:var(--badge-paid-bg)}

/* Load more */
.av-loadmore-wrap{padding:20px 0;text-align:center}
.av-loadmore-btn{padding:10px 28px;border-radius:20px;border:1.5px solid var(--text-primary);background:var(--white);color:var(--text-primary);font-size:14px;font-weight:700;cursor:pointer;transition:all .15s}
.av-loadmore-btn:hover{background:var(--text-primary);color:var(--white)}
.av-loadmore-btn:disabled{opacity:.5;cursor:default}

/* Vazio */
.av-empty{display:flex;flex-direction:column;align-items:center;gap:10px;padding:48px 0;text-align:center;color:var(--text-tertiary)}
.av-empty p{font-size:14px;color:var(--text-tertiary);margin:0}
.av-empty__link{font-size:13px;font-weight:600;color:var(--text-secondary);text-decoration:none}
.av-empty__link:hover{color:var(--text-primary)}

/* Card responsive — vertical no mobile */
@media(max-width:600px){
    .av-card-wrap{flex-direction:column;align-items:stretch !important}
    .av-card-img{width:100% !important;border-radius:10px 10px 0 0 !important}
    .av-card-img img{width:100%;height:auto;display:block;border-radius:10px 10px 0 0 !important}
    .av-card-body{padding:10px 0 4px 0 !important}
}

/* ev-card (feed lista) — imagem menor em ecrã pequeno */
@media(max-width:480px){
    .ev-card__img{width:72px}
    .ev-card__img--empty{width:72px;min-height:72px}
    .ev-card__title{font-size:13px}
    .ev-card__excerpt{display:none}
}

/* ============================================================
   TEMPLATE CONCELHO
   ============================================================ */

.av-concelho{}
.av-archive{max-width:100%;padding:0 0 40px}

/* ── Cabeçalho editorial ── */
.av-hdr{padding:20px 0 0;border-bottom:2px solid var(--text-primary);margin-bottom:32px}
.av-hdr--single{border-bottom:none;margin-bottom:0;padding-bottom:24px}
.av-hdr__eyebrow{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.12em;color:var(--text-tertiary);margin-bottom:8px}
.av-hdr__title{font-size:clamp(2rem,5vw,2.8rem);font-weight:900;line-height:.95;letter-spacing:-.04em;color:var(--text-primary);margin-bottom:8px;display:block;font-family:var(--font-heading)}
.av-hdr__mark{display:inline-flex;align-items:center;justify-content:center;background:#FFD700;color:#111;font-size:clamp(1.2rem,3vw,1.7rem);font-weight:900;width:clamp(1.6rem,4vw,2.2rem);height:clamp(1.6rem,4vw,2.2rem);border-radius:6px;border:2px solid #111;line-height:1;flex-shrink:0}
.av-hdr__count{display:none}
.av-hdr__section-title{font-size:13px;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:var(--text-tertiary);margin-bottom:12px}
.av-page-pretitle{padding:20px 0 16px}
.av-page-pretitle--single{padding-bottom:8px}
@media(max-width:768px){
    .av-page-pretitle{padding:16px 16px 12px}
}
.av-page-pretitle__eyebrow{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.12em;color:var(--text-tertiary);margin-bottom:6px}
.av-page-pretitle__title{font-size:clamp(2rem,5vw,2.8rem);font-weight:900;line-height:.95;letter-spacing:-.04em;color:var(--text-primary);display:flex;align-items:center;gap:0;font-family:var(--font-heading)}
.av-single-title{font-family:var(--font-heading);font-weight:900;font-size:clamp(2rem,5vw,2.8rem);line-height:.95;letter-spacing:-.04em;color:var(--text-primary);margin:0}
.av-hdr__dot{display:inline;color:#FFD700;-webkit-text-stroke:1.5px var(--text-primary)}

.av-col__section-title{font-size:18px;font-weight:900;color:var(--text-primary);letter-spacing:-.02em;margin-bottom:14px;font-family:var(--font-heading)}

/* ── 4 colunas ── */
.av-cols{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-bottom:32px;overflow-x:auto;width:100%;scrollbar-width:thin;scrollbar-color:#D0D0D0 transparent}
.av-cols::-webkit-scrollbar{height:4px}
.av-cols::-webkit-scrollbar-track{background:transparent}
.av-cols::-webkit-scrollbar-thumb{background:#D0D0D0;border-radius:4px}
.av-col{border:1.5px solid var(--border-color);border-radius:14px;overflow:hidden;display:flex;flex-direction:column;min-height:240px;min-width:200px}
.av-col__head{background:#FFD700;padding:14px 16px;flex-shrink:0}
.av-col__label{font-size:9px;font-weight:800;text-transform:uppercase;letter-spacing:.1em;color:rgba(0,0,0,.45);margin-bottom:4px}
.av-col__date{font-size:16px;font-weight:800;color:#111;line-height:1.1;font-family:var(--font-heading)}
.av-col__sep{display:none}
.av-col__body{padding:14px 16px;display:flex;flex-direction:column;flex:1;gap:0}
.av-col__list{display:flex;flex-direction:column;gap:0;flex:1}
.av-col-item{text-decoration:none;display:block;padding:8px;margin:0 -8px;border-radius:6px;border-bottom:1px solid var(--item-border);transition:background .12s}
.av-col-item:last-of-type{border-bottom:none}
.av-col-item:hover{background:var(--hover-bg)}
.av-col-item__title{font-size:12px;font-weight:700;color:var(--text-primary);line-height:1.3}
.av-col-item__meta{font-size:11px;color:var(--text-tertiary);display:flex;align-items:center;gap:5px;margin-top:2px}
.av-col-item__arrow{display:none}
.av-col-item__content{width:100%}
.av-col-item__inner{display:block}
.av-col__empty{font-size:12px;color:var(--text-tertiary);flex:1;display:flex;align-items:center;padding:8px 0}
.av-col__link{font-size:11px;font-weight:700;color:var(--text-secondary);text-decoration:none;display:flex;align-items:center;justify-content:space-between;padding-top:10px;border-top:1px solid var(--border-color);margin-top:auto;flex-shrink:0;transition:color .15s}
.av-col__link:hover{color:var(--text-primary)}

/* Responsive — columns scroll horizontally on mobile */
@media(max-width:768px){
    .av-cols{
        display:flex;
        flex-wrap:nowrap;
        overflow-x:auto;
        gap:10px;
        padding-bottom:8px;
        margin-left:-16px;
        margin-right:-16px;
        -webkit-overflow-scrolling:touch;
        scrollbar-width:none;
        scroll-snap-type:x mandatory;
        cursor:grab;
    }
    .av-cols::-webkit-scrollbar{display:none}
    .av-col{
        flex:0 0 78vw;
        max-width:250px;
        scroll-snap-align:start;
        border-right:none !important;
        border-top:none !important;
    }
    .av-hdr__section-title{font-size:12px}
}
@media(max-width:480px){
    .av-section{ max-width: 100%; }
    .av-col{flex:0 0 85vw;max-width:233.5px}
    .av-hdr{padding:16px 0 0;}
}

/* ── Secções de categoria — Opção D ── */
.av-section{margin:0 0 44px}
.av-section__head{display:flex;align-items:center;gap:12px;margin-bottom:14px}
.av-section__accent{display:none}
.av-section__title{font-size:22px;font-weight:900;color:var(--text-primary);letter-spacing:-.02em;font-family:var(--font-heading);white-space:nowrap;flex-shrink:0;margin-bottom:2px}
.av-section__title-link{color:inherit;text-decoration:none;transition:color .15s;white-space:normal;line-height:1.15;display:block}
.av-section__title-link:hover{color:var(--cat-cor)}
.av-section__divider{flex:1;height:3px;min-width:20px;border-radius:2px;flex-shrink:0}
.av-section__dot{display:none}
.av-section__link{font-size:11px;font-weight:700;color:var(--text-secondary);text-decoration:none;white-space:nowrap;flex-shrink:0;border:1.5px solid var(--border-color);border-radius:20px;padding:5px 12px;transition:all .15s}
.av-section__link:hover{border-color:var(--text-primary);color:var(--text-primary)}
/* Mobile: título quebra linha, divider some, botão ver todos some */
@media(max-width:768px){
    .av-section__head{flex-wrap:wrap;gap:8px;border-bottom:2px solid var(--cat-cor);padding-bottom:10px}
    .av-section__title{white-space:normal;font-size:18px;flex-basis:100%;margin-bottom:0}
    .av-section__divider{display:none}
    .av-section__link{display:none}
}

/* Card "Ver todos" no fim do scroll — só mobile */
.av-card-ver-todos{
    display:none;
    flex-shrink:0;
    width:140px;
    border-radius:12px;
    border:none;
    background:transparent;
    text-decoration:none;
    align-items:center;
    justify-content:center;
    scroll-snap-align:start;
}
.av-card-ver-todos__text{
    font-family:var(--font-heading);
    font-size:13px;font-weight:800;
    color:var(--text-secondary);
    text-align:center;
    line-height:1.4;
    padding:10px 16px;
    border:1.5px solid var(--border-color);
    border-radius:20px;
    transition:all .15s;
}
.av-card-ver-todos:hover .av-card-ver-todos__text{
    border-color:var(--cat-cor);
    color:var(--cat-cor);
}
@media(max-width:768px){
    .av-card-ver-todos{display:flex}
}
.av-section__subcats{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:14px}
.av-section__subcat{font-size:11px;font-weight:700;padding:4px 10px;border-radius:6px;text-decoration:none;border:1.5px solid var(--border-color);color:var(--text-secondary);transition:all .15s;white-space:nowrap}
.av-section__subcat:hover{border-color:var(--cat-cor);color:var(--cat-cor);opacity:1}

/* ── Scroll horizontal ── */
.av-hscroll{display:flex;gap:16px;overflow-x:auto;padding-bottom:8px;-webkit-overflow-scrolling:touch;scroll-snap-type:x mandatory;scrollbar-width:thin;scrollbar-color:#D0D0D0 transparent}
.av-hscroll::-webkit-scrollbar{height:4px}
.av-hscroll::-webkit-scrollbar-track{background:transparent}
.av-hscroll::-webkit-scrollbar-thumb{background:#D0D0D0;border-radius:4px}
.av-hscroll::-webkit-scrollbar-thumb:hover{background:#aaa}
@media(max-width:768px){.av-hscroll{scrollbar-width:none}.av-hscroll::-webkit-scrollbar{display:none}}

/* ── Card mini ── */
.av-card-mini{display:block;flex-shrink:0;width:230px;border-radius:12px;border:1.5px solid var(--border-color);background:var(--white);transition:box-shadow .15s;scroll-snap-align:start}
.av-card-mini:hover{box-shadow:0 4px 14px rgba(0,0,0,.08)}

/* Desktop 900-1400px: 3 colunas */
@media(min-width:900px){
    .av-hscroll{overflow-x:visible;flex-wrap:nowrap;padding-bottom:0;scroll-snap-type:none}
    .av-card-mini{width:calc((100% - 32px) / 3);flex-shrink:1}
    .av-card-mini__img-wrap{height:auto !important;aspect-ratio:2/3}
    .av-hscroll .av-card-mini:nth-child(n+4){display:none}
}
/* Desktop >1400px: 4 colunas */
@media(min-width:1401px){
    .av-card-mini{width:calc((100% - 48px) / 4)}
    .av-hscroll .av-card-mini:nth-child(n+4){display:block}
    .av-hscroll .av-card-mini:nth-child(n+5){display:none}
}
/* Mobile: scroll horizontal */
@media(max-width:899px){
    .av-hscroll{overflow-x:auto;scroll-snap-type:x mandatory}
    .av-card-mini{width:230px;flex-shrink:0}
    .av-hscroll .av-card-mini:nth-child(n+5){display:block}
}
.av-card-mini__img-wrap{position:relative;width:100%;height:352px;overflow:hidden;border-radius:12px 12px 0 0}
.av-card-mini__img-link{display:block;width:100%;height:100%}
.av-card-mini__img-bg{position:absolute;top:0;left:0;width:100%;height:100%;background-size:cover;background-position:center;filter:blur(24px) brightness(.85) saturate(1.3);transform:scale(1.15);z-index:0}
.av-card-mini__img-main{position:absolute !important;top:0 !important;left:0 !important;width:100% !important;height:100% !important;object-fit:contain !important;z-index:1;display:block !important;max-width:none !important}
.av-card-mini__body{padding:10px 10px 12px;display:flex;flex-direction:column;gap:4px}
.av-card-mini__title{font-size:12px;font-weight:700;color:var(--text-primary);line-height:1.3;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;text-decoration:none}
.av-card-mini__title:hover{color:var(--text-primary)}
.av-card-mini__footer{display:flex;align-items:center;justify-content:space-between;gap:4px}
.av-card-mini__date{font-size:11px;color:var(--text-tertiary);font-weight:600}

/* ── Divisor "Toda a agenda" ── */
.av-divider-label{display:flex;align-items:center;gap:14px;margin:8px 0 24px}
.av-divider-label span{font-size:14px;font-weight:800;color:var(--text-primary);white-space:nowrap;letter-spacing:-.01em}
.av-divider-label::after{content:'';flex:1;height:2px;background:var(--text-primary)}

@media(max-width:480px){
    .av-hdr__title{font-size:2rem}
}
/* ── Card mini badges ── */

.av-mini-badge{font-size:10px;font-weight:700;padding:2px 7px;border-radius:4px}
.av-mini-badge--free{background:var(--badge-free-bg);color:var(--badge-free-color)}
.av-mini-badge--pay{background:var(--badge-paid-bg);color:var(--badge-paid-color)}
.av-mini-badge--don{background:var(--badge-donation-bg);color:var(--badge-donation-color)}
.av-mini-badge--rec{position:absolute;top:10px;left:10px;z-index:2;background:var(--yellow-primary);color:#111;font-size:10px;font-weight:900;font-family:var(--font-heading);letter-spacing:.08em;text-transform:uppercase;padding:5px 10px 5px 8px;border-radius:4px;display:inline-flex;align-items:center;gap:6px;line-height:1}
.av-mini-badge--rec svg{flex-shrink:0}

/* ── Scroll wrap com fade à direita ── */
.av-hscroll-wrap{position:relative;width:100%;overflow:visible}
/* fade removed */
@media(max-width:600px){
    .av-card-mini{width:200px;scroll-snap-align:start}
    .av-card-mini__img-wrap{height:282px}
}
/* ============================================================
   SIDEBAR WIDGETS CONTEXTUAIS
   ============================================================ */

/* Widget base */
.sidebar-widget{margin-bottom:20px;background:var(--white);border:1.5px solid var(--border-color);border-radius:14px;overflow:hidden}
.sidebar-widget__title{font-size:12px;font-weight:800;color:var(--text-primary);padding:12px 14px;border-bottom:1px solid var(--border-color);text-transform:uppercase;letter-spacing:.06em}

/* Concelhos do distrito */


/* Populares / Mais vistos */
.sidebar-vistos{display:flex;flex-direction:column}
.sidebar-visto-item{display:flex;gap:10px;padding:10px 14px;border-bottom:1px solid var(--item-border);text-decoration:none;transition:background .12s;align-items:flex-start}
.sidebar-visto-item:last-child{border-bottom:none}
.sidebar-visto-item:hover{background:var(--hover-bg)}
.sidebar-visto-item__img{width:44px;height:56px;flex-shrink:0;border-radius:6px;overflow:hidden;background:var(--gray-medium)}
.sidebar-visto-item__img img{width:100%;height:100%;object-fit:cover;display:block}
.sidebar-visto-item__body{flex:1;min-width:0;display:flex;flex-direction:column;gap:3px}
.sidebar-visto-item__title{font-size:12px;font-weight:700;color:var(--text-primary);line-height:1.3;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.sidebar-visto-item__badge{font-size:10px;font-weight:700;padding:1px 6px;border-radius:4px;width:fit-content}
.sidebar-visto-item__badge--free{background:var(--badge-free-bg);color:var(--badge-free-color)}
.sidebar-visto-item__badge--pay{background:var(--badge-paid-bg);color:var(--badge-paid-color)}

/* Sidebar concelhos — pill style */
.sidebar-widget--concelhos{margin:4px 0 12px;padding:0 8px;border-top:none}
.sidebar-widget__head-a{margin-bottom:10px}
.sidebar-widget__head-a-title{font-size:10px;font-weight:800;text-transform:uppercase;letter-spacing:.08em;color:var(--text-tertiary)}
.sidebar-widget__head-a-sub{font-size:10px;color:var(--text-tertiary)}
.sidebar-concelhos{display:flex;flex-wrap:wrap;gap:6px;max-height:116px;overflow-y:auto;scrollbar-width:none}
.sidebar-concelhos::-webkit-scrollbar{display:none}
.sidebar-concelho-link{display:inline-flex;align-items:center;padding:12px 17px;margin-bottom:6px;border-radius:20px;text-decoration:none;transition:all .15s;background:var(--pill-bg)}
.sidebar-concelho-link:hover{background:var(--pill-bg-hover)}
.sidebar-concelho-link.active{background:#FFD700}
.sidebar-concelho-link__name{font-size:12px;font-weight:600;color:var(--text-secondary);line-height:1}
.sidebar-concelho-link__count{display:none}
.sidebar-concelho-link.active .sidebar-concelho-link__name{color:#111;font-weight:700}

/* ── Subcategorias na sidebar esquerda ── */
.sidebar-subcats-left{padding:16px 0 8px;border-top:1px solid var(--item-border);margin-bottom:4px}
.sidebar-subcats-left__title{font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:.08em;color:var(--text-secondary);padding-left:11px;margin-bottom:10px}
.sidebar-subcats-left__list{display:flex;flex-direction:column;gap:2px}
.sidebar-subcat-link{display:block;padding:7px 12px;border-radius:8px;font-size:14px;font-weight:600;color:var(--text-secondary);text-decoration:none;transition:all .15s}
.sidebar-subcat-link:hover{background:var(--hover-bg);color:var(--text-primary)}
.sidebar-subcat-link.active{color:var(--subcat-cor, var(--text-primary));font-weight:700}

/* ── Subcategorias na sidebar (template categoria) ── */
.sidebar-subcats{}
.sidebar-subcats__list{padding:8px 14px 12px;display:flex;flex-direction:column;gap:2px}
.sidebar-subcat-link{display:block;padding:7px 8px;border-radius:8px;font-size:13px;font-weight:600;color:var(--text-secondary);text-decoration:none;transition:all .15s}
.sidebar-subcat-link:hover{background:var(--hover-bg);color:var(--text-primary)}
.sidebar-subcat-link.active{color:var(--subcat-cor, var(--text-primary));font-weight:700;background:transparent}

/* ── Trending / Em alta ── */
.sidebar-widget--trending{margin:4px 0 12px;padding-top:14px;border-top:1px solid var(--item-border)}
.sidebar-trending__head{display:flex;align-items:center;gap:6px;margin-bottom:10px}
.sidebar-trending__icon{font-size:12px;line-height:1}
.sidebar-trending__title{font-size:10px;font-weight:800;text-transform:uppercase;letter-spacing:.08em;color:var(--text-tertiary);flex:1}
.sidebar-trending__sub{font-size:10px;color:var(--text-tertiary)}
.sidebar-trend-item{display:flex;align-items:center;gap:0;padding:10px 8px;margin:0 -8px;border-radius:8px;text-decoration:none;transition:background .12s}
.sidebar-trend-item:hover{background:var(--hover-bg)}
.sidebar-trend-item:hover .sidebar-trend-item__title{color:var(--text-primary)}
.sidebar-trend-item__rank{font-size:28px;font-weight:600;color:var(--text-tertiary);width:28px;flex-shrink:0;text-align:center;line-height:1;letter-spacing:-.02em;font-family:'Poppins',sans-serif;margin-right:5px}
.sidebar-trend-item__body{flex:1;min-width:0}
.sidebar-trend-item__title{font-size:13px;font-weight:700;color:var(--text-primary);line-height:1.35;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.sidebar-trend-item__meta{font-size:11px;color:var(--text-tertiary);margin-top:3px;display:flex;align-items:center;gap:5px}
.sidebar-trend-item__views{font-weight:700;color:#E8720C}

/* ============================================================
   BLOCO INTENÇÃO — O que acontece
   ============================================================ */
.av-intencao{margin-bottom:32px}
.av-intencao__question{font-size:18px;font-weight:900;color:var(--text-primary);letter-spacing:-.02em;margin:0 0 16px;font-family:var(--font-heading)}

/* Botões */
.av-intencao__btns{display:grid;grid-template-columns:repeat(5,1fr);gap:10px;margin-bottom:24px}
.av-intencao__btn{display:flex;flex-direction:column;align-items:flex-start;padding:14px 16px;border-radius:12px;border:1.5px solid var(--border-color);text-decoration:none;transition:all .15s;background:var(--white);gap:3px}
.av-intencao__btn:hover{border-color:var(--text-primary)}
.av-intencao__btn.active{background:#FFD700;border-color:#FFD700}
.av-intencao__btn-label{font-size:13px;font-weight:800;color:var(--text-primary);letter-spacing:normal;text-transform:none}
.av-intencao__btn.active .av-intencao__btn-label{color:#111}
.av-intencao__btn-date{font-size:12px;font-weight:500;color:var(--text-tertiary);line-height:1.1}
.av-intencao__btn.active .av-intencao__btn-date{color:rgba(0,0,0,.5)}
.av-intencao__btn-count{display:none}

@media(max-width:768px){
    .av-intencao__btns{
        display:flex;
        flex-wrap:nowrap;
        overflow-x:auto;
        -webkit-overflow-scrolling:touch;
        scrollbar-width:none;
        gap:8px;
        margin-left:-16px;
        margin-right:-16px;
        padding-bottom:4px;
        margin-bottom:16px;
    }
    .av-intencao__btns::-webkit-scrollbar{display:none}
    .av-intencao__btn{
        flex:0 0 140px;
        min-width:140px;
        scroll-snap-align:start;
        padding:12px 14px;
    }
    .av-intencao{padding:0}
    .av-intencao__btn-date{font-size:13px}
    .av-int-item{padding:11px 8px}
}
.av-intencao__btn-count{font-size:11px;color:var(--text-tertiary);margin-top:1px}
.av-intencao__btn.active .av-intencao__btn-count{color:rgba(0,0,0,.4)}

/* Destaque — ligado visualmente ao botão activo */
.av-intencao__destaque{
    margin-top:8px;
    border-radius:0 0 14px 14px;
    border:1.5px solid var(--border-color);
    border-top:3px solid #FFD700;
    overflow:hidden;
    background:var(--white);
}
.av-intencao__destaque-head{
    display:flex;
    align-items:center;
    justify-content:space-between;
    padding:10px 16px 8px;
    border-bottom:1px solid var(--item-border);
}
.av-intencao__destaque-title{
    font-size:10px;
    font-weight:800;
    text-transform:uppercase;
    letter-spacing:.1em;
    color:var(--text-tertiary);
}
.av-intencao__destaque-link{
    font-size:12px;
    font-weight:700;
    color:var(--text-primary);
    text-decoration:none;
    transition:opacity .15s;
}
.av-intencao__destaque-link:hover{opacity:.55}

/* Lista de eventos */
.av-intencao__list{display:none;flex-direction:column;padding:0 8px}
.av-intencao__list.active{display:flex}

/* Items */
.av-int-item{display:flex;align-items:center;gap:12px;padding:12px 8px;border-radius:8px;text-decoration:none;transition:background .12s;border-bottom:1px solid var(--item-border)}
.av-int-item:last-of-type{border-bottom:none}
.av-int-item:hover{background:var(--hover-bg)}
.av-int-item__body{flex:1;min-width:0}
.av-int-item__title{font-size:13px;font-weight:700;color:var(--text-primary);line-height:1.3;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.av-int-item__meta{font-size:11px;color:var(--text-tertiary);display:flex;align-items:center;gap:6px;margin-top:3px;flex-wrap:wrap}
.av-int-item__arrow{font-size:18px;color:var(--border-color);flex-shrink:0;transition:all .12s}
.av-int-item:hover .av-int-item__arrow{color:var(--text-tertiary);transform:translateX(2px)}
.av-int-badge{font-size:10px;font-weight:700;padding:2px 6px;border-radius:4px}
.av-int-badge--free{background:var(--badge-free-bg);color:var(--badge-free-color)}
.av-int-badge--pay{background:var(--badge-paid-bg);color:var(--badge-paid-color)}

/* ── Secção de eventos do distrito ── */
.av-distrito-section{margin-top:24px;padding-top:20px;border-top:1px solid var(--item-border)}
.av-distrito-section__head{display:flex;align-items:center;justify-content:space-between;margin-bottom:14px}
.av-distrito-section__title{font-size:13px;font-weight:800;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.06em;margin:0}
.av-distrito-section__link{font-size:12px;font-weight:700;color:var(--text-secondary);text-decoration:none;transition:color .15s;white-space:nowrap}
.av-distrito-section__link:hover{color:var(--text-primary)}

/* ── Related grid — 3 colunas, 1 linha, scroll mobile ── */
.av-related-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 12px;
}
@media(max-width: 768px) {
    .av-related-grid {
        display: flex;
        flex-wrap: nowrap;
        overflow-x: auto;
        gap: 10px;
        scrollbar-width: none;
        padding-bottom: 4px;
    }
    .av-related-grid::-webkit-scrollbar { display: none; }
    .av-related-grid .home-visto-card { flex: 0 0 220px; }
}

.av-distrito-list{display:grid;grid-template-columns:1fr 1fr;gap:0}

.av-distrito-item{display:flex;align-items:center;padding:10px 8px;margin:0;border-radius:8px;text-decoration:none;transition:background .12s;border-bottom:1px solid var(--item-border)}
.av-distrito-item:nth-last-child(-n+2){border-bottom:none}
.av-distrito-item:hover{background:var(--hover-bg)}
.av-distrito-item__body{flex:1;min-width:0}
.av-distrito-item__title{font-size:13px;font-weight:700;color:var(--text-primary);line-height:1.3;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-bottom:3px}
.av-distrito-item__meta{font-size:11px;color:var(--text-tertiary);display:flex;align-items:center;gap:5px;flex-wrap:wrap}
.av-distrito-item__meta .av-distrito-item__concelho{font-size:11px;font-weight:600;color:var(--text-secondary)}
.av-distrito-item__arrow{font-size:14px;color:var(--border-color);flex-shrink:0;width:32px;text-align:right;transition:transform .12s}
.av-distrito-item:hover .av-distrito-item__arrow{color:var(--text-tertiary);transform:translateX(2px)}

/* Dark mode */


/* Mobile — 1 coluna */
@media(max-width:768px){
    .av-distrito-list{grid-template-columns:1fr}
    .av-distrito-item:nth-last-child(-n+2){border-bottom:1px solid var(--item-border)}
    .av-distrito-item:last-child{border-bottom:none}
}
.av-int-empty{font-size:13px;color:var(--text-tertiary);padding:16px 8px}

/* Dark mode */



/* ============================================================
   STICKY NAV CATEGORIAS
   ============================================================ */
.av-cat-nav{position:fixed;top:0;left:280px;right:360px;z-index:200;background:var(--white);border-bottom:1px solid var(--item-border);opacity:0;pointer-events:none;transform:translateY(-100%);transition:opacity .25s,transform .25s;padding:0 24px}
.av-cat-nav.visible{opacity:1;pointer-events:all;transform:translateY(0)}
.av-cat-nav__inner{display:flex;gap:8px;overflow-x:auto;padding:10px 0;scrollbar-width:none}
.av-cat-nav__inner::-webkit-scrollbar{display:none}
.av-cat-nav__pill{display:inline-flex;align-items:center;padding:6px 14px;border-radius:20px;font-size:12px;font-weight:700;text-decoration:none;white-space:nowrap;transition:all .15s;background:var(--pill-bg);color:var(--text-secondary);flex-shrink:0}
.av-cat-nav__pill:hover{background:var(--cat-cor-soft);color:var(--cat-cor)}
.av-cat-nav__pill.active{background:var(--cat-cor);color:#fff}

@media(max-width:1400px){.av-cat-nav{right:0}}
@media(max-width:768px){
    .av-cat-nav{display:none}
}

/* Nav mobile de categorias — só no mobile */
.av-cat-nav-mobile{display:none}
@media(max-width:768px){
    .av-cat-nav-mobile{
        display:flex;
        gap:8px;
        overflow-x:auto;
        -webkit-overflow-scrolling:touch;
        scrollbar-width:none;
        margin:0 -16px 20px;
        padding:0 0 4px;
    }
    .av-cat-nav-mobile::-webkit-scrollbar{display:none}
    .av-cat-nav-mobile__pill{
        display:inline-flex;
        align-items:center;
        padding:7px 16px;
        border-radius:20px;
        border:1.5px solid var(--cat-cor);
        background:transparent;
        color:var(--cat-cor);
        font-size:13px;
        font-weight:700;
        white-space:nowrap;
        flex-shrink:0;
        text-decoration:none;
        transition:all .15s;
    }
    .av-cat-nav-mobile__pill:hover{
        background:var(--cat-cor);
        color:#fff;
    }
}

/* ── Favorito no card mini ── */
.av-card-mini__fav{position:absolute;top:8px;right:8px;z-index:2;width:32px;height:32px;border-radius:50%;border:none;background:rgba(0,0,0,.25);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all .15s;padding:0}
.av-card-mini__fav:hover{background:rgba(0,0,0,.45);transform:scale(1.1)}
.av-card-mini__fav.active{background:rgba(255,255,255,.9)}
.av-card-mini__fav.active svg{stroke:#E8357A;fill:#E8357A}

/* ============================================================
   BOTTOM SHEET — Registo rápido
   ============================================================ */
.av-auth-overlay{position:fixed;top:0;left:0;width:100vw;height:100vh;background:rgba(0,0,0,0);z-index:999;pointer-events:none;transition:background .3s,opacity .3s;opacity:0}
.av-auth-overlay.active{background:rgba(0,0,0,.45);pointer-events:all;opacity:1}

.av-auth-sheet{position:fixed;bottom:0;left:0;right:0;z-index:1000;background:var(--white);border-radius:20px 20px 0 0;padding:0;transform:translateY(100%);transition:transform .35s cubic-bezier(.32,.72,0,1);max-height:90vh;overflow-y:auto;pointer-events:none}
.av-auth-sheet.active{transform:translateY(0);pointer-events:all}

.av-auth-sheet__handle{width:36px;height:4px;border-radius:2px;background:var(--border-color);margin:12px auto 0}
.av-auth-sheet__inner{padding:20px 24px 40px}
.av-auth-sheet__head{text-align:center;margin-bottom:24px}
.av-auth-sheet__icon{font-size:32px;margin-bottom:10px}
.av-auth-sheet__title{font-size:20px;font-weight:900;color:var(--text-primary);letter-spacing:-.02em;margin-bottom:8px}
.av-auth-sheet__sub{font-size:14px;color:var(--text-secondary);line-height:1.5}

.av-auth-form{display:flex;flex-direction:column;gap:10px}
.av-auth-form input{width:100%;padding:13px 16px;border:1.5px solid var(--border-color);border-radius:10px;font-size:15px;font-family:inherit;outline:none;transition:border .15s;background:var(--white);color:var(--text-primary)}
.av-auth-form input:focus{border-color:var(--sheet-input-focus)}
.av-auth-btn{width:100%;padding:14px;background:var(--sheet-btn-bg);color:var(--sheet-btn-color);border:none;border-radius:10px;font-size:15px;font-weight:700;font-family:inherit;cursor:pointer;transition:opacity .15s;margin-top:4px}
.av-auth-btn:hover{opacity:.85}
.av-auth-btn:disabled{opacity:.5;cursor:not-allowed}

.av-auth-error{background:#FEF2F2;color:#DC2626;padding:10px 14px;border-radius:8px;font-size:13px;font-weight:600}

.av-auth-sheet__footer{text-align:center;font-size:13px;color:var(--text-tertiary);margin-top:20px}
.av-auth-sheet__footer a{color:var(--text-primary);font-weight:700;text-decoration:none}

/* Desktop — modal centrado */
@media(min-width:769px){
    .av-auth-sheet{left:50%;right:auto;transform:translateX(-50%) translateY(20px);width:420px;border-radius:16px;bottom:auto;top:50%;margin-top:-240px;opacity:0;pointer-events:none;transition:transform .25s,opacity .25s}
    .av-auth-sheet.active{transform:translateX(-50%) translateY(0);opacity:1;pointer-events:all}
    .av-auth-sheet__handle{display:none}
}

/* ============================================================
   ÁREA DE UTILIZADOR — Estilos globais (substituem inline styles)
   ============================================================ */

/* ── User bar (comum a dashboard, eventos, favoritos, perfil) ── */
.av-user-bar,.db-user-bar{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:16px 0 20px;border-bottom:1px solid var(--border-color);margin-bottom:24px;flex-wrap:wrap}
.av-user-bar__left,.db-user-bar__identity{display:flex;align-items:center;gap:12px}
.av-user-bar__left img,.db-user-bar__identity img{border-radius:50%;width:48px;height:48px}
.av-user-bar__name,.db-user-bar__name{font-weight:700;font-size:15px;color:var(--text-primary)}
.av-user-bar__role,.db-user-bar__role{font-size:12px;color:var(--text-tertiary);margin-top:2px;text-transform:capitalize}
.av-user-bar__stats{display:flex;gap:24px}
.av-user-bar__stat{display:flex;flex-direction:column;align-items:center;gap:2px}
.av-user-bar__stat-value{font-size:20px;font-weight:700;color:var(--text-primary);line-height:1}
.av-user-bar__stat-label{font-size:11px;color:var(--text-tertiary);text-transform:uppercase;letter-spacing:.04em}
.db-user-bar__perfil-link{font-size:12px;color:var(--text-tertiary);text-decoration:none;transition:color .15s}
.db-user-bar__perfil-link:hover{color:var(--text-primary)}

/* ── Botões de acção (novo evento, etc.) ── */
.db-btn-new,.av-btn-new{display:inline-flex;align-items:center;gap:6px;background:var(--yellow-primary);color:#111;font-size:13px;font-weight:700;padding:9px 18px;border-radius:20px;text-decoration:none;transition:background .15s,color .15s}
.db-btn-new:hover,.av-btn-new:hover{background:var(--text-primary);color:var(--yellow-primary)}

/* Botão de logout discreto */
.db-btn-logout{display:inline-flex;align-items:center;justify-content:center;width:36px;height:36px;background:transparent;border:1px solid var(--border-color);border-radius:8px;text-decoration:none;color:var(--text-tertiary);transition:all .15s}
.db-btn-logout:hover{background:var(--hover-bg);color:var(--text-primary);border-color:var(--text-secondary)}

/* ── Métricas do dashboard ── */
.db-metrics{display:flex;gap:10px;margin-bottom:20px;flex-wrap:wrap}
.db-metric{display:flex;flex-direction:column;align-items:flex-start;gap:3px;flex:1;min-width:120px;padding:14px 16px;background:var(--gray-light);border:1px solid var(--border-color);border-radius:12px;text-decoration:none;transition:border-color .15s,box-shadow .15s}
.db-metric:hover{border-color:var(--yellow-primary);box-shadow:0 2px 8px rgba(0,0,0,.06)}
.db-metric__icon{color:var(--text-tertiary);margin-bottom:2px}
.db-metric__value{font-size:22px;font-weight:700;color:var(--text-primary);line-height:1}
.db-metric__label{font-size:11px;font-weight:600;color:var(--text-tertiary);text-transform:uppercase;letter-spacing:.05em}

/* ── Grid e secções do dashboard ── */
.db-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}
@media(max-width:768px){.db-grid{grid-template-columns:1fr;gap:16px}}
.db-section{display:flex;flex-direction:column;gap:12px}
.db-section__header{display:flex;align-items:center;justify-content:space-between}
.db-section__title{font-size:14px;font-weight:700;color:var(--text-primary);margin:0}
.db-section__link{font-size:12px;font-weight:600;color:var(--text-tertiary);text-decoration:none}
.db-section__link:hover{color:var(--text-primary)}

/* ── Lista de favoritos no dashboard ── */
.db-fav-list,.db-ev-list{display:flex;flex-direction:column;gap:0}
.db-fav-item{display:flex;align-items:center;gap:10px;padding:6px 8px;border-radius:8px;text-decoration:none;transition:background .1s}
.db-fav-item:hover{background:var(--hover-bg)}
.db-fav-item__thumb{width:36px;height:36px;border-radius:6px;overflow:hidden;flex-shrink:0;background:var(--border-color)}
.db-fav-item__thumb img{width:100%;height:100%;object-fit:cover}
.db-fav-item__no-thumb{width:100%;height:100%;display:flex;align-items:center;justify-content:center;color:var(--text-tertiary)}
.db-fav-item__info{flex:1;min-width:0}
.db-fav-item__title{font-size:13px;font-weight:600;color:var(--text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%;line-height:1.3}
.db-fav-item__meta{display:flex;gap:8px;font-size:11px;color:var(--text-tertiary);margin-top:1px}
.db-fav-item__arrow{color:var(--text-tertiary);flex-shrink:0}

/* ── Lista de eventos do dashboard ── */
.db-ev-item{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:6px 8px;border-radius:8px;transition:background .1s}
.db-ev-item:hover{background:var(--hover-bg)}
.db-ev-item__info{flex:1;min-width:0;overflow:hidden}
.db-ev-item__title{font-size:13px;font-weight:600;color:var(--text-primary);text-decoration:none;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block}
.db-ev-item__title:hover{color:var(--yellow-primary)}
.db-ev-item__date{font-size:11px;color:var(--text-tertiary);margin-top:2px}
.db-ev-item__actions{display:flex;align-items:center;gap:6px;flex-shrink:0}
.db-ev-item__edit{font-size:12px;font-weight:600;color:var(--text-secondary);text-decoration:none;padding:3px 8px;border:1px solid var(--border-color);border-radius:5px;transition:all .15s}
.db-ev-item__edit:hover{border-color:var(--text-primary);color:var(--text-primary)}

/* ── Status badges ── */
.av-status{display:inline-block;padding:2px 8px;border-radius:20px;font-size:11px;font-weight:600;white-space:nowrap}
.av-status--green{background:#E6F9EE;color:#1A7A3C}
.av-status--yellow{background:#FFF8E1;color:#9A6B00}
.av-status--gray{background:var(--hover-bg);color:var(--text-secondary)}
.av-status--red{background:#FDECEA;color:#B71C1C}




/* ── Estado vazio ── */
.db-empty{display:flex;flex-direction:column;align-items:center;gap:8px;padding:32px 16px;text-align:center;color:var(--text-tertiary);border:1px dashed var(--border-color);border-radius:10px}
.db-empty p{font-size:13px;color:var(--text-tertiary);margin:0}
.db-empty__link{font-size:13px;font-weight:600;color:var(--text-secondary);text-decoration:none}
.db-empty__link:hover{color:var(--text-primary)}

/* ── Section bar ── */
.av-section-bar{display:flex;align-items:center;justify-content:space-between;margin-bottom:14px;flex-wrap:wrap;gap:10px}
.av-section-bar__left{display:flex;align-items:center;gap:10px}
.av-section-bar__title{font-size:16px;font-weight:700;color:var(--text-primary);margin:0}
.av-count{background:var(--hover-bg);color:var(--text-secondary);font-size:12px;font-weight:600;padding:2px 9px;border-radius:20px}

/* ── Filtros (página eventos) ── */
.av-filters{background:var(--gray-light);border:1px solid var(--border-color);border-radius:12px;padding:16px;margin-bottom:16px}
.av-filters__row{display:flex;flex-wrap:wrap;gap:12px;align-items:flex-end}
.av-filter-group{display:flex;flex-direction:column;gap:5px;min-width:140px;flex:1}
.av-filter-group--search{flex:2;min-width:200px}
.av-filter-label{font-size:11px;font-weight:600;color:var(--text-tertiary);text-transform:uppercase;letter-spacing:.04em}
.av-search-wrap{position:relative}
.av-search-icon{position:absolute;left:10px;top:50%;transform:translateY(-50%);color:var(--text-tertiary);pointer-events:none}
.av-input{width:100%;padding:8px 10px;border:1px solid var(--border-color);border-radius:8px;font-size:14px;color:var(--text-primary);background:var(--white);box-sizing:border-box;transition:border-color .15s}
.av-input:focus{outline:none;border-color:var(--text-secondary)}
#av-search{padding-left:32px}
.av-input--date{padding:7px 10px}
.av-select{width:100%;padding:8px 10px;border:1px solid var(--border-color);border-radius:8px;font-size:14px;color:var(--text-primary);background:var(--white);cursor:pointer;transition:border-color .15s}
.av-select:focus{outline:none;border-color:var(--text-secondary)}
.av-filters__actions{display:flex;gap:8px;margin-top:14px;align-items:center}
.av-btn-search{background:var(--text-primary);color:var(--white);border:none;padding:9px 20px;border-radius:8px;font-size:13px;font-weight:700;cursor:pointer;transition:opacity .15s}
.av-btn-search:hover{opacity:.8}
.av-btn-clear{background:none;border:none;color:var(--text-secondary);font-size:13px;cursor:pointer;padding:9px 4px;text-decoration:underline;text-underline-offset:2px}
.av-btn-clear:hover{color:var(--text-primary)}

/* ── Tabela (eventos + favoritos) ── */
.av-table-wrap{position:relative;overflow-x:auto;border:1px solid var(--border-color);border-radius:12px}
.av-table{width:100%;border-collapse:collapse;font-size:14px}
.av-table thead th{background:var(--gray-light);padding:11px 16px;text-align:left;font-size:11px;font-weight:600;color:var(--text-tertiary);text-transform:uppercase;letter-spacing:.05em;border-bottom:1px solid var(--border-color);white-space:nowrap}
.av-table tbody tr{border-bottom:1px solid var(--item-border);transition:background .1s}
.av-table tbody tr:last-child{border-bottom:none}
.av-table tbody tr:hover{background:var(--hover-bg)}
.av-table td{padding:13px 16px;vertical-align:middle}
.av-td-title a{font-weight:600;color:var(--text-primary);text-decoration:none}
.av-td-title a:hover{color:var(--yellow-primary)}
.av-td-meta{color:var(--text-secondary);white-space:nowrap;font-size:13px}
.av-td-date{font-variant-numeric:tabular-nums}
.av-td-actions{text-align:right;white-space:nowrap}
.av-td-empty{text-align:center;color:var(--text-secondary);padding:40px 16px!important;font-size:14px}
.av-td-empty a{color:var(--text-primary);font-weight:600}
.av-action-btn{display:inline-block;padding:5px 13px;border:1px solid var(--border-color);border-radius:6px;font-size:12px;font-weight:600;color:var(--text-secondary);text-decoration:none;transition:border-color .15s,background .15s,color .15s}
.av-action-btn:hover{border-color:var(--text-primary);background:var(--text-primary);color:var(--white)}
.av-action-btn--stats{padding:5px 8px;color:#534AB7;border-color:#EEEDFE;background:#EEEDFE;margin-left:10px}
.av-action-btn--stats:hover{background:#534AB7;border-color:#534AB7;color:#fff}


.av-loading{position:absolute;inset:0;background:rgba(var(--white-rgb,255,255,255),.7);display:flex;align-items:center;justify-content:center;border-radius:12px;z-index:10}
.av-spinner{width:28px;height:28px;border:3px solid var(--border-color);border-top-color:var(--text-primary);border-radius:50%;animation:av-spin .7s linear infinite}
@keyframes av-spin{to{transform:rotate(360deg)}}

/* ── Favoritos — abas ── */
.av-fav-tabs{display:flex;gap:0;border-bottom:2px solid var(--border-color);margin-bottom:0}
.av-fav-tab{background:none;border:none;padding:10px 18px;font-size:14px;font-weight:600;color:var(--text-tertiary);cursor:pointer;border-bottom:3px solid transparent;margin-bottom:-2px;display:flex;align-items:center;gap:8px;transition:color .15s,border-color .15s}
.av-fav-tab:hover{color:var(--text-primary)}
.av-fav-tab--active{color:var(--text-primary);border-bottom-color:var(--yellow-primary)}
.av-fav-panel{display:none;padding-top:16px}
.av-fav-panel--active{display:block}
.av-fav-empty{padding:32px 0;text-align:center;color:var(--text-tertiary);font-size:14px}
.av-fav-tab--active .av-count{background:#FFF8E1;color:#9A6B00}

.av-fav-remove{display:inline-flex;align-items:center;gap:5px;padding:5px 12px;border:1px solid #FDECEA;border-radius:6px;font-size:12px;font-weight:600;color:#E53935;background:var(--white);cursor:pointer;transition:all .15s}
.av-fav-remove:hover{background:#FDECEA;border-color:#E53935}


.av-table tbody tr.av-removing{opacity:.4;pointer-events:none;transition:opacity .3s}

/* ── Perfil — abas ── */
.pf-tabs{display:flex;gap:0;border-bottom:2px solid var(--border-color);margin-bottom:24px}
.pf-tab{padding:10px 16px;font-size:13px;font-weight:600;color:var(--text-tertiary);text-decoration:none;border-bottom:3px solid transparent;margin-bottom:-2px;transition:color .15s,border-color .15s;white-space:nowrap}
.pf-tab:hover{color:var(--text-primary)}
.pf-tab--active{color:var(--text-primary);border-bottom-color:var(--yellow-primary)}
.pf-form{max-width:480px}
.pf-actions{margin-top:24px;padding-top:20px;border-top:1px solid var(--border-color)}
.pf-field--readonly .pf-readonly-value{padding:9px 12px;background:var(--gray-light);border:1px solid var(--border-color);border-radius:8px;font-size:14px;color:var(--text-tertiary)}
.pf-avatar-wrap{display:flex;align-items:center;gap:20px;flex-wrap:wrap}
.pf-avatar-preview img{width:96px;height:96px;border-radius:50%;object-fit:cover;border:3px solid var(--border-color)}
.pf-avatar-actions{display:flex;flex-direction:column;gap:8px}

/* ── Formulários ef-* (submeter + editar evento) ── */
.ef-tabs{display:flex;gap:0;margin-bottom:0;border-bottom:2px solid var(--border-color);overflow-x:auto;-webkit-overflow-scrolling:touch;padding-bottom:0}
.ef-tab{background:none;border:none;padding:11px 16px;font-size:13px;font-weight:600;color:var(--text-tertiary);cursor:pointer;border-bottom:3px solid transparent;margin-bottom:-2px;white-space:nowrap;transition:color .15s,border-color .15s}
.ef-tab:hover{color:var(--text-primary)}
.ef-tab--active{color:var(--text-primary)!important;border-bottom:3px solid var(--yellow-primary)!important}
.ef-panel{display:none;padding:24px 0 8px}
.ef-panel--active{display:block}
.ef-field{display:flex;flex-direction:column;gap:5px;margin-bottom:18px}
.ef-field--half{max-width:200px}
.ef-row{display:flex;gap:16px;flex-wrap:wrap}
.ef-row--tight{align-items:flex-end}
.ef-row .ef-field{flex:1;min-width:160px}
.ef-label{font-size:11px;font-weight:700;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.05em}
.ef-req{color:#E53935}
.ef-hint{font-size:12px;color:var(--text-tertiary);margin:3px 0 0;line-height:1.5}
.ef-input,.ef-select,.ef-textarea{padding:9px 12px;border:1px solid var(--border-color);border-radius:8px;font-size:14px;color:var(--text-primary);background:var(--white);width:100%;box-sizing:border-box;transition:border-color .15s,box-shadow .15s;font-family:inherit}
.ef-input:focus,.ef-select:focus,.ef-textarea:focus{outline:none;border-color:var(--text-secondary);box-shadow:0 0 0 3px rgba(0,0,0,.05)}

.ef-select--md{max-width:280px}
.ef-textarea{resize:vertical;min-height:130px}
.ef-separator{border:none;border-top:1px solid var(--border-color);margin:22px 0}
.ef-cat-grid{display:flex;flex-wrap:wrap;gap:12px}
.ef-cat-group{display:flex;flex-direction:column;gap:4px;min-width:160px}
.ef-cat-item{display:flex;align-items:center;gap:7px;font-size:13px;cursor:pointer;padding:5px 8px;border-radius:6px;transition:background .1s}
.ef-cat-item:hover{background:var(--hover-bg)}
.ef-cat-item input{margin:0;accent-color:var(--yellow-primary)}
.ef-cat-item--parent{font-weight:700;color:var(--text-primary)}
.ef-cat-item--child{padding-left:20px;color:var(--text-secondary)}
.ef-checkgroup{display:flex;flex-wrap:wrap;gap:6px}
.ef-check{display:inline-flex;align-items:center;gap:5px;font-size:13px;cursor:pointer;padding:5px 12px;border:1px solid var(--border-color);border-radius:20px;background:var(--white);transition:border-color .1s,background .1s}
.ef-check:hover{border-color:var(--text-secondary);background:var(--hover-bg)}
.ef-check input[type=checkbox]{margin:0;accent-color:var(--yellow-primary)}
.ef-thumb-wrap{display:flex;flex-direction:column;gap:6px;max-width:320px}
.ef-image-picker{border:2px dashed var(--border-color);border-radius:10px;overflow:hidden;cursor:pointer;transition:border-color .15s}
.ef-image-picker:hover{border-color:var(--text-secondary)}
.ef-image-placeholder{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;padding:28px;color:var(--text-tertiary);font-size:13px}
.ef-image-preview{width:100%;display:block;max-height:200px;object-fit:cover}
.ef-gallery{display:flex;flex-wrap:wrap;gap:8px;align-items:flex-start}
.ef-gallery-item{position:relative;width:80px;height:80px;border-radius:8px;overflow:hidden}
.ef-gallery-item img{width:100%;height:100%;object-fit:cover}
.ef-gallery-remove{position:absolute;top:3px;right:3px;background:rgba(0,0,0,.55);color:#fff;border:none;border-radius:50%;width:18px;height:18px;font-size:10px;cursor:pointer;display:flex;align-items:center;justify-content:center;padding:0}
.ef-gallery-add{width:80px;height:80px;border:2px dashed var(--border-color);border-radius:8px;background:none;cursor:pointer;color:var(--text-tertiary);display:flex;align-items:center;justify-content:center;transition:border-color .15s}
.ef-gallery-add:hover{border-color:var(--text-secondary);color:var(--text-secondary)}
.ef-datas-layout{display:grid;grid-template-columns:auto 1fr;gap:24px;align-items:start}
.ef-cal-col{flex-shrink:0}
.ef-cal-col .flatpickr-calendar{margin:0!important}
.ef-occ-wrap{min-width:0;overflow-x:auto}
@media(max-width:700px){.ef-datas-layout{grid-template-columns:1fr}}
.ef-occ-table,.ef-weektime-table{width:100%;border-collapse:collapse;font-size:13px}
.ef-occ-table{margin-top:12px}
.ef-weektime-table{min-width:360px}
.ef-occ-table th,.ef-weektime-table th{background:var(--gray-light);padding:8px 10px;text-align:left;font-size:11px;font-weight:700;color:var(--text-tertiary);text-transform:uppercase;border-bottom:1px solid var(--border-color)}
.ef-occ-table td,.ef-weektime-table td{padding:8px 10px;border-bottom:1px solid var(--item-border);vertical-align:middle}
.ef-occ-table tr:last-child td,.ef-weektime-table tr:last-child td{border-bottom:none}
.ef-occ-remove{color:#E53935;cursor:pointer;padding:2px 8px}
.ef-occ-table input[type=time],.ef-weektime-table input[type=time]{border:1px solid var(--border-color);border-radius:6px;padding:4px 8px;font-size:13px;font-family:inherit;background:var(--white);color:var(--text-primary)}
.ef-weektime-table input[type=checkbox]{accent-color:var(--yellow-primary)}
.ef-toggle{display:flex;align-items:center;gap:10px;cursor:pointer;margin-top:4px}
.ef-toggle input{display:none}
.ef-toggle__track{width:36px;height:20px;background:var(--border-color);border-radius:10px;position:relative;flex-shrink:0;transition:background .2s}
.ef-toggle input:checked + .ef-toggle__track{background:#22C55E}
.ef-toggle__thumb{position:absolute;top:2px;left:2px;width:16px;height:16px;background:#fff;border-radius:50%;transition:transform .2s;box-shadow:0 1px 3px rgba(0,0,0,.2)}
.ef-toggle input:checked + .ef-toggle__track .ef-toggle__thumb{transform:translateX(16px)}
.ef-toggle__label{font-size:14px;color:var(--text-secondary)}
.ef-next-wrap{display:flex;justify-content:flex-end;padding-top:8px}
.ef-actions{display:flex;gap:10px;margin-top:28px;padding-top:20px;border-top:1px solid var(--border-color);flex-wrap:wrap}
.ef-btn{display:inline-flex;align-items:center;gap:6px;padding:10px 20px;border-radius:8px;font-size:14px;font-weight:700;cursor:pointer;text-decoration:none;border:none;transition:opacity .15s,background .15s,color .15s;white-space:nowrap}
.ef-btn--primary{background:var(--text-primary);color:var(--white)}
.ef-btn--primary:hover{background:var(--text-secondary);color:var(--white)}
.ef-btn--yellow{background:var(--yellow-primary);color:#111}
.ef-btn--yellow:hover{opacity:.85}
.ef-btn--ghost{background:none;color:var(--text-tertiary);border:none;padding:10px 8px}
.ef-btn--ghost:hover{color:var(--text-primary)}
.ef-btn--outline{background:var(--white);color:var(--text-primary);border:1.5px solid var(--border-color)}
.ef-btn--outline:hover{border-color:var(--text-primary)}
.ef-btn-link{background:none;border:none;font-size:12px;cursor:pointer;padding:2px 0;text-decoration:underline;color:var(--text-tertiary);text-align:left}
.ef-btn-remove-thumb{color:#E53935}
.ef-alert{padding:12px 16px;border-radius:8px;font-size:14px;margin-bottom:20px;line-height:1.5}
.ef-alert a{font-weight:700;color:inherit}
.ef-alert--success{background:#E6F9EE;color:#1A7A3C}
.ef-alert--error{background:#FDECEA;color:#B71C1C}


.ef-og-preview{position:relative;display:inline-block}
.ef-og-preview img{max-width:400px;width:100%;border-radius:8px;border:1px solid var(--border-color)}
.ef-og-size{position:absolute;bottom:6px;right:8px;font-size:11px;background:rgba(0,0,0,.5);color:#fff;padding:2px 6px;border-radius:4px}

/* Concelho search */
.ef-concelho-search-wrap{position:relative;margin-bottom:8px;max-width:320px}
.ef-concelho-search-wrap svg{position:absolute;left:10px;top:50%;transform:translateY(-50%);color:var(--text-tertiary);pointer-events:none}
#ef-concelho-search{padding-left:32px}
.ef-concelho-list{max-height:220px;overflow-y:auto;border:1px solid var(--border-color);border-radius:8px;background:var(--white)}
.ef-concelho-optgroup{padding:6px 0}
.ef-concelho-group-label{font-size:11px;font-weight:700;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.05em;padding:8px 12px 4px;border-top:1px solid var(--item-border);margin-top:2px}
.ef-concelho-option{display:flex;align-items:center;gap:8px;padding:6px 12px;cursor:pointer;font-size:13px;transition:background .1s}
.ef-concelho-option:hover{background:var(--hover-bg)}
.ef-concelho-option input{margin:0;accent-color:var(--yellow-primary)}
.ef-concelho-option.selected{background:#FFFBE6;font-weight:600}


@media(max-width:640px){
    .ef-row{flex-direction:column}
    .ef-field--half,.ef-select--md{max-width:100%}
    .ef-actions{flex-direction:column}
    .ef-btn{justify-content:center}
}


/* ============================================================
   SINGLE EVENTO — fav btn + ações (migrado de inline)
   ============================================================ */
.av-event-actions{display:flex;flex-direction:column;gap:8px;margin-top:16px;padding-top:16px;border-top:1px solid var(--border-color)}
.av-fav-btn{display:inline-flex;align-items:center;gap:8px;padding:10px 16px;border:1.5px solid var(--border-color);border-radius:8px;background:var(--white);font-size:14px;font-weight:600;color:var(--text-secondary);cursor:pointer;transition:all .2s;width:100%;justify-content:center}
.av-fav-btn:hover{border-color:var(--text-primary);background:var(--hover-bg)}
.av-fav-btn--active{background:rgba(229,57,53,.08);border-color:#E53935;color:#C62828}
.av-fav-btn--active .av-fav-icon{fill:#E53935;stroke:#E53935}
.av-fav-icon{transition:fill .2s,stroke .2s;flex-shrink:0}
.av-fav-btn--loading{opacity:.6;pointer-events:none}
.av-event-actions-secondary{display:flex;gap:8px;margin-top:6px}
.av-fav-tooltip{position:relative}
.av-fav-tooltip::after{content:attr(data-tip);position:absolute;bottom:calc(100% + 6px);left:50%;transform:translateX(-50%);background:var(--text-primary);color:var(--white);font-size:12px;font-weight:400;padding:5px 10px;border-radius:6px;white-space:nowrap;pointer-events:none;opacity:0;transition:opacity .15s}
.av-fav-tooltip:hover::after{opacity:1}



/* ── Explora a Região — mobile (menu + template-categoria) ── */
.mob-explora{padding:8px;border-top:none;margin-top:8px}
.mob-explora__head{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}
.mob-explora__title{font-size:10px;font-weight:800;text-transform:uppercase;letter-spacing:.08em;color:var(--text-tertiary)}
.mob-explora__sub{font-size:10px;color:var(--text-tertiary)}
.mob-explora__pills{display:flex;flex-wrap:wrap;gap:6px}
.mob-explora__pill{display:inline-flex;align-items:center;padding:8px 14px;border-radius:20px;text-decoration:none;font-size:13px;font-weight:600;color:var(--text-secondary);background:var(--pill-bg);transition:all .15s}
.mob-explora__pill:hover{background:var(--pill-bg-hover)}
.mob-explora__pill.active{background:var(--yellow-primary);color:#111;font-weight:700}

/* No desktop o part-explora-regiao não aparece (sidebar já mostra) */
@media(min-width:769px){
    .main-container .mob-explora,
    .single-evento-page .mob-explora { display:none }
}

/* ── Selector de Distrito — sidebar desktop ── */
.sidebar-dist-btn {
    display: flex;
    align-items: center;
    gap: 8px;
    width: 100%;
    padding: 10px 14px;
    background: var(--gray-light);
    border: 1.5px solid var(--border-color);
    border-radius: 10px;
    cursor: pointer;
    font-family: var(--font-heading);
    font-size: 13px;
    font-weight: 700;
    color: var(--text-primary);
    text-align: left;
    transition: background .15s, border-color .15s;
    margin-bottom: 16px;
}
.sidebar-dist-btn:hover { background: var(--hover-bg); border-color: var(--text-tertiary); }
.sidebar-dist-btn__icon { font-size: 14px; flex-shrink: 0; }
.sidebar-dist-btn__label { flex: 1; }
.sidebar-dist-btn__arrow { font-size: 11px; color: var(--text-tertiary); transition: transform .2s; }
.sidebar-dist-btn.open .sidebar-dist-btn__arrow { transform: rotate(180deg); }

/* Painel slide-up dentro da sidebar */
.sidebar-dist-panel {
    position: fixed;
    top: 0;
    left: 0;
    width: 280px;
    height: 100vh;
    background: var(--white);
    border-right: 1px solid var(--border-color);
    transform: translateY(100%);
    transition: transform .3s ease;
    z-index: 1000;
    overflow-y: auto;
    padding: 0 16px 24px;
}
.sidebar-dist-panel.open { transform: translateY(0); }
.sidebar-dist-panel__head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 20px 0 14px;
    font-size: 14px;
    font-weight: 700;
    color: var(--text-primary);
    position: sticky;
    top: 0;
    background: var(--white);
    border-bottom: 1px solid var(--border-color);
    margin-bottom: 14px;
}
.sidebar-dist-panel__close {
    background: none;
    border: none;
    cursor: pointer;
    font-size: 18px;
    color: var(--text-tertiary);
    padding: 4px;
    line-height: 1;
}
.sidebar-dist-panel__close:hover { color: var(--text-primary); }
.sidebar-dist-panel__grid {
    display: flex;
    flex-direction: column;
    gap: 6px;
}
.sidebar-dist-panel__grid .district-link {
    font-size: 14px;
    padding: 10px 12px;
    border-radius: 8px;
    text-align: left;
    border: none;
    cursor: pointer;
    width: 100%;
    background: transparent;
    color: var(--text-primary);
    font-weight: 600;
    text-decoration: none;
    display: block;
    transition: background 0.15s;
}
.sidebar-dist-panel__grid .district-link:hover { background: var(--hover-bg); }
.sidebar-dist-panel__grid .district-link.active { background: var(--yellow-primary); color: #000; font-weight: 700; }

/* Nível 2 — concelhos em pills compactas */
#sidebarDistPanel [id^="dist-"] .sidebar-dist-panel__grid {
    display: flex;
    flex-wrap: wrap;
    flex-direction: row;
    gap: 6px;
}
#sidebarDistPanel [id^="dist-"] .sidebar-dist-panel__grid .district-link {
    width: auto;
    padding: 6px 12px;
    border-radius: 20px;
    font-size: 13px;
    font-weight: 500;
    background: var(--gray-light);
    border: 1.5px solid var(--border-color);
}
#sidebarDistPanel [id^="dist-"] .sidebar-dist-panel__grid .district-link:hover {
    border-color: var(--text-primary);
    background: var(--white);
}
#sidebarDistPanel [id^="dist-"] .sidebar-dist-panel__grid .district-link.inactive {
    opacity: 0.4;
    font-weight: 400;
}
#sidebarDistPanel [id^="dist-"] .sidebar-dist-panel__grid .district-link.active {
    background: var(--yellow-primary);
    border-color: var(--yellow-primary);
    font-weight: 700;
}
.sidebar-dist-panel__back {
    display: flex;
    align-items: center;
    gap: 6px;
    background: none;
    border: none;
    cursor: pointer;
    font-size: 13px;
    font-weight: 700;
    color: var(--text-secondary);
    padding: 0;
    flex: 1;
    text-align: left;
    transition: color .15s;
}
.sidebar-dist-panel__back:hover { color: var(--text-primary); }
.sidebar-dist-panel__concelhos { animation: slideIn .2s ease; }
@keyframes slideIn { from { opacity:0; transform:translateX(8px); } to { opacity:1; transform:translateX(0); } }

/* Overlay para fechar */
.sidebar-dist-overlay {
    display: none;
    position: fixed;
    inset: 0;
    background: rgba(0,0,0,.3);
    z-index: 999;
}
.sidebar-dist-overlay.open { display: block; }

/* ── Sidebar dividers ── */
.sidebar-divider {
    border-top: 1px solid var(--border-color);
    margin: 16px 0;
}
.sidebar-search--bordered {
    border-bottom: 1px solid var(--border-color);
    padding-bottom: 16px;
    margin-bottom: 0;
}

/* District selector label — mais discreto */
.district-selector-btn .district-label {
    font-size: 9px;
    letter-spacing: .08em;

    font-weight: normal;
    color: var(--text-tertiary);
}

/* mob-explora — sem border-top (o sidebar-divider acima do selector já separa) */
.mob-explora { border-top: none; padding: 8px; margin-top: 0; }

/* Card mini sem imagem — título centrado na área do cartaz */
.av-card-mini__img-link--empty { position: relative; display: block; width: 100%; height: 100%; }
.av-card-mini__no-img-title {
    position: absolute;
    inset: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 20px;
    text-align: center;
    font-family: var(--font-heading);
    font-weight: 700;
    font-size: 15px;
    line-height: 1.3;
    color: var(--text-secondary);
    z-index: 2;
}

/* Em Alta no single evento — layout horizontal adaptado */
.single-evento-page .sidebar-widget--trending {
    margin: 32px auto;
    border: 1.5px solid var(--border-color);
    border-radius: 14px;
    padding: 16px 20px;
    max-width: 728px;
}
.single-evento-page .sidebar-trend-item {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 10px 0;
    border-bottom: 1px solid var(--item-border);
    text-decoration: none;
    color: inherit;
    transition: background .12s;
}
.single-evento-page .sidebar-trend-item:last-child { border-bottom: none; }

/* Em Alta no single evento — só visível quando sidebar está escondida (< 1400px) */
@media(min-width:1401px){
    .single-evento-page .sidebar-widget--trending { display: none; }
}

/* Eventos relacionados no single evento */
.av-single-related {
    margin: 40px 0 24px;
}
.av-single-related .av-hscroll {
    margin-top: 16px;
}
@media(max-width:768px){
    .av-single-related .av-hscroll {
        margin-left: -16px;
        margin-right: -16px;
        scroll-padding-left: 16px;
    }
    .av-single-related .av-hscroll::before,
    .av-single-related .av-hscroll::after {
        content: '';
        flex-shrink: 0;
        width: 16px;
    }
    .av-single-related .av-hscroll::after { width: 40px; }
}

/* Partilha social no single evento */
.av-share {
    padding: 10px 0 4px;
    border-top: 1px solid var(--border-color);
}
.av-share__label {
    font-size: 10px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .08em;
    color: var(--text-tertiary);
    display: block;
    margin-bottom: 8px;
}
.av-share__btns {
    display: flex;
    gap: 8px;
}
.av-share__btn {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 8px 14px;
    border-radius: 8px;
    font-size: 13px;
    font-weight: 600;
    cursor: pointer;
    text-decoration: none;
    border: 1.5px solid var(--border-color);
    background: var(--white);
    color: var(--text-secondary);
    transition: all .15s;
    font-family: var(--font-heading);
}
.av-share__btn:hover { border-color: var(--text-primary); color: var(--text-primary); }
.av-share__btn--whatsapp:hover { border-color: #25D366; color: #25D366; }
.av-share__btn--copy.copied { border-color: #059669; color: #059669; }

/* ============================================================
   AVALIAÇÕES — Single Evento
   ============================================================ */
.av-avaliacoes {
    margin: 40px auto;
    max-width: 728px;
}
.av-avaliacoes__invite {
    text-align: center;
    margin-bottom: 16px;
    padding: 16px;
    background: var(--gray-light);
    border-radius: 10px;
}
.av-avaliacoes__invite-msg {
    font-size: 14px;
    color: var(--text-secondary);
    margin: 0;
}
.av-avaliacoes__head {
    display: flex;
    align-items: center;
    gap: 16px;
    margin-bottom: 20px;
    padding-bottom: 16px;
    border-bottom: 2px solid var(--text-primary);
}
.av-avaliacoes__title {
    font-size: 1.2rem;
    font-weight: 900;
    color: var(--text-primary);
    margin: 0;
    flex-shrink: 0;
}
.av-avaliacoes__summary {
    display: flex;
    align-items: center;
    gap: 8px;
}
.av-avaliacoes__avg {
    font-size: 1.6rem;
    font-weight: 900;
    color: var(--text-primary);
    line-height: 1;
}
.av-avaliacoes__count {
    font-size: 12px;
    color: var(--text-tertiary);
}
.av-avaliacoes__login {
    font-size: 13px;
    color: var(--text-secondary);
    margin-bottom: 20px;
}
.av-avaliacoes__login a { color: var(--text-primary); font-weight: 600; }
.av-avaliacoes__empty { font-size: 13px; color: var(--text-tertiary); }

/* Estrelas */
.av-rating-star { color: var(--border-color); font-size: 18px; }
.av-rating-star.filled { color: #FFD700; }

/* Formulário */
.av-rating-form { margin-bottom: 28px; }
.av-rating-form__stars {
    display: flex;
    gap: 4px;
    margin-bottom: 12px;
}
.av-rating-form__star {
    background: none;
    border: none;
    font-size: 32px;
    color: var(--border-color);
    cursor: pointer;
    padding: 0;
    line-height: 1;
    transition: color .1s, transform .1s;
}
.av-rating-form__star:hover,
.av-rating-form__star.selected { color: #FFD700; }
.av-rating-form__star:hover { transform: scale(1.15); }
.av-rating-form__textarea {
    width: 100%;
    padding: 12px 14px;
    border: 1.5px solid var(--border-color);
    border-radius: 10px;
    font-size: 14px;
    font-family: var(--font-body);
    color: var(--text-primary);
    background: var(--white);
    resize: vertical;
    transition: border-color .15s;
    box-sizing: border-box;
}
.av-rating-form__textarea:focus { outline: none; border-color: var(--text-secondary); }
.av-rating-form__footer {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-top: 10px;
    gap: 12px;
}
.av-rating-form__error { font-size: 12px; color: #E53935; }
.av-rating-form__btn {
    padding: 10px 20px;
    background: var(--text-primary);
    color: var(--white);
    border: none;
    border-radius: 8px;
    font-size: 13px;
    font-weight: 700;
    font-family: var(--font-heading);
    cursor: pointer;
    transition: opacity .15s;
    flex-shrink: 0;
}
.av-rating-form__btn:hover { opacity: .8; }

/* Reviews */
.av-reviews-list { display: flex; flex-direction: column; gap: 16px; }
.av-review {
    padding: 16px;
    border: 1.5px solid var(--border-color);
    border-radius: 12px;
    background: var(--white);
}
.av-review__head {
    display: flex;
    align-items: center;
    gap: 10px;
    margin-bottom: 8px;
    flex-wrap: wrap;
}
.av-review__author { font-weight: 700; font-size: 13px; color: var(--text-primary); }
.av-review__stars { display: flex; gap: 2px; }
.av-review__stars .av-rating-star { font-size: 14px; }
.av-review__date { font-size: 11px; color: var(--text-tertiary); margin-left: auto; }
.av-review__delete {
    background: none; border: none; cursor: pointer;
    color: var(--text-tertiary); font-size: 14px; padding: 2px 4px;
    transition: color .15s;
}
.av-review__delete:hover { color: #E53935; }
.av-review__text { font-size: 13px; color: var(--text-secondary); line-height: 1.6; margin: 0; }
.av-review__report {
    background: none; border: none; cursor: pointer;
    font-size: 11px; color: var(--text-tertiary); padding: 4px 0;
    margin-top: 6px; display: block; transition: color .15s;
}
.av-review__report:hover { color: #E53935; }

/* Resposta do organizador */
.av-review__reply {
    margin-top: 12px;
    padding: 10px 12px;
    background: var(--gray-light);
    border-radius: 8px;
    border-left: 3px solid var(--yellow-primary);
}
.av-review__reply-label {
    font-size: 11px;
    font-weight: 700;
    color: var(--text-tertiary);
    text-transform: uppercase;
    letter-spacing: .05em;
    display: block;
    margin-bottom: 4px;
}
.av-review__reply p { font-size: 13px; color: var(--text-secondary); margin: 0; }
.av-review__reply-form { margin-top: 12px; display: flex; flex-direction: column; gap: 6px; }
.av-review__reply-input {
    width: 100%;
    padding: 8px 10px;
    border: 1px solid var(--border-color);
    border-radius: 8px;
    font-size: 13px;
    font-family: var(--font-body);
    color: var(--text-primary);
    background: var(--white);
    resize: vertical;
    box-sizing: border-box;
}
.av-review__reply-btn {
    align-self: flex-end;
    padding: 6px 14px;
    background: var(--yellow-primary);
    border: none;
    border-radius: 6px;
    font-size: 12px;
    font-weight: 700;
    font-family: var(--font-heading);
    cursor: pointer;
}

/* ── Comentários — Minha Conta ── */
.av-coments-filter {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
    margin-bottom: 20px;
}
.av-coments-filter .av-filter-chip {
    padding: 6px 12px;
    border-radius: 20px;
    border: 1.5px solid var(--border-color);
    background: var(--white);
    font-size: 12px;
    font-weight: 600;
    color: var(--text-secondary);
    text-decoration: none;
    transition: all .15s;
    white-space: nowrap;
    max-width: 200px;
    overflow: hidden;
    text-overflow: ellipsis;
}
.av-coments-filter .av-filter-chip:hover { border-color: var(--text-primary); color: var(--text-primary); }
.av-coments-filter .av-filter-chip.active { background: var(--text-primary); border-color: var(--text-primary); color: var(--white); }

.av-coments-list { display: flex; flex-direction: column; gap: 12px; }
.av-coment-item {
    padding: 16px;
    border: 1.5px solid var(--border-color);
    border-radius: 12px;
    background: var(--white);
}
.av-coment-item--unread { border-left: 3px solid #E8357A; }
.av-coment-item__meta {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-bottom: 8px;
    gap: 8px;
}
.av-coment-item__evento {
    font-size: 11px;
    font-weight: 700;
    color: var(--text-tertiary);
    text-decoration: none;
    text-transform: uppercase;
    letter-spacing: .04em;
    transition: color .15s;
}
.av-coment-item__evento:hover { color: var(--text-primary); }
.av-coment-item__date { font-size: 11px; color: var(--text-tertiary); }
.av-coment-item__head { display: flex; align-items: center; gap: 8px; margin-bottom: 6px; }
.av-coment-item__author { font-size: 13px; font-weight: 700; color: var(--text-primary); }
.av-coment-item__text { font-size: 13px; color: var(--text-secondary); line-height: 1.6; margin: 0 0 8px; }

/* Badge no tab de Comentários */
.user-tab__badge {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: #E8357A;
    color: #fff;
    border-radius: 20px;
    padding: 1px 6px;
    font-size: 10px;
    margin-left: 4px;
    line-height: 1.4;
}

/* ── Estado vazio — sem eventos ── */
.av-empty-state {
    text-align: center;
    padding: 48px 24px 32px;
    max-width: 520px;
    margin: 0 auto;
}
.av-empty-state__icon {
    color: var(--border-color);
    margin-bottom: 16px;
    display: block;
}
.av-empty-state__title {
    font-size: 1.3rem;
    font-weight: 800;
    color: var(--text-primary);
    margin: 0 0 10px;
    line-height: 1.3;
}
.av-empty-state__text {
    font-size: 14px;
    color: var(--text-secondary);
    line-height: 1.6;
    margin: 0 0 24px;
}
.av-empty-state__actions {
    display: flex;
    gap: 8px;
    justify-content: center;
    flex-wrap: wrap;
}
.av-empty-state__btn {
    padding: 10px 20px;
    border-radius: 8px;
    font-size: 13px;
    font-weight: 700;
    font-family: var(--font-heading);
    text-decoration: none;
    border: 1.5px solid var(--text-primary);
    background: var(--text-primary);
    color: var(--white);
    transition: opacity .15s;
    cursor: pointer;
}
.av-empty-state__btn:hover { opacity: .8; color: var(--white); }
.av-empty-state__btn--secondary {
    background: var(--white);
    color: var(--text-primary);
}
@media(max-width:768px){
    .av-empty-state { padding: 32px 16px 24px; }
}

/* ============================================================
   FEED SOCIAL — template-categoria
   ============================================================ */
.sf-feed {
    display: flex;
    flex-direction: column;
    gap: 0;
    max-width: 640px;
    margin: 0 auto;
}

.sf-card {
    border-bottom: 1px solid var(--border-color);
    padding: 24px 0;
}
.sf-card:first-child { padding-top: 8px; }

/* Imagem */
.sf-card__img-wrap {
    text-decoration: none;
    display: block;
    position: relative;
    width: 100%;
    border-radius: 12px;
    overflow: hidden;
    background: #f0f0f0;
    margin-bottom: 14px;
    aspect-ratio: 4/3;
}
.sf-card__img-bg {
    position: absolute;
    inset: 0;
    background-size: cover;
    background-position: center;
    filter: blur(20px);
    transform: scale(1.1);
    opacity: .6;
}
.sf-card__img {
    position: relative;
    z-index: 1;
    width: 100%;
    height: 100%;
    object-fit: contain;
    display: block;
}
.sf-card__img-placeholder {
    width: 100%;
    height: 100%;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 24px;
    text-align: center;
    font-family: var(--font-heading);
    font-weight: 700;
    font-size: 18px;
    color: var(--text-secondary);
    background: var(--gray-light);
}

/* Badge */
.sf-card__badge {
    position: absolute;
    bottom: 12px;
    right: 12px;
    z-index: 2;
    font-size: 11px;
    font-weight: 700;
    padding: 3px 8px;
    border-radius: 6px;
    font-family: var(--font-heading);
}
.sf-card__badge--free     { background: var(--badge-free-bg,#E6F9EE);     color: var(--badge-free-color,#1A7A3C); }
.sf-card__badge--paid     { background: var(--badge-paid-bg,#E6F1FB);     color: var(--badge-paid-color,#185FA5); }
.sf-card__badge--donation { background: var(--badge-donation-bg,#FFF8E1); color: var(--badge-donation-color,#9A6B00); }

/* Meta */
.sf-card__meta {
    display: flex;
    align-items: center;
    gap: 6px;
    margin-bottom: 6px;
    font-size: 12px;
}
.sf-card__cat  { font-weight: 700; }
.sf-card__sep  { color: var(--text-tertiary); }
.sf-card__local {
    display: flex;
    align-items: center;
    gap: 3px;
    color: var(--text-tertiary);
}

/* Título */
.sf-card__title {
    font-size: 1.25rem;
    font-weight: 800;
    line-height: 1.25;
    margin: 0 0 8px;
    font-family: var(--font-heading);
}
.sf-card__title a {
    color: var(--text-primary);
    text-decoration: none;
    transition: opacity .15s;
}
.sf-card__title a:hover { opacity: .75; }

/* Excerpt */
.sf-card__excerpt {
    font-size: 14px;
    color: var(--text-secondary);
    line-height: 1.6;
    margin: 0 0 12px;
    display: -webkit-box;
    -webkit-line-clamp: 3;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

/* Footer */
.sf-card__footer {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    margin-top: 4px;
}
.sf-card__date {
    display: flex;
    align-items: center;
    gap: 5px;
    font-size: 12px;
    color: var(--text-tertiary);
}
.sf-card__actions {
    display: flex;
    align-items: center;
    gap: 8px;
}
.sf-card__fav {
    background: none;
    border: none;
    cursor: pointer;
    padding: 6px;
    color: var(--text-tertiary);
    transition: color .15s;
    display: flex;
    align-items: center;
}
.sf-card__fav:hover, .sf-card__fav.active { color: #E8357A; }
.sf-card__link-btn {
    font-size: 13px;
    font-weight: 700;
    font-family: var(--font-heading);
    color: var(--text-primary);
    text-decoration: none;
    padding: 6px 14px;
    border: 1.5px solid var(--border-color);
    border-radius: 8px;
    transition: all .15s;
}
.sf-card__link-btn:hover {
    border-color: var(--text-primary);
    background: var(--text-primary);
    color: var(--white);
}

/* Dark mode */



/* Mobile */
@media(max-width:768px) {
    .sf-feed { max-width: 100%; }
    .sf-card { padding: 20px 0; }
    .sf-card__title { font-size: 1.1rem; }
    
    /* Badge recomendado: apenas estrela no mobile */
    .sf-card__badge--rec .av-mini-badge__text,
    .av-mini-badge--rec .av-mini-badge__text,
    .home-destaque-card__rec .av-mini-badge__text {
        display: none;
    }
    .sf-card__badge--rec,
    .av-mini-badge--rec,
    .home-destaque-card__rec {
        padding: 6px 8px;
        gap: 0;
    }
}

/* ── CTA final do feed de categoria ── */
.av-feed-end {
    max-width: 640px;
    margin: 0 auto;
    padding: 40px 0 32px;
    text-align: center;
}
.av-feed-end__line {
    width: 48px;
    height: 2px;
    background: var(--border-color);
    margin: 0 auto 20px;
}
.av-feed-end__msg {
    font-size: 15px;
    font-weight: 700;
    color: var(--text-primary);
    margin: 0 0 6px;
    font-family: var(--font-heading);
}
.av-feed-end__sub {
    font-size: 13px;
    color: var(--text-tertiary);
    margin: 0 0 14px;
}
.av-feed-end__cats {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    justify-content: center;
    margin-bottom: 20px;
}
.av-feed-end__cat {
    padding: 8px 18px;
    border-radius: 20px;
    border: 1.5px solid;
    font-size: 13px;
    font-weight: 700;
    font-family: var(--font-heading);
    text-decoration: none;
    transition: opacity .15s;
    background: var(--white);
}
.av-feed-end__cat:hover { opacity: .75; }
.av-feed-end__back {
    display: block;
    font-size: 13px;
    color: var(--text-secondary);
    text-decoration: none;
    margin-bottom: 16px;
    transition: color .15s;
}
.av-feed-end__back:hover { color: var(--text-primary); }
.av-feed-end__top {
    background: none;
    border: 1.5px solid var(--border-color);
    border-radius: 20px;
    padding: 7px 16px;
    font-size: 12px;
    font-weight: 600;
    font-family: var(--font-heading);
    color: var(--text-tertiary);
    cursor: pointer;
    transition: all .15s;
}
.av-feed-end__top:hover { border-color: var(--text-primary); color: var(--text-primary); }

/* ── Feed infinito no single evento ── */
.sv-infinite-feed {
    max-width: 640px;
    margin: 0 auto;
    padding: 0 0 40px;
}
.sv-infinite-feed__header {
    padding: 40px 0 24px;
    border-top: 2px solid var(--text-primary);
    margin-top: 8px;
}
.sv-infinite-feed__header span {
    font-size: clamp(1.2rem, 3vw, 1.6rem);
    font-weight: 900;
    font-family: var(--font-heading);
    color: var(--text-primary);
    letter-spacing: -.03em;
    display: block;
}
.sv-infinite-feed__sentinel { height: 1px; }


/* ── Destaque grid (homepage) ── */
.home-destaque__grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 12px;
}
.home-destaque__grid:has(.home-destaque-card--featured) {
    grid-template-columns: 2fr 1fr;
    grid-template-rows: auto auto;
}
.home-destaque-card {
    display: block; text-decoration: none;
    border-radius: 14px; overflow: hidden;
    border: 1.5px solid var(--border-color);
    background: var(--white);
    transition: box-shadow .15s;
}
.home-destaque-card:hover { box-shadow: 0 2px 8px rgba(0,0,0,.06); }
.home-destaque-card--featured { grid-column: 1; grid-row: 1 / 3; }
.home-destaque-card__img-wrap {
    position: relative; width: 100%; aspect-ratio: 3/2;
    overflow: hidden; background: var(--gray-light);
}
.home-destaque-card--featured .home-destaque-card__img-wrap { aspect-ratio: 3/2; }
.home-destaque-card__img-bg {
    position: absolute; inset: 0;
    background-size: cover; background-position: center;
    filter: blur(20px); transform: scale(1.1); opacity: .5;
}
.home-destaque-card__img {
    position: relative; z-index: 1;
    width: 100%; height: 100%; object-fit: contain;
}

.home-destaque-card__img-wrap--empty {
    width: 100%; height: 100%; display: flex; align-items: center;
    justify-content: center; padding: 16px;
    font-family: var(--font-heading); font-weight: 700;
    color: var(--text-secondary); font-size: 14px; text-align: center;
}
.home-destaque-card__body { padding: 12px 14px 14px; }
.home-destaque-card__cat {
    font-size: 10px; font-weight: 700; text-transform: uppercase;
    letter-spacing: .06em; display: block; margin-bottom: 4px;
}
.home-destaque-card__title {
    font-family: var(--font-heading); font-size: 15px; font-weight: 800;
    color: var(--text-primary); margin: 0 0 8px; line-height: 1.3;
}
.home-destaque-card--featured .home-destaque-card__title { font-size: 1.2rem; }
.home-destaque-card__meta { display: flex; gap: 12px; font-size: 12px; color: var(--text-tertiary); }

@media(max-width:768px) {
    .home-destaque__grid { grid-template-columns: 1fr; }
    .home-destaque-card--featured { grid-column: auto; grid-row: auto; }
}

/* ============================================================
   HOMEPAGE
   ============================================================ */
.home-page {
    padding: 0 0 80px;
}

/* Hero */
.home-hero {
    padding: 56px 24px 64px;
    text-align: center;
    margin-bottom: 40px;
}
.home-hero__inner { max-width: 580px; margin: 0 auto; }

/* Título hero com typewriter */
.home-hero__title {
    font-family: var(--font-heading);
    font-size: clamp(2rem, 4vw, 3rem);
    font-weight: 900; line-height: 1.15;
    letter-spacing: -.035em; color: var(--text-primary);
    margin: 0 0 28px;
}
.home-hero__title-static { display: block; }
.home-hero__title-dynamic {
    display: inline-block;
    position: relative;
    color: var(--text-primary);
    min-height: 1.15em;
}
/* cursor piscante */
.home-hero__title-dynamic::after {
    content: '|';
    display: inline-block;
    margin-left: 2px;
    animation: heroCursor .7s step-end infinite;
    color: var(--text-primary);
    font-weight: 300;
}
.home-hero__title-dynamic--pause::after { opacity: 0; }
@keyframes heroCursor { 0%,100%{opacity:1} 50%{opacity:0} }

/* Search box */
.home-hero__search-wrap { position: relative; max-width: 480px; margin: 0 auto; }
.home-hero__search-box {
    display: flex; align-items: center; gap: 10px;
    background: var(--white);
    border: 2px solid var(--white);
    border-radius: 50px;
    padding: 14px 18px;
    box-shadow: 0 4px 24px rgba(0,0,0,.12);
    transition: box-shadow .2s, border-color .2s;
}
.home-hero__search-box:focus-within {
    border-color: var(--text-primary);
    box-shadow: 0 4px 32px rgba(0,0,0,.18);
}
.home-hero__search-icon { color: var(--text-tertiary); flex-shrink: 0; }
.home-hero__search-input {
    flex: 1; border: none; outline: none; background: transparent;
    font-family: var(--font-heading); font-size: 16px; font-weight: 600;
    color: var(--text-primary);
}
.home-hero__search-input::placeholder { color: var(--text-tertiary); font-weight: 500; }
.home-hero__search-clear {
    display: none; align-items: center; justify-content: center;
    width: 22px; height: 22px; border-radius: 50%;
    border: none; background: var(--text-tertiary); color: var(--white);
    font-size: 11px; cursor: pointer; flex-shrink: 0; line-height: 1;
    transition: background .15s;
}
.home-hero__search-clear:hover { background: var(--text-primary); }

/* Dropdown */
.home-hero__dropdown {
    position: absolute; top: calc(100% + 8px); left: 0; right: 0;
    background: var(--white); border-radius: 20px;
    box-shadow: 0 8px 40px rgba(0,0,0,.14);
    list-style: none; margin: 0; padding: 8px 0;
    max-height: 320px; overflow-y: auto;
    display: none; z-index: 100;
}
.home-hero__dropdown--open { display: block; }
.home-hero__dropdown-item {
    display: flex; align-items: center; justify-content: space-between;
    padding: 12px 20px; cursor: pointer;
    transition: background .12s;
}
.home-hero__dropdown-item:hover { background: var(--hover-bg); }
.home-hero__dropdown-nome {
    font-family: var(--font-heading); font-size: 14px;
    font-weight: 700; color: var(--text-primary);
}
.home-hero__dropdown-count {
    font-size: 12px; color: var(--text-tertiary); font-weight: 500;
}

/* Transições hero */
.home-hero__step { transition: opacity .22s, transform .22s; }
.home-hero__step--hidden { display: none; }
.home-hero__step--enter { animation: heroEnter .32s ease; }
@keyframes heroEnter {
    from { opacity: 0; transform: translateX(24px); }
    to   { opacity: 1; transform: translateX(0); }
}

/* Secções */
 
.home-section { 
    margin-bottom: 56px;
}
 .home-destaque__grid {
    min-height: 600px; /* Reserva espaço para os cards carregarem */
    }
 
/* Mobile - seções menores */
@media (max-width: 768px) {
    .home-destaque__grid {
        min-height: 400px;
    }
}
 
/* Quando conteúdo carrega, altura ajusta automaticamente */
.home-section.loaded {
    min-height: auto;
}

.home-section { margin-bottom: 56px; }
.home-section__head {
    display: flex; align-items: baseline;
    justify-content: space-between; margin-bottom: 20px;
    border-bottom: 2px solid var(--text-primary); padding-bottom: 8px;
}
.home-section__title {
    font-family: var(--font-heading); font-size: 1.4rem;
    font-weight: 900; color: var(--text-primary); margin: 0;
}
.home-section__link {
    font-size: 13px; font-weight: 700; color: var(--text-secondary);
    text-decoration: none; font-family: var(--font-heading); transition: color .15s;
}
.home-section__link:hover { color: var(--text-primary); }

/* ── Categoria em destaque ── */
.home-cat-destaque { margin-bottom: 48px; }
.home-cat-destaque__head {
    display: flex; align-items: center;
    justify-content: space-between; margin-bottom: 20px;
    border-bottom: 2px solid var(--text-primary); padding-bottom: 10px;
}
.home-cat-destaque__eyebrow {
    font-size: 10px; font-weight: 700; text-transform: uppercase;
    letter-spacing: .12em; color: var(--cd-cor); display: block; margin-bottom: 3px;
}
.home-cat-destaque__title {
    font-family: var(--font-heading); font-size: 1.5rem;
    font-weight: 900; color: var(--text-primary); margin: 0;
}
.home-cat-destaque__cta {
    font-size: 12px; font-weight: 700; color: var(--text-tertiary);
    text-decoration: none; font-family: var(--font-heading);
    transition: color .15s; flex-shrink: 0; white-space: nowrap;
}
.home-cat-destaque__cta:hover { color: var(--text-primary); }
.home-cat-destaque__events {
    display: flex; gap: 10px; overflow-x: auto;
    padding-bottom: 4px; scrollbar-width: none;
    -webkit-overflow-scrolling: touch; scroll-snap-type: x mandatory;
}
.home-cat-destaque__events::-webkit-scrollbar { display: none; }
.home-cat-destaque__events::after { content: ''; flex-shrink: 0; width: 2px; }
.home-cat-destaque__events .av-card-mini { width: 195px !important; flex-shrink: 0; scroll-snap-align: start; }
.home-cat-destaque__events .av-card-mini__img-wrap { height: 265px !important; }

/* ── Categorias — layout coluna + cards ── */
.home-catblock { margin-bottom: 48px; }
.home-catblock__inner {
    display: grid;
    grid-template-columns: 210px 1fr;
    gap: 24px;
    align-items: start;
}
.home-catblock__label {
    display: flex; flex-direction: column; gap: 12px;
    padding-top: 4px;
    position: sticky; top: 80px;
}
.home-catblock__name {
    font-family: var(--font-heading); font-size: 1.1rem; font-weight: 900;
    color: var(--text-primary); text-decoration: none; line-height: 1.2;
    border-left: 3px solid var(--cat-cor); padding-left: 10px;
    transition: color .15s;
}
.home-catblock__name:hover { color: var(--cat-cor); }
.home-catblock__subcats {
    display: flex; flex-direction: column; gap: 7px; padding-left: 13px;
}
.home-catblock__subcat {
    font-size: 13px; font-weight: 600; color: var(--text-tertiary);
    text-decoration: none; transition: color .15s; line-height: 1.3;
}
.home-catblock__subcat:hover { color: var(--cat-cor); }
.home-catblock__ver {
    font-size: 12px; font-weight: 700; color: var(--text-tertiary);
    text-decoration: none; padding-left: 13px; transition: color .15s;
    margin-top: 4px;
}
.home-catblock__ver:hover { color: var(--text-primary); }
.home-catblock__cards {
    display: flex; gap: 12px;
    overflow-x: auto; scrollbar-width: none;
    -webkit-overflow-scrolling: touch;
    scroll-snap-type: x mandatory;
}
.home-catblock__cards::-webkit-scrollbar { display: none; }
.home-catblock__cards .home-visto-card {
    width: 230px; flex-shrink: 0;
    scroll-snap-align: start;
}



/* ── Destaque / Editor grid ── */
.home-destaque__grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 12px;
}
.home-destaque__grid:has(.home-destaque-card--featured) {
    grid-template-columns: 2fr 1fr;
    grid-template-rows: auto auto;
}
.home-destaque-card {
    display: block; text-decoration: none;
    border-radius: 14px; overflow: hidden;
    border: 1.5px solid var(--border-color);
    background: var(--white);
    transition: transform .15s, box-shadow .15s;
}
.home-destaque-card:hover { box-shadow: 0 2px 8px rgba(0,0,0,.06); }
.home-destaque-card--featured { grid-column: 1; grid-row: 1 / 3; }
.home-destaque-card__img-wrap {
    position: relative; width: 100%; aspect-ratio: 3/2;
    overflow: hidden; background: var(--gray-light);
}
.home-destaque-card--featured .home-destaque-card__img-wrap { aspect-ratio: 3/2; }
.home-destaque-card__img-bg {
    position: absolute; inset: 0;
    background-size: cover; background-position: center;
    filter: blur(20px); transform: scale(1.1); opacity: .5;
}
.home-destaque-card__img {
    position: relative; z-index: 1;
    width: 100%; height: 100%; object-fit: contain;
}
.home-destaque-card__img-wrap--empty {
    width: 100%; height: 100%; min-height: 160px; display: flex; align-items: center;
    justify-content: center; padding: 16px;
    font-family: var(--font-heading); font-weight: 700;
    color: var(--text-secondary); font-size: 14px; text-align: center;
}
.home-destaque-card__body { padding: 12px 14px 14px; }
.home-destaque-card__cat {
    font-size: 10px; font-weight: 700; text-transform: uppercase;
    letter-spacing: .06em; display: block; margin-bottom: 4px;
}
.home-destaque-card__title {
    font-family: var(--font-heading); font-size: 14px; font-weight: 800;
    color: var(--text-primary); margin: 0 0 6px; line-height: 1.3;
}
.home-destaque-card--featured .home-destaque-card__title { font-size: 1.15rem; }
.home-destaque-card__meta { display: flex; flex-direction: column; gap: 3px; font-size: 11px; color: var(--text-tertiary); }

/* ── Mais Vistos ── */
.home-vistos__grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 12px;
}
@media(max-width:900px) {
    .home-vistos__grid { grid-template-columns: repeat(2, 1fr); }
}
.home-visto-card {
    display: block; text-decoration: none;
    border-radius: 14px; overflow: hidden;
    border: 1.5px solid var(--border-color);
    background: var(--white);
    transition: transform .15s, box-shadow .15s;
}
.home-visto-card:hover { box-shadow: 0 2px 8px rgba(0,0,0,.06); }
.home-visto-card__img-wrap {
    position: relative; width: 100%; aspect-ratio: 3/2;
    overflow: hidden; background: var(--gray-light);
}
.home-visto-card__img-bg {
    position: absolute; inset: 0;
    background-size: cover; background-position: center;
    filter: blur(20px); transform: scale(1.1); opacity: .5;
}
.home-visto-card__img {
    position: relative; z-index: 1;
    width: 100%; height: 100%; object-fit: contain;
}
.home-visto-card__empty {
    width: 100%; height: 100%; min-height: 160px;
    display: flex; align-items: center; justify-content: center;
    padding: 16px; font-family: var(--font-heading);
    font-weight: 700; color: var(--text-secondary);
    font-size: 13px; text-align: center;
}
/* Número sobreposto */
.home-visto-card__rank {
    position: absolute; top: 10px; left: 10px; z-index: 2;
    font-family: var(--font-heading); font-size: 1.6rem; font-weight: 900;
    color: var(--white); line-height: 1;
    text-shadow: 0 2px 8px rgba(0,0,0,.5);
    background: rgba(0,0,0,.25);
    border-radius: 8px; padding: 2px 8px;
}
.home-visto-card__body { padding: 12px 14px 14px; }
.home-visto-card__cat {
    font-size: 10px; font-weight: 700; text-transform: uppercase;
    letter-spacing: .06em; display: block; margin-bottom: 4px;
}
.home-visto-card__title {
    font-family: var(--font-heading); font-size: 14px; font-weight: 800;
    color: var(--text-primary); margin: 0 0 6px; line-height: 1.3;
}
.home-visto-card__meta { display: flex; flex-direction: column; gap: 3px; font-size: 11px; color: var(--text-tertiary); }

/* ── CTAs de conversão ── */
.home-cta {
    border-radius: 20px;
    padding: 48px 52px;
    margin-bottom: 32px;
}
.home-cta--users {
    background: var(--text-primary);
    color: var(--white);
}
.home-cta--promoters {
    background: var(--yellow-primary);
    color: var(--text-primary); /* ALTERADO de #111 para var(--text-primary) */
}
.home-cta__inner { max-width: 600px; }
.home-cta__title {
    font-family: var(--font-heading);
    font-size: 1.8rem; font-weight: 900;
    margin: 0 0 12px; line-height: 1.1;
}
.home-cta--users .home-cta__title { color: var(--white); }
.home-cta__text {
    font-size: 15px; line-height: 1.6;
    margin: 0 0 20px; opacity: .85;
}
.home-cta__list {
    list-style: none; padding: 0; margin: 0 0 28px;
    display: flex; flex-direction: column; gap: 8px;
}
.home-cta__list li { font-size: 14px; font-weight: 600; }
.home-cta__actions { display: flex; gap: 10px; flex-wrap: wrap; }
.home-cta__btn {
    padding: 12px 24px; border-radius: 10px;
    font-size: 14px; font-weight: 700;
    font-family: var(--font-heading);
    text-decoration: none; transition: opacity .15s; border: 2px solid transparent;
}
.home-cta__btn:hover { opacity: .85; }
.home-cta--users .home-cta__btn--primary {
    background: var(--yellow-primary); color: var(--text-primary); /* ALTERADO de #111 para var(--text-primary) */ border-color: var(--yellow-primary);
}
.home-cta--users .home-cta__btn--secondary {
    background: transparent; color: var(--white); border-color: rgba(255,255,255,.4);
}
.home-cta--promoters .home-cta__btn--primary {
    background: #111; color: var(--white); border-color: var(--text-primary); /* ALTERADO de #111 para var(--text-primary) */
}
.home-cta--promoters .home-cta__btn--secondary {
    background: transparent; color: var(--text-primary); /* ALTERADO de #111 para var(--text-primary) */ border-color: rgba(0,0,0,.3);
}

/* Dark mode */


 

/* ── Mobile ── */
@media(max-width:768px) {
    /* Padding lateral base */
    .home-page { padding: 0 16px 48px; }

    /* Hero — já tem padding próprio, anular o do home-page */
    .home-hero { padding: 32px 0 40px; margin-bottom: 24px; margin-left: -16px; margin-right: -16px; }
    .home-hero__inner { padding: 0 16px; }
    .home-hero__title { font-size: 1.7rem; margin-bottom: 20px; }
    .home-hero__search-wrap { max-width: 100%; }

    /* Secções */
    .home-section { margin-bottom: 40px; }

    /* av-hscroll sangra — anula o padding do home-page */
    .home-page .av-hscroll { margin-left: -16px; margin-right: -16px; }
    .home-page .av-hscroll::before { content: ''; flex-shrink: 0; width: 16px; }
    .home-page .av-hscroll::after { content: ''; flex-shrink: 0; width: 40px; }

    /* Pills subcategorias — scroll horizontal com sangria */
    .home-page .av-section__subcats {
        flex-wrap: nowrap; overflow-x: auto;
        scrollbar-width: none; -webkit-overflow-scrolling: touch;
        margin-left: -16px; margin-right: -16px; padding-bottom: 2px;
    }
    .home-page .av-section__subcats::-webkit-scrollbar { display: none; }
    .home-page .av-section__subcats::before { content: ''; flex-shrink: 0; width: 16px; }
    .home-page .av-section__subcats::after { content: ''; flex-shrink: 0; width: 40px; }

    /* Escolha do Editor — scroll horizontal */
    .home-destaque__grid { display: flex; gap: 12px; overflow-x: auto; scrollbar-width: none; -webkit-overflow-scrolling: touch; margin-left: -16px; margin-right: -16px; align-items: stretch; }
    .home-destaque__grid::-webkit-scrollbar { display: none; }
    .home-destaque__grid::before { content: ''; flex-shrink: 0; width: 16px; }
    .home-destaque__grid::after { content: ''; flex-shrink: 0; width: 40px; }
    .home-destaque-card { flex-shrink: 0; width: 240px; display: flex; flex-direction: column; }
    .home-destaque-card--featured { width: 280px; }
    .home-destaque-card__img-wrap { height: 160px !important; aspect-ratio: unset !important; flex-shrink: 0; }
    .home-destaque-card__body { flex: 1; }

    /* Mais Vistos — scroll horizontal */
    .home-vistos__grid { display: flex; gap: 12px; overflow-x: auto; scrollbar-width: none; -webkit-overflow-scrolling: touch; margin-left: -16px; margin-right: -16px; }
    .home-vistos__grid::-webkit-scrollbar { display: none; }
    .home-vistos__grid::before { content: ''; flex-shrink: 0; width: 16px; }
    .home-vistos__grid::after { content: ''; flex-shrink: 0; width: 40px; }
    .home-visto-card { flex-shrink: 0; width: 200px; display: block; }
    .home-visto-card__img-wrap { width: 100%; aspect-ratio: 3/2; min-height: unset; border-radius: 10px 10px 0 0; }
    .home-visto-card__body { padding: 10px 12px 12px; }
    .home-visto-card__title { font-size: 13px; }
    .home-visto-card__rank { top: 6px; left: 6px; font-size: 1.1rem; padding: 1px 5px; }

    /* CTAs full-bleed */
    .home-cta { padding: 32px 24px; margin-bottom: 16px; margin-left: -16px; margin-right: -16px; border-radius: 0; }
    .home-cta__title { font-size: 1.4rem; }
    .home-cta__text { font-size: 14px; margin-bottom: 16px; }
    .home-cta__list { margin-bottom: 20px; }
    .home-cta__actions { flex-direction: column; gap: 8px; }
    .home-cta__btn { text-align: center; padding: 13px 20px; width: 100%; box-sizing: border-box; }
}
/* ============================================================
   404
   ============================================================ */
.av-404 {
    max-width: 600px;
    margin: 60px auto 80px;
    text-align: center;
    padding: 0 24px;
}
.av-404__number {
    display: flex; align-items: center; justify-content: center;
    gap: 4px; margin-bottom: 24px; line-height: 1;
}
.av-404__digit {
    font-family: var(--font-heading);
    font-size: clamp(6rem, 15vw, 10rem);
    font-weight: 900; letter-spacing: -.04em;
    color: var(--text-primary);
}
.av-404__zero {
    font-family: var(--font-heading);
    font-size: clamp(6rem, 15vw, 10rem);
    font-weight: 900; letter-spacing: -.04em;
    color: var(--yellow-primary);
    -webkit-text-stroke: 3px var(--text-primary);
}
.av-404__title {
    font-family: var(--font-heading);
    font-size: clamp(1.4rem, 3vw, 2rem);
    font-weight: 900; letter-spacing: -.02em;
    margin: 0 0 10px;
}
.av-404__desc {
    font-size: 15px; color: var(--text-secondary);
    margin: 0 0 28px; line-height: 1.6;
}
.av-404__search {
    position: relative; margin-bottom: 20px;
}
.av-404__quando {
    display: flex; gap: 8px; justify-content: center;
    flex-wrap: wrap; margin-bottom: 40px;
}
.av-404__quando-btn {
    display: flex; flex-direction: column; align-items: center;
    padding: 10px 16px; border-radius: 20px;
    border: 1.5px solid var(--border-color);
    text-decoration: none; background: var(--white);
    transition: all .15s;
}
.av-404__quando-btn:hover { border-color: var(--text-primary); }
.av-404__quando-label {
    font-family: var(--font-heading);
    font-size: 13px; font-weight: 800; color: var(--text-primary);
}
.av-404__quando-sub {
    font-size: 11px; color: var(--text-tertiary); font-weight: 500;
}
.av-404__section { margin-bottom: 32px; }
.av-404__section-title {
    font-family: var(--font-heading);
    font-size: 13px; font-weight: 700; text-transform: uppercase;
    letter-spacing: .08em; color: var(--text-tertiary);
    margin: 0 0 14px;
}
.av-404__cats {
    display: flex; flex-wrap: wrap; gap: 8px; justify-content: center;
}
.av-404__cat {
    padding: 8px 18px; border-radius: 20px;
    background: var(--cat-bg); color: var(--cat-cor);
    text-decoration: none; font-size: 14px; font-weight: 700;
    font-family: var(--font-heading); transition: opacity .15s;
    border: 1.5px solid transparent;
}
.av-404__cat:hover { opacity: .85; border-color: var(--cat-cor); }
.av-404__home {
    display: inline-block; font-size: 13px; font-weight: 700;
    color: var(--text-tertiary); text-decoration: none;
    transition: color .15s;
}
.av-404__home:hover { color: var(--text-primary); }

@media(max-width:768px) {
    .av-404 { margin: 40px auto 60px; }
    .av-404__quando { gap: 6px; }
    .av-404__quando-btn { padding: 8px 12px; }
}

/* ── Aviso evento terminado ── */
.av-evento-terminado {
    background: #FEE2E2;
    border: 1.5px solid #EF4444;
    border-radius: 10px;
    padding: 12px 14px;
    margin-bottom: 16px;
}
.av-evento-terminado__icon { display: none; }
.av-evento-terminado__title { font-size: 13px; font-weight: 700; color: #991B1B; }
.av-evento-terminado__sub { font-size: 12px; color: #B91C1C; margin-top: 2px; }

/* ── Vídeo embed ── */
.av-evento-video {
    position: relative;
    aspect-ratio: 16/9;
    border-radius: 12px;
    overflow: hidden;
    margin-bottom: 32px;
    background: #000;
}
.av-evento-video iframe {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
}

/* ── Mobile district panel ── */
.mobile-dist-panel {
    position: fixed;
    inset: 0;
    background: var(--white);
    z-index: 2000;
    overflow-y: auto;
    padding: 0 16px 32px;
    transform: translateX(100%);
    transition: transform .25s ease;
    pointer-events: none;
}
.mobile-dist-panel.open {
    transform: translateX(0);
    pointer-events: all;
}
.mobile-dist-overlay {
    display: none;
    position: fixed;
    inset: 0;
    background: rgba(0,0,0,.4);
    z-index: 1999;
}
.mobile-dist-overlay.open { display: block; }

/* Reutiliza estilos do desktop para os níveis */
.mobile-dist-panel .sidebar-dist-panel__head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 20px 0 14px;
    font-size: 14px;
    font-weight: 700;
    color: var(--text-primary);
    position: sticky;
    top: 0;
    background: var(--white);
    border-bottom: 1px solid var(--border-color);
    margin-bottom: 14px;
}
.mobile-dist-panel .sidebar-dist-panel__grid {
    display: flex;
    flex-direction: column;
    gap: 4px;
}
/* Concelhos em pills */
.mobile-dist-panel [id^="mobileDist-"] .sidebar-dist-panel__grid {
    flex-direction: row;
    flex-wrap: wrap;
    gap: 8px;
}
.mobile-dist-panel [id^="mobileDist-"] .sidebar-dist-panel__grid .district-link {
    width: auto;
    padding: 8px 14px;
    border-radius: 20px;
    font-size: 13px;
    font-weight: 500;
    background: var(--gray-light);
    border: 1.5px solid var(--border-color);
}
.mobile-dist-panel [id^="mobileDist-"] .sidebar-dist-panel__grid .district-link:hover,
.mobile-dist-panel [id^="mobileDist-"] .sidebar-dist-panel__grid .district-link.active {
    background: var(--yellow-primary);
    border-color: var(--yellow-primary);
    font-weight: 700;
}
.mobile-dist-panel [id^="mobileDist-"] .sidebar-dist-panel__grid .district-link.inactive {
    opacity: 0.4;
    font-weight: 400;
}


/* ── Single evento — mobile ── */
@media(max-width:768px) {
    .evento-galeria { margin: 1.5rem 0; }
    .galeria-container { width: 100% !important; }
    .galeria-item img { height: 200px; }
    .av-evento-video { margin-bottom: 20px; border-radius: 8px; }
    .av-related-grid .home-visto-card { flex: 0 0 200px; }
    .av-single-related { margin-top: 32px; }
    .av-distrito-section { margin-top: 24px; }
}



/* ═══════════════════════════════════════════
   TEMPLATE AGENDA
   ═══════════════════════════════════════════ */

.av-agenda-filters {
    border: 1.5px solid var(--border-color);
    border-radius: 12px;
    overflow: hidden;
    margin-bottom: 32px;
}

.av-agenda-filters__grid {
    display: flex;
    flex-direction: column;
}

.av-agenda-filter {
    padding: 14px 20px;
    border-bottom: 1px solid var(--border-color);
    display: flex;
    align-items: flex-start;
    gap: 16px;
}
.av-agenda-filter:last-child { border-bottom: none; }

.av-agenda-filter--row {
    display: flex;
    gap: 0;
    padding: 0;
}
.av-agenda-filter__col {
    flex: 1;
    padding: 14px 20px;
}
.av-agenda-filter__col--right {
    border-left: 1px solid var(--border-color);
}

.av-agenda-filter__label {
    font-size: 11px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .1em;
    color: var(--text-tertiary);
    white-space: nowrap;
    padding-top: 6px;
    min-width: 90px;
}

.av-agenda-filter__pills {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
}

.av-agenda-pill {
    display: inline-block;
    padding: 5px 14px;
    border-radius: 999px;
    border: 1.5px solid var(--border-color);
    font-size: 13px;
    font-weight: 600;
    color: var(--text-secondary);
    text-decoration: none;
    background: var(--white);
    transition: border-color .15s, color .15s;
    white-space: nowrap;
    line-height: 1.4;
}
.av-agenda-pill:hover { border-color: var(--text-secondary); color: var(--text-primary); }
.av-agenda-pill.active { background: var(--yellow-primary); border-color: var(--yellow-primary); color: #000; }

.av-agenda-filter__selects {
    display: flex;
    gap: 8px;
    flex: 1;
}

.av-agenda-select {
    flex: 1;
    padding: 5px 32px 5px 12px;
    border: 1.5px solid var(--border-color);
    border-radius: 8px;
    font-size: 13px;
    font-family: var(--font-body);
    color: var(--text-primary);
    background: var(--white);
    cursor: pointer;
    appearance: none;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6' viewBox='0 0 10 6'%3E%3Cpath d='M1 1l4 4 4-4' stroke='%23999' stroke-width='1.5' fill='none' stroke-linecap='round'/%3E%3C/svg%3E");
    background-repeat: no-repeat;
    background-position: right 10px center;
}
.av-agenda-select:disabled { opacity: .4; cursor: not-allowed; }
.av-agenda-select:focus { outline: none; border-color: var(--text-primary); }

.av-agenda-filters__footer {
    padding: 10px 20px;
    border-top: 1px solid var(--border-color);
    background: var(--hover-bg);
}
.av-agenda-clear {
    font-size: 12px;
    font-weight: 600;
    color: var(--text-tertiary);
    text-decoration: none;
}
.av-agenda-clear:hover { color: var(--text-primary); }

@media (max-width: 768px) {
    .av-agenda-filters { border-radius: 8px; }
    .av-agenda-filter { flex-direction: column; gap: 8px; padding: 12px 16px; }
    .av-agenda-filter__label { min-width: unset; padding-top: 0; }
    .av-agenda-filter__pills {
        flex-wrap: wrap;
    }
    .av-agenda-pill { flex-shrink: 0; }
    .av-agenda-filter--row { flex-direction: column; padding: 0; }
    .av-agenda-filter__col { padding: 12px 16px; }
    .av-agenda-filter__col--right { border-left: none; border-top: 1px solid var(--border-color); }
    .av-agenda-filter__selects { flex-direction: column; }
    .av-agenda-filters__footer { padding: 10px 16px; }
}

/* ── Agenda Gate (utilizadores não registados) ── */
.av-agenda-gate {
    display: flex;
    justify-content: center;
    padding: 60px 16px;
}
.av-agenda-gate__inner {
    max-width: 480px;
    width: 100%;
    text-align: center;
}
.av-agenda-gate__title {
    font-size: clamp(1.4rem, 4vw, 1.9rem);
    font-weight: 900;
    font-family: var(--font-heading);
    color: var(--text-primary);
    margin-bottom: 12px;
    line-height: 1.05;
    letter-spacing: -.03em;
}
.av-agenda-gate__text {
    font-size: 15px;
    color: var(--text-secondary);
    line-height: 1.6;
    margin-bottom: 24px;
}
.av-agenda-gate__perks {
    list-style: none;
    padding: 16px 20px;
    margin: 0 0 32px;
    text-align: left;
    background: var(--hover-bg);
    border: 1.5px solid var(--border-color);
    border-radius: 12px;
    display: flex;
    flex-direction: column;
    gap: 10px;
}
.av-agenda-gate__perks li {
    font-size: 14px;
    font-weight: 600;
    color: var(--text-primary);
    padding-left: 12px;
    border-left: 3px solid var(--yellow-primary);
}
.av-agenda-gate__actions {
    display: flex;
    align-items: center;
    gap: 16px;
    justify-content: center;
}
@media (max-width: 768px) {
    .av-agenda-gate { padding: 40px 0; }
    .av-agenda-gate__actions { flex-direction: column; align-items: stretch; }
}

/* ── Sidebar Explora a Região (desktop) ── */
.sidebar-explora {
    padding: 16px 0;
    border-top: 1px solid var(--border-color);
    margin-top: 8px;
}
.sidebar-explora__head {
    display: flex;
    justify-content: space-between;
    align-items: baseline;
    margin-bottom: 10px;
}
.sidebar-explora__label {
    font-size: 11px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .1em;
    color: var(--text-tertiary);
}
.sidebar-explora__dist {
    font-size: 11px;
    color: var(--text-tertiary);
}
.sidebar-explora__pills {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
}
.sidebar-explora__pill {
    display: inline-block;
    padding: 5px 12px;
    border-radius: 20px;
    font-size: 12px;
    font-weight: 600;
    color: var(--text-secondary);
    background: var(--pill-bg);
    text-decoration: none;
    transition: all .15s;
}
.sidebar-explora__pill:hover { background: var(--pill-bg-hover); color: var(--text-primary); }
.sidebar-explora__pill.active { background: var(--yellow-primary); color: var(--text-primary); /* ALTERADO de #111 para var(--text-primary) */ }

/* ── Badge Recomendamos ── */
/* Card feed — estrela topo esquerdo, sem caixa */
.sf-card__badge--rec {
    top: 12px;
    left: 12px;
    right: auto;
    bottom: auto;
    background: var(--yellow-primary);
    color: var(--text-primary); /* ALTERADO de #111 para var(--text-primary) */
    border: none;
    font-size: 10px;
    font-weight: 900;
    font-family: var(--font-heading);
    letter-spacing: .08em;
    text-transform: uppercase;
    padding: 5px 10px 5px 8px;
    border-radius: 4px;
    display: inline-flex;
    align-items: center;
    gap: 6px;
    line-height: 1;
}
.sf-card__badge--rec svg { flex-shrink: 0; }

/* Single evento eyebrow */
.av-badge-rec {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    font-size: 10px;
    font-weight: 900;
    font-family: var(--font-heading);
    letter-spacing: .08em;
    text-transform: uppercase;
    color: var(--text-primary); /* ALTERADO de #111 para var(--text-primary) */
    background: var(--yellow-primary);
    padding: 4px 10px 4px 8px;
    border-radius: 4px;
    vertical-align: middle;
    margin-right: 8px;
    line-height: 1;
}
.av-badge-rec svg { flex-shrink: 0; }

/* Badge Recomendamos — Escolha do Editor (home) */
.home-destaque-card__rec {
    position: absolute;
    top: 12px;
    left: 12px;
    display: inline-flex;
    align-items: center;
    gap: 6px;
    font-size: 10px;
    font-weight: 900;
    font-family: var(--font-heading);
    letter-spacing: .08em;
    text-transform: uppercase;
    background: var(--yellow-primary);
    color: var(--text-primary); /* ALTERADO de #111 para var(--text-primary) */
    padding: 5px 10px 5px 8px;
    border-radius: 4px;
    z-index: 2;
    line-height: 1;
}
.home-destaque-card__rec svg { flex-shrink: 0; }

/* ═══════════════════════════════════════════
   HOME PERSONALIZADA
   ═══════════════════════════════════════════ */

.home-personalizada {
    margin-bottom: 40px;
    padding-bottom: 32px;
    border-bottom: 1px solid var(--border-color);
}
.home-personalizada__head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-bottom: 20px;
}
.home-personalizada__label {
    font-size: 11px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .1em;
    color: var(--text-tertiary);
}
.home-personalizada__edit,
.home-personalizada__cta {
    font-size: 13px;
    font-weight: 600;
    color: var(--text-secondary);
    text-decoration: none;
}
.home-personalizada__edit:hover,
.home-personalizada__cta:hover { color: var(--text-primary); }

.home-personalizada--empty {
    display: flex;
    align-items: center;
    gap: 16px;
    padding: 20px;
    background: var(--hover-bg);
    border-radius: 10px;
    font-size: 14px;
    color: var(--text-secondary);
}

/* ═══════════════════════════════════════════
   PREFERÊNCIAS
   ═══════════════════════════════════════════ */

.pref-title {
    font-size: 1.4rem;
    font-weight: 900;
    font-family: var(--font-heading);
    margin-bottom: 6px;
}
.pref-desc {
    font-size: 14px;
    color: var(--text-secondary);
    margin-bottom: 32px;
}
.pref-alert {
    padding: 12px 16px;
    border-radius: 8px;
    font-size: 14px;
    font-weight: 600;
    margin-bottom: 24px;
}
.pref-alert--ok { background: #E6F9EE; color: #1A7A3C; }

.pref-section {
    margin-bottom: 36px;
}
.pref-section__title {
    font-size: 15px;
    font-weight: 700;
    margin-bottom: 4px;
}
.pref-section__desc {
    font-size: 13px;
    color: var(--text-tertiary);
    margin-bottom: 16px;
}

/* Distrito accordion */
.pref-distrito {
    border: 1.5px solid var(--border-color);
    border-radius: 8px;
    margin-bottom: 8px;
    overflow: hidden;
}
.pref-distrito__name {
    padding: 12px 16px;
    font-size: 14px;
    font-weight: 700;
    cursor: pointer;
    list-style: none;
    display: flex;
    align-items: center;
    gap: 8px;
    background: var(--hover-bg);
}
.pref-distrito__name::-webkit-details-marker { display: none; }
.pref-distrito__name::after {
    content: '›';
    margin-left: auto;
    font-size: 18px;
    color: var(--text-tertiary);
    transition: transform .2s;
}
details[open] .pref-distrito__name::after { transform: rotate(90deg); }

.pref-distrito__pills {
    padding: 12px 16px;
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}

/* Pills genéricas */
.pref-pill {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 6px 14px;
    border-radius: 999px;
    border: 1.5px solid var(--border-color);
    font-size: 13px;
    font-weight: 600;
    color: var(--text-secondary);
    cursor: pointer;
    transition: all .15s;
    user-select: none;
}
.pref-pill input { display: none; }
.pref-pill:hover { border-color: var(--text-secondary); color: var(--text-primary); }
.pref-pill.active { background: var(--yellow-primary); border-color: var(--yellow-primary); color: #000; }

.pref-cats { display: flex; flex-wrap: wrap; gap: 8px; }

.pref-submit {
    margin-top: 8px;
    padding: 12px 32px;
    background: var(--yellow-primary);
    color: #000;
    border: none;
    border-radius: 50px;
    font-size: 15px;
    font-weight: 700;
    font-family: var(--font-heading);
    cursor: pointer;
    transition: opacity .15s;
}
.pref-submit:hover { opacity: .85; }

@media (max-width: 768px) {
    .home-personalizada--empty { flex-direction: column; align-items: flex-start; }
}

/* ── Botões footer single evento ── */
.av-event-actions-footer {
    display: flex;
    gap: 8px;
    flex-wrap: wrap;
    padding-top: 12px;
    border-top: 1px solid var(--border-color);
    margin-top: 4px;
}
.av-footer-btn {
    font-size: 12px;
    font-weight: 600;
    color: var(--text-tertiary);
    background: none;
    border: none;
    cursor: pointer;
    padding: 0;
    text-decoration: underline;
    text-underline-offset: 3px;
    transition: color .15s;
}
.av-footer-btn:hover { color: var(--text-primary); }
.av-footer-btn--error { color: var(--text-tertiary); }

/* ── Modais ── */
.av-modal-overlay {
    position: fixed;
    inset: 0;
    background: rgba(0,0,0,.5);
    z-index: 9999;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 16px;
}
.av-modal {
    background: var(--white);
    border-radius: 12px;
    padding: 32px;
    max-width: 480px;
    width: 100%;
    position: relative;
    max-height: 90vh;
    overflow-y: auto;
}
.av-modal__close {
    position: absolute;
    top: 16px;
    right: 16px;
    background: none;
    border: none;
    font-size: 18px;
    cursor: pointer;
    color: var(--text-tertiary);
    line-height: 1;
}
.av-modal__close:hover { color: var(--text-primary); }
.av-modal__title {
    font-size: 1.2rem;
    font-weight: 900;
    font-family: var(--font-heading);
    margin-bottom: 8px;
}
.av-modal__desc {
    font-size: 14px;
    color: var(--text-secondary);
    margin-bottom: 20px;
    line-height: 1.5;
}
.av-modal__field {
    margin-bottom: 14px;
    display: flex;
    flex-direction: column;
    gap: 5px;
}
.av-modal__field label {
    font-size: 12px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .06em;
    color: var(--text-tertiary);
}
.av-modal__field input,
.av-modal__field textarea,
.av-modal__field select {
    border: 1.5px solid var(--border-color);
    border-radius: 8px;
    padding: 10px 12px;
    font-size: 14px;
    font-family: var(--font-body);
    color: var(--text-primary);
    background: var(--white);
    width: 100%;
}
.av-modal__field input:focus,
.av-modal__field textarea:focus,
.av-modal__field select:focus { outline: none; border-color: var(--text-primary); }
.av-modal__submit {
    width: 100%;
    padding: 12px;
    background: var(--yellow-primary);
    color: #000;
    border: none;
    border-radius: 8px;
    font-size: 15px;
    font-weight: 700;
    font-family: var(--font-heading);
    cursor: pointer;
    margin-top: 8px;
    transition: opacity .15s;
}
.av-modal__submit:hover { opacity: .85; }
.av-modal-msg { font-size: 13px; font-weight: 600; padding: 8px 0; min-height: 24px; }
.av-modal-msg--ok  { color: #1A7A3C; }
.av-modal-msg--err { color: #c0392b; }

/* ── Preferências — notificações ── */
.pref-notif__row {
    display: flex;
    flex-direction: column;
    gap: 10px;
}
.pref-notif__label {
    font-size: 13px;
    font-weight: 600;
    color: var(--text-primary);
}
.pref-notif__options {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}
.pref-radio {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 8px 16px;
    border: 1.5px solid var(--border-color);
    border-radius: 999px;
    cursor: pointer;
    font-size: 13px;
    font-weight: 600;
    color: var(--text-secondary);
    transition: all .15s;
}
.pref-radio input { display: none; }
.pref-radio:has(input:checked) {
    background: var(--yellow-primary);
    border-color: var(--yellow-primary);
    color: #000;
}

/* ── Preferências — selector de concelhos ── */
.pref-loc-selector {
    display: flex;
    gap: 8px;
    flex-wrap: wrap;
    align-items: center;
    margin-bottom: 12px;
}
.pref-add-btn {
    padding: 7px 16px;
    background: var(--yellow-primary);
    color: var(--text-primary); /* ALTERADO de #111 para var(--text-primary) */
    border: none;
    border-radius: 8px;
    font-size: 13px;
    font-weight: 700;
    cursor: pointer;
    white-space: nowrap;
}
.pref-add-btn:disabled { opacity: .4; cursor: not-allowed; }

.pref-selected-concelhos {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin-bottom: 6px;
    min-height: 32px;
}
.pref-selected-pill {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    background: var(--yellow-primary);
    color: var(--text-primary); /* ALTERADO de #111 para var(--text-primary) */
    font-size: 13px;
    font-weight: 600;
    padding: 5px 10px;
    border-radius: 999px;
}
.pref-remove-conc {
    background: none;
    border: none;
    cursor: pointer;
    font-size: 12px;
    color: var(--text-primary); /* ALTERADO de #111 para var(--text-primary) */
    padding: 0;
    line-height: 1;
    opacity: .6;
}
.pref-remove-conc:hover { opacity: 1; }
.pref-selected-count {
    font-size: 12px;
    color: var(--text-tertiary);
    margin: 0;
}
/* ============================================================
   RESPONSIVE MOBILE — Single Evento + User Tabs
   ============================================================ */

/* ── User Tabs — scroll horizontal no mobile ── */
@media (max-width: 768px) {
    .user-shell__header {
        flex-direction: column;
        align-items: flex-start;
        gap: 12px;
    }
    .user-tabs {
        flex-wrap: nowrap;
        overflow-x: auto;
        -webkit-overflow-scrolling: touch;
        scrollbar-width: none;
        width: 100%;
        padding-bottom: 2px;
        margin-left: -16px;
        margin-right: -16px;
        padding-left: 16px;
        padding-right: 16px;
    }
    .user-tabs::-webkit-scrollbar { display: none; }
    .user-tab {
        flex-shrink: 0;
        font-size: 0.8rem;
        padding: 6px 12px;
        white-space: nowrap;
    }
}

/* ── Single Evento — mobile ── */
@media (max-width: 768px) {

    /* Avaliações */
    .av-avaliacoes {
        margin: 24px 0;
        max-width: 100%;
    }
    .av-avaliacoes__head {
        flex-wrap: wrap;
        gap: 10px;
    }
    .av-avaliacoes__title {
        font-size: 1.1rem;
    }
    .av-rating-form__stars {
        gap: 8px;
    }
    .av-rating-form__star {
        font-size: 36px;
    }
    .av-rating-form__footer {
        flex-direction: column;
        align-items: flex-start;
        gap: 10px;
    }
    .av-rating-form__btn {
        width: 100%;
        text-align: center;
        justify-content: center;
    }

    /* Reviews */
    .av-review__head {
        gap: 6px;
    }
    .av-review__date {
        margin-left: 0;
        width: 100%;
        margin-top: 2px;
    }

    /* Partilha */
    .av-share__btns {
        flex-direction: column;
        gap: 8px;
    }
    .av-share__btn {
        width: 100%;
        justify-content: center;
    }

    /* Feed infinito */
    .sv-infinite-feed {
        padding: 0 0 32px;
    }
    .sv-infinite-feed__header {
        padding: 24px 0 16px;
    }
    .sv-infinite-feed__header span {
        font-size: 1.1rem;
    }

    /* Em alta no single */
    .single-evento-page .sidebar-widget--trending {
        margin: 24px 0;
        padding: 14px 16px;
    }

    /* Aviso evento terminado */
    .av-evento-terminado {
        margin: 0 0 16px;
    }

    /* Vídeo */
    .av-evento-video {
        margin-bottom: 16px;
    }
}

/* ── Tabela de eventos (Meus Eventos) — mobile ── */
@media (max-width: 768px) {
    .av-filters {
        padding: 12px;
    }
    .av-filters__row {
        flex-direction: column;
        gap: 10px;
    }
    .av-filter-group {
        min-width: 100%;
    }
    .av-filter-group--search {
        min-width: 100%;
    }
    .av-filters__actions {
        flex-direction: row;
        flex-wrap: wrap;
    }

    /* Tabela — scroll horizontal */
    .av-table-wrap {
        border-radius: 8px;
        -webkit-overflow-scrolling: touch;
    }
    .av-table {
        min-width: 560px;
    }
    .av-table thead th,
    .av-table td {
        padding: 8px 10px;
        font-size: 12px;
    }
    /* Esconder coluna "Publicado em" no mobile */
    .av-table th:nth-child(3),
    .av-table td:nth-child(3) {
        display: none;
    }

    /* Section bar */
    .av-section-bar {
        flex-direction: column;
        align-items: flex-start;
        gap: 8px;
    }
}

/* ── Home catblock — mobile ── */
@media (max-width: 768px) {
    .home-catblock__inner {
        grid-template-columns: 1fr;
        gap: 12px;
    }
    .home-catblock__label {
        position: static;
        flex-direction: row;
        align-items: center;
        flex-wrap: wrap;
        gap: 8px;
    }
    .home-catblock__name {
        font-size: 1rem;
    }
    .home-catblock__subcats {
        flex-direction: row;
        flex-wrap: wrap;
        padding-left: 0;
        gap: 6px;
    }
    .home-catblock__subcat {
        font-size: 12px;
    }
    .home-catblock__ver {
        padding-left: 0;
    }
    .home-catblock__cards {
        margin-left: -16px;
        margin-right: -16px;
        padding-left: 16px;
        scroll-snap-type: x mandatory;
    }
    .home-catblock__cards::after {
        content: '';
        flex-shrink: 0;
        width: 40px;
    }
}

/* ── User pages — mobile geral ── */
@media (max-width: 768px) {
    /* User bar */
    .av-user-bar,
    .db-user-bar {
        flex-direction: column;
        align-items: flex-start;
        gap: 12px;
    }
    .av-user-bar__stats {
        gap: 20px;
    }

    /* Dashboard metrics */
    .db-metrics {
        display: grid;
        grid-template-columns: 1fr 1fr;
        gap: 10px;
    }
    .db-metric {
        min-width: unset;
    }
    .db-metric__value {
        font-size: 20px;
    }

    /* Fav tabs */
    .av-fav-tabs {
        overflow-x: auto;
        scrollbar-width: none;
        -webkit-overflow-scrolling: touch;
        flex-wrap: nowrap;
    }
    .av-fav-tabs::-webkit-scrollbar { display: none; }
    .av-fav-tab {
        flex-shrink: 0;
        font-size: 13px;
        padding: 10px 14px;
    }

    /* Profile tabs */
    .pf-tabs {
        overflow-x: auto;
        scrollbar-width: none;
        flex-wrap: nowrap;
        -webkit-overflow-scrolling: touch;
    }
    .pf-tabs::-webkit-scrollbar { display: none; }
    .pf-tab { flex-shrink: 0; }

    /* Preferências */
    .pref-loc-selector {
        flex-direction: column;
        align-items: stretch;
    }
    .pref-notif__options {
        flex-wrap: wrap;
    }

    /* Formulário submeter/editar */
    .ef-tabs {
        flex-wrap: nowrap;
        overflow-x: auto;
        scrollbar-width: none;
    }
    .ef-tabs::-webkit-scrollbar { display: none; }
    .ef-tab { flex-shrink: 0; }
    .ef-row { flex-direction: column; }
    .ef-field--half { max-width: 100%; }
    .ef-select--md { max-width: 100%; }
}

/* ── Agenda — mobile ── */
@media (max-width: 768px) {
    .av-agenda-gate {
        padding: 32px 0;
    }
    .av-agenda-gate__actions {
        flex-direction: column;
        align-items: stretch;
    }
    .av-agenda-gate__actions .btn {
        text-align: center;
        width: 100%;
        box-sizing: border-box;
    }
}

/* ── Dashboard — mobile específico ── */
@media (max-width: 768px) {

    /* Métricas — 2 colunas compactas */
    .db-metrics {
        display: grid;
        grid-template-columns: 1fr 1fr;
        gap: 10px;
        margin-bottom: 20px;
    }
    .db-metric {
        min-width: unset;
        padding: 14px 12px;
    }
    .db-metric__value { font-size: 22px; }
    .db-metric__label { font-size: 10px; }

    /* Favoritos — título pode quebrar linha */
    .db-fav-item__title {
        white-space: normal;
        display: -webkit-box;
        -webkit-line-clamp: 2;
        -webkit-box-orient: vertical;
        overflow: hidden;
    }
    .db-fav-item__arrow { display: none; }
    .db-fav-item { padding: 10px 4px; }
    .db-fav-item__thumb { width: 40px; height: 40px; }

    /* Eventos — acções em coluna */
    .db-ev-item {
        flex-wrap: wrap;
        padding: 10px 4px;
        gap: 6px;
    }
    .db-ev-item__info { width: 100%; }
    .db-ev-item__title {
        white-space: normal;
        -webkit-line-clamp: 2;
        display: -webkit-box;
        -webkit-box-orient: vertical;
        overflow: hidden;
    }
    .db-ev-item__actions {
        width: 100%;
        justify-content: flex-start;
    }

    /* Section title */
    .db-section__title { font-size: 15px; }

    /* User bar */
    .db-user-bar {
        flex-wrap: wrap;
        gap: 12px;
    }
    .db-btn-new {
        font-size: 13px;
        padding: 8px 16px;
    }
}

/* ── Dashboard — compactar desktop ── */
.db-fav-item {
    border-bottom: 1px solid var(--item-border);
}
.db-fav-item:last-child { border-bottom: none; }

.db-ev-item {
    border-bottom: 1px solid var(--item-border);
}
.db-ev-item:last-child { border-bottom: none; }

/* Secção com borda */
.db-section {
    border: 1px solid var(--border-color);
    border-radius: 12px;
    padding: 16px;
    gap: 0;
    min-width: 0;
}
.db-section__header {
    margin-bottom: 12px;
}



/* ── User tabs — scroll horizontal entre 769-1100px ── */
@media (min-width: 769px) and (max-width: 1100px) {
    .user-shell__header {
        flex-direction: column;
        align-items: flex-start;
        gap: 12px;
    }
    .user-tabs {
        flex-wrap: nowrap;
        overflow-x: auto;
        scrollbar-width: none;
        -webkit-overflow-scrolling: touch;
        width: 100%;
        padding-bottom: 4px;
    }
    .user-tabs::-webkit-scrollbar { display: none; }
    .user-tab { flex-shrink: 0; }
}

/* ── db-grid — 1 coluna em ecrã médio ── */
@media (min-width: 769px) and (max-width: 900px) {
    .db-grid {
        grid-template-columns: 1fr;
    }
}

/* ============================================================
   ARTIGOS — Listagem + Single
   ============================================================ */

/* ── Grid de listagem ── */
.av-artigos-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 24px;
    margin-bottom: 48px;
}

.av-artigo-card {
    display: flex;
    flex-direction: column;
    border: 1.5px solid var(--border-color);
    border-radius: 12px;
    overflow: hidden;
    background: var(--white);
    transition: box-shadow .15s;
}
.av-artigo-card:hover { box-shadow: 0 4px 16px rgba(0,0,0,.08); }

.av-artigo-card__img-wrap {
    display: block;
    aspect-ratio: 16/9;
    overflow: hidden;
    background: var(--gray-light);
}
.av-artigo-card__img {
    width: 100%; height: 100%;
    object-fit: cover;
    display: block;
    transition: transform .3s;
}
.av-artigo-card:hover .av-artigo-card__img { transform: scale(1.03); }

.av-artigo-card__body {
    padding: 16px;
    display: flex;
    flex-direction: column;
    gap: 8px;
    flex: 1;
}
.av-artigo-card__cat {
    font-size: 10px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .1em;
    color: var(--text-tertiary);
    text-decoration: none;
    transition: color .15s;
}
.av-artigo-card__cat:hover { color: var(--text-primary); }
.av-artigo-card__title {
    font-family: var(--font-heading);
    font-size: 1rem;
    font-weight: 800;
    line-height: 1.3;
    margin: 0;
}
.av-artigo-card__title a {
    color: var(--text-primary);
    text-decoration: none;
    transition: color .15s;
}
.av-artigo-card__title a:hover { color: var(--text-secondary); }
.av-artigo-card__excerpt {
    font-size: 13px;
    color: var(--text-secondary);
    line-height: 1.6;
    margin: 0;
    display: -webkit-box;
    -webkit-line-clamp: 3;
    -webkit-box-orient: vertical;
    overflow: hidden;
    flex: 1;
}
.av-artigo-card__meta {
    display: flex;
    align-items: center;
    justify-content: space-between;
    font-size: 12px;
    color: var(--text-tertiary);
    padding-top: 8px;
    border-top: 1px solid var(--item-border);
    margin-top: auto;
}
.av-artigo-card__link {
    font-size: 12px;
    font-weight: 700;
    color: var(--text-primary);
    text-decoration: none;
    transition: opacity .15s;
}
.av-artigo-card__link:hover { opacity: .7; }

/* Paginação */
.av-artigos-paginacao {
    display: flex;
    justify-content: space-between;
    padding: 16px 0;
    border-top: 1px solid var(--border-color);
}
.av-artigos-paginacao a {
    font-size: 13px;
    font-weight: 700;
    color: var(--text-primary);
    text-decoration: none;
    padding: 8px 16px;
    border: 1.5px solid var(--border-color);
    border-radius: 20px;
    transition: all .15s;
}
.av-artigos-paginacao a:hover {
    border-color: var(--text-primary);
    background: var(--text-primary);
    color: var(--white);
}

/* Mobile */
@media (max-width: 768px) {
    .av-artigos-grid { grid-template-columns: 1fr; gap: 16px; }
}
@media (min-width: 769px) and (max-width: 1000px) {
    .av-artigos-grid { grid-template-columns: repeat(2, 1fr); }
}

/* ── Single artigo ── */
.av-artigo-single {
    max-width: 720px;
    margin: 0 auto;
    padding: 0 0 64px;
}

.av-artigo-single__header {
    margin-bottom: 28px;
}
.av-artigo-single__cat {
    font-size: 11px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .1em;
    color: var(--text-tertiary);
    text-decoration: none;
    display: block;
    margin-bottom: 10px;
    transition: color .15s;
}
.av-artigo-single__cat:hover { color: var(--text-primary); }
.av-artigo-single__title {
    font-family: var(--font-heading);
    font-size: clamp(1.6rem, 4vw, 2.4rem);
    font-weight: 900;
    line-height: 1.1;
    letter-spacing: -.03em;
    color: var(--text-primary);
    margin: 0 0 14px;
}
.av-artigo-single__meta {
    display: flex;
    align-items: center;
    gap: 8px;
    font-size: 13px;
    color: var(--text-tertiary);
}
.av-artigo-single__sep { color: var(--border-color); }

.av-artigo-single__img-wrap {
    margin-bottom: 32px;
    border-radius: 12px;
    overflow: hidden;
    aspect-ratio: 16/9;
}
.av-artigo-single__img {
    width: 100%; height: 100%;
    object-fit: cover;
    display: block;
}

/* Conteúdo editorial */
.av-artigo-single__content {
    font-size: 16px;
    line-height: 1.8;
    color: var(--text-secondary);
}
.av-artigo-single__content h2 {
    font-size: 1.4rem; font-weight: 800;
    color: var(--text-primary); margin: 36px 0 12px;
    font-family: var(--font-heading);
}
.av-artigo-single__content h3 {
    font-size: 1.15rem; font-weight: 700;
    color: var(--text-primary); margin: 28px 0 10px;
    font-family: var(--font-heading);
}
.av-artigo-single__content p { margin: 0 0 20px; }
.av-artigo-single__content ul,
.av-artigo-single__content ol {
    margin: 0 0 20px;
    padding-left: 24px;
}
.av-artigo-single__content li { margin-bottom: 6px; }
.av-artigo-single__content a {
    color: var(--text-primary);
    font-weight: 600;
    text-decoration: underline;
    text-underline-offset: 3px;
}
.av-artigo-single__content img {
    max-width: 100%;
    border-radius: 8px;
    margin: 8px 0 20px;
}
.av-artigo-single__content blockquote {
    border-left: 3px solid var(--yellow-primary);
    padding: 12px 20px;
    margin: 24px 0;
    background: var(--hover-bg);
    border-radius: 0 8px 8px 0;
    font-style: italic;
    color: var(--text-primary);
}

/* Eventos relacionados */
.av-artigo-single__related {
    margin: 40px 0;
    padding-top: 32px;
    border-top: 2px solid var(--text-primary);
}

/* Navegação */
.av-artigo-single__nav {
    display: flex;
    justify-content: space-between;
    gap: 16px;
    padding-top: 32px;
    border-top: 1px solid var(--border-color);
    margin-top: 40px;
}
.av-artigo-single__nav-btn {
    display: flex;
    flex-direction: column;
    gap: 4px;
    text-decoration: none;
    max-width: 45%;
    transition: opacity .15s;
}
.av-artigo-single__nav-btn:hover { opacity: .7; }
.av-artigo-single__nav-btn--next { text-align: right; margin-left: auto; }
.av-artigo-single__nav-dir {
    font-size: 11px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .08em;
    color: var(--text-tertiary);
}
.av-artigo-single__nav-title {
    font-size: 13px;
    font-weight: 700;
    color: var(--text-primary);
    line-height: 1.4;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

@media (max-width: 768px) {
    .av-artigo-single { padding: 0 0 40px; }
    .av-artigo-single__nav { flex-direction: column; }
    .av-artigo-single__nav-btn { max-width: 100%; }
    .av-artigo-single__nav-btn--next { text-align: left; margin-left: 0; }
}

/* ============================================================
   PÁGINA GENÉRICA
   ============================================================ */
.av-page {
    max-width: 720px;
    margin: 0 auto;
    padding: 0 0 64px;
}
.av-page__content {
    font-size: 16px;
    line-height: 1.8;
    color: var(--text-secondary);
}
.av-page__content h2 {
    font-size: 1.4rem; font-weight: 800;
    color: var(--text-primary); margin: 36px 0 12px;
    font-family: var(--font-heading);
}
.av-page__content h3 {
    font-size: 1.15rem; font-weight: 700;
    color: var(--text-primary); margin: 28px 0 10px;
    font-family: var(--font-heading);
}
.av-page__content p { margin: 0 0 20px; }
.av-page__content ul,
.av-page__content ol { margin: 0 0 20px; padding-left: 24px; }
.av-page__content li { margin-bottom: 6px; }
.av-page__content a {
    color: var(--text-primary); font-weight: 600;
    text-decoration: underline; text-underline-offset: 3px;
}
.av-page__content img {
    max-width: 100%; border-radius: 8px; margin: 8px 0 20px;
}
.av-page__content blockquote {
    border-left: 3px solid var(--yellow-primary);
    padding: 12px 20px; margin: 24px 0;
    background: var(--hover-bg);
    border-radius: 0 8px 8px 0;
    font-style: italic; color: var(--text-primary);
}
/* Iframe responsivo (Google Forms, etc.) */
.av-page__content iframe {
    width: 100%;
    border: none;
    border-radius: 8px;
    min-height: 600px;
}
@media (max-width: 768px) {
    .av-page { padding: 0 0 40px; }
    .av-page__content iframe { min-height: 800px; }
}

/* ============================================================
   PREFERÊNCIAS — Selects estilizados
   ============================================================ */
.pref-select {
    appearance: none;
    -webkit-appearance: none;
    background: var(--white) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%23999' stroke-width='2.5'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E") no-repeat right 12px center;
    border: 1.5px solid var(--border-color);
    border-radius: 8px;
    padding: 10px 36px 10px 14px;
    font-size: 14px;
    font-family: var(--font-body);
    color: var(--text-primary);
    cursor: pointer;
    transition: border-color .15s;
    min-width: 200px;
    max-width: 280px;
    width: 100%;
}
.pref-select:focus {
    outline: none;
    border-color: var(--text-primary);
}
.pref-select:disabled {
    background-color: var(--gray-light);
    color: var(--text-tertiary);
    cursor: not-allowed;
}
.pref-select option { padding: 8px; }

.pref-loc-selector {
    display: flex;
    align-items: center;
    gap: 10px;
    flex-wrap: wrap;
    margin-bottom: 14px;
}

.pref-add-btn {
    padding: 10px 18px;
    background: var(--yellow-primary);
    border: none;
    border-radius: 8px;
    font-size: 13px;
    font-weight: 700;
    font-family: var(--font-heading);
    cursor: pointer;
    transition: opacity .15s;
    white-space: nowrap;
}
.pref-add-btn:disabled {
    opacity: .4;
    cursor: not-allowed;
}
.pref-add-btn:not(:disabled):hover { opacity: .8; }

/* Pills seleccionadas */
.pref-selected-concelhos {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin-bottom: 8px;
    min-height: 20px;
}
.pref-selected-pill {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 5px 8px 5px 12px;
    background: var(--white);
    color: var(--text-primary);
    border: 1.5px solid var(--text-primary);
    border-radius: 20px;
    font-size: 13px;
    font-weight: 600;
}
.pref-selected-pill__name { line-height: 1; }
.pref-remove-conc {
    background: none;
    border: none;
    color: var(--text-tertiary);
    cursor: pointer;
    font-size: 13px;
    padding: 0 2px;
    line-height: 1;
    transition: color .15s;
    display: flex;
    align-items: center;
}
.pref-remove-conc:hover { color: var(--text-primary); }

@media (max-width: 768px) {
    .pref-loc-selector { flex-direction: column; align-items: stretch; }
    .pref-select { max-width: 100%; }
    .pref-add-btn { width: 100%; text-align: center; }
}

/* Texto introdutório páginas temporais (quando) */

.av-quando-intro ,
.av-concelho-quando-intro ,
.av-concelho-intro {
    margin:0 auto 32px;
}

 

.av-quando-intro p,
.av-concelho-quando-intro p {
    font-size: 15px;
    line-height: 1.6;
    color: var(--text-secondary); /* ALTERADO de #666 para var(--text-secondary) */
    margin-bottom: 0;
}

/* Texto introdutório concelhos */
.av-concelho-intro p {
    font-size: 15px;
    line-height: 1.6;
    color: var(--text-secondary); /* ALTERADO de #666 para var(--text-secondary) */
}

/* Destaque palavras-chave */
.av-quando-intro strong,
.av-concelho-quando-intro strong,
.av-concelho-intro strong {
    color: var(--text-primary); /* ALTERADO de #111 para var(--text-primary) */
    font-weight: 600;
}

.av-archive .leaderboard-ad {
    margin: auto 0 40px 0;
}
.av-ad-leaderboard{
    max-width: 970px;
    margin: auto 0 40px 0;
}.sidebar-ad-sticky {
    position: sticky;
    top: 20px;
    z-index: 10;
}

.site-footer {
    background: var(--white);
    border-top: 1px solid var(--border-color);
    margin-top: 80px;
    padding: 40px 0 24px;
}

.site-footer__inner {
    max-width: 1200px;
    margin: 0 auto;
    padding: 0 24px;
    display: grid;
    grid-template-columns: 1.2fr 2fr 1fr;
    gap: 48px;
    margin-bottom: 32px;
}

.site-footer__brand {
    display: flex;
    flex-direction: column;
    gap: 12px;
}

.site-footer__logo {
    width: 140px;
    height: auto;
}

.site-footer__tagline {
    font-size: 13px;
    color: var(--text-tertiary);
    margin: 0;
}

.site-footer__links {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 32px;
}

.site-footer__col {
    display: flex;
    flex-direction: column;
    gap: 10px;
}

.site-footer__title {
    font-size: 12px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    color: var(--text-primary);
    margin: 0 0 8px 0;
}

.site-footer__col a {
    font-size: 14px;
    color: var(--text-secondary);
    text-decoration: none;
    transition: color 0.15s;
}

.site-footer__col a:hover {
    color: var(--text-primary);
}

.site-footer__highlight {
    color: var(--text-primary) !important;
    font-weight: 600;
}

.site-footer__social-links {
    display: flex;
    gap: 12px;
}

.site-footer__social-links a {
    width: 36px;
    height: 36px;
    display: flex;
    align-items: center;
    justify-content: center;
    background: var(--hover-bg);
    border-radius: 8px;
    color: var(--text-secondary);
    transition: all 0.15s;
}

.site-footer__social-links a:hover {
    background: var(--yellow-primary);
    color: #000;
}

.site-footer__bottom {
    max-width: 1200px;
    margin: 0 auto;
    padding: 24px 24px 0;
    border-top: 1px solid var(--border-color);
    display: flex;
    justify-content: space-between;
    align-items: center;
}

.site-footer__copy {
    font-size: 13px;
    color: var(--text-tertiary);
    margin: 0;
}

.site-footer__top {
    font-size: 13px;
    color: var(--text-secondary);
    text-decoration: none;
    font-weight: 600;
}

.site-footer__top:hover {
    color: var(--text-primary);
}

/* Dark mode */





.site-footer {
    background: var(--white);
    border-top: 1px solid var(--border-color);
    margin-top: 80px;
    margin-left: 280px; /* ← ADICIONAR - largura da sidebar */
    padding: 40px 0 24px;
}

 

.site-footer__inner {
    max-width: 1200px;
    margin: 0 auto;
    padding: 0 40px; /* ← TROCAR de 24px para 40px */
    display: grid;
    grid-template-columns: 1.2fr 2fr 1fr;
    gap: 48px;
    margin-bottom: 32px;
}

.site-footer__bottom {
    max-width: 1200px;
    margin: 0 auto;
    padding: 24px 40px 0; /* ← TROCAR de 24px para 40px */
    border-top: 1px solid var(--border-color);
    display: flex;
    justify-content: space-between;
    align-items: center;
}


/* Mobile */
/* Mobile */
@media (max-width: 768px) {
    .site-footer {
        margin-left: 0;
        margin-top: 48px;
        padding: 32px 0 20px;
    }

    .site-footer__inner {
        grid-template-columns: 1fr; /* ← JÁ ESTÁ ASSIM */
        gap: 32px;
        padding: 0 16px;
    }

    .site-footer__links {
        grid-template-columns: 1fr; /* ← TROCAR de repeat(3, 1fr) para 1fr */
        gap: 24px;
    }

    .site-footer__bottom {
        flex-direction: column;
        gap: 16px;
        padding: 20px 16px 0;
        text-align: center;
    }
}

/* ========================================
   FIX CLS - AdSense com altura reservada
   Adicionar ao final do style.css
   ======================================== */

.av-ad-wrapper {
    min-height: 250px; /* Reserva espaço antes do anúncio carregar */
    margin: 24px 0;
    display: flex;
    align-items: center;
    justify-content: center;
    background: #f8f8f8; /* Placeholder visual opcional */
}

/* Após carregar, remover altura mínima */
.av-ad-wrapper ins.adsbygoogle[data-ad-status="filled"] {
    min-height: auto !important;
}
html[data-theme="dark"] .site-footer__logo {
    filter: brightness(0) saturate(100%) invert(93%) sepia(0%) saturate(0%) hue-rotate(0deg) brightness(88%) contrast(88%);
}
html[data-theme="dark"] .logo-container:hover .site-footer__logo {
    filter:none;
}
.site-footer .logo-section  {
        margin-bottom: 0;
    align-self: flex-start;
    max-width: 170px;
}

.site-footer .logo-container{
    background: none;
}
.site-footer .logo-container:hover{
background: var(--yellow-primary)
}
.site-footer .logo-container img {
    height: auto;
}
.site-footer__tagline{
max-width: 169px;
    padding: 0px 0;
    text-align: center;}
    
/* Mobile - anúncios menores */
@media (max-width: 768px) {
    .av-ad-wrapper {
        min-height: 100px;
    }
    .site-footer .logo-section,
    .site-footer__tagline{
margin: auto;
    }
}


/* Wrappers com espaço reservado para evitar layout shift */
.av-ad-wrapper {
    display: flex;
    justify-content: center;
    align-items: center;
    margin: 16px auto;
    width: 100%;
    max-width: 970px;
    min-width: 300px;
    background: transparent;
    position: relative;
}
 
/* Altura fixa por tipo de anúncio - CRITICAL para Core Web Vitals */
.av-ad-leaderboard {
    min-height: 280px;   /* 728x90 ou 970x90 */
}
 
.av-ad-feed,
.av-ad-inarticle {
    min-height: 250px;  /* 300x250 */
}
 
.av-ad-sidebar {
    min-height: 600px;  /* 300x600 */
    position: sticky;
    top: 16px;
}
 
/* Placeholder visual discreto enquanto carrega */
.av-ad-wrapper::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background: rgba(0,0,0,0.02);
    border-radius: 4px;
    pointer-events: none;
    z-index: -1;
}
 
/* Remover placeholder quando anúncio carregar */
.av-ad-wrapper.loaded::before {
    display: none;
}
 
/* Responsive */
@media (max-width: 768px) {
    .av-ad-leaderboard {
        min-height: 50px;  /* 320x50 mobile */
    }
    
    .av-ad-feed{
        min-height: 250px;  /* 300x250 */
    }
    .av-ad-inarticle {
        min-height: 250px !important;
        max-width: 728px !important;
    }
}

 
/* Mobile: esconder sidebar (não há espaço) */
@media (max-width: 768px) {
    .av-ad-sidebar {
        display: none !important;
    }
}
 
/* Garantir que wrappers escondidos não tentem renderizar */
.av-ad-wrapper {
    min-width: 300px; /* Força largura mínima */
}
 
/* Se wrapper estiver em container sem largura, não renderizar */
.av-ad-wrapper[style*="display: none"],
.av-ad-wrapper[style*="visibility: hidden"] {
    display: none !important;
}

/* Esconder sidebar em mobile para evitar erro AdSense */
@media (max-width: 768px) {
    .av-ad-sidebar {
        display: none !important;
    }
}
 /* Garantir dimensões mínimas SEMPRE */
.av-ad-wrapper {
    min-width: 300px !important;
}
 
.av-ad-leaderboard {
    min-height: 280px !important;
}
 
.av-ad-feed,
.av-ad-inarticle {
    min-height: 250px !important;
}
 
.av-ad-sidebar {
    min-height: 600px !important;
}
 
/* Mobile: esconder sidebar para evitar erro */
@media (max-width: 768px) {
    .av-ad-sidebar {
        display: none !important;
    }
}
 
@media (max-width: 768px) {
    .av-ad-leaderboard {
        min-height: 280px !important;
    }
}