body:has(.ngp-portfolio) { margin:0 !important; background:#171a1d; }
body:has(.ngp-portfolio) .wp-site-blocks,
body:has(.ngp-portfolio) main,
body:has(.ngp-portfolio) .wp-block-post-content,
body:has(.ngp-portfolio) .wp-block-shortcode { width:100% !important; max-width:none !important; margin:0 !important; padding:0 !important; }
body:has(.ngp-portfolio) .wp-site-blocks { gap:0 !important; padding-block:0 !important; }
body:has(.ngp-portfolio) .wp-block-template-part,
body:has(.ngp-portfolio) .wp-block-post-title,
body:has(.ngp-portfolio) .entry-header,
body:has(.ngp-portfolio) .page-header,
body:has(.ngp-portfolio) .entry-title,
body:has(.ngp-portfolio) .page-title { display:none !important; }
.ngp-portfolio { --ink:#171a1d; --ink-2:#202428; --paper:#f1f2ee; --blue:#4974ff; --turquoise:#27d7c2; --yellow:#f3d45e; width:100%; max-width:100%; margin:0; overflow-x:clip; background:var(--ink); color:#f7f8f8; font-family:"Helvetica Neue",Helvetica,Arial,sans-serif; font-size:16px; line-height:1.5; }
.ngp-portfolio,.ngp-portfolio * { box-sizing:border-box; }
.ngp-portfolio img { display:block; width:100%; max-width:100%; }
.ngp-portfolio button,.ngp-portfolio a,.ngp-portfolio input,.ngp-portfolio textarea { color:inherit; font:inherit; }
.ngp-portfolio button:focus-visible,.ngp-portfolio a:focus-visible,.ngp-portfolio input:focus-visible,.ngp-portfolio textarea:focus-visible { outline:2px solid var(--turquoise); outline-offset:3px; }
.ngp-topbar { position:fixed; z-index:9998; top:0; left:0; display:grid; width:100%; max-width:100%; height:62px; grid-template-columns:1fr auto 1fr; align-items:center; padding:0 3.2%; border-bottom:1px solid rgba(255,255,255,.12); background:rgba(23,26,29,.7); backdrop-filter:blur(18px); -webkit-backdrop-filter:blur(18px); }
body.admin-bar .ngp-topbar { top:32px; }
.ngp-wordmark { position:relative; justify-self:start; padding:0; border:0; background:transparent; color:#fff; cursor:pointer; font-family:Arial,Helvetica,sans-serif; font-size:.78rem; font-weight:900; letter-spacing:.025em; line-height:1; text-align:left; white-space:nowrap; -webkit-text-stroke:.2px currentColor; }
.ngp-wordmark span { display:inline; }
.ngp-wordmark::after { position:absolute; inset:0; background:linear-gradient(90deg,var(--turquoise),#83df8d,var(--yellow)); background-clip:text; color:transparent; content:"NIKO GONZÁLEZ"; opacity:0; pointer-events:none; transition:opacity .42s ease; white-space:nowrap; -webkit-background-clip:text; }
.ngp-wordmark>span { transition:opacity .42s ease; }
.ngp-nav { display:flex; align-items:center; gap:clamp(1.25rem,2.1vw,2.55rem); }
.ngp-nav button { position:relative; padding:5px 0; border:0; background:transparent; color:#fff; cursor:pointer; font-size:.67rem; font-weight:600; letter-spacing:.075em; text-transform:uppercase; }
.ngp-gradient-hover::after { position:absolute; inset:5px 0; background:linear-gradient(90deg,var(--turquoise),#83df8d,var(--yellow)); background-clip:text; color:transparent; content:attr(data-hover-label); opacity:0; pointer-events:none; transition:opacity .42s ease; white-space:nowrap; -webkit-background-clip:text; }
.ngp-gradient-hover>span { transition:opacity .42s ease; }
.ngp-header-actions { display:flex; justify-self:end; align-items:center; gap:.55rem; }
.ngp-language { display:flex; align-items:center; gap:.42rem; padding:0 .45rem 0 0; border:0; background:transparent; color:rgba(255,255,255,.55); cursor:pointer; font-size:.66rem; letter-spacing:.08em; }
.ngp-language .is-active { color:#fff; }
.ngp-language i { width:18px; height:1px; background:rgba(255,255,255,.28); }
.ngp-social-circle,.ngp-menu-button { display:grid; width:32px; height:32px; padding:0; place-items:center; border:1px solid rgba(255,255,255,.25); border-radius:50%; background:transparent; color:#fff; text-decoration:none; transition:border-color .35s ease,color .35s ease,background .35s ease; }
.ngp-social-circle svg,.ngp-menu-button svg { width:15px; height:15px; }
.ngp-menu-button { display:none; cursor:pointer; }
.ngp-mobile-menu { position:fixed; z-index:9997; inset:0; display:flex; visibility:hidden; flex-direction:column; justify-content:center; padding:6rem 7% 3rem; background:var(--ink); opacity:0; pointer-events:none; transition:opacity .22s ease,visibility .22s ease; }
.ngp-mobile-menu.is-open { visibility:visible; opacity:1; pointer-events:auto; }
.ngp-mobile-menu button { display:flex; align-items:baseline; gap:1rem; padding:1rem 0; border:0; border-bottom:1px solid rgba(255,255,255,.14); background:transparent; color:#fff; font-size:clamp(1.8rem,8vw,3.7rem); font-weight:500; letter-spacing:-.045em; text-align:left; }
.ngp-mobile-menu small { color:var(--turquoise); font-size:.65rem; letter-spacing:.08em; }
.ngp-section { position:relative; width:100%; max-width:100%; scroll-margin-top:61px; }
.ngp-light { background:var(--paper); color:var(--ink); }
.ngp-dark { background:var(--ink); color:#fff; }
.ngp-hero { display:flex; min-height:80svh; align-items:flex-end; overflow:hidden; background-color:var(--ink); background-position:50% center; background-size:cover; }
.ngp-hero-shade { position:absolute; inset:0; background:linear-gradient(90deg,rgba(23,26,29,.88),rgba(23,26,29,.45) 60%,rgba(23,26,29,.18)),linear-gradient(0deg,rgba(23,26,29,.72),transparent 60%); }
.ngp-hero-content { position:relative; z-index:2; width:100%; min-width:0; padding:7.5rem 7% 8vh; }
.ngp-role { margin:0 0 1.4rem; color:#fff; font-size:.72rem; font-weight:700; letter-spacing:.18em; }
.ngp-hero h1 { max-width:850px; margin:0; color:#fff; font-size:clamp(2.6rem,4.2vw,4.8rem); font-weight:600; letter-spacing:-.055em; line-height:.95; }
.ngp-hero-copy { max-width:630px; margin:2.2rem 0 0; color:rgba(255,255,255,.68); font-size:clamp(1rem,1.25vw,1.2rem); line-height:1.65; }
.ngp-kicker { margin:0 0 1.4rem; color:#247e74; font-size:.7rem; font-weight:700; letter-spacing:.16em; text-transform:uppercase; }
.ngp-dark .ngp-kicker { color:#65d6c3; }
.ngp-section-intro { display:grid; grid-template-columns:.48fr 1fr; gap:5%; padding:7.5rem 7% 4.5rem; }
.ngp-section-intro .ngp-kicker { grid-row:span 2; }
.ngp-section-intro h2,.ngp-motion h2,.ngp-about h2,.ngp-contact h2 { max-width:880px; margin:0; font-size:clamp(2rem,4vw,4.7rem); font-weight:600; letter-spacing:-.055em; line-height:1; }
.ngp-section-intro>p:last-child { max-width:650px; margin:1.6rem 0 0; color:rgba(23,26,29,.66); line-height:1.75; }
.ngp-portrait { padding-bottom:8rem; }
.ngp-portrait-intro { display:grid; grid-template-columns:minmax(260px,.72fr) 1.28fr; align-items:center; gap:7%; padding:7.5rem 7% 5rem; }
.ngp-portrait-intro.no-media { grid-template-columns:.48fr 1fr; }
.ngp-portrait-intro.no-media .ngp-portrait-intro-copy { grid-column:2; }
.ngp-portrait-intro-media { width:min(100%,430px); justify-self:center; transform:translateX(2rem); }
.ngp-portrait-intro-media .ngp-slide img { aspect-ratio:3/4; object-fit:cover; }
.ngp-portrait-intro-media .ngp-carousel-controls { bottom:12px; }
.ngp-portrait-intro-copy h2 { max-width:880px; margin:0; font-size:clamp(2rem,4vw,4.7rem); font-weight:600; letter-spacing:-.055em; line-height:1; }
.ngp-portrait-intro-copy>p:last-child { max-width:650px; margin:1.6rem 0 0; color:rgba(23,26,29,.66); line-height:1.75; }
.ngp-portrait-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:2rem 1.25rem; padding:0 7%; }
.ngp-carousel,.ngp-carousel-window,.ngp-carousel-track,.ngp-slide { min-width:0; }
.ngp-carousel { position:relative; margin:0; }
.ngp-carousel-window { overflow:hidden; background:#d9dcd7; }
.ngp-carousel-track { display:flex; transition:transform .55s cubic-bezier(.2,.75,.2,1); }
.ngp-slide { flex:0 0 100%; margin:0; }
.ngp-portrait-slot .ngp-slide img { aspect-ratio:16/10; object-fit:cover; }
.ngp-portrait-slot.is-vertical { width:min(100%,560px); justify-self:center; }
.ngp-portrait-slot.is-vertical .ngp-slide img { aspect-ratio:4/5; }
.ngp-carousel-controls { position:absolute; right:12px; bottom:12px; display:flex; align-items:center; gap:8px; padding:5px; border:1px solid rgba(255,255,255,.13); border-radius:30px; background:rgba(23,26,29,.5); box-shadow:0 6px 20px rgba(0,0,0,.11); color:#fff; backdrop-filter:blur(14px); -webkit-backdrop-filter:blur(14px); }
.ngp-carousel.has-caption>.ngp-carousel-controls { bottom:38px; }
.ngp-carousel-controls button { display:grid; width:30px; height:30px; padding:0; place-items:center; border:0; border-radius:50%; background:transparent; color:#fff; cursor:pointer; }
.ngp-carousel-controls button:hover { background:rgba(255,255,255,.14); }
.ngp-carousel-controls svg { width:17px; height:17px; }
.ngp-carousel-controls span { min-width:42px; font-size:.62rem; letter-spacing:.06em; text-align:center; }
.ngp-media-caption { margin:.75rem 0 0; color:rgba(23,26,29,.57); font-size:.67rem; letter-spacing:.08em; text-transform:uppercase; }
.ngp-admin-placeholder { display:grid; min-height:220px; place-items:center; border:1px dashed rgba(23,26,29,.3); background:rgba(23,26,29,.035); color:rgba(23,26,29,.55); font-size:.75rem; letter-spacing:.08em; text-align:center; text-transform:uppercase; }
.ngp-admin-placeholder.is-vertical { aspect-ratio:4/5; }
.ngp-music { padding:7rem 7%; background:var(--ink-2); }
.ngp-music-heading { display:grid; width:100%; max-width:1040px; grid-template-columns:.3fr 1fr; align-items:end; gap:5%; margin:0 auto 3rem; }
.ngp-music-heading .ngp-kicker { margin:0; }
.ngp-music-heading h2 { margin:0; font-size:clamp(2rem,4vw,4.5rem); font-weight:600; letter-spacing:-.055em; line-height:1; }
.ngp-video-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:1.25rem; }
.ngp-video { position:relative; width:100%; min-height:0; aspect-ratio:16/9; overflow:hidden; background:#111315; }
.ngp-video iframe { position:absolute; inset:0; width:100%; height:100%; border:0; }
.ngp-video-carousel { width:100%; max-width:1040px; margin:0 auto; }
.ngp-video-carousel .ngp-carousel-window { background:transparent; }
.ngp-video-slide { margin:0; }
.ngp-video-title { margin:.9rem 0 0; color:rgba(255,255,255,.72); font-size:.75rem; font-weight:600; letter-spacing:.08em; text-transform:uppercase; }
.ngp-video-controls { position:static; right:auto; bottom:auto; width:max-content; margin:1.1rem auto 0; border-color:rgba(255,255,255,.23); background:linear-gradient(135deg,rgba(255,255,255,.16),rgba(255,255,255,.055)); box-shadow:inset 0 1px 0 rgba(255,255,255,.15),0 8px 24px rgba(0,0,0,.13); }
.ngp-music-placeholder { width:100%; max-width:1040px; min-height:0; margin:0 auto; aspect-ratio:16/9; }
.ngp-music .ngp-admin-placeholder,.ngp-motion .ngp-admin-placeholder { border-color:rgba(255,255,255,.2); background:rgba(255,255,255,.035); color:rgba(255,255,255,.5); }
.ngp-corporate { padding-bottom:0; }
.ngp-corporate-intro { grid-template-columns:.26fr 1fr; padding-bottom:3.5rem; }
.ngp-corporate-layout { display:grid; grid-template-columns:1.35fr .65fr; align-items:end; gap:5%; padding:0 7% 6rem; }
.ngp-corporate-carousel .ngp-slide img { aspect-ratio:3/2; object-fit:contain; }
.ngp-services { padding:0; margin:0; list-style:none; }
.ngp-services li { display:flex; gap:1rem; padding:1rem 0; border-top:1px solid rgba(23,26,29,.2); font-size:.9rem; }
.ngp-services li:last-child { border-bottom:1px solid rgba(23,26,29,.2); }
.ngp-services small { color:#247e74; font-size:.65rem; }
.ngp-logo-strip { width:100%; overflow:hidden; border-top:1px solid rgba(23,26,29,.16); }
.ngp-logo-label { margin:0; padding:2rem 7% .75rem; color:rgba(23,26,29,.72); font-size:clamp(1.15rem,1.6vw,1.5rem); font-weight:600; letter-spacing:-.015em; text-align:center; }
.ngp-logo-track { display:flex; width:max-content; animation:ngp-marquee var(--ngp-logo-duration,90s) linear infinite; }
.ngp-logo-group { display:flex; min-width:100vw; align-items:center; gap:5rem; padding:1.6rem 2.5rem 2rem; }
.ngp-logo-group img { width:auto; max-width:150px; height:44px; object-fit:contain; filter:grayscale(1); opacity:.6; }
@keyframes ngp-marquee { to { transform:translateX(-50%); } }
.ngp-motion { display:grid; grid-template-columns:.78fr 1.22fr; align-items:center; gap:6%; padding:7rem 7%; background:var(--ink-2); }
.ngp-motion>div:first-child>p:last-child { max-width:520px; margin:1.6rem 0 0; color:rgba(255,255,255,.64); line-height:1.75; }
.ngp-about { display:grid; grid-template-columns:.7fr 1.3fr; align-items:center; gap:7%; padding:7.5rem 8%; background:var(--ink); }
.ngp-about-image { width:min(100%,500px); min-height:0; justify-self:center; }
.ngp-about-image img { aspect-ratio:4/5; object-fit:cover; filter:saturate(.78) contrast(1.05); }
.ngp-about-lead { max-width:700px; margin:2rem 0 0; color:rgba(255,255,255,.72); font-size:clamp(1.1rem,1.8vw,1.7rem); line-height:1.55; }
.ngp-about h2 { font-size:clamp(1.9rem,3.2vw,3.7rem); }
.ngp-about .ngp-about-lead { font-size:clamp(1.05rem,1.45vw,1.4rem); }
.ngp-availability { display:flex; align-items:center; gap:.75rem; margin-top:2.5rem; color:rgba(255,255,255,.62); font-size:.68rem; letter-spacing:.08em; text-transform:uppercase; }
.ngp-availability i { width:8px; height:8px; border-radius:50%; background:#5fff83; box-shadow:0 0 14px rgba(95,255,131,.6); }
.ngp-contact { display:grid; grid-template-columns:.78fr 1.22fr; gap:7%; padding:7.5rem 8%; }
.ngp-contact h2 { font-size:clamp(2.2rem,3.8vw,4.2rem); }
.ngp-contact-socials { display:flex; gap:.65rem; margin-top:2rem; }
.ngp-social-dark { border-color:rgba(23,26,29,.3); color:var(--ink); }
.ngp-contact-form { width:100%; max-width:720px; }
.ngp-contact-form label,.ngp-contact-choice legend { display:flex; flex-direction:column; gap:.5rem; margin:0 0 1.15rem; color:rgba(23,26,29,.65); font-size:.68rem; font-weight:700; letter-spacing:.09em; text-transform:uppercase; }
.ngp-contact-form input[type="text"],.ngp-contact-form input[type="email"],.ngp-contact-form input[type="tel"],.ngp-contact-form textarea { width:100%; max-width:100%; border:0; border-bottom:1px solid rgba(23,26,29,.34); border-radius:0; outline:0; background:transparent; color:var(--ink); font-size:1rem; font-weight:400; letter-spacing:0; text-transform:none; }
.ngp-contact-form input[type="text"],.ngp-contact-form input[type="email"],.ngp-contact-form input[type="tel"] { height:50px; }
.ngp-contact-form textarea { min-height:130px; padding:.75rem 0; resize:vertical; }
.ngp-contact-form input:focus,.ngp-contact-form textarea:focus { border-color:#247e74; box-shadow:0 1px 0 #247e74; }
.ngp-contact-choice { display:flex; align-items:center; gap:.6rem; margin:1.2rem 0 1.35rem; padding:0; border:0; }
.ngp-contact-choice legend { width:100%; margin-bottom:.8rem; }
.ngp-contact-choice label { display:inline-flex; flex-direction:row; align-items:center; margin:0; padding:.65rem .9rem; border:1px solid rgba(23,26,29,.25); border-radius:30px; cursor:pointer; }
.ngp-contact-choice input { accent-color:#247e74; }
.ngp-message-field { margin-top:1.2rem !important; }
.ngp-honey { position:absolute !important; left:-9999px !important; width:1px !important; height:1px !important; opacity:0 !important; }
.ngp-submit { display:inline-flex; align-items:center; gap:.7rem; min-height:50px; padding:0 1.3rem; border:1px solid var(--ink); background:var(--ink); color:#fff !important; cursor:pointer; font-size:.7rem; font-weight:700; letter-spacing:.09em; text-transform:uppercase; transition:background .45s ease,border-color .45s ease; }
.ngp-form-message { display:none; margin:0 0 1.4rem; padding:1rem; border-left:3px solid #247e74; background:rgba(39,215,194,.09); color:var(--ink); font-size:.88rem; }
.ngp-form-error { border-color:#b94040; background:rgba(185,64,64,.08); }
.ngp-footer { display:flex; justify-content:space-between; gap:2rem; padding:1.4rem 3.2%; border-top:1px solid rgba(255,255,255,.13); background:var(--ink); color:rgba(255,255,255,.45); font-size:.61rem; letter-spacing:.09em; text-transform:uppercase; }
@media (hover:hover) and (pointer:fine) {
  .ngp-wordmark:hover::after { opacity:1; }
  .ngp-wordmark:hover>span { opacity:0; }
  .ngp-gradient-hover:hover::after { opacity:1; }
  .ngp-gradient-hover:hover>span { opacity:0; }
  .ngp-social-circle:hover { border-color:var(--turquoise); background:linear-gradient(135deg,var(--turquoise),var(--yellow)); color:var(--ink); }
  .ngp-submit:hover { border-color:transparent; background:linear-gradient(90deg,var(--turquoise),#83df8d,var(--yellow)); color:var(--ink) !important; }
}
@media (min-width:721px) {
  .ngp-corporate-carousel { width:90%; max-width:900px; }
  .ngp-about-image { width:min(84%,400px); }
  .ngp-video-controls { gap:10px; padding:7px; }
  .ngp-video-controls button { width:38px; height:38px; }
  .ngp-video-controls svg { width:21px; height:21px; }
  .ngp-video-controls span { min-width:48px; font-size:.68rem; }
}
@media (max-width:1120px) { .ngp-topbar { grid-template-columns:1fr auto; } .ngp-nav { display:none; } .ngp-menu-button { display:grid; } }
@media (max-width:782px) { body.admin-bar .ngp-topbar { top:46px; } }
@media (max-width:720px) {
  .ngp-topbar { height:58px; padding:0 1rem; }
  .ngp-header-actions .ngp-social-circle { display:none; }
  .ngp-section { scroll-margin-top:57px; }
  .ngp-hero { min-height:82svh; background-position:60% center; }
  .ngp-hero-content { padding:6.5rem 1.25rem 4rem; }
  .ngp-hero h1 { font-size:clamp(2.6rem,13vw,4.7rem); }
  .ngp-section-intro { display:block; padding:6rem 1.25rem 3rem; }
  .ngp-section-intro h2 { font-size:clamp(2rem,10vw,3.5rem); }
  .ngp-section-intro .ngp-kicker { margin-bottom:1.4rem; }
  .ngp-portrait { padding-bottom:5rem; }
  .ngp-portrait-intro { display:flex; flex-direction:column; padding:5.5rem 1.25rem 3.5rem; }
  .ngp-portrait-intro.no-media { display:block; }
  .ngp-portrait-intro-copy { order:1; }
  .ngp-portrait-intro-media { order:2; width:min(78%,390px); margin:3rem auto 0; transform:none; }
  .ngp-portrait-grid { grid-template-columns:1fr; gap:2rem; padding:0 1.25rem; }
  .ngp-portrait-slot.is-vertical { width:100%; }
  .ngp-music { padding:5rem 1.25rem; }
  .ngp-music-heading { display:block; margin-bottom:2.5rem; }
  .ngp-music-heading .ngp-kicker { margin-bottom:1.25rem; }
  .ngp-video-grid { grid-template-columns:1fr; }
  .ngp-corporate-layout { display:block; padding:0 1.25rem 5rem; }
  .ngp-services { margin-top:2.5rem; }
  .ngp-logo-group { gap:3rem; padding:1.5rem; }
  .ngp-logo-label { padding:1.5rem 1.25rem .5rem; font-size:1.05rem; }
  .ngp-logo-group img { max-width:120px; height:36px; }
  .ngp-motion,.ngp-about,.ngp-contact { display:block; padding:5.5rem 1.25rem; }
  .ngp-motion>div:last-child { margin-top:2.5rem; }
  .ngp-about-image { width:min(88%,340px); margin:0 auto; }
  .ngp-about-copy { margin-top:3rem; }
  .ngp-contact-form { margin-top:3.5rem; }
  .ngp-submit b { display:none; }
  .ngp-footer { align-items:flex-start; flex-direction:column; padding:1.4rem 1.25rem; }
}
@media (prefers-reduced-motion:reduce) { .ngp-portfolio *,.ngp-portfolio *::before,.ngp-portfolio *::after { scroll-behavior:auto !important; animation-duration:.01ms !important; animation-iteration-count:1 !important; transition-duration:.01ms !important; } }
