/* Light, centered art direction inspired by the supplied agency reference. */
:root { --header-h:78px; --ink:#16253b; --ink-soft:#68778b; --radius-btn:10px; }
body.premium-home { background:#fff; }
.site-header { height:var(--header-h); border:0; background:#fcfdfff0; box-shadow:none; }
.nav-container { height:78px; max-width:1232px; padding-inline:32px; }
.nav-logo-img { width:183px; }
.nav-links { gap:30px; }
.nav-links>a,.nav-dropdown-trigger { font-size:13px; }
.nav-cta-primary {
  min-height:39px; padding:10px 17px; border-radius:10px; border:1px solid #cddbed;
  background:linear-gradient(180deg,#fff,#edf3fb); color:#203b60;
  box-shadow:inset 0 1px 1px #fff,0 2px 5px #233e6606; font-size:12px; font-weight:500;
}
.nav-cta-primary:hover { background:#edf4ff; color:#075fee; box-shadow:0 4px 12px #21446b0a; }
.nav-cta-primary img { filter:brightness(.5) sepia(1) saturate(4) hue-rotate(177deg); }
.ns-home-showcase { position:relative; isolation:isolate; background:#fff; }
/* Broad shaded folds and luminous ridges continue behind the client logos. */
.ns-home-showcase::before {
  content:''; position:absolute; inset:0 0 auto; z-index:-1;
  height:clamp(800px,62vw,980px); pointer-events:none;
  background:
    radial-gradient(ellipse 36% 46% at 49% 34%,#ffffffb8 0%,#ffffff00 100%),
    linear-gradient(114deg,
      #f8fbff 0%,#edf4ff 5%,#a7c3ed 12%,#c1d6f5 16%,
      #f8fcff 22%,#fff 27%,#edf5ff 34%,#f6faff 48%,
      #dfebfc 62%,#99bbea 73%,#abcaf0 78%,#ecf6ff 86%,#fff 94%),
    #eef5ff;
  -webkit-mask-image:linear-gradient(#000 0%,#000 48%,#000b 69%,transparent 100%);
  mask-image:linear-gradient(#000 0%,#000 48%,#000b 69%,transparent 100%);
}
.ns-home-showcase::after {
  content:''; position:absolute; inset:0 0 auto; z-index:-1;
  height:clamp(800px,62vw,980px); pointer-events:none;
  background:
    linear-gradient(114deg,transparent 15%,#ffffff00 18%,#ffffffc9 23%,#ffffff00 29%,transparent 65%),
    radial-gradient(ellipse 19% 66% at 92% 5%,#75a5e82b,transparent 100%);
  -webkit-mask-image:linear-gradient(#000 0%,#0009 55%,transparent 90%);
  mask-image:linear-gradient(#000 0%,#0009 55%,transparent 90%);
}
.ns-hero {
  max-width:none; margin:0; padding:65px 32px 0; overflow:hidden;
  border-radius:0; border:0; box-shadow:none; text-align:center;
  background:transparent;
}
.ns-hero::before { display:none; }
.ns-hero::after { display:none; }
.premium-hero-layout { display:block; max-width:980px; margin:0 auto; }
.ns-hero-content { max-width:980px; width:100%; margin:0 auto; text-align:center; }
.ns-hero-content>.premium-eyebrow {
  justify-content:center; margin-bottom:21px; gap:9px; color:#5d7b9d;
  font-size:10px; font-weight:600; letter-spacing:.16em;
}
.ns-hero-content>.premium-eyebrow>span { width:4px; height:4px; box-shadow:0 0 0 4px #1868ef0b; }
.ns-hero-title {
  max-width:960px; margin:0 auto 22px; font-size:clamp(49px,4.65vw,70px);
  font-weight:400; line-height:1.065; letter-spacing:-.043em; color:#182a43;
}
.ns-hero-performance {
  padding:0; background:linear-gradient(110deg,#1263ec 15%,#528ff5 80%);
  -webkit-background-clip:text; background-clip:text; color:transparent;
  border:0; border-radius:0; box-shadow:none;
}
.ns-hero-performance::after { display:none; }
.ns-hero-subtitle { max-width:660px; margin:0 auto 27px; font-size:15px; line-height:1.65; color:#69798d; font-weight:400; text-wrap:balance; }
.ns-hero-subtitle br { display:none; }
.ns-hero-subtitle br::after { content:' '; }
.ns-hero-subtitle strong { font-weight:400; color:#435772; }
.ns-hero-bottom { align-items:center; gap:22px; }
.ns-hero-ctas { justify-content:center; gap:12px; }
.ns-btn-primary,.ns-hero-ctas .ns-btn-primary,.ns-final-cta-button {
  border-radius:10px; min-height:48px; padding:12px 23px; border:1px solid #4984ed;
  background:linear-gradient(180deg,#4289fa 0%,#1766ed 53%,#0c55d9 100%);
  box-shadow:inset 0 1px 1px #ffffff99,inset 0 -2px 1px #003f9826,0 3px 6px #1356b81a,0 7px 17px #296add14;
  font-size:12px; font-weight:600;
}
.ns-hero-ctas .ns-btn-primary:hover,.ns-btn-primary:hover,.ns-final-cta-button:hover {
  background:linear-gradient(180deg,#5094ff,#226cf0 53%,#105ddd);
  box-shadow:inset 0 1px 1px #ffffff99,0 8px 20px #296add29;
}
.ns-hero-ctas .ns-btn-arrow { width:18px; height:18px; margin-left:9px; }
.ns-hero-ctas .ns-btn-arrow svg { width:18px; height:18px; }
.premium-secondary {
  min-height:48px; padding:12px 21px; font-size:12px; font-weight:500; gap:12px;
  border:1px solid #cddbeb; border-radius:10px; color:#2a4264;
  background:linear-gradient(180deg,#ffffffd9,#edf3fbc7);
  box-shadow:inset 0 1px 1px #fff,0 3px 7px #18344a05; backdrop-filter:blur(10px);
}
.premium-secondary:hover { background:#fff; border-color:#a5bfe2; }
.ns-hero-trust { justify-content:center; margin:0; }
.ns-hero-trust .ns-trust-clients { gap:12px; }
.ns-hero-trust .ns-trust-client-logos img { width:29px; height:29px; border:2px solid #f9fbff; }
.ns-hero-trust .ns-trust-clients-copy { font-size:10px; color:#6c7b90; gap:3px; text-align:left; }
.ns-hero-trust .ns-trust-clients-copy strong { font-weight:600; color:#3c526e; }
.ns-hero-trust .ns-trust-clients-stars { color:#387fec; gap:2px; }
.ns-hero-trust .ns-trust-clients-stars svg { width:10px; height:10px; }
.ns-logos { padding-top:54px; padding-bottom:38px; background:transparent; }
.ns-logos-label { font-size:11px; color:#77889e; }
.ns-logo-img { opacity:.68; }
.section-title,.ns-process-heading h2,.ns-reels-heading h2,.ns-impact h2 { font-weight:400; }
.ns-impact-inner { background:linear-gradient(125deg,#f2f7ff,#e4efff); color:var(--ink); border-color:#d5e2f4; box-shadow:inset 0 1px 0 #fff; }
.ns-impact h2,.ns-impact-stat dt { color:var(--ink); }
.ns-impact-stat dd,.ns-impact-icon { color:var(--cobalt); }
.ns-impact-stat dt span { color:#687e98; }
.ns-impact-stat { border-color:#cbdcf3; }
.ns-final-cta-card { color:var(--ink); background:radial-gradient(ellipse at 85% 0%,#d5e5fc 0,transparent 62%),linear-gradient(130deg,#f7fbff,#e9f2ff); border:1px solid #cbdcf2; box-shadow:inset 0 1px 0 #fff,0 16px 40px -25px #315c9440; }
.ns-final-cta-card h2 { color:var(--ink); font-weight:400; }
.ns-final-cta-card h2 span { color:var(--cobalt); }
.ns-final-cta-description,.ns-final-cta-card .ns-trust-clients-copy { color:#5d7290; }
.ns-final-cta-card .ns-trust-clients-stars { color:var(--cobalt); }
.ns-final-cta-card .ns-trust-client-logos img { border-color:#edf4ff; }
@media(min-width:1600px) { .ns-hero { padding-top:80px; } .ns-hero-title { font-size:76px; } }
@media(max-width:1024px) {
  .ns-hero { padding-top:56px; }
  .nav-container { padding-inline:28px; }
  .ns-hero-title { font-size:61px; }
  .mobile-nav { padding-top:calc(var(--header-h) + 22px); }
}
@media(max-width:700px) {
  :root { --header-h:67px; }
  .nav-container { height:67px; padding-inline:22px; }
  .nav-logo-img { width:167px; }
  .ns-hero { padding:45px 20px 0; }
  .ns-hero-content>.premium-eyebrow { margin-bottom:20px; font-size:9px; }
  .ns-hero-title { font-size:clamp(39px,7.6vw,55px); line-height:1.1; letter-spacing:-.045em; margin-bottom:21px; }
  .ns-hero-subtitle { max-width:450px; font-size:14px; line-height:1.65; margin-bottom:25px; }
  .ns-hero-bottom { gap:21px; }
  .ns-hero-ctas { gap:9px; width:auto; }
  .ns-hero-ctas .ns-btn-primary { width:auto; min-height:46px; padding:12px 17px; font-size:11px; }
  .premium-secondary { min-height:46px; padding:12px 16px; font-size:11px; }
  .ns-logos { padding-top:39px; }
}
@media(max-width:400px) {
  .ns-hero { padding-inline:16px; }
  .ns-hero-title { font-size:38px; }
  .ns-hero-ctas .ns-btn-primary { padding-inline:15px; }
  .premium-secondary { padding-inline:12px; gap:7px; }
}

/* Shared 10 px corners for every button, including responsive and active states. */
body.premium-home :is(button, [role="button"], .btn, .ns-btn-primary, .nav-cta-primary, .premium-secondary, .ns-final-cta-button, .filter-btn, .premium-booking-fallback > a) {
  border-radius:10px!important;
}
body.premium-home :is(.ns-btn-primary, .nav-cta-primary, .premium-secondary, .btn)::before,
body.premium-home :is(.ns-btn-primary, .nav-cta-primary, .premium-secondary, .btn)::after {
  border-radius:inherit!important;
}

/* Appointment CTAs: vivid brand blue with slight translucency and flat frosted glass. */
body.premium-home a[href="#prendre-rendez-vous"]:is(.nav-cta-primary, .ns-btn-primary) {
  background:rgba(2,101,255,.95)!important;
  color:#fff!important;
  text-decoration:none!important;
  border:1px solid rgba(255,255,255,.3)!important;
  border-radius:10px!important;
  -webkit-backdrop-filter:blur(20px) saturate(140%);
  backdrop-filter:blur(20px) saturate(140%);
  box-shadow:0 2px 9px rgba(27,66,126,.07)!important;
  text-shadow:none!important;
  transform:none!important;
  filter:none!important;
  transition:background .2s ease,border-color .2s ease,box-shadow .2s ease;
}
body.premium-home a[href="#prendre-rendez-vous"]:is(.nav-cta-primary, .ns-btn-primary):hover {
  background:rgba(2,84,216,.95)!important;
  border-color:rgba(255,255,255,.45)!important;
  box-shadow:0 3px 12px rgba(27,66,126,.08)!important;
}
body.premium-home a[href="#prendre-rendez-vous"]:is(.nav-cta-primary, .ns-btn-primary):active {
  background:rgba(1,72,194,.95)!important;
  box-shadow:none!important;
}
@media(prefers-reduced-motion:reduce) {
  body.premium-home a[href="#prendre-rendez-vous"]:is(.nav-cta-primary, .ns-btn-primary) { transition:none; }
}

/* Case studies: luminous glass cards on a softly colored, light surface. */
.ns-case-photo-section {
  background:
    radial-gradient(ellipse at 4% 26%,rgba(109,163,248,.21),transparent 48%),
    radial-gradient(ellipse at 96% 75%,rgba(82,150,244,.23),transparent 46%),
    radial-gradient(ellipse at 50% 100%,rgba(172,225,245,.18),transparent 42%),
    linear-gradient(150deg,#f9fbff,#eef4fd 48%,#f8fbff);
  border-color:#e0e9f5;
}
.ns-case-photo-section .ns-case-photo-grid { gap:24px; align-items:stretch; }
.ns-case-photo-section .ns-case-photo-card {
  position:relative;
  isolation:isolate;
  border:1px solid rgba(127,161,208,.4);
  border-radius:24px;
  background:linear-gradient(140deg,rgba(255,255,255,.74),rgba(244,249,255,.36));
  -webkit-backdrop-filter:blur(24px) saturate(125%);
  backdrop-filter:blur(24px) saturate(125%);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.95),inset 0 -1px 0 rgba(255,255,255,.55),0 10px 30px rgba(37,71,122,.065);
  transition:background .25s ease,border-color .25s ease,box-shadow .25s ease;
}
.ns-case-photo-card::before {
  content:"";
  position:absolute;
  inset:0;
  z-index:2;
  padding:1px;
  border-radius:inherit;
  background:linear-gradient(130deg,rgba(255,255,255,.96),transparent 35%,rgba(255,255,255,.15) 68%,rgba(255,255,255,.85));
  -webkit-mask:linear-gradient(#fff 0 0) content-box,linear-gradient(#fff 0 0);
  -webkit-mask-composite:xor;
  mask:linear-gradient(#fff 0 0) content-box,linear-gradient(#fff 0 0);
  mask-composite:exclude;
  pointer-events:none;
}
.ns-case-photo-section .ns-case-photo-card:hover,
.ns-case-photo-section .ns-case-photo-card:focus-within {
  border-color:rgba(64,126,221,.55);
  background:linear-gradient(140deg,rgba(255,255,255,.87),rgba(239,247,255,.52));
  box-shadow:inset 0 1px 0 #fff,inset 0 -1px 0 rgba(255,255,255,.7),0 16px 38px rgba(37,71,122,.11);
}
.ns-case-photo-section .ns-case-photo-link { padding:18px 18px 0; text-decoration:none; }
.ns-case-photo-section .ns-case-photo-frame {
  flex-shrink:0;
  aspect-ratio:1.45;
  border:1px solid rgba(255,255,255,.75);
  border-radius:14px;
  box-shadow:0 3px 12px rgba(22,47,87,.06);
}
.ns-case-photo-section .ns-case-photo-heading { margin:20px 0 0; gap:12px; }
.ns-case-photo-section .ns-case-photo-heading h3 { height:44px; flex-basis:138px; }
.ns-case-photo-section .ns-case-photo-heading .ns-case-photo-logo { max-height:40px; }
.ns-case-photo-section .ns-case-photo-type {
  font-size:10px;
  padding:6px 9px;
  border:1px solid rgba(120,159,214,.28);
  background:rgba(255,255,255,.44);
  color:#527094;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.7);
}
.ns-case-photo-section .ns-case-photo-description {
  margin:13px 0 24px;
  min-height:3.3em;
  font-size:14px;
  line-height:1.65;
  color:#546a87;
}
.ns-case-photo-section .ns-case-photo-description strong { font-weight:600; color:#253f63; }
.ns-case-photo-section .ns-case-photo-more {
  margin:auto -18px 0;
  min-height:65px;
  padding:14px 18px;
  border-top:1px solid rgba(144,172,211,.26);
  background:linear-gradient(110deg,rgba(255,255,255,.42),rgba(225,237,255,.28));
  box-shadow:inset 0 1px 0 rgba(255,255,255,.65);
  font-size:12px;
  font-weight:500;
  color:#265288;
}
.ns-case-photo-section .ns-case-photo-more svg {
  flex-shrink:0;
  width:30px;
  height:30px;
  padding:7px;
  border:1px solid rgba(115,153,207,.34);
  border-radius:50%;
  background:rgba(255,255,255,.62);
  box-shadow:inset 0 1px 0 #fff,0 2px 6px rgba(43,83,143,.05);
  color:#0265ff;
}
.ns-case-photo-section .ns-case-photo-link:hover .ns-case-photo-more svg {
  background:#0265ff;
  border-color:#0265ff;
  box-shadow:none;
  color:#fff;
  transform:rotate(-35deg);
}
.ns-case-photo-section .ns-case-photo-link:focus-visible { outline:2px solid #0265ff; outline-offset:-4px; border-radius:23px; }
@media(max-width:1050px) {
  .ns-case-photo-section .ns-case-photo-grid { gap:20px; }
}
@media(max-width:620px) {
  .ns-case-photo-section .ns-case-photo-grid { gap:22px; }
  .ns-case-photo-section .ns-case-photo-card { border-radius:22px; }
  .ns-case-photo-section .ns-case-photo-link { padding:16px 16px 0; }
  .ns-case-photo-section .ns-case-photo-heading { margin-top:18px; }
  .ns-case-photo-section .ns-case-photo-description { min-height:0; font-size:15px; margin:12px 0 22px; }
  .ns-case-photo-section .ns-case-photo-more { margin:auto -16px 0; padding:14px 16px; }
}
@media(prefers-reduced-motion:reduce) {
  .ns-case-photo-section .ns-case-photo-card { transition:none; }
  .ns-case-photo-section .ns-case-photo-link:hover .ns-case-photo-more svg { transform:none; }
}
