/* ==========================================================================
   NORVELIS — components.css
   Éléments réutilisables : boutons, sur-titres, filets, cartes, citations.
   ========================================================================== */

/* ----- Sur-titre (eyebrow) — tracké, majuscules, discret ----- */
.nv-eyebrow {
  display: inline-flex;
  align-items: center;
  gap: 0.85rem;
  font-family: var(--nv-font-body);
  font-size: var(--nv-fs-eyebrow);
  font-weight: 700;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: var(--nv-gold-600);
  margin-bottom: var(--nv-space-md);
}
.nv-eyebrow::before {
  content: "";
  width: 34px;
  height: 1px;
  background: currentColor;
  display: inline-block;
}
.nv-section--navy .nv-eyebrow { color: var(--nv-gold); }

/* ----- Lead (chapô) ----- */
.nv-lead {
  font-size: var(--nv-fs-lead);
  line-height: 1.55;
  color: var(--nv-ink-soft);
  font-weight: 400;
  max-width: 56ch;
}
.nv-section--navy .nv-lead { color: var(--nv-on-navy); }

/* ----- Filet doré signature ----- */
.nv-rule {
  width: 56px;
  height: 2px;
  background: var(--nv-gold);
  border: 0;
  margin: 0 0 var(--nv-space-lg);
}

/* ----- Boutons ----- */
.nv-btn {
  --_bg: var(--nv-navy);
  --_fg: #fff;
  display: inline-flex;
  align-items: center;
  gap: 0.7rem;
  padding: 0.95rem 1.9rem;
  font-family: var(--nv-font-body);
  font-size: 0.9375rem;
  font-weight: 600;
  letter-spacing: 0.02em;
  color: var(--_fg);
  background: var(--_bg);
  border: 1px solid var(--_bg);
  border-radius: var(--nv-radius);
  cursor: pointer;
  position: relative;
  overflow: hidden;
  transition: transform var(--nv-dur-fast) var(--nv-ease),
              box-shadow var(--nv-dur-fast) var(--nv-ease),
              background-color var(--nv-dur-fast) var(--nv-ease),
              color var(--nv-dur-fast) var(--nv-ease),
              border-color var(--nv-dur-fast) var(--nv-ease);
}
.nv-btn .nv-btn__arrow {
  transition: transform var(--nv-dur-fast) var(--nv-ease);
}
.nv-btn:hover {
  transform: translateY(-2px);
  box-shadow: var(--nv-shadow-soft);
}
.nv-btn:hover .nv-btn__arrow { transform: translateX(4px); }

.nv-btn--gold {
  --_bg: var(--nv-gold);
  --_fg: var(--nv-navy);
  border-color: var(--nv-gold);
}
.nv-btn--gold:hover { background: var(--nv-gold-600); border-color: var(--nv-gold-600); }

.nv-btn--ghost {
  --_bg: transparent;
  --_fg: currentColor;
  border-color: currentColor;
}
.nv-btn--ghost:hover {
  background: var(--nv-navy);
  color: #fff;
  border-color: var(--nv-navy);
}
.nv-section--navy .nv-btn--ghost:hover {
  background: #fff;
  color: var(--nv-navy);
  border-color: #fff;
}

/* Lien-texte fléché */
.nv-link {
  display: inline-flex;
  align-items: center;
  gap: 0.55rem;
  font-weight: 600;
  font-size: 0.95rem;
  color: var(--nv-navy);
  letter-spacing: 0.01em;
}
.nv-link .nv-btn__arrow { transition: transform var(--nv-dur-fast) var(--nv-ease); }
.nv-link:hover { color: var(--nv-gold-600); }
.nv-link:hover .nv-btn__arrow { transform: translateX(5px); }
.nv-section--navy .nv-link { color: var(--nv-gold); }

/* ----- Carte glassmorphism (rare, réservée aux accents) ----- */
.nv-glass {
  background: rgba(255, 255, 255, 0.08);
  -webkit-backdrop-filter: blur(16px) saturate(160%);
  backdrop-filter: blur(16px) saturate(160%);
  border: 1px solid rgba(255, 255, 255, 0.16);
  border-radius: var(--nv-radius-lg);
}

/* ----- En-tête de section ----- */
.nv-section__head {
  max-width: 62ch;
  margin-bottom: var(--nv-space-2xl);
}
.nv-section__head--center {
  margin-inline: auto;
  text-align: center;
}
.nv-section__head--center .nv-eyebrow::before { display: none; }
.nv-section__head--center .nv-eyebrow { gap: 0; }

/* ----- Révélation au défilement (progressive enhancement) ----- */
.nv-reveal {
  opacity: 0;
  transform: translateY(28px);
  transition: opacity 0.9s var(--nv-ease), transform 0.9s var(--nv-ease);
  will-change: opacity, transform;
}
.nv-reveal.is-visible {
  opacity: 1;
  transform: none;
}
.nv-reveal[data-delay="1"] { transition-delay: 0.08s; }
.nv-reveal[data-delay="2"] { transition-delay: 0.16s; }
.nv-reveal[data-delay="3"] { transition-delay: 0.24s; }
.nv-reveal[data-delay="4"] { transition-delay: 0.32s; }

/* Sans JS : tout est visible d'emblée (amélioration progressive) */
.no-js .nv-reveal { opacity: 1; transform: none; }

/* Mouvement réduit : pas d'apparition animée */
@media (prefers-reduced-motion: reduce) {
  .nv-reveal { opacity: 1; transform: none; transition: none; }
}
/* ==========================================================
   OFFRES
========================================================== */

.nv-offre-card{

    background:#fff;

    border-radius:18px;

    padding:42px;

    margin-bottom:40px;

    box-shadow:0 15px 40px rgba(0,0,0,.05);

    transition:.35s;

}

.nv-offre-card:hover{

    transform:translateY(-6px);

    box-shadow:0 30px 70px rgba(0,0,0,.08);

}

.nv-offre-card__title{

    font-size:46px;

    margin-bottom:18px;

}

.nv-offre-card__title a{

    color:#10284D;

    text-decoration:none;

}

.nv-offre-card__meta{

    display:flex;

    flex-wrap:wrap;

    gap:18px;

    margin-bottom:28px;

    font-weight:600;

    color:#555;

}

.nv-offre-card__content{

    font-size:19px;

    line-height:1.8;

    color:#555;

    margin-bottom:30px;

}
