:root {
  --focus-ring: #f7c96b;
}

.skip-link {
  background: #ffffff;
  color: #120b33;
  font-weight: 700;
  left: 1rem;
  padding: 0.75rem 1rem;
  position: fixed;
  top: -6rem;
  z-index: 100000;
}

.skip-link:focus {
  top: 1rem;
}

:where(a, button, input, select, textarea, iframe, [tabindex]):focus-visible {
  outline: 3px solid var(--focus-ring) !important;
  outline-offset: 3px !important;
}

.verified-contact-form iframe {
  background: #130b56;
  border: 0;
  border-radius: 3px;
  box-sizing: border-box;
  display: block;
  height: 510px !important;
  left: auto !important;
  min-height: 510px;
  opacity: 1 !important;
  padding: 28px;
  position: static !important;
  transform: none !important;
  visibility: visible !important;
  width: 100%;
}

.form-privacy-note {
  color: #4c4c55;
  font-size: 0.9375rem;
  line-height: 1.55;
  margin: 1rem 0 0;
}

img,
iframe,
video {
  max-width: 100%;
}

/* The static clone lost the absolute-image rule and counted the ratio spacer twice. */
.home .elementor-post__thumbnail__link {
  height: auto !important;
}

.home .elementor-post__thumbnail {
  aspect-ratio: 16 / 9;
  height: auto !important;
  overflow: hidden;
  padding-bottom: 0 !important;
}

.home .elementor-post__thumbnail img {
  aspect-ratio: 16 / 9;
  display: block;
  height: 100% !important;
  inset: auto !important;
  object-fit: cover;
  object-position: center;
  position: static !important;
  width: 100% !important;
}

/* Keep the homepage value strip readable after unverified numeric claims were removed. */
.home [data-id="b65db48"] > .elementor-container {
  display: grid !important;
  grid-template-columns: repeat(4, minmax(0, 1fr));
}

.home [data-id="b65db48"] > .elementor-container > .elementor-column {
  min-width: 0;
  width: 100% !important;
}

.home [data-id="b65db48"] .elementor-icon-box-wrapper {
  align-items: center;
  display: grid !important;
  gap: 1rem;
  grid-template-columns: 65px minmax(0, 1fr);
  min-height: 116px;
}

.home [data-id="b65db48"] .elementor-icon-box-icon,
.home [data-id="b65db48"] .elementor-icon-box-content {
  margin: 0 !important;
  min-width: 0;
}

.home [data-id="b65db48"] .elementor-icon-box-title {
  font-size: clamp(1.5rem, 2vw, 1.85rem) !important;
  line-height: 1.15 !important;
  margin: 0 !important;
  overflow-wrap: normal;
  word-break: normal;
}

.home [data-id="b65db48"] .elementor-icon-box-description {
  font-size: 1rem;
  line-height: 1.35;
  margin: .3rem 0 0 !important;
}

@media (max-width: 1024px) {
  .home [data-id="b65db48"] > .elementor-container {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 767px) {
  .home [data-id="b65db48"] > .elementor-container {
    grid-template-columns: 1fr;
  }

  .home [data-id="b65db48"] .elementor-icon-box-wrapper {
    grid-template-columns: 58px minmax(0, 1fr);
    min-height: 96px;
  }
}

.elementor-invisible {
  visibility: visible !important;
}

.elementor-tab-title {
  cursor: pointer;
}

.elementor-tab-title:focus-visible {
  outline: 3px solid var(--focus-ring) !important;
  outline-offset: 3px !important;
}

/* Restore the interactive state lost with the WordPress accordion runtime. */
.elementor-accordion .elementor-tab-content.elementor-active {
  display: block;
}

/* Reuse the site's original FAQ component on service and article pages. */
.hhhc-faq-widget,
.hhhc-faq-section {
  box-sizing: border-box;
  margin-inline: auto;
  max-width: 1300px;
  width: 100%;
}

.hhhc-faq-widget {
  padding: 0 clamp(1rem, 4vw, 2.5rem) clamp(2.75rem, 6vw, 4.75rem);
}

.hhhc-faq-section {
  padding-block: clamp(2rem, 5vw, 3.5rem);
}

.hhhc-faq-heading {
  color: #0d0d0f;
  font-family: "Playfair Display", Sans-serif;
  font-size: clamp(2rem, 4vw, 3.125rem);
  font-weight: 600;
  line-height: 1.12;
  margin: clamp(2.75rem, 6vw, 4.75rem) 0 1.75rem;
  text-align: center;
}

.hhhc-faq-section .hhhc-faq-heading {
  margin-top: 0;
}

.hhhc-faq-accordion {
  text-align: start;
}

.hhhc-faq-accordion .elementor-accordion-item {
  border: 9px solid #ffffff;
}

.hhhc-faq-accordion .elementor-tab-title {
  align-items: center;
  background: #eff0f7;
  color: #0d0d0f;
  cursor: pointer;
  display: flex;
  font-family: "Playfair Display", Sans-serif;
  font-size: 1.5rem;
  font-weight: 600;
  justify-content: space-between;
  line-height: 1.25;
  min-height: 56px;
  padding: 15px 20px;
  text-transform: uppercase;
  transition: color .2s ease, background-color .2s ease;
}

.hhhc-faq-accordion .elementor-tab-title.elementor-active {
  color: #cd9430;
}

.hhhc-faq-accordion .elementor-accordion-title {
  color: inherit;
  padding-inline-end: 1rem;
}

.hhhc-faq-accordion .elementor-accordion-icon {
  color: currentColor;
  flex: 0 0 1.5em;
  margin-inline-start: auto;
  order: 2;
  text-align: right;
}

.hhhc-faq-accordion .elementor-accordion-icon svg {
  fill: currentColor;
  height: 1em;
  width: 1em;
}

.hhhc-faq-accordion .elementor-accordion-icon-opened,
.hhhc-faq-accordion .elementor-tab-title.elementor-active .elementor-accordion-icon-closed {
  display: none;
}

.hhhc-faq-accordion .elementor-tab-title.elementor-active .elementor-accordion-icon-opened {
  display: block;
}

.hhhc-faq-accordion .elementor-tab-content {
  background: #ffffff;
  border-block-start: 9px solid #ffffff;
  color: #373542;
  display: none;
  font-family: Figtree, Sans-serif;
  font-size: 1rem;
  line-height: 1.7;
  padding: 18px 20px 20px;
}

.hhhc-faq-accordion .elementor-tab-content p:last-child {
  margin-bottom: 0;
}

.hhhc-faq-accordion .elementor-tab-title:focus-visible {
  outline: 3px solid #cd9430 !important;
  outline-offset: 2px !important;
}

.hhhc-google-review-section {
  background: #ffffff;
  display: grid;
  min-height: 180px;
  padding: clamp(2.5rem, 6vw, 4.5rem) 1rem;
  place-items: center;
}

.hhhc-google-review-link {
  align-items: center;
  background: #ffffff;
  border: 1px solid rgba(19, 11, 86, .14);
  border-radius: 50%;
  box-shadow: 0 8px 24px rgba(19, 11, 86, .12);
  display: inline-flex;
  height: 76px;
  justify-content: center;
  transition: box-shadow .2s ease, transform .2s ease;
  width: 76px;
}

.hhhc-google-review-link:hover {
  box-shadow: 0 12px 30px rgba(19, 11, 86, .18);
  transform: translateY(-2px);
}

.hhhc-google-review-link svg {
  display: block;
  height: 44px;
  width: 44px;
}

.hhhc-google-review-link:focus-visible {
  outline: 3px solid #cd9430 !important;
  outline-offset: 4px !important;
}

@media (max-width: 767px) {
  .hhhc-faq-section {
    padding-block: 2rem;
  }

  .hhhc-faq-widget {
    padding: 0 .625rem 2.5rem;
  }

  .hhhc-faq-heading {
    font-size: 2rem;
  }

  .hhhc-faq-accordion .elementor-tab-title {
    font-size: 1.125rem;
    min-height: 52px;
    padding: 12px 15px;
  }

  .hhhc-faq-accordion .elementor-tab-content {
    padding: 12px 15px 16px;
  }
}

/* Static-export replacement for the WordPress menu runtime. */
@media (min-width: 1025px) {
  .elementskit-menu-container .elementskit-dropdown-has > .elementskit-submenu-panel {
    display: block !important;
    left: 0 !important;
    max-height: none !important;
    opacity: 0 !important;
    pointer-events: none !important;
    position: absolute !important;
    top: 100% !important;
    transform: translateY(-10px) !important;
    transition: opacity .18s ease, transform .18s ease, visibility .18s ease !important;
    visibility: hidden !important;
    z-index: 100000 !important;
  }

  .elementskit-menu-container .elementskit-dropdown-has:hover > .elementskit-submenu-panel,
  .elementskit-menu-container .elementskit-dropdown-has.submenu-open > .elementskit-submenu-panel {
    opacity: 1 !important;
    pointer-events: auto !important;
    transform: translateY(0) !important;
    visibility: visible !important;
  }
}

/* Preserve the brand palette while meeting WCAG contrast requirements. */
.home a.elementor-button[href*="massagebook.com"],
.home [data-id="dc49ba5"] a.elementor-button {
  color: #0d0a36 !important;
}

.home a.elementor-button[href*="massagebook.com"] .elementor-button-text,
.home [data-id="dc49ba5"] a.elementor-button .elementor-button-text {
  color: inherit !important;
}

.home [data-id="35a9db1"] .elementor-heading-title,
.home [data-id="6f96b2c"] .elementor-heading-title,
.home [data-id="9078ce8"] .ekit-heading--title span,
.home [data-id="1f6ea4c"] .elementor-heading-title,
.home [data-id="dad7660"] .ekit-heading--title span,
.home [data-id="a980367"] .ekit-heading--title span,
.home [data-id="71c6974"] .ekit-heading--title span,
.home [data-id="aa18b65"] .ekit-heading--title span,
.home .elementor-post__read-more {
  color: #cd9430 !important;
}

.home [data-id="caeee51"] a,
.home [data-id="caeee51"] a strong {
  color: #f4c75c !important;
}

@media (max-width: 1024px) {
  .elementskit-menu-container,
  .elementskit-navbar-nav {
    max-width: 100% !important;
    overflow-x: hidden !important;
    width: 100% !important;
  }

  html body .elementskit-menu-container .elementskit-dropdown-has > .elementskit-submenu-panel {
    box-sizing: border-box !important;
    min-width: 0 !important;
    padding: 12px !important;
    width: 100% !important;
  }

  .elementskit-menu-container.active {
    left: 0 !important;
    visibility: visible !important;
  }

  .elementskit-menu-overlay.active {
    display: block !important;
    opacity: 1 !important;
    visibility: visible !important;
  }

  .elementskit-dropdown-has.submenu-open > .elementskit-submenu-panel {
    display: block !important;
    max-height: 700px !important;
    opacity: 1 !important;
    pointer-events: auto !important;
    position: static !important;
    transform: none !important;
    visibility: visible !important;
  }
}

@media (max-width: 767px) {
  .verified-contact-form iframe {
    height: 550px !important;
    min-height: 550px;
    padding: 20px;
  }
}

@media (prefers-reduced-motion: reduce) {
  *,
  *::before,
  *::after {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    scroll-behavior: auto !important;
    transition-duration: 0.01ms !important;
  }

  video[autoplay] {
    display: none;
  }
}

/* Launch-gate content added during the SEO migration audit. */
.launch-treatment-selection,
.launch-policy-content,
.launch-article-disclaimer {
  box-sizing: border-box;
  margin-inline: auto;
  max-width: 1120px;
}

.launch-treatment-selection,
.launch-policy-content {
  background: #eff0f7;
  border-top: 3px solid #cd9430;
  box-shadow: 0 8px 24px rgba(19, 11, 86, .08);
  margin-block: clamp(2.5rem, 6vw, 5rem);
  padding: clamp(2rem, 5vw, 4.5rem) clamp(1rem, 4vw, 2.5rem);
}

.launch-treatment-selection h1,
.launch-treatment-selection h2,
.launch-policy-content h1,
.launch-policy-content h2 {
  color: #0d0d0f;
  font-family: "Playfair Display", Sans-serif;
  line-height: 1.15;
}

.launch-treatment-selection ul {
  display: grid;
  gap: 1rem;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  list-style: none;
  margin-block: 1.5rem;
  padding: 0;
}

.launch-treatment-selection li,
.launch-policy-content p {
  line-height: 1.7;
}

.launch-treatment-selection li {
  background: #ffffff;
  border-left: 3px solid #cd9430;
  box-shadow: 0 4px 14px rgba(19, 11, 86, .06);
  padding: 1rem 1.125rem;
}

.launch-treatment-selection a,
.launch-policy-content a {
  color: #1a146b;
  font-weight: 600;
}

.launch-article-disclaimer {
  background: #eff0f7;
  border-left: 4px solid #cd9430;
  color: #20183d;
  line-height: 1.6;
  margin-block: 1rem 2rem;
  padding: 1rem 1.25rem;
}

/* Article hero images should fill the reading column, not sit as small thumbnails. */
.single-post [data-widget_type="theme-post-featured-image.default"] .elementor-widget-container,
.single-post [data-widget_type="theme-post-featured-image.default"] a {
  display: block;
  width: 100%;
}

.single-post [data-widget_type="theme-post-featured-image.default"] img {
  aspect-ratio: 16 / 9;
  display: block;
  height: auto !important;
  object-fit: cover;
  width: 100% !important;
}

.launch-review-byline {
  margin: .75rem 0 0;
}

.launch-eyebrow {
  color: #cd9430;
  font-weight: 700;
  letter-spacing: .04em;
  text-transform: uppercase;
}

@media (max-width: 767px) {
  .launch-treatment-selection ul {
    grid-template-columns: 1fr;
  }
}
