/* ------------------------------------------------------------------
   CGV Aerialcollection — habillage du corps contractuel
   Sert a la page web ET a l'annexe PDF (bloc @media print en fin).
   Aucun appel externe : pas de police distante, pas de framework.
------------------------------------------------------------------ */
:root{
  --cgv-ink:        #101c26;
  --cgv-ink-soft:   #4a5c68;
  --cgv-rule:       #d3dbe0;
  --cgv-paper:      #ffffff;
  --cgv-ground:     #eef1f3;
  --cgv-accent:     #0f6e7a;
  --cgv-accent-pale:#e2eef0;

  --cgv-sans: "Helvetica Neue", Helvetica, Arial, sans-serif;
  --cgv-serif: "Iowan Old Style", "Palatino Linotype", Palatino, Georgia, serif;
  --cgv-mono: ui-monospace, "SFMono-Regular", Menlo, Consolas, monospace;

  --cgv-measure: 66ch;
  --cgv-gutter: 5.5rem;
}

.cgv-page *{box-sizing:border-box}
html{scroll-behavior:smooth; scroll-padding-top:5rem}
@media (prefers-reduced-motion: reduce){
  html{scroll-behavior:auto}
  .cgv-page *{animation:none!important; transition:none!important}
}

.cgv-page{
  background:var(--cgv-ground);
  color:var(--cgv-ink);
  font-family:var(--cgv-serif);
  font-size:17px;
  line-height:1.62;
  -webkit-text-size-adjust:100%;
}

/* ---------- bandeau ---------- */
.cgv-masthead{background:var(--cgv-ink); color:#fff; padding:2.2rem 1.5rem 1.9rem}
.cgv-masthead-inner{max-width:78rem; margin:0 auto}
.cgv-eyebrow{
  font-family:var(--cgv-mono); font-size:.72rem; letter-spacing:.18em;
  text-transform:uppercase; color:#8fb8bf; margin:0 0 .7rem;
}
.cgv-masthead h1{
  font-family:var(--cgv-sans); font-weight:600;
  font-size:clamp(1.5rem,3.4vw,2.15rem); letter-spacing:-.015em;
  line-height:1.15; margin:0 0 1rem;
}
.cgv-stamp{display:flex; flex-wrap:wrap; gap:.5rem .9rem;
  font-family:var(--cgv-mono); font-size:.76rem; letter-spacing:.04em}
.cgv-stamp span{border:1px solid rgba(255,255,255,.28); padding:.22rem .6rem; color:#cfe0e3}
.cgv-stamp span b{color:#fff; font-weight:600}
.cgv-langs{margin-top:1rem; font-family:var(--cgv-sans); font-size:.83rem}
.cgv-langs a{color:#8fb8bf; text-decoration:none; border-bottom:1px solid rgba(143,184,191,.4)}
.cgv-langs a:hover,.cgv-langs a:focus{color:#fff; border-color:#fff}
.cgv-langs .current{color:#fff; border-bottom:1px solid var(--cgv-accent); padding-bottom:1px}

/* ---------- ossature ---------- */
.cgv-wrap{
  max-width:78rem; margin:0 auto; padding:0 1.5rem 5rem;
  display:grid; grid-template-columns:16rem minmax(0,1fr); gap:3rem; align-items:start;
}
@media (max-width:900px){ .cgv-wrap{grid-template-columns:1fr; gap:0} }

/* ---------- sommaire ---------- */
.cgv-toc{
  position:sticky; top:1.5rem; margin-top:2.5rem;
  font-family:var(--cgv-sans); font-size:.83rem; line-height:1.35;
  max-height:calc(100vh - 3rem); overflow:auto;
}
.cgv-toc h2{
  font-size:.7rem; letter-spacing:.16em; text-transform:uppercase;
  color:var(--cgv-ink-soft); margin:0 0 .8rem; font-weight:600;
}
.cgv-toc ol{list-style:none; margin:0; padding:0; border-left:1px solid var(--cgv-rule)}
.cgv-toc a{
  display:grid; grid-template-columns:2.1rem 1fr; gap:.2rem;
  padding:.38rem .6rem .38rem .8rem; margin-left:-1px;
  border-left:2px solid transparent; color:var(--cgv-ink-soft); text-decoration:none;
}
.cgv-toc a .n{font-family:var(--cgv-mono); font-size:.72rem; color:#9aa8b1}
.cgv-toc a:hover,.cgv-toc a:focus{color:var(--cgv-ink); background:var(--cgv-paper)}
.cgv-toc a.is-current{color:var(--cgv-accent); border-left-color:var(--cgv-accent); background:var(--cgv-paper)}
.cgv-toc a.is-current .n{color:var(--cgv-accent)}
@media (max-width:900px){
  .cgv-toc{position:static; max-height:none; margin:1.25rem 0 0;
    background:var(--cgv-paper); border:1px solid var(--cgv-rule)}
  .cgv-toc h2{margin:0; padding:.85rem 1rem; cursor:pointer;
    display:flex; justify-content:space-between; align-items:center}
  .cgv-toc h2::after{content:"+"; font-family:var(--cgv-mono); font-size:1rem}
  .cgv-toc[open] h2::after{content:"\2013"}
  .cgv-toc ol{border-left:0; border-top:1px solid var(--cgv-rule); padding:.4rem 0}
}

/* ---------- corps contractuel ---------- */
.cgv-doc{
  background:var(--cgv-paper); border:1px solid var(--cgv-rule);
  margin-top:2.5rem; padding:3rem clamp(1.25rem,4vw,3.5rem) 3.5rem;
}
.cgv-doc > *{max-width:var(--cgv-measure)}

.cgv-doc .preamble{
  border-left:3px solid var(--cgv-accent); padding:.15rem 0 .15rem 1.4rem;
  margin:0 0 3rem; font-size:.95rem; line-height:1.75; color:var(--cgv-ink-soft);
}
.cgv-doc .preamble p{margin:.2rem 0}
.cgv-doc .preamble strong{color:var(--cgv-ink); font-weight:600}
.cgv-doc .preamble a{color:var(--cgv-accent)}

.cgv-doc article{
  padding-top:2.6rem; border-top:1px solid var(--cgv-rule);
  margin-top:2.6rem; max-width:none;
}
.cgv-doc article:first-of-type{border-top:0; margin-top:0; padding-top:0}
.cgv-doc article > *{max-width:var(--cgv-measure)}

.cgv-doc .art-head{
  display:grid; grid-template-columns:var(--cgv-gutter) minmax(0,1fr);
  align-items:baseline; max-width:none; margin:0 0 1.1rem;
}
.cgv-doc .art-num{
  font-family:var(--cgv-mono); font-size:.75rem; letter-spacing:.1em;
  color:var(--cgv-accent); text-transform:uppercase; padding-top:.35rem;
}
.cgv-doc .art-head h2{
  font-family:var(--cgv-sans); font-weight:600; font-size:1.12rem;
  letter-spacing:-.01em; line-height:1.3; margin:0; color:var(--cgv-ink);
}
.cgv-doc .art-body{margin-left:var(--cgv-gutter)}
@media (max-width:640px){
  :root{--cgv-gutter:0rem}
  .cgv-doc .art-head{grid-template-columns:1fr; gap:.25rem}
  .cgv-doc .art-body{margin-left:0}
}

.cgv-doc .art-body p{margin:0 0 .95rem}
.cgv-doc .art-body p:last-child{margin-bottom:0}
.cgv-doc strong{font-weight:600}
.cgv-doc .ref{font-family:var(--cgv-mono); font-size:.78rem; color:#8d9ba4; margin-right:.45rem}

.cgv-doc dl.defs{margin:0}
.cgv-doc dl.defs div{margin:0 0 .9rem}
.cgv-doc dl.defs dt{font-family:var(--cgv-sans); font-weight:600; font-size:.95rem; display:inline}
.cgv-doc dl.defs dt::after{content:" — "; color:var(--cgv-ink-soft); font-weight:400}
.cgv-doc dl.defs dd{display:inline; margin:0}

.cgv-doc ul.plain{margin:0 0 .95rem; padding-left:1.1rem}
.cgv-doc ul.plain li{margin:0 0 .5rem}

.cgv-doc ol.prohibited{list-style:none; margin:0; padding:0}
.cgv-doc ol.prohibited li{display:grid; grid-template-columns:2.6rem 1fr; gap:.4rem; margin:0 0 .7rem}
.cgv-doc ol.prohibited .ref{padding-top:.18rem; margin:0}

.cgv-doc .plate{max-width:none; margin:1.2rem 0 1.4rem}
.cgv-doc table.durations{
  border-collapse:collapse; width:100%; max-width:44rem;
  font-family:var(--cgv-sans); font-size:.88rem; background:var(--cgv-paper);
}
.cgv-doc table.durations th,.cgv-doc table.durations td{
  border:1px solid var(--cgv-rule); padding:.55rem .75rem; text-align:left; vertical-align:top;
}
.cgv-doc table.durations thead th{
  background:var(--cgv-accent-pale); color:var(--cgv-ink);
  font-weight:600; font-size:.78rem;
}
.cgv-doc table.durations tbody th{font-weight:500}
.cgv-doc table.durations td{font-variant-numeric:tabular-nums; white-space:nowrap}
@media (max-width:560px){
  .cgv-doc table.durations,.cgv-doc table.durations tbody,
  .cgv-doc table.durations tr,.cgv-doc table.durations td,
  .cgv-doc table.durations th{display:block; width:auto}
  .cgv-doc table.durations thead{display:none}
  .cgv-doc table.durations tr{border:1px solid var(--cgv-rule); margin-bottom:.6rem}
  .cgv-doc table.durations th,.cgv-doc table.durations td{border:0; padding:.35rem .75rem}
  .cgv-doc table.durations tbody th{background:var(--cgv-accent-pale); font-weight:600}
  .cgv-doc table.durations td::before{content:attr(data-label) " : "; color:var(--cgv-ink-soft)}
}

.cgv-doc .notice{
  background:#fbf7ee; border:1px solid #e6d9bd;
  padding:1rem 1.2rem; margin:0 0 .95rem;
}
.cgv-doc .notice p{margin:0 0 .6rem}
.cgv-doc .notice p:last-child{margin:0}

/* ---------- pied ---------- */
.cgv-colophon{
  margin-top:3rem; padding-top:1.5rem; border-top:1px solid var(--cgv-rule);
  font-family:var(--cgv-sans); font-size:.8rem; color:var(--cgv-ink-soft);
  display:flex; flex-wrap:wrap; gap:.9rem 1.5rem; align-items:center; max-width:none;
}
.cgv-colophon .grow{flex:1}
.cgv-btn{
  font-family:var(--cgv-sans); font-size:.8rem; background:transparent;
  color:var(--cgv-accent); border:1px solid var(--cgv-accent);
  padding:.42rem .9rem; cursor:pointer; text-decoration:none; display:inline-block;
}
.cgv-btn:hover,.cgv-btn:focus{background:var(--cgv-accent); color:#fff}
.cgv-page a{color:var(--cgv-accent)}
.cgv-page :focus-visible{outline:2px solid var(--cgv-accent); outline-offset:2px}

/* ---------- impression / annexe PDF ---------- */
@media print{
  :root{--cgv-gutter:4rem}
  .cgv-page{background:#fff; font-size:10.5pt; line-height:1.45}
  .cgv-masthead{background:#fff; color:#000; padding:0 0 1rem; border-bottom:1pt solid #000}
  .cgv-masthead h1{font-size:16pt}
  .cgv-eyebrow,.cgv-stamp span{color:#000; border-color:#666}
  .cgv-langs,.cgv-toc,.no-print{display:none!important}
  .cgv-wrap{display:block; max-width:none; padding:0}
  .cgv-doc{border:0; padding:0; margin:0}
  .cgv-doc article{border-top:.5pt solid #999; padding-top:1rem; margin-top:1rem}
  .cgv-doc .art-head{break-after:avoid; page-break-after:avoid}
  .cgv-doc table.durations{break-inside:avoid; page-break-inside:avoid; font-size:9.5pt}
  .cgv-doc .notice{background:#fff; border:.5pt solid #999}
  .cgv-page a{color:#000; text-decoration:none}
  .cgv-colophon{border-top:.5pt solid #999}
}
