/* Interaction rules applied at runtime.
   These only reveal menus, accordions, and form messages. They do not restyle the layout. */

@media (min-width: 1025px) {
  .rv-nav-menu-main .rv-nav-menu > li {
    position: relative;
  }

  /*
   * The dropdown hover bridge overlaps the parent label (Blog, Areas of
   * Practice). Keep the label above that bridge so a mouse click follows
   * the link instead of landing on the open submenu.
   */
  .rv-nav-menu-main .rv-nav-menu li.menu-item-has-children > a {
    position: relative;
    z-index: 10002;
  }

  /*
   * Kill Elementor's margin-top:10px !important gap. Match/beat its specificity
   * (.rv-n-19 .rv-element.rv-element-* .rv-nav-menu-main > ... > .rv-nav-menu-dropdown).
   * Padding keeps the visual offset without a dead hover zone.
   */
  .rv-location-header .rv-n-19 .rv-element .rv-nav-menu-main > .rv-nav-menu > li > ul.sub-menu.rv-nav-menu-dropdown,
  .rv-n-19 .rv-element.rv-widget-nav-menu .rv-nav-menu-main > .rv-nav-menu > li > .rv-nav-menu-dropdown,
  .rv-n-19 .rv-element .rv-nav-menu-main > .rv-nav-menu > li > .rv-nav-menu-dropdown {
    margin-top: 0 !important;
  }

  /*
   * Top-level dropdown only (use > li so nested items are not forced to
   * top:100%/left:0 — Elementor defaults nested menus below the row, which
   * makes grandchild links nearly impossible to reach).
   */
  .rv-nav-menu-main .rv-nav-menu > li:hover > ul.sub-menu,
  .rv-nav-menu-main .rv-nav-menu > li:focus-within > ul.sub-menu {
    display: block !important;
    position: absolute !important;
    z-index: 10000 !important;
    width: max-content;
    min-width: 240px;
    max-width: min(420px, 90vw);
    top: 100% !important;
    left: 0 !important;
    margin-top: 0 !important;
    padding-top: 10px !important;
  }

  .rv-nav-menu-main .rv-nav-menu > li:hover > ul.sub-menu > li > a,
  .rv-nav-menu-main .rv-nav-menu > li:focus-within > ul.sub-menu > li > a {
    white-space: nowrap;
  }

  /* Invisible hover bridge above the dropdown */
  .rv-nav-menu-main .rv-nav-menu > li.menu-item-has-children > ul.sub-menu::before {
    content: "";
    position: absolute;
    left: 0;
    right: 0;
    top: -20px;
    height: 20px;
  }

  .rv-nav-menu-main .rv-nav-menu li li {
    position: relative;
  }

  /* Nested flyout to the side — beat Elementor top:100% default */
  .rv-nav-menu-main .rv-nav-menu li li:hover > ul.sub-menu,
  .rv-nav-menu-main .rv-nav-menu li li:focus-within > ul.sub-menu {
    display: block !important;
    position: absolute !important;
    z-index: 10001 !important;
    width: max-content;
    min-width: 240px;
    max-width: min(420px, 90vw);
    top: 0 !important;
    left: 100% !important;
    right: auto !important;
    margin: 0 !important;
  }

  .rv-nav-menu-main .rv-nav-menu li li:hover > ul.sub-menu > li > a,
  .rv-nav-menu-main .rv-nav-menu li li:focus-within > ul.sub-menu > li > a {
    white-space: nowrap;
  }

  /* Wide bridge so the cursor can travel into the nested flyout */
  .rv-nav-menu-main .rv-nav-menu li li.menu-item-has-children > ul.sub-menu::before {
    content: "";
    position: absolute;
    top: 0;
    bottom: 0;
    left: -24px;
    width: 24px;
  }

  /* Larger, easier hit targets on all submenu links */
  .rv-nav-menu-main .rv-nav-menu ul.sub-menu > li > a {
    display: flex !important;
    align-items: center;
    box-sizing: border-box;
    min-height: 40px;
    padding-left: 14px !important;
    padding-right: 14px !important;
  }
}

.rv-nav-menu-dropdown .rv-nav-menu li.rv-sub-open > ul.sub-menu {
  display: block;
}

/*
 * Mobile / tablet header + nav
 * Elementor stretch menus need frontend JS for absolute width; without it the
 * dropdown collapses to a narrow overlay. Keep it in normal flow instead.
 */
@media (max-width: 1024px) {
  .rv-location-header .rv-nav-menu-stretch .rv-nav-menu-container.rv-nav-menu-dropdown,
  .rv-nav-menu-stretch .rv-nav-menu-container.rv-nav-menu-dropdown {
    position: static !important;
    left: auto !important;
    right: auto !important;
    width: 100% !important;
    max-width: 100% !important;
    margin-top: 8px !important;
    box-sizing: border-box;
  }

  .rv-location-header .rv-nav-menu-toggle .rv-menu-toggle:not(.rv-active) + .rv-nav-menu-container,
  .rv-nav-menu-toggle .rv-menu-toggle:not(.rv-active) + .rv-nav-menu-container {
    max-height: 0 !important;
    overflow: hidden !important;
    transform: scaleY(0);
    margin-top: 0 !important;
    padding: 0 !important;
    border: 0 !important;
  }

  .rv-location-header .rv-nav-menu-toggle .rv-menu-toggle.rv-active + .rv-nav-menu-container,
  .rv-nav-menu-toggle .rv-menu-toggle.rv-active + .rv-nav-menu-container {
    max-height: min(70vh, 640px) !important;
    overflow-x: hidden !important;
    overflow-y: auto !important;
    transform: none !important;
  }

  .rv-location-header .rv-nav-menu-dropdown,
  .rv-nav-menu-dropdown.rv-nav-menu-container {
    background-color: #4a4e54 !important;
    border-radius: 4px;
    overflow: hidden;
  }

  .rv-location-header .rv-nav-menu-dropdown .rv-nav-menu,
  .rv-nav-menu-dropdown.rv-nav-menu-container .rv-nav-menu {
    display: block !important;
    width: 100% !important;
    margin: 0 !important;
    padding: 0 !important;
  }

  .rv-location-header .rv-nav-menu-dropdown .rv-nav-menu > li,
  .rv-nav-menu-dropdown.rv-nav-menu-container .rv-nav-menu > li {
    display: block !important;
    width: 100% !important;
    margin: 0 !important;
    border-bottom: 1px solid rgba(255, 255, 255, 0.12);
    background-color: #4a4e54 !important;
  }

  .rv-location-header .rv-nav-menu-dropdown .rv-nav-menu > li:last-child,
  .rv-nav-menu-dropdown.rv-nav-menu-container .rv-nav-menu > li:last-child {
    border-bottom: 0;
  }

  .rv-location-header .rv-nav-menu-dropdown .rv-nav-menu > li > a,
  .rv-nav-menu-dropdown.rv-nav-menu-container .rv-nav-menu > li > a,
  .rv-location-header .rv-nav-menu-dropdown .rv-nav-menu > li > a.rv-item-active,
  .rv-location-header .rv-nav-menu-dropdown .rv-nav-menu > li > a.highlighted,
  .rv-location-header .rv-nav-menu-dropdown .rv-nav-menu > li.current-menu-item > a {
    display: flex !important;
    align-items: center;
    justify-content: space-between;
    width: 100% !important;
    box-sizing: border-box;
    padding: 12px 16px !important;
    color: #fff !important;
    background-color: #4a4e54 !important;
  }

  .rv-location-header .rv-nav-menu-dropdown .rv-nav-menu > li > a:hover,
  .rv-location-header .rv-nav-menu-dropdown .rv-nav-menu > li > a:focus {
    background-color: #5a5e64 !important;
  }

  .rv-location-header .rv-nav-menu-dropdown .rv-nav-menu ul.sub-menu,
  .rv-nav-menu-dropdown.rv-nav-menu-container .rv-nav-menu ul.sub-menu {
    display: none;
    position: static !important;
    width: 100% !important;
    background: #3a3e44 !important;
    box-shadow: none !important;
  }

  .rv-location-header .rv-nav-menu-dropdown .rv-nav-menu li.rv-sub-open > ul.sub-menu,
  .rv-nav-menu-dropdown.rv-nav-menu-container .rv-nav-menu li.rv-sub-open > ul.sub-menu {
    display: block !important;
  }

  .rv-location-header .rv-nav-menu-dropdown .rv-nav-menu ul.sub-menu a {
    display: flex !important;
    align-items: center;
    justify-content: space-between;
    gap: 8px;
    box-sizing: border-box;
    min-height: 44px;
    padding: 12px 12px 12px 28px !important;
    color: #fff !important;
  }

  .rv-location-header .rv-nav-menu-dropdown .rv-nav-menu ul.sub-menu ul.sub-menu a {
    padding-left: 40px !important;
  }

  /* Large caret tap target so nested items open without hunting a tiny icon */
  .rv-location-header .rv-nav-menu-dropdown .rv-nav-menu .sub-arrow,
  .rv-nav-menu-dropdown.rv-nav-menu-container .rv-nav-menu .sub-arrow {
    flex: 0 0 48px;
    width: 48px !important;
    min-width: 48px !important;
    min-height: 44px !important;
    margin: 0 !important;
    padding: 0 !important;
    display: inline-flex !important;
    align-items: center;
    justify-content: center;
    align-self: stretch;
  }

  .rv-location-header .rv-nav-menu-dropdown .rv-nav-menu .menu-item-has-children > a,
  .rv-nav-menu-dropdown.rv-nav-menu-container .rv-nav-menu .menu-item-has-children > a {
    display: flex !important;
    align-items: center;
    justify-content: space-between;
    gap: 4px;
  }

  /* —— Mobile header redesign (section 3e58a08) —— */
  .rv-location-header .rv-element-3e58a08 {
    padding: 10px 12px 12px !important;
  }

  .rv-location-header .rv-element-3e58a08 > .rv-container,
  .rv-location-header .rv-element-3e58a08 .rv-column.rv-col-100 {
    width: 100% !important;
    max-width: 100% !important;
  }

  /* Anchor for logo-row hamburger (nav lives nested under divider section) */
  .rv-location-header .rv-element-3e58a08 .rv-element-ff26179 > .rv-widget-wrap {
    position: relative !important;
    display: flex;
    flex-direction: column;
    gap: 8px;
  }

  /*
   * Elementor columns/wraps are position:relative by default, which trapped the
   * absolute hamburger inside the collapsed divider row. Flatten containing blocks
   * so the menu pins to the top-right of the header chrome.
   */
  .rv-location-header .rv-element-3e58a08 .rv-element-6249fbe,
  .rv-location-header .rv-element-3e58a08 .rv-element-6249fbe > .rv-container,
  .rv-location-header .rv-element-3e58a08 .rv-element-e173858,
  .rv-location-header .rv-element-3e58a08 .rv-element-e173858 > .rv-widget-wrap,
  .rv-location-header .rv-element-3e58a08 .rv-element-14830ab,
  .rv-location-header .rv-element-3e58a08 .rv-element-14830ab > .rv-container,
  .rv-location-header .rv-element-3e58a08 .rv-element-7560856,
  .rv-location-header .rv-element-3e58a08 .rv-element-7560856 > .rv-container,
  .rv-location-header .rv-element-3e58a08 .rv-element-bed0cc0,
  .rv-location-header .rv-element-3e58a08 .rv-element-bed0cc0 > .rv-widget-wrap {
    position: static !important;
  }

  /* Logo row — brand-forward; thin wordmark gets taller letterforms on mobile */
  .rv-location-header .rv-element-3e58a08 .rv-element-ec8a205 {
    margin: 0 !important;
    padding: 12px 56px 14px 0 !important;
    min-height: 70px;
    display: flex !important;
    align-items: center;
    overflow: visible;
  }

  .rv-location-header .rv-element-3e58a08 .rv-element-ec8a205 .rv-widget-container {
    text-align: left !important;
    width: 100%;
    overflow: visible;
  }

  .rv-location-header .rv-element-3e58a08 .rv-element-ec8a205 img {
    display: block;
    width: calc(100vw - 98px) !important;
    max-width: 286px !important;
    height: auto !important;
    /* Asset is only ~41px tall — lift letter height without eating the menu */
    transform: scaleY(1.55) scaleX(1.06);
    transform-origin: left center;
    filter: drop-shadow(0 1px 1px rgba(0, 0, 0, 0.22));
  }

  /* Nest sections: strip Elementor boxing */
  .rv-location-header .rv-element-3e58a08 .rv-element-6249fbe,
  .rv-location-header .rv-element-3e58a08 .rv-element-14830ab,
  .rv-location-header .rv-element-3e58a08 .rv-element-7560856 {
    margin: 0 !important;
    padding: 0 !important;
  }

  .rv-location-header .rv-element-3e58a08 .rv-element-6249fbe > .rv-container,
  .rv-location-header .rv-element-3e58a08 .rv-element-14830ab > .rv-container,
  .rv-location-header .rv-element-3e58a08 .rv-element-7560856 > .rv-container {
    max-width: 100% !important;
    width: 100% !important;
    padding: 0 !important;
    display: block !important;
  }

  /* Collapse the divider/menu section — it only exists to host the nav widget */
  .rv-location-header .rv-element-3e58a08 .rv-element-7560856 {
    height: 0 !important;
    min-height: 0 !important;
    overflow: visible !important;
  }

  /* Contact / phone / lang → primary CTA + 2-up utility row */
  .rv-location-header .rv-element-3e58a08 .rv-element-14830ab > .rv-container {
    display: grid !important;
    grid-template-columns: 1.15fr 0.85fr;
    gap: 6px;
    align-items: stretch;
  }

  .rv-location-header .rv-element-3e58a08 .rv-element-d025976 {
    grid-column: 1 / -1;
    width: 100% !important;
  }

  .rv-location-header .rv-element-3e58a08 .rv-element-60af724,
  .rv-location-header .rv-element-3e58a08 .rv-element-2ceabd6 {
    width: 100% !important;
    margin: 0 !important;
  }

  .rv-location-header .rv-element-3e58a08 .rv-element-d025976 .rv-widget-wrap,
  .rv-location-header .rv-element-3e58a08 .rv-element-60af724 .rv-widget-wrap,
  .rv-location-header .rv-element-3e58a08 .rv-element-2ceabd6 .rv-widget-wrap {
    margin: 0 !important;
  }

  .rv-location-header .rv-element-3e58a08 .rv-widget-button,
  .rv-location-header .rv-element-3e58a08 .rv-widget-lang-language-switcher {
    margin: 0 !important;
  }

  .rv-location-header .rv-element-3e58a08 .rv-button-wrapper,
  .rv-location-header .rv-element-3e58a08 .rv-button,
  .rv-location-header .rv-element-3e58a08 .rv-button-link {
    width: 100% !important;
    max-width: 100% !important;
  }

  .rv-location-header .rv-element-3e58a08 .rv-button,
  .rv-location-header .rv-element-3e58a08 .rv-button-link {
    display: inline-flex !important;
    align-items: center;
    justify-content: center;
    box-sizing: border-box;
    min-height: 40px;
    padding: 8px 10px !important;
    border-radius: 8px !important;
    background: rgba(20, 22, 26, 0.55) !important;
    color: #fff !important;
    border: 1px solid rgba(255, 255, 255, 0.18) !important;
    font-size: 12px !important;
    font-weight: 700 !important;
    letter-spacing: 0.02em;
    line-height: 1.2 !important;
    text-align: center;
    white-space: nowrap;
  }

  /* Primary CTA */
.rv-location-footer .place-desc-large,
.rv-location-footer .place-desc-large + p {
  background-color: #3a4044;
  display: inline-block;
  padding: 2px 8px;
}

  .rv-location-header .rv-element-3e58a08 .rv-element-94dd24a .rv-button,
  .rv-location-header .rv-element-3e58a08 .rv-element-94dd24a .rv-button-link {
    background: #fff !important;
    color: #d45516 !important;
    border-color: #fff !important;
    font-size: 11.5px !important;
    letter-spacing: 0.04em;
    min-height: 42px;
    white-space: normal;
  }

  .rv-location-header .rv-element-3e58a08 .rv-element-94dd24a .rv-button:hover,
  .rv-location-header .rv-element-3e58a08 .rv-element-94dd24a .rv-button:focus {
    background: #fff7f2 !important;
  }

  /* Compact language control */
  .rv-location-header .rv-element-3e58a08 .rv-lang-ls-legacy-dropdown-abb6 {
    width: 100% !important;
    max-width: 100% !important;
  }

  .rv-location-header .rv-element-3e58a08 .rv-lang-ls-legacy-dropdown-abb6 > ul {
    margin: 0 !important;
  }

  .rv-location-header .rv-element-3e58a08 .rv-lang-ls-legacy-dropdown-abb6 a.rv-lang-ls-item-toggle,
  .rv-location-header .rv-element-3e58a08 .rv-lang-ls-legacy-dropdown-abb6 a.rv-lang-ls-link {
    display: flex !important;
    align-items: center;
    justify-content: space-between;
    box-sizing: border-box;
    min-height: 40px;
    padding: 8px 10px !important;
    border-radius: 8px !important;
    background: rgba(20, 22, 26, 0.55) !important;
    color: #fff !important;
    border: 1px solid rgba(255, 255, 255, 0.18);
    font-size: 12px !important;
    font-weight: 700 !important;
  }

  .rv-location-header .rv-element-3e58a08 .rv-lang-ls-current-language.rv-open > a.rv-lang-ls-item-toggle {
    background: #fff !important;
    color: #111 !important;
    border-color: #fff;
  }

  /* Hide hairline divider */
  .rv-location-header .rv-element-3e58a08 .rv-element-e5d9345 {
    display: none !important;
  }

  /*
   * Hamburger: stretch the nav widget to full header height so the toggle can
   * sit top-right while the open menu drops from the bottom of the chrome.
   */
  .rv-location-header .rv-element-3e58a08 .rv-element-079350b {
    position: absolute !important;
    top: 0;
    right: 0;
    bottom: 0;
    width: 44px !important;
    margin: 0 !important;
    z-index: 6;
    pointer-events: none;
  }

  .rv-location-header .rv-element-3e58a08 .rv-element-079350b > .rv-widget-container {
    position: relative;
    height: 100%;
    width: 44px;
    /* Elementor sets margin: 0 -24px, which pushes the button past the header. */
    margin: 0 0 0 auto !important;
    pointer-events: none;
  }

  .rv-location-header .rv-element-3e58a08 .rv-menu-toggle {
    pointer-events: auto;
    position: absolute !important;
    top: 38px;
    right: 0;
    margin: 0 !important;
    width: 46px !important;
    height: 46px !important;
    min-width: 46px;
    min-height: 46px;
    border-radius: 8px !important;
    background: rgba(255, 255, 255, 0.16) !important;
    border: 1px solid rgba(255, 255, 255, 0.7) !important;
    color: #fff !important;
    box-shadow: none !important;
  }

  .rv-location-header .rv-element-3e58a08 .rv-menu-toggle svg,
  .rv-location-header .rv-element-3e58a08 .rv-menu-toggle i {
    color: #fff !important;
    fill: #fff !important;
  }

  .rv-location-header .rv-element-3e58a08 .rv-menu-toggle.rv-active {
    background: #fff !important;
    color: #d45516 !important;
    border-color: #fff !important;
  }

  .rv-location-header .rv-element-3e58a08 .rv-menu-toggle.rv-active svg,
  .rv-location-header .rv-element-3e58a08 .rv-menu-toggle.rv-active i {
    color: #d45516 !important;
    fill: #d45516 !important;
  }

  /* Full-width menu panel under the orange header */
  .rv-location-header .rv-element-3e58a08 .rv-element-079350b .rv-nav-menu-dropdown.rv-nav-menu-container {
    pointer-events: auto;
    position: absolute !important;
    top: 100% !important;
    right: 0 !important;
    left: auto !important;
    width: calc(100vw - 40px) !important;
    max-width: calc(100vw - 40px) !important;
    margin-top: 8px !important;
    z-index: 30;
    border-radius: 8px;
    overflow: hidden;
    box-shadow: 0 14px 32px rgba(0, 0, 0, 0.32);
  }
}

/*
 * Language switcher: click (.rv-open) controls open/close.
 * Override WPML hover/focus-within so the menu does not stick open after click-close.
 */
.rv-lang-ls-legacy-dropdown-abb6 .rv-lang-ls-current-language > .rv-lang-ls-sub-menu,
.rv-lang-ls-legacy-dropdown-abb6 .rv-lang-ls-current-language:hover > .rv-lang-ls-sub-menu,
.rv-lang-ls-legacy-dropdown-abb6 .rv-lang-ls-current-language:focus > .rv-lang-ls-sub-menu,
.rv-lang-ls-legacy-dropdown-abb6 .rv-lang-ls-current-language:focus-within > .rv-lang-ls-sub-menu {
  visibility: hidden !important;
}

.rv-lang-ls-legacy-dropdown-abb6 .rv-lang-ls-current-language.rv-open > .rv-lang-ls-sub-menu {
  visibility: visible !important;
  z-index: 10002;
}

.rv-lang-ls-legacy-dropdown-abb6 .rv-lang-ls-current-language.rv-open > a.rv-lang-ls-item-toggle {
  color: #000;
  background: #eee;
}

.rv-hosted-video.is-playing .rv-custom-embed-image-overlay {
  display: none;
}

/* YouTube widgets hydrated from empty Elementor placeholders */
.rv-widget-video .rv-wrapper {
  --video-aspect-ratio: 16 / 9;
  aspect-ratio: 16 / 9;
  width: 100%;
  position: relative;
  overflow: hidden;
  background: #000;
}

.rv-widget-video .rv-wrapper > iframe.rv-video {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  border: 0;
  display: block;
}

.rv-form .rv-form-status {
  margin-top: 12px;
  padding: 12px 16px;
  font-family: "Proxima Nova", sans-serif;
}

.rv-form .rv-form-status.is-error {
  background: #f8d7da;
  color: #721c24;
}

.rv-form .rv-form-status.is-success {
  background: #d4edda;
  color: #155724;
}

/* Reserve the space these fixed-size images already use once loaded. */
img.rv-image-191 {
  aspect-ratio: 468 / 50;
  height: auto;
}
img.rv-image-258 {
  aspect-ratio: 175 / 60;
  height: auto;
}
img.rv-image-329 {
  aspect-ratio: 745 / 444;
  height: auto;
}

/* Loop cards sit in a 1fr grid. Without this, a logo's width attribute
   becomes the column minimum and the row spills off the page. */
.rv-loop-item {
  min-width: 0;
}

html.rv-readable-font body,
html.rv-readable-font body p,
html.rv-readable-font body li,
html.rv-readable-font body a,
html.rv-readable-font body span,
html.rv-readable-font body h1,
html.rv-readable-font body h2,
html.rv-readable-font body h3,
html.rv-readable-font body h4 {
  font-family: Arial, Helvetica, sans-serif !important;
}

/*
  The hero is the first screen. Later sections stay in the document but skip
  style and layout until they approach the viewport, so the first paint is not
  waiting on the rest of the page.
*/
#content > section.rv-top-section ~ section.rv-top-section,
.rv-location-footer {
  content-visibility: auto;
  contain-intrinsic-size: auto 640px;
}
