/*
Theme Name: Nile Insight Consulting
Theme URI: https://nic-ssco.ltd
Author: Nile Insight Consulting Limited
Author URI: https://nic-ssco.ltd
Description: A modern, data-forward WordPress theme built for Nile Insight Consulting Limited — a Monitoring, Evaluation & Communications consultancy. Includes custom homepage, services, team, case studies and contact layouts designed around the firm's brand ("Turning Data into Dignity").
Version: 1.0.2
Requires at least: 6.4
Tested up to: 6.6
Requires PHP: 7.4
License: GNU General Public License v2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
Text Domain: nile-insight
Tags: custom-menu, custom-logo, featured-images, translation-ready, threaded-comments, block-styles, wide-blocks, one-column, two-columns

This theme, like WordPress, is licensed under the GPL.
*/

/* =========================================================
   1. DESIGN TOKENS
   ========================================================= */
:root{
  /* Brand palette, sourced from the Nile Insight logo */
  --nic-navy-900: #0B2A45;
  --nic-navy-800: #10375C;
  --nic-navy-700: #163F66;
  --nic-blue-600: #1C8FCB;
  --nic-blue-500: #2299D1;
  --nic-blue-300: #7FC4E8;
  --nic-blue-100: #E7F4FB;
  --nic-coral-500: #F3A481;
  --nic-coral-100: #FDEEE5;
  --nic-green-500: #8FCB9B;
  --nic-green-100: #EAF7EC;

  --nic-ink: #152436;
  --nic-slate: #56697C;
  --nic-slate-light: #8695A6;
  --nic-border: #E3EAF1;
  --nic-bg: #FFFFFF;
  --nic-bg-soft: #F5F9FC;
  --nic-bg-navy-soft: #EAF1F7;

  --nic-radius-sm: 10px;
  --nic-radius-md: 16px;
  --nic-radius-lg: 26px;
  --nic-radius-pill: 999px;

  --nic-shadow-sm: 0 2px 10px rgba(16,55,92,0.06);
  --nic-shadow-md: 0 12px 30px rgba(16,55,92,0.10);
  --nic-shadow-lg: 0 24px 60px rgba(16,55,92,0.16);

  --nic-container: 1220px;
  --nic-font-head: 'Poppins', 'Segoe UI', Arial, sans-serif;
  --nic-font-body: 'Inter', 'Segoe UI', Arial, sans-serif;
  --nic-ease: cubic-bezier(.22,.8,.28,1);
}

/* =========================================================
   2. RESET & BASE
   ========================================================= */
*,*::before,*::after{ box-sizing:border-box; }
html{ scroll-behavior:smooth; }
body{
  margin:0;
  font-family:var(--nic-font-body);
  color:var(--nic-ink);
  background:var(--nic-bg);
  font-size:16px;
  line-height:1.7;
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
}
img{ max-width:100%; height:auto; display:block; }
a{ color:inherit; text-decoration:none; }
ul{ margin:0; padding:0; list-style:none; }
button{ font-family:inherit; cursor:pointer; }
input,textarea,select{ font-family:inherit; font-size:1rem; }
h1,h2,h3,h4,h5,h6{
  font-family:var(--nic-font-head);
  color:var(--nic-navy-900);
  line-height:1.22;
  margin:0 0 .6em;
  font-weight:600;
  letter-spacing:-0.01em;
}
h1{ font-size:clamp(2.2rem,4vw + 1rem,3.6rem); font-weight:700; }
h2{ font-size:clamp(1.7rem,2.4vw + 1rem,2.5rem); font-weight:700; }
h3{ font-size:1.3rem; }
p{ margin:0 0 1.2em; color:var(--nic-slate); }
.screen-reader-text{ position:absolute!important; clip:rect(1px,1px,1px,1px); width:1px; height:1px; overflow:hidden; }
.skip-link{ position:absolute; left:-999px; top:0; background:var(--nic-navy-900); color:#fff; padding:12px 20px; z-index:9999; border-radius:0 0 8px 0; }
.skip-link:focus{ left:0; }

/* =========================================================
   3. LAYOUT HELPERS
   ========================================================= */
.nic-container{ max-width:var(--nic-container); margin:0 auto; padding:0 24px; }
.nic-section{ padding:96px 0; position:relative; }
.nic-section--tight{ padding:64px 0; }
.nic-section--soft{ background:var(--nic-bg-soft); }
.nic-section--navy{ background:linear-gradient(150deg,var(--nic-navy-900),var(--nic-navy-800) 60%,var(--nic-navy-700)); color:#fff; }
.nic-section--navy h2, .nic-section--navy h3{ color:#fff; }
.nic-section--navy p{ color:rgba(255,255,255,.78); }
.nic-grid{ display:grid; gap:32px; }
.nic-grid--2{ grid-template-columns:repeat(2,1fr); }
.nic-grid--3{ grid-template-columns:repeat(3,1fr); }
.nic-grid--4{ grid-template-columns:repeat(4,1fr); }
.nic-eyebrow{
  display:inline-flex; align-items:center; gap:8px;
  font-family:var(--nic-font-head); font-weight:600; font-size:.8rem;
  letter-spacing:.14em; text-transform:uppercase; color:var(--nic-blue-600);
  background:var(--nic-blue-100); padding:8px 16px; border-radius:var(--nic-radius-pill);
  margin-bottom:18px;
}
.nic-eyebrow::before{ content:""; width:6px; height:6px; border-radius:50%; background:var(--nic-coral-500); }
.nic-section--navy .nic-eyebrow{ background:rgba(255,255,255,.1); color:var(--nic-blue-300); }
.nic-section-head{ max-width:680px; margin:0 0 56px; }
.nic-section-head.center{ margin-left:auto; margin-right:auto; text-align:center; }
.nic-lede{ font-size:1.1rem; }

/* =========================================================
   4. BUTTONS
   ========================================================= */
.nic-btn{
  display:inline-flex; align-items:center; justify-content:center; gap:10px;
  font-family:var(--nic-font-head); font-weight:600; font-size:.95rem;
  padding:15px 30px; border-radius:var(--nic-radius-pill); border:2px solid transparent;
  transition:all .28s var(--nic-ease); white-space:nowrap;
}
.nic-btn svg{ width:16px; height:16px; transition:transform .28s var(--nic-ease); }
.nic-btn:hover svg{ transform:translateX(4px); }
.nic-btn--primary{ background:var(--nic-coral-500); color:var(--nic-navy-900); box-shadow:0 10px 24px rgba(243,164,129,.35); }
.nic-btn--primary:hover{ background:#f0925e; transform:translateY(-2px); box-shadow:0 14px 30px rgba(243,164,129,.45); }
.nic-btn--outline{ border-color:rgba(255,255,255,.5); color:#fff; }
.nic-btn--outline:hover{ background:rgba(255,255,255,.12); border-color:#fff; }
.nic-btn--ghost{ border-color:var(--nic-border); color:var(--nic-navy-900); }
.nic-btn--ghost:hover{ border-color:var(--nic-blue-500); color:var(--nic-blue-600); }
.nic-btn--sm{ padding:11px 22px; font-size:.85rem; }
.nic-btn--block{ width:100%; }

/* =========================================================
   5. HEADER / NAV
   ========================================================= */
.nic-topbar{
  background:var(--nic-navy-900); color:rgba(255,255,255,.85); font-size:.82rem;
}
.nic-topbar .nic-container{ display:flex; align-items:center; justify-content:space-between; padding-top:9px; padding-bottom:9px; }
.nic-topbar__contacts{ display:flex; gap:26px; flex-wrap:wrap; }
.nic-topbar__contacts a{ display:inline-flex; align-items:center; gap:7px; }
.nic-topbar__contacts svg{ width:14px; height:14px; flex-shrink:0; color:var(--nic-coral-500); }
.nic-topbar__social{ display:flex; gap:14px; }
.nic-topbar__social a{ width:26px; height:26px; display:flex; align-items:center; justify-content:center; border-radius:50%; background:rgba(255,255,255,.08); transition:background .2s; }
.nic-topbar__social a:hover{ background:var(--nic-blue-500); }
.nic-topbar__social svg{ width:13px; height:13px; }

.nic-header{
  position:sticky; top:0; z-index:500; background:#fff;
  border-bottom:1px solid var(--nic-border);
  transition:box-shadow .3s;
}
.nic-header.is-scrolled{ box-shadow:0 6px 24px rgba(16,55,92,.08); }
.nic-header__inner{ display:flex; align-items:center; justify-content:space-between; padding:14px 0; }
.nic-logo{ display:flex; align-items:center; gap:12px; }
.nic-logo img{ height:46px; width:auto; }
.nic-logo__text strong{ display:block; font-family:var(--nic-font-head); font-weight:700; color:var(--nic-navy-900); font-size:1.02rem; line-height:1.15; }
.nic-logo__text span{ display:block; font-size:.72rem; color:var(--nic-coral-500); font-style:italic; font-weight:500; }

.nic-nav{ display:flex; align-items:center; gap:8px; }
.nic-nav ul{ display:flex; align-items:center; gap:4px; }
.nic-nav a{ display:flex; align-items:center; padding:10px 16px; font-family:var(--nic-font-head); font-weight:500; font-size:.94rem; color:var(--nic-navy-800); border-radius:var(--nic-radius-pill); transition:all .2s; }
.nic-nav a:hover, .nic-nav .current-menu-item > a{ background:var(--nic-blue-100); color:var(--nic-blue-600); }
.nic-nav .menu-item-has-children{ position:relative; }
.nic-nav .sub-menu{ position:absolute; top:calc(100% + 10px); left:0; min-width:230px; background:#fff; border-radius:var(--nic-radius-md); box-shadow:var(--nic-shadow-lg); border:1px solid var(--nic-border); padding:10px; opacity:0; visibility:hidden; transform:translateY(8px); transition:all .22s var(--nic-ease); }
.nic-nav .menu-item-has-children:hover > .sub-menu{ opacity:1; visibility:visible; transform:translateY(0); }
.nic-nav .sub-menu a{ border-radius:var(--nic-radius-sm); padding:10px 14px; }
.nic-header__cta{ display:flex; align-items:center; gap:14px; }
.nic-burger{ display:none; width:44px; height:44px; border-radius:50%; border:1px solid var(--nic-border); background:#fff; align-items:center; justify-content:center; flex-direction:column; gap:4px; }
.nic-burger span{ width:18px; height:2px; background:var(--nic-navy-900); border-radius:2px; transition:all .25s; }
.nic-burger.is-active span:nth-child(1){ transform:translateY(6px) rotate(45deg); }
.nic-burger.is-active span:nth-child(2){ opacity:0; }
.nic-burger.is-active span:nth-child(3){ transform:translateY(-6px) rotate(-45deg); }

/* =========================================================
   6. HERO
   ========================================================= */
.nic-hero{ position:relative; overflow:hidden; padding:100px 0 120px; background:var(--nic-bg-soft); }
.nic-hero__bg{ position:absolute; inset:0; z-index:0; opacity:.9; }
.nic-hero__grid{ position:relative; z-index:2; display:grid; grid-template-columns:1.05fr .95fr; gap:60px; align-items:center; }
.nic-hero__tag{ color:var(--nic-coral-500); font-family:var(--nic-font-head); font-weight:600; letter-spacing:.02em; font-style:italic; font-size:1.15rem; margin-bottom:14px; display:block; }
.nic-hero h1{ margin-bottom:22px; }
.nic-hero h1 em{ font-style:normal; color:var(--nic-blue-600); position:relative; }
.nic-hero__lede{ font-size:1.15rem; max-width:520px; margin-bottom:34px; }
.nic-hero__cta{ display:flex; gap:16px; flex-wrap:wrap; margin-bottom:46px; }
.nic-hero__proof{ display:flex; gap:34px; flex-wrap:wrap; }
.nic-hero__proof div{ }
.nic-hero__proof strong{ display:block; font-family:var(--nic-font-head); font-size:1.7rem; color:var(--nic-navy-900); font-weight:700; }
.nic-hero__proof span{ font-size:.85rem; color:var(--nic-slate); }

.nic-hero__art{ position:relative; }
.nic-hero__card{ background:#fff; border-radius:var(--nic-radius-lg); box-shadow:var(--nic-shadow-lg); padding:34px; position:relative; z-index:2; }
.nic-hero__bars{ display:flex; align-items:flex-end; gap:14px; height:150px; margin-bottom:22px; }
.nic-hero__bars i{ flex:1; border-radius:10px 10px 4px 4px; display:block; animation:nicBarGrow 1.4s var(--nic-ease) both; }
.nic-hero__bars i:nth-child(1){ height:38%; background:var(--nic-green-500); animation-delay:.05s; }
.nic-hero__bars i:nth-child(2){ height:62%; background:var(--nic-coral-500); animation-delay:.15s; }
.nic-hero__bars i:nth-child(3){ height:80%; background:var(--nic-blue-500); animation-delay:.25s; }
.nic-hero__bars i:nth-child(4){ height:100%; background:var(--nic-navy-800); animation-delay:.35s; }
@keyframes nicBarGrow{ from{ transform:scaleY(0); transform-origin:bottom; opacity:0; } to{ transform:scaleY(1); opacity:1; } }
.nic-hero__card-foot{ display:flex; align-items:center; justify-content:space-between; }
.nic-hero__card-foot strong{ display:block; font-family:var(--nic-font-head); color:var(--nic-navy-900); }
.nic-hero__card-foot span{ font-size:.82rem; color:var(--nic-slate-light); }
.nic-hero__badge{ position:absolute; z-index:3; background:#fff; box-shadow:var(--nic-shadow-md); border-radius:var(--nic-radius-md); padding:14px 18px; display:flex; align-items:center; gap:10px; font-family:var(--nic-font-head); font-weight:600; font-size:.85rem; color:var(--nic-navy-900); }
.nic-hero__badge svg{ width:20px; height:20px; color:var(--nic-green-500); flex-shrink:0; }
.nic-hero__badge--1{ top:-24px; right:-18px; }
.nic-hero__badge--2{ bottom:-22px; left:-26px; }
.nic-hero__blob{ position:absolute; border-radius:50%; filter:blur(0); z-index:1; }
.nic-hero__blob--a{ width:340px; height:340px; background:radial-gradient(circle,var(--nic-blue-100),transparent 70%); top:-60px; right:-60px; }
.nic-hero__blob--b{ width:220px; height:220px; background:radial-gradient(circle,var(--nic-coral-100),transparent 70%); bottom:-40px; left:-60px; }
.nic-hero__wave{ position:absolute; left:0; right:0; bottom:0; z-index:1; opacity:.5; }

/* logos / trust strip */
.nic-trust{ padding:36px 0; border-top:1px solid var(--nic-border); border-bottom:1px solid var(--nic-border); }
.nic-trust .nic-container{ display:flex; align-items:center; gap:40px; flex-wrap:wrap; justify-content:space-between; }
.nic-trust__label{ font-family:var(--nic-font-head); font-weight:600; font-size:.82rem; color:var(--nic-slate-light); text-transform:uppercase; letter-spacing:.1em; white-space:nowrap; }
.nic-trust__items{ display:flex; gap:36px; flex-wrap:wrap; align-items:center; opacity:.75; }
.nic-trust__items span{ font-family:var(--nic-font-head); font-weight:600; color:var(--nic-navy-800); font-size:1rem; }

/* =========================================================
   7. STATS BAR
   ========================================================= */
.nic-stats{ background:var(--nic-navy-900); padding:0; position:relative; overflow:hidden; }
.nic-stats::before{ content:""; position:absolute; inset:0; background:radial-gradient(circle at 20% 20%,rgba(34,153,209,.25),transparent 45%),radial-gradient(circle at 85% 80%,rgba(243,164,129,.18),transparent 45%); }
.nic-stats .nic-grid--4{ position:relative; z-index:1; padding:56px 0; gap:24px; }
.nic-stat{ text-align:center; border-right:1px solid rgba(255,255,255,.12); }
.nic-stat:last-child{ border-right:none; }
.nic-stat strong{ display:block; font-family:var(--nic-font-head); font-size:2.6rem; font-weight:700; color:#fff; }
.nic-stat strong span{ color:var(--nic-coral-500); }
.nic-stat small{ color:rgba(255,255,255,.7); font-size:.86rem; letter-spacing:.03em; }

/* =========================================================
   8. SERVICES
   ========================================================= */
.nic-services-grid{ grid-template-columns:repeat(4,1fr); }
.nic-service-card{
  background:#fff; border:1px solid var(--nic-border); border-radius:var(--nic-radius-md);
  padding:34px 28px; transition:all .3s var(--nic-ease); position:relative; overflow:hidden;
}
.nic-service-card::after{ content:""; position:absolute; inset:0; border-radius:inherit; padding:1px; background:linear-gradient(135deg,var(--nic-blue-500),var(--nic-coral-500)); opacity:0; transition:opacity .3s; -webkit-mask:linear-gradient(#fff 0 0) content-box,linear-gradient(#fff 0 0); -webkit-mask-composite:xor; mask-composite:exclude; pointer-events:none; }
.nic-service-card:hover{ transform:translateY(-8px); box-shadow:var(--nic-shadow-md); }
.nic-service-card:hover::after{ opacity:1; }
.nic-service-card__icon{ width:56px; height:56px; border-radius:16px; display:flex; align-items:center; justify-content:center; margin-bottom:22px; background:var(--nic-blue-100); color:var(--nic-blue-600); }
.nic-service-card:nth-child(4n+2) .nic-service-card__icon{ background:var(--nic-coral-100); color:#d97f52; }
.nic-service-card:nth-child(4n+3) .nic-service-card__icon{ background:var(--nic-green-100); color:#3f9451; }
.nic-service-card:nth-child(4n+4) .nic-service-card__icon{ background:var(--nic-bg-navy-soft); color:var(--nic-navy-800); }
.nic-service-card__icon svg{ width:26px; height:26px; }
.nic-service-card h3{ font-size:1.08rem; margin-bottom:10px; }
.nic-service-card p{ font-size:.92rem; margin-bottom:14px; }
.nic-service-card__link{ font-family:var(--nic-font-head); font-weight:600; font-size:.85rem; color:var(--nic-blue-600); display:inline-flex; align-items:center; gap:6px; }
.nic-service-card__link svg{ width:14px; height:14px; transition:transform .25s; }
.nic-service-card:hover .nic-service-card__link svg{ transform:translateX(4px); }
.nic-services-cta{ margin-top:52px; text-align:center; }

/* =========================================================
   9. ABOUT / SPLIT SECTIONS
   ========================================================= */
.nic-split{ display:grid; grid-template-columns:1fr 1fr; gap:64px; align-items:center; }
.nic-split.reverse .nic-split__media{ order:2; }
.nic-split__media{ position:relative; }
.nic-split__panel{ background:linear-gradient(150deg,var(--nic-navy-800),var(--nic-navy-900)); border-radius:var(--nic-radius-lg); padding:48px; color:#fff; position:relative; overflow:hidden; min-height:380px; display:flex; flex-direction:column; justify-content:center; }
.nic-split__panel::before{ content:""; position:absolute; width:260px; height:260px; border-radius:50%; background:radial-gradient(circle,rgba(34,153,209,.35),transparent 70%); top:-90px; right:-90px; }
.nic-split__panel .nic-donut{ width:150px; height:150px; border-radius:50%; background:conic-gradient(var(--nic-coral-500) 0 65%, var(--nic-blue-500) 65% 88%, var(--nic-green-500) 88% 100%); display:flex; align-items:center; justify-content:center; margin-bottom:28px; position:relative; z-index:1; }
.nic-split__panel .nic-donut span{ width:96px; height:96px; border-radius:50%; background:var(--nic-navy-900); display:flex; align-items:center; justify-content:center; font-family:var(--nic-font-head); font-weight:700; font-size:1.3rem; }
.nic-split__list{ display:flex; flex-direction:column; gap:16px; margin-top:8px; }
.nic-check-item{ display:flex; gap:14px; align-items:flex-start; }
.nic-check-item__mark{ width:26px; height:26px; border-radius:50%; background:var(--nic-green-100); color:#3f9451; display:flex; align-items:center; justify-content:center; flex-shrink:0; margin-top:2px; }
.nic-check-item__mark svg{ width:14px; height:14px; }
.nic-check-item strong{ display:block; font-family:var(--nic-font-head); color:var(--nic-navy-900); margin-bottom:2px; font-size:.98rem; }
.nic-check-item p{ margin:0; font-size:.9rem; }

/* feature rows (what sets us apart) */
.nic-feature-row{ display:flex; gap:22px; padding:26px 0; border-bottom:1px solid var(--nic-border); }
.nic-feature-row:last-child{ border-bottom:none; }
.nic-feature-row__num{ font-family:var(--nic-font-head); font-weight:700; font-size:1.6rem; color:var(--nic-border); width:56px; flex-shrink:0; }
.nic-feature-row:hover .nic-feature-row__num{ color:var(--nic-coral-500); }
.nic-feature-row h3{ margin-bottom:6px; font-size:1.1rem; }
.nic-feature-row p{ margin:0; }

/* =========================================================
   10. TARGET CLIENTS / PROCESS
   ========================================================= */
.nic-client-card{ background:#fff; border-radius:var(--nic-radius-md); border:1px solid var(--nic-border); padding:36px 30px; text-align:left; transition:all .3s; }
.nic-client-card:hover{ box-shadow:var(--nic-shadow-md); border-color:transparent; transform:translateY(-6px); }
.nic-client-card__icon{ width:52px; height:52px; border-radius:14px; background:var(--nic-navy-900); color:#fff; display:flex; align-items:center; justify-content:center; margin-bottom:20px; }
.nic-client-card__icon svg{ width:24px; height:24px; }

.nic-process{ counter-reset:nic-step; position:relative; }
.nic-process::before{ content:""; position:absolute; top:34px; left:0; right:0; height:2px; background:var(--nic-border); z-index:0; display:none; }
.nic-process-step{ text-align:center; position:relative; z-index:1; }
.nic-process-step__num{ width:68px; height:68px; margin:0 auto 20px; border-radius:50%; background:#fff; border:2px solid var(--nic-border); display:flex; align-items:center; justify-content:center; font-family:var(--nic-font-head); font-weight:700; font-size:1.3rem; color:var(--nic-navy-900); transition:all .3s; }
.nic-process-step:hover .nic-process-step__num{ background:var(--nic-navy-900); color:#fff; border-color:var(--nic-navy-900); }
.nic-process-step h3{ font-size:1.02rem; margin-bottom:8px; }
.nic-process-step p{ font-size:.9rem; }

/* =========================================================
   11. TEAM
   ========================================================= */
.nic-dept-tabs{ display:flex; flex-wrap:wrap; gap:10px; justify-content:center; margin-bottom:44px; }
.nic-dept-tabs button{ padding:10px 20px; border-radius:var(--nic-radius-pill); border:1px solid var(--nic-border); background:#fff; font-family:var(--nic-font-head); font-weight:500; font-size:.86rem; color:var(--nic-slate); transition:all .2s; }
.nic-dept-tabs button.is-active,.nic-dept-tabs button:hover{ background:var(--nic-navy-900); color:#fff; border-color:var(--nic-navy-900); }
.nic-team-grid{ grid-template-columns:repeat(4,1fr); }
.nic-team-card{ text-align:center; }
.nic-team-card__photo{ position:relative; border-radius:var(--nic-radius-md); overflow:hidden; margin-bottom:18px; aspect-ratio:1/1; background:linear-gradient(150deg,var(--nic-blue-100),var(--nic-bg-soft)); display:flex; align-items:center; justify-content:center; }
.nic-team-card__photo img{ width:100%; height:100%; object-fit:cover; }
.nic-team-card__photo .nic-avatar-fallback{ width:64px; height:64px; border-radius:50%; background:var(--nic-navy-900); color:#fff; display:flex; align-items:center; justify-content:center; font-family:var(--nic-font-head); font-weight:700; font-size:1.3rem; }
.nic-team-card__social{ position:absolute; bottom:14px; left:50%; transform:translateX(-50%) translateY(12px); display:flex; gap:8px; opacity:0; transition:all .25s; }
.nic-team-card__photo:hover .nic-team-card__social{ opacity:1; transform:translateX(-50%) translateY(0); }
.nic-team-card__social a{ width:32px; height:32px; border-radius:50%; background:#fff; display:flex; align-items:center; justify-content:center; box-shadow:var(--nic-shadow-sm); }
.nic-team-card__social svg{ width:14px; height:14px; color:var(--nic-navy-900); }
.nic-team-card h3{ font-size:1rem; margin-bottom:3px; }
.nic-team-card span{ font-size:.84rem; color:var(--nic-blue-600); font-family:var(--nic-font-head); font-weight:500; }

.nic-org-chart{ background:var(--nic-bg-soft); border-radius:var(--nic-radius-lg); padding:56px 40px; }
.nic-org-level{ display:flex; justify-content:center; gap:18px; flex-wrap:wrap; margin-bottom:18px; }
.nic-org-node{ background:#fff; border:1px solid var(--nic-border); border-radius:var(--nic-radius-sm); padding:14px 22px; font-family:var(--nic-font-head); font-weight:600; font-size:.9rem; color:var(--nic-navy-900); box-shadow:var(--nic-shadow-sm); }
.nic-org-node--root{ background:var(--nic-navy-900); color:#fff; }
.nic-org-node--dept{ background:var(--nic-coral-100); color:#a5522a; border-color:transparent; }

/* =========================================================
   12. CASE STUDIES / INSIGHTS
   ========================================================= */
.nic-case-grid{ grid-template-columns:repeat(3,1fr); }
.nic-case-card{ border-radius:var(--nic-radius-md); overflow:hidden; background:#fff; border:1px solid var(--nic-border); transition:all .3s; }
.nic-case-card:hover{ box-shadow:var(--nic-shadow-md); transform:translateY(-6px); }
.nic-case-card__media{ aspect-ratio:16/10; background:linear-gradient(135deg,var(--nic-navy-800),var(--nic-blue-600)); position:relative; display:flex; align-items:flex-end; padding:20px; }
.nic-case-card__media img{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }
.nic-case-card__tag{ position:relative; z-index:1; background:rgba(255,255,255,.92); color:var(--nic-navy-900); font-family:var(--nic-font-head); font-weight:600; font-size:.75rem; padding:6px 14px; border-radius:var(--nic-radius-pill); }
.nic-case-card__body{ padding:26px; }
.nic-case-card__body h3{ font-size:1.05rem; margin-bottom:10px; }
.nic-case-card__meta{ display:flex; gap:18px; margin-top:16px; padding-top:16px; border-top:1px solid var(--nic-border); }
.nic-case-card__meta div strong{ display:block; font-family:var(--nic-font-head); color:var(--nic-navy-900); font-size:1.1rem; }
.nic-case-card__meta div span{ font-size:.76rem; color:var(--nic-slate-light); }

.nic-post-grid{ grid-template-columns:repeat(3,1fr); }
.nic-post-card{ background:#fff; border:1px solid var(--nic-border); border-radius:var(--nic-radius-md); overflow:hidden; transition:all .3s; }
.nic-post-card:hover{ box-shadow:var(--nic-shadow-md); transform:translateY(-6px); }
.nic-post-card__media{ display:block; aspect-ratio:16/10; background:var(--nic-bg-soft); overflow:hidden; }
.nic-post-card__media img{ width:100%; height:100%; object-fit:cover; transition:transform .5s; }
.nic-post-card:hover .nic-post-card__media img{ transform:scale(1.07); }
.nic-post-card__body{ padding:24px; }
.nic-post-card__cat{ font-family:var(--nic-font-head); font-weight:600; font-size:.72rem; letter-spacing:.06em; text-transform:uppercase; color:var(--nic-coral-500); }
.nic-post-card h3{ font-size:1.05rem; margin:8px 0 10px; }
.nic-post-card__meta{ font-size:.8rem; color:var(--nic-slate-light); display:flex; gap:14px; align-items:center; }

/* =========================================================
   13. TESTIMONIALS / CTA
   ========================================================= */
.nic-testimonial-wrap{ position:relative; max-width:760px; margin:0 auto; text-align:center; }
.nic-testimonial-wrap svg.nic-quote{ width:44px; height:44px; color:var(--nic-blue-300); margin:0 auto 26px; }
.nic-testimonial-quote{ font-family:var(--nic-font-head); font-size:1.4rem; font-weight:500; color:#fff; line-height:1.5; margin-bottom:30px; }
.nic-testimonial-person{ display:flex; align-items:center; justify-content:center; gap:14px; }
.nic-testimonial-avatar{ width:52px; height:52px; border-radius:50%; background:var(--nic-blue-500); color:#fff; display:flex; align-items:center; justify-content:center; font-family:var(--nic-font-head); font-weight:700; }
.nic-testimonial-person strong{ display:block; color:#fff; font-family:var(--nic-font-head); }
.nic-testimonial-person span{ color:rgba(255,255,255,.65); font-size:.85rem; }
.nic-dots{ display:flex; gap:8px; justify-content:center; margin-top:36px; }
.nic-dots button{ width:9px; height:9px; border-radius:50%; background:rgba(255,255,255,.3); border:none; padding:0; }
.nic-dots button.is-active{ background:var(--nic-coral-500); width:22px; border-radius:6px; }

.nic-cta-banner{ background:linear-gradient(120deg,var(--nic-navy-900),var(--nic-blue-600)); border-radius:var(--nic-radius-lg); padding:64px 60px; display:flex; align-items:center; justify-content:space-between; gap:40px; flex-wrap:wrap; color:#fff; position:relative; overflow:hidden; }
.nic-cta-banner::before{ content:""; position:absolute; width:300px; height:300px; border-radius:50%; background:radial-gradient(circle,rgba(243,164,129,.25),transparent 70%); right:-60px; bottom:-100px; }
.nic-cta-banner h2{ color:#fff; margin-bottom:10px; max-width:520px; }
.nic-cta-banner p{ color:rgba(255,255,255,.78); margin:0; max-width:480px; }
.nic-cta-banner__actions{ display:flex; gap:16px; position:relative; z-index:1; flex-wrap:wrap; }

/* =========================================================
   14. FOOTER
   ========================================================= */
.nic-footer{ background:var(--nic-navy-900); color:rgba(255,255,255,.72); padding-top:80px; }
.nic-footer h4{ color:#fff; font-family:var(--nic-font-head); font-size:1rem; margin-bottom:22px; }
.nic-footer-grid{ display:grid; grid-template-columns:1.4fr 1fr 1fr 1.2fr; gap:40px; padding-bottom:56px; border-bottom:1px solid rgba(255,255,255,.1); }
.nic-footer-about p{ color:rgba(255,255,255,.65); font-size:.92rem; }
.nic-footer .nic-logo__text strong{ color:#fff; }
.nic-footer-logo{ display:inline-flex; align-items:center; background:#fff; border-radius:var(--nic-radius-sm); padding:12px 18px; margin-bottom:22px; box-shadow:0 8px 20px rgba(0,0,0,.18); }
.nic-footer-logo img{ height:40px; width:auto; display:block; }
.nic-footer-social{ display:flex; gap:10px; margin-top:20px; }
.nic-footer-social a{ width:36px; height:36px; border-radius:50%; background:rgba(255,255,255,.08); display:flex; align-items:center; justify-content:center; transition:background .2s; }
.nic-footer-social a:hover{ background:var(--nic-blue-500); }
.nic-footer-social svg{ width:15px; height:15px; }
.nic-footer-links li{ margin-bottom:12px; }
.nic-footer-links a{ font-size:.92rem; transition:color .2s; }
.nic-footer-links a:hover{ color:var(--nic-coral-500); }
.nic-footer-contact li{ display:flex; gap:12px; margin-bottom:16px; font-size:.9rem; }
.nic-footer-contact svg{ width:16px; height:16px; color:var(--nic-coral-500); flex-shrink:0; margin-top:3px; }
.nic-newsletter-form{ display:flex; margin-top:10px; border-radius:var(--nic-radius-pill); overflow:hidden; background:rgba(255,255,255,.08); padding:5px; }
.nic-newsletter-form input{ flex:1; background:transparent; border:none; padding:10px 16px; color:#fff; outline:none; }
.nic-newsletter-form input::placeholder{ color:rgba(255,255,255,.5); }
.nic-newsletter-form button{ background:var(--nic-coral-500); color:var(--nic-navy-900); border:none; border-radius:var(--nic-radius-pill); padding:10px 18px; font-family:var(--nic-font-head); font-weight:600; font-size:.85rem; }
.nic-footer-bottom{ padding:26px 0; display:flex; justify-content:space-between; align-items:center; flex-wrap:wrap; gap:12px; font-size:.82rem; color:rgba(255,255,255,.55); }
.nic-footer-bottom a{ color:rgba(255,255,255,.55); }
.nic-footer-bottom a:hover{ color:#fff; }

/* =========================================================
   15. PAGE / INNER BANNER
   ========================================================= */
.nic-page-banner{ background:linear-gradient(150deg,var(--nic-navy-900),var(--nic-navy-800)); color:#fff; padding:64px 0 60px; position:relative; overflow:hidden; }
.nic-page-banner::before{ content:""; position:absolute; width:360px; height:360px; border-radius:50%; background:radial-gradient(circle,rgba(34,153,209,.28),transparent 70%); top:-140px; right:-60px; }
.nic-page-banner h1{ color:#fff; margin-bottom:14px; font-size:clamp(1.9rem,3vw + 1rem,2.6rem); }
.nic-breadcrumb{ display:flex; gap:8px; align-items:center; font-size:.86rem; color:rgba(255,255,255,.6); position:relative; z-index:1; }
.nic-breadcrumb a{ color:rgba(255,255,255,.75); }
.nic-breadcrumb a:hover{ color:#fff; }
.nic-page-banner p{ color:rgba(255,255,255,.72); max-width:600px; position:relative; z-index:1; margin-top:14px; margin-bottom:0; }

/* =========================================================
   16. CONTACT
   ========================================================= */
.nic-contact-grid{ grid-template-columns:.85fr 1.15fr; align-items:flex-start; }
.nic-contact-info-card{ background:var(--nic-navy-900); color:#fff; border-radius:var(--nic-radius-lg); padding:42px; }
.nic-contact-info-card h3{ color:#fff; }
.nic-contact-info-card p{ color:rgba(255,255,255,.7); }
.nic-contact-info-list{ display:flex; flex-direction:column; gap:22px; margin-top:26px; }
.nic-contact-info-list li{ display:flex; gap:16px; align-items:flex-start; }
.nic-contact-info-list .ico{ width:44px; height:44px; border-radius:12px; background:rgba(255,255,255,.1); display:flex; align-items:center; justify-content:center; flex-shrink:0; }
.nic-contact-info-list svg{ width:19px; height:19px; color:var(--nic-coral-500); }
.nic-contact-info-list strong{ display:block; color:#fff; font-family:var(--nic-font-head); font-size:.92rem; margin-bottom:3px; }
.nic-contact-info-list span, .nic-contact-info-list a{ font-size:.88rem; color:rgba(255,255,255,.68); }

.nic-form{ background:#fff; border:1px solid var(--nic-border); border-radius:var(--nic-radius-lg); padding:44px; box-shadow:var(--nic-shadow-sm); }
.nic-form-row{ display:grid; grid-template-columns:1fr 1fr; gap:20px; }
.nic-field{ margin-bottom:20px; }
.nic-field label{ display:block; font-family:var(--nic-font-head); font-weight:500; font-size:.86rem; color:var(--nic-navy-900); margin-bottom:8px; }
.nic-field input, .nic-field textarea, .nic-field select{ width:100%; padding:13px 16px; border-radius:var(--nic-radius-sm); border:1px solid var(--nic-border); background:var(--nic-bg-soft); transition:all .2s; color:var(--nic-ink); }
.nic-field input:focus, .nic-field textarea:focus, .nic-field select:focus{ outline:none; border-color:var(--nic-blue-500); background:#fff; box-shadow:0 0 0 4px var(--nic-blue-100); }
.nic-field textarea{ resize:vertical; min-height:140px; }
.nic-form-msg{ display:none; padding:14px 18px; border-radius:var(--nic-radius-sm); font-size:.9rem; margin-bottom:20px; }
.nic-form-msg.is-success{ display:block; background:var(--nic-green-100); color:#2f6f3c; }
.nic-form-msg.is-error{ display:block; background:#FCEAEA; color:#B23B3B; }
.nic-hp-field{ position:absolute; left:-9999px; opacity:0; }
.nic-map-frame{ border-radius:var(--nic-radius-lg); overflow:hidden; margin-top:32px; border:1px solid var(--nic-border); }
.nic-map-frame iframe{ width:100%; height:320px; border:0; display:block; }

/* Default WP comment form fields (outside .nic-field wrappers) */
#comments{ max-width:800px; margin:64px auto 0; }
#comments h3{ margin-bottom:24px; }
.nic-comment-list{ margin:0 0 40px; }
.nic-comment{ border-bottom:1px solid var(--nic-border); padding:22px 0; }
.nic-comment__meta{ display:flex; align-items:center; gap:14px; margin-bottom:10px; }
.nic-comment__meta img{ border-radius:50%; }
.nic-comment__meta strong{ display:block; font-family:var(--nic-font-head); color:var(--nic-navy-900); }
.nic-comment__meta span{ font-size:.8rem; color:var(--nic-slate-light); }
#comments .comment-form p{ margin-bottom:18px; }
#comments .comment-form label{ display:block; font-family:var(--nic-font-head); font-weight:500; font-size:.86rem; color:var(--nic-navy-900); margin-bottom:8px; }
#comments .comment-form input[type="text"],
#comments .comment-form input[type="email"],
#comments .comment-form input[type="url"],
#comments .comment-form textarea{ width:100%; padding:13px 16px; border-radius:var(--nic-radius-sm); border:1px solid var(--nic-border); background:var(--nic-bg-soft); }
#comments .comment-form input:focus,
#comments .comment-form textarea:focus{ outline:none; border-color:var(--nic-blue-500); background:#fff; box-shadow:0 0 0 4px var(--nic-blue-100); }
#comments .form-submit input{ font-family:var(--nic-font-head); font-weight:600; background:var(--nic-coral-500); color:var(--nic-navy-900); border:none; border-radius:var(--nic-radius-pill); padding:13px 28px; }

/* =========================================================
   17. BLOG / SINGLE / ARCHIVE
   ========================================================= */
.nic-single-content{ max-width:800px; margin:0 auto; }
.nic-single-content img{ border-radius:var(--nic-radius-md); }
.nic-single-content h2{ margin-top:1.6em; }
.nic-single-content blockquote{ border-left:4px solid var(--nic-coral-500); padding:6px 26px; font-style:italic; color:var(--nic-navy-800); font-family:var(--nic-font-head); font-size:1.1rem; margin:2em 0; }
.nic-single-content a{ color:var(--nic-blue-600); text-decoration:underline; }
.nic-post-header{ max-width:800px; margin:0 auto 40px; text-align:center; }
.nic-post-header__meta{ display:flex; gap:18px; justify-content:center; font-size:.86rem; color:var(--nic-slate-light); margin-top:14px; }
.nic-post-thumb{ max-width:960px; margin:0 auto 50px; border-radius:var(--nic-radius-lg); overflow:hidden; }
.nic-pagination{ display:flex; justify-content:center; gap:8px; margin-top:56px; }
.nic-pagination a,.nic-pagination span{ min-width:42px; height:42px; display:flex; align-items:center; justify-content:center; border-radius:var(--nic-radius-sm); border:1px solid var(--nic-border); font-family:var(--nic-font-head); font-size:.88rem; }
.nic-pagination .current{ background:var(--nic-navy-900); color:#fff; border-color:var(--nic-navy-900); }
.nic-pagination a:hover{ border-color:var(--nic-blue-500); color:var(--nic-blue-600); }
.nic-sidebar-widget{ background:var(--nic-bg-soft); border-radius:var(--nic-radius-md); padding:28px; margin-bottom:26px; }
.nic-sidebar-widget h4{ font-family:var(--nic-font-head); font-size:1rem; margin-bottom:16px; }
.nic-widget-list li{ padding:10px 0; border-bottom:1px solid var(--nic-border); font-size:.9rem; }
.nic-widget-list li:last-child{ border:none; }

/* =========================================================
   18. 404 / SEARCH
   ========================================================= */
.nic-404{ text-align:center; padding:120px 0; }
.nic-404 .nic-404-num{ font-family:var(--nic-font-head); font-weight:700; font-size:7rem; background:linear-gradient(120deg,var(--nic-navy-900),var(--nic-blue-500)); -webkit-background-clip:text; background-clip:text; color:transparent; line-height:1; margin-bottom:10px; }
.nic-searchform{ display:flex; max-width:480px; margin:34px auto 0; border:1px solid var(--nic-border); border-radius:var(--nic-radius-pill); overflow:hidden; padding:6px; }
.nic-searchform input{ flex:1; border:none; padding:10px 18px; background:transparent; outline:none; }
.nic-searchform button{ background:var(--nic-navy-900); color:#fff; border:none; border-radius:var(--nic-radius-pill); padding:10px 22px; font-family:var(--nic-font-head); font-weight:600; }

/* =========================================================
   18b. LIVE CHAT WIDGET
   ========================================================= */
.nic-chat-launcher{
  position:fixed; right:26px; bottom:26px; z-index:600;
  width:62px; height:62px; border-radius:50%; border:none;
  background:var(--nic-coral-500); color:var(--nic-navy-900);
  display:flex; align-items:center; justify-content:center;
  box-shadow:0 14px 32px rgba(16,55,92,.28); cursor:pointer;
  transition:transform .25s var(--nic-ease), box-shadow .25s;
}
.nic-chat-launcher:hover{ transform:translateY(-3px) scale(1.04); box-shadow:0 18px 38px rgba(16,55,92,.34); }
.nic-chat-launcher svg{ position:absolute; top:50%; left:50%; width:26px; height:26px; margin:-13px 0 0 -13px; transition:opacity .2s, transform .2s; }
.nic-chat-launcher .nic-chat-icon-close{ opacity:0; transform:scale(.6) rotate(-45deg); }
.nic-chat-launcher.is-open .nic-chat-icon-open{ opacity:0; transform:scale(.6) rotate(45deg); }
.nic-chat-launcher.is-open .nic-chat-icon-close{ opacity:1; transform:scale(1) rotate(0); }
.nic-chat-launcher__badge{
  position:absolute; top:-2px; right:-2px; width:16px; height:16px; border-radius:50%;
  background:var(--nic-green-500); border:3px solid #fff;
}
.nic-chat-launcher.is-open .nic-chat-launcher__badge{ display:none; }

.nic-chat-panel{
  position:fixed; right:26px; bottom:102px; z-index:600;
  width:360px; max-width:calc(100vw - 40px); max-height:min(560px, calc(100vh - 140px));
  background:#fff; border-radius:var(--nic-radius-lg); box-shadow:var(--nic-shadow-lg);
  overflow:hidden; display:flex; flex-direction:column;
  opacity:0; visibility:hidden; transform:translateY(16px) scale(.97);
  transform-origin:bottom right; transition:all .28s var(--nic-ease);
}
.nic-chat-panel.is-open{ opacity:1; visibility:visible; transform:translateY(0) scale(1); }

.nic-chat-panel__header{
  background:linear-gradient(120deg,var(--nic-navy-900),var(--nic-navy-800));
  color:#fff; padding:20px 22px; display:flex; align-items:center; gap:12px; flex-shrink:0;
}
.nic-chat-panel__avatar{ width:40px; height:40px; border-radius:50%; background:rgba(255,255,255,.14); display:flex; align-items:center; justify-content:center; flex-shrink:0; }
.nic-chat-panel__avatar svg{ width:20px; height:20px; }
.nic-chat-panel__header strong{ display:block; font-family:var(--nic-font-head); font-size:.98rem; }
.nic-chat-panel__header span{ display:flex; align-items:center; gap:6px; font-size:.78rem; color:rgba(255,255,255,.7); }
.nic-chat-panel__header span::before{ content:""; width:7px; height:7px; border-radius:50%; background:var(--nic-green-500); }

.nic-chat-panel__body{ padding:20px; overflow-y:auto; flex:1; background:var(--nic-bg-soft); }
.nic-chat-bubble{
  background:#fff; border:1px solid var(--nic-border); border-radius:16px 16px 16px 4px;
  padding:14px 16px; font-size:.9rem; color:var(--nic-ink); margin-bottom:16px; box-shadow:var(--nic-shadow-sm);
}
.nic-chat-panel .nic-form-msg{ margin-bottom:14px; }
.nic-chat-panel .nic-field{ margin-bottom:14px; }
.nic-chat-panel .nic-field input,
.nic-chat-panel .nic-field textarea{ background:#fff; padding:11px 14px; font-size:.9rem; }
.nic-chat-panel .nic-field textarea{ min-height:80px; }
.nic-chat-panel .nic-btn{ padding:12px 20px; font-size:.88rem; }

.nic-chat-embed-slot:empty{ display:none; }

@media (max-width:640px){
  .nic-chat-launcher{ right:18px; bottom:18px; width:56px; height:56px; }
  .nic-chat-panel{ right:14px; left:14px; width:auto; bottom:88px; }
}

/* =========================================================
   19. UTILITIES / ANIMATIONS
   ========================================================= */
.nic-reveal{ opacity:0; transform:translateY(28px); transition:opacity .7s var(--nic-ease), transform .7s var(--nic-ease); }
.nic-reveal.is-visible{ opacity:1; transform:translateY(0); }
.nic-reveal-delay-1{ transition-delay:.08s; }
.nic-reveal-delay-2{ transition-delay:.16s; }
.nic-reveal-delay-3{ transition-delay:.24s; }
.nic-reveal-delay-4{ transition-delay:.32s; }
.text-center{ text-align:center; }
.mt-0{ margin-top:0; }

/* alignwide / alignfull (block editor) */
.alignwide{ max-width:1220px; margin-left:auto; margin-right:auto; }
.alignfull{ max-width:none; width:100vw; margin-left:calc(50% - 50vw); }
.aligncenter{ margin-left:auto; margin-right:auto; }

/* =========================================================
   20. RESPONSIVE
   ========================================================= */
@media (max-width:1080px){
  .nic-services-grid, .nic-team-grid{ grid-template-columns:repeat(2,1fr); }
  .nic-case-grid, .nic-post-grid, .nic-grid--3{ grid-template-columns:repeat(2,1fr); }
  .nic-footer-grid{ grid-template-columns:1fr 1fr; }
  .nic-hero__grid{ grid-template-columns:1fr; }
  .nic-hero__art{ max-width:460px; margin:0 auto; }
}
@media (max-width:880px){
  .nic-topbar{ display:none; }
  .nic-nav{ position:fixed; inset:0 0 0 30%; top:0; background:#fff; flex-direction:column; align-items:flex-start; padding:100px 30px 30px; transform:translateX(100%); transition:transform .35s var(--nic-ease); overflow-y:auto; z-index:400; box-shadow:-20px 0 60px rgba(0,0,0,.15); }
  .nic-nav.is-open{ transform:translateX(0); }
  .nic-nav ul{ flex-direction:column; align-items:flex-start; width:100%; gap:0; }
  .nic-nav ul li{ width:100%; }
  .nic-nav a{ width:100%; padding:14px 10px; border-radius:8px; }
  .nic-nav .sub-menu{ position:static; opacity:1; visibility:visible; transform:none; box-shadow:none; border:none; padding-left:14px; display:none; }
  .nic-nav .menu-item-has-children.is-open .sub-menu{ display:block; }
  .nic-burger{ display:flex; }
  .nic-header__cta .nic-btn--ghost{ display:none; }
  .nic-split, .nic-contact-grid{ grid-template-columns:1fr; }
  .nic-split.reverse .nic-split__media{ order:0; }
  .nic-grid--4{ grid-template-columns:repeat(2,1fr); }
  .nic-stat{ border-right:none; border-bottom:1px solid rgba(255,255,255,.12); padding-bottom:18px; }
  .nic-cta-banner{ padding:44px 30px; flex-direction:column; text-align:center; }
  .nic-cta-banner::before{ display:none; }
}
@media (max-width:640px){
  .nic-section{ padding:64px 0; }
  .nic-services-grid, .nic-team-grid, .nic-case-grid, .nic-post-grid, .nic-grid--3, .nic-grid--2, .nic-footer-grid{ grid-template-columns:1fr; }
  .nic-form-row{ grid-template-columns:1fr; }
  .nic-hero{ padding:70px 0 80px; }
  .nic-hero__proof{ gap:22px; }
  .nic-topbar__contacts span:nth-child(2){ display:none; }
}
