/*
Theme Name: Novarig Technologies — Elementor Pro
Theme URI: https://novarig-technologies.candid-fairy-8189.chatgpt.site
Author: Novarig Technologies
Description: Thème WordPress multipage entièrement éditable avec Elementor et Elementor Pro pour Novarig Technologies. Pages, articles, header, footer et formulaire inclus.
Version: 3.0.0
Requires at least: 6.3
Requires PHP: 7.4
Text Domain: novarig-elementor
*/

@import url("assets/css/site.css");

@font-face {
  font-family: "Geist";
  font-style: normal;
  font-weight: 100 900;
  font-display: swap;
  src: url("assets/fonts/geist-latin.woff2") format("woff2");
}

@font-face {
  font-family: "Geist Mono";
  font-style: normal;
  font-weight: 100 900;
  font-display: swap;
  src: url("assets/fonts/geist-mono-latin.woff2") format("woff2");
}

:root {
  --font-geist-sans: "Geist", Inter, "Helvetica Neue", Arial, sans-serif;
  --font-geist-mono: "Geist Mono", "IBM Plex Mono", "SFMono-Regular", Consolas, monospace;
}

body { min-width: 320px; }
body.admin-bar .site-header { top: 32px; }
.novarig-main { min-height: 50vh; }
.novarig-entry,
.novarig-entry-content { margin: 0; padding: 0; }
.novarig-entry-content > * { margin-block-start: 0; margin-block-end: 0; }
.novarig-entry-content > .alignfull { width: 100%; max-width: none; margin-inline: 0; }
.novarig-entry-content .wp-block-group,
.novarig-entry-content .wp-block-cover { box-sizing: border-box; }
.novarig-entry-content .wp-block-cover__inner-container { width: 100%; }
.novarig-entry-content h1,
.novarig-entry-content h2,
.novarig-entry-content h3,
.novarig-entry-content p { margin-top: 0; }
.custom-logo-link { display: inline-flex; align-items: center; }
.custom-logo { width: auto; max-width: 190px; max-height: 52px; }
.site-nav .current-menu-item { color: var(--blue-deep); }

/* WordPress block adapters */
.nv-hero.wp-block-cover,
.nv-hero.wp-block-group { min-height: 570px; padding: 82px var(--page-x); }
.nv-hero.wp-block-group {
  position: relative;
  isolation: isolate;
  overflow: hidden;
  display: grid;
  place-items: center;
  background: var(--navy-deep);
}
.nv-hero.wp-block-group::after,
.nv-cta.wp-block-group::after,
.nv-photo-card.wp-block-group::after,
.nv-market-photo::after,
.nv-topic-photo::after {
  content: "";
  position: absolute;
  inset: 0;
  z-index: -1;
  background: linear-gradient(90deg, rgba(1,21,32,.88), rgba(2,43,66,.52), rgba(2,43,66,.68));
}
.nv-hero > .nv-bg-image,
.nv-cta > .nv-bg-image,
.nv-photo-card > .nv-bg-image,
.nv-market-photo > .nv-bg-image,
.nv-topic-photo > .nv-bg-image {
  position: absolute;
  inset: 0;
  z-index: -2;
  width: 100%;
  height: 100%;
  margin: 0;
}
.nv-bg-image img,
.nv-topic-background { width: 100%; height: 100%; display: block; object-fit: cover; }
.nv-hero .wp-block-cover__inner-container,
.nv-hero-inner { position: relative; z-index: 1; width: 100%; max-width: 1050px; margin-inline: auto; text-align: center; }
.nv-hero .nv-kicker { margin-inline: auto; }
.nv-home-hero.wp-block-cover { min-height: 660px; }
.nv-home-hero.wp-block-group { min-height: 660px; }
.nv-hero h1 { margin: 0; color: white; font-size: clamp(48px,5vw,78px); font-weight: 790; line-height: .99; letter-spacing: -.052em; }
.nv-hero .nv-lead { max-width: 790px; margin: 25px auto 0; color: #e2edf2; font-size: 18px; line-height: 1.65; }
.nv-kicker {
  width: fit-content;
  min-height: 30px;
  display: inline-flex;
  align-items: center;
  gap: 7px;
  margin: 0 0 20px;
  padding: 8px 12px;
  border: 1px solid #c8e5eb;
  border-radius: 999px;
  background: rgba(255,255,255,.94);
  color: var(--blue-deep);
  font: 800 12px/1 var(--font-geist-mono), monospace;
  letter-spacing: .1em;
  text-transform: uppercase;
}
.nv-kicker::before { content: ""; width: 6px; height: 6px; border-radius: 50%; background: var(--blue); }
.nv-button-row { display: flex; flex-wrap: wrap; justify-content: center; gap: 12px; margin-top: 31px; }
.nv-button-row .wp-block-button__link,
.nv-button .wp-block-button__link {
  min-height: 52px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 0 23px;
  border-radius: 5px;
  background: var(--blue);
  color: var(--navy-deep);
  font-size: 14px;
  font-weight: 780;
}
.nv-button-row .is-style-outline .wp-block-button__link { border: 1px solid rgba(255,255,255,.72); background: rgba(2,43,66,.22); color: white; }
.nv-section { padding: 96px var(--page-x) 108px; }
.nv-section.is-surface { background: var(--surface); }
.nv-section.is-pale { background: #edf5f7; }
.nv-section-heading { display: grid; grid-template-columns: 1.15fr .85fr; align-items: end; gap: clamp(45px,7vw,110px); margin-bottom: 46px; }
.nv-section-heading h2,
.nv-copy h2 { margin: 0; font-size: clamp(38px,4vw,62px); font-weight: 760; line-height: 1.04; letter-spacing: -.045em; }
.nv-section-heading > p,
.nv-copy > p { color: var(--body); font-size: 17px; line-height: 1.75; }
.nv-grid-2 { display: grid; grid-template-columns: repeat(2,1fr); gap: 16px; }
.nv-grid-3 { display: grid; grid-template-columns: repeat(3,1fr); gap: 14px; }
.nv-grid-4 { display: grid; grid-template-columns: repeat(4,1fr); gap: 12px; }
.nv-grid-5 { display: grid; grid-template-columns: repeat(5,1fr); gap: 12px; }
.nv-card { overflow: hidden; border-radius: 6px; background: white; box-shadow: 0 10px 35px rgba(4,57,83,.09); }
.nv-card-copy { padding: 30px; }
.nv-card h3 { margin: 12px 0; font-size: clamp(25px,2.3vw,36px); line-height: 1.08; }
.nv-card p { color: var(--body); font-size: 16px; line-height: 1.7; }
.nv-card .wp-block-image { margin: 0; overflow: hidden; }
.nv-card .wp-block-image img { width: 100%; min-height: 280px; display: block; object-fit: cover; }
.nv-label { color: var(--blue-deep); font: 800 12px/1.35 var(--font-geist-mono), monospace; letter-spacing: .1em; text-transform: uppercase; }
.nv-link { color: var(--blue-deep); font-size: 14px; font-weight: 780; }
.nv-split { display: grid; grid-template-columns: 1fr 1fr; align-items: stretch; }
.nv-split > .wp-block-image { height: 100%; margin: 0; }
.nv-split > .wp-block-image img { width: 100%; height: 100%; min-height: 520px; object-fit: cover; }
.nv-split > .wp-block-group { display: flex; flex-direction: column; justify-content: center; padding: clamp(38px,5vw,74px); }
.nv-split.is-reversed > .wp-block-image { order: 2; }
.nv-cyan { background: var(--blue); color: var(--navy-deep); }
.nv-cyan p { color: #0b4b61; }
.nv-navy { background: var(--navy); color: white; }
.nv-navy p { color: #c8dae2; }
.nv-navy .nv-label,
.nv-navy .nv-link { color: #68e4f2; }
.nv-photo-card.wp-block-cover,
.nv-photo-card.wp-block-group { min-height: 450px; padding: 28px; border-radius: 5px; }
.nv-photo-card.wp-block-group { position: relative; isolation: isolate; overflow: hidden; display: flex; align-items: flex-end; }
.nv-photo-card.wp-block-group::after { background: linear-gradient(0deg, rgba(1,21,32,.9), rgba(2,43,66,.05) 72%); }
.nv-photo-card .wp-block-cover__inner-container { align-self: end; }
.nv-photo-card-inner { position: relative; z-index: 1; }
.nv-photo-card h3 { margin: 0; color: white; font-size: clamp(27px,2.5vw,40px); line-height: 1.05; }
.nv-photo-card p { margin-bottom: 0; color: #e2edf2; }
.nv-process-card { min-height: 290px; padding: 27px; border: 1px solid var(--line); border-radius: 6px; background: white; }
.nv-process-card .nv-number { color: var(--blue-deep); font: 800 13px/1 var(--font-geist-mono), monospace; }
.nv-process-card h3 { margin: 72px 0 12px; font-size: 21px; }
.nv-process-card p { color: var(--body); font-size: 15px; }
.nv-cta.wp-block-cover,
.nv-cta.wp-block-group { min-height: 330px; padding: 70px var(--page-x); text-align: center; }
.nv-cta.wp-block-group { position: relative; isolation: isolate; overflow: hidden; display: grid; place-items: center; background: var(--navy-deep); }
.nv-cta.wp-block-group::after { background: rgba(1,31,47,.84); }
.nv-cta .wp-block-cover__inner-container { max-width: 980px; margin-inline: auto; }
.nv-cta-inner { position: relative; z-index: 1; width: 100%; max-width: 980px; margin-inline: auto; }
.nv-cta h2 { margin: 0; color: white; font-size: clamp(38px,4vw,62px); line-height: 1.05; }
.nv-cta .nv-kicker { margin-inline: auto; border-color: rgba(255,255,255,.28); background: rgba(255,255,255,.1); color: #77e6f2; }
.nv-check-list { display: grid; gap: 11px; padding-left: 20px; }
.nv-check-list li { font-size: 16px; line-height: 1.6; }
.nv-market-grid,
.nv-topic-grid { display: grid; grid-template-columns: repeat(3,1fr); gap: 10px; }
.nv-market-card { min-height: 230px; display: flex; flex-direction: column; justify-content: flex-end; padding: 27px; border-radius: 5px; box-shadow: 0 8px 28px rgba(4,57,83,.08); }
.nv-market-card.nv-cyan { background: var(--blue); }
.nv-market-card.nv-navy { background: var(--navy); color: white; }
.nv-market-card.nv-navy p { color: #c8dae2; }
.nv-market-photo { position: relative; isolation: isolate; overflow: hidden; color: white; }
.nv-market-photo::after { background: linear-gradient(0deg, rgba(1,25,38,.92), rgba(2,43,66,.18)); }
.nv-market-card-inner { position: relative; z-index: 1; }
.nv-market-card h3 { margin: 0 0 8px; font-size: 19px; }
.nv-market-card p { margin: 0; font-size: 14px; line-height: 1.55; }
.nv-topic-grid { grid-template-columns: 1fr 1fr; }
.nv-topic-card { min-height: 215px; display: flex; flex-direction: column; justify-content: flex-end; padding: 27px; border-radius: 5px; background: white; box-shadow: 0 8px 28px rgba(4,57,83,.08); }
.nv-topic-card.nv-cyan { background: var(--blue); }
.nv-topic-card.nv-navy { background: var(--navy); color: white; }
.nv-topic-photo { position: relative; isolation: isolate; overflow: hidden; color: white; }
.nv-topic-photo::after { background: linear-gradient(0deg, rgba(1,25,38,.94), rgba(2,43,66,.15)); }
.nv-topic-photo > .nv-topic-background { position: absolute; inset: 0; z-index: -2; }
.nv-topic-card-inner { position: relative; z-index: 1; }
.nv-topic-card h3 { margin: 0 0 8px; font-size: 20px; }
.nv-topic-card h3 a { color: inherit; }
.nv-topic-card p { margin: 0; color: var(--body); font-size: 14px; }
.nv-topic-card.nv-navy p { color: #c8dae2; }
.nv-topic-photo p { color: #d5e4e9; }
.nv-contact-layout { display: grid; grid-template-columns: .9fr 1.1fr; gap: clamp(50px,7vw,105px); padding: 94px var(--page-x) 110px; background: var(--navy-deep); color: white; }
.nv-contact-layout h1 { margin: 0; color: white; font-size: clamp(44px,4.6vw,70px); line-height: 1.03; }
.nv-contact-layout .nv-lead { color: #d0e0e6; font-size: 17px; line-height: 1.7; }
.novarig-contact-form { display: grid; gap: 22px; padding: clamp(32px,4.5vw,62px); border-radius: 6px; background: var(--blue); color: var(--navy-deep); box-shadow: 0 28px 70px rgba(0,0,0,.22); }
.novarig-contact-form h2 { margin: 0 0 8px; font-size: clamp(28px,2.5vw,38px); }
.novarig-form-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 22px; }
.novarig-contact-form label { display: flex; flex-direction: column; gap: 8px; color: var(--navy); font-size: 13px; font-weight: 800; letter-spacing: .07em; text-transform: uppercase; }
.novarig-contact-form input,
.novarig-contact-form select,
.novarig-contact-form textarea { width: 100%; padding: 14px 0; border: 0; border-bottom: 1px solid rgba(4,57,83,.4); border-radius: 0; background: transparent; color: var(--navy-deep); font-size: 16px; text-transform: none; }
.novarig-contact-form textarea { resize: vertical; }
.novarig-contact-form button { min-height: 52px; justify-self: start; padding: 0 23px; border: 0; border-radius: 5px; background: var(--navy-deep); color: white; font-size: 14px; font-weight: 780; cursor: pointer; }
.novarig-form-notice { margin: 0; padding: 14px 16px; border-left: 3px solid var(--navy-deep); background: rgba(255,255,255,.62); color: var(--navy-deep); }
.novarig-honeypot { position: absolute !important; left: -9999px !important; }
.nv-blog-shell { padding: 90px var(--page-x) 110px; }
.nv-blog-shell.is-surface { background: var(--surface); }
.nv-blog-grid { display: grid; grid-template-columns: repeat(2,1fr); gap: 18px; }
.nv-post-card { overflow: hidden; border-radius: 6px; background: white; box-shadow: 0 10px 35px rgba(4,57,83,.09); }
.nv-post-card:first-child { grid-column: 1 / 3; display: grid; grid-template-columns: 1.1fr .9fr; }
.nv-post-image { min-height: 340px; background-position: center; background-size: cover; }
.nv-post-card:first-child .nv-post-image { min-height: 520px; }
.nv-post-copy { display: flex; flex-direction: column; align-items: flex-start; padding: 34px; }
.nv-post-copy h2 { margin: 16px 0; font-size: clamp(27px,2.8vw,44px); line-height: 1.08; }
.nv-post-copy h2 a { color: var(--navy-deep); }
.nv-post-copy p { color: var(--body); font-size: 16px; }
.nv-post-meta { display: flex; flex-wrap: wrap; gap: 9px 18px; color: var(--blue-deep); font: 800 12px/1.35 var(--font-geist-mono), monospace; letter-spacing: .08em; text-transform: uppercase; }
.nv-post-meta span + span::before { content: "·"; margin-right: 18px; }
.nv-pagination { margin-top: 42px; }
.nv-pagination .nav-links { display: flex; justify-content: center; gap: 8px; }
.nv-pagination .page-numbers { min-width: 40px; height: 40px; display: inline-flex; align-items: center; justify-content: center; border: 1px solid var(--line); border-radius: 4px; background: white; color: var(--navy-deep); font-weight: 750; }
.nv-pagination .current { background: var(--blue); border-color: var(--blue); }
.nv-article-header { padding: 88px var(--page-x) 78px; background: var(--navy-deep); color: white; text-align: center; }
.nv-article-header h1 { max-width: 1100px; margin: 26px auto 0; color: white; font-size: clamp(45px,5vw,76px); line-height: 1; }
.nv-article-header p { max-width: 830px; margin: 24px auto 0; color: #d0e0e6; font-size: 18px; }
.nv-article-body { max-width: 880px; margin: 0 auto; padding: 85px var(--page-x) 110px; }
.nv-article-body h2 { margin: 50px 0 20px; font-size: clamp(31px,3vw,45px); line-height: 1.08; }
.nv-article-body p,
.nv-article-body li { color: var(--body); font-size: 18px; line-height: 1.82; }
.nv-article-lead { color: var(--navy-deep) !important; font-size: 22px !important; line-height: 1.7 !important; font-weight: 560; }
.nv-article-image { max-width: 1180px; height: min(58vw, 620px); margin: -1px auto 0; padding: 0 var(--page-x); }
.nv-article-image img { width: 100%; height: 100%; display: block; object-fit: cover; }
.nv-article-footer { padding: 82px var(--page-x) 94px; background: var(--blue); color: var(--navy-deep); text-align: center; }
.nv-article-footer .nv-kicker { margin-inline: auto; }
.nv-article-footer h2 { margin: 18px auto 30px; font-size: clamp(35px,4vw,58px); }
.nv-article-footer .wp-block-button__link { background: var(--navy-deep); color: white; }

.nv-section-flush { padding-top: 0; padding-bottom: 0; }
.nv-section-flush > .nv-split { max-width: 1440px; margin-inline: auto; }
.nv-service-strip,
.nv-project-strip { margin-bottom: 16px; overflow: hidden; border-radius: 6px; background: white; box-shadow: 0 12px 36px rgba(4,57,83,.09); }
.nv-service-strip:last-child,
.nv-project-strip:last-child { margin-bottom: 0; }
.nv-projects-section { background: var(--surface); }
.nv-project-strip .nv-copy:not(.nv-cyan):not(.nv-navy) { background: white; }
.nv-process-feature { display: grid; grid-template-columns: .95fr 1.05fr; gap: 16px; }
.nv-process-feature > .wp-block-image { height: 100%; margin: 0; }
.nv-process-feature > .wp-block-image img { width: 100%; height: 100%; min-height: 596px; display: block; object-fit: cover; }
.nv-equipment-card.nv-cyan { background: var(--blue); }
.nv-equipment-card.nv-navy { background: var(--navy); color: white; }
.nv-equipment-card.nv-navy p { color: #c8dae2; }
.nv-contact-image { margin: 35px 0 0; overflow: hidden; border-radius: 5px; }
.nv-contact-image img { width: 100%; min-height: 310px; display: block; object-fit: cover; }
.nv-contact-form-wrap { align-self: center; }

@media (max-width: 900px) {
  body.admin-bar .site-header { top: 46px; }
  .nv-section-heading,
  .nv-split,
  .nv-contact-layout,
  .nv-process-feature { grid-template-columns: 1fr; }
  .nv-split.is-reversed > .wp-block-image { order: 0; }
  .nv-grid-4,
  .nv-grid-5 { grid-template-columns: 1fr 1fr; }
  .nv-market-grid { grid-template-columns: 1fr 1fr; }
  .nv-post-card:first-child { grid-column: auto; grid-template-columns: 1fr; }
  .nv-process-feature > .wp-block-image img { min-height: 420px; }
}

@media (max-width: 600px) {
  .nv-hero h1 { font-size: 40px; }
  .nv-hero.wp-block-cover,
  .nv-hero.wp-block-group { padding-inline: 18px; }
  .nv-section { padding: 72px 18px 78px; }
  .nv-grid-2,
  .nv-grid-3,
  .nv-grid-4,
  .nv-grid-5,
  .nv-market-grid,
  .nv-topic-grid,
  .novarig-form-grid,
  .nv-blog-grid { grid-template-columns: 1fr; }
  .nv-split > .wp-block-image img { min-height: 340px; }
  .nv-button-row { flex-direction: column; }
  .nv-button-row .wp-block-button,
  .nv-button-row .wp-block-button__link { width: 100%; }
  .nv-contact-layout { padding: 72px 18px 82px; }
  .novarig-contact-form { padding: 30px 22px; }
  .nv-post-card:first-child { grid-column: auto; }
}

/* Elementor 4 atomic container compatibility for the editable header. */
body.novarig-elementor-theme .nv-el-header {
  --gap: 24px !important;
  --flex-wrap: nowrap !important;
  min-height: 76px !important;
  height: 76px !important;
  padding-inline: var(--page-x) !important;
}

body.novarig-elementor-theme .nv-el-header > .nv-el-header-brand {
  --width: auto !important;
  width: auto !important;
  max-width: none !important;
  min-width: 192px !important;
  flex: 0 0 auto !important;
  align-self: center !important;
  padding: 0 !important;
}

body.novarig-elementor-theme .nv-el-header > .nv-el-header-right {
  --width: auto !important;
  width: auto !important;
  max-width: none !important;
  min-width: 0 !important;
  height: 76px !important;
  flex: 1 1 auto !important;
  align-self: center !important;
  padding: 0 !important;
}

body.novarig-elementor-theme .nv-el-header-right > .elementor-widget {
  --width: auto !important;
  width: auto !important;
  max-width: none !important;
  flex: 0 0 auto !important;
}

body.novarig-elementor-theme .nv-el-header-nav .elementor-nav-menu--main .elementor-nav-menu {
  flex-wrap: nowrap;
}

@media (max-width: 860px) {
  body.novarig-elementor-theme .nv-el-header > .nv-el-header-brand {
    min-width: 0 !important;
  }
}
