/* =====================================================================
   base.css — fundamentos comúns a toda a web
   Tokens, reset, loader, visor (fotos, PDF, DOCX, vídeo), menú e pé.
   O contido e a cabeceira están en site.css.
   ===================================================================== */

/* ---------- Tokens ---------- */
:root{
  color-scheme:light;
  --bg:#fff;--soft:#f6f6f4;--line:#d9d9d5;--gold:#a58a57;
  --ink:#111;--ink-2:#222;--ink-3:#333;
  --muted:#777;--muted-2:#555;--muted-3:#666;--muted-4:#888;--muted-5:#999;
  --max:1280px;
  --pad:clamp(18px,3.2vw,46px);
  --media-radius:4px;--media-radius-small:3px;
  --media-shadow:0 8px 24px rgba(24,22,18,.065),0 1px 3px rgba(24,22,18,.055);
  --media-shadow-small:0 4px 12px rgba(24,22,18,.07),0 1px 2px rgba(24,22,18,.045);
}
:root[data-theme="dark"]{
  color-scheme:dark;
  --bg:#191917;--soft:#242320;--line:#33332f;
  --ink:#ededea;--ink-2:#dcdcd7;--ink-3:#cfcfc9;
  --muted:#9a9a94;--muted-2:#b3b3ac;--muted-3:#a8a8a2;--muted-4:#97978f;--muted-5:#85857f;
  --media-shadow:0 9px 28px rgba(0,0,0,.27),0 0 0 1px rgba(255,255,255,.035);
  --media-shadow-small:0 5px 16px rgba(0,0,0,.24),0 0 0 1px rgba(255,255,255,.03);
}
@media(max-width:760px){:root{--pad:20px}}
@media(max-width:700px){:root{--media-radius:3px;--media-radius-small:2px}}

/* ---------- Reset ---------- */
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--bg);color:var(--ink);font-family:"Montserrat",Arial,sans-serif;font-weight:400;line-height:1.5;-webkit-font-smoothing:antialiased}
a{color:inherit;text-decoration:none}
button{font:inherit}
img{max-width:100%;display:block}
.shell{width:min(var(--max),100%);margin:auto;padding-inline:var(--pad)}
:where(.strip img){border-radius:var(--media-radius);box-shadow:var(--media-shadow)}

/* ---------- Loader ---------- */
.site-loader{position:fixed;inset:0;z-index:1200;display:grid;place-items:center;background:rgba(250,250,248,.975);opacity:0;visibility:hidden;pointer-events:none;transition:opacity .24s ease,visibility .24s ease}
.site-loader.is-visible{opacity:1;visibility:visible;pointer-events:auto}
.site-loader-inner{width:232px;display:grid;justify-items:center;gap:42px}
.site-loader-mark{width:136px;height:136px;object-fit:contain;opacity:.78;animation:loaderMark 1.9s ease-in-out infinite}
.site-loader-line{position:relative;width:160px;height:1px;overflow:hidden;background:#ddddda}
.site-loader-line span{position:absolute;top:0;left:-54px;width:54px;height:1px;background:#333;animation:loaderLine 1.45s cubic-bezier(.45,0,.55,1) infinite}
@keyframes loaderMark{0%,100%{opacity:.44}50%{opacity:.92}}
@keyframes loaderLine{0%{transform:translateX(0)}100%{transform:translateX(268px)}}
:root[data-theme="dark"] .site-loader{background:rgba(25,25,23,.98)}
:root[data-theme="dark"] .site-loader-mark{filter:invert(1)}

/* ---------- Visor ---------- */
.viewer{position:fixed;inset:0;z-index:1000;visibility:hidden;opacity:0;pointer-events:none;background:rgba(255,255,255,.76);-webkit-backdrop-filter:blur(22px) saturate(.86);backdrop-filter:blur(22px) saturate(.86);transition:opacity .46s ease,visibility .46s}
.viewer.open{visibility:visible;opacity:1;pointer-events:auto}
.viewer-bar{position:absolute;top:0;left:0;right:0;z-index:4;height:66px;display:flex;align-items:center;justify-content:space-between;padding:0 clamp(16px,4vw,44px);background:linear-gradient(to bottom,rgba(255,255,255,.84),rgba(255,255,255,.34));-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);border-bottom:1px solid rgba(0,0,0,.045)}
.viewer-title{display:flex;align-items:baseline;gap:14px;min-width:0}
.viewer-kind{display:grid;place-items:center;text-transform:uppercase;letter-spacing:.14em;font-size:.54rem;font-weight:500;color:var(--accent,var(--gold));white-space:nowrap}
.viewer-title h5{margin:0;font-weight:300;font-size:.95rem;letter-spacing:-.01em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:54vw}
.viewer-tools{display:flex;align-items:center;gap:3px}
.viewer-btn{border:0;background:none;color:var(--ink);cursor:pointer;min-width:38px;height:38px;display:flex;align-items:center;justify-content:center;border-radius:50%;font-size:.96rem;transition:background .18s}
.viewer-btn:hover{background:rgba(0,0,0,.055)}
.viewer-btn.wide{width:auto;padding:0 12px;font-size:.58rem;text-transform:uppercase;letter-spacing:.11em;font-weight:500}
.viewer-stage{position:absolute;inset:66px 0 0;display:flex;align-items:center;justify-content:center;overflow:auto;padding:clamp(14px,3vw,40px);transition:left .22s ease,bottom .22s ease}
.viewer-content{animation:viewerIn .58s cubic-bezier(.22,.61,.36,1) both}
@keyframes viewerIn{from{opacity:0;transform:scale(.945);filter:blur(3px)}to{opacity:1;transform:scale(1);filter:blur(0)}}
.viewer-nav{position:absolute;top:50%;transform:translateY(-50%);z-index:5;width:46px;height:46px;border-radius:50%;border:1px solid var(--line);background:rgba(255,255,255,.55);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);color:var(--ink);cursor:pointer;font-size:1.12rem;display:none;align-items:center;justify-content:center}
.viewer-nav.prev{left:clamp(10px,2.5vw,30px)}
.viewer-nav.next{right:clamp(10px,2.5vw,30px)}
.viewer-nav[disabled]{opacity:.25;cursor:default}
.viewer-img{max-width:100%;max-height:100%;object-fit:contain;border-radius:var(--media-radius);box-shadow:0 18px 55px rgba(0,0,0,.12);transition:transform .22s cubic-bezier(.22,.61,.36,1);transform-origin:center;cursor:zoom-in}
.viewer-video{max-width:min(1120px,100%);max-height:100%;background:#000;border-radius:var(--media-radius);box-shadow:0 18px 55px rgba(0,0,0,.14)}
.viewer-video.vertical{width:auto;height:min(82vh,900px);max-width:100%}
.viewer-pdf-scroll{width:100%;height:100%;overflow:auto;display:flex;flex-direction:column;align-items:center;gap:20px;padding:4px 0 40px}
.viewer-pdf-scroll canvas{background:var(--bg);max-width:100%;height:auto;border-radius:var(--media-radius);box-shadow:var(--media-shadow-small)}
.viewer-docx{width:min(820px,100%);height:100%;overflow:auto;background:rgba(255,255,255,.88);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);border:1px solid rgba(0,0,0,.08);box-shadow:0 18px 55px rgba(0,0,0,.08);padding:clamp(30px,5vw,68px);line-height:1.75}
.viewer-docx h1,.viewer-docx h2,.viewer-docx h3{font-weight:300;letter-spacing:-.02em;line-height:1.18}
.viewer-docx p{font-size:.94rem;color:var(--ink-3)}
.viewer-docx img{margin:1.1em auto;max-width:100%;border-radius:var(--media-radius);box-shadow:var(--media-shadow-small)}
.viewer-docx table{border-collapse:collapse;width:100%;font-size:.84rem}
.viewer-docx td,.viewer-docx th{border:1px solid var(--line);padding:8px 10px;text-align:left}
.viewer-loading{text-transform:uppercase;letter-spacing:.15em;font-size:.6rem;color:var(--muted-4)}
.viewer-error{max-width:520px;text-align:center;color:var(--muted-3);font-size:.9rem}
.viewer-error a{display:grid;place-items:center;width:34px;height:34px;margin:18px auto 0;color:var(--ink)}
/* Miniaturas (columna á esquerda; fila inferior no móbil) */
.viewer-thumbs{position:absolute;z-index:4;top:66px;left:0;bottom:0;width:96px;padding:12px 10px 20px;display:flex;flex-direction:column;gap:8px;overflow-y:auto;background:rgba(255,255,255,.62);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);border-right:1px solid rgba(0,0,0,.06);opacity:0;visibility:hidden;pointer-events:none;transform:translateX(-8px);transition:opacity .2s ease,visibility .2s ease,transform .2s ease}
.viewer.has-thumbs .viewer-thumbs{opacity:1;visibility:visible;pointer-events:auto;transform:translateX(0)}
.viewer.has-thumbs .viewer-stage{left:96px}
.viewer.has-thumbs .viewer-nav.prev{left:106px}
.viewer.has-thumbs .viewer-img{max-width:calc(100% - 12px)}
.viewer-thumb{appearance:none;width:74px;min-height:56px;padding:0;border:1px solid rgba(0,0,0,.08);border-radius:var(--media-radius-small);background:rgba(255,255,255,.52);box-shadow:var(--media-shadow-small);cursor:pointer;overflow:hidden;opacity:.58;transition:opacity .16s ease,border-color .16s ease,transform .16s ease}
.viewer-thumb:hover{opacity:.88;transform:translateY(-1px)}
.viewer-thumb.active{opacity:1;border-color:currentColor}
.viewer-thumb img{display:block;width:100%;height:56px;object-fit:cover;border-radius:inherit}
@media(max-width:720px){
  .viewer-thumbs{top:auto;left:0;right:0;bottom:0;width:auto;height:92px;padding:9px 12px;flex-direction:row;overflow-x:auto;overflow-y:hidden;border-right:0;border-top:1px solid rgba(0,0,0,.06);transform:translateY(8px)}
  .viewer.has-thumbs .viewer-thumbs{transform:translateY(0)}
  .viewer.has-thumbs .viewer-stage{left:0;bottom:92px}
  .viewer.has-thumbs .viewer-nav.prev{left:10px}
  .viewer-thumb{flex:0 0 68px;width:68px;min-height:54px}
  .viewer-thumb img{height:54px}
}
@media(max-width:620px){
  .viewer-title h5{max-width:40vw}
  .viewer-btn.wide{display:none}
  .viewer-nav{width:40px;height:40px}
  .viewer-stage{padding:14px}
  .viewer-video.vertical{height:auto;max-height:100%;width:auto}
}
:root[data-theme="dark"] .viewer{background:rgba(25,25,23,.82);color:var(--ink)}
:root[data-theme="dark"] .viewer-bar{background:linear-gradient(to bottom,rgba(25,25,23,.82),rgba(25,25,23,.12))}
:root[data-theme="dark"] .viewer-btn,:root[data-theme="dark"] .viewer-nav{color:var(--ink);background:rgba(35,35,32,.65)}
:root[data-theme="dark"] .viewer-docx{background:rgba(35,35,32,.92);border-color:var(--line)}
:root[data-theme="dark"] .viewer-error,:root[data-theme="dark"] .viewer-docx p{color:#c0c0ba}
:root[data-theme="dark"] .viewer-thumbs{background:rgba(25,25,23,.72);border-color:var(--line)}
:root[data-theme="dark"] .viewer-thumb{background:rgba(35,35,32,.7);border-color:var(--line)}
:root[data-theme="dark"] .viewer-thumb.active{border-color:rgba(255,255,255,.72)}

/* ---------- Menú a pantalla completa (o deseño do contido, en site.css) ---------- */
.overlay{position:fixed;inset:0;z-index:900;overflow:auto;padding:24px var(--pad) 48px;background:rgba(250,250,248,.88);-webkit-backdrop-filter:blur(25px) saturate(.8);backdrop-filter:blur(25px) saturate(.8);color:var(--ink);transform:scale(.965);transform-origin:center 8vh;opacity:0;visibility:hidden;pointer-events:none;transition:opacity .46s ease,transform .58s cubic-bezier(.22,.61,.36,1),visibility .46s}
.overlay.open{transform:scale(1);opacity:1;visibility:visible;pointer-events:auto}
:root[data-theme="dark"] .overlay{background:rgba(25,25,23,.92)}

/* ---------- Pé ---------- */
.footer{padding:18px 0 28px;border-top:1px solid var(--line)}
.footer-top{padding-top:30px;display:grid;grid-template-columns:150px 1fr;gap:38px}
.footer-logo img{width:108px}
:root[data-theme="dark"] .footer-logo img{filter:invert(1)}
.footer-cols{display:grid;grid-template-columns:repeat(4,1fr);gap:26px}
.footer-col h4{margin:0 0 15px;font-size:.8125rem;font-weight:800;letter-spacing:.1em;text-transform:uppercase;color:var(--ink)}
.footer-col a{display:block;margin:8px 0;font-size:1rem;color:var(--muted-3);cursor:pointer}
.footer-bottom{display:flex;justify-content:space-between;gap:20px;margin-top:38px;padding-top:18px;border-top:1px solid var(--line);font-size:.8125rem;color:var(--muted-4)}
@media(max-width:1000px){.footer-cols{grid-template-columns:1fr 1fr}}
/* No móbil o logotipo vai enriba e as columnas, de dúas en dúas: sen columna baleira á esquerda */
@media(max-width:760px){.footer-top{grid-template-columns:1fr;gap:24px}.footer-logo img{width:76px}}
@media(max-width:340px){.footer-cols{grid-template-columns:1fr}}
@media(max-width:620px){.footer-bottom{flex-direction:column}}

@media(prefers-reduced-motion:reduce){
  *{scroll-behavior:auto!important}
  .viewer-content{animation:none!important}
  .viewer,.overlay,.viewer-img{transition:none!important}
  .site-loader-mark,.site-loader-line span{animation:none}
}
