/* Convento São Francisco · Coimbra Cultura e Congressos — protótipo ArqWeb
   Paleta: docs/proposals/coimbraconvento/paleta.json (cores do logótipo e do site atual). */
@font-face{font-family:"Merriweather";src:url(/assets/fonts/merriweather-latin-400-normal.woff2) format("woff2");font-weight:400;font-style:normal;font-display:swap}
@font-face{font-family:"Merriweather";src:url(/assets/fonts/merriweather-latin-400-italic.woff2) format("woff2");font-weight:400;font-style:italic;font-display:swap}
@font-face{font-family:"Merriweather";src:url(/assets/fonts/merriweather-latin-700-normal.woff2) format("woff2");font-weight:700;font-style:normal;font-display:swap}
@font-face{font-family:"Lato";src:url(/assets/fonts/lato-latin-400-normal.woff2) format("woff2");font-weight:400;font-display:swap}
@font-face{font-family:"Lato";src:url(/assets/fonts/lato-latin-700-normal.woff2) format("woff2");font-weight:700;font-display:swap}
@font-face{font-family:"Lato";src:url(/assets/fonts/lato-latin-900-normal.woff2) format("woff2");font-weight:900;font-display:swap}

:root{
  --fundo:#141315;--superficie:#221F23;--superficie-2:#2C292D;--texto:#F2EFEE;--texto-2:#C9C3C4;
  --primaria:#D55A61;--botao:#B03E46;--botao-hover:#97333A;--acento:#F16A71;--linha:rgba(242,239,238,.14);
  --serif:"Merriweather",Georgia,serif;--sans:"Lato",system-ui,sans-serif;
  --w:1240px;--r:6px;--ease:cubic-bezier(.16,1,.3,1);
}
*{box-sizing:border-box}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%;color-scheme:dark}
body{margin:0;background:var(--fundo);color:var(--texto);font:400 1.0625rem/1.65 var(--sans);-webkit-font-smoothing:antialiased}
img{max-width:100%;display:block;height:auto}
a{color:inherit;text-underline-offset:.2em;text-decoration-thickness:1px}
a:hover{color:var(--acento)}
::selection{background:var(--botao);color:#fff}
:focus-visible{outline:2px solid var(--acento);outline-offset:3px;border-radius:2px}
h1,h2,h3{font-family:var(--serif);font-weight:700;line-height:1.15;letter-spacing:-.01em;text-wrap:balance;margin:0 0 .5em}
h1{font-size:clamp(2.2rem,4.6vw,3.9rem)}
h2{font-size:clamp(1.7rem,3vw,2.5rem)}
h3{font-size:1.25rem}
p{margin:0 0 1em;max-width:68ch;text-wrap:pretty}
.wrap{max-width:var(--w);margin:0 auto;padding:0 clamp(18px,4vw,40px)}
.skip{position:absolute;left:-999px;top:0;background:var(--botao);color:#fff;padding:10px 16px;z-index:100}
.skip:focus{left:12px;top:12px}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}

/* Cabeçalho */
.site-header{position:sticky;top:0;z-index:40;background:rgba(20,19,21,.94);backdrop-filter:saturate(140%) blur(8px);border-bottom:1px solid var(--linha)}
.site-header .wrap{display:flex;align-items:center;justify-content:space-between;gap:24px;height:76px}
.brand{display:flex;align-items:center;flex:none}
.brand img{width:214px;height:auto}
.nav{display:flex;align-items:center;gap:clamp(14px,2vw,28px)}
.nav a{text-decoration:none;font-weight:700;font-size:.95rem;letter-spacing:.01em;padding:8px 0;position:relative}
.nav a::after{content:"";position:absolute;left:0;right:0;bottom:2px;height:2px;background:var(--primaria);transform:scaleX(0);transform-origin:left;transition:transform .35s var(--ease)}
.nav a:hover::after,.nav a[aria-current="page"]::after{transform:scaleX(1)}
.nav a:hover{color:var(--texto)}
.btn{display:inline-flex;align-items:center;gap:.5em;font:700 1rem/1 var(--sans);text-decoration:none;padding:15px 24px;border-radius:var(--r);border:1px solid transparent;cursor:pointer;transition:background-color .2s,color .2s,transform .15s var(--ease),border-color .2s;white-space:nowrap}
.btn:active{transform:scale(.96)}
.btn-primary{background:var(--botao);color:#fff}
.btn-primary:hover,.nav .btn-primary:hover{background:var(--botao-hover);color:#fff}
.btn-ghost{border-color:rgba(242,239,238,.45);color:var(--texto)}
.btn-ghost:hover{border-color:var(--texto);color:var(--texto);background:rgba(242,239,238,.06)}
.nav .btn{padding:11px 18px;font-size:.92rem}
.nav .btn::after{display:none}
.menu-toggle{display:none;background:none;border:1px solid var(--linha);color:var(--texto);border-radius:var(--r);padding:10px 14px;font:700 .95rem var(--sans);cursor:pointer}
@media (max-width:980px){
  .brand img{width:172px}
  .menu-toggle{display:inline-flex}
  .nav{position:fixed;inset:76px 0 auto 0;flex-direction:column;align-items:stretch;gap:0;background:var(--fundo);border-bottom:1px solid var(--linha);padding:8px clamp(18px,4vw,40px) 20px;transform:translateY(-8px);opacity:0;visibility:hidden;transition:opacity .2s,transform .3s var(--ease),visibility .2s}
  .nav.open{opacity:1;visibility:visible;transform:none}
  .nav a{padding:14px 0;border-bottom:1px solid var(--linha);font-size:1.05rem}
  .nav a::after{display:none}
  .nav .btn{margin-top:14px;justify-content:center;border-bottom:0}
}

/* Hero */
.hero{position:relative;background:var(--fundo)}
.hero-photo{position:relative;height:min(62vh,560px);min-height:380px;overflow:hidden}
.hero-photo img{width:100%;height:100%;object-fit:cover;object-position:50% 30%}
.hero-card{position:relative;margin:-168px 0 0 clamp(18px,4vw,40px);max-width:600px;background:var(--fundo);padding:clamp(26px,3.4vw,44px) clamp(22px,3.4vw,46px) 8px 0}
.hero-wrap{max-width:var(--w);margin:0 auto}
.hero-card::before{content:"";position:absolute;inset:0 0 0 -50vw;background:var(--fundo);z-index:-1}
.hero-card h1{font-size:clamp(2.2rem,4vw,3.4rem)}
.hero-card p{font-size:1.15rem;color:var(--texto-2);max-width:44ch}
.hero-actions{display:flex;flex-wrap:wrap;gap:12px 22px;align-items:center;margin-top:22px}
.link-arrow{font-weight:700;text-decoration:none;border-bottom:1px solid var(--primaria);padding-bottom:3px}
.link-arrow:hover{color:var(--acento)}
@media (max-width:700px){
  .hero-photo{height:46vh;min-height:300px}
  .hero-card{margin:0;padding:26px clamp(18px,4vw,40px) 4px}
}

/* Secções */
.section{padding:clamp(64px,8vw,112px) 0}
.section-head{display:flex;align-items:end;justify-content:space-between;gap:20px;margin-bottom:28px;flex-wrap:wrap}
.section-head h2{margin:0}
.surface{background:var(--superficie)}

/* Filmstrip de espetáculos */
.strip{position:relative}
.strip-track{display:grid;grid-auto-flow:column;grid-auto-columns:clamp(220px,22vw,268px);gap:22px;overflow-x:auto;scroll-snap-type:x mandatory;padding:4px 0 18px;scrollbar-width:thin;scrollbar-color:var(--primaria) transparent;overscroll-behavior-x:contain}
.strip-track>*{scroll-snap-align:start}
.show{text-decoration:none;display:block}
.show figure{margin:0;aspect-ratio:283/423;overflow:hidden;border-radius:var(--r);background:var(--superficie-2)}
.show img{width:100%;height:100%;object-fit:cover;transition:transform .6s var(--ease)}
.show:hover img{transform:scale(1.04)}
.show time{display:block;margin-top:14px;color:var(--acento);font-weight:700;font-size:.92rem}
.show h3{font-size:1.05rem;margin:.3em 0 0;line-height:1.3}
.show:hover h3{color:var(--texto)}
.strip-ctrl{display:flex;gap:10px}
.strip-ctrl button{width:48px;height:48px;border-radius:50%;border:1px solid var(--linha);background:transparent;color:var(--texto);font-size:1.25rem;cursor:pointer;transition:background-color .2s,border-color .2s}
.strip-ctrl button:hover{background:var(--botao);border-color:var(--botao);color:#fff}
.strip-ctrl button:active:not(:disabled){transform:scale(.96)}
.strip-ctrl button:disabled{opacity:.35;cursor:default;background:transparent;border-color:var(--linha)}

/* Explorador de espaços */
.spaces{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:clamp(24px,4vw,56px);align-items:start}
.space-list{list-style:none;margin:0;padding:0;border-top:1px solid var(--linha)}
.space-list button,.space-list a.row{all:unset;box-sizing:border-box;display:grid;grid-template-columns:1fr auto;gap:12px;width:100%;padding:15px 4px;border-bottom:1px solid var(--linha);cursor:pointer;transition:color .2s}
.space-list button span:first-child{font-family:var(--serif);font-weight:700;font-size:1.08rem}
.space-list button span:last-child{color:var(--texto-2);font-variant-numeric:tabular-nums}
.space-list button span:first-child{transition:transform .3s var(--ease)}
.space-list button:hover,.space-list button[aria-selected="true"]{color:var(--acento)}
.space-list button:hover span:first-child,.space-list button[aria-selected="true"] span:first-child{transform:translateX(10px)}
.space-list button:focus-visible{outline:2px solid var(--acento);outline-offset:-2px}
.space-view{position:sticky;top:100px}
.space-view figure{margin:0;aspect-ratio:4/3;overflow:hidden;border-radius:var(--r);background:var(--superficie-2)}
.space-view img{width:100%;height:100%;object-fit:cover;transition:opacity .35s}
.space-view .meta{display:flex;flex-wrap:wrap;gap:6px 28px;margin:16px 0 10px;color:var(--texto-2)}
.space-view .meta b{color:var(--texto)}
@media (max-width:860px){.spaces{grid-template-columns:1fr}.space-view{position:static;order:-1}}

/* Faixa panorâmica */
.pano{margin:0;position:relative}
.pano img{width:100%;height:clamp(200px,28vw,420px);object-fit:cover}
.pano figcaption{max-width:var(--w);margin:10px auto 0;padding:0 clamp(18px,4vw,40px);color:var(--texto-2);font-size:.9rem}

/* Linha do tempo */
.timeline{display:grid;grid-auto-flow:column;grid-auto-columns:minmax(240px,300px);gap:0;overflow-x:auto;scroll-snap-type:x mandatory;border-top:2px solid var(--primaria);padding-bottom:12px;scrollbar-width:thin;scrollbar-color:var(--primaria) transparent}
.timeline li{list-style:none;scroll-snap-align:start;padding:22px 28px 0 0;position:relative}
.timeline li::before{content:"";position:absolute;top:-7px;left:0;width:12px;height:12px;border-radius:50%;background:var(--primaria)}
.timeline b{display:block;font-family:var(--serif);font-size:1.6rem;color:var(--acento);font-variant-numeric:tabular-nums}
.timeline ol{margin:0;padding:0}
.history{display:grid;grid-template-columns:minmax(0,7fr) minmax(0,5fr);gap:clamp(24px,4vw,56px);align-items:center;margin-bottom:48px}
.history figure{margin:0;border-radius:var(--r);overflow:hidden}
@media (max-width:860px){.history{grid-template-columns:1fr}}

/* Serviços */
.services{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:0;border-top:1px solid var(--linha)}
.services article{padding:26px 28px 6px 0;border-right:1px solid var(--linha)}
.services article+article{padding-left:28px}
.services article:last-child{border-right:0}
.services p{color:var(--texto-2);margin:.2em 0}
@media (max-width:760px){.services{grid-template-columns:1fr}.services article,.services article+article{border-right:0;border-bottom:1px solid var(--linha);padding:22px 0}}

/* Visitar */
.visit{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:clamp(24px,4vw,64px)}
.visit dl{margin:0;display:grid;grid-template-columns:auto 1fr;gap:10px 22px}
.visit dt{color:var(--texto-2)}
.visit dd{margin:0}
@media (max-width:760px){.visit{grid-template-columns:1fr}}

/* Páginas internas */
.page-head{padding:clamp(40px,6vw,72px) 0 28px;border-bottom:1px solid var(--linha)}
.page-head p{color:var(--texto-2);font-size:1.12rem}
.crumbs{font-size:.9rem;color:var(--texto-2);margin-bottom:14px}
.crumbs a{text-decoration:none}
.prose h2{margin-top:1.6em;font-size:1.6rem}
.prose ul{padding-left:1.1em;max-width:68ch}
.prose li{margin:.3em 0}
.cols{display:grid;grid-template-columns:minmax(0,7fr) minmax(0,5fr);gap:clamp(24px,4vw,64px);align-items:start}
@media (max-width:860px){.cols{grid-template-columns:1fr}}

/* Agenda */
.tabs{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 26px}
.tabs button{font:700 .95rem var(--sans);padding:10px 16px;border-radius:var(--r);border:1px solid var(--linha);background:transparent;color:var(--texto);cursor:pointer;transition:background-color .2s,border-color .2s}
.tabs button[aria-pressed="true"]{background:var(--botao);border-color:var(--botao);color:#fff}
.tabs button:hover{border-color:var(--texto)}
.agenda-list{list-style:none;margin:0;padding:0;border-top:1px solid var(--linha)}
.agenda-list li{border-bottom:1px solid var(--linha)}
.agenda-list a{display:grid;grid-template-columns:120px 92px 1fr auto;gap:22px;align-items:center;padding:16px 0;text-decoration:none;transition:background-color .2s}
.agenda-list a:hover{background:rgba(242,239,238,.04)}
.agenda-list img{width:92px;height:116px;object-fit:cover;border-radius:4px}
.agenda-list time{font-weight:700;color:var(--acento);line-height:1.3}
.agenda-list time span{display:block;color:var(--texto-2);font-weight:400;font-size:.9rem}
.agenda-list h2{margin:0;font-size:1.12rem;line-height:1.3}
.agenda-list .cat{color:var(--texto-2);font-size:.92rem}
.agenda-list .go{font-weight:700;font-size:.92rem;white-space:nowrap}
@media (max-width:700px){.agenda-list a{grid-template-columns:76px 1fr;gap:14px}.agenda-list img{width:76px;height:96px;grid-row:span 2}.agenda-list .go{display:none}.agenda-list time{grid-column:2}}
.event{display:grid;grid-template-columns:minmax(0,4fr) minmax(0,7fr);gap:clamp(24px,4vw,64px);align-items:start;padding:clamp(36px,5vw,64px) 0}
.event figure{margin:0;border-radius:var(--r);overflow:hidden;max-width:420px}
.event .when{font-size:1.15rem;color:var(--acento);font-weight:700}
.event ul{list-style:none;padding:0;margin:0 0 1.2em;color:var(--texto-2)}
@media (max-width:760px){.event{grid-template-columns:1fr}.event figure{max-width:300px}}

/* Espaços (lista) */
.space-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:40px 32px}
.space-card{text-decoration:none}
.space-card figure{margin:0 0 14px;aspect-ratio:3/2;overflow:hidden;border-radius:var(--r);background:var(--superficie-2)}
.space-card img{width:100%;height:100%;object-fit:cover;transition:transform .6s var(--ease)}
.space-card:hover img{transform:scale(1.03)}
.space-card h2{font-size:1.4rem;margin:0 0 .2em}
.space-card p{color:var(--texto-2);margin:0}
.space-card.big{grid-column:1/-1}
.space-card.big figure{aspect-ratio:21/9}
@media (max-width:700px){.space-grid{grid-template-columns:1fr}.space-card.big figure{aspect-ratio:3/2}}
.facts{display:grid;grid-template-columns:auto 1fr;gap:10px 24px;margin:0 0 1.5em}
.facts dt{color:var(--texto-2)}
.facts dd{margin:0;white-space:pre-line}
.gallery{display:grid;grid-auto-flow:column;grid-auto-columns:min(78%,620px);gap:16px;overflow-x:auto;scroll-snap-type:x mandatory;padding-bottom:12px;scrollbar-width:thin;scrollbar-color:var(--primaria) transparent}
.gallery figure{margin:0;scroll-snap-align:start;border-radius:var(--r);overflow:hidden;aspect-ratio:4/3;background:var(--superficie-2)}
.gallery img{width:100%;height:100%;object-fit:cover}

/* Formulário */
.form{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px 20px;background:var(--superficie);padding:clamp(22px,3vw,36px);border-radius:var(--r)}
.form .full{grid-column:1/-1}
.field{display:grid;gap:7px}
.field label{font-weight:700;font-size:.95rem}
.field input,.field select,.field textarea{font:400 1rem var(--sans);color:var(--texto);background:var(--fundo);border:1px solid rgba(242,239,238,.28);border-radius:var(--r);padding:13px 14px;width:100%;transition:border-color .2s}
.field input:hover,.field select:hover,.field textarea:hover{border-color:rgba(242,239,238,.5)}
.field input:focus,.field select:focus,.field textarea:focus{outline:none;border-color:var(--acento);box-shadow:0 0 0 3px rgba(241,106,113,.25)}
.field textarea{min-height:130px;resize:vertical}
.field .err{color:var(--acento);font-size:.88rem;min-height:1.2em}
.field [aria-invalid="true"]{border-color:var(--acento)}
.form .note{font-size:.9rem;color:var(--texto-2);margin:0}
input[type="date"]::-webkit-calendar-picker-indicator{filter:invert(.85)}
@media (max-width:640px){.form{grid-template-columns:1fr}}

/* Rodapé */
.site-footer{background:#0E0D0F;border-top:1px solid var(--linha);padding:56px 0 30px;font-size:.95rem}
.foot{display:grid;grid-template-columns:1.3fr 1fr 1fr 1fr;gap:32px}
.foot h2{font-family:var(--sans);font-size:.95rem;font-weight:900;letter-spacing:.02em;margin:0 0 12px}
.foot ul{list-style:none;margin:0;padding:0;display:grid;gap:0}
.foot a{text-decoration:none;color:var(--texto-2);display:inline-block;padding:6px 0;transition:color .2s}
.foot a:hover{color:var(--acento)}
.foot p{color:var(--texto-2)}
.legal{margin-top:40px;padding-top:22px;border-top:1px solid var(--linha);display:flex;flex-wrap:wrap;justify-content:space-between;gap:12px 24px;color:var(--texto-2);font-size:.88rem}
.legal a{color:var(--texto-2)}
.legal a:hover{color:var(--acento)}
@media (max-width:860px){.foot{grid-template-columns:1fr 1fr}}
@media (max-width:520px){.foot{grid-template-columns:1fr}}

/* Movimento: conteúdo visível sem JS; o reveal só entra com JS e sem reduced-motion */
@media (prefers-reduced-motion:no-preference){
  .js .reveal{opacity:0;transform:translateY(18px);transition:opacity .8s var(--ease),transform .8s var(--ease)}
  .js .reveal.in{opacity:1;transform:none}
}
@media (prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important}}
.section-first{padding-top:clamp(40px,4vw,56px)}
.skip:hover{color:#fff}

/* make-interfaces-feel-better */
.show figure,.space-view figure,.space-card figure,.gallery figure,.history figure,.event figure{outline:1px solid oklch(1 0 0 / .1);outline-offset:-1px}
time,.timeline b,.space-list button span:last-child{font-variant-numeric:tabular-nums}
.strip-ctrl button{transition:background-color .2s,border-color .2s,transform .15s var(--ease)}

/* hero: próximo espetáculo à direita do bloco do título */
.hero-wrap{position:relative}
.hero-next{position:absolute;right:clamp(18px,4vw,40px);top:40px;display:grid;grid-template-columns:96px 1fr;gap:18px;align-items:center;width:min(420px,34%);text-decoration:none;padding:14px;border-radius:calc(var(--r) + 6px);background:var(--superficie);transition:background-color .2s}
.hero-next:hover{background:var(--superficie-2);color:var(--texto)}
.hero-next img{width:96px;height:auto;border-radius:var(--r);outline:1px solid oklch(1 0 0 / .1);outline-offset:-1px}
.hero-next small{display:block;color:var(--texto-2);font-size:.85rem}
.hero-next b{display:block;font-family:var(--serif);font-size:1.12rem;line-height:1.3;margin:.2em 0}
.hero-next time{color:var(--acento);font-weight:700;font-size:.92rem}
@media (max-width:980px){.hero-next{display:none}}

/* Fase B · Detalhe */
.visit dd,.facts dd{overflow-wrap:anywhere}
.facts dd b{color:var(--texto);font-weight:700}
.hint{font-weight:400;color:var(--texto-2)}
.legal a{display:inline-block;padding:6px 0}
.crumbs a{display:inline-block;padding:6px 0}
h1,h2,h3{text-wrap:balance}
@media (max-width:420px){.visit dl,.facts{grid-template-columns:1fr;gap:2px 0}.visit dd,.facts dd{margin-bottom:12px}}
input[type="date"]{color-scheme:dark}
@media (max-width:860px){.cols{grid-template-columns:minmax(0,1fr)}}
@media (max-width:480px){.btn{white-space:normal;line-height:1.25;text-align:center}}
html{scroll-padding-top:96px}
@media (min-width:1200px){.timeline{grid-auto-columns:1fr}}
