.conditions-generales {
  --cg-rule: var(--border-width) solid var(--color-border);
}

.conditions-generales [id] {
  scroll-margin-top: 7rem;
}

.cg-opening__grid,
.cg-contents__grid,
.cg-standard-grid,
.cg-activities__grid,
.cg-booking__grid,
.cg-conduct__grid,
.cg-rights__grid,
.cg-liability__grid,
.cg-closing__grid {
  display: grid;
  min-width: 0;
  grid-template-columns: repeat(12, minmax(0, 1fr));
  column-gap: var(--gutter-desktop);
}

.cg-document-index,
.cg-opening__intro,
.cg-essential,
.cg-opening__jump,
.cg-contents__heading,
.cg-reading-note,
.cg-contents__nav,
.cg-article-index,
.cg-standard-content,
.cg-side-note,
.cg-activities__heading,
.cg-activities__content,
.cg-financial-note,
.cg-booking__content,
.cg-conduct__content,
.cg-principles,
.cg-rights__heading,
.cg-rights__content,
.cg-gallery-note,
.cg-liability__content,
.cg-closing__content {
  min-width: 0;
}

.cg-document-index { grid-column: 1 / span 2; align-self: start; }
.cg-opening__intro { grid-column: 3 / span 7; }
.cg-essential { grid-column: 10 / span 3; align-self: end; }
.cg-opening__jump { grid-column: 3 / span 7; margin-top: var(--space-4); width: max-content; font-weight: var(--weight-semibold); }

.cg-document-index__number,
.cg-article-index > p,
.cg-rights__heading > p {
  margin-bottom: 0;
  font-size: var(--text-xl);
  font-weight: var(--weight-bold);
  line-height: 1;
}

.cg-opening__lead {
  max-width: 60ch;
  margin-bottom: 0;
  font-size: var(--text-lg);
  line-height: 1.35;
}

.cg-essential {
  display: flex;
  flex-direction: column;
  gap: var(--space-3);
  padding: var(--space-6);
  border-top: var(--border-strong) solid var(--color-noir);
  background: var(--color-surface);
}

.cg-essential > * { margin: 0; }
.cg-essential h2 { font-size: var(--text-lg); }
.cg-essential__label { color: var(--color-accent); font-size: var(--text-xs); font-weight: var(--weight-bold); letter-spacing: var(--tracking-meta); text-transform: uppercase; }
.cg-essential p { max-width: 34ch; font-size: var(--text-base); }

.cg-contents__heading { grid-column: 1 / span 3; }
.cg-reading-note { grid-column: 10 / span 3; align-self: start; padding: var(--space-6); background: var(--color-blanc); }
.cg-reading-note > * { margin: 0; }
.cg-reading-note { display: flex; flex-direction: column; gap: var(--space-3); }
.cg-reading-note p { max-width: 34ch; font-size: var(--text-sm); }
.cg-contents__nav { grid-column: 4 / span 6; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); border-top: var(--cg-rule); }
.cg-contents__nav a { display: grid; min-width: 0; min-height: 3.5rem; grid-template-columns: 2rem minmax(0, 1fr) auto; align-items: center; gap: var(--space-2); padding: var(--space-3) 0; border-bottom: var(--cg-rule); font-size: var(--text-base); text-decoration: none; }
.cg-contents__nav a:nth-child(odd) { padding-right: var(--space-6); }
.cg-contents__nav a:nth-child(even) { padding-left: var(--space-6); }
.cg-contents__nav a:hover,
.cg-contents__nav a.is-active { border-bottom: var(--border-strong) solid var(--color-accent); }
.cg-contents__nav span { font-size: var(--text-xs); font-weight: var(--weight-semibold); letter-spacing: var(--tracking-meta); }
.cg-contents__nav strong { min-width: 0; font-weight: var(--weight-medium); }
.cg-contents__nav b { font-weight: var(--weight-regular); }

.cg-standard-grid { row-gap: var(--space-8); }
.cg-article-index { grid-column: 1 / span 2; }
.cg-standard-content { grid-column: 3 / span 7; max-width: 62ch; }
.cg-side-note { grid-column: 10 / span 3; align-self: start; display: flex; flex-direction: column; gap: var(--space-3); padding: var(--space-6); background: var(--color-surface); }
.cg-side-note > * { margin: 0; }
.cg-side-note p { max-width: 34ch; font-size: var(--text-sm); }

.cg-article + .cg-article { margin-top: var(--space-12); padding-top: var(--space-12); border-top: var(--cg-rule); }
.cg-article h2 { scroll-margin-top: 7rem; }
.cg-article h3 { font-size: var(--text-xl); }
.cg-inline-list,
.cg-content-lines { display: flex; flex-direction: column; gap: var(--space-2); margin-bottom: 0; padding: 0; }
.cg-inline-list li,
.cg-content-lines li { padding-top: var(--space-2); border-top: var(--border-width) solid var(--color-border-subtle); }

.cg-activities__heading { grid-column: 1 / span 4; }
.cg-activities__heading h2 { max-width: 12ch; font-size: var(--text-2xl); }
.cg-activities__content { grid-column: 5 / span 6; max-width: 62ch; }
.cg-financial-note { grid-column: 11 / span 2; align-self: start; display: flex; flex-direction: column; gap: var(--space-3); padding: var(--space-4); border-top: var(--border-strong) solid var(--color-noir); background: var(--color-blanc); }
.cg-financial-note > * { margin: 0; }
.cg-financial-note p { font-size: var(--text-sm); }
.cg-space-units { display: grid; min-width: 0; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--gutter-desktop); margin-top: var(--space-8); }
.cg-space-units > section { min-width: 0; padding-top: var(--space-4); border-top: var(--cg-rule); }
.cg-space-units h3 { font-size: var(--text-lg); }
.cg-space-units p { margin-bottom: 0; font-size: var(--text-sm); }

.cg-booking__grid { row-gap: var(--space-8); }
.cg-booking__grid > .cg-article-index { grid-column: 1 / span 1; }
.cg-booking__content { grid-column: 2 / span 8; max-width: 62ch; }
.cg-booking__grid > .cg-side-note { grid-column: 10 / span 3; }
.cg-steps { display: flex; flex-direction: column; gap: 0; margin: var(--space-8) 0; padding: 0; list-style: none; border-top: var(--cg-rule); }
.cg-steps li { display: grid; min-width: 0; grid-template-columns: 2rem minmax(0, 1fr); gap: var(--space-4); padding: var(--space-4) 0; border-bottom: var(--cg-rule); }
.cg-steps li > * { min-width: 0; }
.cg-steps span { font-size: var(--text-xs); font-weight: var(--weight-semibold); letter-spacing: var(--tracking-meta); }
.cg-steps h3,
.cg-steps p { margin: 0; }
.cg-steps div { display: flex; flex-direction: column; gap: var(--space-2); }
.cg-steps p { max-width: 52ch; }
.cg-article--sub { margin-top: var(--space-8) !important; padding-top: var(--space-8) !important; }
.cg-booking__links { display: flex; flex-wrap: wrap; gap: var(--space-4); margin-top: var(--space-6); }
.cg-booking__links > a { min-width: 0; min-height: 2.75rem; display: inline-flex; align-items: center; font-weight: var(--weight-semibold); }

.cg-conduct__grid { row-gap: var(--space-8); }
.cg-conduct__grid > .cg-article-index { grid-column: 1 / span 1; }
.cg-conduct__content { grid-column: 2 / span 7; max-width: 62ch; }
.cg-principles { grid-column: 9 / span 4; display: flex; flex-direction: column; gap: 0; }
.cg-principles > div { min-width: 0; padding: var(--space-4) 0; border-top: var(--cg-rule); }
.cg-principles > div:last-child { border-bottom: var(--cg-rule); }
.cg-principles h3,
.cg-principles p { margin: 0; }
.cg-principles > div { display: flex; flex-direction: column; gap: var(--space-2); }
.cg-principles h3 { font-size: var(--text-base); }
.cg-principles p { max-width: 32ch; font-size: var(--text-sm); }
.cg-table-note { display: flex; flex-direction: column; gap: var(--space-3); margin-top: var(--space-8); padding: var(--space-6); background: var(--color-blanc); border-top: var(--border-strong) solid var(--color-noir); }
.cg-table-note > * { margin: 0; }
.cg-table-note p { max-width: 60ch; }
.cg-conduct__accuracy { margin-top: var(--space-8); padding-top: var(--space-8); border-top: var(--cg-rule); }
.cg-conduct__accuracy p { max-width: 60ch; margin-bottom: 0; }

.cg-rights__heading { grid-column: 1 / span 3; }
.cg-rights__heading h2 { margin-top: var(--space-4); max-width: 13ch; font-size: var(--text-2xl); }
.cg-rights__content { grid-column: 4 / span 6; max-width: 62ch; }
.cg-gallery-note { grid-column: 10 / span 3; align-self: start; display: flex; flex-direction: column; gap: var(--space-3); padding: var(--space-6); border: var(--cg-rule); }
.cg-gallery-note > * { margin: 0; }
.cg-gallery-note p { max-width: 34ch; font-size: var(--text-sm); }

.cg-liability__grid { row-gap: var(--space-8); }
.cg-liability__grid > .cg-article-index { grid-column: 1 / span 1; }
.cg-liability__content { grid-column: 2 / span 8; max-width: 62ch; }
.cg-liability__grid > .cg-side-note { grid-column: 10 / span 3; }
.cg-summary-line { margin-bottom: 0; font-size: var(--text-xs); font-weight: var(--weight-semibold); letter-spacing: var(--tracking-meta); line-height: var(--leading-meta); text-transform: uppercase; }

.cg-closing__grid { row-gap: var(--space-8); }
.cg-closing__grid > .cg-article-index { grid-column: 1 / span 2; }
.cg-closing__content { grid-column: 3 / span 7; max-width: 60ch; }
.cg-next-step { display: flex; flex-direction: column; gap: var(--space-4); margin-top: var(--space-12); padding-top: var(--space-8); border-top: var(--cg-rule); }
.cg-next-step > * { margin: 0; }
.cg-next-step p { max-width: 60ch; }
.cg-next-step .button-group { margin-top: var(--space-2); }

@media (max-width: 74.9375rem) {
  .cg-opening__grid,
  .cg-contents__grid,
  .cg-standard-grid,
  .cg-activities__grid,
  .cg-booking__grid,
  .cg-conduct__grid,
  .cg-rights__grid,
  .cg-liability__grid,
  .cg-closing__grid { column-gap: var(--gutter-tablet); }

  .cg-opening__grid { grid-template-columns: repeat(6, minmax(0, 1fr)); row-gap: var(--space-6); }
  .cg-document-index { grid-column: 1 / span 6; }
  .cg-opening__intro { grid-column: 1 / span 4; }
  .cg-essential { grid-column: 5 / span 2; }
  .cg-opening__jump { grid-column: 1 / span 4; }

  .cg-contents__grid { grid-template-columns: repeat(6, minmax(0, 1fr)); row-gap: var(--space-6); }
  .cg-contents__heading { grid-column: 1 / span 2; }
  .cg-contents__nav { grid-column: 3 / span 4; grid-template-columns: minmax(0, 1fr); }
  .cg-contents__nav a:nth-child(odd), .cg-contents__nav a:nth-child(even) { padding-left: 0; padding-right: 0; }
  .cg-reading-note { grid-column: 3 / span 4; grid-row: 2; }

  .cg-standard-grid,
  .cg-booking__grid,
  .cg-conduct__grid,
  .cg-rights__grid,
  .cg-liability__grid,
  .cg-closing__grid { grid-template-columns: repeat(6, minmax(0, 1fr)); }
  .cg-article-index,
  .cg-booking__grid > .cg-article-index,
  .cg-conduct__grid > .cg-article-index,
  .cg-liability__grid > .cg-article-index,
  .cg-closing__grid > .cg-article-index { grid-column: 1 / span 6; }
  .cg-standard-content { grid-column: 1 / span 6; }
  .cg-standard-grid > .cg-side-note { grid-column: 1 / span 6; }
  .cg-booking__content { grid-column: 1 / span 6; }
  .cg-booking__grid > .cg-side-note { grid-column: 1 / span 6; }
  .cg-conduct__content { grid-column: 1 / span 6; }
  .cg-principles { grid-column: 1 / span 6; grid-template-columns: repeat(2, minmax(0, 1fr)); display: grid; column-gap: var(--gutter-tablet); }
  .cg-principles > div:last-child { border-bottom: 0; }
  .cg-rights__heading { grid-column: 1 / span 2; }
  .cg-rights__content { grid-column: 3 / span 4; }
  .cg-gallery-note { grid-column: 3 / span 4; }
  .cg-liability__content { grid-column: 1 / span 6; }
  .cg-liability__grid > .cg-side-note { grid-column: 1 / span 6; }
  .cg-closing__content { grid-column: 1 / span 6; }

  .cg-activities__grid { grid-template-columns: repeat(6, minmax(0, 1fr)); row-gap: var(--space-8); }
  .cg-activities__heading { grid-column: 1 / span 6; }
  .cg-activities__heading h2 { max-width: 18ch; }
  .cg-activities__content { grid-column: 1 / span 6; }
  .cg-financial-note { grid-column: 1 / span 6; max-width: 34ch; }
}

@media (max-width: 59.9375rem) {
  .cg-opening__grid { grid-template-columns: repeat(6, minmax(0, 1fr)); }
  .cg-opening__intro { grid-column: 1 / span 6; }
  .cg-essential { grid-column: 1 / span 6; max-width: 34ch; }
  .cg-opening__jump { grid-column: 1 / span 6; }
  .cg-rights__grid { row-gap: var(--space-8); }
  .cg-rights__heading { grid-column: 1 / span 6; }
  .cg-rights__content { grid-column: 1 / span 6; }
  .cg-gallery-note { grid-column: 1 / span 6; max-width: 34ch; }
}

@media (max-width: 47.9375rem) {
  .cg-opening__grid,
  .cg-contents__grid,
  .cg-standard-grid,
  .cg-activities__grid,
  .cg-booking__grid,
  .cg-conduct__grid,
  .cg-rights__grid,
  .cg-liability__grid,
  .cg-closing__grid { grid-template-columns: repeat(4, minmax(0, 1fr)); column-gap: var(--gutter-mobile); row-gap: var(--space-6); }

  .cg-document-index,
  .cg-opening__intro,
  .cg-essential,
  .cg-opening__jump,
  .cg-contents__heading,
  .cg-reading-note,
  .cg-contents__nav,
  .cg-article-index,
  .cg-standard-content,
  .cg-standard-grid > .cg-side-note,
  .cg-activities__heading,
  .cg-activities__content,
  .cg-financial-note,
  .cg-booking__content,
  .cg-booking__grid > .cg-side-note,
  .cg-conduct__content,
  .cg-principles,
  .cg-rights__heading,
  .cg-rights__content,
  .cg-gallery-note,
  .cg-liability__content,
  .cg-liability__grid > .cg-side-note,
  .cg-closing__content { grid-column: 1 / span 4; }

  .cg-opening h1 { font-size: clamp(2.75rem, 12vw, 3.5rem); }
  .cg-opening__lead { font-size: 1.125rem; }
  .cg-essential { max-width: none; padding: var(--space-6); }
  .cg-opening__jump { min-height: 2.75rem; align-items: center; display: inline-flex; }
  .cg-contents__nav { grid-template-columns: minmax(0, 1fr); }
  .cg-reading-note { grid-row: auto; }
  .cg-contents__nav a { min-height: 2.75rem; }
  .cg-article-index { display: flex; align-items: baseline; gap: var(--space-2); }
  .cg-article-index .eyebrow { margin-bottom: 0; }
  .cg-article-index > p { font-size: var(--text-base); }
  .cg-article h2,
  .cg-activities__heading h2,
  .cg-rights__heading h2 { font-size: var(--text-xl); }
  .cg-standard-content,
  .cg-activities__content,
  .cg-booking__content,
  .cg-conduct__content,
  .cg-rights__content,
  .cg-liability__content,
  .cg-closing__content { max-width: none; }
  .cg-side-note,
  .cg-gallery-note { max-width: none; }
  .cg-space-units { grid-template-columns: minmax(0, 1fr); gap: var(--space-4); }
  .cg-financial-note { max-width: none; }
  .cg-steps li { grid-template-columns: minmax(0, 1fr); gap: var(--space-2); }
  .cg-booking__links { flex-direction: column; align-items: stretch; }
  .cg-booking__links > a { width: 100%; }
  .cg-principles { display: flex; flex-direction: column; }
  .cg-principles > div:last-child { border-bottom: var(--cg-rule); }
  .cg-next-step .button-group { flex-direction: column; align-items: stretch; }
  .cg-next-step .button-group > a { width: 100%; }
}
