: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-prova: #5B0E2D;
    --cat-premium: #C9A96E;
    --cat-curso: #2D4A3E;
    --cat-jantar: #4A2D1C;
    --cor-livre:   #2D7A4A;
    --cor-passado: #9B2D2D;
}

*, *::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-eventos { position:relative; height:70vh; min-height:550px; display:flex; align-items:center; justify-content:center; overflow:hidden; background:var(--charcoal); }
.hero-eventos-bg { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; opacity:0.4; filter:brightness(0.7); }
.hero-eventos-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-eventos-grain { position:absolute; inset:0; opacity:0.025; pointer-events:none; }
.hero-eventos-content { position:relative; text-align:center; color:var(--white); max-width:750px; padding:0 2rem; }
.hero-eventos-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-eventos-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-eventos-title em { font-style:italic; color:var(--gold-light); }
.hero-eventos-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-eventos-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; }

/* CALENDÁRIO */
.calendario-section { padding:6rem 4%; background:var(--white); }
.cal-wrapper { max-width:1100px; margin:0 auto; }
.cal-month-header { display:flex; align-items:center; justify-content:space-between; margin-bottom:2rem; padding:0 0.5rem; }
.cal-nav-btn { width:42px; height:42px; border-radius:50%; border:1px solid var(--border-subtle); background:var(--cream); color:var(--bordeaux); font-size:1rem; cursor:pointer; display:flex; align-items:center; justify-content:center; transition:all 0.3s ease; }
.cal-nav-btn:hover { background:var(--bordeaux); color:var(--white); border-color:var(--bordeaux); }
.cal-month-title { font-family:var(--font-display); font-size:2rem; font-weight:400; color:var(--bordeaux); }
.cal-month-title span { font-weight:300; color:var(--text-light); }
.cal-weekdays { display:grid; grid-template-columns:repeat(7,1fr); gap:2px; margin-bottom:2px; }
.cal-weekday { text-align:center; font-size:0.6rem; letter-spacing:0.2em; text-transform:uppercase; color:var(--text-light); padding:0.8rem 0; font-weight:500; }
.cal-grid { display:grid; grid-template-columns:repeat(7,1fr); gap:2px; }

.cal-day { position:relative; min-height:90px; padding:0.6rem; background:var(--cream); border:2px solid transparent; border-radius:3px; transition:all 0.4s var(--tr-elegant); cursor:default; overflow:visible; }
.cal-day.empty { background:transparent; border:none; }
.cal-day.dia-livre      { border-color:var(--cor-livre); cursor:pointer; }
.cal-day.dia-parcial    { border-color:#B8860B; cursor:pointer; }
.cal-day.dia-indisponivel{ border-color:var(--cor-passado); cursor:pointer; opacity:0.75; }
.cal-day.dia-passado { border-color:var(--cor-passado); opacity:0.65; }
.cal-day.has-event   { border-color:transparent; cursor:pointer; }
.cal-day.has-event:hover { background:var(--white); border-color:var(--bordeaux); box-shadow:var(--shadow-medium); transform:translateY(-2px); z-index:2; }
.cal-day.dia-livre:hover,
.cal-day.dia-parcial:hover,
.cal-day.dia-indisponivel:hover  { background:var(--white); box-shadow:var(--shadow-medium); transform:translateY(-2px); z-index:10; }
.cal-day.today .cal-day-num { color:var(--gold); font-weight:600; }

.cal-day-num { font-family:var(--font-display); font-size:1.1rem; font-weight:400; color:var(--text-light); line-height:1; }
.cal-event-dots { display:flex; gap:4px; margin-top:0.5rem; flex-wrap:wrap; }
.cal-event-dot { width:6px; height:6px; border-radius:50%; flex-shrink:0; }
.cal-event-dot.prova   { background:var(--cat-prova); }
.cal-event-dot.premium { background:var(--cat-premium); }
.cal-event-dot.curso   { background:var(--cat-curso); }
.cal-event-dot.jantar  { background:var(--cat-jantar); }
.cal-event-mini { margin-top:0.3rem; font-size:0.52rem; color:var(--bordeaux); font-weight:500; line-height:1.3; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.cal-livre-mini { margin-top:0.4rem; font-size:0.48rem; letter-spacing:0.1em; text-transform:uppercase; color:var(--cor-livre); font-weight:500; opacity:0.8; }
.cal-day.dia-parcial .cal-livre-mini     { color:#B8860B; }
.cal-day.dia-indisponivel .cal-livre-mini { color:var(--cor-passado); }
.cal-day-slots { display:flex; gap:0.25rem; margin-top:0.45rem; }
.cal-slot { display:inline-flex; align-items:center; justify-content:center; width:1.5rem; height:1.5rem; border-radius:50%; font-size:0.7rem; font-weight:700; text-transform:none; letter-spacing:0.04em; color:var(--white); }
.cal-slot-available { background:var(--cor-livre); }
.cal-slot-unavailable { background:var(--cor-passado); opacity:0.45; }

.cal-tooltip { position:absolute; bottom:calc(100% + 8px); left:50%; transform:translateX(-50%) translateY(8px); width:260px; background:var(--charcoal); color:var(--white); border-radius:4px; padding:1.2rem; opacity:0; visibility:hidden; transition:all 0.35s var(--tr-elegant); pointer-events:none; z-index:200; box-shadow:0 12px 40px rgba(0,0,0,0.3); }
.cal-tooltip::after { content:''; position:absolute; top:100%; left:50%; transform:translateX(-50%); border:6px solid transparent; border-top-color:var(--charcoal); }
.cal-day.has-event:hover .cal-tooltip { opacity:1; visibility:visible; transform:translateX(-50%) translateY(0); }
.cal-tooltip-cat { font-size:0.5rem; letter-spacing:0.2em; text-transform:uppercase; color:var(--gold); margin-bottom:0.4rem; }
.cal-tooltip-title { font-family:var(--font-display); font-size:1rem; font-weight:500; margin-bottom:0.3rem; line-height:1.2; }
.cal-tooltip-date { font-size:0.65rem; color:rgba(255,255,255,0.5); margin-bottom:0.3rem; }
.cal-tooltip-price { font-family:var(--font-display); font-size:0.95rem; color:var(--gold-light); font-weight:500; }
.cal-tooltip-hint { font-size:0.55rem; color:var(--gold); margin-top:0.5rem; letter-spacing:0.1em; text-transform:uppercase; opacity:0.8; }

.cal-livre-tooltip { position:absolute; bottom:calc(100% + 8px); left:50%; transform:translateX(-50%) translateY(8px); width:210px; background:var(--white); border:1px solid rgba(45,122,74,0.2); border-top:2px solid var(--cor-livre); color:var(--text-dark); border-radius:4px; padding:1rem 1.1rem; opacity:0; visibility:hidden; transition:all 0.35s var(--tr-elegant); pointer-events:none; z-index:200; box-shadow:0 12px 40px rgba(0,0,0,0.12); }
.cal-livre-tooltip::after { content:''; position:absolute; top:100%; left:50%; transform:translateX(-50%); border:6px solid transparent; border-top-color:var(--white); }
.cal-day.dia-livre:hover .cal-livre-tooltip,
.cal-day.dia-parcial:hover .cal-livre-tooltip,
.cal-day.dia-indisponivel:hover .cal-livre-tooltip { opacity:1; visibility:visible; transform:translateX(-50%) translateY(0); }
.cal-livre-tooltip-title { font-family:var(--font-display); font-size:1rem; font-weight:500; color:var(--bordeaux); margin-bottom:0.25rem; }
.cal-livre-tooltip-sub { font-size:0.65rem; color:var(--text-light); margin-bottom:0.65rem; line-height:1.5; }
.cal-livre-tooltip-btn { display:block; width:100%; text-align:center; background:var(--cor-livre); color:var(--white); font-size:0.57rem; font-weight:600; letter-spacing:0.18em; text-transform:uppercase; padding:0.5rem 0.8rem; border-radius:2px; border:none; cursor:pointer; font-family:var(--font-body); }

.cal-legend { display:flex; gap:1.5rem; justify-content:center; margin-top:2rem; flex-wrap:wrap; }
.cal-legend-item { display:flex; align-items:center; gap:0.5rem; font-size:0.65rem; letter-spacing:0.1em; text-transform:uppercase; color:var(--text-light); }
.cal-legend-dot { width:8px; height:8px; border-radius:50%; }
.cal-legend-border { width:14px; height:14px; border-radius:2px; border:2px solid; flex-shrink:0; }

@keyframes cardPulse {
    0%   { box-shadow:0 0 0 0 rgba(91,14,45,0.5); }
    35%  { box-shadow:0 0 0 14px rgba(91,14,45,0.2); transform:translateY(-6px) scale(1.01); }
    70%  { box-shadow:0 0 0 6px rgba(91,14,45,0.05); }
    100% { box-shadow:0 0 0 0 rgba(91,14,45,0); }
}
.ev-card.card-highlight { animation:cardPulse 1.3s var(--tr-elegant) forwards; border-color:var(--bordeaux) !important; z-index:5; }

/* POPUP */
.horarios-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; }
.horarios-overlay.active { opacity:1; visibility:visible; }
.horarios-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:380px; width:90%; z-index:9999; opacity:0; visibility:hidden; transition:all 0.3s var(--tr-elegant); overflow:hidden; }
.horarios-popup.active { opacity:1; visibility:visible; transform:translate(-50%,-50%) scale(1); }
.horarios-popup-header { padding:1.8rem 2rem 1.4rem; position:relative; background:linear-gradient(135deg,var(--bordeaux-deep),var(--bordeaux)); }
.horarios-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; }
.horarios-popup-close:hover { background:rgba(255,255,255,0.15); color:var(--white); }
.horarios-popup-eyebrow { font-size:0.58rem; letter-spacing:0.25em; text-transform:uppercase; color:var(--gold); margin-bottom:0.4rem; }
.horarios-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; }
.horarios-popup-data { font-size:0.82rem; color:rgba(255,255,255,0.6); }
.horarios-popup-body { padding:1.6rem 1.5rem 1.8rem; }
.horarios-popup-intro { font-size:0.82rem; color:var(--text-light); margin-bottom:1.4rem; line-height:1.6; border-left:2px solid var(--gold); padding-left:0.9rem; }
.horarios-btns { display:flex; flex-direction:column; gap:0.6rem; }
.horarios-row  { display:flex; gap:0.6rem; }
.horario-btn { display:flex; flex-direction:column; align-items:center; justify-content:center; gap:0.25rem; padding:1rem 0.5rem; flex:1; border:1.5px solid var(--bordeaux); border-radius:4px; background:var(--white); cursor:pointer; text-decoration:none; transition:all 0.35s var(--tr-elegant); text-align:center; font-family:var(--font-body); }
.horario-btn:hover:not(.indisponivel) { background:var(--bordeaux); box-shadow:0 6px 24px rgba(91,14,45,0.18); transform:translateY(-2px); }
.horario-btn:hover:not(.indisponivel) .horario-btn-label,
.horario-btn:hover:not(.indisponivel) .horario-btn-hora,
.horario-btn:hover:not(.indisponivel) .horario-btn-icon { color:var(--white); }
.horario-btn-icon  { font-size:1.4rem; line-height:1; }
.horario-btn-label { font-size:0.72rem; font-weight:600; letter-spacing:0.1em; color:var(--bordeaux); text-transform:uppercase; }
.horario-btn-hora  { font-size:0.63rem; color:var(--text-light); letter-spacing:0.04em; margin-top:0.1rem; }
.horario-btn-status { font-size:0.5rem; font-weight:600; letter-spacing:0.12em; text-transform:uppercase; margin-top:0.15rem; }
.horario-btn:not(.indisponivel):not(.horario-btn-contacto) .horario-btn-status::before { content:'● Disponível'; color:var(--cor-livre); }
.horario-btn:hover:not(.indisponivel) .horario-btn-status::before { color:rgba(255,255,255,0.7); }
.horario-btn.indisponivel { opacity:0.4; cursor:not-allowed; border-color:var(--border-subtle); }
.horario-btn.indisponivel .horario-btn-status::before { content:'● Indisponível'; color:var(--cor-passado); }
.horario-btn-contacto { flex:unset; width:100%; flex-direction:row; gap:0.6rem; background:var(--bordeaux); border-color:var(--bordeaux); padding:0.9rem 1.2rem; justify-content:center; }
.horario-btn-contacto .horario-btn-icon  { font-size:1rem; color:var(--white); }
.horario-btn-contacto .horario-btn-label { color:var(--white); font-size:0.72rem; }
.horario-btn-contacto .horario-btn-hora  { color:rgba(255,255,255,0.6); font-size:0.6rem; }
.horario-btn-contacto:hover { background:var(--bordeaux-light); transform:translateY(-2px); box-shadow:0 6px 24px rgba(91,14,45,0.25); }

/* 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 */
.eventos-lista { padding:4rem 4% 6rem; background:var(--cream); }
.eventos-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-date-badge { 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-date-day { font-family:var(--font-display); font-size:1.6rem; font-weight:600; color:var(--bordeaux); line-height:1; }
.ev-card-date-month { font-size:0.5rem; letter-spacing:0.15em; 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.prova   { background:var(--cat-prova); }
.ev-card-cat.premium { background:var(--cat-premium); color:var(--charcoal); }
.ev-card-cat.curso   { background:var(--cat-curso); }
.ev-card-cat.jantar  { background:var(--cat-jantar); }
.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-producer { 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; }
.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-wines { grid-column:1/-1; }
.ev-detail-wines-list { list-style:none; margin-top:0.5rem; display:grid; grid-template-columns:1fr 1fr; gap:0.25rem 1.5rem; }
.ev-detail-wines-list li { font-size:0.78rem; color:var(--text-medium); padding-left:0.9rem; position:relative; line-height:1.45; }
.ev-detail-wines-list li::before { content:'·'; position:absolute; left:0; color:var(--gold); font-size:1rem; line-height:1.2; }
.ev-detail-desc { grid-column:1/-1; font-size:0.85rem; color:var(--text-medium); line-height:1.7; }
.ev-vagas { display:inline-flex; align-items:center; gap:0.4rem; }
.ev-vagas-dot { width:8px; height:8px; border-radius:50%; background:#2D7A4A; }
.ev-vagas-dot.limited { background:var(--gold); }
.ev-vagas-dot.full    { background:#9B2D2D; }
.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); }
.ev-card-note { font-size:0.72rem; color:var(--gold-dark); font-style:italic; margin-top:0.4rem; padding:0.5rem 0.8rem; background:rgba(201,169,110,0.08); border-left:2px solid var(--gold); border-radius:0 2px 2px 0; }

/* EXPERIÊNCIAS */
.experiencias { padding:6rem 4%; background:var(--charcoal); color:var(--white); position:relative; overflow:hidden; }
.experiencias::before { content:''; position:absolute; top:50%; left:50%; transform:translate(-50%,-50%); width:800px; height:800px; border-radius:50%; background:radial-gradient(circle,var(--bordeaux-deep) 0%,transparent 70%); opacity:0.2; pointer-events:none; }
.experiencias .section-header .heading-section { color:var(--white); }
.exp-grid { max-width:1100px; margin:0 auto; display:grid; grid-template-columns:1fr 1fr; gap:2rem; }
.exp-empty { grid-column:1/-1; text-align:center; color:rgba(255,255,255,0.55); font-family:var(--font-display); font-style:italic; font-size:1.2rem; padding:3rem 1rem; }
.exp-card { position:relative; border-radius:4px; overflow:hidden; height:400px; cursor:pointer; transition:all 0.5s var(--tr-elegant); }
.exp-card:hover { transform:translateY(-4px); box-shadow:0 20px 60px rgba(0,0,0,0.4); }
.exp-card:first-child { grid-row:span 2; height:auto; }
.exp-grid[data-count="1"] { grid-template-columns:1fr; max-width:600px; }
.exp-grid[data-count="1"] .exp-card:first-child,
.exp-grid[data-count="2"] .exp-card:first-child { grid-row:span 1; height:400px; }
.exp-card-img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; filter:brightness(0.45) contrast(1.1); transition:all 0.7s var(--tr-elegant); }
.exp-card:hover .exp-card-img { transform:scale(1.05); filter:brightness(0.35) contrast(1.15); }
.exp-card-border { position:absolute; inset:12px; border:1px solid rgba(201,169,110,0.25); border-radius:2px; pointer-events:none; transition:all 0.5s ease; }
.exp-card:hover .exp-card-border { inset:16px; border-color:rgba(201,169,110,0.5); }
.exp-card-content { position:absolute; bottom:0; left:0; right:0; padding:2.5rem; background:linear-gradient(transparent,rgba(26,16,23,0.85)); }
.exp-card-label { font-size:0.55rem; letter-spacing:0.25em; text-transform:uppercase; color:var(--gold); margin-bottom:0.7rem; }
.exp-card-title { font-family:var(--font-display); font-size:1.6rem; font-weight:500; line-height:1.2; margin-bottom:0.5rem; }
.exp-card:first-child .exp-card-title { font-size:2rem; }
.exp-card-text { font-size:0.82rem; color:rgba(255,255,255,0.6); line-height:1.6; margin-bottom:1.2rem; max-width:380px; }
.exp-card-price { font-family:var(--font-display); font-size:1.2rem; font-weight:500; color:var(--gold-light); }

/* 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-brand { font-family:var(--font-display); font-size:1.5rem; color:var(--white); margin-bottom:1rem; }
.footer-brand span { font-weight:300; opacity:0.6; }
.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); }

@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) {
    .eventos-lista-grid { grid-template-columns:1fr; max-width:600px; }
    .exp-grid { grid-template-columns:1fr; }
    .exp-card:first-child { grid-row:span 1; height:400px; }
    .ev-card-detail-inner { grid-template-columns:1fr; }
    .ev-detail-wines-list { 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; }
    .cal-day { min-height:60px; padding:0.4rem; }
    .cal-day-num { font-size:0.85rem; }
    .cal-event-mini, .cal-livre-mini { display:none; }
    .cal-tooltip, .cal-livre-tooltip { display:none; }
    .hero-stat { padding:1rem 1.5rem; }
    .hero-stat-num { font-size:1.4rem; }
    .exp-card { height:300px; }
    .footer-grid { grid-template-columns:1fr; }
    .footer-bottom { flex-direction:column; gap:1rem; text-align:center; }
}
@media (max-width:480px) {
    .cal-weekday { font-size:0.45rem; }
    .cal-day { min-height:48px; }
    .cal-event-dots { display:none; }
    .filtros-wrapper { gap:0.4rem; }
    .filtro-btn { padding:0.5rem 0.9rem; font-size:0.5rem; }
}