@font-face {
  font-family: 'Zenora Lora';
  src: url('../fonts/lora/Lora-Variable.ttf') format('truetype');
  font-style: normal;
  font-weight: 400 700;
  font-display: swap;
}
@font-face {
  font-family: 'Zenora Lora';
  src: url('../fonts/lora/Lora-Italic-Variable.ttf') format('truetype');
  font-style: italic;
  font-weight: 400 700;
  font-display: swap;
}
:root { --font-display: 'Zenora Lora', Georgia, serif; }
/* The old Bodoni hairlines and sub-1 line heights cut into letter forms. */
html body h1, html body h2, html body h3,
html body .section-heading h2, html body .google-reviews__heading h2,
html body .zt-heading h2, html body .zenora-tour h3,
html body .pm-category-copy strong, html body .pm-panel-head h3 {
  font-family: var(--font-display);
  font-weight: 600;
  line-height: 1.2;
  letter-spacing: -.035em;
  overflow: visible;
  overflow-wrap: normal;
  text-wrap: pretty;
}
html body h4 { line-height: 1.4; }
html body .display-italic {
  line-height: 1.24;
  padding: .09em .14em .12em .055em;
  margin-inline: -.055em -.14em;
  -webkit-box-decoration-break: clone;
  box-decoration-break: clone;
}
/* Space for italic overhangs, ascenders and descenders in textured headings. */
html body .proof-item strong,
html body .section--shell .section-heading h2,
html body .visit-card h2,
html body .service-category__heading h2,
html body .offer-band h2,
html body .visit-hub__subheading h2 {
  padding-block: .12em;
  line-height: 1.2;
}
html body .hero--editorial .hero__copy { min-width: 0; max-width: 100%; }
html body .hero--editorial .hero__copy h1 {
  max-width: 100%;
  line-height: 1.13;
  font-size: clamp(3.25rem,5.6vw,6rem);
  margin-bottom: 1.5rem;
  padding-top: .08em;
}
html body .hero__copy h1>span:first-child { line-height: 1.18; }
html body .hero__copy h1 .hero__dynamic-title {
  display: block;
  max-width: calc(100% - .22em);
  width: fit-content;
  min-height: 2.3em;
  padding: .09em .16em .15em .06em;
  margin: -.02em 0 -.1em -.06em;
  line-height: 1.13;
  overflow: visible;
  box-sizing: content-box;
}
html body .hero__copy .lede { width: 100%; max-width: 34rem; white-space: normal; overflow-wrap: break-word; }
/* Let actual text define layout instead of hiding overflow at the viewport. */
body { min-width: 0; }
html body .section-heading>*, html body .zt-heading>*,
html body .zenora-tour article>*, html body .visit-grid>*,
html body .service-directory__grid>*, html body .footer-grid>* { min-width: 0; }
html body .pm-category-copy strong { white-space: normal; padding-block: .1em; }
html body .pm-category { height: auto; }
html body .zenora-tour p { overflow-wrap: break-word; }
html body .visit-card h2 { max-width: 100%; }
html body .google-review-card blockquote { font-weight: 500; line-height: 1.55; }
@media (max-width:48rem) {
  html body .container, html body .container--narrow { width: calc(100% - 2.5rem); max-width: 100%; }
  html body .section-heading, html body .zt-heading { grid-template-columns: minmax(0,1fr); gap: 1.5rem; }
  html body .section-heading h2, html body .zt-heading h2,
  html body .google-reviews__heading h2 { max-width: 100%; font-size: clamp(2rem,8.5vw,3.4rem); line-height: 1.22; }
  html body .zenora-tour h3 { font-size: clamp(1.7rem,6.8vw,2.5rem); line-height: 1.26; }
  /* Original mobile hero composition remains owned by site.css. */
  html body .hero--editorial .hero__copy h1 {
    font-size: clamp(2.6rem,11vw,3.45rem);
    line-height: 1.16;
    margin: 0;
  }
  html body .hero__copy h1 .hero__dynamic-title {
    min-height: 1em;
    line-height: 1.16;
  }
  html body .zt-arrival-copy, html body .zt-nails-copy, html body .zt-spa-copy { width: 100%; }
  html body .pm-explorer[data-view=overview] .pm-category-copy strong { font-size: clamp(1.4rem,5.8vw,1.8rem); line-height: 1.25; }
  html body .pm-panel-head h3 { line-height: 1.25; overflow-wrap: anywhere; }
  html body .visit-grid { grid-template-columns: minmax(0,1fr); }
  html body .visit-card__inner { padding: 1.4rem; }
  html body .visit-card__details a { font-size: .95rem; }
  html body .proof-rail__inner { grid-template-columns: repeat(2,minmax(0,1fr)); }
  html body .proof-item { min-width: 0; }
  html body .proof-item strong { font-size: 1.45rem; line-height: 1.25; overflow-wrap: anywhere; }
  html body .zt-end>.button { max-width: 100%; white-space: normal; }
}
@media (max-width:22rem) {
  html body .container, html body .container--narrow { width: calc(100% - 2rem); }
  html body .zt-last-look { gap: 1rem; }
  html body .zt-last-note p { font-size: 1.15rem; }
  html body .zt-manicure,html body .zt-pedicure { grid-column: 1/-1; margin-top: .7rem; }
  html body .zt-manicure .zt-photo-frame,html body .zt-pedicure .zt-photo-frame { aspect-ratio: .9; }
}
/* Keep metallic motion, with no near-background brown bands erasing strokes. */
:root {
  --gradient-gold-metal: linear-gradient(112deg,#e2bb76 0%,#f9df9b 12%,#fff1c8 27%,#e1b66b 41%,#fff4d6 51%,#f0cd86 61%,#e0b96b 78%,#f8df9b 91%,#e2bb76 100%);
}
html body .google-reviews__heading h2 { width: 100%; max-width: 100%; padding: .12em .16em; }
html body .google-reviews__heading .display-italic { margin-inline: 0; padding-inline: .04em .1em; }
/* Each run owns its metallic mask. A parent mask must not crop italic descendants. */
html body #visit-heading {
  background: none;
  color: #ffe2a3;
  -webkit-text-fill-color: currentColor;
  filter: none;
  animation: none;
  padding: 0 .12em 0 0;
  line-height: 1.3;
  overflow: visible;
}
html body #visit-heading .visit-heading__lead,
html body #visit-heading .visit-heading__accent {
  display: inline-block;
  max-width: 100%;
  box-sizing: border-box;
  vertical-align: baseline;
  line-height: 1.35;
  padding: .12em .12em .25em .08em;
  margin: 0;
  overflow: visible;
  background-image: var(--gradient-gold-metal);
  background-size: 220% 100%;
  background-clip: text;
  -webkit-background-clip: text;
  color: transparent;
  -webkit-text-fill-color: transparent;
  animation: gold-metal-shift 9s ease-in-out infinite;
  text-shadow: none;
  filter: none;
}
html body #visit-heading .visit-heading__lead { padding-bottom: 0; }
html body #visit-heading .visit-heading__accent { white-space: nowrap; }
@media(prefers-reduced-motion:reduce) {
  html body #visit-heading .visit-heading__lead,
  html body #visit-heading .visit-heading__accent { animation: none; }
}
