:root{
  --red:#ef405f;--red2:#f65a82;--dark:#2d2630;--muted:#74626c;--soft:#fff6fa;--panel:#ffffff;--line:rgba(45,38,48,.12);--aqua:#73cfe0;--green:#7ec58c;--orange:#ff9b50;--shadow:0 22px 70px rgba(126,36,63,.13);--max:1180px;--r:26px;--rs:16px
}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Arial,sans-serif;color:var(--dark);background:linear-gradient(180deg,#fff8fb,#fffdfd 42%,#fff8fb);line-height:1.6}a{color:inherit;text-decoration:none}img{max-width:100%;display:block}button{font:inherit}.skip{position:absolute;top:-100px;left:1rem;background:#111;color:white;padding:.65rem 1rem;border-radius:999px;z-index:100}.skip:focus{top:1rem}.site-header{position:sticky;top:0;z-index:50;background:linear-gradient(90deg,var(--red),var(--red2));box-shadow:0 8px 30px rgba(157,22,58,.13)}.topbar{max-width:var(--max);margin:0 auto;padding:.38rem 1.1rem 0;display:flex;justify-content:space-between;gap:1rem;color:white;font-size:.82rem;font-weight:700}.nav{max-width:var(--max);margin:0 auto;padding:.42rem 1.1rem .62rem;display:flex;align-items:center;justify-content:space-between;gap:1.2rem}.brand img{width:clamp(245px,30vw,370px);height:auto}.menu{display:flex;align-items:center;gap:1rem;color:white;font-weight:780;font-size:.92rem}.menu a:not(.nav-cta){opacity:.95}.menu a:not(.nav-cta):hover{opacity:1;text-decoration:underline;text-underline-offset:.32em}.nav-cta{display:inline-flex;align-items:center;justify-content:center;min-height:42px;padding:.72rem 1rem;border-radius:999px;background:white;color:var(--red);font-weight:900;box-shadow:0 12px 26px rgba(121,12,43,.18)}.mobile-toggle{display:none;width:42px;height:42px;border:1px solid rgba(255,255,255,.5);border-radius:999px;background:rgba(255,255,255,.16)}.mobile-toggle span{display:block;width:18px;height:2px;background:white;border-radius:2px;margin:4px auto}.dropdown{position:relative}.dropdown>a::after{content:" ▾";font-size:.75em}.submenu{position:absolute;top:calc(100% + .8rem);left:-.9rem;min-width:230px;padding:.55rem;border-radius:18px;background:white;color:var(--dark);box-shadow:var(--shadow);display:grid;gap:.1rem;opacity:0;visibility:hidden;transform:translateY(-4px);transition:.18s}.dropdown:hover .submenu{opacity:1;visibility:visible;transform:none}.submenu a{padding:.65rem .75rem;border-radius:12px;color:var(--dark)}.submenu a:hover{background:#fff0f5;text-decoration:none!important}.hero{position:relative;overflow:hidden;min-height:calc(100svh - 112px);background:linear-gradient(90deg,rgba(255,252,253,.93) 0%,rgba(255,248,250,.76) 38%,rgba(255,244,247,.34) 63%,rgba(255,245,248,.18) 100%),url("assets/hero-massage.webp") center/cover no-repeat}.hero:after{content:"";position:absolute;inset:auto 0 0;height:24%;background:linear-gradient(0deg,#fff8fb,rgba(255,248,251,0));pointer-events:none}.ambient{position:absolute;inset:-7%;filter:url(#goo);opacity:.7;pointer-events:none}.blob,.node{position:absolute;border-radius:50%;mix-blend-mode:screen;filter:saturate(1.18);will-change:transform,border-radius}.blob:before,.blob:after{content:"";position:absolute;border-radius:inherit;background:inherit}.blob:before{width:38%;height:36%;left:4%;top:-7%;animation:satA 11s ease-in-out infinite}.blob:after{width:29%;height:29%;right:-6%;bottom:8%;animation:satB 13s ease-in-out infinite}.b1{width:28rem;height:22rem;left:-8rem;top:4%;background:radial-gradient(circle at 30% 30%,rgba(255,255,255,.3),rgba(255,151,75,.7) 38%,rgba(239,64,95,.42) 72%,transparent);animation:morphA 13s ease-in-out infinite,moveA 22s ease-in-out infinite}.b2{width:24rem;height:20rem;right:12%;top:8%;background:radial-gradient(circle at 34% 30%,rgba(255,255,255,.28),rgba(112,207,139,.64) 42%,rgba(78,166,255,.36) 74%,transparent);animation:morphB 15s ease-in-out infinite,moveB 24s ease-in-out infinite}.b3{width:20rem;height:16rem;left:42%;bottom:8%;background:radial-gradient(circle at 34% 30%,rgba(255,255,255,.28),rgba(79,167,255,.62) 42%,rgba(126,197,140,.3) 74%,transparent);animation:morphC 13.5s ease-in-out infinite,moveC 20s ease-in-out infinite}.node{width:6rem;height:6rem;background:radial-gradient(circle at 35% 30%,rgba(255,255,255,.4),rgba(255,180,72,.66) 42%,transparent 78%);animation:nodeA 17s ease-in-out infinite}.n2{left:50%;top:14%;background:radial-gradient(circle at 35% 30%,rgba(255,255,255,.4),rgba(87,208,154,.66) 42%,transparent 78%);animation:nodeB 19s ease-in-out infinite}.n3{right:18%;bottom:22%;background:radial-gradient(circle at 35% 30%,rgba(255,255,255,.4),rgba(78,166,255,.66) 42%,transparent 78%);animation:nodeC 18s ease-in-out infinite}.hero-inner{position:relative;z-index:2;max-width:var(--max);margin:0 auto;padding:clamp(4rem,8vw,7rem) 1.1rem;min-height:inherit;display:grid;align-items:center}.hero-card{max-width:680px;padding:clamp(1rem,2vw,1.55rem);border-radius:30px;background:rgba(255,255,255,.22);backdrop-filter:blur(5px)}.eyebrow{margin:0 0 .95rem;color:var(--red);font-size:.78rem;font-weight:900;letter-spacing:.15em;text-transform:uppercase}.hero h1,.page-hero h1{margin:0 0 1rem;font-family:Georgia,"Times New Roman",serif;font-size:clamp(3rem,7vw,6rem);line-height:.98;letter-spacing:-.045em;font-weight:500;color:#492333}.hero p{max-width:640px;color:rgba(73,35,51,.86);font-size:clamp(1.05rem,1.6vw,1.22rem)}.actions,.contact-actions{display:flex;flex-wrap:wrap;gap:.85rem;margin:1.6rem 0 .9rem}.btn{display:inline-flex;align-items:center;justify-content:center;min-height:50px;padding:.82rem 1.25rem;border-radius:999px;border:1px solid var(--red);background:var(--red);color:white;font-weight:900;box-shadow:0 14px 30px rgba(142,31,65,.18);transition:.18s}.btn:hover{transform:translateY(-2px);box-shadow:0 20px 34px rgba(142,31,65,.22)}.btn.light{background:white;color:var(--red);border-color:rgba(239,64,95,.18)}.btn.small{min-height:42px;padding:.62rem 1rem;font-size:.92rem}.socials{display:flex;flex-wrap:wrap;gap:.68rem;margin:1rem 0 1.2rem}.social{width:44px;height:44px;display:grid;place-items:center;border-radius:50%;box-shadow:0 10px 22px rgba(97,55,110,.16)}.social svg{width:20px;height:20px}.fb{background:#1877f2;color:white}.ig{background:linear-gradient(135deg,#f9ce34,#ee2a7b 52%,#6228d7);color:white}.gg{background:white}.yt{background:#f00;color:white}.trust{display:grid;grid-template-columns:repeat(3,1fr);max-width:560px;margin:1.2rem 0 0;border:1px solid rgba(167,85,110,.12);border-radius:22px;background:rgba(255,255,255,.72);box-shadow:0 14px 38px rgba(117,18,55,.1);overflow:hidden}.trust div{padding:.9rem 1rem;border-right:1px solid rgba(167,85,110,.12)}.trust div:last-child{border-right:0}.trust strong{display:block;font-family:Georgia,serif;font-size:1.35rem}.trust span{color:rgba(73,35,51,.7);font-size:.9rem}.shell{max-width:var(--max);margin:0 auto;padding:5.5rem 1.1rem}.section-head{max-width:820px;margin-bottom:2rem}.section-head h2,.split h2,.cta h2{margin:0 0 1rem;font-family:Georgia,serif;font-size:clamp(2.35rem,4.8vw,4.7rem);line-height:1;letter-spacing:-.04em;font-weight:500}.section-head p,.split p{color:var(--muted);font-size:1.12rem}.ribbon{max-width:calc(var(--max) - 2.2rem);margin:-2rem auto 0;padding:1rem;display:grid;grid-template-columns:repeat(6,1fr);gap:.5rem;border-radius:24px;background:rgba(255,255,255,.92);box-shadow:var(--shadow);position:relative;z-index:5}.ribbon a{padding:.8rem .45rem;border-radius:16px;background:#fff5f8;color:var(--red);text-align:center;font-size:.9rem;font-weight:900}.split{display:grid;grid-template-columns:.85fr 1.15fr;gap:2.5rem;align-items:start}.info-grid,.cards,.price-grid,.review-grid,.benefit-grid{display:grid;gap:1rem}.info-grid{grid-template-columns:1fr}.cards{grid-template-columns:repeat(3,1fr)}.benefit-grid{grid-template-columns:repeat(4,1fr)}.card,.soft,.price-card,.review,.contact-card,.location-card{border:1px solid var(--line);border-radius:var(--r);background:rgba(255,255,255,.82);box-shadow:0 16px 50px rgba(108,60,84,.08)}.soft,.card,.review,.price-card{padding:1.55rem}.step,.label{display:inline-flex;margin-bottom:.75rem;color:var(--red);font-size:.74rem;font-weight:900;letter-spacing:.13em;text-transform:uppercase}.card{min-height:250px;display:flex;flex-direction:column;justify-content:space-between}.card.featured{background:linear-gradient(145deg,var(--red),var(--red2));color:white}.card.featured p,.card.featured .label{color:rgba(255,255,255,.86)}.service-icon{width:46px;height:46px;border-radius:50%;display:grid;place-items:center;margin-bottom:1rem;background:#fff2f6;color:var(--red);font-size:1.4rem}.card.featured .service-icon{background:rgba(255,255,255,.2);color:white}.band{max-width:none;background:linear-gradient(135deg,#7f3148,var(--red2));color:white}.band .eyebrow,.band p{color:rgba(255,255,255,.82)}.band .benefit-grid article{padding:1.5rem;border-radius:22px;background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.14)}.cta{display:grid;grid-template-columns:1fr auto;gap:2rem;align-items:center;border-radius:34px;background:linear-gradient(135deg,#ffe0e9,#fff);box-shadow:var(--shadow)}.cta .price{padding:1.2rem 1.4rem;border-radius:24px;background:white;text-align:center;box-shadow:0 16px 40px rgba(108,60,84,.1)}.cta .price strong{display:block;font-family:Georgia,serif;font-size:3rem;line-height:1;color:var(--red)}.page-hero{background:linear-gradient(135deg,#ffe8ef,#fff8fb);padding:5rem 1.1rem 4rem}.page-hero>div{max-width:var(--max);margin:auto}.page-hero p{max-width:760px;color:var(--muted);font-size:1.15rem}.service-section{border-top:1px solid var(--line)}.service-title{display:flex;align-items:end;justify-content:space-between;gap:1rem;margin-bottom:1.5rem}.service-title h2{margin:0;font-family:Georgia,serif;font-size:clamp(2rem,4vw,3.8rem);font-weight:500;line-height:1}.price-grid{grid-template-columns:repeat(4,1fr)}.price-card h3{margin:.2rem 0 .5rem}.price-card .price-main{display:block;margin:.6rem 0;font-family:Georgia,serif;font-size:2.4rem;color:var(--red);line-height:1}.price-card ul{margin:1rem 0 0;padding-left:1.1rem;color:var(--muted)}.list-prices{display:grid;gap:.75rem}.list-prices div{display:flex;justify-content:space-between;gap:1rem;align-items:center;padding:1rem 1.2rem;border-radius:18px;border:1px solid var(--line);background:white}.list-prices strong{color:var(--red);text-align:right}.faq{display:grid;gap:.75rem}.faq details{border:1px solid var(--line);border-radius:18px;background:white;padding:1rem 1.2rem}.faq summary{cursor:pointer;font-weight:900}.faq p{color:var(--muted)}.contact{display:grid;grid-template-columns:1.2fr .8fr;gap:1rem}.contact-card,.location-card{padding:2rem}.contact-card{background:linear-gradient(145deg,var(--red),var(--red2));color:white}.contact-card .eyebrow,.contact-card p{color:rgba(255,255,255,.84)}.footer{max-width:var(--max);margin:0 auto;padding:2rem 1.1rem 4rem;display:flex;justify-content:space-between;gap:2rem;border-top:1px solid var(--line);color:var(--muted)}.footer img{width:260px}.footer nav{display:flex;flex-wrap:wrap;gap:1rem;font-weight:850;color:var(--dark)}
@keyframes morphA{0%,100%{border-radius:40% 60% 59% 41%/45% 39% 61% 55%}50%{border-radius:65% 35% 38% 62%/36% 68% 32% 64%}}@keyframes morphB{0%,100%{border-radius:58% 42% 45% 55%/54% 45% 55% 46%}50%{border-radius:35% 65% 68% 32%/42% 70% 30% 58%}}@keyframes morphC{0%,100%{border-radius:48% 52% 60% 40%/62% 38% 54% 46%}50%{border-radius:67% 33% 42% 58%/34% 66% 34% 66%}}@keyframes satA{0%,100%{transform:translate(0,0) scale(.72)}50%{transform:translate(-30%,-25%) scale(.38)}}@keyframes satB{0%,100%{transform:translate(0,0) scale(.62)}50%{transform:translate(38%,20%) scale(.3)}}@keyframes moveA{0%,100%{transform:translate3d(0,0,0) rotate(0) scale(1)}50%{transform:translate3d(9vw,6vh,0) rotate(8deg) scale(1.04)}}@keyframes moveB{0%,100%{transform:translate3d(0,0,0) rotate(0) scale(1)}50%{transform:translate3d(-11vw,10vh,0) rotate(-8deg) scale(.98)}}@keyframes moveC{0%,100%{transform:translate3d(0,0,0) rotate(0) scale(1)}50%{transform:translate3d(8vw,-6vh,0) rotate(6deg) scale(1.06)}}@keyframes nodeA{0%,100%{left:18%;top:17%;transform:scale(.65)}50%{left:29%;top:22%;transform:scale(1)}}@keyframes nodeB{0%,100%{left:52%;top:16%;transform:scale(.55)}50%{left:61%;top:29%;transform:scale(.95)}}@keyframes nodeC{0%,100%{right:18%;bottom:22%;transform:scale(.58)}50%{right:28%;bottom:30%;transform:scale(1)}}
@media(max-width:1020px){.menu{position:absolute;left:1rem;right:1rem;top:calc(100% + .35rem);display:grid;padding:.7rem;border-radius:22px;background:white;color:var(--dark);box-shadow:var(--shadow);opacity:0;visibility:hidden;transform:translateY(-6px);transition:.18s}.menu.open{opacity:1;visibility:visible;transform:none}.dropdown:hover .submenu{display:none}.submenu{position:static;display:none;opacity:1;visibility:visible;box-shadow:none;transform:none}.mobile-toggle{display:block}.cards,.price-grid,.benefit-grid,.split,.contact,.cta{grid-template-columns:1fr}.ribbon{grid-template-columns:repeat(2,1fr)}.footer{display:block}.footer nav{margin-top:1rem}.brand img{width:260px}.hero{min-height:auto;background-position:64% center}.hero-inner{padding-block:4rem}.trust{grid-template-columns:1fr}.trust div{border-right:0;border-bottom:1px solid rgba(167,85,110,.12)}.trust div:last-child{border-bottom:0}}
@media(max-width:680px){.topbar{font-size:.75rem}.nav{align-items:flex-start}.brand img{width:min(70vw,260px)}.hero h1,.page-hero h1{font-size:clamp(2.6rem,14vw,4rem)}.ribbon{grid-template-columns:1fr}.shell{padding-block:4rem}.list-prices div{display:block}.list-prices strong{display:block;margin-top:.35rem;text-align:left}.social{width:40px;height:40px}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.001ms!important;animation-iteration-count:1!important;scroll-behavior:auto!important;transition:none!important}}

/* ---- Revision: user-uploaded logo + compact benefits section ---- */
.brand {
  display: inline-flex;
  align-items: center;
  flex: 0 0 auto;
  border-radius: 0;
  background: transparent;
  box-shadow: none;
}

.brand img {
  width: clamp(225px, 24vw, 320px);
  height: auto;
  max-height: 74px;
  object-fit: contain;
}

.nav {
  min-height: 86px;
  padding-top: .45rem;
  padding-bottom: .55rem;
}

.menu {
  align-items: center;
}

.footer img {
  width: min(320px, 100%);
  height: auto;
  border-radius: 0;
}

.band.shell {
  max-width: var(--max);
  margin: 3rem auto;
  padding: 4rem 1.1rem;
  border-radius: 34px;
  background:
    radial-gradient(circle at 92% 14%, rgba(246, 90, 130, .18), transparent 26rem),
    linear-gradient(135deg, #fff7fa, #ffe1eb);
  color: var(--dark);
  box-shadow: var(--shadow);
  overflow: hidden;
}

.band .section-head {
  margin-bottom: 1.8rem;
}

.band .section-head h2 {
  max-width: 760px;
  font-size: clamp(2.15rem, 3.9vw, 4rem);
  color: #492333;
}

.band .eyebrow {
  color: var(--red);
}

.band p,
.band .section-head p {
  color: var(--muted);
}

.band .benefit-grid {
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 1rem;
}

.band .benefit-grid article {
  min-height: 190px;
  padding: 1.45rem;
  border-radius: 22px;
  background: rgba(255, 255, 255, .76);
  border: 1px solid rgba(239, 64, 95, .12);
  color: var(--dark);
  box-shadow: 0 14px 38px rgba(108, 60, 84, .07);
}

.band .benefit-grid h3 {
  margin-top: 0;
  color: #492333;
}

.band .benefit-grid p {
  color: var(--muted);
  margin-bottom: 0;
}

@media(max-width:1020px){
  .nav { min-height: 78px; }
  .brand img { width: min(270px, 56vw); max-height: 66px; }
  .band .benefit-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media(max-width:680px){
  .nav { min-height: 74px; }
  .brand img { width: min(230px, 65vw); max-height: 58px; }
  .band.shell { margin: 2rem 1rem; padding: 3rem 1rem; }
  .band .benefit-grid { grid-template-columns: 1fr; }
}


/* ---- Revision: compact hero/header and dark contrast footer ---- */
.topbar {
  display: none !important;
}

.site-header {
  position: sticky;
  top: 0;
}

.nav {
  min-height: 76px;
  padding-top: .35rem;
  padding-bottom: .35rem;
}

.brand img {
  width: clamp(210px, 20vw, 285px);
  max-height: 62px;
}

.hero {
  height: calc(100svh - 76px);
  min-height: 500px;
  max-height: 760px;
  overflow: hidden;
}

.hero-inner {
  height: 100%;
  min-height: 0;
  padding-top: clamp(1rem, 2.2vh, 1.8rem);
  padding-bottom: clamp(1rem, 2.2vh, 1.8rem);
  align-items: center;
}

.hero-card {
  padding: clamp(.95rem, 1.8vw, 1.35rem);
}

.hero-card .eyebrow {
  margin-bottom: .55rem;
}

.hero-card h1 {
  margin-bottom: .75rem;
  font-size: clamp(2.55rem, 5.5vw, 5.05rem);
}

.hero-card p {
  margin-bottom: .9rem;
}

.hero-contact {
  display: flex;
  flex-wrap: wrap;
  gap: .7rem 1rem;
  align-items: center;
  margin: .55rem 0 1.05rem;
  color: #492333;
  font-weight: 850;
  line-height: 1.35;
}

.hero-contact span,
.hero-contact a {
  display: inline-flex;
  align-items: center;
  padding: .5rem .72rem;
  border-radius: 999px;
  background: rgba(255, 255, 255, .78);
  box-shadow: 0 10px 24px rgba(108, 60, 84, .08);
}

.hero-contact a {
  color: var(--red);
}

.actions {
  margin-bottom: .75rem;
}

.socials {
  margin-top: .65rem;
  margin-bottom: .9rem;
}

.trust {
  margin-top: .85rem;
}

.footer {
  max-width: none;
  width: 100%;
  margin: 0;
  padding: 2.6rem max(1.1rem, calc((100vw - var(--max)) / 2 + 1.1rem)) 3rem;
  background: #241821;
  color: rgba(255, 255, 255, .72);
  border-top: 0;
}

.footer nav {
  color: white;
}

.footer a:hover {
  color: #ff8fa5;
}

.footer p {
  color: rgba(255, 255, 255, .72);
}

.footer img {
  max-width: 300px;
  border-radius: 0;
}

@media (max-width: 1020px) {
  .nav {
    min-height: 72px;
  }

  .brand img {
    width: min(245px, 56vw);
    max-height: 58px;
  }

  .hero {
    height: auto;
    min-height: 0;
    max-height: none;
  }

  .hero-inner {
    padding-top: 2rem;
    padding-bottom: 2.5rem;
  }
}

@media (max-width: 680px) {
  .nav {
    min-height: 68px;
  }

  .brand img {
    width: min(218px, 64vw);
    max-height: 54px;
  }

  .hero-card h1 {
    font-size: clamp(2.3rem, 12vw, 3.5rem);
  }

  .hero-contact span,
  .hero-contact a {
    width: 100%;
    border-radius: 18px;
  }
}

/* ---- Revision: transparent logo, visible social icons, contained hero services bar ---- */
.site-header { background: linear-gradient(90deg, var(--red), var(--red2)); }
.nav {
  min-height: 68px;
  padding-top: .28rem;
  padding-bottom: .28rem;
}
.brand { background: transparent !important; box-shadow: none !important; padding: 0 !important; }
.brand img {
  width: clamp(225px, 19vw, 300px);
  max-height: 54px;
  object-fit: contain;
  background: transparent !important;
}

.hero {
  height: calc(100svh - 68px);
  min-height: 540px;
  max-height: 760px;
  overflow: hidden;
}
.hero-inner {
  height: 100%;
  min-height: 0;
  padding-top: clamp(.45rem, 1vh, .85rem);
  padding-bottom: clamp(.65rem, 1.2vh, 1rem);
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: stretch;
  gap: clamp(.75rem, 1.4vh, 1.1rem);
}
.hero-card {
  max-width: 650px;
  padding: clamp(.75rem, 1.3vw, 1.05rem);
}
.hero-card .eyebrow {
  margin-bottom: .42rem;
  font-size: .72rem;
}
.hero-card h1 {
  margin-bottom: .55rem;
  font-size: clamp(2.1rem, 4.4vw, 4.25rem);
  line-height: .96;
}
.hero-card p {
  max-width: 610px;
  margin-bottom: .62rem;
  font-size: clamp(.96rem, 1.22vw, 1.08rem);
  line-height: 1.46;
}
.hero-contact {
  margin: .45rem 0 .72rem;
  gap: .5rem .7rem;
}
.hero-contact span,
.hero-contact a {
  padding: .42rem .64rem;
  font-size: .94rem;
}
.actions {
  margin: .72rem 0 .55rem;
  gap: .65rem;
}
.btn {
  min-height: 45px;
  padding: .72rem 1.08rem;
}
.socials {
  display: flex !important;
  visibility: visible !important;
  opacity: 1 !important;
  gap: .6rem;
  margin: .48rem 0 .7rem;
  position: relative;
  z-index: 6;
}
.social {
  width: 42px;
  height: 42px;
  flex: 0 0 auto;
}
.social svg { width: 19px; height: 19px; }
.trust {
  margin-top: .55rem;
}
.trust div {
  padding: .65rem .8rem;
}
.trust strong {
  font-size: 1.15rem;
}
.trust span {
  font-size: .82rem;
}

.ribbon.hero-ribbon {
  width: 100%;
  max-width: none;
  margin: 0;
  padding: .65rem;
  gap: .45rem;
  border-radius: 22px;
  background: rgba(255, 255, 255, .9);
  box-shadow: 0 14px 34px rgba(108,60,84,.1);
}
.ribbon.hero-ribbon a {
  padding: .62rem .42rem;
  border-radius: 15px;
  font-size: .84rem;
}

/* other pages still use normal service ribbon if needed */
main > .ribbon:not(.hero-ribbon) { margin: 1.2rem auto 0; }

@media(max-width:1020px){
  .nav { min-height: 66px; }
  .brand img { width: min(255px, 54vw); max-height: 52px; }
  .hero { height: auto; min-height: 0; max-height: none; overflow: visible; }
  .hero-inner { padding-top: 1.4rem; padding-bottom: 1.2rem; }
  .hero-card h1 { font-size: clamp(2.25rem, 8vw, 4rem); }
  .ribbon.hero-ribbon { grid-template-columns: repeat(2, 1fr); }
}
@media(max-width:680px){
  .nav { min-height: 62px; }
  .brand img { width: min(225px, 64vw); max-height: 48px; }
  .hero-card { background: rgba(255,255,255,.34); }
  .hero-card h1 { font-size: clamp(2.05rem, 11vw, 3.2rem); }
  .hero-contact span,
  .hero-contact a { font-size: .86rem; }
  .social { width: 39px; height: 39px; }
  .ribbon.hero-ribbon { grid-template-columns: 1fr; }
}

/* ---- Services/pricing rebuild from current site content ---- */
.services-page-hero {
  padding-top: clamp(3rem, 6vw, 5rem);
  padding-bottom: clamp(2.6rem, 5vw, 4rem);
}

.service-menu-page .shell {
  padding-top: 4.8rem;
  padding-bottom: 4.8rem;
}

.service-jump.shell {
  padding-top: 1rem;
  padding-bottom: 1rem;
  display: grid;
  grid-template-columns: repeat(6, 1fr);
  gap: .55rem;
  position: sticky;
  top: 86px;
  z-index: 12;
  background: rgba(255, 248, 251, .86);
  backdrop-filter: blur(12px);
  border-bottom: 1px solid rgba(239,64,95,.12);
}

.service-jump a {
  min-height: 44px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: .7rem .55rem;
  border-radius: 999px;
  background: white;
  border: 1px solid rgba(239,64,95,.12);
  color: var(--red);
  font-size: .88rem;
  font-weight: 900;
  text-align: center;
  box-shadow: 0 8px 22px rgba(108,60,84,.06);
}

.service-menu-section {
  border-top: 1px solid rgba(239,64,95,.12);
}

.service-menu-title {
  max-width: 920px;
  margin-bottom: 2rem;
}

.service-menu-title h2 {
  margin: 0 0 1rem;
  font-family: Georgia, serif;
  font-size: clamp(2.35rem, 5vw, 4.5rem);
  line-height: .98;
  letter-spacing: -.045em;
  font-weight: 500;
  color: #492333;
}

.service-menu-title p:not(.eyebrow) {
  max-width: 840px;
  color: var(--muted);
  font-size: clamp(1.02rem, 1.7vw, 1.18rem);
}

.service-pricing-grid,
.two-column-prices,
.three-column-prices {
  display: grid;
  gap: 1rem;
}

.service-pricing-grid {
  grid-template-columns: repeat(4, minmax(0, 1fr));
}

.two-column-prices {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.three-column-prices {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.pricing-panel {
  border: 1px solid rgba(239,64,95,.12);
  border-radius: 26px;
  background: rgba(255,255,255,.86);
  box-shadow: 0 16px 44px rgba(108,60,84,.07);
  padding: 1.45rem;
}

.highlight-panel {
  background: linear-gradient(145deg, #fff, #ffe3eb);
  border-color: rgba(239,64,95,.2);
}

.pricing-panel h3 {
  margin: .15rem 0 .6rem;
  font-size: 1.22rem;
  line-height: 1.2;
  color: #492333;
}

.pricing-panel h4 {
  margin: 1.15rem 0 .65rem;
  color: #492333;
  font-size: .9rem;
  text-transform: uppercase;
  letter-spacing: .08em;
}

.pricing-panel p {
  color: var(--muted);
  margin-bottom: .9rem;
}

.price-main {
  display: block;
  margin: .65rem 0 1rem;
  font-family: Georgia, serif;
  font-size: clamp(2.4rem, 4.5vw, 3.35rem);
  line-height: 1;
  color: var(--red);
  font-weight: 500;
}

.single-row,
.simple-list div,
.package-list div {
  display: grid;
  grid-template-columns: 1fr auto;
  gap: .8rem;
  align-items: center;
  padding: .85rem 0;
  border-top: 1px solid rgba(239,64,95,.12);
}

.single-row:first-child,
.simple-list div:first-child,
.package-list div:first-child {
  border-top: 0;
}

.single-row span,
.simple-list span,
.package-list span {
  color: #492333;
  font-weight: 850;
}

.single-row small,
.simple-list small {
  display: block;
  margin-top: .15rem;
  color: var(--muted);
  font-weight: 650;
}

.single-row strong,
.simple-list strong,
.package-list strong {
  color: var(--red);
  font-size: 1.1rem;
  white-space: nowrap;
}

.package-list div {
  grid-template-columns: 1fr auto auto;
}

.package-list em {
  color: var(--muted);
  font-style: normal;
  font-size: .92rem;
  text-align: right;
}

.waxing-panel {
  max-width: 720px;
}

.service-cta {
  margin-bottom: 4rem;
}

@media(max-width:1120px){
  .service-pricing-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .service-jump.shell { grid-template-columns: repeat(3, 1fr); top: 78px; }
}

@media(max-width:760px){
  .service-menu-page .shell { padding-top: 3.6rem; padding-bottom: 3.6rem; }
  .service-jump.shell { position: static; grid-template-columns: repeat(2, 1fr); }
  .service-pricing-grid,
  .two-column-prices,
  .three-column-prices { grid-template-columns: 1fr; }
  .package-list div { grid-template-columns: 1fr; gap: .15rem; }
  .package-list em { text-align: left; }
  .single-row,
  .simple-list div { grid-template-columns: 1fr; gap: .2rem; }
}


/* ---- Final spacing fix: contained hero bar and compact CTA sections ---- */
.hero {
  height: auto !important;
  min-height: min(720px, calc(100svh - 68px)) !important;
  max-height: none !important;
  overflow: visible !important;
}

.hero-inner {
  min-height: min(720px, calc(100svh - 68px)) !important;
  height: auto !important;
  padding-top: clamp(.65rem, 1.4vh, 1.15rem) !important;
  padding-bottom: clamp(1rem, 2vh, 1.45rem) !important;
  display: flex !important;
  flex-direction: column !important;
  justify-content: center !important;
  align-items: stretch !important;
  gap: clamp(1rem, 2.1vh, 1.45rem) !important;
}

.hero-card {
  max-width: 600px !important;
  padding: clamp(.72rem, 1.2vw, .95rem) !important;
  border-radius: 24px !important;
}

.hero-card .eyebrow {
  margin-bottom: .32rem !important;
  font-size: .68rem !important;
}

.hero-card h1 {
  margin-bottom: .42rem !important;
  font-size: clamp(2rem, 3.8vw, 3.75rem) !important;
  line-height: .97 !important;
}

.hero-card p {
  margin-bottom: .48rem !important;
  font-size: clamp(.88rem, 1.05vw, 1rem) !important;
  line-height: 1.38 !important;
}

.hero-contact {
  margin: .38rem 0 .58rem !important;
  gap: .45rem .6rem !important;
}

.hero-contact span,
.hero-contact a {
  padding: .35rem .6rem !important;
  font-size: .86rem !important;
  line-height: 1.2 !important;
}

.actions {
  margin: .58rem 0 .45rem !important;
  gap: .58rem !important;
}

.hero .btn {
  min-height: 42px !important;
  padding: .65rem 1rem !important;
  font-size: .92rem !important;
}

.socials {
  margin: .36rem 0 .48rem !important;
  gap: .52rem !important;
}

.social {
  width: 38px !important;
  height: 38px !important;
}

.social svg {
  width: 17px !important;
  height: 17px !important;
}

.trust {
  margin-top: .45rem !important;
  max-width: 520px !important;
}

.trust div {
  padding: .5rem .65rem !important;
}

.trust strong {
  font-size: 1.05rem !important;
}

.trust span {
  font-size: .78rem !important;
}

.ribbon.hero-ribbon {
  width: 100% !important;
  max-width: 100% !important;
  margin: 0 !important;
  padding: .85rem !important;
  gap: .55rem !important;
  border-radius: 24px !important;
  background: rgba(255, 255, 255, .94) !important;
  box-shadow: 0 18px 44px rgba(108,60,84,.13) !important;
  position: relative !important;
  z-index: 8 !important;
}

.ribbon.hero-ribbon a {
  padding: .72rem .44rem !important;
  border-radius: 16px !important;
  font-size: .82rem !important;
  line-height: 1.15 !important;
}

/* compact the big call-to-book blocks */
.cta.shell,
.shell.cta {
  margin: 3rem auto !important;
  padding: clamp(2.2rem, 4vw, 3.4rem) 1.1rem !important;
  grid-template-columns: minmax(0, 1fr) minmax(260px, 340px) !important;
  gap: clamp(1.4rem, 3vw, 2.2rem) !important;
  align-items: center !important;
}

.cta h2 {
  max-width: 700px !important;
  font-size: clamp(2.1rem, 4.1vw, 4rem) !important;
  line-height: .98 !important;
}

.cta .price {
  padding: 1.05rem 1.2rem !important;
  border-radius: 22px !important;
}

.cta .price strong {
  font-size: clamp(2rem, 3.2vw, 2.85rem) !important;
}

.cta .price .btn,
.cta .price a.btn {
  min-height: 42px !important;
  padding: .62rem 1rem !important;
}

@media(max-width:1020px){
  .hero,
  .hero-inner { min-height: 0 !important; }
  .hero-inner { padding-top: 1.5rem !important; padding-bottom: 1.35rem !important; }
  .hero-card { max-width: 640px !important; }
  .ribbon.hero-ribbon { grid-template-columns: repeat(2, 1fr) !important; }
  .cta.shell,
  .shell.cta { grid-template-columns: 1fr !important; }
}

@media(max-width:680px){
  .hero-card h1 { font-size: clamp(2rem, 10vw, 3rem) !important; }
  .hero-contact span,
  .hero-contact a { width: 100% !important; }
  .ribbon.hero-ribbon { grid-template-columns: 1fr !important; }
  .cta h2 { font-size: clamp(2rem, 10vw, 3rem) !important; }
}

/* Pricing package rows: keep treatment counts on one line */
.package-list div {
  grid-template-columns: max-content 1fr max-content;
  gap: .45rem;
  align-items: center;
}

.package-list span {
  white-space: nowrap;
  font-size: .92rem;
  line-height: 1.2;
}

.package-list em {
  white-space: nowrap;
  font-size: .78rem;
  line-height: 1.25;
  text-align: right;
}

.package-list strong {
  font-size: 1rem;
  line-height: 1.1;
}

@media (max-width: 700px) {
  .package-list div {
    grid-template-columns: 1fr auto;
  }

  .package-list em {
    grid-column: 1 / -1;
    text-align: left;
    margin-top: -.15rem;
  }
}


/* ---- Revision: hero height, social placement, pricing layout, full footer ---- */
.hero {
  height: calc(100svh - 76px) !important;
  min-height: 720px !important;
  max-height: none !important;
  overflow: hidden !important;
}

.hero-inner {
  min-height: 100% !important;
  height: 100% !important;
  padding-top: clamp(1.8rem, 3.6vh, 3.2rem) !important;
  padding-bottom: clamp(1.4rem, 2.8vh, 2.6rem) !important;
  justify-content: center !important;
  gap: clamp(1.25rem, 2.6vh, 2rem) !important;
}

.hero-card {
  max-width: 640px !important;
  padding: clamp(.9rem, 1.5vw, 1.2rem) !important;
}

.hero-card h1 {
  font-size: clamp(2.55rem, 4.8vw, 4.85rem) !important;
  line-height: .98 !important;
  margin-bottom: .62rem !important;
}

.hero-card p {
  font-size: clamp(.92rem, 1.15vw, 1.06rem) !important;
}

.actions { margin-bottom: .6rem !important; }
.trust {
  max-width: 500px !important;
  margin-top: .45rem !important;
  grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
  border-radius: 18px !important;
}
.trust div { padding: .48rem .65rem !important; }
.trust strong { font-size: 1rem !important; }
.trust span { font-size: .74rem !important; }
.hero-card > .socials {
  margin-top: .55rem !important;
  margin-bottom: 0 !important;
}
.social {
  width: 32px !important;
  height: 32px !important;
}
.social svg {
  width: 15px !important;
  height: 15px !important;
}
.ribbon.hero-ribbon {
  margin-top: .35rem !important;
  padding: .75rem !important;
}
.ribbon.hero-ribbon a {
  padding: .65rem .4rem !important;
  font-size: .8rem !important;
}

/* Endosphères pricing: first-time block full-width, packages underneath */
.endospheres-grid {
  grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
  align-items: stretch;
}
.endospheres-grid .highlight-panel {
  grid-column: 1 / -1;
  display: grid;
  grid-template-columns: minmax(0, 1.2fr) auto auto;
  gap: 1rem 1.6rem;
  align-items: center;
  padding: 1.45rem 1.6rem;
}
.endospheres-grid .highlight-panel .label,
.endospheres-grid .highlight-panel h3,
.endospheres-grid .highlight-panel p,
.endospheres-grid .highlight-panel .price-main {
  margin: 0;
}
.endospheres-grid .highlight-panel .label { grid-column: 1 / -1; }
.endospheres-grid .highlight-panel h3 { font-size: 1.45rem; }
.endospheres-grid .highlight-panel p { max-width: 560px; }
.endospheres-grid .highlight-panel .price-main {
  font-size: 2.8rem;
  white-space: nowrap;
}
.endospheres-grid .highlight-panel .btn { white-space: nowrap; }
.endospheres-grid .package-panel { min-width: 0; }
.package-list div {
  grid-template-columns: minmax(92px, max-content) minmax(78px, 1fr) max-content !important;
  gap: .35rem !important;
}
.package-list span { font-size: .84rem !important; white-space: nowrap !important; }
.package-list em { font-size: .72rem !important; white-space: nowrap !important; }
.package-list strong { font-size: .95rem !important; white-space: nowrap !important; }

/* Full contrast footer */
.footer {
  display: grid !important;
  grid-template-columns: 1.15fr .9fr 1fr .8fr;
  gap: 2rem !important;
  align-items: start;
  background: #241821 !important;
  color: rgba(255,255,255,.76) !important;
}
.footer h3 {
  margin: 0 0 .8rem;
  color: #fff;
  font-size: .9rem;
  text-transform: uppercase;
  letter-spacing: .12em;
}
.footer p { color: rgba(255,255,255,.76) !important; margin-top: .55rem; }
.footer a { color: rgba(255,255,255,.88); }
.footer a:hover { color: #ff8fa5; }
.footer img { width: min(250px, 100%) !important; }
.footer nav {
  display: grid !important;
  gap: .45rem !important;
  color: rgba(255,255,255,.88) !important;
}
.footer .footer-socials {
  margin-top: .9rem !important;
}
.footer .footer-socials .social {
  width: 32px !important;
  height: 32px !important;
}

@media(max-width: 1020px) {
  .hero { height: auto !important; min-height: 0 !important; overflow: visible !important; }
  .hero-inner { height: auto !important; min-height: 0 !important; padding-top: 2rem !important; padding-bottom: 2rem !important; }
  .trust { grid-template-columns: 1fr !important; }
  .endospheres-grid { grid-template-columns: 1fr !important; }
  .endospheres-grid .highlight-panel { grid-template-columns: 1fr; }
  .footer { grid-template-columns: 1fr 1fr !important; }
}
@media(max-width: 680px) {
  .footer { grid-template-columns: 1fr !important; }
  .package-list div { grid-template-columns: 1fr auto !important; }
  .package-list em { grid-column: 1 / -1; text-align: left !important; }
}

/* ---- Final correction: true full-screen hero without overshooting normal laptop screens ---- */
@media (min-width: 1021px) {
  .hero {
    height: calc(100svh - 76px) !important;
    min-height: 640px !important;
  }
  .hero-inner {
    height: 100% !important;
    min-height: 0 !important;
  }
}
@media (max-height: 760px) and (min-width: 1021px) {
  .hero { min-height: calc(100svh - 76px) !important; }
  .hero-card h1 { font-size: clamp(2.35rem, 4.25vw, 4.35rem) !important; }
  .hero-card p { font-size: .94rem !important; }
  .hero-contact span, .hero-contact a { font-size: .8rem !important; padding: .3rem .54rem !important; }
  .ribbon.hero-ribbon a { font-size: .76rem !important; padding: .55rem .34rem !important; }
}

/* Final polish: compact call card/button and reduce Google bar height */
.cta .price,
.shell.cta .price,
.service-cta .price {
  width: 100% !important;
  max-width: 330px !important;
  padding: .85rem 1rem !important;
  border-radius: 20px !important;
}

.cta .price span,
.shell.cta .price span,
.service-cta .price span {
  display: block !important;
  margin-bottom: .2rem !important;
  font-size: .9rem !important;
  line-height: 1.1 !important;
}

.cta .price strong,
.shell.cta .price strong,
.service-cta .price strong {
  display: block !important;
  margin: 0 0 .45rem !important;
  font-size: clamp(2rem, 3vw, 2.65rem) !important;
  line-height: .95 !important;
  white-space: nowrap !important;
}

.cta .price .btn,
.cta .price a.btn,
.shell.cta .price .btn,
.service-cta .price .btn {
  min-height: 38px !important;
  padding: .52rem .95rem !important;
  font-size: .9rem !important;
  line-height: 1 !important;
  box-shadow: none !important;
}

.trust {
  max-width: 500px !important;
  margin-top: .72rem !important;
  border-radius: 16px !important;
}

.trust div {
  padding: .5rem .78rem !important;
}

.trust strong {
  font-size: 1.05rem !important;
  line-height: 1 !important;
  margin-bottom: .12rem !important;
}

.trust span {
  font-size: .78rem !important;
  line-height: 1.15 !important;
}

.socials {
  margin-top: .65rem !important;
  margin-bottom: .65rem !important;
}

@media(max-width:760px){
  .cta .price,
  .shell.cta .price,
  .service-cta .price { max-width: 100% !important; }
  .cta .price strong,
  .shell.cta .price strong,
  .service-cta .price strong { font-size: clamp(1.85rem, 9vw, 2.35rem) !important; }
  .trust { grid-template-columns: 1fr !important; max-width: 100% !important; }
}

/* About page content replacement */
.about-hero {
  background:
    linear-gradient(135deg, rgba(255,232,239,.96), rgba(255,248,251,.92)),
    url("assets/hero-massage.webp") center/cover no-repeat;
}
.about-hero h1 {
  max-width: 880px;
}
.about-story {
  padding-top: 4.5rem;
  padding-bottom: 3rem;
}
.about-intro-card,
.safety-card {
  border: 1px solid var(--line);
  border-radius: 34px;
  background: rgba(255,255,255,.88);
  box-shadow: var(--shadow);
  padding: clamp(1.6rem, 4vw, 3rem);
}
.about-intro-card h2,
.about-two-col h2,
.safety-card h2 {
  margin: 0 0 1rem;
  max-width: 900px;
  font-family: Georgia, "Times New Roman", serif;
  font-size: clamp(2.1rem, 4.5vw, 4rem);
  line-height: 1;
  letter-spacing: -.04em;
  font-weight: 500;
  color: #492333;
}
.about-intro-card p,
.about-copy p,
.safety-card p,
.about-note {
  color: var(--muted);
  font-size: 1.05rem;
  max-width: 980px;
}
.about-section {
  padding-top: 3.5rem;
  padding-bottom: 3.5rem;
}
.about-two-col {
  display: grid;
  grid-template-columns: .85fr 1.15fr;
  gap: 2.4rem;
  align-items: start;
}
.about-copy {
  border-left: 3px solid rgba(239,64,95,.2);
  padding-left: 1.8rem;
}
.visit-steps {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 1rem;
}
.visit-steps article:nth-child(5) {
  grid-column: 1 / -1;
}
.visit-steps .soft p {
  color: var(--muted);
}
.client-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 1rem;
}
.client-grid article {
  padding: 1.35rem;
  border-radius: 22px;
  border: 1px solid rgba(239,64,95,.13);
  background: rgba(255,255,255,.82);
  box-shadow: 0 12px 34px rgba(108,60,84,.06);
}
.client-grid h3 {
  margin: 0 0 .55rem;
  color: #492333;
  font-size: 1rem;
  line-height: 1.2;
}
.client-grid p {
  margin: 0;
  color: var(--muted);
  font-size: .93rem;
  line-height: 1.55;
}
.about-note {
  margin: 1.5rem 0 0;
  padding: 1rem 1.2rem;
  border-radius: 20px;
  background: #fff0f5;
  border: 1px solid rgba(239,64,95,.12);
  max-width: none;
}
.safety-section {
  padding-top: 2.5rem;
}
.safety-card {
  background: linear-gradient(135deg, rgba(255,255,255,.94), rgba(255,237,244,.88));
}
.about-actions {
  display: flex;
  flex-wrap: wrap;
  gap: .85rem;
  margin-top: 1.4rem;
}

@media(max-width:1020px){
  .about-two-col,
  .visit-steps,
  .client-grid {
    grid-template-columns: 1fr !important;
  }
  .visit-steps article:nth-child(5) {
    grid-column: auto;
  }
  .about-copy {
    border-left: 0;
    padding-left: 0;
  }
}

/* ---- SEO / AI optimization pages ---- */
.seo-local .local-keyword-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem}.seo-page-hero{background:linear-gradient(135deg,#ffe8ef,#fff8fb 60%,#fff)}.seo-service-layout{display:grid;grid-template-columns:1fr 360px;gap:1.4rem;align-items:start}.seo-main,.seo-aside .soft{border:1px solid var(--line);border-radius:28px;background:rgba(255,255,255,.84);box-shadow:0 16px 50px rgba(108,60,84,.08);padding:1.65rem}.seo-main h2{font-family:Georgia,serif;font-size:clamp(2.1rem,4vw,3.5rem);line-height:1;margin:.2rem 0 1rem}.seo-main h3{margin:2rem 0 .8rem;color:#492333}.keyword-chips{display:flex;flex-wrap:wrap;gap:.55rem;margin:1.2rem 0 1.6rem}.keyword-chips span{display:inline-flex;padding:.48rem .75rem;border-radius:999px;background:#fff0f5;color:var(--red);font-weight:850;font-size:.9rem}.seo-prices small{display:block;color:var(--muted);font-weight:600}.seo-aside{display:grid;gap:1rem;position:sticky;top:108px}.seo-aside .contact-card h2{font-size:2rem}.related-services nav{display:grid;gap:.55rem}.related-services a{color:var(--red);font-weight:850}.related-services a:hover{text-decoration:underline;text-underline-offset:.2em}.footer-services nav a[href$='.html'],.submenu a[href$='.html']{line-height:1.25}
@media(max-width:1020px){.seo-service-layout,.seo-local .local-keyword-grid{grid-template-columns:1fr}.seo-aside{position:static}.seo-local .local-keyword-grid{gap:.75rem}}


/* ---- Financial District location banner above footer ---- */
.location-banner {
  max-width: var(--max);
  margin: 0 auto;
  padding: 0 1.1rem 3rem;
}

.location-banner__inner {
  min-height: clamp(280px, 34vw, 420px);
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  gap: 1rem;
  text-align: center;
  padding: clamp(2.5rem, 5vw, 4.6rem);
  border-radius: 34px;
  background:
    linear-gradient(90deg, rgba(247, 111, 153, 0.58) 0%, rgba(247, 147, 126, 0.44) 38%, rgba(247, 187, 106, 0.36) 100%),
    url('assets/financial-district-location.jpg') center center / cover no-repeat;
  box-shadow: 0 22px 70px rgba(108, 60, 84, 0.16);
  overflow: hidden;
}

.location-banner__inner .eyebrow {
  margin: 0;
  color: rgba(255,255,255,0.88);
}

.location-banner__inner h2 {
  margin: 0;
  max-width: 980px;
  color: #ffffff;
  font-family: Georgia, 'Times New Roman', serif;
  font-size: clamp(2.2rem, 5.4vw, 4.3rem);
  line-height: 1.05;
  text-shadow: 0 4px 22px rgba(73,35,51,0.16);
}

.location-banner__inner p:not(.eyebrow) {
  max-width: 780px;
  margin: 0;
  color: rgba(255,255,255,0.96);
  font-size: clamp(1rem, 1.5vw, 1.24rem);
  line-height: 1.6;
  text-shadow: 0 2px 10px rgba(73,35,51,0.14);
}

.location-banner__actions {
  display: flex;
  justify-content: center;
  gap: 0.8rem;
  margin-top: 0.25rem;
}

.location-banner__actions .btn.light {
  min-width: 260px;
  background: rgba(255,255,255,0.94);
  color: var(--red);
  border-color: rgba(255,255,255,0.92);
}

.location-banner__actions .btn.light:hover {
  background: #ffffff;
}

@media (max-width: 780px) {
  .location-banner {
    padding: 0 1rem 2.4rem;
  }

  .location-banner__inner {
    min-height: 240px;
    padding: 2.2rem 1.3rem;
    gap: 0.85rem;
    border-radius: 26px;
  }

  .location-banner__actions .btn.light {
    min-width: 0;
    width: 100%;
  }
}


/* ---- Full-bleed location banner override ---- */
.location-banner {
  width: 100%;
  max-width: none;
  margin: 0;
  padding: 0 0 3rem;
}

.location-banner__inner {
  width: 100%;
  max-width: none;
  border-radius: 0;
  min-height: clamp(340px, 38vw, 520px);
}

@media (max-width: 780px) {
  .location-banner {
    padding: 0 0 2.4rem;
  }

  .location-banner__inner {
    min-height: 300px;
    border-radius: 0;
  }
}

/* ---- Remove gap between full-width location banner and footer ---- */
.location-banner {
  padding-bottom: 0 !important;
  margin-bottom: 0 !important;
}

.location-banner__inner {
  margin-bottom: 0 !important;
}

.location-banner + .footer {
  margin-top: 0 !important;
}

@media (max-width: 780px) {
  .location-banner {
    padding-bottom: 0 !important;
  }
}

/* ---- Endosphères image integration ---- */
.endospheres-showcase {
  align-items: center;
}

.endo-visual-stack {
  display: grid;
  gap: 1rem;
}

.endo-feature-image,
.endo-treatment-gallery figure {
  position: relative;
  margin: 0;
  overflow: hidden;
  border-radius: 28px;
  background: #fff;
  border: 1px solid rgba(239, 64, 95, 0.16);
  box-shadow: 0 18px 55px rgba(108,60,84,0.12);
}

.endo-feature-image img,
.endo-treatment-gallery img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.endo-feature-image {
  min-height: 280px;
  aspect-ratio: 16 / 8.5;
}

.endo-feature-image figcaption,
.endo-treatment-gallery figcaption {
  position: absolute;
  left: 0.85rem;
  right: 0.85rem;
  bottom: 0.85rem;
  padding: 0.65rem 0.8rem;
  border-radius: 999px;
  color: #492333;
  background: rgba(255,255,255,0.88);
  font-size: 0.82rem;
  font-weight: 850;
  box-shadow: 0 10px 26px rgba(73,35,51,0.1);
}

.compact-info {
  grid-template-columns: repeat(3, minmax(0,1fr));
}

.compact-info .soft {
  padding: 1.15rem;
}

.compact-info .soft h3 {
  margin-bottom: 0.45rem;
}

.compact-info .soft p {
  font-size: 0.93rem;
  line-height: 1.55;
}

.endo-treatment-gallery {
  display: grid;
  grid-template-columns: 1.2fr 0.9fr 0.9fr;
  gap: 1rem;
  margin: 1.6rem 0 2rem;
}

.endo-treatment-gallery figure {
  min-height: 230px;
  aspect-ratio: 4 / 3;
}

.endo-treatment-gallery figure.large {
  grid-row: span 2;
  aspect-ratio: auto;
  min-height: 460px;
}

.pricing-gallery {
  grid-template-columns: 1.15fr 0.85fr 0.85fr;
  margin-top: 0.6rem;
}

.pricing-gallery figure.large {
  grid-row: auto;
  min-height: 300px;
}

.pricing-gallery figure {
  min-height: 300px;
}

.seo-gallery {
  margin: 1.3rem 0 1.8rem;
}

.compact-gallery {
  grid-template-columns: repeat(3, 1fr);
}

.compact-gallery figure,
.compact-gallery figure.large {
  min-height: 240px;
  grid-row: auto;
  aspect-ratio: 4 / 3;
}

@media (max-width: 1020px) {
  .compact-info,
  .endo-treatment-gallery,
  .pricing-gallery,
  .compact-gallery {
    grid-template-columns: 1fr 1fr;
  }

  .endo-treatment-gallery figure.large {
    grid-column: 1 / -1;
    min-height: 340px;
  }
}

@media (max-width: 700px) {
  .compact-info,
  .endo-treatment-gallery,
  .pricing-gallery,
  .compact-gallery {
    grid-template-columns: 1fr;
  }

  .endo-feature-image,
  .endo-treatment-gallery figure,
  .endo-treatment-gallery figure.large,
  .pricing-gallery figure,
  .pricing-gallery figure.large,
  .compact-gallery figure {
    min-height: 240px;
    aspect-ratio: 4 / 3;
  }

  .endo-feature-image figcaption,
  .endo-treatment-gallery figcaption {
    position: static;
    border-radius: 0;
    box-shadow: none;
  }
}


/* ---- Clean Endosphères gallery + video revision ---- */
.endo-video-card {
  position: relative;
  width: 100%;
  aspect-ratio: 16 / 9;
  overflow: hidden;
  border-radius: 28px;
  background: #20121a;
  border: 1px solid rgba(239,64,95,.14);
  box-shadow: 0 18px 55px rgba(108,60,84,.12);
}

.endo-video-card iframe {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  border: 0;
}

.endo-scroll-section {
  max-width: var(--max);
  margin: 0 auto;
  padding: 0 1.1rem 5rem;
}

.endo-scroll-section .section-head.compact {
  margin-bottom: 1rem;
}

.endo-scroll-section .section-head.compact h2 {
  font-size: clamp(2rem, 3.4vw, 3.5rem);
}

.endo-scroll-gallery {
  display: grid;
  grid-auto-flow: column;
  grid-auto-columns: minmax(250px, 340px);
  gap: 1rem;
  overflow-x: auto;
  overflow-y: hidden;
  padding: .3rem .2rem 1rem;
  scroll-snap-type: x proximity;
  -webkit-overflow-scrolling: touch;
}

.endo-scroll-gallery figure {
  position: relative;
  margin: 0;
  height: 235px;
  overflow: hidden;
  border-radius: 24px;
  background: #fff;
  border: 1px solid rgba(239,64,95,.14);
  box-shadow: 0 14px 36px rgba(108,60,84,.10);
  scroll-snap-align: start;
}

.endo-scroll-gallery img {
  width: 100%;
  height: 100%;
  display: block;
  object-fit: cover;
}

.endo-scroll-gallery figcaption {
  position: absolute;
  left: .8rem;
  right: .8rem;
  bottom: .8rem;
  padding: .55rem .75rem;
  border-radius: 999px;
  background: rgba(255,255,255,.9);
  color: #492333;
  font-size: .78rem;
  font-weight: 850;
  box-shadow: 0 8px 22px rgba(73,35,51,.1);
}

/* neutralize the previous masonry/grid treatment if any legacy block remains */
.endo-treatment-gallery {
  display: grid !important;
  grid-auto-flow: column !important;
  grid-auto-columns: minmax(250px, 340px) !important;
  grid-template-columns: none !important;
  overflow-x: auto !important;
  gap: 1rem !important;
  margin: 1.5rem 0 2rem !important;
}
.endo-treatment-gallery figure,
.endo-treatment-gallery figure.large {
  grid-row: auto !important;
  min-height: 0 !important;
  height: 235px !important;
  aspect-ratio: auto !important;
}

@media (max-width: 780px) {
  .endo-scroll-section {
    padding: 0 1rem 3.5rem;
  }
  .endo-scroll-gallery {
    grid-auto-columns: minmax(225px, 82vw);
  }
  .endo-scroll-gallery figure {
    height: 210px;
  }
}


/* ---- YouTube embed + Endosphères alignment fix ---- */
.endospheres-showcase {
  align-items: start !important;
}

.endospheres-showcase > div:first-child {
  padding-top: 0.2rem;
}

.endo-visual-stack {
  align-self: start;
}

.endo-video-card {
  aspect-ratio: 16 / 9;
  background: #1f1f1f;
}

.endo-video-card iframe {
  display: block;
  background: #1f1f1f;
}

@media (max-width: 1020px) {
  .endospheres-showcase > div:first-child {
    padding-top: 0;
  }
}


/* Exact service page structure revision */
.single-service-page .service-menu-section{padding-top:4rem}.service-overview-cards .card{min-height:260px}.service-overview-cards .card .btn{align-self:flex-start}.first-time-panel{grid-column:1/-1}.service-note{max-width:720px}.service-gallery{margin:2rem 0 2.4rem}.service-gallery .section-head.compact{margin-bottom:1rem}.service-gallery .section-head.compact h2{font-size:clamp(1.7rem,3vw,2.7rem)}.service-gallery .endo-scroll-gallery{scrollbar-width:none}.service-gallery .endo-scroll-gallery::-webkit-scrollbar{display:none}.gallery-arrow{position:absolute;z-index:3;width:42px;height:42px;border:0;border-radius:50%;background:rgba(255,255,255,.94);color:var(--red);box-shadow:0 10px 28px rgba(108,60,84,.18);font-size:2rem;font-weight:900;cursor:pointer}.service-gallery{position:relative}.gallery-prev{left:.8rem;top:55%}.gallery-next{right:.8rem;top:55%}.three-column-prices{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem}.two-column-prices{display:grid;grid-template-columns:repeat(2,1fr);gap:1rem}.simple-list small{display:block;color:var(--muted);font-weight:650;margin-top:.18rem}.footer-services nav a[href*="-nyc"],.footer-services nav a[href*="financial-district"]{display:none!important}
@media(max-width:1020px){.three-column-prices,.two-column-prices{grid-template-columns:1fr}.first-time-panel{grid-column:auto}.service-gallery .gallery-arrow{display:none}}


/* ---- Definitive gallery arrows / no scrollbar fix ---- */
.endo-scroll-section {
  position: relative;
}

.endo-scroll-section .section-head.compact {
  margin-bottom: 0.8rem;
}

.gallery-strip-wrap {
  position: relative;
  width: 100%;
}

.endo-scroll-gallery {
  display: flex !important;
  gap: 1rem;
  overflow-x: auto !important;
  overflow-y: hidden !important;
  scroll-behavior: smooth;
  scrollbar-width: none !important;
  -ms-overflow-style: none !important;
  padding: 0.25rem 0.2rem 0.8rem;
}

.endo-scroll-gallery::-webkit-scrollbar {
  width: 0 !important;
  height: 0 !important;
  display: none !important;
}

.endo-scroll-gallery figure {
  flex: 0 0 clamp(240px, 28vw, 360px);
}

.gallery-strip-wrap .gallery-arrow {
  position: absolute !important;
  top: 50% !important;
  transform: translateY(-50%);
  z-index: 20;
  width: 46px;
  height: 46px;
  display: grid;
  place-items: center;
  border: 0;
  border-radius: 50%;
  background: rgba(255,255,255,0.96);
  color: var(--red);
  box-shadow: 0 12px 32px rgba(108,60,84,.22);
  font-size: 2.1rem;
  line-height: 1;
  font-weight: 900;
  cursor: pointer;
}

.gallery-strip-wrap .gallery-prev {
  left: 0.6rem !important;
}

.gallery-strip-wrap .gallery-next {
  right: 0.6rem !important;
}

@media (max-width: 780px) {
  .gallery-strip-wrap .gallery-arrow {
    width: 40px;
    height: 40px;
    font-size: 1.8rem;
  }
}
