/* nikigower.com pack CSS. Loaded automatically by Site Pack Installer (Settings > Load the active pack's CSS).
   If you use this file in the Customizer instead, untick that setting. */

/* ---------- Typography: larger body text, darker ink ---------- */
.panel-layout .so-widget-sow-editor{font-size:clamp(17px,.25vw + 15.5px,18px);line-height:1.7;color:#2b2540}
.panel-layout .so-widget-sow-editor p,.panel-layout .so-widget-sow-editor li,.panel-layout .so-widget-sow-editor td{color:inherit}
.panel-layout .so-widget-sow-editor a{text-underline-offset:.15em}


/* ---------- Client logos: grey, colour on hover ---------- */
.ng-logos{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:28px 24px;align-items:center;justify-items:center;margin:0}
.ng-logos img{width:150px;height:56px;object-fit:contain;filter:grayscale(1);opacity:.65;transition:filter .25s ease,opacity .25s ease}
.ng-logos img:hover{filter:none;opacity:1}
@media (hover:none){.ng-logos img{filter:none;opacity:1}}
@media (max-width:600px){.ng-logos{grid-template-columns:repeat(2,1fr);gap:20px 16px}.ng-logos img{width:130px;height:48px}}

/* ---------- Web project cards ---------- */
.ng-cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:32px;margin:0}
.ng-card{background:#fff;border-radius:14px;overflow:hidden;box-shadow:0 1px 2px rgba(29,22,48,.06),0 14px 32px -18px rgba(29,22,48,.3);transition:transform .25s ease,box-shadow .25s ease}
.ng-card:hover{transform:translateY(-4px);box-shadow:0 1px 2px rgba(29,22,48,.06),0 22px 40px -18px rgba(29,22,48,.38)}
.ng-card img{display:block;width:100%;height:auto;aspect-ratio:16/10;object-fit:cover;object-position:top}
.ng-card-body{padding:20px 22px 24px}
.ng-card-sector{margin:0 0 6px;font-size:.78em;font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:#4a3d78}
.ng-card h3,.ng-card .ng-card-title{margin:0 0 8px;font-size:1.2em;line-height:1.25;font-weight:600}
.ng-card h3 a,.ng-card .ng-card-title a{color:#1d1630;text-decoration:none}
.ng-card p{margin:0 0 14px;font-size:.9em;line-height:1.6;color:#2b2540}
.ng-card-link{font-size:.95em;font-weight:600;color:#2d2257;text-decoration:none}
.ng-card-link:hover{color:#4a3a85}
.ng-more{list-style:none;margin:0;padding:0}
.ng-more li{padding:10px 0;border-bottom:1px solid #e6e2f0;font-size:1em}
.ng-more a{color:#2d2257;font-weight:600;text-decoration:none}
.ng-more span{color:#4a3d78;margin-left:8px;font-size:.9em}

/* ---------- Browser + phone mockups (scrollable) ---------- */
.ng-browser{border-radius:12px;background:#fff;overflow:hidden;box-shadow:0 0 0 1px rgba(29,22,48,.08),0 30px 60px -24px rgba(29,22,48,.4)}
.ng-browser-bar{display:flex;align-items:center;gap:6px;padding:10px 14px;background:#f1eff6;border-bottom:1px solid #e2deec}
.ng-browser-bar span{width:10px;height:10px;border-radius:50%;background:#cfc9e0}
.ng-browser-url{margin-left:12px;flex:1;max-width:340px;background:#fff;border-radius:6px;padding:3px 10px;font-size:.72em;color:#4a3d78;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ng-browser-screen{height:min(64vh,580px);overflow-y:auto;scrollbar-width:thin}
.ng-browser-screen img{display:block;width:100%;height:auto;margin:0;max-width:none}
.ng-phone{width:min(100%,260px);margin:0 auto;border-radius:40px;background:#1d1630;padding:10px;box-shadow:0 30px 60px -24px rgba(29,22,48,.5)}
.ng-phone-screen{height:min(64vh,540px);border-radius:30px;overflow-y:auto;background:#fff;scrollbar-width:none}
.ng-phone-screen::-webkit-scrollbar{display:none}
.ng-phone-screen img{display:block;width:100%;height:auto;margin:0;max-width:none}
.ng-mock-hint{margin:12px 0 0;text-align:center;font-size:.85em;color:#4a3d78}

/* ---------- For employers: role cards ---------- */
.ng-points{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:24px;margin:0}
.ng-point{background:#fff;border-radius:14px;padding:26px 26px 28px;box-shadow:0 1px 2px rgba(29,22,48,.06),0 14px 32px -18px rgba(29,22,48,.3);border-top:3px solid #2d2257}
.ng-point h3{margin:0 0 10px;font-size:1.15em;font-weight:600;color:#1d1630}
.ng-point p{margin:0;font-size:1em;line-height:1.65;color:#2b2540}

/* ---------- Home page on phones and tablets: portrait scales with screen height ---------- */
@media (max-width:1024px){
  .home .so-widget-sow-image img{width:min(64vw,30vh)!important;max-width:none!important;height:auto!important;aspect-ratio:1/1;object-fit:cover;margin:0 auto;display:block}
}

/* ---------- Video pages ---------- */
.ng-cards--video .ng-card img{object-position:center}
.ng-showreel{position:relative;border-radius:14px;overflow:hidden;aspect-ratio:16/9;background:#1d1630;box-shadow:0 30px 60px -28px rgba(29,22,48,.5)}
.ng-showreel img{display:block;width:100%;height:100%;object-fit:cover;opacity:.85}
.ng-showreel span{position:absolute;left:24px;bottom:22px;background:rgba(29,22,48,.78);color:#fff;font-size:.8em;font-weight:600;letter-spacing:.1em;text-transform:uppercase;padding:9px 16px;border-radius:999px}
.ng-video{position:relative;width:100%;aspect-ratio:16/9;border-radius:12px;overflow:hidden;background:#1d1630;box-shadow:0 20px 44px -24px rgba(29,22,48,.45)}
.ng-video iframe{position:absolute;inset:0;width:100%;height:100%;border:0}
.ng-video-main{max-width:980px}
.ng-video-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:28px;margin:0}
.ng-video-grid figure{margin:0}
.ng-video-grid figcaption{margin-top:10px;font-size:.9em;font-weight:600;color:#1d1630}
.ng-credits{border:0;margin:0;width:auto;font-size:1em;line-height:1.6}
.ng-credits td{border:0;padding:4px 24px 4px 0;vertical-align:top}
.ng-credits td:first-child{color:#4a3d78;font-weight:600;white-space:nowrap}

/* ---------- Video pages: tablet and phone ---------- */
.ng-credits{width:100%}
@media (max-width:1024px){
  .ng-video-main{max-width:none}
}
@media (max-width:600px){
  .ng-credits,.ng-credits tbody,.ng-credits tr,.ng-credits td{display:block;width:100%}
  .ng-credits tr{margin:0 0 12px}
  .ng-credits td{padding:0}
  .ng-credits td:first-child{font-size:.78em;letter-spacing:.08em;text-transform:uppercase;white-space:normal}
  .ng-video-grid{grid-template-columns:1fr;gap:24px}
}

/* ---------- Photography gallery ---------- */
.ng-gallery{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin:0}
.ng-photo{margin:0;border-radius:10px;overflow:hidden;background:#ece9f4;aspect-ratio:4/3}
.ng-photo img{display:block;width:100%;height:100%;object-fit:cover;margin:0;max-width:none}
.ng-photo--empty{display:flex;align-items:center;justify-content:center;color:#4a3d78;font-size:.8em;letter-spacing:.1em;text-transform:uppercase}
@media (max-width:900px){.ng-gallery{grid-template-columns:repeat(2,1fr);gap:12px}}
@media (max-width:480px){.ng-gallery{gap:8px}}

/* ---------- Video grids with the facade ---------- */
.ng-video-main .spi-video{max-width:980px}
.ng-video-grid .spi-video{box-shadow:0 20px 44px -26px rgba(29,22,48,.45)}
.ng-video-grid--mixed{grid-template-columns:repeat(auto-fill,minmax(210px,1fr));align-items:start}
.ng-video-grid--mixed .spi-video--vertical{max-width:none}

/* ---------- Web case studies without screenshots yet ---------- */
.ng-browser-screen--empty{display:flex;align-items:center;justify-content:center;background:#ece9f4;overflow:hidden}
.ng-browser-screen--empty p{margin:0;color:#4a3d78;font-size:.9em;letter-spacing:.1em;text-transform:uppercase}
@media (max-width:1024px){.ng-video-main .spi-video{max-width:none}}
@media (max-width:600px){.ng-video-grid--mixed{grid-template-columns:repeat(2,1fr);gap:16px}}

/* =====================================================================
   v3: project-page stage, details, facts, billboard, landing components
   ===================================================================== */

/* ---------- Stage: one viewport, video fills it, cue to scroll ---------- */
.ng-stage{box-sizing:border-box;min-height:100vh;min-height:100svh;display:flex;flex-direction:column;padding:0 12% 10px;color:#fff;background:radial-gradient(1100px 560px at 75% -8%,rgba(96,76,180,.32),transparent 62%),#0f0b1c}
.panel-layout .ng-stage a{color:#fff}
.ng-stage__head{padding:clamp(2px,1.2vh,16px) 0 0}
.ng-stage__crumb{margin:0 0 10px;font-size:.88em;opacity:.78}
.ng-stage__crumb a{text-decoration:none}
.ng-stage__crumb a:hover{text-decoration:underline}
.ng-stage__kicker{display:block;margin:0 0 6px;font-size:.78em;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:#bdb2ec}
.ng-stage h1{margin:0 0 8px;color:#fff;font-size:clamp(24px,2.9vw,42px);line-height:1.1;font-weight:600}
.ng-stage__lead{margin:0;max-width:64ch;color:#e6e2f4;font-size:.95em;line-height:1.55}
.ng-stage__video{flex:1 1 auto;display:flex;align-items:center;justify-content:center;min-height:0;padding:clamp(12px,2.4vh,28px) 0}
.ng-stage__video .spi-video{width:min(100%,calc((100vh - 310px) * 1.7778));width:min(100%,calc((100svh - 310px) * 1.7778));min-width:min(100%,300px);box-shadow:0 34px 90px -34px rgba(0,0,0,.9)}
.ng-stage__devices{flex:1 1 auto;display:flex;align-items:center;justify-content:center;gap:clamp(20px,4vw,56px);min-height:0;padding:clamp(12px,2.4vh,28px) 0}
.ng-stage__devices .ng-browser{flex:0 1 min(980px,100%)}
.ng-stage__devices .ng-browser-screen{height:calc(100vh - 380px);height:calc(100svh - 380px);min-height:220px}
.ng-stage__devices .ng-phone{width:auto;flex:0 0 auto;margin:0}
.ng-stage__devices .ng-phone-screen{height:calc(100vh - 400px);height:calc(100svh - 400px);min-height:220px;width:calc((100svh - 400px) * .46);min-width:150px;max-width:230px}
.ng-stage__cue{display:flex;flex-direction:column;align-items:center;gap:0;margin:0 auto;padding:4px 16px 2px;text-decoration:none;font-size:.74em;letter-spacing:.16em;text-transform:uppercase;opacity:.85}
.ng-stage__cue:hover{opacity:1}
.ng-stage__cue svg{width:24px;height:24px;animation:ng-bob 2.2s ease-in-out infinite}
@keyframes ng-bob{50%{transform:translateY(5px)}}
@media (prefers-reduced-motion:reduce){.ng-stage__cue svg{animation:none}}
@media (max-width:1024px){.ng-stage,.ng-footer{padding-left:6%;padding-right:6%}}
@media (max-width:760px){
  .ng-stage__devices .ng-phone{display:none}
  .ng-stage__devices .ng-browser-screen{height:calc(100svh - 360px)}
}

/* ---------- Details below the stage ---------- */
html{scroll-behavior:smooth}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
#details{scroll-margin-top:12px}
.ng-prose{max-width:68ch}
.ng-prose h2{margin:0 0 12px;font-size:clamp(22px,1.9vw,28px);line-height:1.2;font-weight:600;color:#1d1630}
.ng-prose h3{margin:28px 0 8px;font-size:clamp(18px,1.4vw,21px);line-height:1.25;font-weight:600;color:#1d1630}
.ng-prose p{margin:0 0 14px;line-height:1.7}
.ng-prose .ng-todo{color:#4a3d78;font-style:italic;border-left:3px solid #cfc9e0;padding-left:12px}
.ng-facts{background:#fff;border-radius:14px;padding:22px 26px 8px;box-shadow:0 1px 2px rgba(29,22,48,.06),0 14px 32px -18px rgba(29,22,48,.3)}
.ng-facts dl{margin:0}
.ng-facts dt{margin:0;font-size:.76em;font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:#4a3d78}
.ng-facts dd{margin:2px 0 16px;line-height:1.5}
.ng-aside-cta{margin:18px 0 0;padding:20px 24px;border-radius:14px;background:#1d1630;color:#fff}
.ng-aside-cta p{margin:0 0 12px;color:#fff;line-height:1.5}
.panel-layout .so-widget-sow-editor a.ng-btn{display:inline-block;text-decoration:none;font-weight:600;padding:.7em 1.5em;border-radius:999px;background:#fff;color:#1d1630;transition:background .2s,color .2s}
.panel-layout .so-widget-sow-editor a.ng-btn:hover{background:#e9e5f7;color:#1d1630}
.panel-layout .so-widget-sow-editor a.ng-btn--solid{background:#2d2257;color:#fff}
.panel-layout .so-widget-sow-editor a.ng-btn--solid:hover{background:#4a3a85;color:#fff}
.panel-layout .so-widget-sow-editor a.ng-textlink{color:#2d2257;font-weight:600}
.panel-layout .ng-footer a,.panel-layout .ng-billboard a.ng-btn{text-decoration:none}
.panel-layout .so-widget-sow-editor .ng-footer a{color:#fff}

/* ---------- Billboard (featured project at the top of an index) ---------- */
.ng-billboard{position:relative;border-radius:16px;overflow:hidden;min-height:clamp(300px,46vw,560px);display:flex;align-items:flex-end;background:#1d1630;color:#fff;box-shadow:0 30px 60px -30px rgba(29,22,48,.55)}
.ng-billboard>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.ng-billboard::after{content:"";position:absolute;inset:0;background:linear-gradient(to top,rgba(15,11,28,.88) 0%,rgba(15,11,28,.35) 45%,rgba(15,11,28,0) 70%)}
.ng-billboard__body{position:relative;z-index:1;padding:clamp(20px,3.5vw,44px);max-width:640px}
.ng-billboard__kicker{margin:0 0 8px;font-size:.78em;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:#cfc6f5}
.ng-billboard h2{margin:0 0 8px;color:#fff;font-size:clamp(24px,3vw,40px);line-height:1.1}
.ng-billboard p{margin:0 0 16px;color:#ece9f8;line-height:1.55}
.ng-billboard .ng-btn{margin-right:10px}

/* ---------- Hire cards ---------- */
.ng-hire{display:grid;grid-template-columns:repeat(2,1fr);gap:24px;margin:0}
.ng-hire>div{background:#fff;border-radius:14px;padding:24px 26px;box-shadow:0 1px 2px rgba(29,22,48,.06),0 14px 32px -18px rgba(29,22,48,.3);border-top:3px solid #2d2257}
.ng-hire h2{margin:0 0 10px;font-size:1.1em;font-weight:600;color:#1d1630}
.ng-hire ul{margin:0;padding-left:1.1em;line-height:1.75}
@media (max-width:700px){.ng-hire{grid-template-columns:1fr}}

/* ---------- Proof strip (logos + quote) ---------- */
.ng-proof{display:grid;grid-template-columns:1fr;gap:28px;margin:0}
.ng-quote{margin:0;padding:22px 26px;border-left:4px solid #2d2257;background:#fff;border-radius:0 14px 14px 0}
.ng-quote p{margin:0 0 8px;font-size:1.1em;line-height:1.55;color:#1d1630}
.ng-quote cite{font-style:normal;font-size:.9em;color:#4a3d78;font-weight:600}

/* ---------- Landing page parts ---------- */
.ng-lhero h1{margin:0 0 14px;font-size:clamp(30px,3.6vw,54px);line-height:1.08;font-weight:600;color:#1d1630;max-width:20ch}
.ng-lhero p.ng-lead{margin:0 0 22px;max-width:56ch;font-size:1.1em;line-height:1.6}
.ng-btnrow{display:flex;flex-wrap:wrap;gap:12px;align-items:center}
.ng-steps{counter-reset:s;display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:24px;margin:0;padding:0;list-style:none}
.ng-steps li{counter-increment:s;position:relative;padding-top:48px}
.ng-steps li::before{content:counter(s);position:absolute;top:0;left:0;width:36px;height:36px;border-radius:50%;background:#2d2257;color:#fff;font-weight:600;display:flex;align-items:center;justify-content:center}
.ng-steps h3{margin:0 0 6px;font-size:1.1em;color:#1d1630}
.ng-steps p{margin:0;line-height:1.6}
.ng-faq details{border-bottom:1px solid #e0dcec;padding:16px 0}
.ng-faq summary{cursor:pointer;font-weight:600;color:#1d1630;list-style:none;display:flex;justify-content:space-between;gap:16px}
.ng-faq summary::-webkit-details-marker{display:none}
.ng-faq summary::after{content:"+";font-size:1.3em;line-height:1;color:#4a3d78}
.ng-faq details[open] summary::after{content:"\2212"}
.ng-faq details p{margin:12px 0 0;line-height:1.7;max-width:68ch}
.ng-band{border-radius:16px;background:#1d1630;color:#fff;padding:clamp(28px,4vw,52px);text-align:left}
.ng-band h2{margin:0 0 8px;color:#fff;font-size:clamp(22px,2.4vw,32px)}
.ng-band p{margin:0 0 18px;color:#e6e2f4;max-width:56ch}

/* ---------- Footer ---------- */
.ng-footer{background:#0f0b1c;color:#cfc9e6;padding:40px 12% 28px;display:grid;grid-template-columns:1.4fr 1fr 1fr;gap:28px;font-size:.92em}
.ng-footer a{color:#fff;text-decoration:none}
.ng-footer a:hover{text-decoration:underline}
.ng-footer h2{margin:0 0 10px;font-size:.78em;letter-spacing:.14em;text-transform:uppercase;color:#bdb2ec;font-weight:600}
.ng-footer ul{list-style:none;margin:0;padding:0;line-height:2}
.ng-footer p{margin:0 0 6px;color:inherit;line-height:1.6}
.ng-footer__legal{grid-column:1/-1;border-top:1px solid rgba(255,255,255,.12);padding-top:18px;font-size:.88em}
@media (max-width:760px){.ng-footer{grid-template-columns:1fr}}

/* ---------- v3.1 additions ---------- */
.ng-h2{margin:0 0 14px;font-size:clamp(22px,1.9vw,28px);line-height:1.2;font-weight:600;color:#1d1630}
.ng-video-same .spi-video{width:min(100%,calc((100vh - 310px) * 1.7778));width:min(100%,calc((100svh - 310px) * 1.7778));min-width:min(100%,300px);margin:0}
.ng-dummy{background:#fff1a8;color:#3a2f00;padding:.05em .3em;border-radius:3px;font-style:normal}
.ng-todo{color:#4a3d78;font-style:italic}
.ng-prose a.ng-textlink,.ng-seo a.ng-textlink{text-decoration:underline}
.ng-seo{max-width:68ch}
.ng-seo h2{margin:0 0 12px;font-size:clamp(22px,1.9vw,28px);line-height:1.2;font-weight:600;color:#1d1630}
.ng-seo h3{margin:26px 0 8px;font-size:clamp(18px,1.4vw,21px);line-height:1.25;font-weight:600;color:#1d1630}
.ng-seo p{margin:0 0 14px;line-height:1.7}
.ng-quote--dummy{border-left-color:#d9b400}

/* v4 additions */
.ng-intro{max-width:760px}
.ng-kicker{margin:0 0 14px;font-size:.78em;line-height:1.4;font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:#4a3d78}
.ng-intro h1{margin:0 0 14px;font-size:clamp(28px,2.8vw,44px);line-height:1.12;font-weight:600;color:#1d1630}
.ng-price{border:1px solid rgba(45,34,87,.15);border-radius:14px;padding:24px 28px;background:#faf9fd}
.ng-price p{margin:0}
.ng-photo-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}
.ng-photo{aspect-ratio:4/3;border-radius:10px;background:#efecf7;display:flex;align-items:center;justify-content:center;color:#4a3d78}
@media(max-width:640px){.ng-photo-grid{grid-template-columns:repeat(2,1fr)}}
.ng-stage__devices--solo{justify-content:center}.ng-stage__devices--solo .ng-browser{max-width:min(980px,100%)}
