/* Reuse the approved Prestations typography and spacing throughout. */
main :is(p, li, figcaption, label, dt, dd),
main .section-heading :is(p.section-tagline, p.section-intro),
main .newsletter-copy .newsletter-alert,
main .section-heading .guides-contact,
footer :is(p, span),
.site-header-main #navigation a {
  text-align: justify !important;
  text-align-last: start;
  text-wrap: pretty;
  hyphens: none;
  -webkit-hyphens: none;
}
main :is(p, li, figcaption, label, dt, dd) { color: var(--ink); }
main :is(h1, h2, h3) { color: var(--ink); text-wrap: pretty; }
main h1,
main h1.section-title,
main .guide-article h1,
main.guide-article h1 {
  font-family: var(--serif) !important;
  font-size: var(--section-title-size) !important;
  font-weight: 400;
  font-style: normal;
  line-height: 1.18 !important;
  letter-spacing: normal;
}
main h1::first-letter,
main.guide-article h1::first-letter {
  font-family: var(--calligraphic) !important;
  font-size: 1.18em !important;
  font-weight: 400;
  color: var(--gold);
}
.editorial-section .section-heading { margin-bottom: 2rem; }
.editorial-section .section-heading p.section-intro + p.section-intro { margin-top: 16px !important; }
.editorial-section h2:not(.section-title), .guide-text-heading h2 {
  font-family: var(--serif);
  font-size: var(--subtitle-size);
  font-weight: 500;
  font-style: normal;
  line-height: 1.35;
  margin: 26px 0 12px;
  color: var(--ink);
}
.editorial-copy { width: 100%; max-width: 900px; }
.editorial-copy p { margin: 0 0 16px; font-size: var(--reading-size); line-height: 1.58; }
.editorial-copy h2:first-child { margin-top: 0; }
.editorial-copy .page-action { margin-top: 2rem; }
.editorial-copy .guide-contact-note { font-size: var(--metadata-size); }
.editorial-copy a:not(.button), .editorial-section .section-intro a { color: var(--gold-deep); text-underline-offset: 4px; }
/* The guide reader retains its page-turn controls; its copy uses Prestations. */
main.guide-article {
  max-width: none !important;
  padding: 4.5rem max(32px, calc((100% - 1120px) / 2)) !important;
}
.guide-article > :is(h1, p, .guide-text-version, .guide-contact, .article-back) { max-width: 900px; }
.guide-text-version { width: 100%; margin: 2rem 0; color: var(--ink); }
.guide-text-heading { padding: 26px 0; }
.guide-text-heading h2 { margin: 0; }
.guide-text-content { padding: 0 0 24px; }
.guide-text-content p { color: var(--ink); font-family: var(--serif); font-size: var(--reading-size); line-height: 1.58; word-spacing: normal; }
.guide-text-section summary { padding-inline: 0; }
.guide-text-page-link { color: var(--ink); font-size: var(--subtitle-size); line-height: 1.35; font-weight: 500; }
.guide-text-label small { color: var(--ink); }
.guide-text-number { color: var(--gold); }
.guide-contact { margin: 2rem 0; padding: 24px 0; background: transparent; border: 0; }
/* Match the existing primary button, including guide contact links. */
main .button,
main .section-heading .guides-contact .button,
.guide-contact .button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 52px;
  padding: 13px 24px;
  border: 0;
  background: var(--action-brown);
  color: var(--ivory-soft);
  font-family: var(--sans);
  font-size: 1.125rem;
  font-weight: 500;
  line-height: 1.58;
  text-decoration: none;
  text-align: justify;
}
main .button:hover { background: var(--gold-deep); }
main :is(.contact-card, .contact-form-wrap, .newsletter-card, .form-success),
main :is(input, select, textarea),
.hero-visual figcaption { background: var(--ivory); color: var(--ink); }
.site-header, .cloture-guide-page > .site-header { background: var(--ivory-soft); }
.paragraph-ending { white-space: nowrap; }
.nav-service-group { position: relative; }
.nav-service-submenu { background: var(--ivory-soft); }
.site-header-main #navigation .nav-service-group > a,
.site-header-main #navigation .nav-service-submenu > a { display: block; }
@media (min-width: 1651px) {
  .nav-service-submenu {
    display: none;
    position: absolute;
    top: 100%;
    left: 0;
    min-width: max-content;
    padding: 14px 18px;
    border: 1px solid var(--line);
  }
  .nav-service-group.is-open .nav-service-submenu { display: block; }
}
@media (max-width: 1650px) {
  .nav-service-group { display: grid; }
  .site-header-main #navigation .nav-service-submenu > a { padding-inline-start: 18px; }
}
@media (max-width: 700px) {
  main.guide-article { padding: 42px 24px !important; }
  .editorial-section .section-heading { margin-bottom: 26px; }
  .guide-text-content { padding: 0 0 21px; }
}

main .price-list :is(span, strong) { text-align: justify; text-align-last: start; }

/* Never insert a hyphen or split a word in running copy, at any width. */
main :is(p, li, figcaption, dt, dd),
main :is(p, li, figcaption, dt, dd) a {
  -webkit-hyphens: none !important;
  hyphens: none !important;
  word-break: normal !important;
  overflow-wrap: normal !important;
}

/* Mobile running copy only. Heading, tagline, button and menu rules stay intact. */
@media (width < 768px) {
  main { --mobile-copy-gutter: 24px; }
  main.legal-page:not(.guide-article) { --mobile-copy-gutter: clamp(22px, 7vw, 70px); }
  main.newsletter-main { --mobile-copy-gutter: 24px; }
  @media (min-width: 701px) {
    main:not(.legal-page):not(.newsletter-main) { --mobile-copy-gutter: 32px; }
  }
  main p:not(:is(.section-tagline, .eyebrow, .article-date, .guide-text-eyebrow,
    .guide-counter, .guide-contact-note, .legal-updated, .newsletter-privacy,
    .form-status, .form-privacy, .form-fallback, .page-action, .guides-contact)):not(:has(.button)),
  main li {
    font-size: 16px !important;
    /* Existing unitless line heights scale with the new font size. */
    text-align: justify !important;
    word-spacing: normal;
  }

  main .service-detail { padding-inline: 0; }

  /* Expand only full-column paragraphs to a 16px viewport gutter. Their
     containers and the headings/buttons alongside them do not move. */
  :is(
    main .section-heading,
    main .hero-copy,
    main .human-support,
    main .about-copy,
    main .scope-inner,
    main .contact-copy,
    main .editorial-copy,
    main .quote-panel,
    main .pricing-smallprint,
    main .article-body,
    main .guide-text-content,
    main .guide-contact,
    main .newsletter-copy,
    main .service-detail,
    main.legal-page
  ) > p:not(:is(.section-tagline, .eyebrow, .article-date, .guide-text-eyebrow,
    .guide-counter, .guide-contact-note, .legal-updated, .page-action,
    .guides-contact)):not(:has(.button)),
  main .news-excerpt,
  main .pricing-note {
    width: calc(100% + var(--mobile-copy-gutter) + var(--mobile-copy-gutter) - 32px) !important;
    max-width: none !important;
    margin-inline: calc(16px - var(--mobile-copy-gutter)) !important;
  }
}

/* Prestations and its always-visible drawer entry form one visual group. */
.nav-submenu-chevron { display: none; }
@media (max-width: 1650px) {
  .site-header-main #navigation .nav-service-group > a {
    border-bottom: 0;
    padding-bottom: 4px;
  }
  .site-header-main #navigation .nav-service-submenu { display: block; }
  .site-header-main #navigation .nav-service-submenu > a {
    padding-top: 4px;
    padding-inline-start: 18px;
    font-size: 1rem;
    color: var(--gold-deep);
  }
  .nav-service-submenu .nav-submenu-chevron {
    display: inline-block;
    margin-inline-end: 8px;
    color: inherit;
  }
}
@media (min-width: 1651px) {
  .site-header-main #navigation .nav-service-submenu > a {
    color: var(--ink);
    font-size: 1.125rem;
    padding-block: 8px;
  }
  .site-header-main #navigation .nav-service-submenu > a:hover,
  .site-header-main #navigation .nav-service-submenu > a:focus-visible {
    color: var(--gold-deep);
  }
}
/* Running copy already reaches the 16px mobile gutter on this page. */
@media (width < 768px) {
  .regularisation-page main :is(h1, h2) {
    width: calc(100% + var(--mobile-copy-gutter) + var(--mobile-copy-gutter) - 32px);
    max-width: none;
    margin-inline: calc(16px - var(--mobile-copy-gutter)) !important;
  }
}

/* Keep each action button's text and fill together, including legacy ID rules. */
main .button {
  background: var(--action-brown) !important;
  color: var(--ivory-soft) !important;
  border-color: var(--action-brown) !important;
}
main .button:hover,
main .button:focus-visible,
main .button:active {
  background: var(--gold-deep) !important;
  color: var(--ivory-soft) !important;
  border-color: var(--gold-deep) !important;
}
main .button:focus-visible {
  outline: 3px solid var(--gold-deep);
  outline-offset: 4px;
}
main .button:disabled,
main .button[aria-disabled="true"] {
  background: var(--action-brown) !important;
  color: var(--ivory-soft) !important;
  border-color: var(--action-brown) !important;
  opacity: 1 !important;
}

/* One proportional gap for every existing title initial, on every screen. */
main h1::first-letter,
main h2.section-title::first-letter,
main h2.partners-group-title::first-letter,
main .newsletter-card h2::first-letter,
main #pricing-reperes-title::first-letter {
  letter-spacing: .1em !important;
}
/* Explicit initials in guide headings and article cards use the same gap. */
main .guide-heading-initial,
main .news-title-initial {
  margin-right: .1em !important;
  letter-spacing: normal;
}

/* Separate the publication note clearly from the contact action. */
.regularisation-page .editorial-copy .page-action + .guide-contact-note {
  margin-top: 2.5rem;
}

/* Justification must never stretch a price or detach its currency. */
main .amount {
  display: inline-block;
  white-space: nowrap;
  word-spacing: normal !important;
  letter-spacing: normal;
}

/* Keep the professional phone number together in justified text. */
.phone-number {
  display: inline-block;
  white-space: nowrap;
  word-spacing: normal !important;
  letter-spacing: normal;
  color: var(--gold-deep);
  text-underline-offset: 4px;
}
.phone-number:hover,
.phone-number:focus-visible {
  color: var(--gold);
}

/* A protected phrase keeps natural word spacing inside justified paragraphs. */
.text-group {
  display: inline-block;
  white-space: nowrap;
  word-spacing: normal !important;
  letter-spacing: normal;
}
/* Contact copy starts at the same edge as its title, tagline and form. */
@media (width < 768px) {
  main #contact .contact-copy > p:not(.section-tagline) {
    width: 100% !important;
    max-width: 720px !important;
    margin-inline: 0 !important;
  }
}

/* The calculator keeps the established site header geometry. */
.tool-site-header .brand{--orea-logo-width:255px;flex:0 0 auto;width:auto;height:calc(var(--orea-logo-width)*780/2014);align-items:center}
.tool-site-header .brand img{height:70%;width:auto;max-width:none;object-fit:contain}
.tool-exit{display:inline-flex;align-items:center;justify-content:center;gap:8px;margin-left:auto;padding:10px 18px;border:1px solid #efe6d6;border-radius:999px;background:#f6f1e8;color:#5a4634;font-family:var(--serif);font-size:1.125rem;font-weight:700;text-decoration:none;white-space:nowrap}
.tool-exit-cross{color:#b8933f;font-weight:700}
.tool-exit:focus-visible{outline:2px solid #b8933f;outline-offset:3px}
@media(max-width:1650px){.tool-site-header .brand{--orea-logo-width:220px}}
@media(max-width:700px){.tool-site-header .brand{--orea-logo-width:205px}.tool-exit{width:44px;height:44px;min-width:44px;padding:0}.tool-exit-label{display:none}}
@media(max-width:380px){.tool-site-header .brand{--orea-logo-width:175px}}

/* Both site type roles use the approved reading family. */
:root{--sans:"Cormorant Garamond",Georgia,serif}
