/* =========================================================
   ICM — Instituto Cultural da Maia · Universidade Sénior
   24H Draft · Daily Shot Solutions
   Paleta derivada do logótipo: azul #009DDE + dourado #D8AE5C
   ========================================================= */

:root{
  --azul:       #009DDE;
  --azul-med:   #067FB4;
  --azul-esc:   #06547A;
  --azul-noite: #052F45;
  --dourado:    #D8AE5C;
  --dourado-e:  #B2873A;
  --papel:      #FCFAF6;
  --papel-2:    #F3EFE6;
  --papel-3:    #EAE3D5;
  --tinta:      #14212A;
  --cinza:      #5F6F79;
  --linha:      rgba(20,33,42,.12);
  --linha-2:    rgba(255,255,255,.16);
  --sombra:     0 26px 60px -32px rgba(6,47,69,.55);
  --sombra-sm:  0 10px 26px -16px rgba(6,47,69,.5);

  --display: 'Bricolage Grotesque', 'Trebuchet MS', system-ui, sans-serif;
  --corpo:   'Karla', -apple-system, system-ui, sans-serif;
  --serif:   'Newsreader', Georgia, serif;

  --wrap: 1220px;
  --r: 14px;
}

*{ margin:0; padding:0; box-sizing:border-box; }
html{ scroll-behavior:smooth; }
body{
  font-family:var(--corpo);
  background:var(--papel);
  color:var(--tinta);
  line-height:1.68;
  font-size:17px;
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
}
img{ display:block; max-width:100%; }
a{ color:inherit; text-decoration:none; }
button{ font:inherit; cursor:pointer; border:0; background:none; color:inherit; }
:focus-visible{ outline:3px solid var(--dourado); outline-offset:3px; border-radius:4px; }

h1,h2,h3,h4{
  font-family:var(--display);
  font-weight:700;
  line-height:1.02;
  letter-spacing:-.022em;
  font-variation-settings:'wdth' 100, 'opsz' 32;
}
h1{ font-size:clamp(2.7rem, 6vw, 5.1rem); }
h2{ font-size:clamp(2rem, 4.1vw, 3.4rem); }
h3{ font-size:clamp(1.15rem, 1.8vw, 1.5rem); letter-spacing:-.012em; }
em{ font-family:var(--serif); font-style:italic; font-weight:400; letter-spacing:-.01em; }

.wrap{ width:100%; max-width:var(--wrap); margin:0 auto; padding:0 24px; }
.sec{ padding:clamp(4.5rem, 8vw, 7.5rem) 0; }
.sec--tight{ padding:clamp(3rem, 5vw, 4.5rem) 0; }

/* ===== Quadrifólio (marca gráfica do ICM) ===== */
.quadri{ width:1em; height:1em; display:inline-block; vertical-align:-.12em; color:var(--dourado); }

/* ===== Eyebrow / cabeçalho de secção ===== */
.eyebrow{
  display:inline-flex; align-items:center; gap:.6rem;
  font-family:var(--corpo); font-weight:700;
  text-transform:uppercase; letter-spacing:.22em; font-size:.7rem;
  color:var(--azul-esc); margin-bottom:1.1rem;
}
.eyebrow .quadri{ font-size:1.05rem; }
.eyebrow--claro{ color:var(--dourado); }

.sec-head{ max-width:660px; margin-bottom:3rem; }
.sec-head--centro{ margin-left:auto; margin-right:auto; text-align:center; }
.sec-head p{ color:var(--cinza); font-size:1.08rem; margin-top:1.1rem; }
.sec-head--claro p{ color:rgba(255,255,255,.72); }

.lead{ font-size:1.14rem; color:var(--cinza); }

/* ===== Botões ===== */
.btn{
  display:inline-flex; align-items:center; gap:.6rem;
  font-family:var(--corpo); font-weight:700; font-size:.94rem;
  letter-spacing:.01em;
  padding:.95rem 1.6rem; border-radius:100px;
  border:2px solid transparent; white-space:nowrap;
  transition:transform .22s ease, background .22s ease, color .22s ease, border-color .22s ease, box-shadow .22s ease;
}
.btn svg{ width:1.05em; height:1.05em; flex:none; }
.btn--azul{ background:var(--azul); color:#fff; }
.btn--azul:hover{ background:var(--azul-esc); transform:translateY(-2px); box-shadow:var(--sombra-sm); }
.btn--ouro{ background:var(--dourado); color:var(--azul-noite); }
.btn--ouro:hover{ background:var(--dourado-e); color:#fff; transform:translateY(-2px); }
.btn--linha{ border-color:var(--tinta); color:var(--tinta); }
.btn--linha:hover{ background:var(--tinta); color:var(--papel); transform:translateY(-2px); }
.btn--linha-claro{ border-color:rgba(255,255,255,.5); color:#fff; }
.btn--linha-claro:hover{ background:#fff; color:var(--azul-noite); transform:translateY(-2px); }
.btn--sm{ padding:.66rem 1.15rem; font-size:.84rem; }
.btn--lg{ padding:1.15rem 2.1rem; font-size:1.02rem; }

/* ===== Navegação ===== */
.nav{
  position:sticky; top:0; z-index:60;
  background:rgba(252,250,246,.86);
  backdrop-filter:blur(16px);
  border-bottom:1px solid var(--linha);
  transition:box-shadow .3s ease;
}
.nav.scrolled{ box-shadow:0 14px 30px -26px rgba(6,47,69,.7); }
.nav__inner{
  max-width:var(--wrap); margin:0 auto; padding:.7rem 24px;
  display:flex; align-items:center; justify-content:space-between; gap:1.5rem;
}
.marca{ display:flex; align-items:center; gap:.75rem; }
.marca img{ width:50px; height:50px; }
.marca__txt{ display:flex; flex-direction:column; line-height:1.1; }
.marca__sigla{ font-family:var(--display); font-weight:800; font-size:1.3rem; letter-spacing:-.02em; color:var(--azul-esc); }
.marca__nome{ font-size:.63rem; text-transform:uppercase; letter-spacing:.16em; color:var(--cinza); font-weight:700; }
.nav__links{ display:flex; align-items:center; gap:1.7rem; }
.nav__links > a{ font-size:.92rem; font-weight:600; position:relative; padding:.3rem 0; }
.nav__links > a::after{
  content:""; position:absolute; left:0; bottom:0; width:0; height:2px;
  background:var(--dourado); transition:width .25s ease;
}
.nav__links > a:hover::after, .nav__links > a[aria-current="page"]::after{ width:100%; }
.burger{ display:none; width:44px; height:44px; align-items:center; justify-content:center; }
.burger span{ display:block; width:22px; height:2px; background:var(--tinta); position:relative; }
.burger span::before, .burger span::after{ content:""; position:absolute; left:0; width:22px; height:2px; background:var(--tinta); }
.burger span::before{ top:-7px; } .burger span::after{ top:7px; }

/* ===== Reveal ===== */
.reveal{ opacity:0; transform:translateY(26px); transition:opacity .7s ease, transform .7s cubic-bezier(.2,.7,.3,1); }
.reveal.in{ opacity:1; transform:none; }

/* =========================================================
   HERO — o cartaz do ICM
   ========================================================= */
.hero{ position:relative; overflow:hidden; padding:clamp(3rem,6vw,5.5rem) 0 clamp(3.5rem,6vw,5rem); }
.hero__aura{
  position:absolute; inset:auto -10% -40% auto; width:70vw; height:70vw; max-width:900px; max-height:900px;
  background:radial-gradient(circle, rgba(0,157,222,.14), transparent 62%);
  pointer-events:none;
}
.hero__grid{
  position:relative; display:grid; grid-template-columns:1.08fr .92fr;
  gap:clamp(2rem,5vw,4.5rem); align-items:center;
}
.hero h1{ margin-bottom:1.5rem; }
.hero h1 em{ color:var(--azul-esc); }
.hero__lead{ font-size:1.16rem; color:var(--cinza); max-width:46ch; margin-bottom:2rem; }
.hero__lead strong{ color:var(--tinta); font-weight:700; }
.hero__cta{ display:flex; gap:.8rem; flex-wrap:wrap; margin-bottom:2.6rem; }
.hero__factos{
  display:grid; grid-template-columns:repeat(4,1fr); gap:1.2rem;
  border-top:1px solid var(--linha); padding-top:1.5rem;
}
.hero__factos div b{
  display:block; font-family:var(--display); font-weight:800; font-size:1.6rem;
  color:var(--azul-esc); line-height:1;
}
.hero__factos div span{ font-size:.74rem; text-transform:uppercase; letter-spacing:.09em; color:var(--cinza); font-weight:700; }

/* Leque de cartazes */
.leque{ position:relative; aspect-ratio:1/1.02; }
.leque__c{
  position:absolute; width:60%; border-radius:8px; overflow:hidden;
  background:var(--papel-2); border:1px solid var(--linha);
  box-shadow:var(--sombra);
  transition:transform .5s cubic-bezier(.2,.7,.3,1);
}
.leque__c img{ width:100%; height:100%; object-fit:cover; aspect-ratio:3/4; }
.leque__c--1{ left:2%;  top:10%; transform:rotate(-8deg); z-index:1; }
.leque__c--2{ left:20%; top:0;   transform:rotate(1deg);  z-index:2; }
.leque__c--3{ left:38%; top:12%; transform:rotate(9deg);  z-index:1; }
.leque:hover .leque__c--1{ transform:rotate(-12deg) translate(-8px,-6px); }
.leque:hover .leque__c--3{ transform:rotate(13deg) translate(8px,-6px); }
.leque:hover .leque__c--2{ transform:rotate(0deg) translateY(-10px); }

.selo{
  position:absolute; right:2%; bottom:2%; z-index:5;
  width:clamp(112px,15vw,150px); height:clamp(112px,15vw,150px);
  display:grid; place-items:center; border-radius:50%;
  background:var(--azul-noite); color:#fff; box-shadow:var(--sombra);
  text-align:center;
}
.selo__q{ position:absolute; width:66%; height:66%; color:rgba(216,174,92,.24); animation:girar 26s linear infinite; }
.selo__t{ position:relative; font-family:var(--display); font-weight:800; font-size:1.9rem; line-height:.9; letter-spacing:-.03em; }
.selo__s{ position:relative; font-size:.56rem; text-transform:uppercase; letter-spacing:.18em; color:var(--dourado); font-weight:700; margin-top:.25rem; }
@keyframes girar{ to{ transform:rotate(360deg); } }

/* ===== Faixa rolante de disciplinas ===== */
.faixa{ background:var(--azul-noite); color:#fff; overflow:hidden; padding:.95rem 0; border-block:1px solid var(--azul-esc); }
.faixa__t{ display:flex; align-items:center; gap:1.6rem; white-space:nowrap; width:max-content; animation:correr 46s linear infinite; }
.faixa__t span{ font-family:var(--display); font-weight:600; font-size:1.15rem; letter-spacing:-.01em; }
.faixa__t .quadri{ font-size:.85rem; color:var(--dourado); flex:none; }
@keyframes correr{ to{ transform:translateX(-50%); } }

/* =========================================================
   EM CARTAZ · Agenda
   ========================================================= */
.cartaz{ background:var(--azul-noite); color:#fff; }
.cartaz .sec-head h2{ color:#fff; }
.cartaz__topo{ display:flex; align-items:flex-end; justify-content:space-between; gap:2rem; flex-wrap:wrap; margin-bottom:2.6rem; }
.cartaz__topo .sec-head{ margin-bottom:0; }

.evs{ display:grid; grid-template-columns:repeat(3,1fr); gap:1.2rem; }
.ev{
  background:rgba(255,255,255,.05); border:1px solid var(--linha-2);
  border-radius:var(--r); padding:1.5rem; display:flex; flex-direction:column; gap:1rem;
  transition:transform .3s ease, background .3s ease, border-color .3s ease;
}
.ev:hover{ transform:translateY(-5px); background:rgba(255,255,255,.09); border-color:rgba(216,174,92,.5); }
.ev__topo{ display:flex; align-items:flex-start; gap:1rem; }
.data{
  flex:none; width:66px; text-align:center; border-radius:10px; overflow:hidden;
  background:var(--dourado); color:var(--azul-noite);
}
.data b{ display:block; font-family:var(--display); font-weight:800; font-size:1.7rem; line-height:1; padding:.5rem 0 .1rem; }
.data span{ display:block; font-size:.63rem; text-transform:uppercase; letter-spacing:.14em; font-weight:700; padding-bottom:.45rem; }
.data i{ display:block; font-style:normal; font-size:.58rem; background:var(--azul-noite); color:var(--dourado); padding:.2rem 0; letter-spacing:.1em; font-weight:700; }
.ev__tipo{ font-size:.66rem; text-transform:uppercase; letter-spacing:.16em; font-weight:700; color:var(--dourado); }
.ev__topo h3{ margin-top:.35rem; }
.ev p{ color:rgba(255,255,255,.72); font-size:.95rem; }
.ev__pe{ margin-top:auto; display:flex; gap:1.1rem; flex-wrap:wrap; padding-top:.9rem; border-top:1px solid var(--linha-2); }
.ev__pe span{ display:inline-flex; align-items:center; gap:.4rem; font-size:.82rem; color:rgba(255,255,255,.66); font-weight:600; }
.ev__pe svg{ width:14px; height:14px; color:var(--dourado); flex:none; }

/* =========================================================
   O ICM
   ========================================================= */
.icm__grid{ display:grid; grid-template-columns:1fr 1fr; gap:clamp(2rem,5vw,4.5rem); align-items:center; }
.icm__txt p + p{ margin-top:1.1rem; }
.icm__txt p{ color:var(--cinza); }
.selos{ display:flex; gap:.6rem; flex-wrap:wrap; margin-top:1.8rem; }
.pill{
  display:inline-flex; align-items:center; gap:.45rem;
  border:1px solid var(--linha); background:#fff; border-radius:100px;
  padding:.5rem 1rem; font-size:.82rem; font-weight:700; color:var(--azul-esc);
}
.pill .quadri{ font-size:.8rem; }

.retrato{ position:relative; }
.retrato__img{ border-radius:var(--r); overflow:hidden; border:1px solid var(--linha); box-shadow:var(--sombra); background:var(--papel-2); }
.retrato__img img{ width:100%; aspect-ratio:4/3; object-fit:cover; }
.citacao{
  position:relative; margin-top:-3.2rem; margin-left:auto; width:88%;
  background:#fff; border:1px solid var(--linha); border-left:4px solid var(--dourado);
  border-radius:var(--r); padding:1.5rem 1.6rem; box-shadow:var(--sombra-sm);
}
.citacao p{ font-family:var(--serif); font-style:italic; font-size:1.08rem; line-height:1.5; color:var(--tinta); }
.citacao cite{ display:block; margin-top:.8rem; font-family:var(--corpo); font-style:normal; font-size:.78rem; text-transform:uppercase; letter-spacing:.13em; font-weight:700; color:var(--cinza); }

/* Números */
.numeros{ display:grid; grid-template-columns:repeat(4,1fr); gap:1px; background:var(--linha); border:1px solid var(--linha); border-radius:var(--r); overflow:hidden; margin-top:3.5rem; }
.num{ background:var(--papel); padding:1.9rem 1.4rem; text-align:center; }
.num b{ display:block; font-family:var(--display); font-weight:800; font-size:clamp(2rem,3.6vw,2.9rem); color:var(--azul); line-height:1; letter-spacing:-.03em; }
.num span{ display:block; margin-top:.5rem; font-size:.8rem; color:var(--cinza); font-weight:600; }

/* =========================================================
   ESPAÇOS / SALAS
   ========================================================= */
.salas{ background:var(--papel-2); border-block:1px solid var(--linha); }
.salas__grid{ display:grid; grid-template-columns:.85fr 1.15fr; gap:clamp(1.5rem,3vw,3rem); align-items:start; }
.salas__lista{ display:flex; flex-direction:column; gap:.5rem; }
.sala-b{
  display:flex; align-items:center; gap:1rem; width:100%; text-align:left;
  background:#fff; border:1px solid var(--linha); border-radius:12px; padding:1rem 1.15rem;
  transition:border-color .25s ease, transform .25s ease, background .25s ease;
}
.sala-b:hover{ transform:translateX(4px); border-color:var(--azul); }
.sala-b[aria-selected="true"]{ background:var(--azul-noite); border-color:var(--azul-noite); color:#fff; }
.sala-b[aria-selected="true"] .sala-b__n{ color:var(--dourado); }
.sala-b[aria-selected="true"] small{ color:rgba(255,255,255,.6); }
.sala-b__n{ font-family:var(--display); font-weight:800; font-size:.9rem; color:var(--dourado-e); flex:none; width:22px; }
.sala-b b{ display:block; font-family:var(--display); font-weight:700; font-size:1.02rem; letter-spacing:-.01em; }
.sala-b small{ display:block; font-size:.8rem; color:var(--cinza); }

.sala-p{ background:#fff; border:1px solid var(--linha); border-radius:var(--r); overflow:hidden; box-shadow:var(--sombra-sm); }
.sala-p__img{ position:relative; aspect-ratio:16/9; background:var(--papel-3); overflow:hidden; }
.sala-p__img img{ width:100%; height:100%; object-fit:cover; }
.sala-p__img::after{ content:""; position:absolute; inset:0; background:linear-gradient(to top, rgba(5,47,69,.55), transparent 55%); }
.sala-p__tag{
  position:absolute; left:1.1rem; bottom:1.1rem; z-index:2;
  background:var(--dourado); color:var(--azul-noite); border-radius:100px;
  padding:.35rem .9rem; font-size:.7rem; font-weight:700; text-transform:uppercase; letter-spacing:.11em;
}
.sala-p__corpo{ padding:1.7rem; }
.sala-p__corpo p{ color:var(--cinza); margin-top:.7rem; }
.sala-p__meta{ display:grid; grid-template-columns:repeat(3,1fr); gap:1rem; margin-top:1.4rem; padding-top:1.3rem; border-top:1px solid var(--linha); }
.sala-p__meta div b{ display:block; font-family:var(--display); font-weight:800; font-size:1.15rem; color:var(--azul-esc); }
.sala-p__meta div span{ font-size:.72rem; text-transform:uppercase; letter-spacing:.09em; color:var(--cinza); font-weight:700; }

/* =========================================================
   GALERIA / EXPOSIÇÕES
   ========================================================= */
.galeria{ columns:3; column-gap:1rem; }
.galeria figure{
  break-inside:avoid; margin-bottom:1rem; border-radius:12px; overflow:hidden;
  border:1px solid var(--linha); background:var(--papel-2); position:relative; cursor:zoom-in;
}
.galeria img{ width:100%; transition:transform .5s cubic-bezier(.2,.7,.3,1); }
.galeria figure:hover img{ transform:scale(1.05); }
.galeria figcaption{
  position:absolute; inset:auto 0 0 0; padding:1.4rem .9rem .8rem;
  background:linear-gradient(to top, rgba(5,47,69,.9), transparent);
  color:#fff; font-size:.82rem; font-weight:700;
  opacity:0; transform:translateY(8px); transition:.3s ease;
}
.galeria figure:hover figcaption{ opacity:1; transform:none; }

/* Lightbox */
.lb{
  position:fixed; inset:0; z-index:200; display:none; place-items:center;
  background:rgba(5,47,69,.94); padding:3rem 1.5rem;
}
.lb.aberto{ display:grid; }
.lb img{ max-width:min(92vw,900px); max-height:82vh; object-fit:contain; border-radius:8px; box-shadow:var(--sombra); }
.lb__f{ position:absolute; top:1.2rem; right:1.2rem; width:46px; height:46px; border-radius:50%; background:rgba(255,255,255,.14); color:#fff; display:grid; place-items:center; font-size:1.4rem; }
.lb__f:hover{ background:var(--dourado); color:var(--azul-noite); }
.lb__leg{ position:absolute; left:0; right:0; bottom:1.4rem; text-align:center; color:rgba(255,255,255,.8); font-size:.9rem; font-weight:600; }

/* =========================================================
   DISCIPLINAS
   ========================================================= */
.disc{ display:grid; grid-template-columns:repeat(5,1fr); gap:1px; background:var(--linha); border:1px solid var(--linha); border-radius:var(--r); overflow:hidden; }
.disc a{
  background:var(--papel); padding:1.6rem 1.2rem; display:flex; flex-direction:column; gap:.55rem;
  transition:background .25s ease, transform .25s ease;
}
.disc a:hover{ background:#fff; transform:translateY(-3px); }
.disc__ic{ width:34px; height:34px; color:var(--azul); }
.disc b{ font-family:var(--display); font-weight:700; font-size:1rem; letter-spacing:-.01em; }
.disc small{ font-size:.8rem; color:var(--cinza); line-height:1.45; }

/* Grupos */
.grupos{ display:grid; grid-template-columns:repeat(3,1fr); gap:1.2rem; }
.grupo{
  border:1px solid var(--linha); border-radius:var(--r); overflow:hidden; background:#fff;
  transition:transform .3s ease, box-shadow .3s ease;
}
.grupo:hover{ transform:translateY(-5px); box-shadow:var(--sombra); }
.grupo__img{ aspect-ratio:5/3; background:var(--papel-3); overflow:hidden; }
.grupo__img img{ width:100%; height:100%; object-fit:cover; }
.grupo__c{ padding:1.5rem; }
.grupo__c p{ color:var(--cinza); font-size:.94rem; margin-top:.6rem; }
.grupo__c .eyebrow{ margin-bottom:.5rem; }

/* =========================================================
   ARQUIVO DE CARTAZES
   ========================================================= */
.arquivo{ background:var(--azul-noite); color:#fff; }
.arquivo .sec-head h2{ color:#fff; }
.parede{ display:grid; grid-template-columns:repeat(6,1fr); gap:.9rem; }
.parede figure{
  position:relative; border-radius:8px; overflow:hidden; background:rgba(255,255,255,.05);
  border:1px solid var(--linha-2); cursor:zoom-in; aspect-ratio:3/4;
  transition:transform .35s cubic-bezier(.2,.7,.3,1), border-color .35s ease;
}
.parede figure:hover{ transform:translateY(-6px) rotate(-1.2deg); border-color:var(--dourado); }
.parede img{ width:100%; height:100%; object-fit:cover; }
.parede figcaption{
  position:absolute; inset:auto 0 0 0; padding:1.6rem .7rem .6rem;
  background:linear-gradient(to top, rgba(5,47,69,.95), transparent);
  font-size:.72rem; font-weight:700; opacity:0; transition:.3s ease;
}
.parede figure:hover figcaption{ opacity:1; }

/* Marcos / linha do tempo */
.marcos{ display:grid; grid-template-columns:repeat(4,1fr); gap:1px; background:var(--linha-2); border:1px solid var(--linha-2); border-radius:var(--r); overflow:hidden; margin-top:2.5rem; }
.marco{ background:var(--azul-noite); padding:1.6rem 1.3rem; }
.marco b{ display:block; font-family:var(--display); font-weight:800; font-size:1.4rem; color:var(--dourado); letter-spacing:-.02em; }
.marco span{ display:block; margin-top:.4rem; font-size:.88rem; color:rgba(255,255,255,.72); }

/* =========================================================
   NOTÍCIAS
   ========================================================= */
.noticias{ display:grid; grid-template-columns:repeat(3,1fr); gap:1.4rem; }
.not{ border:1px solid var(--linha); border-radius:var(--r); overflow:hidden; background:#fff; display:flex; flex-direction:column; transition:transform .3s ease, box-shadow .3s ease; }
.not:hover{ transform:translateY(-5px); box-shadow:var(--sombra); }
.not__img{ aspect-ratio:16/10; background:var(--papel-3); overflow:hidden; }
.not__img img{ width:100%; height:100%; object-fit:cover; }
.not__c{ padding:1.4rem; display:flex; flex-direction:column; gap:.55rem; flex:1; }
.not__d{ font-size:.72rem; text-transform:uppercase; letter-spacing:.13em; font-weight:700; color:var(--dourado-e); }
.not__c p{ color:var(--cinza); font-size:.93rem; }
.not__l{ margin-top:auto; padding-top:.9rem; font-size:.85rem; font-weight:700; color:var(--azul-esc); }

/* =========================================================
   INSCRIÇÃO — passos
   ========================================================= */
.passos{ display:grid; grid-template-columns:repeat(3,1fr); gap:1.4rem; counter-reset:p; }
.passo{ background:#fff; border:1px solid var(--linha); border-radius:var(--r); padding:1.8rem; position:relative; }
.passo::before{
  counter-increment:p; content:counter(p);
  position:absolute; top:-14px; left:1.8rem;
  width:34px; height:34px; border-radius:50%; background:var(--azul); color:#fff;
  display:grid; place-items:center; font-family:var(--display); font-weight:800; font-size:1rem;
}
.passo h3{ margin:.7rem 0 .5rem; }
.passo p{ color:var(--cinza); font-size:.95rem; }

.calend{ display:grid; grid-template-columns:1.1fr .9fr; gap:2.5rem; align-items:center; margin-top:3.5rem; background:var(--papel-2); border:1px solid var(--linha); border-radius:var(--r); padding:clamp(1.6rem,3vw,2.6rem); }
.calend ul{ list-style:none; display:grid; gap:.7rem; }
.calend li{ display:flex; gap:.85rem; align-items:baseline; padding-bottom:.7rem; border-bottom:1px dashed var(--linha); }
.calend li b{ font-family:var(--display); font-weight:700; color:var(--azul-esc); flex:none; min-width:118px; font-size:.95rem; }
.calend li span{ font-size:.95rem; color:var(--cinza); }

/* =========================================================
   BACK-OFFICE (argumento de venda)
   ========================================================= */
.bo{ background:linear-gradient(160deg, var(--azul-esc), var(--azul-noite)); color:#fff; }
.bo__grid{ display:grid; grid-template-columns:.95fr 1.05fr; gap:clamp(2rem,4vw,3.5rem); align-items:center; }
.bo h2{ color:#fff; }
.bo__lista{ list-style:none; display:grid; gap:.9rem; margin-top:1.8rem; }
.bo__lista li{ display:flex; gap:.75rem; align-items:flex-start; color:rgba(255,255,255,.82); font-size:.98rem; }
.bo__lista .quadri{ font-size:.9rem; margin-top:.35rem; flex:none; }

.janela{ background:var(--papel); border-radius:14px; overflow:hidden; box-shadow:0 40px 80px -30px rgba(0,0,0,.6); border:1px solid rgba(255,255,255,.2); }
.janela__barra{ background:var(--papel-3); padding:.6rem .9rem; display:flex; align-items:center; gap:.45rem; border-bottom:1px solid var(--linha); }
.janela__barra i{ width:10px; height:10px; border-radius:50%; background:#D6CFC0; }
.janela__url{ margin-left:.6rem; background:#fff; border:1px solid var(--linha); border-radius:6px; padding:.18rem .7rem; font-size:.7rem; color:var(--cinza); font-weight:600; }
.janela__c{ padding:1.1rem; }
.bo-topo{ display:flex; align-items:center; justify-content:space-between; margin-bottom:.9rem; }
.bo-topo b{ font-family:var(--display); font-weight:700; font-size:1rem; color:var(--tinta); }
.bo-add{ background:var(--azul); color:#fff; border-radius:7px; padding:.35rem .8rem; font-size:.72rem; font-weight:700; }
.bo-linha{
  display:flex; align-items:center; gap:.8rem; padding:.65rem .7rem;
  border:1px solid var(--linha); border-radius:8px; background:#fff; margin-bottom:.5rem;
}
.bo-linha__d{ font-family:var(--display); font-weight:800; font-size:.78rem; color:var(--azul-esc); background:var(--papel-2); border-radius:5px; padding:.25rem .5rem; flex:none; }
.bo-linha__t{ font-size:.82rem; font-weight:600; color:var(--tinta); flex:1; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.bo-linha__e{ font-size:.62rem; font-weight:700; text-transform:uppercase; letter-spacing:.08em; border-radius:100px; padding:.2rem .55rem; flex:none; }
.e-pub{ background:rgba(0,157,222,.14); color:var(--azul-esc); }
.e-rasc{ background:var(--papel-3); color:var(--cinza); }
.e-dest{ background:rgba(216,174,92,.24); color:var(--dourado-e); }

/* =========================================================
   CONTACTOS
   ========================================================= */
.cont__grid{ display:grid; grid-template-columns:1fr 1fr; gap:clamp(2rem,4vw,3.5rem); }
.info{ display:grid; gap:1.15rem; margin:1.8rem 0; }
.info div{ display:flex; gap:.9rem; align-items:flex-start; }
.info svg{ width:20px; height:20px; color:var(--azul); flex:none; margin-top:.25rem; }
.info b{ display:block; font-size:.72rem; text-transform:uppercase; letter-spacing:.13em; color:var(--cinza); font-weight:700; }
.info span, .info a{ font-size:1.02rem; font-weight:600; }
.info a:hover{ color:var(--azul); }
.mapa{ border-radius:var(--r); overflow:hidden; border:1px solid var(--linha); height:230px; margin-top:1.5rem; }
.mapa iframe{ width:100%; height:100%; border:0; display:block; }

.form{ background:#fff; border:1px solid var(--linha); border-radius:var(--r); padding:clamp(1.5rem,3vw,2.2rem); box-shadow:var(--sombra-sm); }
.campo{ margin-bottom:1rem; }
.campo label{ display:block; font-size:.76rem; text-transform:uppercase; letter-spacing:.1em; font-weight:700; color:var(--cinza); margin-bottom:.4rem; }
.campo input, .campo select, .campo textarea{
  width:100%; font:inherit; font-size:.98rem; color:var(--tinta);
  background:var(--papel); border:1px solid var(--linha); border-radius:9px; padding:.8rem .95rem;
  transition:border-color .2s ease, box-shadow .2s ease;
}
.campo input:focus, .campo select:focus, .campo textarea:focus{
  outline:none; border-color:var(--azul); box-shadow:0 0 0 3px rgba(0,157,222,.16);
}
.campo textarea{ resize:vertical; min-height:110px; }
.campo--2{ display:grid; grid-template-columns:1fr 1fr; gap:1rem; }
.hp{ position:absolute; left:-9999px; opacity:0; height:0; }
.estado{ font-size:.88rem; font-weight:700; margin-top:.8rem; min-height:1.2em; }
.estado.ok{ color:#1B7F4B; }
.estado.erro{ color:#B4322B; }
.rgpd{ font-size:.78rem; color:var(--cinza); margin-top:.9rem; line-height:1.5; }

/* =========================================================
   RODAPÉ
   ========================================================= */
.rodape{ background:var(--azul-noite); color:rgba(255,255,255,.72); padding:4rem 0 0; }
.rodape__grid{ display:grid; grid-template-columns:1.4fr 1fr 1fr 1fr; gap:2.2rem; padding-bottom:2.8rem; }
.rodape h4{ color:#fff; font-size:.78rem; text-transform:uppercase; letter-spacing:.15em; margin-bottom:1rem; font-family:var(--corpo); font-weight:700; }
.rodape ul{ list-style:none; display:grid; gap:.5rem; }
.rodape a:hover{ color:var(--dourado); }
.rodape p{ font-size:.9rem; }
.rodape .marca img{ filter:none; }
.rodape .marca__sigla{ color:#fff; }
.rodape .marca__nome{ color:rgba(255,255,255,.55); }
.rodape__base{
  border-top:1px solid var(--linha-2); padding:1.4rem 0; display:flex;
  justify-content:space-between; gap:1rem; flex-wrap:wrap; font-size:.82rem;
}
.rodape__base a{ color:rgba(255,255,255,.72); }

.fab{
  position:fixed; right:20px; bottom:20px; z-index:70;
  width:58px; height:58px; border-radius:50%; background:var(--azul); color:#fff;
  display:grid; place-items:center; box-shadow:var(--sombra);
  transition:transform .25s ease, background .25s ease;
}
.fab:hover{ transform:scale(1.08); background:var(--azul-esc); }
.fab svg{ width:26px; height:26px; }

/* Aviso de rascunho */
.draft{
  background:var(--dourado); color:var(--azul-noite); text-align:center;
  padding:.5rem 24px; font-size:.78rem; font-weight:700; letter-spacing:.03em;
}

/* =========================================================
   PÁGINAS INTERIORES
   ========================================================= */
.capa{ background:var(--azul-noite); color:#fff; padding:clamp(3.5rem,6vw,5.5rem) 0; position:relative; overflow:hidden; }
.capa__q{ position:absolute; right:-4%; top:-30%; width:420px; height:420px; color:rgba(216,174,92,.09); animation:girar 46s linear infinite; }
.capa h1{ font-size:clamp(2.3rem,5vw,4rem); position:relative; }
.capa p{ color:rgba(255,255,255,.72); max-width:56ch; margin-top:1.1rem; position:relative; font-size:1.08rem; }
.migalhas{ font-size:.78rem; color:rgba(255,255,255,.55); margin-bottom:1rem; font-weight:600; position:relative; }
.migalhas a:hover{ color:var(--dourado); }

.filtros{ display:flex; gap:.5rem; flex-wrap:wrap; margin-bottom:2.2rem; }
.filtro{
  border:1px solid var(--linha); background:#fff; border-radius:100px;
  padding:.5rem 1.1rem; font-size:.85rem; font-weight:700; color:var(--cinza);
  transition:.22s ease;
}
.filtro:hover{ border-color:var(--azul); color:var(--azul-esc); }
.filtro[aria-pressed="true"]{ background:var(--azul-noite); border-color:var(--azul-noite); color:#fff; }

.lista-ev{ display:grid; gap:1rem; }
.lev{
  display:grid; grid-template-columns:auto 1fr auto; gap:1.5rem; align-items:center;
  background:#fff; border:1px solid var(--linha); border-radius:var(--r); padding:1.3rem 1.5rem;
  transition:transform .25s ease, box-shadow .25s ease, border-color .25s ease;
}
.lev:hover{ transform:translateX(5px); border-color:var(--azul); box-shadow:var(--sombra-sm); }
.lev .data{ background:var(--azul-noite); color:#fff; }
.lev .data b{ color:#fff; }
.lev .data span{ color:var(--dourado); }
.lev .data i{ background:var(--dourado); color:var(--azul-noite); }
.lev__c .ev__tipo{ color:var(--dourado-e); }
.lev__c p{ color:var(--cinza); font-size:.93rem; margin-top:.3rem; }
.lev__m{ text-align:right; font-size:.84rem; color:var(--cinza); font-weight:600; }
.lev__m b{ display:block; font-family:var(--display); color:var(--azul-esc); font-size:1rem; }
.vazio{ text-align:center; padding:3rem; color:var(--cinza); border:1px dashed var(--linha); border-radius:var(--r); }

.tabela{ width:100%; border-collapse:collapse; background:#fff; border:1px solid var(--linha); border-radius:var(--r); overflow:hidden; }
.tabela th, .tabela td{ padding:.9rem 1.1rem; text-align:left; border-bottom:1px solid var(--linha); font-size:.93rem; }
.tabela th{ background:var(--papel-2); font-family:var(--display); font-weight:700; font-size:.82rem; text-transform:uppercase; letter-spacing:.09em; color:var(--azul-esc); }
.tabela tr:last-child td{ border-bottom:0; }
.tabela td b{ font-weight:700; }

.disc-full{ display:grid; grid-template-columns:repeat(3,1fr); gap:1.4rem; }
.dcard{ background:#fff; border:1px solid var(--linha); border-radius:var(--r); overflow:hidden; display:flex; flex-direction:column; transition:transform .3s ease, box-shadow .3s ease; }
.dcard:hover{ transform:translateY(-5px); box-shadow:var(--sombra); }
.dcard__img{ aspect-ratio:16/10; background:var(--papel-3); overflow:hidden; }
.dcard__img img{ width:100%; height:100%; object-fit:cover; transition:transform .5s ease; }
.dcard:hover .dcard__img img{ transform:scale(1.06); }
.dcard__c{ padding:1.4rem; flex:1; display:flex; flex-direction:column; gap:.5rem; }
.dcard__c p{ color:var(--cinza); font-size:.92rem; }
.dcard__tag{ margin-top:auto; padding-top:.9rem; font-size:.72rem; text-transform:uppercase; letter-spacing:.11em; font-weight:700; color:var(--dourado-e); }

/* =========================================================
   RESPONSIVO
   ========================================================= */
@media (max-width:1080px){
  .disc{ grid-template-columns:repeat(3,1fr); }
  .parede{ grid-template-columns:repeat(4,1fr); }
  .galeria{ columns:2; }
}
@media (max-width:900px){
  .nav__links{
    position:fixed; inset:64px 0 auto 0; flex-direction:column; align-items:stretch;
    background:var(--papel); border-bottom:1px solid var(--linha); padding:1rem 24px 1.5rem;
    gap:.2rem; display:none; box-shadow:var(--sombra);
  }
  .nav__links.aberto{ display:flex; }
  .nav__links > a{ padding:.75rem 0; border-bottom:1px solid var(--linha); }
  .nav__links .btn{ margin-top:.8rem; justify-content:center; }
  .burger{ display:flex; }
  .hero__grid, .icm__grid, .salas__grid, .bo__grid, .cont__grid, .calend{ grid-template-columns:1fr; }
  .leque{ max-width:440px; margin:0 auto; }
  .evs, .grupos, .noticias, .passos, .disc-full{ grid-template-columns:1fr 1fr; }
  .numeros, .marcos{ grid-template-columns:1fr 1fr; }
  .rodape__grid{ grid-template-columns:1fr 1fr; }
  .citacao{ width:100%; margin-left:0; }
}
@media (max-width:640px){
  body{ font-size:16px; }
  .hero__factos{ grid-template-columns:1fr 1fr; gap:1.1rem; }
  .evs, .grupos, .noticias, .passos, .disc, .disc-full{ grid-template-columns:1fr; }
  .parede{ grid-template-columns:repeat(2,1fr); }
  .galeria{ columns:1; }
  .campo--2{ grid-template-columns:1fr; }
  .lev{ grid-template-columns:auto 1fr; }
  .lev__m{ grid-column:1/-1; text-align:left; padding-top:.8rem; border-top:1px solid var(--linha); }
  .rodape__grid{ grid-template-columns:1fr; }
  .sala-p__meta{ grid-template-columns:1fr; gap:.7rem; }
  .numeros, .marcos{ grid-template-columns:1fr; }
}

@media (prefers-reduced-motion: reduce){
  *{ animation:none !important; transition:none !important; }
  .reveal{ opacity:1; transform:none; }
  html{ scroll-behavior:auto; }
}

/* ===== Imagens que são cartazes (mostrar inteiras, não cortadas) ===== */
.img-cartaz{ object-fit:contain !important; background:var(--papel-2); padding:.4rem; }
.grupo__img:has(.img-cartaz), .not__img:has(.img-cartaz){ background:var(--papel-2); }
/* Na parede do arquivo os cartazes ficam sempre a preencher o quadro */
.parede img.img-cartaz{ object-fit:cover !important; padding:0; background:transparent; }
