/* ==========================================================================
   Lissom Massage — custom design system
   ========================================================================== */

/* Theme's root-padding-aware alignfull relies on undefined CSS vars here,
   so it silently fails to break out; and its is-layout-constrained rule
   re-caps any direct child lacking the alignfull class to 700px. Force
   real full-bleed on both the block wrapper and our raw section root. */
.alignfull{
  width:100vw !important;
  max-width:100vw !important;
  margin-left:calc(50% - 50vw) !important;
  margin-right:calc(50% - 50vw) !important;
  margin-top:0 !important;
  margin-bottom:0 !important;
  padding-left:0 !important;
  padding-right:0 !important;
}

html{overflow-x:hidden;}

:root{
  --clr-cream: #F4EEE2;
  --clr-cream-2: #EAE1CE;
  --clr-espresso: #2A1B13;
  --clr-espresso-2: #3B2A20;
  --clr-olive: #333C28;
  --clr-olive-dark: #262D1D;
  --clr-rose: #D9A79C;
  --clr-rose-dark: #C68F82;
  --clr-text: #3A2E25;
  --clr-text-soft: #6E6153;
  --clr-light: #F6F1E7;
  --clr-line: rgba(58,46,37,0.18);
  --clr-line-light: rgba(246,241,231,0.28);
  --font-display: 'Fraunces', Georgia, 'Times New Roman', serif;
  --font-body: 'Jost', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
  --wrap: 1240px;
}

/* ---- reset-ish base for our sections only ---- */
.lsm{box-sizing:border-box;}
.lsm *,.lsm *::before,.lsm *::after{box-sizing:border-box;}
.lsm{font-family:var(--font-body); color:var(--clr-text); -webkit-font-smoothing:antialiased;}
.lsm img{max-width:100%; display:block; height:auto;}
.lsm a{text-decoration:none; color:inherit;}
.lsm ul{list-style:none; margin:0; padding:0;}
.lsm h1,.lsm h2,.lsm h3,.lsm h4,.lsm p{margin:0;}
.lsm .container{max-width:var(--wrap); margin:0 auto; padding:0 40px;}

.lsm .eyebrow{
  font-family:var(--font-body);
  font-size:12px;
  letter-spacing:0.2em;
  text-transform:uppercase;
  font-weight:500;
}

.lsm .link-arrow{
  display:inline-flex;
  align-items:center;
  gap:8px;
  font-size:12px;
  letter-spacing:0.14em;
  text-transform:uppercase;
  font-weight:500;
  border-bottom:1px solid currentColor;
  padding-bottom:4px;
  transition:opacity .25s ease, gap .25s ease;
}
.lsm .link-arrow:hover{gap:12px; opacity:0.75;}

.lsm .btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:8px;
  padding:16px 34px;
  border-radius:999px;
  font-family:var(--font-body);
  font-size:12px;
  letter-spacing:0.16em;
  text-transform:uppercase;
  font-weight:500;
  border:1px solid transparent;
  cursor:pointer;
  transition:transform .3s ease, background .3s ease, color .3s ease, border-color .3s ease;
  white-space:nowrap;
}
.lsm .btn:hover{transform:translateY(-2px);}
.lsm .btn-rose{background:var(--clr-rose); color:var(--clr-espresso);}
.lsm .btn-rose:hover{background:var(--clr-rose-dark);}
.lsm .btn-outline-dark{background:transparent; color:var(--clr-espresso); border-color:var(--clr-text);}
.lsm .btn-outline-dark:hover{background:var(--clr-espresso); color:var(--clr-light); border-color:var(--clr-espresso);}
.lsm .btn-outline-light{background:transparent; color:var(--clr-light); border-color:var(--clr-line-light);}
.lsm .btn-outline-light:hover{background:var(--clr-light); color:var(--clr-espresso); border-color:var(--clr-light);}

/* ==========================================================================
   Header
   ========================================================================== */
.lsm-header{
  position:absolute;
  top:0; left:0; right:0;
  z-index:40;
  padding:28px 0;
}
.lsm-header.is-static,
body:not(.home) .lsm-header{
  position:relative;
  background:var(--clr-espresso);
}
body:not(.home) .lsm-header .lsm-burger{border-color:var(--clr-line-light);}
.lsm-header.is-scrolled{
  position:fixed;
  background:var(--clr-espresso);
  box-shadow:0 8px 24px rgba(0,0,0,0.18);
  animation:lsmSlideDown .3s ease;
}
@keyframes lsmSlideDown{from{transform:translateY(-100%);} to{transform:translateY(0);}}
.lsm-header .container{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:24px;
}
.lsm-logo{
  font-family:var(--font-display);
  font-size:24px;
  letter-spacing:0.14em;
  line-height:1.1;
  color:var(--clr-light);
}
.lsm-logo span{
  display:block;
  font-family:var(--font-body);
  font-size:9px;
  letter-spacing:0.32em;
  font-weight:400;
  margin-top:3px;
  opacity:0.75;
}
.lsm-nav{display:flex; align-items:center; gap:40px;}
.lsm-nav ul{display:flex; align-items:center; gap:34px;}
.lsm-nav a{
  font-size:12px;
  letter-spacing:0.12em;
  text-transform:uppercase;
  color:var(--clr-light);
  font-weight:400;
  padding-bottom:6px;
  border-bottom:1px solid transparent;
  transition:opacity .25s ease, border-color .25s ease;
}
.lsm-nav a:hover{opacity:0.8;}
.lsm-nav li.current a{border-color:currentColor;}
.lsm-burger{
  display:none;
  width:40px; height:40px;
  border:1px solid var(--clr-line-light);
  border-radius:50%;
  align-items:center;
  justify-content:center;
  background:transparent;
  cursor:pointer;
  flex-shrink:0;
}
.lsm-burger span{position:relative; width:16px; height:1px; background:var(--clr-light); display:block;}
.lsm-burger span::before,.lsm-burger span::after{content:"";position:absolute; left:0; width:100%; height:1px; background:var(--clr-light);}
.lsm-burger span::before{top:-5px;}
.lsm-burger span::after{top:5px;}

/* ==========================================================================
   Hero
   ========================================================================== */
.lsm-hero{
  position:relative;
  min-height:92vh;
  display:flex;
  align-items:flex-end;
  overflow:hidden;
  background:var(--clr-espresso);
}
.lsm-hero__bg{
  position:absolute; inset:0;
  background-size:cover;
  background-position:center 25%;
}
.lsm-hero__overlay{
  position:absolute; inset:0;
  background:linear-gradient(180deg, rgba(20,12,8,0.15) 0%, rgba(20,12,8,0.15) 40%, rgba(15,9,6,0.75) 100%);
}
.lsm-hero__content{
  position:relative;
  z-index:5;
  width:100%;
  padding:0 0 90px;
}
.lsm-hero .container{
  display:flex;
  align-items:flex-end;
  justify-content:space-between;
  gap:40px;
}
.lsm-hero__main{max-width:640px;}
.lsm-hero__eyebrow{color:var(--clr-rose); margin-bottom:22px; display:block;}
.lsm-hero h1{
  font-family:var(--font-display);
  font-weight:400;
  font-size:clamp(48px, 6.4vw, 84px);
  line-height:1.03;
  color:var(--clr-light);
  margin-bottom:26px;
}
.lsm-hero p{
  color:var(--clr-light);
  opacity:0.85;
  font-size:16px;
  line-height:1.7;
  max-width:420px;
  margin-bottom:36px;
  font-weight:300;
}
.lsm-hero__side{
  display:flex;
  align-items:center;
  gap:18px;
  color:var(--clr-light);
  opacity:0.8;
  padding-bottom:8px;
  flex-shrink:0;
}
.lsm-hero__side-line{width:1px; height:64px; background:var(--clr-line-light);}
.lsm-hero__side-text{
  writing-mode:vertical-rl;
  transform:rotate(180deg);
  font-size:11px;
  letter-spacing:0.22em;
  text-transform:uppercase;
  max-width:16px;
}

/* ==========================================================================
   Philosophy
   ========================================================================== */
.lsm-philosophy{background:var(--clr-cream); padding:130px 0;}
.lsm-philosophy .container{
  display:grid;
  grid-template-columns:1.15fr 0.7fr 1fr;
  gap:60px;
  align-items:center;
}
.lsm-philosophy__eyebrow{color:var(--clr-text-soft); margin-bottom:22px; display:block;}
.lsm-philosophy h2{
  font-family:var(--font-display);
  font-weight:400;
  font-size:clamp(32px, 3.4vw, 46px);
  line-height:1.15;
  color:var(--clr-espresso);
  margin-bottom:26px;
}
.lsm-philosophy p{
  font-size:15px;
  line-height:1.85;
  color:var(--clr-text-soft);
  font-weight:300;
  margin-bottom:32px;
  max-width:440px;
}
.lsm-philosophy__img{
  border-radius:2px;
  overflow:hidden;
  aspect-ratio:3/4;
  position:relative;
}
.lsm-philosophy__img::before,.lsm-philosophy__img::after{
  content:"";
  position:absolute; top:-24px; bottom:-24px; width:1px;
  background:var(--clr-line);
}
.lsm-philosophy__img::before{left:-24px;}
.lsm-philosophy__img::after{right:-24px;}
.lsm-philosophy__img img{width:100%; height:100%; object-fit:cover;}
.lsm-philosophy__list{border-left:1px solid var(--clr-line); padding-left:44px;}
.lsm-philosophy__list ul{display:flex; flex-direction:column; gap:14px; margin-bottom:36px;}
.lsm-philosophy__list li{
  font-size:12px;
  letter-spacing:0.18em;
  text-transform:uppercase;
  color:var(--clr-text);
  font-weight:500;
}
.lsm-philosophy__tag{
  font-family:var(--font-display);
  font-style:italic;
  font-size:19px;
  color:var(--clr-text-soft);
  border-top:1px solid var(--clr-line);
  padding-top:24px;
}

/* ==========================================================================
   Experiences
   ========================================================================== */
.lsm-experiences{background:var(--clr-olive); padding:130px 0;}
.lsm-experiences__head{
  display:flex;
  justify-content:space-between;
  align-items:flex-end;
  gap:40px;
  margin-bottom:70px;
}
.lsm-experiences__eyebrow{color:var(--clr-rose); margin-bottom:20px; display:block;}
.lsm-experiences h2{
  font-family:var(--font-display);
  font-weight:400;
  font-size:clamp(32px, 3.6vw, 48px);
  line-height:1.15;
  color:var(--clr-light);
  max-width:480px;
}
.lsm-experiences__head-right{max-width:340px; text-align:left;}
.lsm-experiences__head-right p{
  color:var(--clr-light);
  opacity:0.75;
  font-size:15px;
  line-height:1.75;
  font-weight:300;
  margin-bottom:18px;
}
.lsm-experiences__head-right .link-arrow{color:var(--clr-light);}
.lsm-cards{display:grid; grid-template-columns:repeat(3,1fr); gap:26px;}
.lsm-card{
  position:relative;
  aspect-ratio:3/4;
  border-radius:2px;
  overflow:hidden;
  display:flex;
  align-items:flex-end;
  background:var(--clr-espresso-2);
}
.lsm-card img{
  position:absolute; inset:0; width:100%; height:100%; object-fit:cover;
  transition:transform .6s ease;
}
.lsm-card:hover img{transform:scale(1.06);}
.lsm-card__overlay{
  position:absolute; inset:0;
  background:linear-gradient(180deg, rgba(20,12,8,0) 45%, rgba(15,9,6,0.82) 100%);
}
.lsm-card__body{position:relative; z-index:2; padding:30px 28px;}
.lsm-card__body h3{
  font-family:var(--font-display);
  font-weight:400;
  font-size:28px;
  color:var(--clr-light);
  margin-bottom:8px;
}
.lsm-card__body span{
  font-size:10.5px;
  letter-spacing:0.18em;
  text-transform:uppercase;
  color:var(--clr-rose);
  font-weight:500;
}

/* ==========================================================================
   Therapists
   ========================================================================== */
.lsm-therapists{background:var(--clr-cream); padding:130px 0 110px;}
.lsm-therapists__head{
  display:flex;
  justify-content:space-between;
  align-items:flex-end;
  gap:40px;
  margin-bottom:64px;
}
.lsm-therapists__eyebrow{color:var(--clr-text-soft); margin-bottom:20px; display:block;}
.lsm-therapists h2{
  font-family:var(--font-display);
  font-weight:400;
  font-size:clamp(32px, 3.6vw, 48px);
  line-height:1.15;
  color:var(--clr-espresso);
  max-width:420px;
}
.lsm-therapists__head-right{max-width:380px;}
.lsm-therapists__head-right p{
  color:var(--clr-text-soft);
  font-size:15px;
  line-height:1.75;
  font-weight:300;
  margin-bottom:18px;
}

.lsm-carousel{display:flex; align-items:center; gap:22px;}
.lsm-carousel__arrow{
  width:52px; height:52px;
  border-radius:50%;
  border:1px solid var(--clr-line);
  background:transparent;
  display:flex; align-items:center; justify-content:center;
  cursor:pointer;
  flex-shrink:0;
  color:var(--clr-espresso);
  transition:background .25s ease, color .25s ease;
}
.lsm-carousel__arrow:hover{background:var(--clr-espresso); color:var(--clr-light);}
.lsm-carousel__arrow svg{width:16px; height:16px;}
.lsm-carousel__viewport{overflow:hidden; flex:1;}
.lsm-carousel__track{
  display:flex;
  gap:26px;
  transition:transform .5s cubic-bezier(.65,0,.35,1);
}
.lsm-therapist{flex:0 0 calc((100% - 52px) / 3);}
.lsm-therapist__img{
  aspect-ratio:3/3.7;
  border-radius:2px;
  overflow:hidden;
  background:linear-gradient(160deg, var(--clr-cream-2), #DDCFB4 60%, var(--clr-rose) 130%);
  display:flex;
  align-items:center;
  justify-content:center;
  position:relative;
  margin-bottom:20px;
}
.lsm-therapist__img img{width:100%; height:100%; object-fit:cover;}
.lsm-therapist__monogram{
  font-family:var(--font-display);
  font-size:56px;
  font-weight:400;
  color:var(--clr-espresso);
  opacity:0.35;
}
.lsm-therapist__name{
  font-size:13px;
  letter-spacing:0.16em;
  text-transform:uppercase;
  font-weight:600;
  color:var(--clr-espresso);
  margin-bottom:6px;
}
.lsm-therapist__role{
  font-family:var(--font-display);
  font-style:italic;
  font-size:13px;
  color:var(--clr-text-soft);
  margin-bottom:14px;
}
.lsm-therapist .link-arrow{font-size:10.5px; color:var(--clr-espresso);}

.lsm-therapists__quote{
  max-width:640px;
  margin:70px auto 0;
  text-align:center;
  font-family:var(--font-display);
  font-style:italic;
  font-size:19px;
  line-height:1.7;
  color:var(--clr-text-soft);
}

/* ==========================================================================
   Gallery (native WP gallery block lives inside this wrapper)
   ========================================================================== */
.lsm-gallery{background:var(--clr-olive-dark); padding:110px 0;}
.lsm-gallery__head{text-align:center; max-width:600px !important; margin:0 auto 56px !important;}
.lsm-gallery__eyebrow{color:var(--clr-rose); display:block; margin-bottom:18px; text-align:center;}
.lsm-gallery h2{
  font-family:var(--font-display);
  font-weight:400;
  font-size:clamp(30px, 3.4vw, 42px);
  color:var(--clr-light);
  margin-bottom:16px;
}
.lsm-gallery__head p{
  color:var(--clr-light);
  opacity:0.7;
  font-size:15px;
  line-height:1.75;
  font-weight:300;
}
.lsm-gallery__body{max-width:var(--wrap) !important; width:100% !important; margin:0 auto !important; padding:0 40px;}
.lsm-gallery__body .wp-block-gallery{margin:0;}
.lsm-gallery__empty{
  border:1px dashed var(--clr-line-light);
  border-radius:4px;
  padding:70px 30px;
  text-align:center;
  color:var(--clr-light);
  opacity:0.55;
  font-size:13px;
  letter-spacing:0.08em;
}

/* ==========================================================================
   Testimonial
   ========================================================================== */
.lsm-testimonial{
  position:relative;
  min-height:520px;
  display:flex;
  align-items:center;
  justify-content:center;
  overflow:hidden;
}
.lsm-testimonial__bg{position:absolute; inset:0; background-size:cover; background-position:center;}
.lsm-testimonial__overlay{position:absolute; inset:0; background:rgba(20,12,8,0.6);}
.lsm-testimonial__content{position:relative; z-index:3; max-width:760px; padding:0 40px; text-align:center;}
.lsm-testimonial blockquote{
  font-family:var(--font-display);
  font-style:italic;
  font-weight:400;
  font-size:clamp(24px, 3vw, 36px);
  line-height:1.4;
  color:var(--clr-light);
  margin-bottom:26px;
}
.lsm-testimonial cite{
  font-style:normal;
  font-size:11px;
  letter-spacing:0.2em;
  text-transform:uppercase;
  color:var(--clr-rose);
  display:block;
  margin-bottom:34px;
}
.lsm-testimonial__nav{display:flex; align-items:center; justify-content:center; gap:26px;}
.lsm-testimonial__arrow{
  width:42px; height:42px;
  border-radius:50%;
  border:1px solid var(--clr-line-light);
  background:transparent;
  color:var(--clr-light);
  display:flex; align-items:center; justify-content:center;
  cursor:pointer;
  transition:background .25s ease, color .25s ease;
}
.lsm-testimonial__arrow:hover{background:var(--clr-light); color:var(--clr-espresso);}
.lsm-testimonial__arrow svg{width:14px; height:14px;}
.lsm-testimonial__dots{display:flex; gap:9px;}
.lsm-testimonial__dots button{
  width:7px; height:7px;
  border-radius:50%;
  border:none;
  background:rgba(246,241,231,0.4);
  cursor:pointer;
  padding:0;
}
.lsm-testimonial__dots button.is-active{background:var(--clr-light); width:20px; border-radius:4px;}

/* ==========================================================================
   CTA
   ========================================================================== */
.lsm-cta{background:var(--clr-cream); overflow:hidden;}
.lsm-cta__inner{display:grid; grid-template-columns:0.8fr 1.2fr; align-items:stretch;}
.lsm-cta__img{min-height:340px; background-size:cover; background-position:center;}
.lsm-cta__content{
  padding:80px 60px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:40px;
  background:var(--clr-cream);
}
.lsm-cta__main{max-width:420px;}
.lsm-cta__eyebrow{color:var(--clr-text-soft); margin-bottom:18px; display:block;}
.lsm-cta h2{
  font-family:var(--font-display);
  font-weight:400;
  font-size:clamp(30px, 3.2vw, 42px);
  color:var(--clr-espresso);
  margin-bottom:30px;
}
.lsm-cta__side{
  border-left:1px solid var(--clr-line);
  padding-left:34px;
  font-family:var(--font-display);
  font-style:italic;
  font-size:17px;
  line-height:1.7;
  color:var(--clr-text-soft);
  flex-shrink:0;
}

/* ==========================================================================
   Footer
   ========================================================================== */
.lsm-footer{background:var(--clr-olive-dark); padding:64px 0 30px;}
.lsm-footer__top{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:30px;
  padding-bottom:40px;
  border-bottom:1px solid var(--clr-line-light);
  flex-wrap:wrap;
}
.lsm-footer__logo{
  font-family:var(--font-display);
  font-size:20px;
  letter-spacing:0.12em;
  color:var(--clr-light);
  line-height:1.2;
}
.lsm-footer__logo span{
  display:block;
  font-family:var(--font-body);
  font-size:9px;
  letter-spacing:0.3em;
  opacity:0.7;
  margin-top:2px;
}
.lsm-footer__nav ul{display:flex; gap:30px; flex-wrap:wrap;}
.lsm-footer__nav a{
  font-size:12px;
  letter-spacing:0.1em;
  text-transform:uppercase;
  color:var(--clr-light);
  opacity:0.85;
}
.lsm-footer__nav a:hover{opacity:1;}
.lsm-footer__social{display:flex; gap:12px;}
.lsm-footer__social a{
  width:36px; height:36px;
  border-radius:50%;
  border:1px solid var(--clr-line-light);
  display:flex; align-items:center; justify-content:center;
  color:var(--clr-light);
}
.lsm-footer__social svg{width:15px; height:15px;}
.lsm-footer__bottom{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:20px;
  padding-top:26px;
  flex-wrap:wrap;
}
.lsm-footer__bottom p{
  font-size:12px;
  color:var(--clr-light);
  opacity:0.55;
}
.lsm-footer__legal{display:flex; gap:24px;}
.lsm-footer__legal a{font-size:12px; color:var(--clr-light); opacity:0.55;}
.lsm-footer__legal a:hover{opacity:0.9;}

/* ==========================================================================
   Responsive
   ========================================================================== */
@media (max-width: 980px){
  .lsm .container{padding:0 26px;}
  .lsm-gallery__body{padding:0 26px;}
  .lsm-nav{display:none;}
  .lsm-burger{display:flex;}
  .lsm-header.nav-open .lsm-nav{
    display:flex;
    position:absolute;
    top:100%; left:0; right:0;
    background:var(--clr-espresso);
    padding:20px 26px 28px;
    flex-direction:column;
    align-items:flex-start;
    gap:0;
  }
  .lsm-header.nav-open .lsm-nav ul{flex-direction:column; align-items:flex-start; gap:16px; width:100%;}
  .lsm-hero__side{display:none;}
  .lsm-philosophy .container{grid-template-columns:1fr; gap:40px;}
  .lsm-philosophy__img{order:-1; max-width:280px; aspect-ratio:1/1;}
  .lsm-philosophy__list{border-left:none; border-top:1px solid var(--clr-line); padding-left:0; padding-top:32px;}
  .lsm-experiences__head,.lsm-therapists__head{flex-direction:column; align-items:flex-start;}
  .lsm-cards{grid-template-columns:1fr; gap:20px;}
  .lsm-therapist{flex:0 0 calc((100% - 26px) / 2);}
  .lsm-cta__inner{grid-template-columns:1fr;}
  .lsm-cta__img{min-height:220px;}
  .lsm-cta__content{padding:50px 30px; flex-direction:column; align-items:flex-start; gap:30px;}
  .lsm-cta__side{border-left:none; border-top:1px solid var(--clr-line); padding-left:0; padding-top:24px;}
  .lsm-footer__top{flex-direction:column; align-items:flex-start;}
}

@media (max-width: 640px){
  .lsm-hero{min-height:100vh;}
  .lsm-hero h1{font-size:44px;}
  .lsm-therapist{flex:0 0 100%;}
  .lsm-philosophy,.lsm-experiences,.lsm-therapists,.lsm-gallery{padding:80px 0;}
  .lsm-carousel{gap:12px;}
  .lsm-carousel__arrow{width:42px; height:42px;}
}
