:root{
  --verde:#8CBF26;
  --amarelo:#FFD200;
  --ambar:#F5A800;
  --fondo:#0F1317;
  --superficie:#161B21;
  --liña:#242C34;
  --texto:#E8EEF3;
  --texto-suave:#95A3AF;
  --display:"Archivo",system-ui,sans-serif;
  --corpo:"Inter",system-ui,sans-serif;
  --mono:"IBM Plex Mono",monospace;
  --nav-h:110px;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:calc(var(--nav-h) + 12px)}
body{margin:0;background:var(--fondo);color:var(--texto);font-family:var(--corpo);line-height:1.65;-webkit-font-smoothing:antialiased}
img{max-width:100%;display:block}
a{color:inherit;text-decoration:none}
.wrap{width:min(1200px,92vw);margin-inline:auto}
.eyebrow{font-family:var(--mono);font-size:.72rem;letter-spacing:.22em;text-transform:uppercase;color:var(--verde);margin:0 0 .9rem}
h1,h2,h3{font-family:var(--display);font-weight:800;line-height:1.1;letter-spacing:-.02em;margin:0}
h2{font-size:clamp(1.9rem,3.6vw,2.9rem)}
h3{font-size:1.15rem;font-weight:600;letter-spacing:-.01em}
p{margin:0 0 1rem}
.suave{color:var(--texto-suave)}

/* ---------- Menú superior ---------- */
header{position:sticky;top:0;z-index:60;background:rgba(15,19,23,.9);backdrop-filter:blur(12px);border-bottom:1px solid var(--liña)}
.nav{min-height:var(--nav-h);display:grid;grid-template-columns:1fr auto 1fr;align-items:center;column-gap:2.9rem}
.nav ul.grupo{list-style:none;display:flex;align-items:center;gap:2.5rem;margin:0;padding:0}
.nav ul.esquerda{justify-content:flex-end}
.nav ul.dereita{justify-content:flex-start}
.nav a.link{font-size:.94rem;font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:var(--texto-suave);padding:.45rem 0;position:relative;display:inline-block;transition:color .2s}
.nav a.link::after{content:"";position:absolute;left:0;right:100%;bottom:0;height:2px;background:linear-gradient(90deg,var(--verde),var(--amarelo));transition:right .25s}
.nav a.link:hover,.nav a.link:focus-visible,.nav a.link.activo{color:var(--texto)}
.nav a.link:hover::after,.nav a.link:focus-visible::after,.nav a.link.activo::after{right:0}
.marca img{height:83px;width:auto}

/* submenú de servizos */
.ten-sub{position:relative}
.nav ul.sub{
  position:absolute;top:calc(100% + .6rem);left:50%;transform:translateX(-50%) translateY(-6px);
  min-width:275px;background:var(--superficie);border:1px solid var(--liña);border-radius:10px;
  padding:.5rem;flex-direction:column;align-items:stretch;gap:.15rem;
  box-shadow:0 20px 40px rgba(0,0,0,.5);
  opacity:0;visibility:hidden;pointer-events:none;transition:opacity .2s,transform .2s,visibility .2s;
}
.ten-sub:hover > ul.sub,.ten-sub:focus-within > ul.sub{opacity:1;visibility:visible;pointer-events:auto;transform:translateX(-50%) translateY(0)}
.nav ul.sub a{display:block;padding:.7rem .9rem;border-radius:7px;font-size:1rem;color:var(--texto-suave);transition:.2s}
.nav ul.sub a:hover,.nav ul.sub a:focus-visible{background:#1D242B;color:var(--texto)}
.ten-sub > a::before{content:"";position:absolute;left:0;right:0;top:100%;height:.7rem}

.hamburguesa{display:none;background:none;border:1px solid var(--liña);border-radius:8px;color:var(--texto);padding:.5rem .7rem;font-size:1rem;cursor:pointer;justify-self:end}

/* ---------- Botóns ---------- */
.btn{display:inline-block;padding:.85rem 1.6rem;border-radius:6px;font-weight:600;font-size:.9rem;letter-spacing:.04em;border:0;cursor:pointer;font-family:var(--corpo);transition:transform .18s,box-shadow .18s,border-color .2s,color .2s}
.btn-principal{background:linear-gradient(100deg,var(--verde),var(--amarelo));color:#12170D}
.btn-principal:hover{transform:translateY(-2px);box-shadow:0 12px 26px rgba(140,191,38,.28)}
.btn-fantasma{border:1px solid var(--liña);color:var(--texto);background:transparent}
.btn-fantasma:hover{border-color:var(--verde);color:var(--verde)}

/* ---------- Portada ---------- */
.portada{position:relative;min-height:min(74vh,600px);display:flex;align-items:center;overflow:hidden;border-bottom:1px solid var(--liña)}
.portada .fondo{position:absolute;inset:0;background:url("img/imaxe_fondo.jpg") center/cover no-repeat}
.portada .veo{display:none}
.portada .wrap{position:relative;padding:5rem 0}
.portada h1{font-size:clamp(2.3rem,5.6vw,4.2rem);max-width:16ch}
.portada h1 em{font-style:normal;background:linear-gradient(100deg,var(--verde),var(--amarelo));-webkit-background-clip:text;background-clip:text;color:transparent}
/* Só o parágrafo leva sombra: é o texto máis fino e o que cae sobre a zona clara da foto */
.portada p{max-width:52ch;margin-top:1.4rem;font-size:1.06rem;color:#C3CDD6;
   text-shadow:0 2px 14px rgba(0,0,0,.85),0 1px 3px rgba(0,0,0,.7)}
.accions{display:flex;flex-wrap:wrap;gap:.9rem;margin-top:2.2rem}

/* cabeceira simple para páxinas internas */
.cabeceira-paxina{border-bottom:1px solid var(--liña);background:var(--superficie);padding:4rem 0 3.2rem}
.cabeceira-paxina h1{font-size:clamp(2rem,4.5vw,3.2rem)}
.cabeceira-paxina p{max-width:60ch;margin-top:1rem;color:var(--texto-suave)}

/* ---------- Seccións ---------- */
section{padding:5.5rem 0}
.cabeceira{max-width:62ch;margin-bottom:3rem}

.grella{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:1.4rem}
.tarxeta{background:var(--superficie);border:1px solid var(--liña);border-radius:12px;padding:1.8rem;position:relative;overflow:hidden;transition:border-color .25s,transform .25s}
.tarxeta::before{content:"";position:absolute;inset:0 0 auto 0;height:3px;background:linear-gradient(90deg,var(--verde),var(--amarelo));transform:scaleX(0);transform-origin:left;transition:transform .3s}
.tarxeta:hover{transform:translateY(-4px);border-color:#31404C}
.tarxeta:hover::before{transform:scaleX(1)}
.tarxeta .icona{width:38px;height:38px;margin-bottom:1.1rem}
.tarxeta p{color:var(--texto-suave);font-size:.95rem;margin:.7rem 0 0}

/* servizo detallado */
.bloque-servizo{display:grid;grid-template-columns:auto 1fr;gap:2rem;padding:2.5rem 0;border-top:1px solid var(--liña)}
.bloque-servizo .icona{width:52px;height:52px}
.bloque-servizo ul{margin:1rem 0 0;padding-left:1.1rem;color:var(--texto-suave);font-size:.95rem}
.bloque-servizo li{margin-bottom:.4rem}

/* ferramentas */
.ferramentas-lista{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:1.2rem}
.ferramenta{display:flex;gap:1rem;align-items:flex-start;padding:1.4rem;border:1px solid var(--liña);border-radius:10px;background:var(--superficie);transition:border-color .25s,transform .25s}
.ferramenta:hover{border-color:var(--verde);transform:translateY(-3px)}
.ferramenta .num{font-family:var(--mono);font-size:.75rem;color:var(--amarelo);padding-top:.3rem}
.ferramenta p{color:var(--texto-suave);font-size:.9rem;margin:.35rem 0 0}

/* texto legal */
.texto-legal{max-width:68ch}
.texto-legal h2{font-size:1.05rem;font-weight:600;letter-spacing:0;margin:2.2rem 0 .6rem;color:var(--amarelo)}
.texto-legal h2:first-child{margin-top:0}
.texto-legal p{color:var(--texto-suave);font-size:.95rem}

/* galería de traballos */
.galeria-seccion{background:var(--superficie);border-top:1px solid var(--liña)}
.galeria{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:1.2rem}
.galeria figure{margin:0;border:1px solid var(--liña);border-radius:12px;overflow:hidden;background:var(--fondo);transition:border-color .25s,transform .25s}
.galeria figure:hover{border-color:#31404C;transform:translateY(-4px)}
.galeria img{width:100%;aspect-ratio:4/3;object-fit:cover;object-position:center;background:#fff}
.galeria figcaption{padding:1rem 1.1rem 1.2rem;font-size:.85rem;color:var(--texto-suave);line-height:1.55}
.galeria figcaption b{display:block;font-family:var(--display);font-size:.95rem;font-weight:600;color:var(--texto);margin-bottom:.25rem}

/* contacto */
#contacto{background:var(--superficie);border-top:1px solid var(--liña)}
.contacto{display:grid;grid-template-columns:1.1fr .9fr;gap:3rem}
.campo{margin-bottom:1.1rem}
label{display:block;font-family:var(--mono);font-size:.7rem;letter-spacing:.14em;text-transform:uppercase;color:var(--texto-suave);margin-bottom:.45rem}
input,textarea{width:100%;background:var(--fondo);border:1px solid var(--liña);border-radius:8px;padding:.8rem .9rem;color:var(--texto);font:inherit;font-size:.95rem}
input:focus,textarea:focus{outline:2px solid var(--verde);outline-offset:1px;border-color:transparent}
textarea{min-height:140px;resize:vertical}
.aviso-formulario{margin:.9rem 0 0;font-size:.8rem;color:var(--texto-suave);line-height:1.5}
.aviso-formulario.alerta{color:var(--ambar)}
.datos-contacto p{font-size:.95rem}
.datos-contacto strong{display:block;font-family:var(--mono);font-size:.7rem;letter-spacing:.14em;text-transform:uppercase;color:var(--verde);margin-bottom:.2rem}

footer{border-top:1px solid var(--liña);padding:2.5rem 0;font-size:.85rem;color:var(--texto-suave)}
footer .wrap{display:flex;flex-wrap:wrap;gap:1rem;justify-content:space-between;align-items:center}

:focus-visible{outline:2px solid var(--amarelo);outline-offset:3px}

@media (max-width:900px){
  .contacto{grid-template-columns:1fr}
  .bloque-servizo{grid-template-columns:1fr;gap:1rem}
}
@media (max-width:860px){
  :root{--nav-h:88px}
  .marca img{height:60px}
  .nav{grid-template-columns:1fr auto 1fr}
  .nav ul.esquerda{grid-column:1;justify-content:flex-start}
  .nav ul.grupo{display:none}
  .hamburguesa{display:block;grid-column:3}
  .nav.menu-aberto ul.grupo{display:flex;flex-direction:column;align-items:flex-start;gap:.5rem;grid-column:1/-1;width:100%;padding:.5rem 0 0}
  .nav.menu-aberto{padding-bottom:1.2rem}
  .nav.menu-aberto ul.sub{position:static;transform:none;opacity:1;visibility:visible;pointer-events:auto;border:none;box-shadow:none;background:transparent;padding:.3rem 0 .3rem .6rem;min-width:0}
}
@media (prefers-reduced-motion:reduce){*{transition:none!important;scroll-behavior:auto}}
