/* APIOB — correctifs de mise en page transversaux 2026-08-17
   Chargé en dernier : protège les pages contre le header fixe, les titres hors gabarit
   et les contenus HTML distants sans espacement. */
:root{
  --apiob-ink:#101827;
  --apiob-muted:#637083;
  --apiob-line:#e1e7ef;
  --apiob-surface:#ffffff;
  --apiob-soft:#f6f8fb;
  --apiob-accent:#10a6a1;
  --apiob-header-offset:112px;
}
html{scroll-padding-top:calc(var(--apiob-header-offset) + 24px)}
body{overflow-x:hidden}
img{max-width:100%;height:auto}

/* En-tête APIOB moderne : dimensions stables et aucun chevauchement. */
.nova-header{background:rgba(255,255,255,.97);border-bottom:1px solid var(--apiob-line);position:relative;z-index:1031}
.nova-header__inner{max-width:1360px;margin:0 auto;padding:20px clamp(20px,4vw,48px);display:flex;align-items:center;justify-content:space-between;gap:32px;min-height:104px}
.nova-brand{display:flex;align-items:center;gap:16px;color:var(--apiob-ink)!important;text-decoration:none!important;min-width:260px}
.nova-brand__mark{width:56px;height:56px;display:grid;place-items:center;border-radius:16px;background:linear-gradient(145deg,#0c8f94,#18aaa4);color:#fff;font-size:27px;font-weight:800;box-shadow:0 10px 28px rgba(16,166,161,.18)}
.nova-brand__copy{display:flex;flex-direction:column;line-height:1.15}
.nova-brand__copy strong{font-size:24px;color:var(--apiob-ink)}
.nova-brand__copy small{margin-top:6px;color:#748196;font-size:13px;white-space:nowrap}
.nova-nav{display:flex;align-items:center;justify-content:flex-end;gap:clamp(18px,2.5vw,40px);font-weight:700}
.nova-nav>a,.nova-nav__trigger{color:var(--apiob-ink)!important;text-decoration:none;background:none;border:0;padding:10px 0;font:inherit;white-space:nowrap}
.nova-nav__cta{background:var(--apiob-ink)!important;color:#fff!important;padding:17px 24px!important;border-radius:16px}
.nova-nav__group{position:relative}
.nova-mega{display:none;position:absolute;top:100%;left:0;min-width:520px;background:#fff;border:1px solid var(--apiob-line);border-radius:18px;padding:24px;box-shadow:0 24px 60px rgba(16,24,39,.14)}
.nova-nav__group:focus-within .nova-mega,.nova-nav__group:hover .nova-mega{display:grid;grid-template-columns:1fr 1.5fr;gap:24px}
.nova-mega__links{display:grid;gap:8px}.nova-mega a{color:var(--apiob-ink)!important;text-decoration:none}
.nova-nav-toggle{display:none}

/* Pages avec ancien header fixe : créer une vraie zone sous la navigation. */
.fixed-top + .inner-page-header,
body > .fixed-top + header.inner-page-header{
  margin-top:var(--apiob-header-offset)!important;
}
.inner-page-header{min-height:260px!important;padding:72px 0 56px!important;display:flex;align-items:center}
.inner-header-content h1{font-size:clamp(2.5rem,5vw,4.6rem)!important;line-height:1.04!important;margin:0 0 18px!important;overflow-wrap:anywhere}

/* Pages juridiques alimentées par proxy. */
.legal-page{
  padding:calc(var(--apiob-header-offset) + 54px) 0 88px!important;
  background:var(--apiob-soft);
  min-height:70vh;
}
.legal-page .container{max-width:1240px!important;padding-left:24px!important;padding-right:24px!important}
.legal-shell{
  background:var(--apiob-surface);
  border:1px solid var(--apiob-line);
  border-radius:24px;
  padding:clamp(28px,5vw,64px)!important;
  box-shadow:0 18px 55px rgba(22,34,51,.055);
}
.legal-shell>.legal-eyebrow,.legal-shell>p:first-child{margin:0 0 14px!important}
.legal-shell>h1{
  color:var(--apiob-ink)!important;
  font-size:clamp(2.7rem,6vw,5.2rem)!important;
  line-height:.98!important;
  letter-spacing:-.045em;
  margin:0 0 clamp(34px,5vw,58px)!important;
  padding:0!important;
  max-width:100%!important;
  overflow-wrap:anywhere;
}
.legal-proxy-content{color:#4f5e72;font-size:1.06rem;line-height:1.75;max-width:100%;overflow-wrap:anywhere}
.legal-proxy-content>*{max-width:100%}
.legal-proxy-content h1{font-size:clamp(2.25rem,5vw,4rem)!important;line-height:1.05!important;letter-spacing:-.035em!important;margin:0 0 20px!important;color:var(--apiob-ink)!important}
.legal-proxy-content h2{font-size:clamp(1.65rem,3.3vw,2.55rem)!important;line-height:1.12!important;letter-spacing:-.025em!important;margin:0 0 22px!important;color:var(--apiob-ink)!important}
.legal-proxy-content h3{font-size:clamp(1.25rem,2.2vw,1.65rem)!important;line-height:1.25!important;margin:28px 0 12px!important;color:var(--apiob-ink)!important}
.legal-proxy-content p{margin:0 0 1.1em!important;line-height:1.75!important}
.legal-proxy-content a{overflow-wrap:anywhere}
.legal-proxy-content table{width:100%!important;border-collapse:collapse!important;margin:18px 0 34px!important;font-size:1rem}
.legal-proxy-content th,.legal-proxy-content td{padding:15px 18px!important;vertical-align:top!important;border-bottom:1px solid var(--apiob-line)!important;line-height:1.5!important}
.legal-proxy-content th{width:23%;min-width:160px;color:#53627a;font-weight:700;text-align:left}
.legal-proxy-content section,.legal-proxy-content article,.legal-proxy-content>.card,.legal-proxy-content>.legal-card{
  padding:clamp(24px,4vw,44px)!important;
  margin:0 0 24px!important;
  border:1px solid var(--apiob-line)!important;
  border-radius:20px!important;
  background:#fff!important;
}
.legal-proxy-content section>h2:first-child,.legal-proxy-content article>h2:first-child{margin-top:0!important}

/* Ressources éditoriales : cartes et titres respirent même si Bootstrap/template évolue. */
.resource-main{padding-top:var(--apiob-header-offset);background:var(--apiob-soft);color:var(--apiob-ink)}
.resource-hero{padding:64px 0 40px!important}.resource-hero .container,.resource-section .container{max-width:1200px;padding-left:24px;padding-right:24px}
.resource-hero h1{font-size:clamp(2.45rem,5.4vw,4.7rem)!important;line-height:1.03!important;letter-spacing:-.04em;margin:0 0 24px!important;max-width:1050px;overflow-wrap:anywhere}
.resource-hero p{font-size:clamp(1.05rem,1.8vw,1.25rem);line-height:1.7;color:var(--apiob-muted);max-width:900px;margin:0}
.resource-section{padding:24px 0 88px!important}
.resource-grid{display:grid!important;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px!important;margin:0 0 34px!important}
.resource-card,.resource-step,.resource-callout,.resource-cta{
  padding:clamp(24px,3.2vw,36px)!important;
  border:1px solid var(--apiob-line)!important;
  border-radius:20px!important;
  background:#fff;
  box-shadow:0 12px 34px rgba(22,34,51,.04);
}
.resource-card h2,.resource-card h3,.resource-step h3,.resource-cta h2{margin:0 0 14px!important;line-height:1.16!important;color:var(--apiob-ink)!important}
.resource-card h2,.resource-cta h2{font-size:clamp(1.4rem,2.5vw,2rem)!important}.resource-card h3,.resource-step h3{font-size:clamp(1.18rem,1.8vw,1.45rem)!important}
.resource-card p,.resource-step p,.resource-callout,.resource-cta p{line-height:1.7!important;color:var(--apiob-muted);margin-bottom:0}
.resource-callout{margin:0 0 42px!important;border-left:5px solid var(--apiob-accent)!important}
.resource-section>.container>h2,.resource-section .container>h2{font-size:clamp(1.9rem,3.4vw,2.8rem)!important;line-height:1.1!important;margin:48px 0 24px!important}
.resource-steps{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px!important}
.resource-cta{margin-top:44px!important;background:#eefaf9!important;border-color:#cce9e7!important}

/* Contact : éviter les blocs collés et le header superposé. */
.contact-redesign{padding:72px 0 88px!important;background:var(--apiob-soft)}
.contact-redesign .container{max-width:1200px;padding-left:24px;padding-right:24px}
.contact-shell{display:grid!important;grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr);gap:28px!important}
.contact-shell__details,.contact-shell__form{padding:clamp(28px,4vw,48px)!important;border:1px solid var(--apiob-line);border-radius:22px;background:#fff;min-width:0}
.contact-shell h2{font-size:clamp(1.8rem,3vw,2.7rem)!important;line-height:1.08!important;margin:10px 0 18px!important}

/* Footer moderne : garder un rythme cohérent. */
.nova-footer{background:#0f1828;color:#dfe7f2;padding:64px clamp(22px,5vw,72px) 24px}
.nova-footer__top{max-width:1360px;margin:0 auto;display:grid;grid-template-columns:minmax(260px,.8fr) minmax(0,1.6fr);gap:64px}
.nova-footer h2,.nova-footer h3{color:#fff!important}.nova-footer__intro h2{font-size:clamp(1.8rem,3vw,2.8rem)!important;line-height:1.1!important;margin:12px 0 18px!important}
.nova-footer__grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:36px}.nova-footer__grid>div{display:flex;flex-direction:column;gap:10px}.nova-footer a{color:#dfe7f2!important;text-decoration:none}.nova-footer__bottom{max-width:1360px;margin:48px auto 0;padding-top:22px;border-top:1px solid rgba(255,255,255,.12);font-size:.92rem}.nova-footer__backlinks p{margin:0}

@media(max-width:1050px){
  :root{--apiob-header-offset:96px}
  .nova-header__inner{min-height:88px;padding:16px 22px}.nova-nav{gap:18px}.nova-brand__copy small{display:none}.nova-brand{min-width:auto}.nova-brand__mark{width:50px;height:50px}
  .resource-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.nova-footer__top{grid-template-columns:1fr}.nova-footer__grid{gap:24px}
}
@media(max-width:820px){
  :root{--apiob-header-offset:84px}
  .nova-header__inner{min-height:78px}.nova-nav-toggle{display:flex;width:46px;height:42px;flex-direction:column;justify-content:center;gap:5px;border:0;background:transparent}.nova-nav-toggle span{height:2px;background:var(--apiob-ink);width:25px;margin:0 auto}
  .nova-nav{display:none;position:absolute;top:100%;left:0;right:0;padding:18px 24px 28px;background:#fff;border-top:1px solid var(--apiob-line);box-shadow:0 18px 35px rgba(16,24,39,.1);align-items:stretch;flex-direction:column}.nova-header:focus-within .nova-nav{display:flex}
  .nova-nav__group{display:block}.nova-mega{position:static;min-width:0;box-shadow:none;border:0;padding:10px 0}.nova-nav__group:focus-within .nova-mega{display:block}.nova-mega>div:first-child{display:none}.nova-mega__links{padding-left:12px}
  .inner-page-header{min-height:210px!important;padding:50px 0 42px!important}
  .legal-page{padding-top:calc(var(--apiob-header-offset) + 36px)!important}.legal-shell{border-radius:18px}.legal-proxy-content th,.legal-proxy-content td{padding:12px!important}.legal-proxy-content th{min-width:120px;width:34%}
  .resource-grid,.resource-steps,.contact-shell{grid-template-columns:1fr!important}.resource-hero{padding-top:42px!important}
  .nova-footer__grid{grid-template-columns:1fr 1fr}
}
@media(max-width:560px){
  .nova-brand__copy strong{font-size:20px}.nova-brand__mark{width:46px;height:46px;border-radius:13px}.nova-header__inner{padding:12px 16px}
  .legal-page .container,.resource-hero .container,.resource-section .container,.contact-redesign .container{padding-left:16px!important;padding-right:16px!important}.legal-shell{padding:24px 18px!important}.legal-shell>h1{font-size:2.65rem!important}.legal-proxy-content h1{font-size:2.25rem!important}.legal-proxy-content h2{font-size:1.65rem!important}.legal-proxy-content table{display:block;overflow-x:auto;white-space:normal}.legal-proxy-content th{min-width:135px}
  .resource-card,.resource-step,.resource-callout,.resource-cta,.contact-shell__details,.contact-shell__form{padding:22px!important;border-radius:16px!important}
  .nova-footer{padding-left:20px;padding-right:20px}.nova-footer__grid{grid-template-columns:1fr}
}

/* APIOB brand logo — remplacement du monogramme historique */
.nova-brand{display:inline-flex;align-items:center;text-decoration:none;min-width:0}
.nova-brand__logo{display:block;width:clamp(220px,22vw,346px);height:auto;max-height:72px;object-fit:contain;object-position:left center}
@media (max-width:760px){.nova-brand__logo{width:210px;max-height:58px}}
@media (max-width:420px){.nova-brand__logo{width:178px;max-height:52px}}

/* Correctif CTA Contact navbar — priorité sur la règle générique .nova-nav > a */
.nova-nav > a.nova-nav__cta,
.nova-nav > a.nova-nav__cta:link,
.nova-nav > a.nova-nav__cta:visited {
  background: var(--apiob-ink) !important;
  color: #fff !important;
  padding: 17px 24px !important;
  border-radius: 16px;
  text-decoration: none !important;
}
.nova-nav > a.nova-nav__cta:hover,
.nova-nav > a.nova-nav__cta:focus-visible {
  background: #123b70 !important;
  color: #fff !important;
  text-decoration: none !important;
}
.nova-nav > a.nova-nav__cta:focus-visible {
  outline: 3px solid rgba(14,165,165,.45);
  outline-offset: 3px;
}


/* Pixels techniques visites / monitoring : chargés sans occuper d'espace visuel. */
.nova-tracking-pixel {
  position: absolute !important;
  width: 1px !important;
  height: 1px !important;
  min-width: 0 !important;
  min-height: 0 !important;
  margin: 0 !important;
  padding: 0 !important;
  border: 0 !important;
  opacity: 0 !important;
  pointer-events: none !important;
  overflow: hidden !important;
  clip-path: inset(50%) !important;
}
