/* R'wellness — complement to the editable KrafterPRO / Divi templates.
 * Component exceptions include responsive thresholds, media framing and header accessibility.
 * Tokens are the site's native global variables; load after the child stylesheet.
 */

.rw-template :where(.et_pb_column, .et_pb_group, .et_pb_post_content, .et_pb_blog_grid),
.rw-site-header :where(.et_pb_column, .et_pb_menu, .et_pb_menu__wrap) {
  min-width: 0;
}

.rw-template :where(h1, h2, h3, h4, p, li, a),
.rw-article-content :where(td, th, figcaption) {
  overflow-wrap: anywhere;
}

.rw-template :where(h1, h2, h3),
.rw-article-content .rw-callout__title {
  text-wrap: balance;
}

.rw-template :where(a, button, input, select, textarea, summary):focus-visible,
.rw-home-salon-social :where(a):focus-visible,
.rw-site-nav :where(a, button, input, .mobile_menu_bar):focus-visible {
  outline: var(--gvid-y945s1c1ny) solid currentColor;
  outline-offset: var(--gvid-10hxley4ny);
}

/* Inner Search controls have no independent sizing group in Divi. */
.rw-template .et_pb_search :where(input.et_pb_s, input.et_pb_searchsubmit) {
  min-height: 44px;
}

/* Native Blog owns its grid and breakpoints; this only crops its thumbnails. */
.rw-blog-grid .et_pb_image_container img,
.rw-blog-grid .entry-featured-image-url img {
  display: block;
  width: 100%;
  height: auto;
  aspect-ratio: 3 / 2;
  object-fit: cover;
}

/* Divi owns the portrait dimensions and radius through its image preset. */
.rw-portrait .et_pb_image_wrap,
.rw-portrait img {
  aspect-ratio: 1;
}

.rw-portrait img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

/* Article reading components: editable Gutenberg blocks, shared KPro spacing. */
.et-l .rw-article-content #rank-math-toc {
  margin-block:var(--gvid-0dvw4z7wij); padding:0; background:transparent;
  border:0; border-radius:0; box-shadow:none;
}
.et-l .rw-article-content #rank-math-toc > :first-child {
  margin:0 0 var(--gvid-iqrzvzpvzm); padding:0;
  font-size:var(--gvid-rwuisize); font-family:inherit; font-weight:600;
  color:var(--gcid-heading-color);
}
.et-l .rw-article-content #rank-math-toc nav > :is(ul,ol) {
  list-style:none; padding:0; margin:0; border-block-start:1px solid color-mix(in srgb,var(--gcid-heading-color) 18%,transparent);
}
.et-l .rw-article-content #rank-math-toc li { margin:0; padding:0; }
.et-l .rw-article-content #rank-math-toc li + li { margin:0; }
.et-l .rw-article-content #rank-math-toc a {
  display:flex; align-items:center; min-height:44px; padding-block:var(--gvid-10hxley4ny);
  border-block-end:1px solid color-mix(in srgb,var(--gcid-heading-color) 18%,transparent);
  color:var(--gcid-heading-color); text-decoration:none; line-height:1.55;
}
.et-l .rw-article-content #rank-math-toc a:hover { color:var(--gcid-primary-color); text-decoration:underline; text-underline-offset:.2em; }
.et-l .rw-article-content .rw-callout--a-retenir,
.et-l .rw-article-content .rw-article-takeaway {
  margin-block:var(--gvid-0dvw4z7wij); padding:var(--gvid-8voh0ys45c);
  background:color-mix(in srgb,var(--gcid-primary-color) 7%,var(--gcid-d92luo4hsi));
  border:0; border-radius:var(--gvid-iqrzvzpvzm); box-shadow:none; color:var(--gcid-heading-color);
}
.et-l .rw-article-content .rw-callout__title {
  margin:0 0 var(--gvid-vziintqu73); padding:0; color:var(--gcid-heading-color);
  font-family:inherit; font-size:var(--gvid-rwuisize); font-weight:600;
}
.et-l .rw-article-content .rw-callout__title::before { content:none; }
.et-l .rw-article-content .rw-callout__content { margin:0; padding:0; }
.et-l .rw-article-content .rw-callout__list { margin:0; padding:0 0 0 1.15em; list-style:disc; }
.et-l .rw-article-content .rw-callout__list li { padding-inline-start:.25em; line-height:1.65; }
.et-l .rw-article-content .rw-callout__list li + li { margin-block-start:var(--gvid-iqrzvzpvzm); }
.et-l .rw-article-content .rw-callout__list li::marker { color:var(--gcid-primary-color); }
.et-l .rw-article-navigation {
  width:100%; margin-block-start:var(--gvid-0dvw4z7wij); padding-block:var(--gvid-8voh0ys45c);
  border-block:1px solid color-mix(in srgb,var(--gcid-heading-color) 18%,transparent);
}
.et-l .rw-article-navigation .nav-previous,.et-l .rw-article-navigation .nav-next { max-width:47%; }
.et-l .rw-article-navigation a { display:inline-flex; align-items:center; min-height:44px; gap:.5em; color:var(--gcid-heading-color); font-size:var(--gvid-rwuisize); line-height:1.55; }
.et-l .rw-article-navigation a:hover { text-decoration:underline; text-underline-offset:.2em; }
.et-l .rw-article-navigation a:focus-visible,.et-l .rw-article-content #rank-math-toc a:focus-visible { outline:2px solid var(--gcid-primary-color); outline-offset:4px; }
@media(max-width:767px) {
  .et-l .rw-article-navigation .nav-previous,.et-l .rw-article-navigation .nav-next { float:none; display:block; max-width:100%; width:100%; text-align:start; }
  .et-l .rw-article-navigation .nav-next { margin-block-start:var(--gvid-vziintqu73); }
}

.rw-article-content :where(#rank-math-faq, .wp-block-rank-math-faq-block) {
  margin-block: var(--gvid-0dvw4z7wij);
}

.rw-article-content :where(#rank-math-faq, .wp-block-rank-math-faq-block) :where(.rank-math-list-item, .rank-math-faq-item) {
  padding-block: var(--gvid-8voh0ys45c);
  border-block-start: var(--gvid-8486duujr2) solid var(--gcid-z1mlwub9jf);
}

.rw-article-content :where(#rank-math-faq, .wp-block-rank-math-faq-block) .rank-math-question {
  margin-block: 0 var(--gvid-iqrzvzpvzm);
  color: var(--gcid-heading-color);
}

.rw-article-content :where(#rank-math-faq, .wp-block-rank-math-faq-block) .rank-math-answer,
.rw-article-content :where(#rank-math-faq, .wp-block-rank-math-faq-block) .rank-math-answer > :first-child {
  margin-block-start: 0;
}

.rw-article-content :where(#rank-math-faq, .wp-block-rank-math-faq-block) .rank-math-answer > :last-child {
  margin-block-end: 0;
}

.rw-article-content :where(#rank-math-faq, .wp-block-rank-math-faq-block) .rank-math-answer p + p {
  margin-block-start: var(--gvid-iqrzvzpvzm);
}

/* Keep embedded articles and wide Gutenberg tables within their reading column. */
.rw-article-content :where(img, video, iframe) {
  max-width: 100%;
}

.rw-article-content .wp-block-table {
  max-width: 100%;
  overflow-x: auto;
}

/* The Google Maps iframe is the sole map embed already present in the template. */
.rw-template .rw-map-wrapper {
  width: 100%;
  overflow: hidden;
}

.rw-template .rw-map-wrapper iframe {
  display: block;
  width: 100%;
  height: auto;
  aspect-ratio: 1;
  border: 0;
}

/* The native Divi menu retains control of opening, closing and its appearance. */
.rw-site-nav .mobile_menu_bar {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 44px;
  min-height: 44px;
  touch-action: manipulation;
}

.rw-site-nav .et_mobile_menu {
  box-sizing: border-box;
  max-height: calc(100vh - var(--rw-menu-top, 0px) - var(--gvid-vziintqu73));
  max-height: calc(var(--rw-menu-available-height, calc(100dvh - var(--rw-menu-top, 0px))) - var(--gvid-vziintqu73));
  overflow-y: auto;
  overscroll-behavior-y: contain;
}

.rw-site-nav .et_mobile_menu a {
  box-sizing: border-box;
  min-height: 44px;
  overflow-wrap: anywhere;
}

/* Legal text descendants are HTML inside native Divi Text modules. */
.rw-legal-content {
  overflow-wrap: anywhere;
}
.rw-legal-content :where(h1, h2, h3) {
  margin-block: var(--gvid-0dvw4z7wij) var(--gvid-vziintqu73);
  padding-block-end: 0;
  text-wrap: balance;
}
.rw-legal-content > :first-child {
  margin-block-start: 0;
}
.rw-legal-content :where(p, ul, ol) {
  margin-block: 0 var(--gvid-vziintqu73);
  padding-block-end: 0;
}
.rw-legal-content :where(ul, ol) {
  padding-inline-start: var(--gvid-8voh0ys45c);
}
.rw-legal-content li + li {
  margin-block-start: var(--gvid-iqrzvzpvzm);
}
.rw-legal-content a,
.rw-legal-content #cmplz-document a {
  color: var(--gcid-primary-color);
  text-decoration: underline;
  text-underline-offset: 0.15em;
}


/* Home Google Reviews stays a live Trustindex widget. Avoid scaled text and
 * broad paragraph hiding; the native Blurb remains editable in Divi.
 */
.rw-home-reviews .ti-widget.ti-goog .ti-header {
  padding: 0 !important;
}
.rw-home-reviews .ti-widget.ti-goog .ti-widget-container {
  margin: 0 !important;
  max-width: 100%;
}
.rw-home-reviews .ti-rating {
  color: inherit;
  font-family: inherit !important;
  font-weight: 400 !important;
}

/* Existing Rank Math accordion opens answers as Flex; keep prose in one column. */
.rw-article-content .rank-math-answer { flex-direction: column; }
.rw-article-content .rank-math-question[role="button"] { min-height: 44px; }

/* RW Theme Builder Prestation — component thresholds preserve site breakpoints.
   Geometry derives from KrafterPRO tokens. Photos fill the actual frame proportionally; image selection remains in ACF. */
.et-db #et-boc .et-l .rw-premium-service-hero { --rw-stage: var(--gvid-rwmediaheight); }
.et-db #et-boc .et-l .rw-premium-service-hero .rw-premium-hero-row { grid-template-columns:minmax(0,3fr) minmax(0,2fr); }
.et-db #et-boc .et-l .rw-premium-service-hero .rw-premium-media { position:relative; overflow:hidden; min-height:var(--rw-stage); }
/* The native Image sets cover and 100% sizing. This wrapper bridge makes
 * its percentage height resolve against the actual, stretched grid frame. */
.et-db #et-boc .et-l .rw-premium-service-hero .rw-premium-service-image {
  position:absolute; inset:0; margin:0; width:100%; height:100%;
  max-width:100%; transform:none;
}
.et-db #et-boc .et-l .rw-premium-service-image .et_pb_image_wrap { display:block; width:100%; height:100%; }
.et-db #et-boc .et-l .rw-premium-service-image img { display:block; width:100%; height:100%; max-width:100%; }
.et-db #et-boc .et-l .rw-premium-service-hero .rw-premium-panel {
  background:linear-gradient(to bottom, color-mix(in srgb,var(--gcid-primary-color) 8%,var(--gcid-vouhb375ci)), var(--gcid-vouhb375ci));
}
.et-db #et-boc .et-l .rw-premium-service-hero .rw-premium-panel-content { width:100%; max-width:34rem; margin-inline:auto; }
.et-db #et-boc .et-l .rw-premium-service-hero .rw-premium-book { min-height:3rem; display:inline-flex; align-items:center; justify-content:center; width:18.5rem; max-width:100%; padding-block:0; }
.et-db #et-boc .et-l .rw-premium-service-hero .rw-premium-actions > .et_pb_link { min-height:2.75rem; display:flex; align-items:center; }
.et-db #et-boc .et-l .rw-premium-crumb-overlay .et_pb_text_inner p { margin:0; padding-bottom:0; }
.et-db #et-boc .et-l .rw-premium-editorial-lead strong { font-weight:500; }
.et-db #et-boc .et-l .rw-premium-service-hero :focus-visible,.rw-premium-crumb-overlay :focus-visible { outline:2px solid var(--gcid-primary-color); outline-offset:4px; }
@media(max-width:1023px) {
 .et-db #et-boc .et-l .rw-premium-service-hero { --rw-stage:var(--gvid-rwmediastage); }
 .et-db #et-boc .et-l .rw-premium-service-hero .rw-premium-hero-row { grid-template-columns:minmax(0,1fr); gap:0; }
 .et-db #et-boc .et-l .rw-premium-service-hero .rw-premium-media { order:0; width:100%; }
 .et-db #et-boc .et-l .rw-premium-service-hero .rw-premium-panel { order:1; width:100%; padding:var(--gvid-rwpanelcompact) var(--gvid-rwpanelcompact) var(--gvid-rwpanelpad); }
 .et-db #et-boc .et-l .rw-premium-service-hero .rw-premium-panel-content { max-width:46rem; }
 .et-db #et-boc .et-l .rw-premium-service-hero .rw-premium-book,.rw-premium-service-hero .rw-premium-book { width:100%; }
}
@media(prefers-reduced-motion:reduce) { .rw-premium-service-hero * { scroll-behavior:auto; } }

/* Existing cutouts contain asymmetric transparent canvas. Centre their visible
 * horizontal bounds at the native cover scale; do not zoom or stretch them.
 * Container units refer to the real media frame, including text-driven height.
 * New attachments use the native centre-bottom fallback automatically. */
@supports (container-type: size) {
 .et-db #et-boc .et-l .rw-premium-service-hero .rw-premium-media { container-type:size; }
 .et-db #et-boc .et-l .rw-premium-service-hero .rw-premium-service-image .et_pb_image_wrap img.wp-image-1092626 { object-position:calc(50% + max(9.444444cqh, 5.312500cqw)) bottom; } /* Silk Press */
 .et-db #et-boc .et-l .rw-premium-service-hero .rw-premium-service-image .et_pb_image_wrap img.wp-image-1092619 { object-position:min(0px, calc(50cqw - max(35.208333cqw, 62.592593cqh))) bottom; } /* Twist and define */
 .et-db #et-boc .et-l .rw-premium-service-hero .rw-premium-service-image .et_pb_image_wrap img.wp-image-1096742 { object-position:calc(50% - max(5.185185cqh, 2.916667cqw)) bottom; } /* Hair Secure */
 .et-db #et-boc .et-l .rw-premium-service-hero .rw-premium-service-image .et_pb_image_wrap img.wp-image-1092650 { object-position:calc(50% + max(8.148148cqh, 4.583333cqw)) bottom; } /* Brushing */
 .et-db #et-boc .et-l .rw-premium-service-hero .rw-premium-service-image .et_pb_image_wrap img.wp-image-1092647 { object-position:calc(50% + max(17.407407cqh, 9.791667cqw)) bottom; } /* CurlaCut */
 .et-db #et-boc .et-l .rw-premium-service-hero .rw-premium-service-image .et_pb_image_wrap img.wp-image-1092645 { object-position:calc(50% + max(17.777778cqh, 10.000000cqw)) bottom; } /* Lissages */
 .et-db #et-boc .et-l .rw-premium-service-hero .rw-premium-service-image .et_pb_image_wrap img.wp-image-1092637 { object-position:left bottom; } /* Défrisage / Wave */
 .et-db #et-boc .et-l .rw-premium-service-hero .rw-premium-service-image .et_pb_image_wrap img.wp-image-1092639 { object-position:calc(50% + max(36.851852cqh, 20.729167cqw)) bottom; } /* Tissages */
 .et-db #et-boc .et-l .rw-premium-service-hero .rw-premium-service-image .et_pb_image_wrap img.wp-image-1092633 { object-position:min(0px, calc(50cqw - max(46.5625cqw, 82.777778cqh))) bottom; } /* Coupes Courtes */
 .et-db #et-boc .et-l .rw-premium-service-hero .rw-premium-service-image .et_pb_image_wrap img.wp-image-1092651 { object-position:calc(50% - max(1.851852cqh, 1.041667cqw)) bottom; } /* Permanente Naturelle */
}

/* Candidate for the existing global header 1093734. Native Divi owns layout,
 * fonts, colors, links, loops, dropdown positioning and outside-click behavior.
 * 1280px is this component's breakpoint; it does not alter Divi breakpoints.
 */
/* The immediate #et-boc parent must also contain main content; this guard
 * prevents sticking a header inside a parent whose height is only the header. */
.et-db #et-boc:has(#main-content) > .et-l--header:has(.rw-premium-header) {
  position: sticky;
  top: 0;
  z-index: 100;
}
.et-db #et-boc .et-l .rw-premium-header {
  --rw-header-desktop-height: 112px;
  --rw-header-compact-height: 88px;
  position: relative;
}
.et-db #et-boc .et-l .rw-premium-header .rw-header-compact {
  display: none !important;
}
.et-db #et-boc .et-l .rw-premium-header :where(.et_pb_column, .et_pb_group, .et_pb_link_wrapper) {
  min-width: 0;
}
.et-db #et-boc .et-l .rw-premium-header :where(a, button):focus-visible {
  outline: var(--gvid-y945s1c1ny) solid var(--gcid-vouhb375ci);
  outline-offset: var(--gvid-10hxley4ny);
}
.et-db #et-boc .et-l .rw-premium-header .rw-header-nav {
  box-sizing: border-box;
}
.et-db #et-boc .et-l .rw-premium-header .rw-header-dropdown {
  z-index: 20;
  box-sizing: border-box;
  overscroll-behavior: contain;
}
.et-db #et-boc .et-l .rw-premium-header .rw-header-drawer-desktop {
  /* Divi 5.17 viewport alignment writes a full-width inline style. */
  width: min(430px, 100vw) !important;
  max-width: 100vw !important;
  max-height: calc(100dvh - var(--rw-header-desktop-height));
  overflow-x: hidden;
  overflow-y: auto;
  scrollbar-gutter: stable;
}
.et-db #et-boc .et-l .rw-premium-header .rw-header-drawer-mobile,
.et-db #et-boc .et-l .rw-premium-header .rw-header-services-stage {
  height: calc(100dvh - var(--wp-admin--admin-bar--height, 0px));
  max-height: calc(100dvh - var(--wp-admin--admin-bar--height, 0px));
  padding-top: env(safe-area-inset-top, 0px);
  overflow-x: hidden;
  overflow-y: auto;
}
.et-db #et-boc .et-l .rw-premium-header .rw-header-services-stage {
  z-index: 30;
}
/* Close controls are native Link/button modules. Only their drawer placement
 * needs CSS; the real Link/button is the element bearing this class.
 */
.et-db #et-boc .et-l .rw-premium-header .rw-header-main-close {
  position: absolute;
  inset-block-start: 6px;
  inset-inline-end: var(--gvid-rwpanelcompact);
  z-index: 40;
}
.et-db #et-boc .et-l .rw-premium-header .rw-header-stage-heading > .et_pb_link_wrapper:last-child,
.et-db #et-boc .et-l .rw-premium-header .rw-header-stage-heading > .rw-header-panel-close {
  justify-self: end;
}
.et-db #et-boc .et-l .rw-premium-header .rw-header-service-link,
.et-db #et-boc .et-l .rw-premium-header .rw-header-mobile-navigation .rw-header-menu-link {
  width: 100%;
}
.et-db #et-boc .et-l .rw-premium-header .rw-header-logo-desktop img,
.et-db #et-boc .et-l .rw-premium-header .rw-header-logo-compact img {
  display: block;
  height: auto;
}
@media (max-width: 1279px) {
  .et-db #et-boc .et-l .rw-premium-header .rw-header-desktop {
    display: none !important;
  }
  .et-db #et-boc .et-l .rw-premium-header .rw-header-compact {
    display: grid !important;
  }
  .et-db #et-boc .et-l .rw-premium-header .rw-header-utility {
    box-sizing: border-box;
  }
}
@media (prefers-reduced-motion: reduce) {
  .et-db #et-boc .et-l .rw-premium-header *,
  .et-db #et-boc .et-l .rw-premium-header *::before,
  .et-db #et-boc .et-l .rw-premium-header *::after {
    animation-duration: 0s !important;
    transition-duration: 0s !important;
  }
}

/* Native Link/button requires a user-agent button reset. */
.et-db #et-boc .et-l .rw-premium-header button.et_pb_link { appearance:none; background:transparent; border:0; cursor:pointer; }
/* overflow:hidden creates an unscrolled sticky ancestor; clip preserves cropping. */
@supports(overflow-x:clip) {
 body.et-db:not(.et-fb):has(.rw-premium-header) #page-container { overflow-x:clip !important; overflow-y:visible !important; }
}
.et-db #et-boc .et-l .rw-premium-header:has(.rw-header-drawer-desktop:not(.et_pb_dropdown_hidden))::after {
 content:""; position:fixed; inset:var(--rw-header-desktop-height) 0 0; background:color-mix(in srgb,var(--gcid-34vfmsqm6d) 30%,transparent); pointer-events:none; z-index:1;
}
@media(max-width:1279px) { .et-db #et-boc .et-l .rw-premium-header { padding-inline:var(--gvid-rwpanelcompact); } }

/* Compact navigation is modal: cover the inactive header at both levels. */
@media (max-width: 1279px) {
  .et-db #et-boc .et-l .rw-premium-header :is(.rw-header-drawer-mobile,.rw-header-services-stage) {
    position: fixed !important;
    top: var(--wp-admin--admin-bar--height, 0px) !important;
    left: 0 !important;
  }
}

/* Keep the live Google rating readable on the dark practical band. */
.et-db #et-boc .et-l .rw-home-reviews .ti-widget.ti-goog,
.et-db #et-boc .et-l .rw-home-reviews .ti-widget.ti-goog .ti-text,
.et-db #et-boc .et-l .rw-home-reviews .ti-widget.ti-goog .ti-rating {
 color: var(--gcid-vouhb375ci) !important;
}

/* Two subjects share the Coupes courtes photograph. A wider mobile frame
 * preserves both faces while the native cover still fills every edge. */
@media(max-width:767px) {
 .et-db #et-boc .et-l .rw-premium-service-hero .rw-premium-media:has(img.wp-image-1092633) { min-height:0; aspect-ratio:3 / 2; }
}

/* Divi Link layout targets its inner element; centre the outer native
 * 44px link target against the adjacent breadcrumb text as well. */
.et-db #et-boc .et-l .rw-premium-crumb-overlay > .et_pb_link { align-items:center; justify-content:center; }

/* Native Link layouts style the inner span. Centre the desktop services
 * trigger on its existing 48px button target, like the adjacent links. */
.et-db #et-boc .et-l .rw-premium-header .rw-header-services-trigger { flex-direction:row; align-items:center; justify-content:flex-start; }

/* WPForms is an opaque third-party Divi module. Its inner controls are
 * configured in WPForms; these scoped rules only integrate its presentation.
 * Keep hidden anti-spam inputs, validation and submission behavior untouched. */
.rw-contact-form > .wpforms_divi_form_selector {
  width: 100%;
  max-width: var(--gvid-rwreadingmax);
  align-self: stretch;
}
.rw-contact-form #wpforms-1092992 {
  margin-block: 0;
  --wpforms-field-border-radius: 0px;
  --wpforms-field-border-color: var(--gcid-geuzf8uk2h);
  --wpforms-field-text-color: var(--gcid-heading-color);
  --wpforms-button-border-radius: 0px;
  --wpforms-field-size-font-size: 16px;
  --wpforms-button-background-color: var(--gcid-heading-color);
  --wpforms-button-text-color: #fff;
}
.rw-contact-form #wpforms-1092992 :is(input:not([type=hidden]):not([aria-hidden=true]), select, textarea, .wpforms-field-row, .iti) {
  max-width: 100%;
  width: 100%;
}
.rw-contact-form #wpforms-1092992 :is(input:not([type=hidden]):not([aria-hidden=true]), select) {
  min-height: 48px;
  font-size: 16px;
}
.rw-contact-form #wpforms-1092992 .wpforms-field-name .wpforms-field-row {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: var(--gvid-vziintqu73);
}
.rw-contact-form #wpforms-1092992 .wpforms-field-name .wpforms-field-row-block {
  width: 100%;
  margin: 0;
}
.rw-contact-form #wpforms-1092992 .wpforms-submit {
  min-height: 48px;
  padding-inline: var(--gvid-0dvw4z7wij);
  font-size: 16px;
}
.rw-contact-map .rw-map-wrapper iframe {
  aspect-ratio: 4 / 3;
  max-height: 24rem;
}
@media (max-width: 599px) {
  .rw-contact-form #wpforms-1092992 .wpforms-field-name .wpforms-field-row {
    grid-template-columns: minmax(0, 1fr);
  }
}

/* Divi's Image span must inherit the native About frame height. */
.et-db #et-boc .et-l .rw-about-image,
.et-db #et-boc .et-l .rw-about-image .et_pb_image_wrap,
.et-db #et-boc .et-l .rw-about-image img {
  display: block;
  width: 100%;
  height: 100%;
}

/* Leave the destination visible below the existing sticky native header. */
#rw-booking-infos { scroll-margin-top: calc(7rem + var(--gvid-rwgroupgap)); }
@media (max-width: 1279px) {
  #rw-booking-infos { scroll-margin-top: calc(5.5rem + var(--gvid-rwgroupgap)); }
}

/* Contextual state cannot be stored in the shared native category links. */
.rw-category-link[aria-current="page"],
.rw-category-link a[aria-current="page"] {
  color: var(--gcid-primary-color);
  box-shadow: inset 0 -2px 0 currentColor;
}

/* WPForms clearfix pseudo-elements otherwise occupy cells in the name grid. */
.rw-contact-form #wpforms-1092992 .wpforms-field-name .wpforms-field-row::before,
.rw-contact-form #wpforms-1092992 .wpforms-field-name .wpforms-field-row::after {
  content: none;
  display: none;
}

/* Grid gap replaces WPForms' legacy half-column internal gutters. */
.rw-contact-form #wpforms-1092992 .wpforms-field-name .wpforms-field-row-block {
  padding-inline: 0;
}
.et-db #et-boc .et-l .rw-contact-form > .wpforms_divi_form_selector {
  margin-inline: 0;
  /* WPForms legacy module outputs align-self:center!important. */
  align-self: flex-start !important;
}

/* Divi Link aligns its inner wrapper; the fixed-height CTA also needs outer alignment. */
.et-db #et-boc .et-l .rw-premium-header .rw-header-reserve {
  align-items: center;
  justify-content: center;
}
.et-db #et-boc .et-l .rw-premium-header .rw-header-reserve > .et_pb_link_inner {
  justify-content: center;
  width: 100%;
}
/* WPForms is editable in its own form builder; only its shared visual integration lives here. */
.rw-contact-form #wpforms-1092992 .wpforms-field-label { font-weight: 500; }
.rw-contact-form #wpforms-1092992 .wpforms-field { padding-block: clamp(.75rem, 1.2vw, 1rem); }
.rw-contact-form #wpforms-1092992 .wpforms-field:first-child { padding-top: 0; }
.rw-contact-form #wpforms-1092992 :is(input, select, textarea):focus-visible {
  outline: 2px solid var(--gcid-primary-color);
  outline-offset: 3px;
}
.rw-contact-form #wpforms-1092992 .wpforms-submit { min-width: 10rem; }
/* Imagify moves site-icon to a picture. Scope both forms to WordPress's own toolbar item. */
#wpadminbar #wp-admin-bar-site-name > .ab-item :is(img.site-icon, picture.site-icon, picture.site-icon img) {
  width: 20px;
  height: 20px;
  min-width: 20px;
  min-height: 20px;
  max-width: 20px;
  max-height: 20px;
  object-fit: contain;
}
#wpadminbar #wp-admin-bar-site-name > .ab-item picture.site-icon {
  display: inline-flex;
  align-items: center;
  vertical-align: middle;
  line-height: 0;
}

/* Rank Math keeps its Gutenberg/SEO source; shared KPro FAQ tokens mirror native Divi presets. */
.et-db #et-boc .et-l .rw-article-faq .rank-math-list {
  display: flex;
  flex-direction: column;
  gap: var(--gvid-rwfaqgap);
  background: var(--gcid-vouhb375ci);
}
.et-db #et-boc .et-l .rw-article-faq .rank-math-list-item {
  background: var(--gcid-spj71pflib);
  border: 0;
  border-radius: 0;
  padding: var(--gvid-rwfaqpad) var(--gvid-rwfaqinset);
  margin: 0;
}
.et-db #et-boc .et-l .rw-article-faq .rank-math-question {
  font-family: var(--et_global_heading_font);
  font-size: var(--gvid-rwfaqtitle);
  font-weight: 400;
  line-height: 1.25;
  color: var(--gcid-heading-color);
  margin: 0;
}
.et-db #et-boc .et-l .rw-article-faq .rank-math-answer {
  font-family: var(--et_global_body_font);
  font-size: var(--gvid-rwfaqbody);
  font-weight: 400;
  line-height: 1.8;
  color: var(--gcid-body-color);
  padding-top: var(--gvid-rwgroupgap);
}
.et-db #et-boc .et-l :is(.rw-faq .et_pb_toggle_title,.rw-article-faq .rank-math-question):has(> .rw-faq-control) {
  padding: 0;
}
.et-db #et-boc .et-l :is(.rw-faq .et_pb_toggle_title,.rw-article-faq .rank-math-question):has(> .rw-faq-control)::before,
.et-db #et-boc .et-l :is(.rw-faq .et_pb_toggle_title,.rw-article-faq .rank-math-question):has(> .rw-faq-control)::after { display: none; }
.et-db #et-boc .et-l .rw-faq-control {
  display: flex;
  width: 100%;
  min-height: 2.75rem;
  align-items: center;
  justify-content: space-between;
  gap: var(--gvid-rwgroupgap);
  margin: 0;
  padding: 0;
  border: 0;
  background: transparent;
  color: inherit;
  font: inherit;
  text-align: left;
  cursor: pointer;
}
.et-db #et-boc .et-l .rw-faq-control::after {
  content: '';
  flex: 0 0 .5rem;
  width: .5rem;
  height: .5rem;
  border: solid currentColor;
  border-width: 0 1.5px 1.5px 0;
  transform: rotate(45deg);
  margin-inline-end: .25rem;
}
.et-db #et-boc .et-l .rw-faq-control[aria-expanded=true]::after { transform: rotate(225deg); }
.et-db #et-boc .et-l .rw-faq-control:focus-visible {
  outline: 2px solid var(--gcid-primary-color);
  outline-offset: .25rem;
}

/* Native minimum target size belongs to the menu preset; align its outer flex box. */
.et-db #et-boc .et-l .rw-premium-header .rw-header-menu-link { align-items: center; }

/* KPro's general H3 selector contains #et-boc. Match that specificity for the
   native FAQ role while keeping the size editable through its shared token. */
.et-db #et-boc .et-l .rw-faq h3.et_pb_toggle_title {
  font-size: var(--gvid-rwfaqtitle);
}

/* Divi Link uses a column flex direction. Centre its text on the block axis. */
.et-db #et-boc .et-l .rw-premium-header :is(.rw-header-menu-link,.rw-header-utility-link) {
  justify-content: center;
}
/* The H1 already names the current article; keep the useful parent trail compact. */
@media (max-width: 767px) {
  .single-post .et-l--body .et_pb_breadcrumbs--current,
  .single-post .et-l--body .et_pb_breadcrumbs--separator:has(+ .et_pb_breadcrumbs--current) { display: none; }
}

/* Native Blog's inner card spacing is not exposed by its module preset.
   Remove its legacy negative image margins, keep one common editorial rhythm. */
.et-db #et-boc .et-l .rw-blog-grid article.et_pb_post { padding: 0; }
.et-db #et-boc .et-l .rw-blog-grid .et_pb_image_container {
  margin: 0 0 var(--gvid-rwgroupgap);
}
.et-db #et-boc .et-l .rw-blog-grid .et_pb_image_container .entry-featured-image-url { margin: 0; }
.et-db #et-boc .et-l .rw-blog-grid .entry-title {
  font-size: var(--gvid-ipmuapwpxa);
  line-height: 1.25;
}

/* Hero utility line: native Divi layout; compact live third-party Google badge. */
.rw-home-hero-strip .rw-home-booking-note .et_pb_module_header { padding-bottom:0; }
.rw-home-hero-strip .rw-home-reviews .et_pb_blurb_description { display:flex; align-items:center; justify-content:center; flex-wrap:wrap; gap:var(--gvid-iqrzvzpvzm, 8px); }
.rw-home-hero-strip .rw-home-reviews .et_pb_blurb_description > p { padding:0; margin:0; }
.rw-home-hero-strip .rw-home-reviews .ti-widget.ti-goog { width:auto !important; margin:0 !important; }
.rw-home-hero-strip .rw-home-reviews .ti-widget.ti-goog .ti-header { min-height:44px; display:flex !important; align-items:center; }
.rw-home-hero-strip .rw-home-reviews .ti-widget.ti-goog .ti-fade-container { align-items:center; }
.rw-home-hero-strip .rw-home-reviews .ti-widget.ti-goog .ti-platform-icon { width:24px !important; height:24px !important; margin-inline-end:var(--gvid-rwidentitygap, 8px) !important; }
.rw-home-hero-strip .rw-home-reviews .ti-widget.ti-goog .ti-stars .ti-star { width:var(--gvid-rwuisize, 16px) !important; height:var(--gvid-rwuisize, 16px) !important; }
.rw-home-hero-strip .rw-home-reviews .ti-widget.ti-goog .ti-text { font-size:14px !important; line-height:1.4 !important; }
.rw-home-hero-strip .rw-review-link { display:inline-flex; align-items:center; min-height:44px; color:var(--gcid-vouhb375ci); font-size:var(--gvid-rwuisize, 16px); text-decoration:underline; text-underline-offset:0.2em; }
.rw-home-hero-strip .rw-review-link:focus-visible { outline:2px solid currentColor; outline-offset:4px; }

/* Anchor destinations remain visible below the sticky site header. */
.et-l .rw-article-content :is(h2,h3,h4)[id] { scroll-margin-top:10rem; }

/* Square Booksy cutouts: keep the hair and shoulders visible, flush to the base. */
.et-db #et-boc .et-l .rw-premium-service-hero .rw-premium-service-image .et_pb_image_wrap img:is(.wp-image-1098101,.wp-image-1098102) {
  object-fit: contain;
  object-position: center bottom;
}
#rw-booking-formules {
  scroll-margin-top: clamp(6rem, 4rem + 4vw, 9rem);
}

/* Keep the braid and lock partings clear of the mobile breadcrumb. */
@media (max-width:767px) {
  .et-db #et-boc .et-l .rw-premium-service-hero .rw-premium-service-image .et_pb_image_wrap img:is(.wp-image-1098101,.wp-image-1098102) {
    box-sizing: border-box;
    padding-block-start: clamp(3.75rem, 3.5rem + 1vw, 4rem);
  }
}

/* The Divi Link layout controls the inner span. Align the full hit areas. */
.et-db #et-boc .et-l .rw-premium-header .rw-header-mobile-navigation :is(.rw-header-menu-link,.rw-header-mobile-services-trigger) {
  align-items: stretch;
  justify-content: center;
}
.et-db #et-boc .et-l .rw-premium-header :is(.rw-header-root-close,.rw-header-panel-close,.rw-header-stage-back,.rw-header-all-services,.rw-header-service-link,.rw-header-mobile-about) {
  justify-content: center;
}
.et-db #et-boc .et-l .rw-premium-header :is(.rw-header-root-close,.rw-header-panel-close) {
  align-items: center;
}
.et-db #et-boc .et-l .rw-premium-header .rw-header-panel-heading > .et_pb_text p:last-child {
  padding-bottom: 0;
}
.et-db #et-boc .et-l .rw-premium-header .rw-header-services-trigger .et-pb-icon {
  transform: rotate(90deg);
}
.et-db #et-boc .et-l .rw-premium-header .rw-header-services-trigger[aria-expanded="true"] .et-pb-icon {
  transform: rotate(-90deg);
}

/* Keep the native heading and booking destination outside the scrolling list. */
.et-db #et-boc .et-l .rw-premium-header :is(.rw-header-drawer-desktop,.rw-header-services-stage) {
  overflow: hidden;
}
.et-db #et-boc .et-l .rw-premium-header :is(.rw-header-panel-heading,.rw-header-all-services) {
  flex-shrink: 0;
}
.et-db #et-boc .et-l .rw-premium-header .rw-header-panel-list {
  flex: 0 1 auto;
  min-block-size: 0;
  overflow-y: auto;
  overscroll-behavior-y: contain;
  scrollbar-width: thin;
}
.et-db #et-boc .et-l .rw-premium-header .rw-header-root-panel-heading {
  position: sticky;
  top: 0;
  z-index: 1;
  background-color: var(--gcid-34vfmsqm6d);
}
.et-db #et-boc .et-l .rw-premium-header :is(.rw-header-drawer-mobile,.rw-header-services-stage) >
:is(.rw-header-panel-heading,.rw-header-mobile-navigation,.rw-header-panel-list,.rw-header-all-services) {
  max-inline-size: var(--gvid-rwreadingmax, 46rem);
  margin-inline: auto;
}
.et-db #et-boc .et-l .rw-premium-header .rw-header-services-stage > .rw-header-all-services {
  align-self: center;
  padding-bottom: calc(var(--gvid-rwidentitygap, .5rem) + env(safe-area-inset-bottom, 0px));
}
.et-db #et-boc .et-l .rw-premium-header :is(.rw-header-panel-list a,.rw-header-all-services):focus-visible {
  outline-offset: calc(-1 * var(--gvid-10hxley4ny, .25rem));
}

/* Other Divi columns can paint above the dropdown even after becoming inert. */
.et-db #et-boc .et-l .rw-premium-header:has(.rw-header-drawer-mobile[aria-hidden="false"])
:is(.rw-header-utility,.rw-header-burger,.rw-header-logo-compact,.rw-header-reserve) {
  visibility: hidden;
}

/* Reveal panel contents over a solid surface, including during the transition. */
@media (prefers-reduced-motion: no-preference) {
  .et-db #et-boc .et-l .rw-premium-header .rw-header-drawer-mobile[aria-hidden="false"] > * {
    animation: rw-header-fade 180ms ease-out;
  }
  .et-db #et-boc .et-l .rw-premium-header :is(.rw-header-services-stage,.rw-header-drawer-desktop)[aria-hidden="false"] > * {
    animation: rw-header-level-in 220ms ease-out;
  }
  .et-db #et-boc .et-l .rw-premium-header .rw-header-drawer-desktop {
    --rw-header-slide-from: -8px;
  }
  .et-db #et-boc .et-l .rw-premium-header .rw-header-services-trigger .et-pb-icon {
    transition: transform 180ms ease-out;
  }
}
@keyframes rw-header-fade {
  from { opacity: .68; }
  to { opacity: 1; }
}
@keyframes rw-header-level-in {
  from { opacity: .68; transform: translateX(var(--rw-header-slide-from, 8px)); }
  to { opacity: 1; transform: translateX(0); }
}

/* Divi prints Flex alignment for this Button but keeps its anchor inline-block. */
body.home.et-db #rw-booksy-btn.et_pb_button {
  display: inline-flex;
}

/* The link added by Divi must fill the existing cover-image frame. */
body.home .et_pb_group_carousel_slide:has(.rw-home-prestation-caption) .et_pb_image > a {
  display: block;
  width: 100%;
  height: 100%;
}

/* A 30px icon sits inside the native 44px card button. */
@supports (mask-image: url("")) or (-webkit-mask-image: url("")) {
  body.home #page-container .rw-home-prestation-caption .rw-home-prestation-arrow {
    font-size: 0 !important;
    border-radius: 50%;
  }
  body.home #page-container .rw-home-prestation-caption .rw-home-prestation-arrow::before,
  body.home #page-container .rw-home-prestation-caption .rw-home-prestation-arrow::after {
    content: "";
    display: block !important;
    position: absolute;
    inset: 0;
    margin: auto;
    opacity: 1;
    pointer-events: none;
    transform: none;
  }
  body.home #page-container .rw-home-prestation-caption .rw-home-prestation-arrow::before {
    width: 30px;
    height: 30px;
    box-sizing: border-box;
    border: 1px solid #a6a6a6;
    border-radius: 50%;
  }
  body.home #page-container .rw-home-prestation-caption .rw-home-prestation-arrow::after {
    --rw-prestation-arrow-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3E%3Cpath d='M4 10h11m-4-4 4 4-4 4' fill='none' stroke='black' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
    width: 17px;
    height: 17px;
    background: currentColor;
    -webkit-mask: var(--rw-prestation-arrow-mask) center / contain no-repeat;
    mask: var(--rw-prestation-arrow-mask) center / contain no-repeat;
  }
  body.home #page-container .rw-home-prestation-caption .rw-home-prestation-arrow:is(:hover,:focus-visible)::before {
    border-color: var(--gcid-34vfmsqm6d, #181a1b);
  }
  @media (prefers-reduced-motion: no-preference) {
    body.home #page-container .rw-home-prestation-caption .rw-home-prestation-arrow::before {
      transition: border-color 180ms ease-out;
    }
  }
}
body.home #page-container .rw-home-prestation-caption .rw-home-prestation-arrow:focus-visible {
  outline: 2px solid var(--gcid-primary-color);
  outline-offset: 2px;
}
