/* The Nail Block — luxury editorial brand layer */
@font-face {
  font-family: "Great Vibes";
  src: url("../fonts/GreatVibes-Regular.ttf") format("truetype");
  font-display: swap;
  font-style: normal;
  font-weight: 400;
}

:root {
  --nb-ivory: #fbf8f1;
  --nb-paper: #f4efe5;
  --nb-ink: #171715;
  --nb-muted: #686258;
  --nb-gold: #b7924f;
  --nb-gold-light: #d8c18f;
  --nb-line: rgba(183, 146, 79, .34);
  --nb-serif: "Cormorant Garamond", Georgia, serif;
  --nb-script: "Great Vibes", "Love Script", "Brush Script MT", cursive;
  --nb-sans: "Manrope", Arial, sans-serif;
}

html { scroll-behavior: auto; overflow-x: clip; }
body.jd-body {
  --jd-primary: var(--nb-gold);
  --jd-gold: var(--nb-gold);
  --jd-gold-bright: var(--nb-gold-light);
  --jd-dark: var(--nb-ink);
  background: var(--nb-ivory);
  background-image: none !important;
  background-attachment: scroll !important;
  color: var(--nb-ink);
  font-family: var(--nb-sans);
  overflow-x: clip;
}
body.jd-body::before {
  content: "";
  position: fixed;
  inset: 0;
  z-index: -1;
  pointer-events: none;
  background: url("../photos/nail-block/marble-gold-bg.webp") center top / cover no-repeat;
  opacity: .08;
  will-change: auto;
  transform: translateZ(0);
}

.jd-container { width: min(100% - 3rem, 1360px); margin-inline: auto; }
.jd-section { padding-block: clamp(5.5rem, 10vw, 10rem); }
.jd-display,
.jd-page-hero h1,
.svc-hero h1,
.jd-footer__brand {
  font-family: var(--nb-serif) !important;
  letter-spacing: -.035em;
  line-height: .96;
  text-wrap: balance;
}
.jd-display em,
.jd-page-hero h1 em,
.svc-hero h1 em {
  color: var(--nb-gold) !important;
  font-family: var(--nb-script) !important;
  font-weight: 400;
  letter-spacing: 0;
}
.jd-eyebrow {
  color: var(--nb-gold) !important;
  font-family: var(--nb-sans);
  font-size: .72rem;
  font-weight: 700;
  letter-spacing: .19em;
}
p { text-wrap: pretty; }
a, button { transition: color .24s ease, background .24s ease, border-color .24s ease, transform .24s ease, opacity .24s ease; }
a:focus-visible, button:focus-visible { outline: 2px solid var(--nb-gold); outline-offset: 4px; }

.jd-header {
  background: rgba(251, 248, 241, .97) !important;
  border-bottom: 1px solid var(--nb-line) !important;
  backdrop-filter: none;
  -webkit-backdrop-filter: none;
}
.jd-header__bar { min-height: 84px; }
.jd-logo { gap: .85rem; }
.jd-logo img {
  width: 66px !important;
  height: 66px !important;
  border-radius: 0;
  object-fit: contain;
  object-position: center;
  mix-blend-mode: normal;
}
.jd-logo__text {
  color: var(--nb-ink) !important;
  font-family: var(--nb-serif) !important;
  font-size: 1.4rem !important;
  font-weight: 600;
  letter-spacing: .01em !important;
}
.jd-nav a { color: var(--nb-ink) !important; font-size: .79rem; letter-spacing: .08em; }
.jd-nav a::after { background: var(--nb-gold) !important; }
.jd-nav a:hover, .jd-nav a.is-active { color: var(--nb-gold) !important; }

.jd-btn,
.button-primary {
  border-radius: 0 !important;
  border: 1px solid var(--nb-ink) !important;
  background: var(--nb-ink) !important;
  color: #fff !important;
  font-family: var(--nb-sans);
  font-size: .76rem;
  font-weight: 700;
  letter-spacing: .11em;
  text-transform: uppercase;
  box-shadow: none !important;
}
.jd-btn:hover, .button-primary:hover { border-color: var(--nb-gold) !important; background: var(--nb-gold) !important; color: #fff !important; transform: translateY(-2px); }
.jd-btn:active, .button-primary:active { transform: translateY(0) scale(.98); }
.jd-btn--ghost { background: transparent !important; color: var(--nb-ink) !important; border-color: var(--nb-gold) !important; }
.jd-btn__icon { border-radius: 0 !important; }

.jd-hero { min-height: min(840px, calc(100dvh - 84px)); background: var(--nb-ivory) !important; }
.jd-hero::before {
  content: "";
  position: absolute;
  inset: 0 48% 0 0;
  background: url("../photos/nail-block/marble-gold-bg.webp") center / cover no-repeat;
  opacity: .42;
}
.jd-hero__scene--salon { object-position: center; filter: none; }
.jd-hero__content { position: relative; }
.jd-hero h1 { color: #fff !important; font-size: clamp(4rem, 7vw, 7.4rem) !important; max-width: 12ch !important; }
.jd-hero__title-love,
.jd-hero__title-nails { display: block !important; white-space: nowrap; }
.jd-hero__title-nails { font-family: var(--nb-serif) !important; font-style: normal !important; }
.jd-hero__actions .jd-btn { background: var(--nb-ink) !important; color: #fff !important; border-color: var(--nb-ink) !important; }
.jd-hero__actions .jd-btn:first-child,
.jd-hero__actions .jd-btn--light { background: rgba(23,23,21,.86) !important; color: #fff !important; -webkit-text-fill-color: #fff !important; }
.jd-hero__actions .jd-btn:hover { background: var(--nb-gold) !important; border-color: var(--nb-gold) !important; color: #fff !important; }
.jd-hero p { color: var(--nb-muted) !important; max-width: 52ch; }

.jd-brand-interlude { background: var(--nb-ink) !important; border-block: 1px solid rgba(216,193,143,.3); }
.jd-brand-interlude__line { background: var(--nb-gold) !important; }
.jd-brand-interlude__logo img {
  filter: none;
  mix-blend-mode: normal;
  border: 1px solid rgba(216,193,143,.5);
}

.jd-about,
.jd-overview,
.jd-care-edit,
.jd-menu-home,
.vv-invite,
.jd-team-section,
.jd-gallery-section,
.jd-connect { background-color: transparent !important; }
.jd-about__frame,
.jd-overview-new__image,
.jd-care-edit__media,
.vv-invite__media { border-radius: 0 !important; box-shadow: none !important; }
.jd-about__frame--main { outline: 1px solid var(--nb-gold); outline-offset: 8px; }

.jd-overview-new__item,
.jd-menu-home__card,
.jd-care-edit__item,
.jd-why-boutique__item,
.svc-card {
  border-radius: 0 !important;
  border-color: var(--nb-line) !important;
  box-shadow: none !important;
  background: rgba(255,255,255,.62) !important;
}
.jd-menu-home__card:hover,
.jd-care-edit__item:hover,
.svc-card:hover { transform: translateY(-5px); border-color: var(--nb-gold) !important; }

.jd-why-boutique,
.jd-cta,
.svc-cta,
.jd-section--deep { background: var(--nb-ink) !important; color: #fff; }
.jd-why-boutique h2,
.jd-why-boutique h3,
.jd-cta h2,
.svc-cta h2,
.jd-section--deep h2 { color: #fff !important; }

/* Explicit contrast protection for every dark editorial section. */
body.jd-body .jd-why-boutique .jd-display,
body.jd-body .jd-why-boutique h3,
body.jd-body .jd-why-boutique p,
body.jd-body .jd-why-boutique__lead,
body.jd-body .jd-why-boutique__quote p,
body.jd-body .jd-cta h2,
body.jd-body .jd-cta p,
body.jd-body .svc-cta h2,
body.jd-body .svc-cta p,
body.jd-body .jd-section--deep h2,
body.jd-body .jd-section--deep h3,
body.jd-body .jd-section--deep p {
  color: #fff !important;
  -webkit-text-fill-color: #fff !important;
  opacity: 1 !important;
}
body.jd-body .jd-why-boutique .jd-eyebrow,
body.jd-body .jd-why-boutique .jd-why-point__num,
body.jd-body .jd-why-boutique__quote span,
body.jd-body .jd-cta .jd-eyebrow,
body.jd-body .svc-cta .jd-eyebrow,
body.jd-body .jd-section--deep .jd-eyebrow {
  color: var(--nb-gold-light) !important;
  -webkit-text-fill-color: var(--nb-gold-light) !important;
  opacity: 1 !important;
}

.jd-gallery-grid,
.jd-gallery-section__grid { gap: clamp(.55rem, 1vw, 1rem) !important; }
.jd-gallery-grid img,
.jd-gallery-section img,
.isotope-item img { border-radius: 0 !important; filter: none; }
.jd-gallery-grid a:hover img,
.jd-gallery-section a:hover img { transform: scale(1.025); filter: none; }

.jd-page-hero { min-height: 62vh; background: var(--nb-ink) !important; }
.jd-page-hero::after { background: linear-gradient(90deg, rgba(23,23,21,.88), rgba(23,23,21,.16)) !important; }
.jd-page-hero h1, .jd-page-hero p { color: #fff !important; }

.svc-hero--editorial { background: var(--nb-ivory) !important; }
.svc-hero__portrait,
.svc-hero__secondary,
.svc-cat-hero__media { border-radius: 0 !important; }
.svc-tabs button { border-radius: 0 !important; }
.svc-tabs button:hover, .svc-tabs button.is-active { background: var(--nb-ink) !important; color: #fff !important; border-color: var(--nb-ink) !important; }

.jd-footer { background: var(--nb-ink) !important; border-top: 1px solid var(--nb-gold); color: rgba(255,255,255,.74) !important; }
.jd-footer h4, .jd-footer__brand { color: #fff !important; }
.jd-footer a { color: rgba(255,255,255,.74) !important; }
.jd-footer a:hover { color: var(--nb-gold-light) !important; }
.jd-footer__bottom { border-color: rgba(216,193,143,.24) !important; }

.jd-menu-toggle { color: var(--nb-ink) !important; }
.jd-menu-toggle span,
.jd-menu-toggle span::before,
.jd-menu-toggle span::after { background: currentColor !important; }
.jd-drawer__panel { background: var(--nb-ink) !important; color: #fff; }
.jd-drawer__panel a, .jd-drawer__head-title, .jd-drawer__close { color: #fff !important; }
.jd-drawer__panel a:hover { color: var(--nb-gold-light) !important; }

@media (max-width: 991px) {
  .jd-container { width: min(100% - 2rem, 760px); }
  .jd-header__bar { min-height: 72px; }
  .jd-logo img { width: 48px !important; height: 48px !important; }
  .jd-logo__text { font-size: 1.18rem !important; }
  .jd-hero { min-height: auto; padding-block: 6.5rem 4rem; }
  .jd-hero::before { inset: 0; opacity: .28; }
  .jd-hero h1 { font-size: clamp(3.35rem, 11vw, 5.6rem) !important; max-width: 10ch !important; }
  .jd-hero__title-love, .jd-hero__title-nails { white-space: normal; }
}

@media (max-width: 575px) {
  .jd-container { width: min(100% - 1.5rem, 34rem); }
  .jd-section { padding-block: 4.5rem; }
  .jd-logo__text { display: block !important; max-width: 9rem; white-space: normal; line-height: 1; }
  .jd-header__cta .jd-btn { display: none; }
  .jd-hero h1 { max-width: 9ch; }
  .jd-page-hero { min-height: 70dvh; }
  .jd-page-hero h1 { font-size: clamp(3.2rem, 15vw, 5rem) !important; }
  .jd-actions { align-items: stretch; }
  .jd-actions .jd-btn { width: 100%; justify-content: center; }
  .floating-button { display: grid !important; grid-template-columns: 1fr 1fr; }
}

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

/* Home portfolio — high-contrast editorial spread. */
body.jd-body #gallery.jd-gallery-section--ritual {
  position: relative;
  background: var(--nb-paper) !important;
  color: var(--nb-ink) !important;
  padding-top: clamp(5.5rem, 9vw, 9rem) !important;
}
body.jd-body #gallery.jd-gallery-section--ritual::before {
  width: clamp(5rem, 12vw, 12rem);
  left: auto;
  right: 5%;
  opacity: .42;
}
body.jd-body #gallery .jd-gallery-section__bg {
  opacity: .07 !important;
  mix-blend-mode: multiply !important;
}
body.jd-body #gallery .jd-gallery-section__bg::after {
  background: linear-gradient(90deg, rgba(244,239,229,.98) 0%, rgba(244,239,229,.91) 58%, rgba(244,239,229,.8) 100%) !important;
}
body.jd-body #gallery .jd-gallery-section__head {
  position: relative;
  grid-template-columns: minmax(0, 1.08fr) minmax(19rem, .72fr);
  align-items: end;
  padding: clamp(1.75rem, 3vw, 3rem) 0 clamp(2rem, 4vw, 3.5rem);
  border-top: 1px solid var(--nb-gold);
  border-bottom: 1px solid rgba(23,23,21,.18);
}
body.jd-body #gallery .jd-gallery-section__head::after {
  content: "THE NAIL BLOCK / 01";
  position: absolute;
  top: -1.8rem;
  right: 0;
  color: var(--nb-muted);
  font: 700 .61rem/1 var(--nb-sans);
  letter-spacing: .18em;
}
body.jd-body #gallery .jd-gallery-section__head .jd-eyebrow {
  color: var(--nb-gold) !important;
  -webkit-text-fill-color: var(--nb-gold) !important;
}
body.jd-body #gallery .jd-gallery-section__head .jd-display {
  color: var(--nb-ink) !important;
  -webkit-text-fill-color: var(--nb-ink) !important;
  text-shadow: none !important;
  max-width: 9ch;
}
body.jd-body #gallery .jd-gallery-section__head .jd-display em {
  color: var(--nb-gold) !important;
  -webkit-text-fill-color: var(--nb-gold) !important;
}
body.jd-body #gallery .jd-gallery-section__lead {
  color: #514c44 !important;
  -webkit-text-fill-color: #514c44 !important;
  font-weight: 500;
}
body.jd-body #gallery .jd-gallery-section__services {
  color: var(--nb-ink) !important;
  -webkit-text-fill-color: var(--nb-ink) !important;
  border-color: var(--nb-gold) !important;
}
body.jd-body #gallery .jd-gallery-mosaic {
  margin-top: clamp(2.5rem, 5vw, 4.5rem);
  border-radius: 0 !important;
  border-color: var(--nb-line) !important;
  background: rgba(251,248,241,.72) !important;
}

/* Connect — dark brand panel with protected, readable copy. */
body.jd-body #connect.jd-connect {
  background: var(--nb-ivory) !important;
  padding-top: clamp(4rem, 7vw, 7rem) !important;
}
body.jd-body #connect .jd-connect__bg { opacity: .12 !important; }
body.jd-body #connect.jd-connect .jd-connect__bg::after {
  background: linear-gradient(110deg, rgba(23,23,21,.99), rgba(23,23,21,.94)) !important;
}
body.jd-body #connect .jd-connect__shell {
  position: relative;
  overflow: hidden;
  padding: clamp(3rem, 6vw, 6.5rem) !important;
  border: 1px solid var(--nb-gold) !important;
  border-radius: 0 !important;
  background:
    radial-gradient(circle at 88% 15%, rgba(183,146,79,.19), transparent 28rem),
    var(--nb-ink) !important;
  box-shadow: 0 2rem 5rem rgba(67,52,30,.16) !important;
}
body.jd-body #connect .jd-connect__shell::before {
  content: "NB";
  position: absolute;
  right: -1rem;
  bottom: -3rem;
  color: rgba(216,193,143,.055);
  font: 500 clamp(10rem, 22vw, 22rem)/.7 var(--nb-serif);
  pointer-events: none;
}
body.jd-body #connect .jd-connect__layout {
  position: relative;
  z-index: 1;
  grid-template-columns: minmax(18rem, .8fr) minmax(28rem, 1.2fr);
  gap: clamp(3rem, 8vw, 8rem);
  align-items: center;
}
body.jd-body #connect .jd-connect__copy .jd-eyebrow {
  color: var(--nb-gold-light) !important;
  -webkit-text-fill-color: var(--nb-gold-light) !important;
}
body.jd-body #connect.jd-connect .jd-connect__copy .jd-display {
  color: #fff !important;
  -webkit-text-fill-color: #fff !important;
  max-width: 8ch;
  font-size: clamp(3.2rem, 6vw, 6.5rem);
  line-height: .88;
  text-shadow: none !important;
}
body.jd-body #connect.jd-connect .jd-connect__copy > p {
  color: rgba(255,255,255,.78) !important;
  -webkit-text-fill-color: rgba(255,255,255,.78) !important;
  max-width: 40ch;
  font-weight: 500;
}
body.jd-body #connect.jd-connect .jd-connect__copy > .jd-eyebrow {
  color: var(--nb-gold-light) !important;
  -webkit-text-fill-color: var(--nb-gold-light) !important;
  font-weight: 700;
}
body.jd-body #connect.jd-connect .jd-connect__copy .brand {
  color: var(--nb-gold-light) !important;
  -webkit-text-fill-color: var(--nb-gold-light) !important;
}
body.jd-body #connect.jd-connect .jd-connect__meta a {
  color: #fff !important;
  -webkit-text-fill-color: #fff !important;
}
body.jd-body #connect .jd-connect__grid {
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 1rem;
}
body.jd-body #connect.jd-connect .jd-connect-card {
  min-height: 8.5rem;
  color: var(--nb-ink) !important;
  background: var(--nb-ivory) !important;
  border: 1px solid rgba(216,193,143,.56) !important;
  border-radius: 0 !important;
  box-shadow: none !important;
}
body.jd-body #connect.jd-connect .jd-connect-card:hover {
  transform: translateY(-4px);
  background: #fff !important;
  border-color: var(--nb-gold) !important;
}
body.jd-body #connect.jd-connect .jd-connect-card__name,
body.jd-body #connect.jd-connect .jd-connect-card__handle,
body.jd-body #connect.jd-connect .jd-connect-card span {
  color: var(--nb-ink) !important;
  -webkit-text-fill-color: var(--nb-ink) !important;
}
body.jd-body #connect .jd-connect-card__icon,
body.jd-body #connect .jd-connect-card__arrow {
  border-color: var(--nb-gold) !important;
  background: #fff !important;
  color: var(--nb-ink) !important;
}

@media (max-width: 900px) {
  body.jd-body #gallery .jd-gallery-section__head,
  body.jd-body #connect .jd-connect__layout {
    grid-template-columns: 1fr;
  }
  body.jd-body #gallery .jd-gallery-section__services { grid-column: 1; margin-top: 0; }
  body.jd-body #connect .jd-connect__grid { grid-template-columns: 1fr 1fr; }
}

@media (max-width: 575px) {
  body.jd-body #gallery .jd-gallery-section__head::after { display: none; }
  body.jd-body #gallery .jd-gallery-section__head .jd-display { font-size: clamp(3.4rem, 17vw, 5rem); }
  body.jd-body #connect .jd-connect__shell { padding: 2.25rem 1.25rem !important; }
  body.jd-body #connect .jd-connect__grid { grid-template-columns: 1fr; }
  body.jd-body #connect.jd-connect .jd-connect__copy .jd-display { font-size: clamp(3.2rem, 17vw, 4.8rem); }
}

/* Why us — asymmetric editorial composition with reliable dark contrast. */
body.jd-body #why-us.jd-why-boutique {
  position: relative;
  background:
    radial-gradient(circle at 14% 32%, rgba(183,146,79,.13), transparent 27rem),
    var(--nb-ink) !important;
}
body.jd-body #why-us .jd-why-boutique__head {
  padding-bottom: clamp(2rem, 4vw, 3.5rem);
  border-bottom: 1px solid rgba(216,193,143,.32);
}
body.jd-body #why-us .jd-why-boutique__head .jd-display {
  max-width: 14ch;
  font-size: clamp(3rem, 5vw, 5.6rem);
}
body.jd-body #why-us .jd-why-boutique__lead {
  color: rgba(255,255,255,.74) !important;
  -webkit-text-fill-color: rgba(255,255,255,.74) !important;
  font-weight: 500;
}
body.jd-body #why-us .jd-why-boutique__stage {
  grid-template-columns: minmax(0, 1.04fr) minmax(24rem, .96fr);
  gap: clamp(2rem, 5vw, 5rem);
  align-items: start;
}
body.jd-body #why-us .jd-why-boutique__gallery {
  grid-template-columns: 1.12fr .88fr;
  gap: 1rem;
}
body.jd-body #why-us .jd-why-boutique__frame {
  border: 1px solid rgba(216,193,143,.45);
  border-radius: 0;
  box-shadow: none;
  background: #242421;
}
body.jd-body #why-us .jd-why-boutique__frame--main {
  min-height: clamp(31rem, 46vw, 45rem);
}
body.jd-body #why-us .jd-why-boutique__frame--side {
  min-height: clamp(16rem, 23vw, 22rem);
}
body.jd-body #why-us .jd-why-boutique__frame img {
  filter: none;
}
body.jd-body #why-us .jd-why-boutique__frame figcaption {
  left: 1rem;
  bottom: 1rem;
  border: 1px solid rgba(255,255,255,.35);
  border-radius: 0;
  background: rgba(23,23,21,.76);
  color: #fff !important;
  backdrop-filter: none;
}
body.jd-body #why-us .jd-why-boutique__quote {
  min-height: 12rem;
  padding: clamp(1.5rem, 3vw, 2.5rem);
  border: 1px solid var(--nb-gold);
  border-radius: 0;
  background: var(--nb-ivory) !important;
  box-shadow: none;
}
body.jd-body #why-us .jd-why-boutique__quote p {
  color: var(--nb-ink) !important;
  -webkit-text-fill-color: var(--nb-ink) !important;
  font-size: clamp(1.5rem, 2.1vw, 2.15rem);
  line-height: 1.2;
}
body.jd-body #why-us .jd-why-boutique__quote span {
  color: var(--nb-gold) !important;
  -webkit-text-fill-color: var(--nb-gold) !important;
}
body.jd-body #why-us .jd-why-boutique__points {
  padding: 0;
  border-top: 1px solid rgba(216,193,143,.38);
}
body.jd-body #why-us .jd-why-point,
body.jd-body #why-us .jd-why-point:first-child {
  padding: clamp(1.35rem, 2.2vw, 2rem) clamp(1rem, 2vw, 1.5rem);
  border: 0;
  border-bottom: 1px solid rgba(216,193,143,.28);
  background: transparent !important;
  box-shadow: none !important;
}
body.jd-body #why-us .jd-why-point:hover {
  background: rgba(255,255,255,.045) !important;
}
body.jd-body #why-us .jd-why-point__num {
  color: var(--nb-gold-light) !important;
  -webkit-text-fill-color: var(--nb-gold-light) !important;
  background: none !important;
}
body.jd-body #why-us .jd-why-point h3 {
  color: #fff !important;
  -webkit-text-fill-color: #fff !important;
}
body.jd-body #why-us .jd-why-point p {
  color: rgba(255,255,255,.72) !important;
  -webkit-text-fill-color: rgba(255,255,255,.72) !important;
  line-height: 1.65;
}
body.jd-body #why-us .jd-why-boutique__points .jd-btn {
  margin-top: 2rem;
  background: var(--nb-gold) !important;
  border-color: var(--nb-gold) !important;
  color: var(--nb-ink) !important;
}
body.jd-body #why-us .jd-why-boutique__points .jd-btn:hover {
  background: #fff !important;
  border-color: #fff !important;
}

@media (max-width: 900px) {
  body.jd-body #why-us .jd-why-boutique__stage { grid-template-columns: 1fr; }
  body.jd-body #why-us .jd-why-boutique__frame--main { min-height: 34rem; }
}

@media (max-width: 560px) {
  body.jd-body #why-us .jd-why-boutique__gallery { grid-template-columns: 1fr; }
  body.jd-body #why-us .jd-why-boutique__frame--main,
  body.jd-body #why-us .jd-why-boutique__frame--side { min-height: 24rem; aspect-ratio: 4 / 5; }
  body.jd-body #why-us .jd-why-boutique__quote { grid-column: 1; }
}

body.jd-body #contact.jd-section--deep .jd-services__head .jd-display,
body.jd-body #contact.jd-section--deep .jd-services__head h2,
body.jd-body #contact.jd-section--deep .jd-services__head h2.jd-display {
  color: #faf8f4 !important;
  -webkit-text-fill-color: #faf8f4 !important;
  text-shadow: none !important;
}
body.jd-body #contact.jd-section--deep .jd-services__head > p {
  color: rgba(250, 248, 244, .78) !important;
  -webkit-text-fill-color: rgba(250, 248, 244, .78) !important;
}
body.jd-body #contact.jd-section--deep .jd-eyebrow {
  color: var(--nb-gold-light) !important;
  -webkit-text-fill-color: var(--nb-gold-light) !important;
}

/* Contact cards sit on a light surface inside a dark section. */
body.jd-body #contact .jd-contact__card {
  background: var(--nb-ivory) !important;
  border: 1px solid rgba(216,193,143,.55) !important;
  color: var(--nb-ink) !important;
  box-shadow: none !important;
}
body.jd-body #contact .jd-contact__card h2,
body.jd-body #contact .jd-contact__card h3 {
  color: var(--nb-ink) !important;
  -webkit-text-fill-color: var(--nb-ink) !important;
  text-shadow: none !important;
}
body.jd-body #contact .jd-contact__card p,
body.jd-body #contact .jd-contact__card li,
body.jd-body #contact .jd-contact__card #business-hour li,
body.jd-body #contact .jd-contact__card a:not(.jd-btn) {
  color: #575149 !important;
  -webkit-text-fill-color: #575149 !important;
}
body.jd-body #contact .jd-contact__card .jd-contact__label,
body.jd-body #contact .jd-contact__card #business-hour li.is-today,
body.jd-body #contact .jd-contact__card #business-hour li.today {
  color: var(--nb-gold) !important;
  -webkit-text-fill-color: var(--nb-gold) !important;
}
body.jd-body #contact .jd-contact__card .jd-btn {
  background: var(--nb-ink) !important;
  border-color: var(--nb-ink) !important;
  color: #fff !important;
  -webkit-text-fill-color: #fff !important;
}
body.jd-body #contact .jd-contact__map {
  border-color: rgba(216,193,143,.55) !important;
  box-shadow: none !important;
}

/* Footer contrast lock — resilient against the legacy light-footer rules. */
body.jd-body .jd-footer,
body.jd-body .jd-footer__bottom {
  background: var(--nb-ink) !important;
  color: rgba(255,255,255,.78) !important;
}
body.jd-body .jd-footer__brand {
  color: var(--nb-gold-light) !important;
  -webkit-text-fill-color: var(--nb-gold-light) !important;
}
body.jd-body .jd-footer h2,
body.jd-body .jd-footer h3,
body.jd-body .jd-footer h4 {
  color: #fff !important;
  -webkit-text-fill-color: #fff !important;
}
body.jd-body .jd-footer p,
body.jd-body .jd-footer .rights,
body.jd-body .jd-footer__bottom p {
  color: rgba(255,255,255,.72) !important;
  -webkit-text-fill-color: rgba(255,255,255,.72) !important;
}
body.jd-body .jd-footer a,
body.jd-body .jd-footer__links a,
body.jd-body .jd-footer .rights a {
  color: rgba(255,255,255,.88) !important;
  -webkit-text-fill-color: rgba(255,255,255,.88) !important;
}
body.jd-body .jd-footer a:hover,
body.jd-body .jd-footer__links a:hover {
  color: var(--nb-gold-light) !important;
  -webkit-text-fill-color: var(--nb-gold-light) !important;
}
body.jd-body .jd-footer__bottom {
  border-top-color: rgba(216,193,143,.3) !important;
}
body.jd-body .jd-footer .online-booking,
body.jd-body .jd-footer .booking-link {
  padding: 0 !important;
  border: 0 !important;
  background: transparent !important;
  color: rgba(255,255,255,.88) !important;
  -webkit-text-fill-color: rgba(255,255,255,.88) !important;
  box-shadow: none !important;
}
body.jd-body .jd-footer .online-booking:hover,
body.jd-body .jd-footer .booking-link:hover {
  color: var(--nb-gold-light) !important;
  -webkit-text-fill-color: var(--nb-gold-light) !important;
}
body.jd-body .jd-hero .btn-call-us,
body.jd-body .jd-hero .jd-btn--ghost.btn-call-us {
  color: var(--nb-ink) !important;
  -webkit-text-fill-color: var(--nb-ink) !important;
  background: rgba(251,248,241,.92) !important;
  border-color: var(--nb-gold) !important;
}

/* ---------- Scroll performance ---------- */
body.jd-body,
body.jd-body::before,
body.jd-body::after,
body.jd-body *,
body.jd-body *::before,
body.jd-body *::after {
  background-attachment: scroll !important;
}

.jd-header__bar {
  backdrop-filter: none !important;
  -webkit-backdrop-filter: none !important;
  background: rgba(251, 248, 241, .97) !important;
}

body.jd-body .jd-hero__scene {
  will-change: auto;
  content: unset !important;
  filter: none !important;
}

body.jd-body .jd-about-home__details img,
body.jd-body #why-us .jd-why-boutique__frame img,
body.jd-body .jd-experience__media img,
body.jd-body .jd-gallery-section img {
  filter: none !important;
}

body.jd-body #gallery .jd-gallery-section__bg {
  mix-blend-mode: normal !important;
}

body.jd-body .jd-about-home__hero .jd-about-home__pan {
  will-change: auto !important;
  filter: none !important;
}
body.jd-body .jd-about-home__hero.is-visible .jd-about-home__pan--reset {
  display: none !important;
  animation: none !important;
}

.jd-hero__scenes.is-motion-paused .jd-hero__scene,
.jd-about-home__hero.is-motion-paused .jd-about-home__pan,
[data-about-gallery].is-motion-paused .jd-about__frame,
[data-about-gallery].is-motion-paused img,
[data-overview-gallery].is-motion-paused .jd-about__frame,
[data-overview-gallery].is-motion-paused img {
  animation-play-state: paused !important;
}

.jd-footer,
.jd-connect {
  content-visibility: auto;
  contain-intrinsic-size: auto 520px;
}

body.jd-body .mnb-reviews-section {
  background: var(--nb-paper) !important;
  padding-block: clamp(5.5rem, 10vw, 10rem);
}
body.jd-body .mnb-reviews-section .jd-reviews__head {
  text-align: left;
  max-width: 40rem;
  margin-bottom: 2.25rem;
}
body.jd-body .mnb-reviews-section .jd-reviews__rating {
  justify-content: flex-start;
  margin-top: .85rem;
  color: var(--nb-muted);
}
body.jd-body .mnb-reviews-section .jd-reviews__score {
  color: var(--nb-ink);
  font-weight: 700;
}
body.jd-body #mnb-reviews-grid,
body.jd-body .mnb-reviews-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 1rem;
}
body.jd-body .mnb-review-card {
  border-radius: 0;
  background: rgba(255,255,255,.78);
  border: 1px solid var(--nb-line);
  box-shadow: none;
}
body.jd-body .mnb-review-card:hover {
  transform: translateY(-3px);
  border-color: var(--nb-gold);
  box-shadow: none;
}
body.jd-body .mnb-review-name,
body.jd-body .mnb-review-text {
  color: var(--nb-ink);
}
body.jd-body .mnb-review-tag {
  background: var(--nb-ink);
  color: #fff;
  border-radius: 0;
}
body.jd-body .mnb-review-note {
  background: transparent;
  border: 1px solid var(--nb-line);
  border-radius: 0;
  color: var(--nb-muted);
}
body.jd-body .mnb-reviews-section .jd-gallery-section__action {
  margin-top: 2.25rem;
}
@media (max-width: 1100px) {
  body.jd-body #mnb-reviews-grid,
  body.jd-body .mnb-reviews-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 640px) {
  body.jd-body #mnb-reviews-grid,
  body.jd-body .mnb-reviews-grid { grid-template-columns: 1fr; }
}

/* ---------- Overview page: match homepage type + palette ---------- */
body.jd-page-overview {
  background: var(--nb-ivory) !important;
  color: var(--nb-ink);
  font-family: var(--nb-sans);
}
body.jd-page-overview .jd-eyebrow {
  color: var(--nb-gold) !important;
  -webkit-text-fill-color: var(--nb-gold) !important;
  font-family: var(--nb-sans) !important;
}
body.jd-page-overview .jd-display,
body.jd-page-overview h1,
body.jd-page-overview h2.jd-display {
  font-family: var(--nb-serif) !important;
  color: var(--nb-ink) !important;
  -webkit-text-fill-color: var(--nb-ink) !important;
}
body.jd-page-overview .jd-display em,
body.jd-page-overview h1 em,
body.jd-page-overview h2 em {
  color: var(--nb-gold) !important;
  -webkit-text-fill-color: var(--nb-gold) !important;
  font-family: var(--nb-script) !important;
  font-weight: 400;
  font-style: italic;
}
body.jd-page-overview p {
  color: var(--nb-muted);
}

body.jd-page-overview .jd-overview-hero {
  margin: 0 !important;
  border-radius: 0 !important;
  background: var(--nb-ink) !important;
  min-height: 62vh;
}
body.jd-page-overview .jd-overview-hero .jd-page-hero__bg img {
  filter: none !important;
  opacity: .88 !important;
}
body.jd-page-overview .jd-overview-hero .jd-page-hero__bg::after {
  background: linear-gradient(90deg, rgba(23,23,21,.88), rgba(23,23,21,.16)) !important;
}
body.jd-page-overview .jd-overview-hero h1,
body.jd-page-overview .jd-overview-hero h1.jd-display {
  color: #faf8f4 !important;
  -webkit-text-fill-color: #faf8f4 !important;
  font-family: var(--nb-serif) !important;
}
body.jd-page-overview .jd-overview-hero h1 em {
  color: var(--nb-gold) !important;
  -webkit-text-fill-color: var(--nb-gold) !important;
  font-family: var(--nb-script) !important;
}
body.jd-page-overview .jd-overview-hero .jd-eyebrow {
  color: var(--nb-gold-light) !important;
  -webkit-text-fill-color: var(--nb-gold-light) !important;
}
body.jd-page-overview .jd-overview-hero .jd-page-hero__content > p:last-child {
  color: rgba(250,248,244,.82) !important;
  -webkit-text-fill-color: rgba(250,248,244,.82) !important;
}

body.jd-page-overview .jd-brand-interlude {
  background: var(--nb-ink) !important;
}
body.jd-page-overview .jd-brand-interlude__line {
  background: var(--nb-gold) !important;
}

body.jd-page-overview #story,
body.jd-page-overview #overview,
body.jd-page-overview #come-enjoy,
body.jd-page-overview #values,
body.jd-page-overview #team {
  background: var(--nb-ivory) !important;
  background-image: none !important;
  color: var(--nb-ink) !important;
}
body.jd-page-overview #overview {
  background: var(--nb-paper) !important;
}
body.jd-page-overview #story .jd-about__stat strong,
body.jd-page-overview #story .jd-about__copy h2,
body.jd-page-overview #overview .jd-overview-new__head h2,
body.jd-page-overview #come-enjoy .jd-enjoy__copy h2 {
  color: var(--nb-ink) !important;
  -webkit-text-fill-color: var(--nb-ink) !important;
}
body.jd-page-overview #story .jd-display em,
body.jd-page-overview #overview .jd-overview-new__head .jd-display em,
body.jd-page-overview #come-enjoy .jd-display em {
  color: var(--nb-gold) !important;
  -webkit-text-fill-color: var(--nb-gold) !important;
}

body.jd-page-overview #overview .jd-experience {
  background: var(--nb-ink) !important;
  border-radius: 0 !important;
}
body.jd-page-overview #overview .jd-experience h3,
body.jd-page-overview #overview .jd-overview-new__ritual h3 {
  color: #faf8f4 !important;
  -webkit-text-fill-color: #faf8f4 !important;
  font-family: var(--nb-serif) !important;
}
body.jd-page-overview #overview .jd-overview-new__ritual {
  background: rgba(255,255,255,.72) !important;
  border: 1px solid var(--nb-line) !important;
  border-radius: 0 !important;
  color: var(--nb-ink) !important;
  box-shadow: none !important;
}
body.jd-page-overview #overview .jd-overview-new__ritual h3 {
  color: var(--nb-ink) !important;
  -webkit-text-fill-color: var(--nb-ink) !important;
}
body.jd-page-overview #overview .jd-overview-new__ritual p,
body.jd-page-overview #overview .jd-overview-new__ritual span {
  color: var(--nb-muted) !important;
}

body.jd-page-overview #values .jd-eyebrow {
  color: var(--nb-gold) !important;
  -webkit-text-fill-color: var(--nb-gold) !important;
}
body.jd-page-overview #values .jd-display,
body.jd-page-overview #values .jd-services__head .jd-display,
body.jd-page-overview #values .jd-services__head h2,
body.jd-page-overview #values .jd-value-card h3 {
  color: var(--nb-ink) !important;
  -webkit-text-fill-color: var(--nb-ink) !important;
  font-family: var(--nb-serif) !important;
}
body.jd-page-overview #values .jd-services__head > p,
body.jd-page-overview #values .jd-value-card p {
  color: var(--nb-muted) !important;
  -webkit-text-fill-color: var(--nb-muted) !important;
}
body.jd-page-overview #values .jd-values {
  gap: 1rem;
  border: 0;
  background: transparent;
  border-radius: 0;
  overflow: visible;
}
body.jd-page-overview #values .jd-value-card {
  background: rgba(255,255,255,.78) !important;
  border: 1px solid var(--nb-line) !important;
  border-radius: 0 !important;
  box-shadow: none !important;
  color: var(--nb-ink) !important;
}
body.jd-page-overview #values .jd-value-card__media img {
  filter: none !important;
}

body.jd-page-overview #come-enjoy .jd-enjoy__quote {
  background: var(--nb-ink) !important;
  border: 1px solid var(--nb-gold) !important;
  border-radius: 0 !important;
}
body.jd-page-overview #come-enjoy .jd-enjoy__quote p,
body.jd-page-overview #come-enjoy .jd-enjoy__quote span {
  color: #faf8f4 !important;
}
body.jd-page-overview #come-enjoy .jd-enjoy__media {
  border-radius: 0 !important;
  box-shadow: none !important;
  border: 1px solid var(--nb-line) !important;
}

body.jd-page-overview #team {
  background: var(--nb-paper) !important;
  color: var(--nb-ink) !important;
}
body.jd-page-overview #team .jd-services__head .jd-display,
body.jd-page-overview #team .jd-services__head h2,
body.jd-page-overview #team .jd-team-card__name {
  color: var(--nb-ink) !important;
  -webkit-text-fill-color: var(--nb-ink) !important;
  font-family: var(--nb-serif) !important;
}
body.jd-page-overview #team .jd-services__head > p,
body.jd-page-overview #team .jd-team-card__bio {
  color: var(--nb-muted) !important;
  -webkit-text-fill-color: var(--nb-muted) !important;
}
body.jd-page-overview #team .jd-services__head .jd-eyebrow,
body.jd-page-overview #team .jd-team-card__role,
body.jd-page-overview #team .jd-team-card__cta {
  color: var(--nb-gold) !important;
  -webkit-text-fill-color: var(--nb-gold) !important;
}
body.jd-page-overview #team .jd-team-card {
  background: rgba(255,255,255,.78) !important;
  color: var(--nb-ink) !important;
  border: 1px solid var(--nb-line) !important;
  border-radius: 0 !important;
  box-shadow: none !important;
}
body.jd-page-overview #team .jd-team-card__media {
  border-color: var(--nb-gold) !important;
  box-shadow: none !important;
  border-radius: 0 !important;
}

body.jd-page-overview .jd-cta {
  background: var(--nb-ink) !important;
}
body.jd-page-overview .jd-cta .jd-display {
  color: #fff !important;
  -webkit-text-fill-color: #fff !important;
  font-family: var(--nb-serif) !important;
}
body.jd-page-overview .jd-cta p {
  color: rgba(255,255,255,.78) !important;
}
body.jd-page-overview .jd-btn,
body.jd-page-overview .button-primary {
  border-radius: 0 !important;
}

body.jd-page-services .svc-menu #menu-container,
body.jd-page-services .svc-menu #menu-container.blanc-menu-grid,
body.jd-page-services #menu-container {
  display: block !important;
  grid-template-columns: none !important;
  width: 100% !important;
}
body.jd-page-services .svc-menu-board {
  display: grid !important;
  grid-template-columns: minmax(18rem, 34%) minmax(0, 1fr) !important;
  width: 100%;
}
body.jd-page-services .svc-menu-item {
  display: grid !important;
  grid-template-columns: minmax(0, 1fr) auto !important;
}
