/* ============ QFrio • Frost Minimal ============ */
/* Base / Tokens */
:root{
  --bg:#06131c;
  --bg-alt:#0b1e2d;
  --card:#0e2434;
  --text:#e6f2fa;
  --muted:#a8c0d2;
  --stroke:#173344;
  --brand:#3fb2ff;
  --brand-2:#8ad8ff;
  --shadow: 0 10px 30px rgba(0,0,0,.4);
}
@media (prefers-color-scheme: light){
  :root{
    --bg:#f8fbff; --bg-alt:#f2f7fc; --card:#ffffff; --text:#0a1b28;
    --muted:#577086; --stroke:#d6e2ec; --shadow:0 10px 30px rgba(16,45,69,.08);
  }
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  margin:0; font:400 16px/1.65 system-ui, -apple-system, Segoe UI, Roboto, Inter, "Helvetica Neue", Arial, sans-serif;
  color:var(--text); background:linear-gradient(180deg, var(--bg), var(--bg-alt));
  -webkit-font-smoothing:antialiased; text-rendering:optimizeLegibility;
}
img{max-width:100%; height:auto; display:block}
a{color:inherit; text-decoration:none}
a:hover{text-decoration:underline}
h1,h2,h3{line-height:1.15; margin:0 0 .5rem}
h1.display{font-size:clamp(32px, 5vw, 54px); letter-spacing:.2px}
h2{font-size:clamp(22px, 2.6vw, 32px)}
h3{font-size:clamp(18px, 2vw, 20px)}
p{margin:.25rem 0 1rem}

.container{width:min(1100px, 92%); margin-inline:auto}
.section{padding: clamp(48px, 10vw, 96px) 0}
.section.alt{background: linear-gradient(180deg, var(--bg-alt), var(--bg))}
.muted{color:var(--muted)}

.skip{position:absolute; left:-9999px; top:auto}
.skip:focus{left:1rem; top:1rem; background:var(--card); color:var(--text); padding:.5rem .75rem; border-radius:.5rem}

/* Header / Nav */
.site-header{position:sticky; top:0; z-index:50; backdrop-filter:saturate(120%) blur(8px);
  background:linear-gradient(180deg, rgba(6,19,28,.88), rgba(6,19,28,.66)); border-bottom:1px solid var(--stroke)}
.header-inner{display:flex; align-items:center; justify-content:space-between; gap:1rem; min-height:66px}
.brand img{filter: drop-shadow(0 4px 16px rgba(63,178,255,.18))}
.nav-menu{display:flex; gap:1rem; list-style:none; padding:0; margin:0}
.nav-menu a{padding:.45rem .7rem; border-radius:.5rem; border:1px solid transparent}
.nav-menu a:hover{background:rgba(255,255,255,.04); text-decoration:none}
.nav-menu .pill{border-color:var(--stroke)}
.nav-toggle{display:none; background:transparent; border:1px solid var(--stroke); color:var(--text); padding:.45rem .6rem; border-radius:.5rem}
.lang-switch{display:flex; gap:.35rem}
.lang-btn{border:1px solid var(--stroke); background:transparent; color:var(--text);
  padding:.35rem .55rem; border-radius:.5rem; cursor:pointer}
.lang-btn[aria-pressed="true"]{background:var(--brand); color:#001928; border-color:transparent}
@media (max-width: 900px){
  .nav-toggle{display:inline-block}
  .nav-menu{display:none; position:absolute; right:1rem; top:64px; background:var(--bg-alt); padding:.75rem;
    border:1px solid var(--stroke); border-radius:.75rem; flex-direction:column; box-shadow:var(--shadow)}
  .nav-menu.open{display:flex}
}

/* Hero */
.hero{position:relative; min-height:64svh; display:grid; place-items:center; text-align:center}
.hero-bg{position:absolute; inset:0; background:
  radial-gradient(60% 80% at 20% 10%, rgba(63,178,255,.25), transparent 60%),
  radial-gradient(50% 70% at 80% 20%, rgba(138,216,255,.18), transparent 60%),
  linear-gradient(180deg, #0b1e2d, #091a26);
  mask: linear-gradient(180deg, #000 60%, transparent);
}
.hero-content{position:relative}
.lead{color:var(--muted); max-width:60ch; margin-inline:auto}
.gradient{background:linear-gradient(90deg, var(--brand), var(--brand-2)); -webkit-background-clip:text; background-clip:text; color:transparent}
.hero-cta{margin-top:1rem; display:flex; gap:.75rem; justify-content:center}

/* Buttons */
.btn{display:inline-block; padding:.7rem 1rem; border-radius:.75rem; font-weight:600; border:1px solid var(--stroke)}
.btn.primary{background:var(--brand); color:#001928; border-color:transparent}
.btn.secundary{background:var(--brand-2); color:#001928; border-color:#3fb2ff}
.btn.ghost{background:transparent}

/* Cards */
.cards{list-style:none; display:grid; grid-template-columns:repeat(3, minmax(0,1fr)); gap:1rem; padding:0; margin:0}
.card{background:var(--card); border:1px solid var(--stroke); padding:1rem; border-radius:1rem; box-shadow:var(--shadow)}
.card h3{margin-top:0}
.mini{margin:.5rem 0 0 0; padding-left:1.1rem; color:var(--muted)}
@media (max-width: 900px){.cards{grid-template-columns:1fr}}

/* Features */
.features{gap:1rem}
.grid{display:grid; gap:2rem}
.grid.two{grid-template-columns:repeat(2, minmax(0,1fr))}
.grid.three{grid-template-columns:repeat(3, minmax(0,1fr))}
@media (max-width: 1100px){.grid.three{grid-template-columns:repeat(2, 1fr)}}
@media (max-width: 900px){
  .grid.two{grid-template-columns:1fr}
  .grid.three{grid-template-columns:1fr}
  .nav-toggle{display:inline-block}
}
.feature{background:var(--card); border:1px solid var(--stroke); padding:1rem; border-radius:1rem; box-shadow:var(--shadow)}
.feature h3{margin-top:0}

/* Logos */
.logo-grid{display:grid; grid-template-columns:repeat(6, minmax(0,1fr)); gap:1rem}
.logo-skel{aspect-ratio:3/2; display:grid; place-items:center; color:var(--muted); border:1px dashed var(--stroke); border-radius:.75rem}
@media (max-width: 1100px){.logo-grid{grid-template-columns:repeat(3, 1fr)}}
@media (max-width: 600px){.logo-grid{grid-template-columns:repeat(2, 1fr)}}

/* Contacto */
.contact-list{list-style:none; padding:0; margin:0 0 1rem 0}
.contact-list li{margin:.25rem 0}
.contact-form{display:grid; gap:.75rem}
.contact-form label{display:grid; gap:.35rem}
.contact-form input, .contact-form textarea{
  background:#0c2030; color:var(--text); border:1px solid var(--stroke);
  border-radius:.6rem; padding:.65rem .75rem;
}
.form-actions{display:flex; gap:.5rem; flex-wrap:wrap}
.form-note{color:var(--muted); font-size:.9rem}

/* Footer */
.site-footer{border-top:1px solid var(--stroke); padding:1rem 0; background:linear-gradient(180deg, #0a1b28, #0b1e2d)}
.footer-inner{display:flex; align-items:center; justify-content:space-between}
.to-top{background:transparent; border:1px solid var(--stroke); padding:.3rem .6rem; border-radius:.5rem}

/* Reveal on scroll */
.reveal{opacity:0; transform:translateY(14px); transition:opacity .5s ease, transform .5s ease}
.reveal.in{opacity:1; transform:none}

/* === NAVBAR — CONTRASTE REFORÇADO === */
:root{
  --nav-bg: rgba(6,19,28,.96);
  --nav-link: #ffffff;
  --nav-hover-bg: rgba(255,255,255,.14);
  --nav-border: #173344;
}
@media (prefers-color-scheme: light){
  :root{
    --nav-bg: rgba(255,255,255,.96);
    --nav-link: #0a1b28;
    --nav-hover-bg: rgba(10,27,40,.10);
    --nav-border: #d8e4ee;
  }
}
.site-header{ background: var(--nav-bg) !important; border-bottom: 1px solid var(--nav-border) !important; }
.nav-menu a{ color: var(--nav-link) !important; font-weight: 600; text-shadow: 0 1px 0 rgba(0,0,0,.25); border: 1px solid transparent; }
.nav-menu a:hover,.nav-menu a:focus-visible{ background: var(--nav-hover-bg) !important; text-decoration: none; outline: none; box-shadow: 0 0 0 2px rgba(255,255,255,.12) inset; }
.nav-menu .pill{ background: var(--brand) !important; color:#001928 !important; border-color: transparent !important; text-shadow: none; }
.nav-toggle{ color: var(--nav-link) !important; border-color: var(--nav-border) !important; }
@media (max-width: 900px){
  .nav-menu{ background: var(--nav-bg) !important; border-color: var(--nav-border) !important; }
}

/* === GALERIA POR SERVIÇOS (one-page) === */
.gallery-tabs{display:flex; flex-wrap:wrap; gap:.5rem; margin:1rem 0 1.25rem}
.gallery-tabs .tab{
  appearance:none; border:1px solid var(--stroke); background:var(--card); color:var(--text);
  padding:.55rem .8rem; border-radius:.65rem; cursor:pointer; font-weight:600;
}
.gallery-tabs .tab[aria-selected="true"]{
  background:var(--brand); color:#001928; border-color:transparent;
}
.gallery-grid{
  display:grid; grid-template-columns: repeat(auto-fill, minmax(220px,1fr)); gap:.75rem;
}
.gallery-item{
  display:block; position:relative; overflow:hidden; border-radius:.75rem;
  border:1px solid var(--stroke); background:var(--card); aspect-ratio: 4/3;
}
.gallery-item img{
  width:100%; height:100%; object-fit:cover; transition: transform .35s ease, opacity .35s ease;
}
.gallery-item:hover img{ transform: scale(1.03); opacity:.96; }

/* Lightbox */
.lightbox{
  position:fixed; inset:0; background:rgba(0,0,0,.85);
  display:flex; align-items:center; justify-content:center;
  opacity:0; pointer-events:none; transition:opacity .25s ease; z-index:1000;
}
.lightbox.open{opacity:1; pointer-events:auto;}
.lightbox img{max-width:92vw; max-height:86vh; border-radius:.5rem; box-shadow:0 20px 60px rgba(0,0,0,.6)}
.lightbox-close{
  position:absolute; top:1rem; right:1rem; border:1px solid var(--stroke); background:var(--card);
  color:var(--text); border-radius:.5rem; padding:.35rem .6rem; font-size:1.25rem; cursor:pointer;
}

/* ===== Footer fixo visível ===== */
.fixed-footer {
  position: fixed;
  bottom: 0;
  left: 0;
  width: 100%;
  background: rgba(0, 0, 0, 0.7); /* leve transparência para sobressair */
  color: #fff;
  text-shadow: 0 0 6px rgba(140, 185, 255, 0.9); /* azul pérola */
  padding: 10px 0;
  font-size: 0.95rem;
  z-index: 9999;
}

.fixed-footer .container {
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
}

.fixed-footer a {
  color: #eaf3ff; /* azul-pérola claro */
  text-decoration: none;
  transition: color 0.3s;
}

.fixed-footer a:hover {
  color: #7dbfff;
  text-shadow: 0 0 8px rgba(173, 216, 255, 0.8);
}

.fixed-footer .footer-links {
  margin: 5px 0;
}

.fixed-footer .footer-links span {
  margin: 0 5px;
  opacity: 0.6;
}

.fixed-footer .footer-company {
  font-size: 0.8rem;
  opacity: 0.9;
}

.fixed-footer address {
  font-style: normal;
  line-height: 1.4;
}

.linklike {
  background: none;
  border: none;
  padding: 0;
  color: inherit;
  font: inherit;
  cursor: pointer;
  text-decoration: underline;
}

/* ===== Páginas Legais (mantém visual do site) ===== */
.legal-page { padding: clamp(48px, 8vw, 96px) 0; }
.legal-card {
  background: var(--card);
  border: 1px solid var(--stroke);
  border-radius: 1rem;
  box-shadow: var(--shadow);
  padding: clamp(18px, 3vw, 28px);
}
.legal-card h1 { margin-top: 0; }
.legal-card h2 { margin: 1.25rem 0 .5rem; }
.legal-card ul { margin: .5rem 0 1rem 1.2rem; }

/* ===== Modal de Gestão de Cookies ===== */
.cookie-modal {
  position: fixed; inset: 0;
  background: rgba(0,0,0,.6);
  display: none; align-items: center; justify-content: center;
  z-index: 10000; /* acima do footer fixo */
}
.cookie-modal.open { display: flex; }
.cookie-modal .box {
  width: min(720px, 92%);
  background: var(--card);
  color: var(--text);
  border: 1px solid var(--stroke);
  border-radius: 1rem;
  box-shadow: var(--shadow);
  padding: 1rem;
}
.cookie-modal .box h3 { margin: .2rem 0 .5rem; }
.cookie-modal .actions { display: flex; gap: .5rem; flex-wrap: wrap; margin-top: .75rem; }
.cookie-modal .btn { cursor: pointer; }
