/* Final coherence pass: editorial labels and separators only.
   Header, footer, photo geometry and animation engines retain their own rules. */
:root {
  --editorial-rule-width: 40px;
  --editorial-rule-gap: 16px;
  --divider-start: max(40px, 6.15vw);
  --divider-end: max(40px, 3.45vw);
  --divider-space-before:40px;
  --divider-space-after:30px;
  --divider-final-space:60px;
}
@media (min-width:1100px) {
  :root { --divider-start:6.1464vw; --divider-end:3.453vw; --divider-space-before:52px; --divider-final-space:64px; }
}
@media (max-width:767px) {
  :root { --divider-start:24px; --divider-end:24px; --divider-final-space:72px; }
}
body[class] .editorial-label {
  font-family:var(--font-text);
  font-weight:500;
  font-size:11px;
  line-height:1.5;
  letter-spacing:.22em;
  text-transform:uppercase;
  color:var(--kin);
}
/* Keep each label in its validated place; unify its existing small rule. */
body[class] .editorial-label--top-rule {
  position:relative;
  border-top:0;
  padding-top:calc(1px + var(--editorial-rule-gap));
}
body[class] .editorial-label--top-rule::before {
  content:"";
  position:absolute;
  top:0;
  left:0;
  width:var(--editorial-rule-width);
  height:1px;
  background:var(--kin);
}
body[class] .editorial-label--inline-rule { display:inline-flex; align-items:center; gap:var(--editorial-rule-gap); }
body[class] .editorial-label--inline-rule::before {
  content:"";
  display:inline-block;
  flex-shrink:0;
  height:1px;
  width:var(--editorial-rule-width);
  background:var(--kin);
  opacity:1;
}
body[class] .house__text > .rule,
body[class] .menu-mo__head .rule,
body[class] .priv__rule,
body[class] .contact-lead > .rule,
body[class] .res-rule,
body[class] .maison-block__rule,
body[class] .accords__rule,
body[class] .home-lower-rule {
  width:var(--editorial-rule-width);
  height:1px;
  background:var(--kin);
}
body[class] .priv__left > .priv__rule,
body[class] .contact-lead > .rule,
body[class] .res-rule { margin-bottom:var(--editorial-rule-gap); }
body[class] .contact-map__eyebrow::after,
body[class] .contact-map__quote::before {
  width:var(--editorial-rule-width);
  height:1px;
  background:var(--kin);
}
body[class] .contact-map__eyebrow::after { bottom:calc(-1px - var(--editorial-rule-gap)); }
body[class] .priv__offer__num::after { flex:0 0 var(--editorial-rule-width); width:var(--editorial-rule-width); height:1px; }
.menu-selection { display:inline-flex; gap:8px; white-space:nowrap; }
/* Structural transition: measured from Privatisation. One line and one
   spacing model, in normal flow; no absolute offsets or page-end variants. */
body[class] .section-divider,
body[class] .footer-divider {
  display:block;
  box-sizing:content-box;
  width:calc(100vw - var(--divider-start) - var(--divider-end));
  height:auto;
  margin:0 0 0 calc(var(--divider-start) - var(--divider-container-inset, 0px));
  padding:var(--divider-space-before) 0 var(--divider-space-after);
  border:0;
  background:none;
  opacity:1;
  pointer-events:none;
}
body[class] .section-divider::before,
body[class] .footer-divider::before {
  content:"";
  display:block;
  width:100%;
  height:1px;
  background:var(--sumi-12);
}
/* These adapters account only for the existing containers' left insets. */
.priv__details > .section-divider { --divider-container-inset:var(--divider-start); }
.carte > .section-divider { --divider-container-inset:var(--page-pad); }
.res-main > .section-divider { --divider-container-inset:calc((100vw - 100%) / 2); }
/* The separator now supplies the whitespace after the last content block. */
.page-home .home-experience,
.maison-page .maison-block:last-of-type,
.contact-page .contact-wrap { padding-bottom:0; }
/* The shared final divider supplies the page-end breathing room. */
.carte-page .carte,
.reservation-page .res-main,
.priv-page .priv { padding-bottom:0; }

/* Keep the Japanese currency unit intact when a narrow column wraps. */
.currency-unit { white-space:nowrap; }

/* Keep the page number separated from its existing decorative dash. */
body[class] .contact-lead__num { display:inline-flex; align-items:center; gap:14px; }
