/* nuvola.cat / nuvola.ad */
:root{
  --bg:#0e0f0f;          /* fondo general (secciones «Y») */
  --bg2:#101111;         /* secciones alternas («X») */
  --card:#171818;        /* tarjetas */
  --card2:#1c1d1d;
  --line:rgba(255,255,255,.08);
  --line2:rgba(255,255,255,.14);
  --txt:#9d9d99;         /* texto corriente */
  --mid:#9d9d99;         /* parte apagada de los títulos */
  --hi:#f1f0ec;          /* títulos */
  --cream:#e9e6d6;
  --grad:linear-gradient(to right,#c9c8c3 0%,#f1f0ec 100%);
  --grad2:var(--grad);
  --radius:22px;
  --wrap:1120px;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:90px}
body{overflow-x:clip;margin:0;background:var(--bg);color:var(--txt);font:400 17px/1.7 Lato,system-ui,-apple-system,"Segoe UI",sans-serif;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}
img{max-width:100%;height:auto}
a{color:inherit}
/* Base tipográfica */
h1,h2,h3,h4,h5,h6{font-family:"Inter Tight",system-ui,sans-serif;font-weight:400;margin:0 0 1rem;color:var(--hi);line-height:1.2;letter-spacing:-.02em}
h1{font-size:3.444em;line-height:1.1}h2{font-size:2.667em}h3{font-size:2em}h4{font-size:1.667em;line-height:1.4}h5{font-size:1.333em}h6{font-size:1em;font-weight:500}
ul li{margin-bottom:10px}
.nvc .btn{line-height:1.5}
p{margin:0 0 14px}
dl,ol,ul{margin-top:0;margin-bottom:1rem}
.nv-wrap{max-width:var(--wrap);margin:0 auto;padding:0 20px;position:relative}
.nv-sec{padding:56px 0 64px}
.nv-sec.nv-alt{background:var(--bg2)}
.nv-t{font-size:48px;line-height:1.08;margin:0 0 36px}
.nv-t.nv-dim{color:var(--hi)}
.nv-grad{background:var(--grad2);-webkit-background-clip:text;background-clip:text;color:transparent}

/* botones */
.nv-btn{display:inline-flex;align-items:center;gap:10px;padding:14px 26px;border-radius:99px;font:700 15px/1.2 Lato,sans-serif;text-decoration:none;border:0;cursor:pointer;transition:.2s}
.nv-btn.nv-pri{color:#111;background:var(--cream)}
.nv-btn.nv-pri:hover{background:#fff}
.nv-btn.nv-sec2{color:var(--hi);border:1px solid var(--line2);background:transparent}
.nv-btn.nv-sec2:hover{border-color:var(--mid)}
.nv-mail{display:inline-flex;align-items:center;gap:12px;color:var(--hi);text-decoration:none;font:400 16px Lato,sans-serif}
.nv-mail svg{width:22px;height:22px;stroke:var(--mut,#9d9d99);fill:none}

/* cabecera (mismo diseño que plus.nuvola.cat) */
.hdr{position:sticky;top:0;z-index:100;background:rgba(14,15,15,.85);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);border-bottom:1px solid rgba(255,255,255,.08)}
.hdr .nv-in{max-width:1180px;margin:0 auto;padding:0 24px;height:74px;display:flex;align-items:center;gap:30px}
.hdr .nv-logo2 img{height:30px;width:auto;display:block}
.hdr nav{display:flex;gap:26px;margin-left:auto;font:400 15px Lato,system-ui,sans-serif}
.hdr nav a{text-decoration:none;color:#9d9d99;transition:color .2s}
.hdr nav a:hover,.hdr nav a.nv-on{color:#f1f0ec}
.hdr nav .nv-cta-m{display:none}
.nv-pais{display:flex;border:1px solid rgba(255,255,255,.08);border-radius:99px;overflow:hidden;font:700 12px Lato,sans-serif}
.nv-pais a{color:#9d9d99;padding:6px 11px;text-decoration:none;transition:color .2s}
.nv-pais a:hover{color:#f1f0ec}.nv-pais a.nv-on{background:#e9e6d6;color:#111}
.hdr .nv-cta{padding:10px 20px;font:700 14px Lato,sans-serif;background:#e9e6d6;color:#111}
.hdr .nv-cta:hover{background:#fff;box-shadow:none}
.hdr .nv-burger{display:none;background:none;border:0;padding:6px;cursor:pointer}
.hdr .nv-burger i{display:block;width:24px;height:2px;background:#f1f0ec;margin:5px 0;transition:.3s}
.hdr.nv-open .nv-burger i:nth-child(1){transform:translateY(7px) rotate(45deg)}
.hdr.nv-open .nv-burger i:nth-child(2){opacity:0}
.hdr.nv-open .nv-burger i:nth-child(3){transform:translateY(-7px) rotate(-45deg)}

/* hero */
.nv-hero{padding:96px 0 96px}
.nv-hero .nv-wrap{display:grid;grid-template-columns:1fr 1fr;gap:60px;align-items:center}
.nv-kicker{display:inline-flex;align-items:center;gap:10px;border:1px solid var(--line);background:var(--card);border-radius:99px;padding:7px 16px;font:400 13px Lato,sans-serif;letter-spacing:.06em;text-transform:uppercase;color:var(--hi);margin-bottom:22px}
.nv-kicker svg{width:14px;height:12px;fill:var(--cream)}
.nv-hero h1{font-size:74px;line-height:1.02;font-weight:300;color:var(--hi);margin:0 0 24px}
.nv-hero h1 b{font-weight:500}
.nv-hero .nv-lead{max-width:525px;margin-bottom:30px;font-size:19px}
.nv-hero .nv-btns{display:flex;align-items:center;gap:26px;flex-wrap:wrap}
.nv-hero .nv-logo{justify-self:end;width:100%;max-width:520px}

/* tarjetas numeradas (servicios, gestories) */
.nv-nums{display:grid;grid-template-columns:repeat(12,1fr);gap:20px}
.nv-num{grid-column:span 5;position:relative;display:flex;flex-direction:column;background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:28px;text-decoration:none;min-height:268px;overflow:hidden;transition:background .3s,border-color .3s}
.nv-num.nv-w{grid-column:span 7}
.nv-num:hover{background:var(--card2);border-color:var(--line2)}
.nv-num .nv-n{align-self:flex-start;font:12px/1 ui-monospace,Menlo,monospace;padding:5px 7px;border:1px solid var(--line);border-radius:6px;color:var(--txt)}
.nv-num .nv-ar{position:absolute;top:28px;right:28px;width:14px;height:14px;fill:var(--hi);transition:transform .3s}
.nv-num:hover .nv-ar,.nv-pcard:hover .nv-ar{transform:translate(3px,-3px)}
.nv-num h3{font-size:32px;line-height:1.15;margin:50px 0 0;padding:0}
.nv-num p{margin:14px 0 0;font-size:15px;line-height:1.6}
.nv-sub{font-size:48px;line-height:1.08;color:var(--hi);margin:72px 0 36px}

/* tarjetas de portfolio */
.nv-pgrid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}
.nv-pcard{position:relative;background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:18px;text-decoration:none;display:block;transition:background .3s}
.nv-pcard:hover{background:var(--card2);border-color:var(--line2)}
.nv-pcard .nv-im{border-radius:12px;overflow:hidden;aspect-ratio:4/3;background:#1d1e1d}
.nv-pcard .nv-im img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .6s}
.nv-pcard:hover .nv-im img{transform:scale(1.03)}
.nv-pcard h4{font-size:24px;line-height:1.3;margin:18px 0 0;padding-right:30px}
.nv-pcard p{font-size:15px;line-height:1.5;margin:6px 0 0}
.nv-pcard .nv-ar{position:absolute;right:26px;bottom:auto;margin-top:-30px;width:14px;height:14px;fill:var(--hi)}
.nv-pgrid + .nv-sub{margin-top:80px}

/* nuvola+ en la portada */
.nv-plus{margin-top:20px;display:grid;grid-template-columns:1.1fr .9fr;gap:30px;align-items:center;background:radial-gradient(120% 140% at 100% 0%,#232423 0%,var(--card) 55%);border:1px solid var(--line);border-radius:22px;padding:40px 44px;text-decoration:none;position:relative;overflow:hidden}
.nv-plus .nv-pl-logo{height:40px;display:block}
.nv-plus h3{font-size:34px;line-height:1.15;margin:20px 0 12px;color:var(--mid);font-weight:300}
.nv-plus h3 b{font-weight:500;color:var(--hi)}
.nv-plus p{margin:0}
.nv-plus .nv-pl-price{display:flex;align-items:baseline;gap:10px;margin-top:22px;flex-wrap:wrap}
.nv-plus .nv-pl-price b{font:500 34px "Inter Tight",sans-serif;color:var(--hi);letter-spacing:-.5px}
.nv-plus .nv-pl-price span{font-size:15px}
.nv-plus .nv-pl-side{display:flex;flex-direction:column;align-items:flex-end;gap:26px}
.nv-plus .nv-pl-icons{display:flex;gap:10px;flex-wrap:wrap;justify-content:flex-end}
.nv-plus .nv-pl-icons img{width:54px;height:54px;border-radius:14px;box-shadow:0 10px 24px -8px rgba(0,0,0,.7)}
.nv-plus:hover .nv-btn.nv-pri{background:#fff}

/* mapa */
.nv-map{width:100%;height:600px;border:0;border-radius:var(--radius);display:block;filter:grayscale(.15)}

/* contacto */
.nv-cto{padding:110px 0}
.nv-cto .nv-wrap{display:grid;grid-template-columns:1fr 1fr;gap:60px;align-items:center}
.nv-cto h2{font-size:48px;line-height:1.08;color:var(--hi);margin:0 0 24px}
.nv-cto .nv-intro{max-width:440px;margin-bottom:34px}
.nv-feat{display:flex;align-items:center;gap:20px;margin-bottom:26px}
.nv-feat .nv-ic{width:54px;height:54px;border-radius:15px;background:var(--card);border:1px solid var(--line);display:flex;align-items:center;justify-content:center;flex-shrink:0}
.nv-feat .nv-ic svg{width:22px;height:22px;stroke:var(--cream);fill:none;stroke-width:1.6}
.nv-feat small{display:block;font-size:14px;color:var(--txt);line-height:1.2;margin-bottom:4px}
.nv-feat h4{font:400 19px/26px "Inter Tight",sans-serif;color:var(--hi);margin:0}
.nv-feat a{text-decoration:none}
.nv-cto .nv-form{background:var(--card);border:1px solid var(--line);border-radius:22px;padding:12px}

/* Páginas de contenido (fichas, servicios, legal…) */
.nv-page{padding:0}
.nv-page .nvc{padding-top:58px}
/* Gestories (.ad) */
.nv-gw{max-width:1140px;margin:0 auto;padding:15px 0 0}

/* pie */
.ftr{border-top:1px solid var(--line);padding:50px 20px 40px;text-align:center}
.ftr img{width:141px;display:block;margin:0 auto;opacity:.95}
.ftr .nv-pais-f{display:inline-flex;margin:22px auto 0}.ftr .nv-pais-f a{font-weight:400;font-size:12px;padding:6px 14px}
.ftr .nv-pi{display:block;margin-top:14px;color:rgba(255,255,255,.3);text-decoration:none;font-size:15px}

/* animación de entrada suave */
.nv-rv{opacity:0;transform:translateY(18px);transition:opacity .8s ease,transform .8s ease}
.nv-rv.nv-in{opacity:1;transform:none}
@media (prefers-reduced-motion:reduce){.nv-rv{opacity:1;transform:none;transition:none}html{scroll-behavior:auto}}

/* responsive */
@media(max-width:1200px){
  .hdr nav{gap:20px}
}
@media(max-width:1024px){
  .hdr .nv-burger{display:block}
  .hdr .nv-pais{margin-left:auto}
  .hdr nav .nv-cta-m{display:block;margin-top:14px;font:700 16px Lato,sans-serif;color:#111;background:#e9e6d6;border-radius:99px;padding:14px 26px}
  .hdr nav{position:fixed;top:74px;left:0;right:0;height:calc(100vh - 74px);height:calc(100dvh - 74px);background:var(--bg);flex-direction:column;align-items:flex-start;padding:30px 24px;gap:6px;opacity:0;visibility:hidden;transform:translateY(-8px);transition:opacity .25s ease,transform .25s ease,visibility 0s .25s;overflow-y:auto;margin:0}
  .hdr.nv-open nav{opacity:1;visibility:visible;transform:none;transition:opacity .25s ease,transform .25s ease}
  .hdr nav a{font:400 26px/1.2 "Inter Tight",sans-serif;padding:12px 0;color:#9d9d99}
  .nv-hero .nv-wrap,.nv-cto .nv-wrap{grid-template-columns:1fr}
  .nv-hero{padding:70px 0 60px}
  .nv-hero .nv-logo{justify-self:center;max-width:380px}
  .nv-num,.nv-num.nv-w{grid-column:span 12}
  .nv-pgrid{grid-template-columns:1fr 1fr}
  .nv-plus{grid-template-columns:1fr}.nv-plus .nv-pl-side{align-items:flex-start}.nv-plus .nv-pl-icons{justify-content:flex-start}
}
@media(max-width:640px){
  body{font-size:17px}
  .hdr .nv-cta{display:none}
  .nv-sec{padding:44px 0 50px}.nv-cto{padding:70px 0}
  .nv-t,.nv-cto h2{font-size:36px}
  .nv-hero{text-align:center}
  .nv-hero .nv-kicker,.nv-hero .nv-btns{justify-content:center}
  .nv-hero .nv-lead{margin-left:auto;margin-right:auto}
  .nv-hero h1{font-size:50px}
  .nv-wrap{padding:0 12px}
  .nv-hero .nv-logo{display:none}
  .nv-num h3{font-size:28px}
  .nv-num{min-height:0}
  .nv-pgrid{grid-template-columns:1fr}
  .nv-pcard h4{font-size:22px}
  .nv-map{height:420px}
  .nv-plus{padding:30px 24px}
  .nv-plus h3{font-size:28px}
  .nv-plus .nv-pl-icons img{width:46px;height:46px}
}
