:root{
    --paper:#F1EAD9; --paper-2:#E8DFC8; --ink:#191512; --ink-soft:#4A423B;
    --plum:#5C3A66; --teal:#0F6B67; --magenta:#A82655; --olive:#5B5A22;
    --pink:#FF6FA6; --night:#191512; --cream:#F1EAD9;
    --line: rgba(25,21,18,.16);
    padding-top: env(safe-area-inset-top, 0px); padding-bottom: env(safe-area-inset-bottom, 0px);
  }
  @media (prefers-color-scheme: dark){
    :root:not([data-theme="light"]){ --paper:#1C1712; --paper-2:#251E17; --ink:#F1EAD9; --ink-soft:#C9BEAE; --line: rgba(241,234,217,.18); --night:#0E0B09; }
  }
  :root[data-theme="dark"]{ --paper:#1C1712; --paper-2:#251E17; --ink:#F1EAD9; --ink-soft:#C9BEAE; --line: rgba(241,234,217,.18); --night:#0E0B09; }

  *{box-sizing:border-box;}
  html{scroll-behavior:smooth; scroll-padding-top: calc(88px + env(safe-area-inset-top,0px));}
  body{margin:0; background:var(--paper); color:var(--ink); font-family:'Work Sans',sans-serif; line-height:1.55;}
  h1,h2,h3{font-family:'Archivo Black',sans-serif; font-weight:400; line-height:1.05; letter-spacing:-.01em; margin:0;}
  a{color:inherit;}
  img{max-width:100%; display:block;}
  .wrap{max-width:1100px; margin:0 auto; padding:0 24px;}
  section{padding:96px 0;}
  p{max-width:62ch;}
  .lede{font-size:1.15rem; color:var(--ink-soft);}

  /* LOCKUP: lettering rosa + "Lisboa e Vale do Tejo" */
  .lockup{display:inline-flex; flex-direction:column; align-items:flex-start;}
  .lockup img{display:block; max-width:none;}
  .lockup-sub{font-family:'Work Sans',sans-serif; font-weight:600; color:var(--cream); line-height:1.1; white-space:nowrap;}

  /* NAV */
  nav{position:sticky; top:env(safe-area-inset-top, 0px); z-index:50; background:var(--night); color:var(--cream); border-bottom:1px solid rgba(241,234,217,.12);}
  nav .wrap{display:flex; align-items:center; gap:22px; padding:10px 24px;}
  .brand{display:flex; align-items:center; gap:16px; flex-shrink:0;}
  .brand .lockup img{height:44px; width:auto;}
  .brand .lockup-sub{font-size:.66rem; margin-top:5px; letter-spacing:.01em;}
  .brand-sep{width:1px; align-self:stretch; background:rgba(241,234,217,.28);}
  .brand-ccdr{height:40px; width:auto; max-width:none;}
  .navlinks{display:flex; gap:24px; margin-left:auto; font-size:.9rem; font-weight:600;}
  .navlinks a{text-decoration:none; color:var(--cream); opacity:.82;}
  .navlinks a:hover{opacity:1; text-decoration:underline; text-underline-offset:4px;}
  .lang{display:flex; flex-shrink:0; border:1px solid rgba(241,234,217,.4);}
  .lang button{appearance:none; background:none; border:0; margin:0; color:var(--cream); font:700 .74rem/1 'Work Sans',sans-serif; letter-spacing:.04em; padding:8px 9px; cursor:pointer; opacity:.78;}
  .lang button + button{border-left:1px solid rgba(241,234,217,.4);}
  .lang button:hover{opacity:1;}
  .lang button[aria-pressed="true"]{background:var(--pink); color:#191512; opacity:1;}
  .navtoggle{display:none; flex-shrink:0; background:none; border:2px solid var(--cream); width:40px; height:40px; font-size:1.2rem; cursor:pointer; color:var(--cream);}
  nav a:focus-visible, nav button:focus-visible{outline:2px solid var(--pink); outline-offset:3px;}
  @media (max-width:980px){
    nav .wrap{gap:12px;}
    .navlinks{position:absolute; top:100%; left:0; right:0; margin:0; background:var(--night); flex-direction:column; gap:0; padding:4px 24px 18px; border-bottom:1px solid rgba(241,234,217,.12);
      visibility:hidden; opacity:0; transform:translateY(-8px); transition:opacity .2s ease, transform .2s ease, visibility 0s linear .2s; z-index:40;}
    .navlinks.open{visibility:visible; opacity:1; transform:none; transition:opacity .2s ease, transform .2s ease;}
    .navlinks a{padding:13px 0; border-bottom:1px solid rgba(241,234,217,.14);}
    .lang{margin-left:auto;}
    .navtoggle{display:block;}
  }
  @media (max-width:520px){
    nav .wrap{padding:8px 16px; gap:10px;}
    .brand{gap:10px;}
    .brand .lockup img{height:31px;}
    .brand .lockup-sub{font-size:.56rem; margin-top:3px;}
    .brand-ccdr{height:30px;}
    .lang button{padding:7px 6px; font-size:.68rem;}
    .navtoggle{width:36px; height:36px; font-size:1.05rem;}
    .navlinks{padding:4px 16px 18px;}
  }
  @media (max-width:370px){
    nav .wrap{padding:8px 12px; gap:8px;}
    .brand-sep{display:none;}
    .brand{gap:8px;}
    .brand .lockup img{height:28px;}
    .brand .lockup-sub{font-size:.52rem;}
    .brand-ccdr{height:26px;}
    .lang button{padding:7px 5px;}
    .navtoggle{width:34px; height:34px;}
  }
  @media (prefers-reduced-motion: reduce){
    .navlinks, .navlinks.open{transition:none;}
  }

  /* CINE HEADER */
  .cinehero{position:relative; width:100%; overflow:hidden; background:#0c0c0c; min-height:380px;
    padding:76px 24px; display:flex; align-items:center; justify-content:center;}
  .cinehero .bg{position:absolute; inset:0; width:100%; height:100%; object-fit:cover; object-position:50% 30%;
    animation:kenburns 14s ease-in-out infinite alternate;}
  @keyframes kenburns{
    0%{ transform:scale(1) translate(0,0); }
    100%{ transform:scale(1.12) translate(-1.5%, -1%); }
  }
  .cinehero .bgvideo{position:absolute; inset:0; width:100%; height:100%; object-fit:cover; object-position:50% 40%; opacity:0; transition:opacity 1s ease;}
  .cinehero .bgvideo.on{opacity:1;}
  @media (prefers-reduced-motion: reduce){
    .cinehero .bgvideo{display:none;}
    .cinehero .bg{animation:none;}
  }
  .cinehero::after{content:""; position:absolute; inset:0; background:linear-gradient(180deg, rgba(8,8,8,.5) 0%, rgba(8,8,8,.3) 35%, rgba(8,8,8,.72) 100%);}
  .cinehero-content{position:relative; z-index:2; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:20px; max-width:820px; margin:0 auto; text-align:center;}
  .cinehero-content .laurels-img{width:min(300px, 42%); filter:drop-shadow(0 2px 8px rgba(0,0,0,.5));}
  .lockup-hero{width:min(820px, 92%);}
  .lockup-hero img{width:100%; height:auto; max-width:100%; filter:drop-shadow(0 4px 18px rgba(0,0,0,.6));}
  .lockup-hero .lockup-sub{font-size:clamp(.95rem, 2.1vw, 1.4rem); margin-top:clamp(8px, 1.4vw, 16px); letter-spacing:.01em; text-shadow:0 2px 10px rgba(0,0,0,.6);}
  .cinehero-sub{text-align:center; font-size:clamp(.85rem,1.6vw,1.05rem); color:rgba(241,234,217,.92); max-width:56ch; margin-top:-4px;}
  .cinebar{background:var(--ink); color:var(--paper); padding:22px 0;}
  .cinebar .wrap{display:flex; flex-wrap:wrap; align-items:center; justify-content:center; gap:16px;}
  .cinebar .btn{border-color:var(--paper);}
  .cinebar .btn-solid{background:var(--paper); color:var(--ink);}
  .cinebar .btn-solid:hover{background:var(--magenta); border-color:var(--magenta); color:#fff;}
  .cinebar .btn-ghost{color:var(--paper);}
  .cinebar .btn-ghost:hover{background:var(--paper); color:var(--ink);}

  /* HERO */
  .hero{padding:64px 0 40px;}
  .hero-grid{display:grid; grid-template-columns:1.15fr .85fr; gap:48px; align-items:center;}
  @media (max-width:820px){.hero-grid{grid-template-columns:1fr;}}
  .hero h1{font-size:clamp(2.4rem, 6vw, 4.6rem);}
  .hero h1 .accent{color:var(--magenta);}
  .hero .tagline{margin-top:22px; font-size:clamp(1.02rem,2vw,1.2rem); max-width:50ch; color:var(--ink-soft);}
  .cta-row{display:flex; flex-wrap:wrap; gap:14px; margin-top:32px;}
  .btn{display:inline-block; padding:14px 26px; font-weight:700; text-decoration:none; border:2px solid var(--ink); font-size:.95rem;}
  .btn-solid{background:var(--ink); color:var(--paper);}
  .btn-solid:hover{background:var(--magenta); border-color:var(--magenta); color:#fff;}
  .btn-ghost:hover{background:var(--ink); color:var(--paper);}

  .hero-visual{position:relative;}
  .hero-visual img{border:2px solid var(--ink); box-shadow:14px 14px 0 var(--magenta);}
  @media (max-width:820px){.hero-visual{max-width:340px; margin:0 auto;}}

  .premios-strip{margin-top:64px; padding-top:36px; border-top:1px solid var(--line);}
  .premios-strip img{max-width:520px; margin:0 auto;}

  .eyebrow{font-weight:700; font-size:.8rem; color:var(--magenta); margin-bottom:14px;}
  .block .eyebrow{color:#fff; opacity:.8;}
  h2{font-size:clamp(1.8rem,4vw,2.5rem); margin-bottom:22px;}

  .block{color:#F1EAD9;}
  .block h2{color:#fff;}
  .block .lede{color:rgba(241,234,217,.85);}
  .bg-plum{background:var(--plum);} .bg-teal{background:var(--teal);}
  .bg-magenta{background:var(--magenta);} .bg-olive{background:var(--olive);}

  .video-frame{position:relative; padding-bottom:56.25%; height:0; overflow:hidden; margin-top:28px; border:2px solid currentColor;}
  .video-frame iframe{position:absolute; inset:0; width:100%; height:100%; border:0;}

  .watch-card{position:relative; display:block; margin-top:28px; border:2px solid currentColor; aspect-ratio:16/9; overflow:hidden; text-decoration:none; color:inherit;}
  .watch-card img{position:absolute; inset:0; width:100%; height:100%; object-fit:cover; transition:transform .3s ease;}
  .watch-card:hover img{transform:scale(1.04);}
  .watch-card::after{content:""; position:absolute; inset:0; background:linear-gradient(0deg, rgba(0,0,0,.62) 0%, rgba(0,0,0,.05) 45%, rgba(0,0,0,.15) 100%);}
  .watch-card .play{position:absolute; top:50%; left:50%; transform:translate(-50%,-50%); width:64px; height:64px; border-radius:50%; background:rgba(241,234,217,.95); display:flex; align-items:center; justify-content:center; z-index:2;}
  .watch-card .play svg{margin-left:4px;}
  .watch-card .label{position:absolute; left:18px; bottom:16px; z-index:2; color:#fff; font-weight:700; font-size:1rem;}
  .watch-card .label small{display:block; font-weight:600; font-size:.75rem; opacity:.8; margin-top:2px;}

  .crew{margin-top:30px; display:grid; grid-template-columns:repeat(auto-fill,minmax(220px,1fr)); gap:10px 24px; font-size:.92rem;}
  .crew div b{display:block; font-weight:700;}
  .crew div span{color:var(--ink-soft);}

  .grid-2{display:grid; grid-template-columns:1.1fr .9fr; gap:56px; align-items:start;}
  @media (max-width:760px){.grid-2{grid-template-columns:1fr; gap:36px;}}

  .placeholder{border:2px dashed var(--line); padding:22px; font-size:.9rem; color:var(--ink-soft); margin-top:24px;}
  .placeholder b{color:var(--ink);}
  .muni-list{display:flex; flex-wrap:wrap; gap:8px; margin-top:20px; padding:0; list-style:none;}
  .muni-list li{border:1px solid var(--line); padding:7px 14px; font-size:.85rem; font-weight:600;}

  .poster-strip{display:grid; grid-template-columns:repeat(3,1fr); gap:20px; margin-top:44px;}
  @media (max-width:700px){.poster-strip{grid-template-columns:1fr 1fr;}}
  .poster-strip figure{margin:0;}
  .poster-strip img{border:2px solid #F1EAD9;}
  .poster-strip figcaption{font-size:.75rem; margin-top:8px; color:rgba(241,234,217,.7);}

  table{width:100%; border-collapse:collapse; margin-top:24px; font-size:.92rem;}
  th,td{text-align:left; padding:12px 10px; border-bottom:1px solid rgba(241,234,217,.25); vertical-align:top;}
  th{font-size:.75rem; text-transform:uppercase; letter-spacing:.04em; color:rgba(241,234,217,.65); font-weight:700;}
  .archive-wrap{overflow-x:auto;}

  .gallery-grid{display:grid; grid-template-columns:1fr 1fr; gap:20px; margin-top:28px;}
  @media (max-width:700px){.gallery-grid{grid-template-columns:1fr;}}
  .gallery-grid figure{margin:0; position:relative;}
  .gallery-grid img{border:2px solid var(--ink);}
  .gallery-grid figcaption{margin-top:8px; font-size:.82rem; color:var(--ink-soft);}
  .gtile{min-width:0; overflow-wrap:anywhere; aspect-ratio:1; border:2px dashed var(--line); display:flex; align-items:center; justify-content:center; font-size:.75rem; color:var(--ink-soft); text-align:center; padding:10px;}
  .gtile-row{display:grid; grid-template-columns:repeat(3,1fr); gap:12px; margin-top:16px;}

  .team-card{margin-top:30px;}
  .team-card + .team-card{margin-top:34px; padding-top:34px; border-top:1px solid var(--line);}
  .team-card h3{font-size:1.3rem; font-family:'Work Sans',sans-serif; font-weight:700;}
  .team-card .role{color:var(--magenta); font-weight:700; font-size:.85rem; margin:4px 0 14px;}

  .apoios-grid{display:flex; flex-wrap:wrap; align-items:center; gap:40px; margin-top:32px;}
  .apoios-grid img{max-height:70px; width:auto;}
  .ccdr-line{display:flex; align-items:center; gap:16px; margin-top:40px; padding-top:32px; border-top:1px solid var(--line);}
  .ccdr-line img{height:56px; width:auto;}
  .ccdr-line span{font-weight:700; font-size:.95rem;}

  /* FOOTER */
  footer{background:var(--night); color:var(--cream); padding:56px 0 32px;}
  footer a{text-decoration:none;}
  .foot-top{display:flex; flex-wrap:wrap; justify-content:space-between; gap:32px; padding-bottom:40px; border-bottom:1px solid rgba(241,234,217,.2);}
  .foot-top .lockup{margin-bottom:18px;}
  .foot-top .lockup img{height:78px; width:auto;}
  .foot-top .lockup-sub{font-size:.95rem; margin-top:8px;}
  .social a{display:block; margin-top:8px; font-weight:700; text-decoration:underline;}
  .foot-label{font-size:.78rem; text-transform:uppercase; letter-spacing:.04em; color:rgba(241,234,217,.5); margin-bottom:4px;}
  .foot-funder{display:flex; flex-wrap:wrap; align-items:center; gap:20px 32px; padding:44px 0 40px; border-bottom:1px solid rgba(241,234,217,.2);}
  .foot-funder img{height:124px; width:auto; max-width:none;}
  .foot-funder p{margin:0; font-weight:700; font-size:1.05rem; max-width:48ch;}
  .foot-bottom{padding-top:24px; font-size:.78rem; color:rgba(241,234,217,.6);}
  @media (max-width:520px){
    .foot-top .lockup img{height:60px;}
    .foot-funder img{height:100px;}
  }


  /* ---------- Sessões: grelha de cartazes ---------- */
  :root{ --accent:#A82655; }
  @media (prefers-color-scheme: dark){ :root:not([data-theme="light"]){ --accent:#FF6FA6; } }
  :root[data-theme="dark"]{ --accent:#FF6FA6; }

  a.brand{text-decoration:none; color:inherit;}

  .session-grid{list-style:none; margin:40px 0 0; padding:0; display:grid; grid-template-columns:repeat(auto-fill, minmax(220px, 1fr)); gap:40px 24px;}
  @media (max-width:560px){ .session-grid{grid-template-columns:1fr 1fr; gap:28px 14px;} }
  .session-card{display:block; text-decoration:none; color:var(--ink);}
  .session-card img{width:100%; height:auto; aspect-ratio:1; object-fit:cover; border:2px solid var(--ink); transition:transform .2s ease, box-shadow .2s ease;}
  .session-card:hover img{transform:translate(-4px,-4px); box-shadow:8px 8px 0 var(--magenta);}
  .session-card:focus-visible{outline:none;}
  .session-card:focus-visible img{outline:3px solid var(--accent); outline-offset:4px;}
  .session-card-muni{display:flex; align-items:baseline; gap:8px; margin-top:14px; font-family:'Archivo Black',sans-serif; font-size:1.2rem; line-height:1.1;}
  .session-card-muni .arrow{font-family:'Work Sans',sans-serif; font-weight:700; color:var(--accent); transition:transform .2s ease;}
  .session-card:hover .arrow{transform:translateX(4px);}
  .session-card-when{display:block; margin-top:6px; font-weight:700; font-size:.88rem; color:var(--accent);}
  .session-card-venue{display:block; margin-top:2px; font-size:.86rem; color:var(--ink-soft); line-height:1.35;}
  @media (max-width:560px){
    .session-card-muni{font-size:1.02rem; margin-top:10px;}
    .session-card-when, .session-card-venue{font-size:.8rem;}
  }
  @media (prefers-reduced-motion: reduce){
    .session-card img, .session-card .arrow{transition:none;}
  }

  /* ---------- Página de cada sessão ---------- */
  .session-head{background:var(--night); color:var(--cream); padding:40px 0 56px;}
  .session-back{display:inline-block; margin-bottom:32px; font-weight:600; font-size:.9rem; color:var(--cream); opacity:.8; text-decoration:none;}
  .session-back:hover{opacity:1; text-decoration:underline; text-underline-offset:4px;}
  .session-head .eyebrow{color:var(--pink);}
  .session-head h1{font-size:clamp(2.6rem, 8vw, 5rem); color:var(--pink);}
  .session-venue{margin:14px 0 0; font-size:clamp(1.05rem, 2.4vw, 1.4rem); font-weight:600; color:var(--cream);}

  .session-main{padding-top:64px; padding-bottom:96px;}
  .session-layout{display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:56px; align-items:start;}
  @media (max-width:820px){ .session-layout{grid-template-columns:1fr; gap:40px;} }
  .session-poster{margin:0; max-width:520px;}
  .session-poster img{width:100%; height:auto; border:2px solid var(--ink); box-shadow:14px 14px 0 var(--magenta);}
  @media (max-width:520px){ .session-poster img{box-shadow:8px 8px 0 var(--magenta);} }

  .session-facts{margin:0; display:grid; grid-template-columns:1fr 1fr; gap:22px 24px; padding-bottom:30px; border-bottom:1px solid var(--line);}
  .session-facts .wide{grid-column:1 / -1;}
  .session-facts dt{font-size:.75rem; text-transform:uppercase; letter-spacing:.04em; font-weight:700; color:var(--ink-soft);}
  .session-facts dd{margin:4px 0 0; font-weight:600; font-size:1.05rem;}
  .session-pending{margin:30px 0 0; padding:22px; border:2px dashed var(--line); color:var(--ink-soft); max-width:none;}

  .session-h2{font-size:clamp(1.4rem, 3vw, 1.9rem); margin:36px 0 16px;}
  .session-report p{margin:0 0 1em;}
  section.session-photos{padding:0; margin-top:80px;}
  .session-photos .session-h2{margin-top:0;}
  .photo-grid{list-style:none; margin:0; padding:0; display:grid; grid-template-columns:repeat(auto-fill, minmax(240px, 1fr)); gap:14px;}
  .photo-grid a{display:block;}
  .photo-grid img{width:100%; height:auto; aspect-ratio:4/3; object-fit:cover; border:2px solid var(--ink);}

  .session-pager{display:flex; justify-content:space-between; gap:16px; margin-top:80px; padding-top:28px; border-top:1px solid var(--line);}
  .session-pager a{text-decoration:none; color:var(--ink); max-width:48%;}
  .session-pager .next{margin-left:auto; text-align:right;}
  .session-pager small{display:block; font-size:.75rem; text-transform:uppercase; letter-spacing:.04em; font-weight:700; color:var(--ink-soft);}
  .session-pager span{display:block; margin-top:6px; font-family:'Archivo Black',sans-serif; font-size:clamp(1rem, 2.6vw, 1.3rem);}
  .session-pager a:hover span{color:var(--accent);}

  /* Os cargos da equipa estavam em magenta sobre fundo magenta (invisíveis) */
  .bg-magenta .team-card .role{color:#FFC7DC;}

  /* ---------- Relato ---------- */
  .session-report{margin-top:32px;}
  .session-report p{margin:0 0 1em;}
  .session-report p:first-child{font-size:clamp(1.12rem, 2.2vw, 1.3rem); line-height:1.45; font-weight:600; margin-bottom:1.1em;}

  .session-card-has{display:inline-block; margin-top:10px; padding:4px 9px; font-size:.75rem; font-weight:700; background:var(--ink); color:var(--paper);}

  /* ---------- Fotografias: linhas justificadas, sem cortar as fotos ---------- */
  .photo-grid{display:flex; flex-wrap:wrap; gap:12px;}
  .photo-grid li{flex-grow:var(--ar); flex-basis:calc(var(--ar) * 260px); max-width:calc(var(--ar) * 420px); min-width:0;}
  .photo-grid img{width:100%; height:auto; aspect-ratio:auto; object-fit:initial; border:0; transition:opacity .2s ease;}
  .photo-grid a:hover img{opacity:.88;}
  .photo-grid a:focus-visible{outline:3px solid var(--accent); outline-offset:3px;}
  @media (max-width:560px){
    .photo-grid{display:grid; grid-template-columns:1fr 1fr; gap:8px;}
    .photo-grid li{max-width:none;}
    .photo-grid img{aspect-ratio:1; object-fit:cover; object-position:50% 40%;}
  }

  /* ---------- Ver foto em ecrã inteiro ---------- */
  html:has(dialog.lightbox[open]){overflow:hidden;}
  dialog.lightbox{position:fixed; inset:0; width:100%; height:100%; max-width:none; max-height:none; margin:0; padding:0; border:0; background:#0E0B09; color:#F1EAD9;}
  dialog.lightbox[open]{display:flex; align-items:center; justify-content:center;}
  dialog.lightbox::backdrop{background:rgba(14,11,9,.7);}
  .lb-figure{margin:0; width:100%; height:100%; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:12px; padding:24px 88px;}
  .lb-figure img{max-width:100%; max-height:calc(100vh - 110px); max-height:calc(100dvh - 110px); width:auto; height:auto;}
  .lb-count{font-size:.85rem; font-weight:600; color:rgba(241,234,217,.7);}
  .lightbox button{position:absolute; width:48px; height:48px; display:flex; align-items:center; justify-content:center; background:rgba(14,11,9,.55); border:2px solid rgba(241,234,217,.45); color:#F1EAD9; font:700 1.25rem/1 'Work Sans',sans-serif; cursor:pointer;}
  .lightbox button:hover{border-color:#F1EAD9;}
  .lightbox button:focus-visible{outline:3px solid var(--pink); outline-offset:2px;}
  .lightbox button[hidden]{display:none;}
  .lb-close{top:16px; right:16px;}
  .lb-prev{left:20px; top:50%; transform:translateY(-50%);}
  .lb-next{right:20px; top:50%; transform:translateY(-50%);}
  @media (max-width:640px){
    .lb-figure{padding:72px 0 84px;}
    .lb-figure img{max-height:calc(100vh - 170px); max-height:calc(100dvh - 170px);}
    .lb-prev, .lb-next{top:auto; bottom:18px; transform:none;}
    .lb-prev{left:16px;} .lb-next{right:16px;}
  }
  .photo-grid.is-laid li{flex:none; max-width:none;}

  /* ========== Páginas das sessões: fundo rosa claro com fotograma do vídeo, letras a roxo, sem linhas ========== */
  body.session-page{background:#FCF0F5; color:#5A1E78;}
  .session-backdrop{position:absolute; top:0; left:0; right:0; height:min(100vh, 860px); z-index:-1; pointer-events:none;
    background:url(img/fundo-sessao.jpg) 32% 30% / cover no-repeat;
    -webkit-mask-image:linear-gradient(to bottom, #000 40%, transparent 100%);
    mask-image:linear-gradient(to bottom, #000 40%, transparent 100%);}

  .session-page .session-head{background:transparent; color:#5A1E78; padding:52px 0 8px;}
  .session-page .session-back{color:#5A1E78; opacity:1; margin-bottom:40px;}
  .session-page .session-head .eyebrow{color:#5A1E78;}
  .session-page .session-head h1{color:#5A1E78; font-size:clamp(3rem, 11vw, 7rem); line-height:.95;}
  .session-page .session-venue{color:#5A1E78; margin-top:18px;}
  .session-page .session-main{padding-top:48px;}

  .session-page .session-poster img{border:0; box-shadow:14px 14px 0 #FF6FA6;}
  @media (max-width:520px){ .session-page .session-poster img{box-shadow:8px 8px 0 #FF6FA6;} }
  .session-page .session-facts{border-bottom:0; padding-bottom:0;}
  .session-page .session-facts dt, .session-page .session-facts dd{color:#5A1E78;}
  .session-page .session-report, .session-page .session-h2{color:#5A1E78;}
  .session-page .session-pending{border:0; background:rgba(90,30,120,.08); color:#5A1E78;}
  .session-page .session-pager{border-top:0; padding-top:0;}
  .session-page .session-pager a, .session-page .session-pager small{color:#5A1E78;}
  .session-page .session-pager a:hover span{color:#5A1E78; text-decoration:underline; text-underline-offset:5px;}
  .session-page a:focus-visible{outline-color:#5A1E78;}

  /* Fotografias: uma em destaque, da largura da linha das restantes */
  .photo-feature{display:block; margin-bottom:12px;}
  .photo-feature img{width:100%; height:auto; aspect-ratio:16 / 9; object-fit:cover; transition:opacity .2s ease;}
  .photo-feature:hover img{opacity:.9;}
  .photo-feature:focus-visible{outline:3px solid #5A1E78; outline-offset:3px;}
  @media (max-width:560px){
    .photo-feature{margin-bottom:8px;}
    .photo-grid{display:flex; flex-wrap:nowrap; gap:8px; overflow-x:auto; scroll-snap-type:x mandatory; scroll-padding-inline:24px; margin:0 -24px; padding:0 24px; scrollbar-width:none;}
    .photo-grid::-webkit-scrollbar{display:none;}
    .photo-grid li{flex:0 0 auto; max-width:none; scroll-snap-align:start;}
    .photo-grid img{height:200px; width:auto; aspect-ratio:auto; object-fit:initial;}
  }

  /* ========== Tipografia das sessões: nome do local em letra larga e negra, restante texto em Anton, sem negrito ========== */
  .session-page main, .session-page .session-head, .session-grid{font-family:'Anton', 'Archivo Black', sans-serif; font-synthesis-weight:none;}
  .session-page main *, .session-page .session-head *, .session-grid *{font-weight:400;}

  .session-page .session-head{padding-top:64px;}
  .session-page .session-head h1{font-family:'Unbounded', 'Archivo Black', sans-serif; font-weight:900; text-transform:uppercase; letter-spacing:-.035em; line-height:.92;
    font-size:clamp(2.1rem, 9.6vw, 7.2rem); overflow-wrap:anywhere;}
  .session-page .session-venue{font-family:'Anton', sans-serif; font-size:clamp(1.25rem, 2.6vw, 1.7rem); letter-spacing:.01em; margin-top:22px;}

  .session-page .session-facts dt{font-size:.85rem; letter-spacing:.06em;}
  .session-page .session-facts dd{font-size:1.25rem; letter-spacing:.01em; margin-top:2px;}
  .session-page .session-report{margin-top:36px;}
  .session-page .session-report p{font-size:1.1rem; line-height:1.55; letter-spacing:.012em;}
  .session-page .session-report p:first-child{font-size:clamp(1.35rem, 2.6vw, 1.7rem); line-height:1.3; letter-spacing:.005em; font-weight:400;}
  .session-page .session-pending{font-size:1.05rem; letter-spacing:.01em;}
  .session-page section.session-photos{margin-top:72px;}

  .session-page .session-pager small{font-size:.85rem; letter-spacing:.06em;}
  .session-page .session-pager span{font-family:'Unbounded', 'Archivo Black', sans-serif; font-weight:900; text-transform:uppercase; letter-spacing:-.02em; font-size:clamp(1rem, 2.4vw, 1.4rem);}

  /* Cartazes na página inicial */
  .session-card-muni{font-family:'Unbounded', 'Archivo Black', sans-serif; font-weight:900; text-transform:uppercase; letter-spacing:-.025em; font-size:1.15rem;}
  .session-card-muni .arrow{font-family:'Anton', sans-serif;}
  .session-card-when{font-size:1rem; letter-spacing:.02em;}
  .session-card-venue{font-size:.98rem; letter-spacing:.01em; line-height:1.3;}
  .session-card-has{font-size:.85rem; letter-spacing:.04em;}
  @media (max-width:560px){
    .session-card-muni{font-size:.86rem;}
    .session-card-when, .session-card-venue{font-size:.88rem;}
  }
  @media (max-width:420px){ .session-page .session-facts dd{font-size:1.08rem;} .session-page .session-facts{gap:18px 16px;} }

  /* ========== Sessão: local, escola, logótipo e cartaz (o cartaz desce até às fotografias) ========== */
  .session-page .session-layout{grid-template-columns:minmax(0,1fr) minmax(0,1fr); grid-template-rows:auto 1fr;
    grid-template-areas:"logo info" "poster info"; column-gap:56px; row-gap:40px; align-items:start;}
  .session-page .session-logo{grid-area:logo; margin:0; max-width:520px;}
  .session-page .session-logo img{width:100%; height:auto; display:block;}
  .session-page .session-poster{grid-area:poster; align-self:end;}
  .session-page .session-info{grid-area:info;}
  .session-page .session-main{padding-top:40px;}
  @media (max-width:820px){
    .session-page .session-layout{grid-template-columns:1fr; grid-template-rows:none; grid-template-areas:"logo" "info" "poster"; row-gap:36px;}
    .session-page .session-poster{align-self:start;}
  }

  /* Logótipo sem fundo: louros, lettering e "Lisboa e Vale do Tejo" */
  .session-page .session-logo{display:flex; flex-direction:column;}
  .session-page .session-logo .sl-laurels{width:62%; height:auto; align-self:center; margin-bottom:5%;}
  .session-page .session-logo .sl-lettering{width:100%; height:auto;}
  .session-page .session-logo .sl-sub{margin-top:14px; font-family:'Anton', sans-serif; font-weight:400; font-size:clamp(1.3rem, 2.6vw, 1.8rem); letter-spacing:.01em; line-height:1.1; color:#5A1E78;}
