/* Pure Therapy Juliette: black, metallic gold, and square image cards. */
:root {
  --pt-ink: #f5f1e8;
  --pt-plum: #d4b66f;
  --pt-blush: #191919;
  --pt-rose: #d4b66f;
  --pt-sage: #d4b66f;
  --pt-cream: #090909;
  --pt-gold: #d4b66f;
  --pt-espresso: #d4b66f;
  --pt-surface: #151515;
  --pt-muted: #c9c4b9;
  --pt-line: #6c5831;
  --pt-metallic: linear-gradient(110deg, #72562b 0%, #d2b16a 25%, #f3e2ae 47%, #b38b46 70%, #e1c986 100%);
  --pt-shadow: 0 18px 55px rgba(0, 0, 0, .28);
}

body { background: var(--pt-cream); color: var(--pt-ink); }
h1, h2, h3, h4, h5, h6, .site-title,
.elementor .elementor-widget-heading .elementor-heading-title {
  color: var(--pt-ink) !important;
}
.elementor .elementor-widget-text-editor,
.entry-content, .pt-intro-copy, .pt-section-head, .pt-footer-note {
  color: var(--pt-muted) !important;
}
.entry-content [style*="color:"],
.entry-content [style*="color :"] { color: inherit !important; }
a { color: var(--pt-gold) !important; }
a:hover { color: #f3e2ae !important; }
a:focus-visible, button:focus-visible {
  outline: 2px solid #f3e2ae;
  outline-offset: 5px;
}
.pt-eyebrow, .pt-plum, .pt-card-num, .site-description { color: var(--pt-gold); }
.pt-flourish { background: var(--pt-metallic); }
.skip-link:focus { background: #151515; color: var(--pt-ink) !important; }

/* Existing header dimensions, artwork and navigation behavior stay in place. */
.pt-topbar { background: #070707 !important; color: var(--pt-muted) !important; }
.pt-topbar a { color: #e3d5b3 !important; }
.site-header {
  border-bottom: 1px solid transparent;
  background: linear-gradient(#101010, #101010) padding-box,
              var(--pt-metallic) border-box !important;
}
.main-navigation {
  background: #171717;
  border-color: var(--pt-line);
  box-shadow: 0 8px 28px rgba(0, 0, 0, .18);
}
.pt-menu a { color: #f0e8d8 !important; }
.pt-menu > li > a:hover, .pt-menu > li:focus-within > a {
  background: #2b251a;
  color: #f3e2ae !important;
}
.pt-menu .sub-menu {
  background: #171717;
  border-color: var(--pt-line);
  box-shadow: 0 22px 55px rgba(0, 0, 0, .4);
}
.pt-menu .sub-menu:before {
  background: #171717;
  border-color: var(--pt-line);
}
.pt-menu .sub-menu a:hover { background: #2b251a; color: #f3e2ae !important; }
.pt-header-logo {
  filter: none !important;
}
.pt-header-inner > .pt-book, .pt-book, .wp-block-button__link, .elementor-button {
  background: var(--pt-metallic) !important;
  color: #17130c !important;
  box-shadow: 0 10px 25px rgba(0, 0, 0, .22);
}
.pt-book:hover, .wp-block-button__link:hover, .elementor-button:hover {
  color: #080705 !important;
}
.pt-actions .pt-secondary {
  background: rgba(9, 9, 9, .7) !important;
  border-color: var(--pt-gold) !important;
  color: #f3e2ae !important;
}

/* Dark surfaces and metallic dividers; section spacing remains unchanged. */
.pt-intro, .pt-el-intro { background: #090909; }
.pt-service-band, .pt-el-services {
  background: linear-gradient(#101010, #101010) padding-box,
              var(--pt-metallic) border-box;
  border-top: 1px solid transparent;
  border-bottom: 1px solid transparent;
}
.pt-article, .pt-archive-card, .pt-card, .pt-requested-card,
.pt-info-card, .pt-mini-card, .pt-treatment-card, .pt-contact-card,
.pt-benefits-card, .pt-wellness-card, .pt-price-card,
.pt-article .entry-content > .gridContainer,
.pt-article .entry-content > #content-2,
.pt-article .entry-content > .wp-block-group,
.pt-article .entry-content > .elementor,
.pt-elementor-page .elementor-inner-section.pt-info-card,
.pt-elementor-page .elementor-inner-section.pt-mini-card,
.pt-elementor-page .elementor-inner-section.pt-treatment-card,
.pt-elementor-page .elementor-inner-section.pt-contact-card,
.pt-elementor-page .elementor-inner-section.pt-wellness-card,
.pt-elementor-page .elementor-inner-section.pt-price-card,
.pt-elementor-page .elementor-column.pt-price-card,
.pt-elementor-page .elementor-inner-section.pt-wellness-grid > .elementor-container > .elementor-column,
.pt-elementor-page .elementor-column.pt-wellness-item {
  background: linear-gradient(var(--pt-surface), var(--pt-surface)) padding-box,
              var(--pt-metallic) border-box !important;
  border-color: transparent !important;
  color: var(--pt-ink);
  box-shadow: var(--pt-shadow) !important;
}
.pt-elementor-page .elementor-inner-section.pt-wellness-grid {
  background: transparent !important;
  box-shadow: none !important;
}
.pt-elementor-page .elementor-inner-section.pt-wellness-grid > .elementor-container > .elementor-column > .elementor-widget-wrap,
.pt-elementor-page .elementor-column.pt-wellness-item > .elementor-widget-wrap {
  background: transparent !important;
}
.pt-article .entry-content ul, .pt-article .entry-content ol,
.pt-article .entry-content blockquote {
  background: #1e1c17;
  border-color: var(--pt-line) !important;
  border-bottom-color: var(--pt-gold) !important;
}
.pt-article .entry-content blockquote { border-left-color: var(--pt-gold) !important; }
.page-numbers { background: #1b1b1b; }
.page-numbers.current { background: var(--pt-gold); color: #17130c !important; }
.site-footer {
  background: linear-gradient(#070707, #070707) padding-box,
              var(--pt-metallic) border-box !important;
  border-top: 1px solid transparent;
  color: var(--pt-muted);
}
.site-footer a, .site-footer a[href*="cancellation-policy"] { color: var(--pt-gold) !important; }
.pt-footer-bottom { border-top-color: var(--pt-line); }

/* Lima: reserve square cards before images load, then size their contents.
   The absolute inner grid has a definite height; Elementor image wrappers no
   longer depend on a chain of unresolved height:100% declarations. */
.home .pt-el-card-row { width: 100%; }
.home .pt-service-grid > .pt-card,
.home .elementor-column.pt-elementor-home-card {
  display: block !important;
  align-self: start;
  justify-self: stretch;
  width: 100% !important;
  height: auto !important;
  min-width: 0;
  min-height: 0;
  padding: 0 !important;
  border: 1px solid transparent !important;
  border-radius: 0 !important;
  overflow: hidden !important;
  background: linear-gradient(#151515, #151515) padding-box,
              var(--pt-metallic) border-box !important;
  box-shadow: var(--pt-shadow) !important;
  position: relative;
  container-type: inline-size;
}
.home .pt-service-grid > .pt-card::before,
.home .pt-elementor-home-card::before {
  content: "";
  display: block;
  padding-top: 100%;
  pointer-events: none;
}
.home .pt-service-grid > .pt-card::after,
.home .pt-elementor-home-card::after {
  content: "";
  position: absolute;
  inset: auto 0 0;
  height: 3px;
  background: var(--pt-metallic);
  pointer-events: none;
  z-index: 2;
}
.home .pt-card-body,
.home .pt-elementor-home-card > .elementor-widget-wrap,
.home .pt-elementor-home-card > .elementor-column-wrap,
.home .pt-elementor-home-card > .elementor-column-wrap > .elementor-widget-wrap {
  position: absolute !important;
  top: 0; right: 0; bottom: 0; left: 0;
  display: grid !important;
  grid-template-columns: minmax(0, 1fr);
  grid-template-rows: minmax(120px, 1fr) auto auto;
  align-content: stretch;
  gap: 0;
  width: auto !important;
  height: auto !important;
  min-height: 0;
  padding: 0 0 23px !important;
  background: transparent !important;
  border-radius: 0 !important;
}
.home .pt-elementor-home-card > .elementor-column-wrap { display: block !important; padding: 0 !important; }
.home .pt-card-body { grid-template-rows: minmax(120px, 1fr) auto; padding-bottom: 0 !important; }
.home .pt-card-image,
.home .pt-elementor-home-card .elementor-widget-image {
  display: block !important;
  position: relative !important;
  width: 100% !important;
  height: auto !important;
  min-width: 0;
  min-height: 120px;
  max-width: none !important;
  margin: 0 !important;
  padding: 0 !important;
  overflow: hidden;
  visibility: visible !important;
  opacity: 1 !important;
}
.home .pt-elementor-home-card .elementor-widget-image > .elementor-widget-container,
.home .pt-elementor-home-card .elementor-widget-image .elementor-image,
.home .pt-elementor-home-card .elementor-widget-image a {
  position: absolute !important;
  top: 0; right: 0; bottom: 0; left: 0;
  display: block !important;
  width: 100% !important;
  height: 100% !important;
  margin: 0 !important;
  padding: 0 !important;
}
.home .pt-card-image img,
.home .pt-elementor-home-card .elementor-widget-image img {
  position: absolute;
  top: 0; left: 0;
  display: block !important;
  width: 100% !important;
  height: 100% !important;
  max-width: none !important;
  max-height: none !important;
  object-fit: cover;
  object-position: center;
  border-radius: 0;
  margin: 0;
  visibility: visible !important;
  opacity: 1 !important;
}
.home .pt-card-content { padding: 12px 22px 18px; }
.home .pt-card-content h3 { margin: 4px 0 8px; }
.home .pt-card-content a { color: var(--pt-gold) !important; }
.home .pt-card-num { font-size: .8rem; }
.home .pt-elementor-home-card .elementor-widget-heading {
  margin: 0 !important;
  padding: 20px 22px 12px;
}
.home .pt-elementor-home-card h3,
.home .pt-card-content h3 {
  font-size: 1.3rem !important;
  font-size: clamp(1.2rem, 6.2cqi, 1.5rem) !important;
  line-height: 1.2 !important;
}
.home .pt-elementor-home-card .elementor-heading-title { margin: 0; }
.home .pt-elementor-home-card .elementor-heading-title a {
  color: var(--pt-ink) !important;
  font: inherit;
  letter-spacing: inherit;
  text-transform: none;
}
.home .pt-elementor-home-card .elementor-widget-button {
  margin: 0 !important;
  padding: 0 22px;
  text-align: left;
}
.home .pt-elementor-home-card .elementor-button {
  background: transparent !important;
  color: var(--pt-gold) !important;
  box-shadow: none !important;
  border-radius: 0 !important;
  padding: 0 !important;
}
.home .pt-elementor-home-card .elementor-button:hover { color: #f3e2ae !important; }

/* The front-page artwork is a real image, including on existing installations. */
.home .pt-juliette-hero {
  display: block !important;
  width: 100% !important;
  max-width: none !important;
  margin: 0 !important;
  padding: 0 !important;
  border-bottom: 1px solid var(--pt-gold);
  background: #080808;
}
.home .pt-juliette-hero > .elementor-container {
  max-width: none !important;
  width: 100% !important;
}
.home .pt-juliette-hero .elementor-column { width: 100% !important; }
.home .pt-juliette-hero .elementor-widget-wrap,
.home .pt-juliette-hero .elementor-widget,
.home .pt-juliette-hero .elementor-widget-container {
  padding: 0 !important;
  margin: 0 !important;
}
.home .pt-juliette-hero img {
  display: block !important;
  width: 100% !important;
  height: auto !important;
  max-width: none !important;
  max-height: none !important;
  margin: 0 !important;
  border-radius: 0 !important;
}

/* Keep the existing tap-controlled drawer, with the same black/gold palette. */
@media (max-width: 1180px) {
  .site-header {
    background: linear-gradient(#101010, #101010) padding-box,
                var(--pt-metallic) border-box !important;
  }
  .pt-menu-toggle { background: #292319 !important; color: #f3e2ae !important; }
  .pt-menu-overlay { background: rgba(0, 0, 0, .72); }
  #site-navigation.main-navigation {
    background: #111 !important;
    background-color: #111 !important;
    border-left-color: var(--pt-gold) !important;
  }
  #site-navigation .pt-menu { background: #111 !important; }
  #site-navigation .pt-menu > li, #site-navigation .pt-menu > li > a {
    background: #201d17 !important;
    color: #f3e8ce !important;
    border-color: var(--pt-line) !important;
  }
  #site-navigation .pt-menu .sub-menu {
    background: #111 !important;
    border-top-color: var(--pt-line) !important;
  }
  #site-navigation .pt-menu .sub-menu li, #site-navigation .pt-menu .sub-menu a {
    background: #111 !important;
    color: #e1d9c8 !important;
  }
  #site-navigation .pt-menu .sub-menu a:hover { background: #292319 !important; }
  .pt-menu-close { background: var(--pt-gold) !important; color: #17130c !important; }
}

/* Juliette: the image meets the care section directly, with no intro block in between. */
.pt-flourish {
  width: 216px !important;
  height: 24px !important;
  background: transparent url('../images/pure-therapy-logo.png') no-repeat center -140px / 320px auto !important;
  filter: brightness(0) saturate(100%) invert(79%) sepia(27%) saturate(666%) hue-rotate(3deg) brightness(91%) contrast(87%);
}
.home .pt-el-services, .home .pt-service-band { padding-top: 38px !important; }
.home .pt-el-services .elementor-widget-heading:first-child h2 { margin-top: 0; }
.home .pt-el-intro, .home .pt-intro { padding: 48px 0 !important; }
.site-branding { display: block !important; visibility: visible !important; opacity: 1 !important; }
.pt-header-logo { display: block !important; visibility: visible !important; opacity: 1 !important; }
body.home .pt-header-logo, body:not(.home) .pt-header-logo {
  filter: none !important;
}
.pt-juliette-treatment-image img, .pt-juliette-page-images img {
  display: block; width: 100%; height: auto; max-height: 560px; object-fit: contain;
  margin: 0 auto 24px; border-radius: 16px;
}
.pt-source-featured-image:empty, .entry-content p:empty { display: none; }

/* A centered treatment menu, retaining every saved price and package description. */
.pt-juliette-pricing .pt-content-shell { padding-top: 54px; }
.pt-juliette-pricing .pt-article {
  max-width: 920px; background: #080808 !important; border: 1px solid #766038 !important;
  border-radius: 0 !important; box-shadow: none !important;
}
.pt-juliette-pricing .entry-content, .pt-juliette-pricing .elementor-widget,
.pt-juliette-pricing .entry-content [style*="text-align"] { text-align: center !important; }
.pt-juliette-pricing .pt-article-header h1 { font-size: clamp(2.25rem,5vw,3.7rem); }
.pt-juliette-pricing .entry-content > div,
.pt-juliette-pricing .entry-content .elementor,
.pt-juliette-pricing .pt-pricing-grid,
.pt-juliette-pricing .pt-wellness-grid,
.pt-juliette-pricing .pt-price-card,
.pt-juliette-pricing .pt-wellness-card,
.pt-juliette-pricing .pt-wellness-item,
.pt-juliette-pricing .pt-wellness-grid > div,
.pt-juliette-pricing .elementor-inner-section.pt-price-card,
.pt-juliette-pricing .elementor-inner-section.pt-wellness-card,
.pt-juliette-pricing .elementor-column.pt-price-card,
.pt-juliette-pricing .elementor-column.pt-wellness-item,
.pt-juliette-pricing .pt-wellness-grid > .elementor-container > .elementor-column,
.pt-juliette-pricing .elementor-inner-section.pt-wellness-grid > .elementor-container > .elementor-column {
  background: transparent !important; border: 0 !important; border-radius: 0 !important; box-shadow: none !important;
}
.pt-juliette-pricing .pt-pricing-grid,
.pt-juliette-pricing .pt-wellness-grid,
.pt-juliette-pricing .pt-pricing-grid > .elementor-container,
.pt-juliette-pricing .pt-wellness-grid > .elementor-container {
  display: flex !important; flex-direction: column; align-items: stretch; gap: 0 !important;
}
.pt-juliette-pricing .pt-pricing-grid > .elementor-container > .elementor-column,
.pt-juliette-pricing .pt-wellness-grid > .elementor-container > .elementor-column {
  width: 100% !important; flex: 0 0 auto !important; max-width: none !important;
}
.pt-juliette-pricing .pt-price-card,
.pt-juliette-pricing .pt-wellness-grid > div:not(.elementor-container),
.pt-juliette-pricing .elementor-column.pt-wellness-item {
  padding: 28px 0 !important; margin: 0 auto !important; width: 100%;
  border-bottom: 1px solid #53452d !important;
}
.pt-juliette-pricing .elementor-column.pt-price-card > .elementor-widget-wrap,
.pt-juliette-pricing .elementor-column.pt-wellness-item > .elementor-widget-wrap {
  padding: 0 !important; background: transparent !important;
}
.pt-juliette-pricing .entry-content h2,
.pt-juliette-pricing .entry-content h3 {
  font-size: clamp(1.2rem,2.5vw,1.55rem) !important; line-height: 1.4;
  letter-spacing: .08em; text-transform: uppercase; margin: 0 0 14px;
}
.pt-juliette-pricing .entry-content h2 a,
.pt-juliette-pricing .entry-content h3 a { color: #e7d5a5 !important; }
.pt-juliette-pricing .entry-content p { font-size: 1rem; line-height: 1.85; }
.pt-juliette-pricing .pt-wellness-card { padding: 0 !important; }
.pt-juliette-pricing .pt-package-note { margin-top: 36px; }
@media (max-width: 640px) {
  .home .pt-el-services, .home .pt-service-band { padding-top: 28px !important; }
  .pt-juliette-pricing .pt-content-shell { padding-top: 25px; }
  .pt-juliette-pricing .pt-article { padding: 28px 20px; }
}
