/* Introduction labels only. Loaded by Carte, Privatisation, Contact and Réserver.
   Relative offsets move the decoration without moving titles, images or sections.
   The layout adapters retain each existing label's space in the document flow. */
body:is(.carte-page, .priv-page, .contact-page, .reservation-page) {
  --intro-kicker-y:96px;
  --intro-rule-y:128px;
  --intro-label-y:145px;
}
body[class] .page-kicker {
  position:relative;
  top:calc(var(--intro-kicker-y) - var(--intro-kicker-origin));
  display:flex;
  align-items:center;
  gap:14px;
  height:18.15px;
  margin-top:0;
  margin-bottom:var(--intro-kicker-margin, 0px);
  font-family:var(--font-text);
  font-size:11px;
  font-weight:500;
  line-height:18.15px;
  letter-spacing:.22em;
  text-transform:uppercase;
  color:var(--hai);
}
body[class] .page-kicker::before {
  content:"";
  display:block;
  flex:0 0 20px;
  width:20px;
  height:1px;
  background:var(--hai);
  opacity:.6;
}
body[class] .page-intro-label {
  position:relative;
  top:calc(var(--intro-label-y) - var(--intro-label-origin));
  font-family:var(--font-text);
  font-size:11px;
  font-weight:500;
  line-height:16.5px;
  letter-spacing:.22em;
  text-transform:uppercase;
  color:var(--kin);
}
body[class] .page-intro-rule {
  position:relative;
  top:calc(var(--intro-rule-y) - var(--intro-rule-origin));
  width:40px;
  height:1px;
  background:var(--kin);
}
/* Carte has no separate rule node: draw it without adding any flow height. */
body[class] .page-intro-label--rule::before {
  content:"";
  position:absolute;
  top:calc(var(--intro-rule-y) - var(--intro-label-y));
  left:0;
  width:40px;
  height:1px;
  background:var(--kin);
}
.carte-page {
  --intro-kicker-origin:96px;
  --intro-label-origin:146.140625px;
}
.priv-page {
  --intro-kicker-origin:88px;
  --intro-rule-origin:130.140625px;
  --intro-label-origin:156.140625px;
}
.contact-page {
  --intro-kicker-origin:100px;
  --intro-rule-margin:51.265625px;
  --intro-rule-origin:169.40625px;
  --intro-label-origin:186.40625px;
}
.reservation-page {
  --intro-kicker-origin:132px;
  --intro-kicker-margin:26px;
  --intro-rule-origin:176.140625px;
  --intro-label-origin:193.140625px;
}
@media (min-width:1100px) {
  .priv-page {
    --intro-kicker-origin:112px;
    --intro-rule-origin:156px;
    --intro-rule-margin:25.859375px;
    --intro-label-origin:182px;
  }
  .contact-page {
    --intro-kicker-origin:121px;
    --intro-rule-margin:35.359375px;
    --intro-rule-origin:174.5px;
    --intro-label-origin:191.5px;
  }
}
@media (min-width:1101px) {
  .reservation-page {
    --intro-kicker-origin:140px;
    --intro-rule-origin:184.140625px;
    --intro-label-origin:201.140625px;
  }
}
@media (max-width:767px) {
  body:is(.carte-page, .priv-page, .contact-page, .reservation-page) {
    --intro-kicker-y:88px;
    --intro-rule-y:114px;
    --intro-label-y:127px;
  }
  .carte-page { --intro-kicker-origin:72px; --intro-label-origin:122.140625px; }
}
@media (max-width:720px) {
  .contact-page {
    --intro-kicker-origin:104px;
    --intro-rule-origin:173.40625px;
    --intro-label-origin:190.40625px;
  }
}
@media (max-width:600px) {
  .reservation-page {
    --intro-kicker-origin:110px;
    --intro-rule-origin:154.140625px;
    --intro-label-origin:171.140625px;
  }
}

/* Preserve the former inline-label footprint before the following content. */
body[class] .page-intro-rule,
body.contact-page .contact-lead > .page-intro-rule { margin-top:var(--intro-rule-margin, 24px); }
body.reservation-page .page-intro-rule { margin-top:0; }
