/* Manureva Conseil Aéronautique — styles complémentaires (au-dessus de Tailwind CDN) */

:root {
  --pb-navy: #0B2A47;
  --pb-deep: #061A30;
  --pb-cyan: #16BFC9;
  --pb-gold: #E9B45A;
  --pb-line: #DBE3EA;
}

/* Échelle typographique : titres en Fraunces (display) plus aérés */
h1, h2, h3, .font-display { letter-spacing: -0.01em; }
::selection { background: rgba(22,191,201,.22); color: #061A30; }

/* Reveal de base (avant GSAP) — masqué seulement si JS/GSAP actif */
.gsap-ready .reveal { opacity: 0; transform: translateY(24px); }
.reveal { will-change: transform, opacity; }

/* Focus visibles, accessibilité */
a:focus-visible, button:focus-visible, input:focus-visible,
select:focus-visible, textarea:focus-visible, [tabindex]:focus-visible {
  outline: 2px solid var(--pb-cyan);
  outline-offset: 2px;
  border-radius: 4px;
}

/* Grain subtil pour la profondeur des fonds sombres */
.pb-grain {
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
}

/* Halo d'accent réutilisable */
.pb-halo { box-shadow: 0 0 0 1px rgba(22,191,201,.18), 0 24px 60px -24px rgba(22,191,201,.30); }

/* Motif technique : grille fine sur fonds navy */
.pb-grid-bg {
  background-image:
    linear-gradient(rgba(255,255,255,.045) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255,255,255,.045) 1px, transparent 1px);
  background-size: 46px 46px;
  -webkit-mask-image: radial-gradient(ellipse 120% 100% at 50% 0%, #000 55%, transparent 100%);
          mask-image: radial-gradient(ellipse 120% 100% at 50% 0%, #000 55%, transparent 100%);
}

/* Liseré cyan technique au survol des cartes */
.pb-card {
  position: relative;
  transition: transform .4s cubic-bezier(.2,.7,.2,1), box-shadow .4s ease, border-color .4s ease;
}
.pb-card:hover { transform: translateY(-6px); box-shadow: 0 22px 50px -16px rgba(6,26,48,.22); }
.pb-card::after {
  content: ""; position: absolute; left: 0; right: 0; bottom: 0; height: 3px;
  background: linear-gradient(90deg, var(--pb-cyan), var(--pb-gold));
  transform: scaleX(0); transform-origin: left;
  transition: transform .4s cubic-bezier(.2,.7,.2,1);
  border-bottom-left-radius: 14px; border-bottom-right-radius: 14px;
}
.pb-card:hover::after { transform: scaleX(1); }

/* Trait altimètre / graduations décoratives — dégradé signature */
.pb-rule {
  width: 56px; height: 3px; border-radius: 2px;
  background: linear-gradient(90deg, var(--pb-cyan), var(--pb-gold));
}

/* Lien soulignement animé */
.pb-underline { position: relative; }
.pb-underline::after {
  content:""; position:absolute; left:0; bottom:-2px; height:1.5px; width:100%;
  background: currentColor; transform: scaleX(0); transform-origin: right;
  transition: transform .35s cubic-bezier(.2,.7,.2,1);
}
.pb-underline:hover::after { transform: scaleX(1); transform-origin: left; }

/* Animation de chiffre du configurateur (tick) */
.pb-tick { transition: color .15s ease; }
.pb-tick.flash { color: var(--pb-cyan); }

/* Leaflet : coins arrondis cohérents */
.leaflet-container { border-radius: 14px; font-family: 'IBM Plex Sans', sans-serif; }

/* Impression du récapitulatif devis */
@media print {
  .no-print { display: none !important; }
  body { background: #fff !important; }
}

/* Stepper du configurateur */
.pb-step-dot { transition: all .3s ease; }

@media (prefers-reduced-motion: reduce) {
  .gsap-ready .reveal { opacity: 1 !important; transform: none !important; }
  [data-hero-card], [data-hero-sub], [data-hero-cta] { opacity: 1 !important; transform: none !important; }
  * { scroll-behavior: auto !important; }
}
