/* ================================================================
   LUDWIG PORTFOLIO V17.0.0 — COHÉRENCE & FIABILITÉ
   P0 + socle P1. Additive/conservative: V16 engines stay intact.
   ================================================================ */
:root{
  --accent2:var(--accent-2,#65D6FF);
  --paper2:var(--paper-2,#17111F);
  --v17-space-1:8px;--v17-space-2:16px;--v17-space-3:24px;--v17-space-4:32px;--v17-space-5:48px;--v17-space-6:64px;
}
html[data-v17]{--v17-density:balanced}

/* ------------------------------------------------------------------
   1. BARRE GLOBALE — un seul composant piloté par Control.
   Les anciennes couleurs locales des widgets sont neutralisées dans
   les fichiers V17 et ce filet de sécurité garde la priorité en prod.
   ------------------------------------------------------------------ */
.v6-colourbar,.v17-immersive-colourbar{
  display:block;
  position:relative;
  z-index:80;
  width:100%;
  min-height:1px;
  border:0!important;
  transform:none!important;
  pointer-events:none;
}
.v17-immersive-colourbar{position:fixed;left:0;right:0;top:0;z-index:99975}
.v6-colourbar.v17-colourbar-animated,.v17-immersive-colourbar.v17-colourbar-animated{
  animation:v17ColourbarShift var(--v17-colourbar-speed,8s) linear infinite!important;
}
@keyframes v17ColourbarShift{to{background-position:320% 50%}}

/* Palette aliases during migration: one color token vocabulary. */
body{--accent2:var(--accent-2,var(--accent2,#65D6FF));--paper2:var(--paper-2,var(--paper2,#17111F))}

/* ------------------------------------------------------------------
   2. DENSITÉ — contenu principal visible plus tôt.
   ------------------------------------------------------------------ */
html[data-v17-density="compact"] body[data-v6-page="home"] .hero{
  padding:112px 0 68px!important;min-height:auto!important;
}
html[data-v17-density="compact"] body[data-v6-page="home"] .hero .eyebrow{margin-bottom:16px!important}
html[data-v17-density="compact"] body[data-v6-page="home"] .hero h1.display{font-size:clamp(48px,7vw,96px)!important}
html[data-v17-density="compact"] body[data-v6-page="home"] .hero-sub{max-width:780px!important;margin-top:18px!important}
html[data-v17-density="compact"] body[data-v6-page="home"] .hero-actions{margin-top:24px!important}
html[data-v17-density="compact"] body[data-v6-page="home"] .hero-meta{margin-top:28px!important}

html[data-v17-density="compact"] body[data-v6-page="gallery"] .gallery-intro{
  padding:72px 0 24px!important;
}
html[data-v17-density="compact"] body[data-v6-page="gallery"] .gallery-title h1{
  font-size:clamp(52px,6vw,80px)!important;margin-bottom:12px!important;
}
html[data-v17-density="compact"] body[data-v6-page="gallery"] .gallery-desc{font-size:15px!important;line-height:1.55!important;max-width:760px!important}
html[data-v17-density="compact"] body[data-v6-page="gallery"] .filter-container{margin:22px 0 10px!important}
html[data-v17-density="compact"] body[data-v6-page="gallery"] .v16-toolstrip{margin:6px 0 10px!important}
html[data-v17-density="compact"] body[data-v6-page="gallery"] .gallery-grid{margin-top:18px!important}

html[data-v17-density="compact"] body[data-v6-page="resources"] .resources-page-root main{
  padding:78px 0 54px!important;
}
html[data-v17-density="compact"] body[data-v6-page="resources"] .resources-page-root .hero{
  padding-bottom:26px!important;gap:42px!important;
}
html[data-v17-density="compact"] body[data-v6-page="resources"] .resources-page-root h1{font-size:clamp(52px,6vw,84px)!important}
html[data-v17-density="compact"] body[data-v6-page="resources"] .resources-page-root .hero-copy{font-size:15px!important;line-height:1.55!important}
html[data-v17-density="compact"] body[data-v6-page="resources"] .resource-filter-panel-fixed{padding-block:10px!important}
html[data-v17-density="compact"] body[data-v6-page="resources"] .resource-grid{margin-top:14px!important}

html[data-v17-density="compact"] body[data-v6-page="quote"] .page-intro{padding:48px 0 0!important}
html[data-v17-density="compact"] body[data-v6-page="quote"] .page-intro p{margin-top:12px!important;line-height:1.55!important}
html[data-v17-density="compact"] body[data-v6-page="quote"] .quote-section{padding:52px 0!important}
html[data-v17-density="compact"] body[data-v6-page="quote"] #simulateur-devis>.wrap>.sec-head{margin-bottom:20px!important}

html[data-v17-density="compact"] body[data-v15-animated-portfolio="true"] .hero{
  min-height:auto!important;padding:118px max(24px,calc((100vw - 1600px)/2)) 32px!important;align-items:end!important;
}
html[data-v17-density="compact"] body[data-v15-animated-portfolio="true"] .hero h1{
  font-size:clamp(58px,7vw,118px)!important;line-height:.78!important;max-width:760px!important;
}
html[data-v17-density="compact"] body[data-v15-animated-portfolio="true"] .hero p{margin-top:16px!important;font-size:15px!important;line-height:1.55!important;max-width:660px!important}
html[data-v17-density="compact"] body[data-v15-animated-portfolio="true"] .hero-bottom{margin-top:20px!important}
html[data-v17-density="compact"] body[data-v15-animated-portfolio="true"] .gallery-filters{margin-top:18px!important}

html[data-v17-density="compact"] body[data-v13-ai-page="true"] .v13-hero{
  min-height:auto!important;padding:92px 0 44px!important;
}
html[data-v17-density="compact"] body[data-v13-ai-page="true"] .v13-hero h1{font-size:clamp(58px,8vw,110px)!important;line-height:.8!important;margin:14px 0 16px!important}
html[data-v17-density="compact"] body[data-v13-ai-page="true"] .v13-hero p{line-height:1.6!important}
html[data-v17-density="compact"] body[data-v13-ai-page="true"] .v13-editorial{padding:28px 0!important}
html[data-v17-density="compact"] body[data-v13-ai-page="true"] .v13-survey-section{padding-top:34px!important}

/* Balanced remains close to V16. Immersive intentionally leaves room. */
html[data-v17-density="immersive"]{--v17-density:immersive}

/* ------------------------------------------------------------------
   3. HOME SECTION NAV — direct access without deleting any section.
   ------------------------------------------------------------------ */
.v17-section-nav{width:min(calc(100% - 48px),var(--max-width,1520px));margin:18px auto 0;display:flex;gap:7px;overflow-x:auto;scrollbar-width:none;position:relative;z-index:6}
.v17-section-nav::-webkit-scrollbar{display:none}
.v17-section-nav a{flex:0 0 auto;display:inline-flex;align-items:center;min-height:38px;padding:0 13px;border:1px solid var(--line);border-radius:999px;background:color-mix(in srgb,var(--paper2) 80%,transparent);color:var(--grey);font:600 9px/1 var(--mono,'IBM Plex Mono',monospace);letter-spacing:.07em;text-transform:uppercase;text-decoration:none;transition:.2s ease}
.v17-section-nav a:hover,.v17-section-nav a:focus-visible{color:var(--ink);border-color:var(--accent);background:color-mix(in srgb,var(--accent) 9%,var(--paper2))}
section[id]{scroll-margin-top:calc(var(--v17-header-offset,96px) + 12px)}

/* ------------------------------------------------------------------
   4. Shared component polish / accessible targets.
   ------------------------------------------------------------------ */
@media(pointer:coarse){.v16-tools-toggle,.gallery-filter,.filter-btn,.v13-btn,.back,.v17-section-nav a{min-height:44px!important}}

/* Control V17 */
.v17-control-panel{order:-99;border-color:color-mix(in srgb,var(--accent) 48%,var(--line))!important}
.v17-control-panel>summary{background:linear-gradient(90deg,color-mix(in srgb,var(--accent) 13%,transparent),transparent)!important}
.v17-control-tabs{display:flex;gap:7px;flex-wrap:wrap;margin:0 0 14px}
.v17-control-tabs button{min-height:38px;padding:0 13px;border:1px solid var(--line);border-radius:999px;background:var(--paper);color:var(--grey);font-size:10px;cursor:pointer}
.v17-control-tabs button.active{border-color:var(--accent);color:var(--ink);background:color-mix(in srgb,var(--accent) 10%,var(--paper))}
.v17-control-view[hidden]{display:none!important}
.v17-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
.v17-field{display:grid;gap:6px;color:var(--grey);font-size:11px}
.v17-field input,.v17-field select{min-height:38px;border:1px solid var(--line);border-radius:9px;background:var(--paper);color:var(--ink);padding:8px 10px}
.v17-card{padding:14px;border:1px solid var(--line);border-radius:14px;background:color-mix(in srgb,var(--paper2) 78%,transparent);margin:10px 0}
.v17-card h4{margin:0 0 9px;font:700 12px/1.2 var(--mono,'IBM Plex Mono',monospace);color:var(--ink)}
.v17-source{display:inline-flex;align-items:center;gap:6px;padding:5px 8px;border:1px solid color-mix(in srgb,var(--accent2) 35%,var(--line));border-radius:999px;color:var(--accent2);font:600 8px/1 var(--mono,'IBM Plex Mono',monospace);text-transform:uppercase}
.v17-control-actions{position:sticky;bottom:0;display:flex;justify-content:flex-end;gap:8px;padding-top:12px;margin-top:14px;background:linear-gradient(transparent,var(--paper) 35%)}
.v17-control-actions button{min-height:40px;padding:0 14px;border:1px solid var(--line);border-radius:10px;background:var(--paper2);color:var(--ink)}
.v17-control-actions .primary{border-color:var(--accent);background:var(--accent);color:#0B0910}
.v17-diagnostic{font:500 10px/1.55 var(--mono,'IBM Plex Mono',monospace);white-space:pre-wrap;color:var(--grey);max-height:220px;overflow:auto}
.v17-legacy-hint{padding:9px 12px;margin:10px 0;border-left:2px solid var(--accent2);background:color-mix(in srgb,var(--accent2) 4%,transparent);color:var(--grey);font-size:11px}
@media(max-width:900px){.v17-grid{grid-template-columns:1fr 1fr}}
@media(max-width:620px){.v17-grid{grid-template-columns:1fr}.v17-section-nav{width:calc(100% - 28px);margin-top:12px}}

@media(prefers-reduced-motion:reduce){
  .v6-colourbar,.v17-immersive-colourbar{animation:none!important;background-position:50% 50%!important}
}
