/* ============================================================
   masseuses.css — Masseuses Page Stylesheet
   Mobile-first | Cross-browser (IE11+) | Vendor prefixed
   Depends on: style.css (CSS variables, reset, shared components)
   ============================================================ */

/* ── KEYFRAMES ── */
@-webkit-keyframes msFadeUp {
  from { opacity:0; -webkit-transform:translateY(28px); transform:translateY(28px); }
  to   { opacity:1; -webkit-transform:translateY(0);    transform:translateY(0); }
}
@keyframes msFadeUp {
  from { opacity:0; transform:translateY(28px); }
  to   { opacity:1; transform:translateY(0); }
}

@-webkit-keyframes msSlideRight {
  from { opacity:0; -webkit-transform:translateX(-40px); transform:translateX(-40px); }
  to   { opacity:1; -webkit-transform:translateX(0);     transform:translateX(0); }
}
@keyframes msSlideRight {
  from { opacity:0; transform:translateX(-40px); }
  to   { opacity:1; transform:translateX(0); }
}

@-webkit-keyframes msSlideLeft {
  from { opacity:0; -webkit-transform:translateX(40px); transform:translateX(40px); }
  to   { opacity:1; -webkit-transform:translateX(0);    transform:translateX(0); }
}
@keyframes msSlideLeft {
  from { opacity:0; transform:translateX(40px); }
  to   { opacity:1; transform:translateX(0); }
}

@-webkit-keyframes galleryImgFade {
  from { opacity:0; -webkit-transform:scale(1.04); transform:scale(1.04); }
  to   { opacity:1; -webkit-transform:scale(1);    transform:scale(1); }
}
@keyframes galleryImgFade {
  from { opacity:0; transform:scale(1.04); }
  to   { opacity:1; transform:scale(1); }
}

/* ============================================================
   PAGE HERO
   ============================================================ */
.ms-hero {
  min-height: 62vh;
  position: relative;
  overflow: hidden;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-align-items: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-justify-content: center;
      -ms-flex-pack: center;
          justify-content: center;
  padding: 10rem 1.4rem 6rem;
  background: -webkit-linear-gradient(155deg, #1a053e 0%, var(--deep) 50%, #2a0b3c 100%);
  background:         linear-gradient(155deg, #1a053e 0%, var(--deep) 50%, #2a0b3c 100%);
}

/* Grid overlay */
.ms-hero::before {
  content:'';
  position:absolute; top:0; right:0; bottom:0; left:0;
  background-image:
    -webkit-linear-gradient(rgba(232,121,154,.03) 1px, transparent 1px),
    -webkit-linear-gradient(90deg, rgba(232,121,154,.03) 1px, transparent 1px);
  background-image:
            linear-gradient(rgba(232,121,154,.03) 1px, transparent 1px),
            linear-gradient(90deg, rgba(232,121,154,.03) 1px, transparent 1px);
  background-size: 60px 60px;
  pointer-events: none;
}

/* Noise texture */
.ms-hero-noise {
  position:absolute; top:0; right:0; bottom:0; left:0;
  background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 200 200' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.04'/%3E%3C/svg%3E");
  background-size: 200px 200px;
  pointer-events: none;
  opacity: .5;
}

/* Orbs */
.ms-hero-orb {
  position:absolute; border-radius:50%;
  -webkit-filter:blur(100px); filter:blur(100px);
  pointer-events:none;
}
.ms-hero-orb.a {
  width:600px; height:600px; top:-160px; left:50%;
  -webkit-transform:translateX(-60%); -ms-transform:translateX(-60%); transform:translateX(-60%);
  background: -webkit-radial-gradient(circle, rgba(232,121,154,.15), transparent 60%);
  background:         radial-gradient(circle, rgba(232,121,154,.15), transparent 60%);
}
.ms-hero-orb.b {
  width:350px; height:350px; bottom:-80px; right:8%;
  background: -webkit-radial-gradient(circle, rgba(201,149,110,.12), transparent 60%);
  background:         radial-gradient(circle, rgba(201,149,110,.12), transparent 60%);
}
.ms-hero-orb.c {
  width:250px; height:250px; top:30%; left:5%;
  background: -webkit-radial-gradient(circle, rgba(155,50,180,.1), transparent 65%);
  background:         radial-gradient(circle, rgba(155,50,180,.1), transparent 65%);
}

/* Inner content */
.ms-hero-inner {
  text-align:center;
  position:relative; z-index:2;
  display:-webkit-flex; display:-ms-flexbox; display:flex;
  -webkit-flex-direction:column; -ms-flex-direction:column; flex-direction:column;
  -webkit-align-items:center; -ms-flex-align:center; align-items:center;
}

/* Eyebrow */
.ms-hero-eyebrow {
  display:-webkit-flex; display:-ms-flexbox; display:flex;
  -webkit-align-items:center; -ms-flex-align:center; align-items:center;
  gap:.7rem;
  font-size:.72rem; letter-spacing:.34em; text-transform:uppercase;
  color:var(--rose); font-weight:400; margin-bottom:1.6rem;
  opacity:0; -webkit-animation:msFadeUp .8s .1s ease both; animation:msFadeUp .8s .1s ease both;
}
.ms-hero-line {
  display:inline-block; width:28px; height:1px; background:var(--rose);
}

/* Title */
.ms-hero-title {
  font-family:'Cormorant Garamond',serif;
  font-size: clamp(3rem,8vw,6rem);
  font-weight:300; color:var(--text);
  line-height:1.02; letter-spacing:-.015em;
  margin-bottom:1.4rem;
  opacity:0; -webkit-animation:msFadeUp .8s .28s ease both; animation:msFadeUp .8s .28s ease both;
}
.ms-hero-title em { font-style:italic; color:var(--rose3); }

/* Description */
.ms-hero-desc {
  font-size:clamp(.9rem,2vw,1.06rem);
  color:var(--muted); font-weight:300; line-height:1.85;
  max-width:580px; margin-bottom:2.2rem;
  opacity:0; -webkit-animation:msFadeUp .8s .45s ease both; animation:msFadeUp .8s .45s ease both;
}

/* Decorative divider */
.ms-hero-divider {
  display:-webkit-flex; display:-ms-flexbox; display:flex;
  -webkit-align-items:center; -ms-flex-align:center; align-items:center;
  gap:.8rem; margin-bottom:2.4rem; width:100%; max-width:280px;
  opacity:0; -webkit-animation:msFadeUp .8s .55s ease both; animation:msFadeUp .8s .55s ease both;
}
.ms-hero-div-line {
  -webkit-flex:1; -ms-flex:1; flex:1;
  height:1px; background:var(--border);
}
.ms-hero-div-diamond {
  width:7px; height:7px;
  border:1px solid var(--rose3);
  -webkit-transform:rotate(45deg); -ms-transform:rotate(45deg); transform:rotate(45deg);
  background:rgba(232,121,154,.15);
}

/* Quick nav pills */
.ms-quicknav {
  display:-webkit-flex; display:-ms-flexbox; display:flex;
  -webkit-flex-wrap:wrap; -ms-flex-wrap:wrap; flex-wrap:wrap;
  -webkit-justify-content:center; -ms-flex-pack:center; justify-content:center;
  gap:.5rem;
  opacity:0; -webkit-animation:msFadeUp .8s .65s ease both; animation:msFadeUp .8s .65s ease both;
}
.ms-qn-item {
  font-family:'Jost',sans-serif;
  font-size:.68rem; letter-spacing:.14em; text-transform:uppercase;
  color:var(--muted); text-decoration:none;
  border:1px solid var(--border); border-radius:20px;
  padding:.35rem 1rem;
  -webkit-transition:all .25s; transition:all .25s;
}
.ms-qn-item:hover {
  border-color:var(--rose3); color:var(--rose3);
  background:rgba(232,121,154,.06);
}

/* Breadcrumb */
.breadcrumb {
  position:absolute; top:72px; left:1.4rem;
  display:-webkit-flex; display:-ms-flexbox; display:flex;
  -webkit-align-items:center; -ms-flex-align:center; align-items:center;
  gap:.5rem; font-size:.72rem; color:var(--muted); z-index:10;
}
.breadcrumb a { color:var(--muted); -webkit-transition:color .2s; transition:color .2s; }
.breadcrumb a:hover { color:var(--rose3); }
.breadcrumb span { color:var(--rose); font-size:.55rem; }
.breadcrumb strong { color:var(--rose3); font-weight:400; }

/* ============================================================
   STICKY MASSEUSE NAV
   ============================================================ */
.ms-sticky-nav {
  position: -webkit-sticky;
  position: sticky;
  top: 62px; z-index:100;
  background:rgba(24,7,32,.96);
  -webkit-backdrop-filter:blur(20px); backdrop-filter:blur(20px);
  border-bottom:1px solid var(--border);
  padding:0 1.4rem;
  -webkit-transform:translateY(-100%); -ms-transform:translateY(-100%); transform:translateY(-100%);
  opacity:0; pointer-events:none;
  -webkit-transition:-webkit-transform .35s ease, opacity .35s ease;
          transition:transform .35s ease, opacity .35s ease;
}
.ms-sticky-nav.visible {
  -webkit-transform:translateY(0); -ms-transform:translateY(0); transform:translateY(0);
  opacity:1; pointer-events:all;
}
.ms-sticky-inner {
  max-width:1200px; margin:0 auto;
  display:-webkit-flex; display:-ms-flexbox; display:flex;
  gap:.3rem; overflow-x:auto; scrollbar-width:none;
  -webkit-overflow-scrolling:touch; padding:.7rem 0;
}
.ms-sticky-inner::-webkit-scrollbar { display:none; }
.ms-sticky-link {
  -webkit-flex-shrink:0; -ms-flex-negative:0; flex-shrink:0;
  font-family:'Jost',sans-serif;
  font-size:.66rem; letter-spacing:.12em; text-transform:uppercase;
  color:var(--muted); text-decoration:none;
  padding:.3rem .9rem; border-radius:20px;
  border:1px solid transparent;
  -webkit-transition:all .2s; transition:all .2s;
  white-space:nowrap;
}
.ms-sticky-link:hover { color:var(--rose3); border-color:rgba(232,121,154,.25); }
.ms-sticky-link.active {
  color:var(--rose3); border-color:var(--rose3);
  background:rgba(232,121,154,.07);
}

/* ============================================================
   PROFILE SECTIONS
   ============================================================ */
.ms-profile {
  padding: 5rem 1.4rem;
  background: var(--deep2);
  position:relative; overflow:hidden;
}

/* Alternating dark background */
.ms-profile-alt { background: var(--deep3); }

/* Subtle section separator */
.ms-profile::before {
  content:'';
  position:absolute; left:0; right:0; top:0;
  height:1px;
  background: -webkit-linear-gradient(90deg, transparent, var(--border), transparent);
  background:         linear-gradient(90deg, transparent, var(--border), transparent);
}

.ms-profile-inner {
  max-width:1200px; margin:0 auto;
  display:-webkit-flex; display:-ms-flexbox; display:flex;
  -webkit-flex-direction:column; -ms-flex-direction:column; flex-direction:column;
  gap:3rem;
}

/* Desktop: side by side */
@media (min-width:900px) {
  .ms-profile-inner {
    display:-webkit-grid; display:-ms-grid; display:grid;
    -ms-grid-columns:1fr 4rem 1fr;
    grid-template-columns:1fr 1fr;
    gap:5rem;
    -webkit-align-items:center; -ms-flex-align:center; align-items:center;
  }
}

/* ============================================================
   PHOTO GALLERY
   ============================================================ */
.ms-gallery {
  display:-webkit-flex; display:-ms-flexbox; display:flex;
  -webkit-flex-direction:column; -ms-flex-direction:column; flex-direction:column;
  gap:1rem;
}

/* Main image */
.ms-gallery-main {
  position:relative;
  width:100%; height:0; padding-bottom:120%;  /* 5:6 portrait ratio */
  overflow:hidden;
  border-radius:4px;
  border:1px solid var(--border);
  background:var(--deep3);
}

/* aspect-ratio support for modern browsers */
@supports (aspect-ratio:5/6) {
  .ms-gallery-main {
    height:auto; padding-bottom:0;
    aspect-ratio:5/6;
  }
}

@media (min-width:900px) {
  .ms-gallery-main { padding-bottom:115%; }
  @supports (aspect-ratio:5/6) {
    .ms-gallery-main { padding-bottom:0; aspect-ratio:5/6; }
  }
}

/* Curtain reveal */
.ms-gallery-curtain {
  position:absolute; top:0; right:0; bottom:0; left:0; z-index:10;
  background:var(--deep);
  -webkit-transform:scaleY(1); -ms-transform:scaleY(1); transform:scaleY(1);
  -webkit-transform-origin:top; -ms-transform-origin:top; transform-origin:top;
  -webkit-transition:-webkit-transform .95s cubic-bezier(.77,0,.18,1);
          transition:transform .95s cubic-bezier(.77,0,.18,1);
}

/* Gallery images */
.ms-gallery-img {
  position:absolute; top:0; left:0;
  width:100%; height:100%;
  -o-object-fit:cover; object-fit:cover;
  -o-object-position:center top; object-position:center top;
  display:block;
  opacity:0;
  -webkit-transition:opacity .55s ease; transition:opacity .55s ease;
}

@supports (aspect-ratio:5/6) {
  .ms-gallery-img {
    position:absolute; top:0; left:0;
    width:100%; height:100%;
  }
}

.ms-gallery-img.active {
  opacity:1;
  -webkit-animation:galleryImgFade .55s ease both;
          animation:galleryImgFade .55s ease both;
}

/* Bottom gradient */
.ms-gallery-overlay {
  position:absolute; bottom:0; left:0; right:0; height:45%;
  background:-webkit-linear-gradient(top, transparent, rgba(18,5,28,.85));
  background:        linear-gradient(to bottom, transparent, rgba(18,5,28,.85));
  z-index:2; pointer-events:none;
}

/* Prev / Next buttons */
.ms-gallery-prev,
.ms-gallery-next {
  position:absolute; top:50%;
  -webkit-transform:translateY(-50%); -ms-transform:translateY(-50%); transform:translateY(-50%);
  z-index:5; background:rgba(24,7,32,.7);
  -webkit-backdrop-filter:blur(6px); backdrop-filter:blur(6px);
  border:1px solid var(--border); color:var(--text);
  width:38px; height:38px; border-radius:50%;
  display:-webkit-flex; display:-ms-flexbox; display:flex;
  -webkit-align-items:center; -ms-flex-align:center; align-items:center;
  -webkit-justify-content:center; -ms-flex-pack:center; justify-content:center;
  cursor:pointer; font-size:1rem;
  -webkit-transition:all .25s; transition:all .25s;
  -webkit-tap-highlight-color:transparent;
  opacity:0;
  -webkit-transition:opacity .3s, background .25s, border-color .25s;
          transition:opacity .3s, background .25s, border-color .25s;
}
.ms-gallery-main:hover .ms-gallery-prev,
.ms-gallery-main:hover .ms-gallery-next { opacity:1; }
.ms-gallery-prev:hover, .ms-gallery-next:hover {
  background:rgba(232,121,154,.25); border-color:var(--rose3); color:var(--rose3);
}
.ms-gallery-prev { left:.8rem; }
.ms-gallery-next { right:.8rem; }

/* Slide counter */
.ms-gallery-counter {
  position:absolute; bottom:.75rem; left:50%;
  -webkit-transform:translateX(-50%); -ms-transform:translateX(-50%); transform:translateX(-50%);
  z-index:5;
  font-size:.6rem; letter-spacing:.15em; color:var(--text);
  background:rgba(24,7,32,.7); -webkit-backdrop-filter:blur(6px); backdrop-filter:blur(6px);
  border:1px solid var(--border); padding:.22rem .7rem; border-radius:20px;
}

/* Copyright */
.ms-gallery-copy {
  position:absolute; bottom:.6rem; right:.8rem; z-index:5;
  font-size:.54rem; color:rgba(245,230,239,.35); letter-spacing:.06em;
}

/* Thumbnails */
.ms-gallery-thumbs {
  display:-webkit-grid; display:-ms-grid; display:grid;
  -ms-grid-columns:1fr .8rem 1fr .8rem 1fr .8rem 1fr;
  grid-template-columns:repeat(4,1fr);
  gap:.8rem;
}
.ms-thumb {
  aspect-ratio:1/1; overflow:hidden; border-radius:3px;
  border:2px solid transparent; cursor:pointer;
  -webkit-transition:border-color .25s, opacity .25s;
          transition:border-color .25s, opacity .25s;
  opacity:.55;
  position:relative;
}
.ms-thumb img {
  width:100%; height:100%;
  -o-object-fit:cover; object-fit:cover;
  -o-object-position:center top; object-position:center top;
  display:block;
  -webkit-transition:-webkit-transform .3s; transition:transform .3s;
}
.ms-thumb:hover { opacity:.85; }
.ms-thumb:hover img { -webkit-transform:scale(1.06); -ms-transform:scale(1.06); transform:scale(1.06); }
.ms-thumb.active {
  border-color:var(--rose); opacity:1;
}

/* ============================================================
   BIO CONTENT
   ============================================================ */
.ms-bio {
  display:-webkit-flex; display:-ms-flexbox; display:flex;
  -webkit-flex-direction:column; -ms-flex-direction:column; flex-direction:column;
}

/* Reveal states */
.ms-reveal-right {
  opacity:0;
  -webkit-transform:translateX(40px); -ms-transform:translateX(40px); transform:translateX(40px);
  -webkit-transition:opacity .8s ease, -webkit-transform .8s cubic-bezier(.22,.61,.36,1);
          transition:opacity .8s ease, transform .8s cubic-bezier(.22,.61,.36,1);
}
.ms-reveal-left {
  opacity:0;
  -webkit-transform:translateX(-40px); -ms-transform:translateX(-40px); transform:translateX(-40px);
  -webkit-transition:opacity .8s ease, -webkit-transform .8s cubic-bezier(.22,.61,.36,1);
          transition:opacity .8s ease, transform .8s cubic-bezier(.22,.61,.36,1);
}
.ms-reveal-right.in-view,
.ms-reveal-left.in-view {
  opacity:1;
  -webkit-transform:translateX(0); -ms-transform:translateX(0); transform:translateX(0);
}

/* Number */
.ms-bio-num {
  font-family:'Cormorant Garamond',serif;
  font-size:.85rem; color:var(--rose); font-weight:300;
  letter-spacing:.16em; margin-bottom:.5rem; opacity:.6;
}

/* Name */
.ms-bio-name {
  font-family:'Cormorant Garamond',serif;
  font-size:clamp(2.6rem,5vw,3.8rem);
  font-weight:300; color:var(--text);
  line-height:1; letter-spacing:-.01em;
  margin-bottom:.7rem;
}
.ms-bio-name em { font-style:italic; color:var(--rose3); }

/* Underline — animated width on scroll */
.ms-bio-underline {
  width:0; height:1px;
  background: -webkit-linear-gradient(90deg, var(--rose), var(--rose2));
  background:         linear-gradient(90deg, var(--rose), var(--rose2));
  margin-bottom:1.8rem;
  -webkit-transition:width .8s .2s cubic-bezier(.22,.61,.36,1);
          transition:width .8s .2s cubic-bezier(.22,.61,.36,1);
  opacity:.75;
}

/* Stats row */
.ms-stats {
  display:-webkit-flex; display:-ms-flexbox; display:flex;
  -webkit-flex-wrap:wrap; -ms-flex-wrap:wrap; flex-wrap:wrap;
  -webkit-align-items:center; -ms-flex-align:center; align-items:center;
  gap:.8rem 0; margin-bottom:1.8rem;
}
.ms-stat {
  display:-webkit-flex; display:-ms-flexbox; display:flex;
  -webkit-flex-direction:column; -ms-flex-direction:column; flex-direction:column;
  -webkit-align-items:flex-start; -ms-flex-align:start; align-items:flex-start;
  padding:0 1.2rem;
}
.ms-stat:first-child { padding-left:0; }
.ms-stat-val {
  font-family:'Cormorant Garamond',serif;
  font-size:1.35rem; font-weight:300; color:var(--text); line-height:1;
  margin-bottom:.2rem; white-space:nowrap;
}
.ms-stat-key {
  font-size:.6rem; letter-spacing:.14em; color:var(--muted);
  text-transform:uppercase; font-weight:300;
}
.ms-stat-div {
  width:1px; height:28px;
  background:var(--border);
  -webkit-flex-shrink:0; -ms-flex-negative:0; flex-shrink:0;
}

/* Availability */
.ms-avail-dot {
  display:-webkit-flex; display:-ms-flexbox; display:flex;
  -webkit-align-items:center; -ms-flex-align:center; align-items:center;
  gap:.45rem;
}
.ms-dot-pulse {
  display:inline-block;
  width:7px; height:7px; border-radius:50%;
  background:#4ade80;
  -webkit-box-shadow:0 0 7px rgba(74,222,128,.8);
          box-shadow:0 0 7px rgba(74,222,128,.8);
  -webkit-animation:pulse-dot 2s ease-in-out infinite;
          animation:pulse-dot 2s ease-in-out infinite;
  -webkit-flex-shrink:0; -ms-flex-negative:0; flex-shrink:0;
}

/* Bio paragraphs */
.ms-bio-text {
  margin-bottom:1.8rem;
}
.ms-bio-text p {
  font-size:.97rem; color:var(--muted);
  font-weight:300; line-height:1.9;
  margin-bottom:.9rem;
}
.ms-bio-text p:last-child { margin-bottom:0; }

/* Specialties label */
.ms-bio-spec-label {
  font-size:.6rem; letter-spacing:.26em; text-transform:uppercase;
  color:var(--rose); font-weight:400;
  margin-bottom:.75rem;
  display:-webkit-flex; display:-ms-flexbox; display:flex;
  -webkit-align-items:center; -ms-flex-align:center; align-items:center;
  gap:.55rem;
}
.ms-bio-spec-label::after {
  content:''; -webkit-flex:1; -ms-flex:1; flex:1;
  height:1px; background:var(--border);
}

/* Tags */
.ms-bio-tags {
  display:-webkit-flex; display:-ms-flexbox; display:flex;
  -webkit-flex-wrap:wrap; -ms-flex-wrap:wrap; flex-wrap:wrap;
  gap:.4rem; margin-bottom:1.8rem;
}
.ms-tag {
  font-size:.66rem; letter-spacing:.08em; text-transform:uppercase;
  padding:.3rem .82rem; border-radius:20px;
  border:1px solid rgba(232,121,154,.28);
  color:var(--rose3); background:rgba(232,121,154,.06);
  -webkit-transition:all .2s; transition:all .2s;
}
.ms-tag:hover { border-color:rgba(232,121,154,.5); background:rgba(232,121,154,.12); }
.ms-tag.gold {
  border-color:rgba(201,149,110,.32);
  color:var(--gold2); background:rgba(201,149,110,.07);
}
.ms-tag.gold:hover { border-color:rgba(201,149,110,.58); background:rgba(201,149,110,.14); }

/* Recommended for */
.ms-recommended {
  background:rgba(232,121,154,.04);
  border:1px solid rgba(232,121,154,.14);
  border-left:2px solid var(--rose);
  border-radius:0 3px 3px 0;
  padding:1rem 1.2rem;
  margin-bottom:2rem;
}
.ms-rec-label {
  font-size:.6rem; letter-spacing:.2em; text-transform:uppercase;
  color:var(--rose); font-weight:400; margin-bottom:.45rem;
}
.ms-rec-text {
  font-size:.88rem; color:var(--muted); font-weight:300; line-height:1.75;
}

/* CTA row */
.ms-bio-cta {
  display:-webkit-flex; display:-ms-flexbox; display:flex;
  gap:1rem; -webkit-flex-wrap:wrap; -ms-flex-wrap:wrap; flex-wrap:wrap;
}
.ms-book-btn { -webkit-flex:1; -ms-flex:1; flex:1; min-width:140px; }
.ms-wa-btn   { min-width:120px; }

/* ============================================================
   MOBILE HAMBURGER (shared with services.css pattern)
   ============================================================ */
.nav-hamburger {
  display:-webkit-flex; display:-ms-flexbox; display:flex;
  -webkit-flex-direction:column; -ms-flex-direction:column; flex-direction:column;
  gap:5px; cursor:pointer; padding:.3rem;
  border:none; background:transparent; z-index:201;
  -webkit-tap-highlight-color:transparent;
}
.nav-hamburger span {
  display:block; width:22px; height:1px;
  background:var(--text); -webkit-transition:all .3s; transition:all .3s;
}
.nav-hamburger.open span:nth-child(1) {
  -webkit-transform:rotate(45deg) translate(4px,4px);
      -ms-transform:rotate(45deg) translate(4px,4px);
          transform:rotate(45deg) translate(4px,4px);
}
.nav-hamburger.open span:nth-child(2) { opacity:0; }
.nav-hamburger.open span:nth-child(3) {
  -webkit-transform:rotate(-45deg) translate(4px,-4px);
      -ms-transform:rotate(-45deg) translate(4px,-4px);
          transform:rotate(-45deg) translate(4px,-4px);
}
@media (min-width:900px) { .nav-hamburger { display:none; } }

.mobile-menu {
  position:fixed; top:0; right:0; bottom:0; left:0; z-index:199;
  background:rgba(18,5,28,.97);
  -webkit-backdrop-filter:blur(20px); backdrop-filter:blur(20px);
  display:-webkit-flex; display:-ms-flexbox; display:flex;
  -webkit-flex-direction:column; -ms-flex-direction:column; flex-direction:column;
  -webkit-align-items:center; -ms-flex-align:center; align-items:center;
  -webkit-justify-content:center; -ms-flex-pack:center; justify-content:center;
  gap:1.8rem;
  opacity:0; pointer-events:none;
  -webkit-transition:opacity .3s; transition:opacity .3s;
}
.mobile-menu.open { opacity:1; pointer-events:all; }
.mobile-menu a {
  font-family:'Cormorant Garamond',serif;
  font-size:2rem; font-weight:300; color:var(--text);
  text-decoration:none; letter-spacing:.06em;
  -webkit-transition:color .2s; transition:color .2s;
}
.mobile-menu a:hover { color:var(--rose3); }
.mobile-menu .mm-phone {
  font-family:'Tenor Sans',sans-serif;
  font-size:1.1rem; color:var(--rose3); margin-top:.5rem;
}
@media (min-width:900px) { .mobile-menu { display:none; } }

/* ============================================================
   JOIN TEAM STRIP
   ============================================================ */
.ms-join {
  background:var(--deep);
  border-top:1px solid var(--border);
  border-bottom:1px solid var(--border);
  padding:3.5rem 1.4rem;
}
.ms-join-inner {
  max-width:1200px; margin:0 auto;
  display:-webkit-flex; display:-ms-flexbox; display:flex;
  -webkit-flex-direction:column; -ms-flex-direction:column; flex-direction:column;
  gap:1.8rem;
}
@media (min-width:768px) {
  .ms-join-inner {
    -webkit-flex-direction:row; -ms-flex-direction:row; flex-direction:row;
    -webkit-align-items:center; -ms-flex-align:center; align-items:center;
    -webkit-justify-content:space-between; -ms-flex-pack:justify; justify-content:space-between;
  }
}
.ms-join-cta { -webkit-flex-shrink:0; -ms-flex-negative:0; flex-shrink:0; }

/* ============================================================
   CTA SECTION
   ============================================================ */
.ms-cta {
  padding:6rem 1.4rem;
  text-align:center; position:relative; overflow:hidden;
  background:
    -webkit-linear-gradient(135deg, rgba(24,7,32,.92), rgba(50,15,74,.88), rgba(24,7,32,.92));
  background:
            linear-gradient(135deg, rgba(24,7,32,.92), rgba(50,15,74,.88), rgba(24,7,32,.92));
  border-top:1px solid var(--border);
}
.ms-cta-orb {
  position:absolute; top:50%; left:50%;
  -webkit-transform:translate(-50%,-50%);
      -ms-transform:translate(-50%,-50%);
          transform:translate(-50%,-50%);
  width:600px; height:300px; border-radius:50%;
  background:-webkit-radial-gradient(ellipse, rgba(232,121,154,.15), transparent 65%);
  background:        radial-gradient(ellipse, rgba(232,121,154,.15), transparent 65%);
  pointer-events:none;
}
.ms-cta-sub {
  font-size:1.02rem; color:var(--muted); font-weight:300;
  max-width:500px; margin:.8rem auto 2.4rem; line-height:1.85;
  position:relative; z-index:2;
}
.ms-cta-btns {
  display:-webkit-flex; display:-ms-flexbox; display:flex;
  gap:1rem; -webkit-justify-content:center; -ms-flex-pack:center; justify-content:center;
  -webkit-flex-wrap:wrap; -ms-flex-wrap:wrap; flex-wrap:wrap;
  position:relative; z-index:2;
}

/* ============================================================
   ALTERNATING LAYOUT — gallery order on alternate profiles
   Mobile: gallery always on top; Desktop: alternates side
   ============================================================ */
@media (min-width:900px) {
  /* Alternate profiles: bio first (left), gallery second (right) */
  .ms-profile-alt .ms-bio    { -ms-grid-column:1; grid-column:1; -ms-grid-row:1; grid-row:1; }
  .ms-profile-alt .ms-gallery { -ms-grid-column:2; grid-column:2; -ms-grid-row:1; grid-row:1; }
}

/* Mobile: gallery always appears before bio */
@media (max-width:899px) {
  .ms-profile-alt .ms-gallery { -webkit-order:-1; -ms-flex-order:-1; order:-1; }
}

/* ============================================================
   REDUCED MOTION
   ============================================================ */
@media (prefers-reduced-motion:reduce) {
  .ms-hero-eyebrow,
  .ms-hero-title,
  .ms-hero-desc,
  .ms-hero-divider,
  .ms-quicknav {
    opacity:1 !important;
    -webkit-animation:none !important; animation:none !important;
  }
  .ms-reveal-right,
  .ms-reveal-left {
    opacity:1 !important;
    -webkit-transform:none !important; -ms-transform:none !important; transform:none !important;
    -webkit-transition:none !important; transition:none !important;
  }
  .ms-gallery-curtain {
    -webkit-transition:none !important; transition:none !important;
    -webkit-transform:scaleY(0) !important; -ms-transform:scaleY(0) !important; transform:scaleY(0) !important;
  }
  .ms-bio-underline { -webkit-transition:none !important; transition:none !important; width:60px !important; }
  .ms-gallery-img   { -webkit-animation:none !important; animation:none !important; }
  .ms-sticky-nav    { -webkit-transition:none !important; transition:none !important; }
}

/* ============================================================
   SERVICE AVAILABILITY GRID
   (premium visual table per masseuse profile)
   ============================================================ */
.ms-svc-grid {
  margin-bottom: 1.8rem;
  border: 1px solid var(--border);
  border-radius: 4px;
  overflow: hidden;
  background: rgba(18,5,28,.45);
}

.ms-svc-grid-title {
  font-family: 'Jost', sans-serif;
  font-size: .6rem;
  letter-spacing: .28em;
  text-transform: uppercase;
  color: var(--rose);
  font-weight: 400;
  padding: .7rem 1rem .6rem;
  border-bottom: 1px solid var(--border);
  background: rgba(232,121,154,.04);
}

/* Two-column grid for compactness */
.ms-svc-grid {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: column;
      -ms-flex-direction: column;
          flex-direction: column;
}

/* Inner rows wrap into 2 columns */
.ms-svc-grid-body {
  display: -webkit-grid;
  display: -ms-grid;
  display: grid;
  -ms-grid-columns: 1fr 1fr;
  grid-template-columns: 1fr 1fr;
}

.svc-grid-row {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-align-items: center;
      -ms-flex-align: center;
          align-items: center;
  gap: .6rem;
  padding: .52rem 1rem;
  border-bottom: 1px solid var(--border);
  -webkit-transition: background .2s;
          transition: background .2s;
  position: relative;
}

/* Wrap into 2-col layout on wider screens */
@media (min-width: 480px) {
  .ms-svc-grid {
    /* keep single column for service grid — cleaner layout */
  }
}

.svc-grid-row:last-child   { border-bottom: none; }
.svc-grid-row:nth-child(odd) { background: rgba(255,255,255,.01); }
.svc-grid-row:hover { background: rgba(232,121,154,.05); }

/* YES row */
.svc-row-yes  { border-left: 2px solid rgba(74,222,128,.5); }
/* PARTIAL row */
.svc-row-partial { border-left: 2px solid rgba(201,149,110,.5); }
/* NO row */
.svc-row-no   { border-left: 2px solid rgba(255,100,100,.2); opacity: .65; }

/* Icons */
.svc-grid-icon {
  width: 20px; height: 20px;
  border-radius: 50%;
  display: -webkit-flex; display: -ms-flexbox; display: flex;
  -webkit-align-items: center; -ms-flex-align: center; align-items: center;
  -webkit-justify-content: center; -ms-flex-pack: center; justify-content: center;
  font-size: .72rem; font-weight: 600;
  -webkit-flex-shrink: 0; -ms-flex-negative: 0; flex-shrink: 0;
}

.svc-yes {
  color: #4ade80;
  background: rgba(74,222,128,.12);
  border-radius: 50%;
  width: 20px; height: 20px;
  display: -webkit-flex; display: -ms-flexbox; display: flex;
  -webkit-align-items: center; -ms-flex-align: center; align-items: center;
  -webkit-justify-content: center; -ms-flex-pack: center; justify-content: center;
  font-size: .7rem;
}

.svc-partial {
  color: var(--gold2);
  background: rgba(201,149,110,.12);
  border-radius: 50%;
  width: 20px; height: 20px;
  display: -webkit-flex; display: -ms-flexbox; display: flex;
  -webkit-align-items: center; -ms-flex-align: center; align-items: center;
  -webkit-justify-content: center; -ms-flex-pack: center; justify-content: center;
  font-size: .8rem;
  cursor: help;
}

.svc-no {
  color: rgba(255,120,120,.6);
  background: rgba(255,100,100,.07);
  border-radius: 50%;
  width: 20px; height: 20px;
  display: -webkit-flex; display: -ms-flexbox; display: flex;
  -webkit-align-items: center; -ms-flex-align: center; align-items: center;
  -webkit-justify-content: center; -ms-flex-pack: center; justify-content: center;
  font-size: .7rem;
}

.svc-grid-label {
  font-family: 'Jost', sans-serif;
  font-size: .74rem;
  color: var(--text);
  font-weight: 300;
  letter-spacing: .04em;
  -webkit-flex: 1; -ms-flex: 1; flex: 1;
}

.svc-row-no .svc-grid-label { color: var(--muted); }

/* Partial note badge */
.svc-grid-note {
  font-size: .58rem;
  letter-spacing: .06em;
  color: var(--gold2);
  background: rgba(201,149,110,.1);
  border: 1px solid rgba(201,149,110,.25);
  border-radius: 10px;
  padding: .15rem .55rem;
  white-space: nowrap;
  -webkit-flex-shrink: 0; -ms-flex-negative: 0; flex-shrink: 0;
}

/* Grid legend hint */
.ms-svc-legend {
  display: -webkit-flex; display: -ms-flexbox; display: flex;
  gap: 1.2rem; padding: .55rem 1rem;
  border-top: 1px solid var(--border);
  background: rgba(18,5,28,.3);
  -webkit-flex-wrap: wrap; -ms-flex-wrap: wrap; flex-wrap: wrap;
}
.ms-svc-legend-item {
  display: -webkit-flex; display: -ms-flexbox; display: flex;
  -webkit-align-items: center; -ms-flex-align: center; align-items: center;
  gap: .35rem;
  font-size: .58rem; letter-spacing: .08em; color: var(--muted);
  text-transform: uppercase;
}