/* =========================================================
   Testimonials, 2026-08-28. Markup and styles supplied by Hayden.
   Moved out of an inline <style> block so it caches with the rest.
   ========================================================= */
.nv-testimonials{
  --nv-mist:#EAF4EE;
  --nv-mint:#9FE3A5;
  --nv-slate:#8496A8;
  --nv-line:rgba(159,227,165,.12);
  --nv-card:#101B18;
  --nv-display:"Schibsted Grotesk",system-ui,sans-serif;
  --nv-body:"Instrument Sans",system-ui,sans-serif;

  background:#070D0B;
  padding:104px 36px 112px;
  font-family:var(--nv-body);
}
.nv-t-inner{max-width:1200px; margin:0 auto}

.nv-t-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:22px}

.nv-card{
  background:var(--nv-card);
  border:1px solid var(--nv-line);
  border-radius:22px;
  overflow:hidden;
  display:flex; flex-direction:column;
  transition:border-color .3s ease, transform .3s ease, box-shadow .3s ease;
}
.nv-card:hover{
  border-color:rgba(159,227,165,.26);
  transform:translateY(-4px);
  box-shadow:0 26px 50px -34px rgba(0,0,0,.9);
}

.nv-photo{position:relative; width:100%; aspect-ratio:4/3; overflow:hidden}
.nv-photo img{
  width:100%; height:100%; object-fit:cover; object-position:center top;
  display:block;
  transition:transform .5s cubic-bezier(.2,.7,.3,1);
}
.nv-card:hover .nv-photo img{transform:scale(1.035)}
.nv-photo::after{
  content:""; position:absolute; inset:auto 0 0 0; height:38%;
  background:linear-gradient(to bottom, rgba(16,27,24,0), var(--nv-card));
  pointer-events:none;
}

.nv-body{padding:4px 28px 30px; display:flex; flex-direction:column; flex:1}

.nv-meta{
  display:flex; align-items:baseline; justify-content:space-between;
  gap:12px; margin-bottom:18px;
}
.nv-name{
  font-family:var(--nv-display);
  font-size:18px; font-weight:700; letter-spacing:-.018em;
  color:var(--nv-mist); line-height:1.25;
}
.nv-loc{font-size:13px; color:var(--nv-slate); line-height:1.4; margin-top:3px}
.nv-stars{display:flex; gap:3px; flex-shrink:0}
.nv-stars svg{width:14px; height:14px; display:block}

.nv-quote{
  font-family:var(--nv-display);
  font-size:18.5px; font-weight:500;
  line-height:1.5; letter-spacing:-.014em;
  color:var(--nv-mist);
  margin:0; padding-top:20px; flex:1;
  border-top:1px solid rgba(159,227,165,.09);
}
.nv-quote b{color:var(--nv-mint); font-weight:600}

.nv-cta-wrap{display:flex; justify-content:center; margin-top:48px}
.nv-book{
  display:inline-flex; align-items:center; gap:14px;
  font-family:var(--nv-display); font-size:24px; font-weight:700;
  letter-spacing:-.02em; color:#06120C; text-decoration:none;
  background:var(--nv-mint); padding:24px 54px; border-radius:100px;
  box-shadow:0 16px 40px -16px rgba(159,227,165,.6);
  transition:transform .2s ease, box-shadow .28s ease, background .2s ease;
}
.nv-book svg{transition:transform .24s ease}
.nv-book:hover{
  background:#B4EDB8; transform:translateY(-2px);
  box-shadow:0 0 0 7px rgba(159,227,165,.12), 0 22px 46px -16px rgba(159,227,165,.65);
}
.nv-book:hover svg{transform:translate(3px,-3px)}
.nv-book:focus-visible{outline:2px solid var(--nv-mint); outline-offset:4px}

@media (max-width:960px){
  .nv-testimonials{padding:80px 24px 88px}
  .nv-t-grid{grid-template-columns:1fr; gap:18px}
  .nv-cta-wrap{margin-top:36px}
  .nv-book{font-size:20px; padding:20px 42px; gap:11px}
  .nv-photo{aspect-ratio:16/9}
  .nv-quote{font-size:18px}
}
@media (max-width:420px){
  .nv-testimonials{padding:64px 16px 72px}
  .nv-body{padding:4px 22px 26px}
  .nv-photo{aspect-ratio:4/3}
  .nv-book{font-size:17px; padding:17px 32px}
}
@media (prefers-reduced-motion:reduce){
  .nv-testimonials *{transition:none !important}
}
