/* Basiliks central — header, navigation, menu burger et footer uniquement. */
/*
 * Basiliks — composant central strict.
 * Header, navigation, menu mobile et footer seulement.
 * Toutes les classes sont isolées avec le préfixe basiliks-.
 */
.basiliks-header,
.basiliks-header *,
.basiliks-mobile-menu,
.basiliks-mobile-menu *,
.basiliks-footer,
.basiliks-footer *{
  box-sizing:border-box;
}

.basiliks-header a,
.basiliks-mobile-menu a,
.basiliks-footer a{
  color:inherit;
  text-decoration:none;
}

.basiliks-shell{
  width:100%;
  max-width:1460px;
  margin:0 auto;
  padding:0 16px;
}

.basiliks-header{
  position:sticky;
  top:0;
  z-index:50;
  margin:0 0 .55rem;
  padding:0;
  background:#fff;
  border-bottom:1px solid rgba(15,23,42,.08);
  box-shadow:0 10px 26px rgba(2,6,23,.08);
}

.basiliks-nav{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  min-width:0;
  padding-top:max(8px, env(safe-area-inset-top));
  padding-bottom:8px;
  line-height:1;
}

.basiliks-brand{
  display:flex;
  flex:1 1 auto;
  align-items:center;
  gap:12px;
  min-width:0;
}

.basiliks-brand img{
  width:44px;
  height:44px;
  border:1px solid rgba(15,23,42,.10);
  border-radius:16px;
  background:#fff;
  box-shadow:0 6px 18px rgba(10,20,40,.08);
}

.basiliks-brand__text{
  display:block;
  min-width:0;
}

.basiliks-brand strong{
  display:block;
  font-size:1.02rem;
  line-height:1;
  letter-spacing:.14em;
}

.basiliks-brand__text > span{
  display:block;
  margin-top:.15rem;
  color:rgba(15,23,42,.60);
  font-size:.86rem;
}

.basiliks-menu{
  display:flex;
  align-items:center;
  gap:.35rem;
  padding:.35rem;
  border:1px solid rgba(15,23,42,.10);
  border-radius:999px;
  background:rgba(255,255,255,.70);
  box-shadow:0 6px 18px rgba(10,20,40,.08);
}

.basiliks-menu a{
  padding:.58rem .9rem;
  border-radius:999px;
  color:rgba(15,23,42,.72);
  font-size:.92rem;
  font-weight:800;
}

.basiliks-menu a:hover{background:rgba(15,23,42,.05)}
.basiliks-menu a.is-active{color:#fff;background:rgba(15,23,42,.92)}

.basiliks-actions{
  display:flex;
  align-items:center;
  gap:.6rem;
}

.basiliks-portal{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:46px;
  padding:.78rem 1.05rem;
  border:1px solid rgba(118,192,67,.52);
  border-radius:15px;
  color:#10230b;
  background:linear-gradient(135deg,#76c043,#3cff9a);
  box-shadow:0 13px 28px rgba(78,150,42,.22), inset 0 1px 0 rgba(255,255,255,.34);
  font-size:.91rem;
  font-weight:900;
  cursor:pointer;
  transition:transform .18s ease, box-shadow .18s ease, background .18s ease;
  -webkit-tap-highlight-color:transparent;
}

.basiliks-portal:hover{
  transform:translateY(-2px);
  background:linear-gradient(135deg,#7dcc49,#4dffa4);
  box-shadow:0 16px 32px rgba(78,150,42,.28), inset 0 1px 0 rgba(255,255,255,.40);
}

.basiliks-burger{
  display:none;
  width:40px;
  height:40px;
  align-items:center;
  justify-content:center;
  padding:0;
  border:1px solid rgba(15,23,42,.12);
  border-radius:12px;
  color:rgba(15,23,42,.62);
  background:rgba(255,255,255,.88);
  box-shadow:0 6px 18px rgba(10,20,40,.08);
  cursor:pointer;
  transition:background .15s ease, box-shadow .18s ease, transform .18s ease;
  -webkit-tap-highlight-color:transparent;
}

.basiliks-burger:hover{
  transform:translateY(-1px);
  background:rgba(15,23,42,.06);
  box-shadow:0 10px 30px rgba(10,20,40,.10);
}

.basiliks-burger:active{transform:translateY(0) scale(.97)}
.basiliks-burger svg{width:18px;height:18px;opacity:1}

html.basiliks-scroll-locked,
body.basiliks-scroll-locked{
  height:100%!important;
  overflow:hidden!important;
  overscroll-behavior:none;
}

body.basiliks-scroll-locked{touch-action:none}

.basiliks-mobile-menu{
  position:fixed;
  inset:0;
  z-index:1400;
  opacity:0;
  visibility:hidden;
  pointer-events:none;
  overscroll-behavior:contain;
  transition:opacity .12s linear, visibility .12s linear;
}

.basiliks-mobile-menu.basiliks-is-open{
  opacity:1;
  visibility:visible;
  pointer-events:auto;
}

.basiliks-mobile-menu__backdrop{
  position:absolute;
  inset:0;
  background:linear-gradient(160deg,rgba(226,235,245,.985),rgba(211,224,238,.985));
}

.basiliks-mobile-menu__dialog{
  position:relative;
  z-index:1;
  display:flex;
  min-height:100dvh;
  align-items:center;
  justify-content:center;
  max-height:100dvh;
  overflow-y:auto;
  overscroll-behavior:contain;
  -webkit-overflow-scrolling:touch;
  padding:max(14px, env(safe-area-inset-top)) 22px max(14px, env(safe-area-inset-bottom));
}

.basiliks-mobile-menu__close{
  position:absolute;
  top:max(14px, env(safe-area-inset-top));
  right:14px;
  display:inline-flex;
  width:46px;
  height:46px;
  align-items:center;
  justify-content:center;
  border:1px solid rgba(255,255,255,.84);
  border-radius:16px;
  color:#25344b;
  background:rgba(236,242,249,.88);
  box-shadow:0 12px 30px rgba(49,72,108,.13);
  cursor:pointer;
  transition:transform .18s ease, background .15s ease;
  -webkit-tap-highlight-color:transparent;
}

.basiliks-mobile-menu__close:hover{
  transform:rotate(90deg) scale(1.06);
  background:rgba(255,255,255,.96);
}

.basiliks-mobile-menu__close svg{width:20px;height:20px}
.basiliks-mobile-menu__content{width:min(100%,410px)}
.basiliks-mobile-menu__list{margin:0;padding:0;list-style:none}

.basiliks-mobile-menu__link{
  display:flex;
  width:100%;
  min-height:72px;
  align-items:center;
  justify-content:space-between;
  gap:16px;
  padding:0 4px;
  border-bottom:1px solid rgba(37,52,75,.10);
  color:#26344b;
  font-size:clamp(1.55rem,5vw,1.95rem);
  font-weight:800;
  line-height:1;
  text-align:left;
  cursor:pointer;
  transition:color .13s ease;
}

.basiliks-mobile-menu__link:hover{color:#172337}
.basiliks-mobile-menu__link.is-active{color:#26344b}
.basiliks-mobile-menu__portal{
  margin-top:.4rem;
  border-bottom:0;
  color:#76c043;
  font-weight:900;
}
.basiliks-mobile-menu__portal:hover,
.basiliks-mobile-menu__portal:focus-visible{color:#67ad35}

.basiliks-footer{
  margin:0;
  padding:1.5rem 0 calc(1.5rem + env(safe-area-inset-bottom));
  border-top:1px solid rgba(255,255,255,.72);
  color:#78869a;
  background:rgba(224,233,243,.28);
  backdrop-filter:blur(18px);
  -webkit-backdrop-filter:blur(18px);
}

.basiliks-footer__inner{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:1rem;
}

.basiliks-footer__brand{
  display:flex;
  align-items:center;
  gap:.78rem;
}

.basiliks-footer__brand img{
  width:38px;
  height:38px;
  border-radius:13px;
  background:#fff;
  box-shadow:0 8px 20px rgba(53,75,111,.10);
}

.basiliks-footer__brand strong{
  display:block;
  color:#24334a;
  font-size:.84rem;
  letter-spacing:.14em;
}

.basiliks-footer__brand > span > span{
  display:block;
  margin-top:.18rem;
  color:#8491a3;
  font-size:.72rem;
  font-weight:700;
}

.basiliks-footer__meta{
  display:flex;
  align-items:center;
  justify-content:flex-end;
  gap:1rem;
  color:#77859a;
  font-size:.78rem;
  font-weight:700;
}

.basiliks-footer__meta a{color:#77859a}
.basiliks-footer__meta a:hover{color:#26354c}

body.company-mode .basiliks-header{
  top:0;
  margin:0;
  padding:max(10px, env(safe-area-inset-top)) 0 0;
  border:0;
  background:linear-gradient(180deg,rgba(222,231,242,.92),rgba(222,231,242,.64) 74%,transparent);
  box-shadow:none;
  backdrop-filter:blur(14px);
  -webkit-backdrop-filter:blur(14px);
}

body.company-mode .basiliks-nav{
  min-height:64px;
  padding:8px 9px 8px 12px;
  border:1px solid rgba(255,255,255,.80);
  border-radius:22px;
  background:rgba(233,240,248,.54);
  box-shadow:0 18px 45px rgba(47,69,106,.11), inset 0 1px 0 rgba(255,255,255,.90);
  backdrop-filter:blur(22px) saturate(1.35);
  -webkit-backdrop-filter:blur(22px) saturate(1.35);
}

body.company-mode .basiliks-brand{gap:11px}
body.company-mode .basiliks-brand img{
  width:42px;
  height:42px;
  border-color:rgba(255,255,255,.95);
  border-radius:14px;
  box-shadow:0 9px 22px rgba(55,77,112,.13);
}
body.company-mode .basiliks-brand strong{color:#172337;font-size:.98rem;letter-spacing:.16em}
body.company-mode .basiliks-brand__text > span{color:#76849a;font-size:.77rem;margin-top:.22rem}

body.company-mode .basiliks-menu{
  gap:.1rem;
  padding:.22rem;
  border-color:rgba(255,255,255,.65);
  background:rgba(225,234,244,.36);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.75);
}

body.company-mode .basiliks-menu a{
  position:relative;
  padding:.62rem .86rem;
  color:#586882;
  font-size:.88rem;
  transition:color .18s ease, background .18s ease, box-shadow .18s ease;
}

body.company-mode .basiliks-menu a:hover{color:#172337;background:rgba(236,242,249,.58)}
body.company-mode .basiliks-menu a.is-active{
  color:#172337;
  background:rgba(241,245,251,.74);
  box-shadow:0 7px 17px rgba(59,80,116,.09);
}

body.company-mode .basiliks-burger{
  color:#26344b;
  border-color:rgba(255,255,255,.82);
  background:rgba(229,237,246,.52);
  box-shadow:0 10px 24px rgba(56,79,116,.10), inset 0 1px 0 rgba(255,255,255,.94);
  backdrop-filter:blur(14px);
  -webkit-backdrop-filter:blur(14px);
}

@media (max-width:980px){
  .basiliks-menu{display:none}
  .basiliks-brand{min-width:auto}
  .basiliks-portal{display:none}
  .basiliks-burger{display:inline-flex}
  .basiliks-footer__inner{align-items:flex-start;flex-direction:column}
  .basiliks-footer__meta{justify-content:flex-start;flex-wrap:wrap}
}

@media (max-width:520px){
  .basiliks-brand__text > span{display:none}
  body.company-mode .basiliks-nav{min-height:58px;border-radius:18px;padding:7px 8px}
  body.company-mode .basiliks-brand img{width:39px;height:39px}
  .basiliks-footer__meta{width:100%;justify-content:space-between}
}

@media (max-width:820px){
  .basiliks-mobile-menu{transition:none}
  .basiliks-burger,
  .basiliks-mobile-menu__close,
  .basiliks-mobile-menu__link{touch-action:manipulation}
}

/* --------------------------------------------------------------------------
 * Boutons de contenu partagés
 *
 * Ces règles étaient auparavant présentes dans chaque page publique. Elles
 * sont centralisées ici sans cibler le header, le footer ni le menu Basiliks.
 * -------------------------------------------------------------------------- */
body.company-mode .btn{
  display:inline-flex;
  min-height:46px;
  align-items:center;
  justify-content:center;
  gap:.45rem;
  padding:.78rem 1.05rem;
  border:1px solid rgba(255,255,255,.82);
  border-radius:15px;
  color:#26344b;
  background:rgba(229,237,246,.52);
  box-shadow:0 10px 24px rgba(56,79,116,.10), inset 0 1px 0 rgba(255,255,255,.94);
  font:900 .91rem/1.2 ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
  text-align:center;
  text-decoration:none;
  appearance:none;
  -webkit-appearance:none;
  backdrop-filter:blur(14px);
  -webkit-backdrop-filter:blur(14px);
  cursor:pointer;
  transition:transform .18s ease, box-shadow .18s ease, background .18s ease, border-color .18s ease;
  -webkit-tap-highlight-color:transparent;
}

body.company-mode .btn:hover{
  transform:translateY(-2px);
  box-shadow:0 16px 32px rgba(56,79,116,.14), inset 0 1px 0 rgba(255,255,255,.96);
}

body.company-mode .btn:focus-visible{
  outline:3px solid rgba(118,192,67,.30);
  outline-offset:3px;
}

body.company-mode .btn.primary{
  color:#10230b;
  border-color:rgba(118,192,67,.52);
  background:linear-gradient(135deg,#76c043,#3cff9a);
  box-shadow:0 13px 28px rgba(78,150,42,.22), inset 0 1px 0 rgba(255,255,255,.34);
}

body.company-mode .btn.primary:hover{
  background:linear-gradient(135deg,#7dcc49,#4dffa4);
  box-shadow:0 16px 32px rgba(78,150,42,.28), inset 0 1px 0 rgba(255,255,255,.40);
}

body.company-mode .btn.ghost{
  color:#25334a;
  border-color:rgba(255,255,255,.82);
  background:rgba(233,240,248,.54);
}

body.company-mode .btn.ghost:hover{
  background:rgba(241,245,251,.72);
}

body.company-mode button.btn:disabled,
body.company-mode .btn[aria-disabled="true"]{
  opacity:.58;
  transform:none;
  cursor:not-allowed;
}

@media (max-width:520px){
  body.company-mode .btn{padding:.82rem 1rem}
}


/* --------------------------------------------------------------------------
 * Portail — vert Basiliks garanti dans le header et le menu mobile.
 * La précision des sélecteurs empêche la règle générique des liens du
 * composant de rétablir la couleur héritée.
 * -------------------------------------------------------------------------- */
.basiliks-header a.basiliks-portal{
  color:#10230b;
  border-color:rgba(118,192,67,.52);
  background:linear-gradient(135deg,#76c043,#3cff9a);
}

.basiliks-header a.basiliks-portal:hover,
.basiliks-header a.basiliks-portal:focus-visible{
  color:#10230b;
  background:linear-gradient(135deg,#7dcc49,#4dffa4);
}

.basiliks-mobile-menu a.basiliks-mobile-menu__portal{
  color:#76c043;
}

.basiliks-mobile-menu a.basiliks-mobile-menu__portal:hover,
.basiliks-mobile-menu a.basiliks-mobile-menu__portal:focus-visible{
  color:#67ad35;
}

/* --------------------------------------------------------------------------
 * Accueil mobile — pré-rasterisation invisible du menu.
 * Aucun flou, dégradé ou effet liquid glass de la page n'est modifié.
 * -------------------------------------------------------------------------- */
@media (max-width:820px){
  .basiliks-mobile-menu{
    transform:translateZ(0);
    contain:paint;
    backface-visibility:hidden;
    -webkit-backface-visibility:hidden;
    will-change:opacity;
  }

  .basiliks-mobile-menu.basiliks-is-warming{
    opacity:.001;
    visibility:visible;
    pointer-events:none;
  }
}
