:root{
    --bg:#0a0d12;
    --bg-elevated:#10141b;
    --surface:#161c25;
    --surface-line: rgba(201,150,44,0.18);
    --gold:#c9962c;
    --gold-light:#e6c165;
    --navy:#13294b;
    --cream:#f4efe4;
    --muted:#8b93a0;
    --danger:#c2543f;
    --success:#5a9c6e;
    --serif: 'Fraunces', serif;
    --sans: 'Poppins', sans-serif;
    --mono: 'JetBrains Mono', monospace;
    --max: 1180px;
  }

  *{box-sizing:border-box; margin:0; padding:0;}
  html{scroll-behavior:smooth;}
  body{
    background:var(--bg);
    color:var(--cream);
    font-family:var(--sans);
    font-weight:300;
    line-height:1.6;
    -webkit-font-smoothing:antialiased;
    overflow-x:hidden;
  }

  @media (prefers-reduced-motion: reduce){
    *{animation-duration:0.001ms !important; animation-iteration-count:1 !important; transition-duration:0.001ms !important; scroll-behavior:auto !important;}
  }

  a{color:inherit; text-decoration:none;}
  ul{list-style:none;}
  img{max-width:100%; display:block;}

  ::selection{ background:var(--gold); color:var(--bg); }

  :focus-visible{
    outline:2px solid var(--gold-light);
    outline-offset:3px;
  }

  .wrap{ max-width:var(--max); margin:0 auto; padding:0 32px; }
  @media (max-width:640px){ .wrap{ padding:0 20px; } }

  .eyebrow{
    font-family:var(--mono);
    font-size:12px;
    letter-spacing:0.28em;
    text-transform:uppercase;
    color:var(--gold);
    display:flex;
    align-items:center;
    gap:12px;
  }
  .eyebrow::before{
    content:'';

    background:var(--gold);
    display:inline-block;
  }

  /* ---------- background texture ---------- */
  .grain{
    position:fixed; inset:0; pointer-events:none; z-index:1;
    opacity:0.035; mix-blend-mode:overlay;
    background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='120' height='120'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
  }

  /* ---------- nav ---------- */
  header{
    position:fixed; top:0; left:0; right:0; z-index:100;
    padding:22px 0;
    transition:background .35s ease, padding .35s ease, border-color .35s ease;
    border-bottom:1px solid transparent;
  }
  header.scrolled{
    background:rgba(10,13,18,0.86);
    backdrop-filter:blur(14px);
    padding:14px 0;
    border-bottom:1px solid var(--surface-line);
  }
  header .wrap{ display:flex; align-items:center; justify-content:space-between; }
  .logo{
    font-family:var(--serif);
    font-weight:600;
    font-size:30px;
    letter-spacing:0.01em;
    display:flex; flex-direction:column; line-height:1.05;
  }
  .logo span{
    font-family:var(--mono);
    font-size:15px;
    letter-spacing:0.24em;
    color:var(--gold);
    text-transform:uppercase;
    margin-top:3px;
  }
  nav.links{ display:flex; gap:22px; }
  nav.links a{
    font-size:12.5px;
    letter-spacing:0.03em;
    color:var(--muted);
    position:relative;
    padding-bottom:4px;
    transition:color .25s ease;
  }
  nav.links a:hover{ color:var(--cream); }
  nav.links a::after{
    content:''; position:absolute; left:0; bottom:0; width:0; height:1px;
    background:var(--gold); transition:width .25s ease;
  }
  nav.links a:hover::after{ width:100%; }

  .btn{
    display:inline-flex; align-items:center; justify-content:center; gap:8px;
    font-family:var(--sans); font-size:13.5px; font-weight:500;
    padding:13px 26px; border-radius:2px; cursor:pointer; border:1px solid transparent;
    transition:transform .2s ease, box-shadow .2s ease, background .2s ease, border-color .2s ease, color .2s ease;
    letter-spacing:0.01em;
  }
  .btn-gold{ background:var(--gold); color:#1a1305; }
  .btn-gold:hover{ background:var(--gold-light); transform:translateY(-1px); box-shadow:0 10px 24px -8px rgba(201,150,44,0.55); }
  .btn-ghost{ border-color:rgba(244,239,228,0.28); color:var(--cream); background:transparent; }
  .btn-ghost:hover{ border-color:var(--gold); color:var(--gold-light); }
  .btn-wpp{ background:#1c3d2c; color:#dff3e4; border-color:#2e6b48; }
  .btn-wpp:hover{ background:#234a35; transform:translateY(-1px); }

  .nav-cta{ display:none; }
  @media (min-width:1080px){ .nav-cta{ display:inline-flex; } }

  .burger{ display:flex; background:none; border:none; color:var(--cream); font-family:var(--mono); font-size:11px; letter-spacing:.2em; text-transform:uppercase; gap:8px; align-items:center; cursor:pointer; }
  header .wrap{ position:relative; }
  @media (min-width:1080px){ .burger{ display:none; } nav.links{ display:flex; } }
  @media (max-width:1079px){
    nav.links{
      display:none; position:absolute; top:calc(100% + 1px); left:0; right:0;
      flex-direction:column; gap:0;
      background:rgba(10,13,18,0.97); backdrop-filter:blur(14px);
      border:1px solid var(--surface-line); border-top:none;
      padding:6px 24px 18px;
    }
    nav.links.mobile-open{ display:flex; }
    nav.links a{ padding:13px 0; border-bottom:1px solid var(--surface-line); }
    nav.links a::after{ display:none; }
  }

  /* ---------- hero ---------- */
  .hero{
    position:relative;
    min-height:100vh;
    display:flex; align-items:center;
    padding:150px 0 90px;
    background:
      radial-gradient(ellipse 900px 500px at 82% -10%, rgba(201,150,44,0.16), transparent 60%),
      radial-gradient(ellipse 700px 500px at 10% 110%, rgba(19,41,75,0.55), transparent 60%),
      linear-gradient(180deg, rgba(10,13,18,0.94), rgba(10,13,18,0.88) 45%, var(--bg) 92%),
      url('images/hero-event.jpg') center 30%/cover no-repeat,
      var(--bg);
  }
  .hero .wrap{ display:grid; grid-template-columns:1.15fr 0.85fr; gap:64px; align-items:center; }
  @media (max-width:960px){ .hero .wrap{ grid-template-columns:1fr; gap:56px; } .hero{ padding-top:130px; } }

  .hero-kicker{ margin-bottom:22px; }
  .hero h1{
    font-family:var(--serif);
    font-weight:600;
    font-size:clamp(38px, 5.4vw, 66px);
    line-height:1.03;
    letter-spacing:-0.01em;
    max-width:11.5ch;
  }
  .hero h1 em{
    font-style:italic; font-weight:500; color:var(--gold-light);
  }
  .hero p.lede{
    margin-top:24px;
    font-size:17px;
    color:var(--muted);
    max-width:46ch;
    font-weight:300;
  }

  .hero-meta{
    margin-top:34px;
    display:flex; flex-wrap:wrap; gap:14px;
  }
  .meta-chip{
    display:flex; align-items:center; gap:10px;
    border:1px solid var(--surface-line);
    background:rgba(255,255,255,0.02);
    padding:11px 16px;
    font-family:var(--mono);
    font-size:12.5px;
    letter-spacing:0.02em;
    color:var(--cream);
  }
  .meta-chip svg{ width:15px; height:15px; color:var(--gold); flex-shrink:0; }

  .hero-actions{ margin-top:38px; display:flex; flex-wrap:wrap; gap:14px; }

  /* countdown — signature element */
  .manuscript{
    position:relative;
    border:1px solid var(--surface-line);
    background:linear-gradient(180deg, var(--bg-elevated), var(--surface));
    padding:38px 30px 32px;
  }
  .manuscript::before,
  .manuscript::after{
    content:''; position:absolute; width:14px; height:14px; border:1px solid var(--gold);
  }
  .manuscript::before{ top:-1px; left:-1px; border-right:none; border-bottom:none; }
  .manuscript::after{ bottom:-1px; right:-1px; border-left:none; border-top:none; }

  .manuscript .cap{
    font-family:var(--mono); font-size:11px; letter-spacing:0.24em; text-transform:uppercase;
    color:var(--gold); text-align:center; margin-bottom:22px;
  }
  .countdown{
    display:grid; grid-template-columns:repeat(4, 1fr); gap:0;
  }
  .countdown .cell{
    text-align:center; padding:0 6px; position:relative;
  }
  .countdown .cell + .cell::before{
    content:''; position:absolute; left:0; top:8px; bottom:8px; width:1px;
    background:var(--surface-line);
  }
  .countdown .num{
    font-family:var(--mono); font-weight:700;
    font-size:clamp(30px, 4vw, 42px);
    color:var(--cream);
    font-variant-numeric:tabular-nums;
  }
  .countdown .lbl{
    margin-top:8px;
    font-family:var(--mono); font-size:10px; letter-spacing:0.2em; text-transform:uppercase;
    color:var(--muted);
  }
  .manuscript .rule{
    height:1px; background:var(--surface-line); margin:24px 0 18px;
  }
  .manuscript .sub{
    text-align:center; font-size:12.5px; color:var(--muted); font-family:var(--sans);
  }
  .manuscript .sub strong{ color:var(--gold-light); font-weight:500; }

  /* ---------- sections shared ---------- */
  section{ position:relative; padding:120px 0; }
  @media (max-width:640px){ section{ padding:80px 0; } }
  .section-head{ max-width:640px; margin-bottom:56px; }
  .section-head h2{
    font-family:var(--serif); font-weight:600; font-size:clamp(30px, 4vw, 44px);
    margin-top:16px; line-height:1.08;
  }
  .section-head p{ margin-top:16px; color:var(--muted); font-size:15.5px; max-width:52ch; }

  #sobre{ background:var(--bg-elevated); border-top:1px solid var(--surface-line); border-bottom:1px solid var(--surface-line); }

  .sobre-grid{ display:grid; grid-template-columns:1fr 1fr; gap:64px; }
  @media (max-width:860px){ .sobre-grid{ grid-template-columns:1fr; gap:48px; } }

  .sobre-copy p{ color:var(--muted); font-size:15.5px; margin-bottom:16px; }
  .sobre-copy p strong{ color:var(--cream); font-weight:500; }

  .autor{
    margin-top:32px; padding-top:28px; border-top:1px solid var(--surface-line);
    display:flex; gap:16px; align-items:flex-start;
  }
  .autor .initials{
    width:52px; height:52px; border:1px solid var(--gold); color:var(--gold-light);
    font-family:var(--serif); font-weight:600; font-size:18px;
    display:flex; align-items:center; justify-content:center; flex-shrink:0;
  }
  .autor .name{ font-family:var(--sans); font-weight:500; font-size:14.5px; }
  .autor .role{ font-family:var(--mono); font-size:11px; letter-spacing:0.1em; color:var(--gold); margin-top:2px; text-transform:uppercase; }
  .autor .bio{ margin-top:8px; font-size:13.5px; color:var(--muted); max-width:42ch; }

  .capitulos{ display:flex; flex-direction:column; gap:0; }
  .capitulo{
    display:grid; grid-template-columns:auto 1fr; gap:20px;
    padding:22px 0; border-bottom:1px solid var(--surface-line);
  }
  .capitulo:first-child{ padding-top:0; }
  .capitulo .num{ font-family:var(--serif); font-style:italic; font-size:26px; color:var(--gold); width:36px; }
  .capitulo h3{ font-family:var(--sans); font-weight:500; font-size:15.5px; }
  .capitulo p{ margin-top:6px; font-size:13.5px; color:var(--muted); }

/* ---------- PALESTRANTE ---------- */

.speaker-card{
    display:grid;
    grid-template-columns:480px 1fr;
    gap:60px;
    align-items:center;
    padding:50px;
    background:linear-gradient(145deg,var(--surface),var(--bg-elevated));
    border:1px solid var(--surface-line);
    border-radius:18px;
}

@media (max-width:980px){
    .speaker-card{
        grid-template-columns:1fr;
        text-align:center;
        gap:35px;
    }
}

/* FOTO */

.speaker-photo{
    width:480px;
    height:620px;
    margin:auto;
    overflow:hidden;
    background:transparent;
    border:none;
    border-radius:0;
    box-shadow:none;
    position:relative;
    display:flex;
    justify-content:center;
    align-items:center;
}

.speaker-photo img{
    width:100%;
    height:100%;
    object-fit:contain; /* Mostra a imagem completa */
    display:block;
}

.speaker-photo-fallback{
    position:absolute;
    inset:0;
    display:flex;
    justify-content:center;
    align-items:center;
    color:var(--gold);
}

.speaker-photo-fallback svg{
    width:100px;
    height:100px;
}

/* INFORMAÇÕES */

.speaker-info h3{
    font-family:var(--serif);
    font-size:42px;
    font-weight:600;
    margin-bottom:12px;
    color:var(--cream);
}

.speaker-role{
    font-family:var(--mono);
    font-size:13px;
    letter-spacing:.15em;
    text-transform:uppercase;
    color:var(--gold);
    margin-bottom:24px;
}

.speaker-info p{
    font-size:17px;
    line-height:1.9;
    color:var(--muted);
    max-width:720px;
}

.partner-role{
    display:inline-block;
    margin-bottom:20px;
    color:var(--gold);
    font-family:var(--mono);
    font-size:12px;
    letter-spacing:.18em;
    text-transform:uppercase;
}

/* TAGS */

.speaker-highlights{
    display:flex;
    flex-wrap:wrap;
    gap:12px;
    margin-top:30px;
}

.speaker-highlights .meta-chip{
    background:rgba(255,255,255,.04);
    border:1px solid rgba(201,150,44,.25);
    color:var(--cream);
    padding:10px 18px;
    border-radius:30px;
    font-size:13px;
}

@media (max-width:980px){

    .speaker-photo{
        width:320px;
        height:420px;
    }

    .speaker-info p{
        margin:auto;
    }

    .speaker-highlights{
        justify-content:center;
    }

}
/* ---------- PALESTRANTE ---------- */

.speaker-card{
    display:grid;
    grid-template-columns:320px 1fr;
    gap:35px;
    align-items:start;
    padding:30px;
    border:1px solid var(--surface-line);
    background:var(--surface);
    border-radius:16px;
}

.speaker-photo{
    width:320px;
    height:480px;
    overflow:hidden;
    display:flex;
    justify-content:center;
    align-items:center;
}

.speaker-photo img{
    width:100%;
    height:100%;
    object-fit:cover;
    object-position:center top;
    display:block;
}

.speaker-info h3{
    font-size:34px;
    margin-bottom:10px;
}

.speaker-role{
    font-size:12px;
    margin-bottom:18px;
}

.speaker-info p{
    font-size:15px;
    line-height:1.8;
    max-width:600px;
}

.speaker-highlights{
    margin-top:20px;
    display:flex;
    flex-wrap:wrap;
    gap:10px;
}

@media(max-width:900px){

    .speaker-card{
        grid-template-columns:1fr;
        text-align:center;
    }

    .speaker-photo{
        width:260px;
        height:390px;
        margin:auto;
    }

    .speaker-highlights{
        justify-content:center;
    }

}

  /* ---------- volumes ---------- */
  .volumes-grid{ display:grid; grid-template-columns:1fr 1fr; gap:22px; }
  @media (max-width:820px){ .volumes-grid{ grid-template-columns:1fr; } }
  .volume-card{
    border:1px solid var(--surface-line); background:var(--surface); padding:34px;
  }
  .volume-card--gold{ border-color:rgba(201,150,44,0.45); background:linear-gradient(165deg, var(--surface), rgba(201,150,44,0.06)); }
  .volume-tag{
    font-family:var(--mono); font-size:11px; letter-spacing:0.2em; text-transform:uppercase; color:var(--gold);
  }
  .volume-card h3{ font-family:var(--serif); font-weight:600; font-size:23px; margin-top:12px; line-height:1.15; }
  .volume-lede{ margin-top:12px; color:var(--muted); font-size:14px; }
  .volume-list{ margin-top:20px; display:flex; flex-direction:column; gap:12px; }
  .volume-list li{
    font-size:14px; color:var(--cream); padding-left:20px; position:relative;
  }
  .volume-list li::before{
    content:''; position:absolute; left:0; top:8px; width:8px; height:1px; background:var(--gold);
  }

  /* ---------- timeline / programa ---------- */
  .timeline{ display:flex; flex-direction:column; }
  .tl-item{
    display:grid; grid-template-columns:52px 1fr; gap:22px; padding:26px 0;
    border-bottom:1px solid var(--surface-line);
  }
  .tl-item:last-child{ border-bottom:none; }
  .tl-marker{
    width:44px; height:44px; border:1px solid var(--gold); color:var(--gold-light);
    display:flex; align-items:center; justify-content:center;
    font-family:var(--mono); font-weight:700; font-size:16px;
  }
  .tl-marker--break{ border-style:dashed; font-size:18px; }
  .tl-item--break{ opacity:0.85; }
  .tl-content h3{ font-family:var(--sans); font-weight:500; font-size:16px; }
  .tl-content p{ margin-top:6px; font-size:13.5px; color:var(--muted); max-width:64ch; }

  /* ---------- objectivos ---------- */
  .obj-grid{ display:grid; grid-template-columns:repeat(4, 1fr); gap:22px; }
  @media (max-width:960px){ .obj-grid{ grid-template-columns:1fr 1fr; } }
  @media (max-width:600px){ .obj-grid{ grid-template-columns:1fr; } }
  .obj-card{ border-top:1px solid var(--gold); padding-top:18px; }
  .obj-num{ font-family:var(--mono); font-size:12px; color:var(--muted); }
  .obj-card h3{ font-family:var(--sans); font-weight:500; font-size:15px; margin-top:10px; }
  .obj-card p{ margin-top:10px; font-size:13.5px; color:var(--muted); }

  /* ---------- parceiros ---------- */
  .partners-grid{ display:grid; grid-template-columns:1fr 1fr; gap:22px; }
  .partners-grid--3{ grid-template-columns:repeat(3, 1fr); }
  @media (max-width:400px){ .partners-grid--3{ grid-template-columns:1fr 1fr; } }
  @media (max-width:400px){ .partners-grid, .partners-grid--3{ grid-template-columns:1fr; } }
  .partner-card{ border:1px solid var(--surface-line); background:var(--surface); padding:20px;  }
  .partner-logo{ height:34px; width:auto; margin-bottom:16px; opacity:0.92; }
  .partner-role{ font-family:var(--mono); font-size:10.5px; letter-spacing:0.16em; text-transform:uppercase; color:var(--gold); }
  .partner-mark{ font-family:var(--serif); font-weight:600; font-style:italic; font-size:22px; color:var(--gold-light); margin-top:8px; }
  .partner-card p{ margin-top:1px; font-size:13.5px; color:var(--muted); }

  /* ---------- roteiro ---------- */
  .roteiro-list{ display:flex; flex-direction:column; }
  .roteiro-item{
    display:flex; justify-content:space-between; align-items:center; flex-wrap:wrap; gap:10px;
    padding:22px 26px; border:1px solid var(--surface-line); margin-bottom:12px;
  }
  .roteiro-item--active{ border-color:var(--gold); background:rgba(201,150,44,0.06); }
  .roteiro-item--soon{ opacity:0.6; }
  .roteiro-item--done{ opacity:0.55; }
  .roteiro-item--done .roteiro-status{ color:var(--muted); }

  .roteiro-proxima{
    border:1px solid var(--gold); background:rgba(201,150,44,0.07);
    padding:26px 28px; margin-bottom:28px;
  }
  .roteiro-select-wrap{
    border:1px solid var(--surface-line); background:var(--surface);
    padding:28px; display:flex; flex-direction:column; gap:14px;
  }
  .roteiro-select-wrap label{ font-family:var(--mono); font-size:12px; letter-spacing:0.05em; color:var(--muted); }
  .roteiro-select-wrap select{
    width:100%; max-width:420px; padding:12px 14px; background:var(--bg-elevated);
    border:1px solid var(--surface-line); color:var(--cream); font-family:var(--sans); font-size:14px;
    border-radius:2px; cursor:pointer;
  }
  .roteiro-select-wrap select:focus{ border-color:var(--gold); }
  .roteiro-select-empty{ color:var(--muted); font-family:var(--mono); font-size:13px; }
  .roteiro-resultado{
    margin-top:6px; padding:22px 24px; border:1px solid var(--surface-line);
    background:var(--bg-elevated); display:flex; flex-direction:column; gap:6px; align-items:flex-start;
  }
  .roteiro-resultado p{ color:var(--muted); font-size:13.5px; }
  .roteiro-resultado .btn{ margin-top:14px; }

  /* ---------- comprar o ebook ---------- */
  .buy-grid{ display:grid; grid-template-columns:auto 1fr; gap:56px; align-items:center; }
  @media (max-width:820px){ .buy-grid{ grid-template-columns:1fr; text-align:center; } }
  .buy-covers{ display:flex; gap:18px; justify-content:center; }
  .buy-covers .cover{
    width:150px; aspect-ratio:3/4.4; object-fit:cover;
    border:1px solid var(--surface-line); box-shadow:0 24px 50px -20px rgba(0,0,0,0.55);
  }
  .cover-front{ transform:rotate(-3deg); }
  .cover-back{ transform:rotate(3deg); margin-top:22px; }
  @media (max-width:480px){ .buy-covers .cover{ width:120px; } }
  .buy-copy h2{ font-family:var(--serif); font-weight:600; font-size:clamp(24px, 3vw, 34px); margin:14px 0 12px; line-height:1.15; }
  .buy-copy p{ color:var(--muted); font-size:14.5px; margin-bottom:22px; max-width:48ch; }
  @media (max-width:820px){ .buy-copy p{ margin-left:auto; margin-right:auto; } }
  .roteiro-status{
    font-family:var(--mono); font-size:10px; letter-spacing:0.14em; text-transform:uppercase; color:var(--gold);
  }
  .roteiro-city h3{ font-family:var(--serif); font-weight:600; font-size:19px; margin-top:4px; }
  .roteiro-date{ font-family:var(--mono); font-size:13px; color:var(--cream); }

  /* ---------- galeria ---------- */
  .gal-toolbar{ display:flex; align-items:center; justify-content:space-between; gap:20px; flex-wrap:wrap; margin-bottom:36px; }
  .gal-note{ font-family:var(--mono); font-size:11.5px; color:var(--muted); letter-spacing:0.02em; }

  .gal-grid{
    display:grid; grid-template-columns:repeat(4, 1fr); gap:14px;
  }
  @media (max-width:960px){ .gal-grid{ grid-template-columns:repeat(3, 1fr); } }
  @media (max-width:640px){ .gal-grid{ grid-template-columns:repeat(2, 1fr); gap:10px; } }

  .gal-item{
    position:relative; aspect-ratio:4/5; overflow:hidden;
    border:1px solid var(--surface-line);
    background:var(--surface);
    cursor:pointer;
  }
  .gal-item video,
.gal-item img{
    width:100%;
    height:100%;
    object-fit:cover;
    display:block;
}


.gal-item video{
    background:#000;
}

.video-wrapper{
    width:100%;
    height:100%;
    position:relative;
}


.video-wrapper video{
    width:100%;
    height:100%;
    object-fit:cover;
}

.video-container{
    position:relative;
    width:100%;
    height:100%;
}
.video-container video{
    width:100%;
    height:100%;
    object-fit:cover;
    display:block;
}
.play-button{
    position:absolute;
    top:50%; left:50%;
    transform:translate(-50%,-50%);
    width:52px; height:52px;
    display:flex; align-items:center; justify-content:center;
    border-radius:50%;
    background:rgba(10,13,18,0.55);
    border:1px solid rgba(255,255,255,0.4);
    color:#fff;
    font-size:18px;
    line-height:1;
    padding-left:3px; /* centra visualmente o ícone ▶ */
    cursor:pointer;
    transition:opacity .2s ease, transform .2s ease, background .2s ease;
}
.play-button:hover{ background:rgba(201,150,44,0.75); border-color:rgba(255,255,255,0.7); }
.video-container:hover .play-button{ transform:translate(-50%,-50%) scale(1.08); }
.video-container.is-playing .play-button{ opacity:0; pointer-events:none; }

.gal-abrir-imagem{ cursor:zoom-in; }

.gal-lightbox{
  position:fixed; inset:0; z-index:999;
  background:rgba(6,8,12,0.94);
  display:none;
  align-items:center; justify-content:center;
  padding:32px;
}
.gal-lightbox.aberto{ display:flex; }
.gal-lightbox img{
  max-width:100%; max-height:100%;
  object-fit:contain;
  box-shadow:0 20px 60px rgba(0,0,0,0.5);
}
.gal-lightbox-fechar{
  position:absolute; top:20px; right:24px;
  width:42px; height:42px;
  border-radius:50%;
  border:1px solid rgba(255,255,255,0.3);
  background:rgba(255,255,255,0.08);
  color:#fff;
  font-size:26px; line-height:1;
  cursor:pointer;
  display:flex; align-items:center; justify-content:center;
  transition:background .2s ease;
}
.gal-lightbox-fechar:hover{ background:rgba(255,255,255,0.2); }

.gal-item:hover img,
.gal-item:hover video{
    transform:scale(1.05);
}
  .gal-overlay{
    position:absolute; inset:0; display:flex; flex-direction:column; justify-content:flex-end;
    padding:14px; background:linear-gradient(180deg, transparent 40%, rgba(10,13,18,0.92));
    opacity:0; transition:opacity .3s ease;
    pointer-events:none; /* deixa o clique passar para a foto/vídeo por baixo */
  }
  .gal-item:hover .gal-overlay{ opacity:1; }
  .gal-overlay .t{ font-size:12px; font-weight:500; }
  .gal-overlay .e{ font-family:var(--mono); font-size:10px; color:var(--gold-light); margin-top:2px; }
  .gal-overlay h3{ font-size:12.5px; font-weight:500; line-height:1.35; }
  .gal-overlay p{ font-family:var(--mono); font-size:10px; color:var(--gold-light); margin-top:2px; }
  .gal-overlay .gal-local{ color:var(--cream); opacity:0.85; margin-top:4px; }
  .gal-overlay .gal-descricao{ font-family:inherit; font-size:11px; color:var(--cream); opacity:0.8; margin-top:4px; line-height:1.4; text-transform:none; letter-spacing:normal; }
  .gal-provincia-destaque{ animation:galDestaquePulse 2.4s ease; }
  @keyframes galDestaquePulse{
    0%{ box-shadow:0 0 0 0 rgba(201,150,44,0); }
    15%{ box-shadow:0 0 0 3px rgba(201,150,44,0.45); }
    100%{ box-shadow:0 0 0 0 rgba(201,150,44,0); }
  }
  .gal-play{
    position:absolute; top:10px; right:10px; width:30px; height:30px; border-radius:50%;
    background:rgba(10,13,18,0.65); border:1px solid var(--gold); display:flex; align-items:center; justify-content:center;
  }
  .gal-play svg{ width:11px; height:11px; color:var(--gold-light); }

  .gal-empty{
    text-align:center; padding:70px 20px; border:1px dashed var(--surface-line); color:var(--muted); font-size:13.5px;
  }

  .gal-cta{ margin-top:34px; text-align:center; }
  .gal-cta-note{ margin-top:12px; font-size:12.5px; color:var(--muted); }

  .gal-teaser{
    display:grid; grid-template-columns:1fr 1fr; gap:44px; align-items:center;
  }
  @media (max-width:800px){ .gal-teaser{ grid-template-columns:1fr; gap:28px; } }
  .gal-teaser-media{ border:1px solid var(--surface-line); aspect-ratio:4/3; overflow:hidden; }
  .gal-teaser-media img{ width:100%; height:100%; object-fit:cover; }
  .gal-teaser-copy .btn{ margin-top:20px; }

  /* ---------- palestrante ---------- */
  .speaker-card{
    display:grid; grid-template-columns:200px 1fr; gap:36px; align-items:start;
    border:1px solid var(--surface-line); background:var(--surface); padding:34px;
  }
  @media (max-width:720px){ .speaker-card{ grid-template-columns:1fr; } }

  .speaker-photo{
    position:relative; width:100%; aspect-ratio:1/1; overflow:hidden;
    background:linear-gradient(145deg, var(--surface), var(--bg-elevated));
    border:1px solid var(--surface-line);
  }
  .speaker-photo img{ position:relative; z-index:1; width:100%; height:100%; object-fit:cover; }
  .speaker-photo-fallback{
    position:absolute; inset:0; display:flex; align-items:center; justify-content:center; color:var(--surface-line);
  }
  .speaker-info h3{ font-family:var(--serif); font-weight:600; font-size:24px; margin-top:10px; }
  .speaker-role{ font-family:var(--mono); font-size:12px; color:var(--muted); margin-top:4px; }
  .speaker-info > p{ margin-top:14px; color:var(--muted); font-size:14.5px; max-width:60ch; }
  .speaker-highlights{ display:flex; flex-wrap:wrap; gap:10px; margin-top:18px; }

  /* ---------- inscrição ---------- */
  #inscricao{ background:var(--bg-elevated); border-top:1px solid var(--surface-line); }
  .paths{ display:grid; grid-template-columns:1fr 1fr; gap:22px; margin-bottom:12px; }
  @media (max-width:820px){ .paths{ grid-template-columns:1fr; } }

  .path-card{
    border:1px solid var(--surface-line);
    background:var(--surface);
    padding:32px;
    display:flex; flex-direction:column; gap:16px;
  }
  .path-card .icon{
    width:42px; height:42px; border:1px solid var(--gold); display:flex; align-items:center; justify-content:center;
  }
  .path-card .icon svg{ width:19px; height:19px; color:var(--gold-light); }
  .path-card h3{ font-family:var(--serif); font-weight:600; font-size:20px; }
  .path-card p{ color:var(--muted); font-size:14px; flex-grow:1; }

  #form-panel{
    margin-top:26px;
    border:1px solid var(--surface-line);
    background:var(--surface);
    padding:36px;
    display:none;
  }
  #form-panel.open{ display:block; }

  .field{ margin-bottom:20px; }
  .field label{
    display:block; font-family:var(--mono); font-size:10.5px; letter-spacing:0.14em; text-transform:uppercase;
    color:var(--gold); margin-bottom:9px;
  }
  .field input, .field select{
    width:100%; background:var(--bg-elevated); border:1px solid var(--surface-line); color:var(--cream);
    padding:13px 14px; font-family:var(--sans); font-size:14.5px; border-radius:2px;
    transition:border-color .2s ease;
  }
  .field input:focus, .field select:focus{ border-color:var(--gold); }
  .field input::placeholder{ color:#5a6270; }
  .form-row{ display:grid; grid-template-columns:1fr 1fr; gap:18px; }
  @media (max-width:600px){ .form-row{ grid-template-columns:1fr; } }

  .interest-options{ display:flex; flex-wrap:wrap; gap:10px 22px; }
  .check-opt{
    display:flex !important; align-items:center; gap:8px;
    font-family:var(--sans) !important; font-size:13.5px !important; text-transform:none !important;
    letter-spacing:normal !important; color:var(--cream) !important; cursor:pointer;
  }
  .check-opt input{ width:15px; height:15px; accent-color:var(--gold); }

  .comunidade-cta{
    display:flex; align-items:center; justify-content:space-between; gap:20px; flex-wrap:wrap;
    border:1px solid #2e6b48; background:rgba(28,61,44,0.18); padding:22px 26px; margin-top:24px;
  }
  .comunidade-cta p{ color:var(--muted); font-size:13.5px; max-width:46ch; }
  .comunidade-cta strong{ color:var(--cream); }

  .admin-hint{ margin-top:8px; font-size:11.5px; font-family:var(--mono); color:var(--muted); }
  .form-status{ margin-top:16px; font-size:13px; font-family:var(--mono); display:none; }
  .form-status.ok{ color:var(--success); display:block; }
  .form-status.err{ color:var(--danger); display:block; }

  .vagas-indicator{
    margin-top:14px; font-family:var(--mono); font-size:12px; color:var(--gold-light);
    letter-spacing:0.02em;
  }

  /* ---------- admin ---------- */
  .admin-box{
    border:1px solid var(--surface-line); background:var(--surface); padding:30px; margin-bottom:22px; max-width:640px;
  }
  .admin-h3{ font-family:var(--serif); font-weight:600; font-size:19px; margin-bottom:18px; }
  .admin-note{ font-family:var(--mono); font-size:12.5px; color:var(--muted); margin-bottom:18px; }
  .admin-list{ margin-top:22px; display:flex; flex-direction:column; gap:10px; }
  .admin-list-item{
    display:flex; align-items:center; justify-content:space-between; gap:12px;
    border:1px solid var(--surface-line); padding:10px 14px; font-size:13px;
  }
  .admin-list-item .meta{ color:var(--muted); font-family:var(--mono); font-size:11px; }
  .admin-list-item button{
    background:none; border:1px solid var(--danger); color:var(--danger);
    font-family:var(--mono); font-size:10.5px; padding:5px 10px; cursor:pointer; letter-spacing:0.05em;
  }
  .admin-list-item button:hover{ background:var(--danger); color:#1a0a08; }
  .admin-list-empty{ font-size:12.5px; color:var(--muted); font-family:var(--mono); }

  /* ---------- footer ---------- */
/* ---------- footer ---------- */
  footer{ padding:56px 0 0; border-top:1px solid var(--surface-line); }
  .footer-grid{ display:grid; grid-template-columns:1.4fr 1fr 1fr; gap:32px; padding-bottom:36px; }
  @media (max-width:760px){ .footer-grid{ grid-template-columns:1fr 1fr; } .footer-brand{ grid-column:1 / -1; margin-bottom:8px; } }
  @media (max-width:480px){ .footer-grid{ grid-template-columns:1fr; } }
  footer .logo{ margin-bottom:10px; display:inline-block; }
  footer .fine{ font-size:12.5px; color:var(--muted); max-width:36ch; }
  .footer-title{
    font-family:var(--mono); font-size:11px; text-transform:uppercase; letter-spacing:0.1em;
    color:var(--gold-light); margin-bottom:14px;
  }
  .footer-col{ display:flex; flex-direction:column; gap:9px; font-size:13px; }
  .footer-col a:hover{ color:var(--gold-light); }
  .footer-bottom{
    border-top:1px solid var(--surface-line); padding:18px 0 22px;
    font-family:var(--mono); font-size:11.5px; color:var(--muted); text-align:center;
  }

  /* ---------- ebook (secção venda na home) ---------- */
  .ebook-grid{
    display:grid; grid-template-columns:repeat(auto-fit, minmax(260px, 1fr)); gap:24px;
  }
  .ebook-card{
    border:1px solid var(--surface-line); background:var(--surface);
    display:flex; flex-direction:column; overflow:hidden;
  }
  .ebook-card img{ width:100%; aspect-ratio:4/3; object-fit:cover; }
  .ebook-card-placeholder{
    width:100%; aspect-ratio:4/3; display:flex; align-items:center; justify-content:center;
    background:linear-gradient(135deg, rgba(201,150,44,0.22), rgba(16,20,27,0.9));
    font-family:var(--serif); font-weight:600; font-size:15px; color:var(--gold-light);
    text-align:center; padding:12px; letter-spacing:0.03em; text-transform:uppercase;
  }
  .ebook-card-body{ padding:24px; display:flex; flex-direction:column; gap:10px; flex-grow:1; }
  .ebook-card-body h3{ font-family:var(--serif); font-weight:600; font-size:19px; }
  .ebook-card-body p{ color:var(--muted); font-size:13.5px; flex-grow:1; }
  .ebook-card-footer{ display:flex; align-items:center; justify-content:space-between; gap:12px; margin-top:8px; }
  .ebook-preco{ font-family:var(--mono); color:var(--gold-light); font-size:16px; }

  /* ---------- galeria por província ---------- */
  .gal-provincia-section{ padding:44px 0; }
  .gal-provincia-section .section-head{ margin-bottom:32px; }
  .gal-grid-extra{ margin-top:16px; }
  .gal-grid-extra[hidden]{ display:none; }

  /* ---------- página de compra: catálogo ---------- */
  .catalogo-filtros{ display:flex; flex-wrap:wrap; gap:10px; margin-bottom:32px; }
  .catalogo-filtro{
    font-family:var(--mono); font-size:11.5px; letter-spacing:0.05em; text-transform:uppercase;
    padding:9px 16px; border:1px solid var(--surface-line); color:var(--muted); cursor:pointer; background:transparent;
    transition:border-color .2s ease, color .2s ease;
  }
  .catalogo-filtro.ativo, .catalogo-filtro:hover{ border-color:var(--gold); color:var(--gold-light); }
  .catalogo-empty{ color:var(--muted); font-family:var(--mono); font-size:13px; padding:40px 0; text-align:center; }

  /* ---------- modal de compra ---------- */
  .modal-backdrop{
    position:fixed; inset:0; background:rgba(6,8,11,0.82); z-index:200;
    display:none; align-items:flex-start; justify-content:center; padding:60px 20px; overflow-y:auto;
  }
  .modal-backdrop.open{ display:flex; }
  .modal-box{
    background:var(--bg-elevated); border:1px solid var(--surface-line); max-width:520px; width:100%;
    padding:36px; position:relative;
  }
  .modal-close{
    position:absolute; top:18px; right:18px; background:none; border:none; color:var(--muted);
    font-size:22px; cursor:pointer; line-height:1;
  }
  .modal-close:hover{ color:var(--gold-light); }
  .modal-box h3{ font-family:var(--serif); font-weight:600; font-size:22px; margin-bottom:6px; }
  .modal-produto-resumo{ font-family:var(--mono); font-size:13px; color:var(--gold-light); margin-bottom:24px; }
  .file-field{
    border:1px dashed var(--surface-line); padding:20px; text-align:center; cursor:pointer;
    font-family:var(--mono); font-size:12.5px; color:var(--muted); transition:border-color .2s ease;
  }
  .file-field:hover, .file-field.has-file{ border-color:var(--gold); color:var(--gold-light); }
  .file-field input{ display:none; }
  .btn-voltar{
    display:block; width:100%; text-align:center; margin-top:12px; background:none; border:none;
    color:var(--muted); font-family:var(--mono); font-size:12px; cursor:pointer; padding:6px;
  }
  .btn-voltar:hover{ color:var(--gold-light); }

  /* ---------- admin: layout geral ---------- */
  .admin-shell{ display:flex; min-height:100vh; }
  .admin-sidebar{
    width:220px; flex-shrink:0; background:var(--bg-elevated); border-right:1px solid var(--surface-line);
    padding:28px 18px; display:flex; flex-direction:column; gap:6px; position:sticky; top:0; height:100vh;
  }
  .admin-sidebar .logo{ font-family:var(--serif); font-size:16px; margin-bottom:24px; display:block; }
  .admin-nav-item{
    display:flex; align-items:center; gap:10px; padding:11px 12px; font-size:13.5px; color:var(--muted);
    cursor:pointer; border-left:2px solid transparent; transition:color .2s ease, border-color .2s ease;
  }
  .admin-nav-item:hover{ color:var(--cream); }
  .admin-nav-item.ativo{ color:var(--gold-light); border-left-color:var(--gold); background:var(--surface); }
  .admin-nav-item.sair{ margin-top:auto; color:var(--danger); }
  .admin-badge{
    display:inline-flex; align-items:center; justify-content:center;
    min-width:18px; height:18px; padding:0 5px; border-radius:999px;
    background:var(--gold); color:#1a1305; font-size:10.5px; font-weight:700;
    font-family:var(--mono); line-height:1;
  }
  .admin-main{ flex-grow:1; padding:40px; max-width:1100px; }
  .admin-tab{ display:none; }
  .admin-tab.ativo{ display:block; }
  @media (max-width:860px){
    .admin-shell{ flex-direction:column; }
    .admin-sidebar{ width:100%; height:auto; position:relative; flex-direction:row; overflow-x:auto; }
    .admin-sidebar .logo{ display:none; }
    .admin-nav-item{ border-left:none; border-bottom:2px solid transparent; white-space:nowrap; }
    .admin-nav-item.ativo{ border-bottom-color:var(--gold); }
    .admin-nav-item.sair{ margin-top:0; margin-left:auto; }
    .admin-main{ padding:24px 18px; }
  }

  /* ---------- admin: dashboard cards ---------- */
  .admin-stats{ display:grid; grid-template-columns:repeat(auto-fit, minmax(180px, 1fr)); gap:16px; margin-bottom:32px; }
  .admin-stat-card{ border:1px solid var(--surface-line); background:var(--surface); padding:22px; }
  .admin-stat-card .num{ font-family:var(--serif); font-size:32px; color:var(--gold-light); }
  .admin-stat-card .lbl{ font-family:var(--mono); font-size:11.5px; color:var(--muted); text-transform:uppercase; letter-spacing:0.05em; margin-top:6px; }

  /* ---------- admin: tabela ---------- */
  .admin-table{ width:100%; border-collapse:collapse; font-size:13.5px; }
  .admin-table th{
    text-align:left; font-family:var(--mono); font-size:11px; text-transform:uppercase; letter-spacing:0.05em;
    color:var(--muted); padding:10px 12px; border-bottom:1px solid var(--surface-line);
  }
  .admin-table td{ padding:12px; border-bottom:1px solid var(--surface-line); vertical-align:top; }
  .admin-table tr:hover td{ background:rgba(201,150,44,0.04); }
  .badge{ font-family:var(--mono); font-size:10.5px; text-transform:uppercase; letter-spacing:0.05em; padding:4px 9px; border:1px solid; display:inline-block; }
  .badge-pendente{ color:var(--gold-light); border-color:var(--gold); }
  .badge-aprovado{ color:var(--success); border-color:var(--success); }
  .badge-rejeitado{ color:var(--danger); border-color:var(--danger); }
  .badge-ativo{ color:var(--success); border-color:var(--success); }
  .badge-realizado{ color:var(--muted); border-color:var(--surface-line); }
  .admin-actions{ display:flex; gap:8px; flex-wrap:wrap; }
  .admin-actions button, .admin-actions a{
    font-family:var(--mono); font-size:10.5px; padding:6px 11px; cursor:pointer; letter-spacing:0.04em;
    border:1px solid var(--surface-line); background:none; color:var(--cream);
  }
  .admin-actions .aprovar{ border-color:var(--success); color:var(--success); }
  .admin-actions .aprovar:hover{ background:var(--success); color:#08130c; }
  .admin-actions .rejeitar{ border-color:var(--danger); color:var(--danger); }
  .admin-actions .rejeitar:hover{ background:var(--danger); color:#1a0a08; }
  .admin-login-shell{ min-height:100vh; display:flex; align-items:center; justify-content:center; padding:24px; }
  .admin-login-box{ width:100%; max-width:400px; border:1px solid var(--surface-line); background:var(--surface); padding:40px; }
  .admin-login-box h2{ font-family:var(--serif); font-size:24px; margin-bottom:8px; }
  .admin-login-box p.sub{ color:var(--muted); font-size:13px; margin-bottom:26px; }

/* Navegação do painel Admin: os itens são botões reais, mas mantêm o visual original. */
.admin-sidebar .admin-nav-item {
  width: 100%;
  border: 0;
  background: transparent;
  text-align: left;
  font: inherit;
  cursor: pointer;
  display: block;
}
.admin-sidebar .admin-nav-item:focus-visible {
  outline: 2px solid var(--gold-light);
  outline-offset: 2px;
}
