/* Homepage editorial composition. Design tokens live in tokens.css. */

.np-home {
  width: 100%;
  max-width: none !important;
  margin: 0 !important;
  padding: 0 !important;
  overflow: hidden;
  background: var(--np-color-paper);
}
.np-home h1, .np-home h2, .np-home h3 { letter-spacing: -.055em; }
.np-home .np-hero {
  position: relative;
  min-height: 680px;
  padding-block: clamp(56px, 7vw, 94px);
  color: #fff;
  background:
    radial-gradient(circle at 84% 20%, var(--np-color-aqua) 0 16%, transparent 16.2%),
    radial-gradient(circle at 91% 78%, transparent 0 17%, var(--np-color-sun) 17.2% 23%, transparent 23.2%),
    linear-gradient(118deg, #1557ff 0 67%, #0739cf 67% 100%);
}
.np-home .np-hero::after {
  content: "SINCE 1999";
  position: absolute;
  right: max(26px, calc((100vw - 1200px)/2 + 20px));
  top: 58px;
  width: 155px;
  height: 155px;
  display: grid;
  place-items: center;
  border-radius: 50%;
  background: var(--np-color-sun);
  color: var(--np-color-ink);
  font: 800 25px/1 var(--np-font-heading);
  text-align: center;
  transform: rotate(8deg);
  box-shadow: 10px 10px 0 var(--np-color-ink);
}
.np-home .np-hero-grid { align-items: center; gap: clamp(32px, 5vw, 74px); }
.np-home .np-hero-copy { position: relative; z-index: 1; }
.np-home .np-hero-copy h1 {
  color: #fff;
  max-width: 780px;
  font-size: clamp(4.2rem, 7.6vw, 7.8rem);
  line-height: .86;
  text-wrap: balance;
}
.np-home .np-accent-word { color: var(--np-color-sun); }
.np-home .np-hero .np-kicker {
  display: inline-block;
  padding: 8px 12px;
  background: var(--np-color-aqua);
  color: var(--np-color-ink);
}
.np-home .np-hero .np-lead { color: #fff; max-width: 620px; font-size: 1.2rem; }
.np-home .np-primary-button .wp-block-button__link {
  background: var(--np-color-coral);
  box-shadow: 6px 6px 0 var(--np-color-ink);
}
.np-home .np-secondary-button .wp-block-button__link {
  color: #fff;
  background: var(--np-color-ink);
  border: 2px solid #fff;
  font-weight: 800;
  box-shadow: 6px 6px 0 var(--np-color-sun);
}
.np-home .np-heritage-card {
  min-height: 440px;
  padding: 42px;
  border: 10px solid #fff;
  background: var(--np-color-ink);
  transform: rotate(3deg);
  box-shadow: 16px 16px 0 var(--np-color-coral);
}
.np-home .np-heritage-card h2 { color:#fff; margin:0; font-size:clamp(1.45rem,2.1vw,2.1rem); line-height:1.08; }
.np-home .np-heritage-card .np-kicker { background: transparent; color: var(--np-color-aqua); padding: 0; }
.np-home .np-year { color: var(--np-color-sun); font-size: clamp(5rem, 8vw, 8.5rem); line-height:.9; letter-spacing: -.09em; margin:0 0 18px; }
.np-home .np-heritage-proof{display:grid;gap:0;margin:18px 0 22px;border-top:2px solid rgb(255 255 255 / 35%)}
.np-home .np-heritage-proof p{display:grid;grid-template-columns:minmax(112px,.72fr) 1.28fr;gap:14px;margin:0;padding:10px 0;border-bottom:1px solid rgb(255 255 255 / 28%);color:#fff;font-size:.76rem;line-height:1.25}
.np-home .np-heritage-proof strong{color:var(--np-color-sun);font-weight:800;text-transform:uppercase;letter-spacing:.05em}
.np-home .np-heritage-proof span{color:#fff}
@media(min-width:922px){
  .np-home .np-heritage-proof p{grid-template-columns:160px minmax(0,1fr);column-gap:24px;align-items:baseline}
  .np-home .np-heritage-proof p:nth-child(n+2) strong::after{content:" —";color:#fff}
}
.np-home .np-areas { background: var(--np-color-aqua); border: 0; padding-block: 21px; }
.np-home .np-area-grid p { font-weight: 800; }
.np-home .np-section { padding-block: clamp(70px, 8vw, 112px); }
.np-home .np-section-heading { font-size: clamp(3rem, 5.4vw, 5.5rem); line-height: .94; max-width: 940px; }
.np-home .np-card-grid { gap: 18px; border: 0; background: transparent; }
.np-home .np-card-grid > .wp-block-column {
  min-height: 330px;
  padding: 34px;
  border: 3px solid var(--np-color-ink) !important;
  box-shadow: 8px 8px 0 var(--np-color-ink);
}
.np-home .np-card-grid > .wp-block-column:nth-child(1) { background: var(--np-color-sun); }
.np-home .np-card-grid > .wp-block-column:nth-child(2) { background: var(--np-color-coral); color: #fff; transform: translateY(24px); }
.np-home .np-card-grid > .wp-block-column:nth-child(3) { background: var(--np-color-aqua); }
.np-home .np-card-grid h3 { font-size: clamp(1.7rem, 2.6vw, 2.5rem); }
.np-home .np-card-grid a { color: inherit; font-weight: 800; }
.np-home .np-dark-section {
  background: linear-gradient(120deg, var(--np-color-ink) 0 56%, #1557ff 56% 100%);
  position: relative;
  color: #fff;
  padding-block: clamp(104px, 10vw, 154px);
}
.np-home .np-dark-section :is(h1,h2,h3,h4,h5,h6,p,li,blockquote) { color:#fff; }
.np-home .np-dark-section .np-kicker { color:var(--np-color-aqua); }
.np-home .np-dark-section a:not(.np-button) { color:var(--np-color-sun); }
.np-home .np-dark-section::after { content:"✦"; position:absolute; right:3.5%; top:auto; bottom:8%; color:var(--np-color-sun); font-size:7rem; line-height:1; pointer-events:none; }
.np-home .np-work-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:42px 34px; }
.np-home .np-work-grid > .wp-block-column { min-width:0; margin:0; }
.np-home .np-project-card { border: 0; background: #fff; padding: 14px 14px 26px; box-shadow: 12px 12px 0 var(--np-color-ink); }
.np-home .np-project-card:nth-child(2) { transform: translateY(42px) rotate(2deg); background: var(--np-color-sun); }
.np-home .np-project-card img { width:100%; aspect-ratio:16/10; object-fit:cover; object-position:top; filter:saturate(1.2); }
.np-home .np-process-grid > .wp-block-column { border-top: 7px solid var(--np-color-coral); }
.np-home .np-process-grid > .wp-block-column:nth-child(2) { border-color: var(--np-color-accent); }
.np-home .np-process-grid > .wp-block-column:nth-child(3) { border-color: var(--np-color-aqua); }
.np-home .np-cta { background: var(--np-color-coral); color: #fff; }
.np-home .np-cta h2, .np-home .np-cta .np-lead, .np-home .np-cta a { color: #fff; }
.np-home .np-cta .np-primary-button .wp-block-button__link { background: var(--np-color-ink); box-shadow: 7px 7px 0 var(--np-color-sun); }

@media (max-width: 781px) {
	.np-home .np-work-grid { grid-template-columns:1fr; gap:32px; }
  .np-home .np-hero { min-height: auto; }
  .np-home .np-hero::after { width: 105px; height: 105px; right: 20px; top: 26px; font-size: 17px; }
  .np-home .np-hero-copy h1 { font-size: clamp(3.6rem, 17vw, 5.2rem); }
  .np-home .np-heritage-card { min-height: 330px; transform: none; }
  .np-home .np-heritage-proof p{grid-template-columns:1fr;gap:3px}
  .np-home .np-card-grid > .wp-block-column:nth-child(2), .np-home .np-project-card:nth-child(2) { transform: none; }
  .np-home .np-dark-section { background: var(--np-color-ink); padding-block:86px; }
  .np-home .np-dark-section::after { right:20px; bottom:22px; font-size:4.5rem; }

	.np-home .np-heritage-card,.np-home .np-heritage-card::before,.np-home .np-hero::after,.np-home .np-heritage-proof p{animation:none}
	.np-home .np-heritage-proof p{opacity:1}
	.np-home .np-heritage-card::before{display:none}
}
/* V3 service-area alignment fix */
@media (min-width: 1001px) {
  .np-home .np-area-grid {
    display: grid !important;
    grid-template-columns: 1.55fr repeat(4, minmax(0, 1fr));
    gap: 24px !important;
  }

  .np-home .np-area-grid > .wp-block-column {
    min-width: 0;
  }
}

/* Homepage hero motion: transforms and opacity only; no additional assets. */
.np-home .np-heritage-card{position:relative;isolation:isolate;animation:np-hero-card-arrive 760ms cubic-bezier(.2,.75,.25,1) both}
.np-home .np-heritage-card::before{content:"";position:absolute;right:-34px;bottom:-30px;z-index:-1;width:92px;height:92px;border:12px solid var(--np-color-aqua);border-radius:50%;opacity:.9;animation:np-hero-orbit 24s linear infinite}
.np-home .np-hero::after{animation:np-hero-badge-drift 16s ease-in-out 900ms infinite alternate}
.np-home .np-heritage-proof p{opacity:0;animation:np-hero-proof-reveal 520ms ease-out forwards}
.np-home .np-heritage-proof p:nth-child(1){animation-delay:480ms}
.np-home .np-heritage-proof p:nth-child(2){animation-delay:590ms}
.np-home .np-heritage-proof p:nth-child(3){animation-delay:700ms}
@keyframes np-hero-card-arrive{from{opacity:.01;transform:translateY(14px) rotate(1deg)}to{opacity:1;transform:translateY(0) rotate(3deg)}}
@keyframes np-hero-proof-reveal{from{opacity:.01;transform:translateY(7px)}to{opacity:1;transform:translateY(0)}}
@keyframes np-hero-badge-drift{from{transform:translate3d(0,0,0) rotate(8deg)}to{transform:translate3d(0,6px,0) rotate(5deg)}}
@keyframes np-hero-orbit{to{transform:rotate(360deg)}}

@media(prefers-reduced-motion:reduce){.np-home .np-heritage-card,.np-home .np-heritage-card::before,.np-home .np-hero::after,.np-home .np-heritage-proof p{animation:none!important}.np-home .np-heritage-proof p{opacity:1}}


/* Hero primary action: clear hierarchy against the secondary navy button. */
body .np-home .np-hero .np-primary-button .wp-block-button__link {
 background:var(--np-color-sun)!important;color:var(--np-color-ink)!important;
 border:2px solid var(--np-color-sun);box-shadow:6px 6px 0 var(--np-color-coral);
 min-height:44px;max-width:100%;white-space:normal;text-align:center;
}
body .np-home .np-hero .np-primary-button .wp-block-button__link:is(:hover,:focus-visible) {
 background:#fff!important;color:var(--np-color-ink)!important;border-color:#fff;
 text-decoration:underline;text-underline-offset:.2em;
}

/* Four client testimonials: balanced columns, with readable mobile stacking. */
.np-home .np-testimonial-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:24px; }
.np-home .np-testimonial-grid > .wp-block-column { margin:0; min-width:0; transform:none; }
.np-home .np-testimonial-grid > .wp-block-column:nth-child(2) { transform:none; }
.np-home .np-testimonial-grid > .wp-block-column:nth-child(4) { background:var(--np-color-sun); }
@media (max-width:781px) { .np-home .np-testimonial-grid { grid-template-columns:minmax(0,1fr); } }
