        :root {
            --bordeaux: #5B0E2D;
            --bordeaux-deep: #3D0A1E;
            --bordeaux-light: #7A1B3D;
            --gold: #C9A96E;
            --gold-light: #D4BC8B;
            --gold-dark: #A68B55;
            --cream: #FAF7F2;
            --white: #FFFFFF;
            --charcoal: #1A1A1A;
            --text-dark: #1C1017;
            --text-medium: #4A3A42;
            --text-light: #8A7A82;
            --border-subtle: rgba(91,14,45,0.08);
            --shadow-medium: 0 8px 40px rgba(91,14,45,0.10);
            --shadow-strong: 0 16px 60px rgba(91,14,45,0.14);
            --font-display: 'Cormorant Garamond', Georgia, serif;
            --font-body: 'Raleway', 'Helvetica Neue', sans-serif;
            --tr-smooth: cubic-bezier(0.25,0.46,0.45,0.94);
            --tr-elegant: cubic-bezier(0.4,0,0.2,1);
            --cat-douro: #5B0E2D;
            --cat-porto: #C9A96E;
            --cat-portugal: #2D4A3E;
            --cat-especial: #4A2D1C;
        }

        *, *::before, *::after { margin:0; padding:0; box-sizing:border-box; }
        html { scroll-behavior:smooth; font-size:16px; }
        body { font-family:var(--font-body); color:var(--text-dark); background:var(--cream); line-height:1.7; font-weight:300; overflow-x:hidden; -webkit-font-smoothing:antialiased; }
        img { max-width:100%; display:block; }
        a { text-decoration:none; color:inherit; }

        .heading-section { font-family:var(--font-display); font-weight:400; font-size:clamp(2rem,4vw,3.2rem); color:var(--bordeaux); letter-spacing:0.02em; line-height:1.2; }
        .label-upper { font-family:var(--font-body); font-weight:500; font-size:0.7rem; letter-spacing:0.25em; text-transform:uppercase; color:var(--gold); }
        .divider-line { width:60px; height:1px; background:linear-gradient(90deg,transparent,var(--gold),transparent); margin:1.5rem 0; }
        .section-header { text-align:center; margin-bottom:4rem; }
        .section-header .label-upper { display:block; margin-bottom:1rem; }
        .section-header .divider-line { margin:1.5rem auto; }

        .btn { display:inline-flex; align-items:center; justify-content:center; gap:0.5rem; font-family:var(--font-body); font-weight:500; font-size:0.72rem; letter-spacing:0.2em; text-transform:uppercase; padding:1rem 2.4rem; border:none; cursor:pointer; transition:all 0.5s var(--tr-elegant); position:relative; overflow:hidden; }
        .btn::before { content:''; position:absolute; inset:0; background:rgba(255,255,255,0.1); transform:translateX(-100%); transition:transform 0.5s var(--tr-elegant); }
        .btn:hover::before { transform:translateX(0); }
        .btn-primary { background:var(--bordeaux); color:var(--white); }
        .btn-primary:hover { background:var(--bordeaux-light); transform:translateY(-2px); box-shadow:0 8px 30px rgba(91,14,45,0.3); }
        .btn-outline { background:transparent; color:var(--bordeaux); border:1px solid var(--bordeaux); }
        .btn-outline:hover { background:var(--bordeaux); color:var(--white); transform:translateY(-2px); }
        .btn-gold { background:var(--gold); color:var(--charcoal); }
        .btn-gold:hover { background:var(--gold-light); transform:translateY(-2px); }
        .btn-white-outline { background:transparent; color:var(--white); border:1px solid rgba(255,255,255,0.4); }
        .btn-white-outline:hover { background:rgba(255,255,255,0.1); transform:translateY(-2px); }
        .btn-sm { padding:0.7rem 1.6rem; font-size:0.62rem; }
        .btn-group { display:flex; gap:0.8rem; flex-wrap:wrap; }

        /* NAV */
        .nav { position:fixed; top:0; left:0; right:0; z-index:1000; padding:1.5rem 4%; display:flex; align-items:center; justify-content:space-between; transition:all 0.5s var(--tr-elegant); }
        .nav.scrolled { background:rgba(26,26,26,0.95); backdrop-filter:blur(20px); padding:1rem 4%; box-shadow:0 2px 40px rgba(0,0,0,0.2); }
        .nav-logo { height:90px; width:auto; filter:brightness(0) invert(1); }
        .nav-links { display:flex; align-items:center; gap:2.5rem; list-style:none; }
        .nav-links a { font-family:var(--font-body); font-size:0.7rem; font-weight:400; letter-spacing:0.15em; text-transform:uppercase; color:rgba(255,255,255,0.75); transition:color 0.3s ease; position:relative; }
        .nav-links a::after { content:''; position:absolute; bottom:-4px; left:0; width:0; height:1px; background:var(--gold); transition:width 0.4s var(--tr-elegant); }
        .nav-links a:hover { color:var(--white); }
        .nav-links a:hover::after { width:100%; }
        .nav-links a.active { color:var(--gold); }
        .nav-links a.active::after { width:100%; }
        .nav-toggle { display:none; flex-direction:column; gap:5px; cursor:pointer; background:none; border:none; padding:4px; }
        .nav-toggle span { width:24px; height:1.5px; background:var(--white); transition:all 0.3s ease; }

        /* HERO */
        .hero-exp { position:relative; height:70vh; min-height:550px; display:flex; align-items:center; justify-content:center; overflow:hidden; background:var(--charcoal); }
        .hero-exp-bg { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; opacity:0.4; filter:brightness(0.7); }
        .hero-exp-overlay { position:absolute; inset:0; background:linear-gradient(180deg,rgba(26,16,23,0.5) 0%,rgba(91,14,45,0.2) 40%,rgba(26,16,23,0.8) 100%); }
        .hero-exp-grain { position:absolute; inset:0; opacity:0.025; pointer-events:none; }
        .hero-exp-content { position:relative; text-align:center; color:var(--white); max-width:750px; padding:0 2rem; }
        .hero-exp-label { font-weight:400; font-size:0.7rem; letter-spacing:0.4em; text-transform:uppercase; color:var(--gold); margin-bottom:1.5rem; opacity:0; animation:fadeSlideUp 1s var(--tr-smooth) 0.3s forwards; }
        .hero-exp-title { font-family:var(--font-display); font-size:clamp(2.5rem,6vw,4.5rem); font-weight:300; line-height:1.08; margin-bottom:1rem; opacity:0; animation:fadeSlideUp 1s var(--tr-smooth) 0.6s forwards; }
        .hero-exp-title em { font-style:italic; color:var(--gold-light); }
        .hero-exp-sub { font-family:var(--font-display); font-size:clamp(1rem,1.8vw,1.2rem); font-weight:300; font-style:italic; color:rgba(255,255,255,0.7); margin-bottom:2.5rem; opacity:0; animation:fadeSlideUp 1s var(--tr-smooth) 0.9s forwards; }
        .hero-exp-cta { opacity:0; animation:fadeSlideUp 1s var(--tr-smooth) 1.2s forwards; }
        .hero-stats { position:absolute; bottom:0; left:0; right:0; display:flex; justify-content:center; background:rgba(26,16,23,0.6); backdrop-filter:blur(10px); border-top:1px solid rgba(201,169,110,0.15); }
        .hero-stat { padding:1.5rem 3rem; text-align:center; border-right:1px solid rgba(255,255,255,0.06); }
        .hero-stat:last-child { border-right:none; }
        .hero-stat-num { font-family:var(--font-display); font-size:2rem; font-weight:500; color:var(--gold); line-height:1; }
        .hero-stat-label { font-size:0.58rem; letter-spacing:0.2em; text-transform:uppercase; color:rgba(255,255,255,0.45); margin-top:0.3rem; }

        /* INTRO */
        .intro-section { padding:5rem 4%; background:var(--white); border-bottom:1px solid var(--border-subtle); }
        .intro-inner { max-width:800px; margin:0 auto; text-align:center; }
        .intro-inner .body-text { font-weight:300; font-size:0.95rem; line-height:1.85; color:var(--text-medium); max-width:700px; margin:0 auto 1rem; }
        .intro-signature { font-family:var(--font-display); font-style:italic; font-size:1.1rem; color:var(--bordeaux); margin-top:2rem; }

        /* FILTROS */
        .filtros-section { padding:0 4% 1rem; background:var(--cream); }
        .filtros-wrapper { max-width:1100px; margin:0 auto; display:flex; align-items:center; justify-content:center; gap:0.6rem; flex-wrap:wrap; padding:1.5rem 0; border-bottom:1px solid var(--border-subtle); }
        .filtro-btn { font-family:var(--font-body); font-size:0.6rem; font-weight:500; letter-spacing:0.18em; text-transform:uppercase; padding:0.65rem 1.4rem; border:1px solid var(--border-subtle); border-radius:100px; background:var(--white); color:var(--text-medium); cursor:pointer; transition:all 0.35s ease; }
        .filtro-btn:hover { border-color:var(--bordeaux); color:var(--bordeaux); }
        .filtro-btn.active { background:var(--bordeaux); color:var(--white); border-color:var(--bordeaux); }
        .filtro-sep { width:1px; height:20px; background:var(--border-subtle); margin:0 0.3rem; }

        /* CARDS — idêntico ao eventos.html */
        .exp-lista { padding:4rem 4% 6rem; background:var(--cream); }
        .exp-lista-grid { max-width:1100px; margin:0 auto; display:grid; grid-template-columns:repeat(2,1fr); gap:2rem; }
        .ev-card { background:var(--white); border:1px solid var(--border-subtle); border-radius:4px; overflow:hidden; transition:all 0.5s var(--tr-elegant); position:relative; }
        .ev-card:hover { box-shadow:var(--shadow-strong); transform:translateY(-4px); border-color:transparent; }
        .ev-card-top { position:relative; height:220px; overflow:hidden; }
        .ev-card-img { width:100%; height:100%; object-fit:cover; filter:brightness(0.7) contrast(1.05); transition:all 0.6s var(--tr-elegant); }
        .ev-card:hover .ev-card-img { transform:scale(1.05); filter:brightness(0.6) contrast(1.1); }
        .ev-card-overlay { position:absolute; inset:0; background:linear-gradient(180deg,transparent 40%,rgba(26,16,23,0.8) 100%); }
        .ev-card-number { position:absolute; top:1.2rem; left:1.2rem; background:var(--white); padding:0.6rem 0.8rem; border-radius:3px; text-align:center; box-shadow:0 4px 16px rgba(0,0,0,0.15); min-width:56px; }
        .ev-card-number-val { font-family:var(--font-display); font-size:1.6rem; font-weight:600; color:var(--bordeaux); line-height:1; }
        .ev-card-number-label { font-size:0.45rem; letter-spacing:0.12em; text-transform:uppercase; color:var(--text-light); margin-top:2px; }
        .ev-card-cat { position:absolute; top:1.2rem; right:1.2rem; font-size:0.5rem; font-weight:600; letter-spacing:0.18em; text-transform:uppercase; padding:0.3rem 0.8rem; border-radius:2px; color:var(--white); }
        .ev-card-cat.douro    { background:var(--cat-douro); }
        .ev-card-cat.porto    { background:var(--cat-porto); color:var(--charcoal); }
        .ev-card-cat.portugal { background:var(--cat-portugal); }
        .ev-card-cat.especial { background:var(--cat-especial); }
        .ev-card-body { padding:1.8rem 2rem 2rem; }
        .ev-card-location { font-size:0.62rem; letter-spacing:0.15em; text-transform:uppercase; color:var(--text-light); margin-bottom:0.5rem; display:flex; align-items:center; gap:0.4rem; }
        .ev-card-location::before { content:''; width:4px; height:4px; border-radius:50%; background:var(--gold); }
        .ev-card-title { font-family:var(--font-display); font-size:1.35rem; font-weight:500; color:var(--text-dark); line-height:1.25; margin-bottom:0.5rem; }
        .ev-card-tagline { font-size:0.68rem; font-weight:500; letter-spacing:0.08em; color:var(--gold-dark); margin-bottom:0.6rem; font-style:italic; }
        .ev-card-desc { font-size:0.85rem; color:var(--text-light); line-height:1.65; margin-bottom:1.2rem; }
        .ev-card-footer { display:flex; align-items:center; justify-content:space-between; padding-top:1rem; border-top:1px solid var(--border-subtle); }
        .ev-card-price { font-family:var(--font-display); font-size:1.3rem; font-weight:600; color:var(--bordeaux); }
        .ev-card-price small { font-size:0.7rem; font-weight:300; color:var(--text-light); }
        .ev-card-actions { display:flex; gap:0.5rem; }
        .ev-card-actions .btn { padding:0.7rem 1.3rem; font-size:0.6rem; }

        /* DETALHE EXPANSÍVEL */
        .ev-card-detail { max-height:0; overflow:hidden; transition:max-height 0.6s var(--tr-elegant),opacity 0.4s ease; opacity:0; background:var(--cream); border-top:2px solid var(--gold); }
        .ev-card.expanded .ev-card-detail { max-height:600px; opacity:1; }
        .ev-card-detail-inner { padding:1.8rem 2rem; display:grid; grid-template-columns:1fr 1fr; gap:1.5rem; position:relative; }
        .ev-detail-label { font-size:0.55rem; letter-spacing:0.2em; text-transform:uppercase; color:var(--gold-dark); margin-bottom:0.3rem; }
        .ev-detail-value { font-family:var(--font-display); font-size:1rem; font-weight:400; color:var(--text-dark); line-height:1.5; }
        .ev-detail-full { grid-column:1/-1; }
        .ev-detail-note { grid-column:1/-1; font-size:0.82rem; color:var(--text-medium); line-height:1.7; padding:0.8rem 1rem; background:rgba(201,169,110,0.08); border-left:2px solid var(--gold); border-radius:0 2px 2px 0; }
        .ev-detail-close { position:absolute; top:0.8rem; right:0.8rem; width:28px; height:28px; border-radius:50%; border:1px solid var(--border-subtle); background:var(--white); display:flex; align-items:center; justify-content:center; cursor:pointer; font-size:0.7rem; color:var(--text-light); transition:all 0.3s ease; }
        .ev-detail-close:hover { background:var(--bordeaux); color:var(--white); border-color:var(--bordeaux); }

        /* CTA */
        .cta-section { position:relative; padding:6rem 4%; overflow:hidden; background:var(--bordeaux-deep); }
        .cta-bg { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; opacity:0.2; filter:brightness(0.5); }
        .cta-overlay { position:absolute; inset:0; background:linear-gradient(135deg,rgba(61,10,30,0.9),rgba(91,14,45,0.8)); }
        .cta-content { position:relative; max-width:700px; margin:0 auto; text-align:center; color:var(--white); }
        .cta-content .label-upper { color:var(--gold); display:block; margin-bottom:1rem; }
        .cta-content .heading-section { color:var(--white); margin-bottom:1rem; }
        .cta-content .divider-line { margin:1.5rem auto; background:linear-gradient(90deg,transparent,var(--gold),transparent); }
        .cta-desc { font-size:1rem; font-weight:300; color:rgba(255,255,255,0.7); line-height:1.85; margin-bottom:2.5rem; max-width:550px; margin-left:auto; margin-right:auto; }
        .cta-content .btn-group { justify-content:center; }

        /* FOOTER */
        .footer { background:var(--charcoal); color:rgba(255,255,255,0.5); padding:5rem 4% 2.5rem; }
        .footer-grid { max-width:1200px; margin:0 auto; display:grid; grid-template-columns:2fr 1fr 1fr 1fr; gap:3rem; padding-bottom:3rem; border-bottom:1px solid rgba(255,255,255,0.06); }
        .footer-desc { font-size:0.88rem; line-height:1.7; max-width:320px; }
        .footer-col h4 { font-size:0.65rem; letter-spacing:0.2em; text-transform:uppercase; color:var(--gold); margin-bottom:1.2rem; }
        .footer-col ul { list-style:none; }
        .footer-col ul li { margin-bottom:0.6rem; }
        .footer-col ul a { font-size:0.85rem; color:rgba(255,255,255,0.45); transition:color 0.3s ease; }
        .footer-col ul a:hover { color:var(--white); }
        .footer-bottom { max-width:1200px; margin:0 auto; padding-top:2rem; display:flex; align-items:center; justify-content:space-between; font-size:0.78rem; }
        .footer-bottom-legal { display:flex; gap:2rem; }
        .footer-bottom-legal a { color:rgba(255,255,255,0.35); transition:color 0.3s ease; }
        .footer-bottom-legal a:hover { color:var(--white); }

        /* POPUP OVERLAY + CONTAINER */
        .cal-overlay { position:fixed; inset:0; background:rgba(0,0,0,0.72); backdrop-filter:blur(4px); z-index:9998; opacity:0; visibility:hidden; transition:all 0.3s ease; }
        .cal-overlay.active { opacity:1; visibility:visible; }
        .cal-popup { position:fixed; top:50%; left:50%; transform:translate(-50%,-50%) scale(0.9); background:var(--white); border-radius:8px; box-shadow:0 20px 80px rgba(0,0,0,0.3); max-width:440px; width:92%; z-index:9999; opacity:0; visibility:hidden; transition:all 0.3s var(--tr-elegant); overflow:hidden; max-height:90vh; overflow-y:auto; }
        .cal-popup.active { opacity:1; visibility:visible; transform:translate(-50%,-50%) scale(1); }

        /* POPUP HEADER */
        .cal-popup-header { padding:1.8rem 2rem 1.4rem; position:relative; background:linear-gradient(135deg,var(--bordeaux-deep),var(--bordeaux)); }
        .cal-popup-close { position:absolute; top:1rem; right:1rem; width:32px; height:32px; border-radius:50%; border:1px solid rgba(255,255,255,0.3); background:transparent; display:flex; align-items:center; justify-content:center; cursor:pointer; font-size:1.1rem; color:rgba(255,255,255,0.7); transition:all 0.3s ease; }
        .cal-popup-close:hover { background:rgba(255,255,255,0.15); color:var(--white); }
        .cal-popup-eyebrow { font-size:0.58rem; letter-spacing:0.25em; text-transform:uppercase; color:var(--gold); margin-bottom:0.4rem; }
        .cal-popup-titulo { font-family:var(--font-display); font-size:1.5rem; font-weight:500; color:var(--white); padding-right:2.5rem; line-height:1.2; margin-bottom:0.3rem; }
        .cal-popup-preco { font-size:0.82rem; color:rgba(255,255,255,0.6); }

        /* CALENDAR GRID */
        .cal-popup-body { padding:1.4rem 1.5rem 1.8rem; }
        .cal-popup-month-header { display:flex; align-items:center; justify-content:space-between; margin-bottom:1rem; }
        .cal-popup-month-title { font-family:var(--font-display); font-size:1.2rem; font-weight:500; color:var(--text-dark); }
        .cal-popup-nav { width:32px; height:32px; border-radius:50%; border:1px solid var(--border-subtle); background:var(--white); display:flex; align-items:center; justify-content:center; cursor:pointer; font-size:0.8rem; color:var(--text-medium); transition:all 0.3s ease; }
        .cal-popup-nav:hover { background:var(--bordeaux); color:var(--white); border-color:var(--bordeaux); }

        .cal-popup-weekdays { display:grid; grid-template-columns:repeat(7,1fr); gap:2px; margin-bottom:4px; }
        .cal-popup-weekday { text-align:center; font-size:0.5rem; font-weight:600; letter-spacing:0.15em; text-transform:uppercase; color:var(--text-light); padding:0.4rem 0; }

        .cal-popup-grid { display:grid; grid-template-columns:repeat(7,1fr); gap:3px; }
        .cal-popup-day { aspect-ratio:1; display:flex; align-items:center; justify-content:center; border-radius:4px; font-family:var(--font-display); font-size:1rem; font-weight:500; color:var(--text-light); background:transparent; border:none; cursor:default; position:relative; transition:all 0.25s ease; }
        .cal-popup-day.empty { pointer-events:none; }
        .cal-popup-day.past { color:rgba(0,0,0,0.15); pointer-events:none; }
        .cal-popup-day.available { cursor:pointer; }
        .cal-popup-day.available:hover { transform:scale(1.1); }
        .cal-popup-day.available.selected { transform:scale(1.08); }

        .cal-popup-day.verde { background:#E8F5E9; color:#2E7D32; border:2px solid #4CAF50; }
        .cal-popup-day.verde:hover { background:#C8E6C9; }
        .cal-popup-day.verde.selected { background:#4CAF50; color:var(--white); }
        .cal-popup-day.amarelo { background:#FFF8E1; color:#F57F17; border:2px solid #FFC107; }
        .cal-popup-day.amarelo:hover { background:#FFECB3; }
        .cal-popup-day.amarelo.selected { background:#FFC107; color:var(--charcoal); }
        .cal-popup-day.vermelho { background:#FFEBEE; color:#C62828; border:2px solid #EF5350; }

        /* LEGEND */
        .cal-popup-legend { display:flex; justify-content:center; gap:1.2rem; margin-top:1rem; padding-top:0.8rem; border-top:1px solid var(--border-subtle); }
        .cal-popup-legend-item { display:flex; align-items:center; gap:0.35rem; font-size:0.52rem; letter-spacing:0.08em; text-transform:uppercase; color:var(--text-light); font-weight:500; }
        .cal-popup-legend-dot { width:10px; height:10px; border-radius:2px; border:2px solid; }
        .cal-popup-legend-dot.lg-verde { border-color:#4CAF50; background:#E8F5E9; }
        .cal-popup-legend-dot.lg-amarelo { border-color:#FFC107; background:#FFF8E1; }
        .cal-popup-legend-dot.lg-vermelho { border-color:#EF5350; background:#FFEBEE; }

        /* TIME SLOTS */
        .cal-popup-slots { margin-top:1.2rem; padding-top:1.2rem; border-top:1px solid var(--border-subtle); }
        .cal-popup-slots.hidden { display:none; }
        .cal-popup-slots-title { font-size:0.58rem; letter-spacing:0.2em; text-transform:uppercase; color:var(--gold-dark); font-weight:600; margin-bottom:0.8rem; text-align:center; }
        .cal-popup-slots-date { font-family:var(--font-display); font-size:1.1rem; font-weight:500; color:var(--text-dark); text-align:center; margin-bottom:1rem; }
        .cal-popup-slots-row { display:flex; gap:0.8rem; }
        .cal-popup-slot-btn { flex:1; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:0.3rem; padding:1.1rem 0.8rem; border:2px solid var(--bordeaux); border-radius:6px; background:var(--white); cursor:pointer; transition:all 0.35s var(--tr-elegant); font-family:var(--font-body); }
        .cal-popup-slot-btn:hover:not(.slot-disabled) { background:var(--bordeaux); box-shadow:0 6px 24px rgba(91,14,45,0.18); transform:translateY(-2px); }
        .cal-popup-slot-btn:hover:not(.slot-disabled) .slot-icon,
        .cal-popup-slot-btn:hover:not(.slot-disabled) .slot-label,
        .cal-popup-slot-btn:hover:not(.slot-disabled) .slot-hora { color:var(--white); }
        .cal-popup-slot-btn:hover:not(.slot-disabled) .slot-status { color:rgba(255,255,255,0.7); }
        .slot-icon { font-size:1.3rem; line-height:1; }
        .slot-label { font-size:0.72rem; font-weight:600; letter-spacing:0.1em; color:var(--bordeaux); text-transform:uppercase; }
        .slot-hora { font-size:0.65rem; color:var(--text-light); letter-spacing:0.04em; }
        .slot-status { font-size:0.5rem; font-weight:600; letter-spacing:0.12em; text-transform:uppercase; margin-top:0.15rem; }
        .slot-status.disponivel { color:#2E7D32; }
        .slot-status.indisponivel { color:#C62828; }
        .cal-popup-slot-btn.slot-disabled { opacity:0.35; cursor:not-allowed; border-color:var(--border-subtle); }

        /* CONTACTO BTN */
        .cal-popup-contacto { display:flex; margin-top:0.8rem; }
        .cal-popup-contacto a { flex:1; display:flex; align-items:center; justify-content:center; gap:0.6rem; padding:0.9rem 1.2rem; background:var(--bordeaux); border-radius:6px; border:2px solid var(--bordeaux); color:var(--white); font-family:var(--font-body); font-size:0.72rem; font-weight:600; letter-spacing:0.1em; text-transform:uppercase; transition:all 0.35s var(--tr-elegant); text-decoration:none; }
        .cal-popup-contacto a:hover { background:var(--bordeaux-light); transform:translateY(-2px); box-shadow:0 6px 24px rgba(91,14,45,0.25); }

        @keyframes fadeSlideUp { from{opacity:0;transform:translateY(30px)} to{opacity:1;transform:translateY(0)} }
        .reveal { opacity:0; transform:translateY(40px); transition:opacity 0.8s var(--tr-smooth),transform 0.8s var(--tr-smooth); }
        .reveal.visible { opacity:1; transform:translateY(0); }
        .reveal-delay-1 { transition-delay:0.1s; }
        .reveal-delay-2 { transition-delay:0.2s; }

        @media (max-width:1024px) {
            .exp-lista-grid { grid-template-columns:1fr; max-width:600px; }
            .ev-card-detail-inner { grid-template-columns:1fr; }
            .hero-stats { flex-wrap:wrap; }
            .hero-stat { flex:1; min-width:100px; }
            .footer-grid { grid-template-columns:1fr 1fr; }
        }
        @media (max-width:768px) {
            .nav-links { display:none; position:absolute; top:100%; left:0; right:0; flex-direction:column; background:rgba(26,26,26,0.97); backdrop-filter:blur(20px); padding:2rem; gap:1.5rem; }
            .nav-links.open { display:flex; }
            .nav-toggle { display:flex; }
            .hero-stat { padding:1rem 1.5rem; }
            .hero-stat-num { font-size:1.4rem; }
            .footer-grid { grid-template-columns:1fr; }
            .footer-bottom { flex-direction:column; gap:1rem; text-align:center; }
            .filtros-wrapper { gap:0.4rem; }
            .filtro-btn { padding:0.5rem 0.9rem; font-size:0.5rem; }
            .cal-popup { max-width:95%; }
            .cal-popup-legend { gap:0.6rem; }
            .cal-popup-legend-item { font-size:0.45rem; }
        }