/* =========================================================
   Rebar one-page template (layout inspired, not a copy)
   ========================================================= */

:root{
  --bg:#5a5a5a;
  --panel:#4c4c4c;
  --text:#1f1f1f;
  --muted:rgba(31,31,31,.70);
  --line:rgba(31,31,31,.20);
  --shadow: 0 20px 50px rgba(0,0,0,.25);
  --r:16px;
  --max:1140px;
  --success:#2f8f4e;
  --error:#a23a3a;
}

*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  margin:0;
  color:var(--text);
  background: linear-gradient(180deg, rgba(255,255,255,.08), rgba(0,0,0,.10)), var(--bg);
  font-family: Inter, system-ui, -apple-system, Segoe UI, Roboto, Arial, sans-serif;
  overflow-x:hidden;
}
img{max-width:100%; display:block}
a{color:inherit; text-decoration:none}
.container{width:min(var(--max), calc(100% - 32px)); margin:0 auto}
.link{color:var(--muted)}
.link:hover{color:var(--text)}
.hidden{display:none}

/* Top bar */
.topbar{
  position:sticky; top:0; z-index:20;
  background: rgba(90,90,90,.88);
  border-bottom:1px solid var(--line);
}
.topbar__inner{
  display:flex; align-items:center; justify-content:space-between;
  padding:14px 0; gap:12px;
}
.social{display:flex; gap:10px}
.social a{
  width:30px; height:30px; border:1px solid var(--line);
  display:grid; place-items:center; border-radius:6px;
  color:rgba(31,31,31,.9);
  background: rgba(0,0,0,.08);
}
.social svg{width:16px; height:16px; fill: currentColor;}
.social a:hover{border-color:rgba(31,31,31,.4); color:var(--text)}
.brand{display:flex; align-items:center; justify-content:center}
.brand__name{
  font-family: "Montserrat", Unbounded, Inter, sans-serif;
  letter-spacing:.3em;
  font-weight:300;
  font-size: clamp(16px, 2.2vw, 22px);
}
.topbar__actions{display:flex; align-items:center; gap:12px}

/* Buttons */
.btn{
  display:inline-flex; align-items:center; justify-content:center;
  padding:12px 18px;
  border-radius:999px;
  border:1px solid rgba(31,31,31,.25);
  background: rgba(255,255,255,.15);
  color:var(--text);
  transition: transform .15s ease, background .15s ease, border-color .15s ease;
}
.btn:hover{transform:translateY(-1px); background: rgba(255,255,255,.22); border-color:rgba(31,31,31,.45)}
.btn--ghost{background:transparent}
.btn--sm{padding:10px 14px; font-size:14px}
.pill{
  display:inline-flex; align-items:center; justify-content:center;
  padding:10px 18px;
  border-radius:999px;
  border:2px solid rgba(31,31,31,.75);
  background: rgba(255,255,255,.7);
  color:var(--text);
  font-weight:600;
  text-transform:uppercase;
  letter-spacing:.08em;
  font-size:12px;
  box-shadow: 0 6px 0 rgba(31,31,31,.2);
  gap:10px;
}
.pill:hover{transform:translateY(-1px)}

/* Hero */
.hero{
  position:relative;
  min-height: 80vh;
  display:grid;
  align-items:center;
  border-top:1px solid rgba(31,31,31,.35);
  border-bottom:1px solid var(--line);
  background: linear-gradient(180deg, rgba(255,255,255,.06), rgba(0,0,0,.08));
  overflow:hidden;
}
.hero__inner{padding: 70px 0 120px;}
.hero__grid{
  display:grid;
  grid-template-columns: 1.1fr .9fr;
  align-items:start;
  gap: 20px;
  min-height: 60vh;
}
.hero__stack{
  font-family: Unbounded, Inter, sans-serif;
  font-weight:700;
  font-size: clamp(64px, 14vw, 160px);
  line-height: .85;
  text-transform: lowercase;
  color: rgba(20,20,20,.9);
}
.hero__stack span{display:block}
.elementor-element-717cf47f{
  margin-top: 18px;
  display:grid;
  grid-template-columns: 1fr 1fr;
  gap: 0;
}
.elementor-element-2813113d,
.elementor-element-6041680c{
  position: relative;
  border:1px solid rgba(31,31,31,.35);
  overflow:hidden;
  display:flex;
  flex-direction:column;
}
.elementor-element-6041680c{border-left:0}
.elementor-element-2813113d::before,
.elementor-element-6041680c::before{
  content:"";
  position:absolute;
  left:0;
  right:0;
  top:0;
  height:70px;
  background: linear-gradient(180deg, rgba(0,0,0,.35), rgba(0,0,0,0));
  pointer-events:none;
  z-index:2;
}
.elementor-widget-image,
.elementor-widget-container{
  height:100%;
}
.elementor-widget-image img{
  width:100%;
  height:100%;
  display:block;
  object-fit: cover;
  background: rgba(255,255,255,.12);
  filter: grayscale(.18) contrast(.9) brightness(.95) saturate(.9);
  transition: opacity .42s ease, transform .5s ease, filter .42s ease;
  will-change: opacity, transform, filter;
}
.hero-image--left{
  transform: translateY(0);
  object-position: center bottom;
}
.hero-image.is-swapping{
  opacity: .64;
  transform: scale(1.012);
  filter: grayscale(.1) contrast(.92) brightness(1) saturate(1);
}
.hero-caption{
  font-family: "Montserrat", "Inter", sans-serif;
  font-weight:300;
  letter-spacing:.4em;
  font-size: 14px;
  text-transform: uppercase;
  padding: 12px 16px 14px;
  color: rgba(245,245,245,.85);
  background: rgba(0,0,0,.22);
  border-top:1px solid rgba(255,255,255,.12);
  text-align:center;
}
.elementor-widget-image{position:relative}
.elementor-widget-image::after{
  content:"";
  position:absolute;
  inset:0;
  background: linear-gradient(180deg, rgba(0,0,0,.12), rgba(0,0,0,.22));
  mix-blend-mode:multiply;
  pointer-events:none;
}
.elementor-element-73363332{
  position:absolute;
  left:20px;
  bottom:16px;
  max-width: 70%;
}
.elementor-heading-title{
  margin:0;
  color: rgba(245,245,245,.9);
  text-transform: uppercase;
  letter-spacing:.08em;
  font-size: 18px;
  font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;
  text-shadow: 0 2px 8px rgba(0,0,0,.45);
}
.hero__link{
  display:inline-flex;
  align-items:center;
  gap:8px;
  font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;
  text-transform: uppercase;
  letter-spacing:.12em;
  font-size: 14px;
  color: rgba(245,245,245,.95);
  background: rgba(0,0,0,.55);
  padding: 10px 16px;
  border-radius: 10px;
  border:1px solid rgba(255,255,255,.25);
  box-shadow: 0 6px 0 rgba(0,0,0,.25);
}
.hero__title{
  margin: 16px 0 8px;
  font-family: Unbounded, Inter, sans-serif;
  font-weight: 700;
  font-size: clamp(24px, 4vw, 40px);
  line-height: 1.1;
  text-transform: uppercase;
  letter-spacing: .04em;
  color: rgba(245,245,245,.95);
}
.hero__subtitle{
  margin: 0;
  color: rgba(245,245,245,.75);
  line-height: 1.7;
  max-width: 520px;
}
.hero__right{justify-self:end; align-self:center}

/* Marquee */
.marquee{position:absolute; left:0; right:0; bottom:12px; opacity:.95; pointer-events:none; overflow:hidden}
.marquee__track{
  display:flex; gap:32px; white-space:nowrap;
  animation: scroll 16s linear infinite;
  padding: 8px 0;
  width: max-content;
  will-change: transform;
  transform: translateZ(0);
}
.marquee__track span{
  font-family: Unbounded, Inter, sans-serif;
  letter-spacing:.18em;
  text-transform:uppercase;
  font-size: 12px;
  color: rgba(31,31,31,.85);
  flex: 0 0 auto;
}
.marquee--light{
  background: rgba(235,235,235,.8);
  border-top: 1px solid rgba(31,31,31,.2);
  border-bottom: 1px solid rgba(31,31,31,.2);
}
.marquee--dark{
  background: rgba(70,70,70,.9);
  border-top: 1px solid rgba(31,31,31,.35);
  border-bottom: 1px solid rgba(31,31,31,.35);
}
.marquee--dark .marquee__track span{color: rgba(240,240,240,.9)}
@keyframes scroll{from{transform: translate3d(0,0,0)}to{transform: translate3d(-50%,0,0)}}

/* About gallery */
.about-gallery{
  padding: 0 0 14px;
  background: rgba(0,0,0,.06);
  border-bottom: 1px solid var(--line);
}
.about-gallery__inner{
  display:grid;
  grid-template-columns: 1fr 1fr;
  gap: 16px;
  padding-top: 18px;
}
.about-gallery__panel{
  border:1px solid rgba(31,31,31,.25);
  background: rgba(255,255,255,.2);
  padding: 10px;
  box-shadow: 0 14px 30px rgba(0,0,0,.18);
}
.about-gallery__panel img{
  width:100%;
  height: 360px;
  object-fit: cover;
  display:block;
}
.about-title{
  font-family: Unbounded, Inter, sans-serif;
  font-size: clamp(60px, 10vw, 140px);
  line-height: .9;
  padding: 12px 0 28px;
  text-transform: lowercase;
  color: rgba(20,20,20,.85);
}
.about-title span{display:block}

/* About copy */
.about-copy{
  padding: 38px 0 70px;
  background: rgba(0,0,0,.05);
}
.about-copy__inner{display:grid; gap: 0; border-top:1px solid rgba(31,31,31,.25);}
.about-copy__row{
  display:grid;
  grid-template-columns: 1.1fr 1.4fr;
  gap: 18px;
  padding: 22px 0;
  border-bottom:1px solid rgba(31,31,31,.25);
}
.about-copy__row h3{
  margin:0;
  text-transform: uppercase;
  letter-spacing:.08em;
  font-size: 18px;
}
.about-copy__row p{
  margin:0;
  color: rgba(31,31,31,.75);
  line-height:1.7;
  font-size: 14px;
}

/* Statement */
.statement{
  padding: 52px 0;
  background: linear-gradient(180deg, rgba(255,255,255,.08), transparent 70%);
  border-bottom:1px solid var(--line);
}
.statement__inner{display:grid; gap:10px; max-width: 900px;}
.statement h2{
  margin:0;
  font-family: Unbounded, Inter, sans-serif;
  font-size: clamp(22px, 3vw, 34px);
}
.statement p{margin:0; color:var(--muted); line-height:1.7}

/* Sections */
.section{padding: 78px 0}
.section__head{display:flex; align-items:center; justify-content:space-between; gap:12px; margin-bottom: 18px;}
.section h2{
  margin:0;
  font-family: Unbounded, Inter, sans-serif;
  letter-spacing:.06em;
  font-size: 22px;
  text-transform: uppercase;
}
.tag{
  border:1px solid var(--line);
  color: rgba(242,242,242,.75);
  padding:8px 12px;
  border-radius:999px;
  font-size: 12px;
  letter-spacing:.10em;
  text-transform: uppercase;
}

/* Prices */
.prices{display:grid; gap: 12px; max-width: 760px;}
.prices--group + .prices--group{margin-top: 26px;}
.price{
  display:flex; align-items:flex-end; justify-content:space-between; gap:16px;
  padding: 16px 16px;
  border: 1px solid var(--line);
  border-radius: var(--r);
  background: rgba(255,255,255,.08);
}
.price h3{margin:0 0 6px}
.price__sub{margin:0 0 6px;}
.price p{margin:0; color: var(--muted)}
.price ul{margin:0; padding-left: 18px; color: var(--muted)}
.price__list{list-style: disc; padding-left: 18px}
.price ul li{margin:0 0 4px}
.price ul li:last-child{margin-bottom:0}
.price--group-title{background: rgba(255,255,255,.14)}

/* Wellness */
.wellness__grid{
  display:grid;
  grid-template-columns: minmax(240px, 1fr) minmax(0, 1.4fr);
  gap: 18px;
  align-items: start;
}
.wellness__media{
  display:flex;
  justify-content: flex-start;
  padding-left: 24px;
}
.wellness__media img{
  width: 100%;
  max-width: 320px;
  height: 480px;
  display:block;
  object-fit: cover;
  border-radius: 0;
  border:1px solid rgba(0,0,0,.35);
  box-shadow: 0 12px 26px rgba(0,0,0,.18);
}
.wellness__copy h3{margin:6px 0 8px}
.wellness__copy p{margin:0 0 10px; color: var(--muted)}
.wellness__cards{
  display:grid;
  gap: 10px;
  margin: 10px 0 12px;
}
.wellness__card{
  padding: 12px 14px;
  border:1px solid var(--line);
  border-radius: var(--r);
  background: rgba(255,255,255,.08);
}
.wellness__card h4{margin:0 0 6px; font-size: 14px; letter-spacing:.04em; text-transform: uppercase;}
.wellness__card p{margin:0; color: var(--muted)}
.wellness__note{margin-top: 6px; font-style: italic;}
.price__val{font-family: Unbounded, Inter, sans-serif; letter-spacing:.04em; font-size: 18px}

/* Gallery slider */
.gallery{display:grid; grid-template-columns: 44px 1fr 44px; align-items:center; gap: 10px;}
.icon{
  width:44px; height:44px;
  border-radius: 14px;
  border:1px solid var(--line);
  background: rgba(255,255,255,.18);
  color: var(--text);
  cursor:pointer;
  font-size: 22px;
}
.icon:hover{border-color: rgba(242,242,242,.22)}
.gallery__viewport{overflow:hidden; border-radius: var(--r); border:1px solid var(--line); box-shadow: var(--shadow);}
.gallery__track{
  display:grid; grid-auto-flow: column; grid-auto-columns: 100%;
  transition: transform .35s ease;
}
.gallery__track img{width:100%; height: 420px; object-fit: cover; filter: contrast(1.05) saturate(.95);}

/* Media */
.media{
  background: rgba(0,0,0,.04);
  border-top:1px solid var(--line);
  border-bottom:1px solid var(--line);
}
.media__stack{
  display:grid;
  gap: 28px;
}
.media__shelf{
  display:grid;
  gap: 14px;
}
.media__label{
  font-family: Unbounded, Inter, sans-serif;
  font-size: .95rem;
  letter-spacing: .14em;
  text-transform: uppercase;
  color: rgba(20,20,20,.72);
}
.media__grid{
  display:grid;
  gap: 18px;
  align-items: start;
}
.media__grid--photos{
  grid-template-columns: repeat(4, minmax(0, 1fr));
}
.media__grid--videos{
  grid-template-columns: repeat(3, minmax(0, 1fr));
}
.media__item{
  margin:0;
  border:1px solid rgba(31,31,31,.25);
  border-radius: var(--r);
  overflow:hidden;
  background: rgba(255,255,255,.45);
  box-shadow: 0 10px 22px rgba(0,0,0,.12);
}
.media__item img,
.media__item video{
  width:100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
  display:block;
  background: transparent;
}
.media__item--photo{
  min-height: 0;
  padding: 0;
  border-color: transparent;
  background: transparent;
  box-shadow: none;
}
.media__item--photo img{
  width: 100%;
  height: auto;
  object-fit: contain;
}
.media__item--photo-first{
  aspect-ratio: 2 / 3;
}
.media__item--photo .media__photo-first-img{
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
}
.media__item--video{
  min-height: 420px;
  background: rgba(15,15,15,.92);
}
.media__item--video video{
  background: rgba(0,0,0,.3);
}

/* Contact */
.contact-area{
  background: rgba(0,0,0,.06);
  border-top:1px solid rgba(31,31,31,.35);
  border-bottom:1px solid rgba(31,31,31,.35);
  padding: 24px 0 0;
}
.contact-area__head{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap: 16px;
  padding: 10px 0 26px;
  border-bottom:1px solid rgba(31,31,31,.35);
}
.contact-area__title{
  margin:0;
  font-family: Unbounded, Inter, sans-serif;
  font-size: clamp(64px, 12vw, 170px);
  text-transform: lowercase;
  letter-spacing:.02em;
  color: rgba(20,20,20,.85);
}
.contact-area__follow{
  display:flex;
  align-items:center;
  gap: 14px;
  font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;
  text-transform: lowercase;
  letter-spacing:.08em;
}
.contact-area__follow span{text-decoration: underline}
.social--square a{
  width:28px; height:28px;
  border-radius:4px;
  border:1px solid rgba(31,31,31,.45);
  background: rgba(255,255,255,.6);
  font-size: 12px;
}
.contact-area__grid{
  display:grid;
  grid-template-columns: 1fr 1.1fr 1.1fr;
  gap: 18px;
  padding: 22px 0 30px;
  align-items:start;
}
.contact-area__brand{display:grid; gap: 8px; align-content:start;}
.brand-mark{
  font-family: Unbounded, Inter, sans-serif;
  letter-spacing:.3em;
  font-size: 24px;
}
.brand-sub{
  letter-spacing:.7em;
  font-size: 12px;
  text-transform: uppercase;
}
.contact-area__col{padding-left: 18px; border-left:1px solid rgba(31,31,31,.35);}
.contact-area__col h3{
  margin:0 0 8px;
  text-transform: uppercase;
  letter-spacing:.12em;
  font-size: 12px;
}
.contact-area__col p{margin: 6px 0; color: rgba(31,31,31,.75); font-size: 13px;}
.contact-map{
  padding-bottom: 32px;
}
.contact-map iframe{
  width:100%;
  height: 320px;
  border:0;
  border-radius: var(--r);
  box-shadow: var(--shadow);
}

/* Footer */
.footer{border-top:1px solid var(--line); padding: 22px 0; color: rgba(31,31,31,.75);}
.footer__inner{display:flex; justify-content:space-between; align-items:center; gap:12px}
.footer--bar{
  background: rgba(35,35,35,.95);
  border-top:1px solid rgba(0,0,0,.6);
}
.footer--bar .footer__inner{color: rgba(235,235,235,.75)}
.footer--bar .link{color: rgba(235,235,235,.75)}
.footer--bar .link:hover{color: rgba(255,255,255,.95)}
.footer__bar{
  padding: 10px 0;
  justify-content:flex-start;
  gap: 10px;
  font-size: 12px;
  flex-wrap:wrap;
}
.footer__sep{opacity:.5}

/* Booking form */
.booking-form{
  display:grid;
  gap: 12px;
  padding: 18px;
  border:1px solid var(--line);
  border-radius: var(--r);
  background: rgba(255,255,255,.08);
  box-shadow: var(--shadow);
  max-width: 560px;
}
.booking-form .btn{justify-self:start}
.booking-form label{
  display:grid;
  gap: 6px;
  font-size: 13px;
  text-transform: uppercase;
  letter-spacing:.08em;
}
.booking-form input,
.booking-form select{
  width:100%;
  border-radius: 10px;
  border:1px solid rgba(31,31,31,.35);
  background: rgba(255,255,255,.8);
  padding: 10px 12px;
  font-size: 14px;
  font-family: inherit;
  transition: border-color .15s ease, box-shadow .15s ease, background .15s ease;
}
.booking-form input:focus,
.booking-form select:focus{
  outline: none;
  border-color: rgba(31,31,31,.6);
  background: rgba(255,255,255,.95);
  box-shadow: 0 0 0 3px rgba(31,31,31,.08);
}
.message{margin:0; font-size: 13px; color: var(--muted)}
.message.success{color: var(--success)}
.message.error{color: var(--error)}

/* Booking steps */
.booking-shell{display:grid; gap: 18px;}
.booking-steps{display:grid; gap: 20px;}
.booking-step{
  border:1px solid var(--line);
  border-radius: var(--r);
  padding: 22px;
  background: rgba(255,255,255,.08);
  box-shadow: var(--shadow);
}
.booking-step__head{display:flex; gap: 14px; align-items:center; margin-bottom: 16px;}
.booking-step__head h3{margin:0;}
.booking-step__head p{margin: 4px 0 0; color: var(--muted); font-size: 13px;}
.step-pill{
  width:34px; height:34px; border-radius: 50%;
  display:grid; place-items:center;
  background: rgba(31,31,31,.9); color: rgba(255,255,255,.95);
  font-family: Unbounded, Inter, sans-serif; font-size: 14px;
}
.service-grid{display:grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); gap: 12px;}
.service-card{
  text-align:left;
  border-radius: 14px;
  border:1px solid rgba(31,31,31,.25);
  background: rgba(255,255,255,.9);
  padding: 16px;
  cursor:pointer;
  display:grid;
  gap: 8px;
  transition: transform .12s ease, border-color .12s ease, background .12s ease;
}
.service-card h4{margin:0 0 4px; font-size: 16px;}
.service-card p{margin:0; color: var(--muted); font-size: 13px;}
.service-card span{font-family: Unbounded, Inter, sans-serif; font-size: 12px; letter-spacing:.06em; text-transform: uppercase;}
.service-card:hover{transform: translateY(-2px); border-color: rgba(31,31,31,.55);}
.service-card.is-active{border-color: rgba(31,31,31,.9); background: rgba(31,31,31,.9); color: rgba(255,255,255,.95);}
.service-card.is-active p{color: rgba(255,255,255,.75);}
.service-card.is-active span{color: rgba(255,255,255,.85);}
.booking-date{
  display:grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
  gap: 12px; margin-bottom: 14px;
}
.booking-date input{
  border-radius: 12px; border:1px solid rgba(31,31,31,.35);
  background: rgba(255,255,255,.92); padding: 12px 14px;
  font-size: 14px; font-family: inherit;
}
.booking-calendar{
  border:1px solid rgba(31,31,31,.25); border-radius: 16px;
  padding: 12px; background: rgba(255,255,255,.85); margin-bottom: 14px;
}
.calendar-head{display:flex; align-items:center; justify-content:space-between; gap: 10px; margin-bottom: 8px;}
.calendar-month{font-family: Unbounded, Inter, sans-serif; text-transform: uppercase; letter-spacing:.08em; font-size: 13px;}
.calendar-weekdays{
  display:grid; grid-template-columns: repeat(7, 1fr); gap: 6px;
  font-size: 11px; text-transform: uppercase; letter-spacing:.08em;
  color: var(--muted); padding: 6px 0;
}
.calendar-weekdays span{text-align:center;}
.calendar-grid{display:grid; grid-template-columns: repeat(7, 1fr); gap: 6px;}
.calendar-day{
  border:1px solid rgba(31,31,31,.2); background: rgba(255,255,255,.9);
  border-radius: 10px; padding: 8px 6px; min-height: 48px;
  display:flex; flex-direction:column; align-items:center; justify-content:center;
  font-size: 12px; cursor:pointer;
  transition: transform .12s ease, border-color .12s ease, background .12s ease;
}
.calendar-day:hover{transform: translateY(-1px); border-color: rgba(31,31,31,.5);}
.calendar-day.is-disabled{background: rgba(0,0,0,.06); color: rgba(31,31,31,.45); cursor:not-allowed; border-color: rgba(31,31,31,.12);}
.calendar-day.is-selected{background: rgba(31,31,31,.9); color: rgba(255,255,255,.95); border-color: rgba(31,31,31,.9);}
.calendar-day.is-empty{border:0; background: transparent; cursor:default;}
.booking__panel{border:1px solid var(--line); border-radius: var(--r); padding: 14px; background: rgba(255,255,255,.08);}
.booking__status{margin: 0 0 10px; color: var(--muted); font-size: 13px;}
.booking__slots{display:grid; grid-template-columns: repeat(auto-fill, minmax(84px, 1fr)); gap: 10px;}
.booking__slot{
  padding: 10px 8px; border-radius: 10px; border:1px solid rgba(31,31,31,.3);
  background: rgba(255,255,255,.9); font-size: 13px; cursor:pointer;
  text-transform: uppercase; letter-spacing:.06em;
  transition: transform .12s ease, border-color .12s ease;
}
.booking__slot:hover{transform: translateY(-1px); border-color: rgba(31,31,31,.55)}
.booking__slot.is-booked{
  background: rgba(150,0,0,.12); color: rgba(120,0,0,.9);
  border-color: rgba(120,0,0,.45); cursor:not-allowed;
  position: relative;
}
.booking__slot.is-booked::after{
  content: "×";
  position:absolute;
  top:6px;
  right:8px;
  font-size: 12px;
  font-weight:700;
}
.booking__slot.is-selected{background: rgba(31,31,31,.9); color: rgba(255,255,255,.95); border-color: rgba(31,31,31,.9);}
.sr-only{
  position:absolute; width:1px; height:1px; padding:0; margin:-1px;
  overflow:hidden; clip:rect(0,0,0,0); border:0;
}

/* Admin */
.admin-filters{
  display:flex; flex-wrap:wrap; gap: 12px; align-items:end;
  padding: 16px; border:1px solid var(--line); border-radius: var(--r);
  background: rgba(255,255,255,.08); box-shadow: var(--shadow); margin-bottom: 16px;
}
.admin-filters label{display:grid; gap: 6px; font-size: 12px; text-transform: uppercase; letter-spacing:.08em;}
.admin-table{
  padding: 16px; border:1px solid var(--line); border-radius: var(--r);
  background: rgba(255,255,255,.08); box-shadow: var(--shadow); overflow-x:auto;
}
.table{width:100%; border-collapse: collapse; min-width: 720px;}
.table th, .table td{ text-align:left; padding: 10px; border-bottom:1px solid rgba(31,31,31,.25); font-size: 13px; }
.table th{letter-spacing:.08em; text-transform: uppercase; font-size: 11px}
.table tbody tr:hover{background: rgba(255,255,255,.06)}
.status{
  display:inline-flex; align-items:center; padding: 4px 10px; border-radius:999px;
  border:1px solid rgba(31,31,31,.25); font-size: 11px; letter-spacing:.06em; text-transform: uppercase;
}
.status.pending{background: rgba(31,31,31,.08)}
.status.confirmed{background: rgba(33,122,74,.18)}
.status.cancelled{background: rgba(140,31,31,.2)}
.status.done{background: rgba(31,72,140,.2)}
.actions{display:flex; gap:6px; flex-wrap:wrap}
.actions button{
  padding: 6px 10px; border-radius: 999px; border:1px solid rgba(31,31,31,.35);
  background: rgba(255,255,255,.6); font-size: 11px; text-transform: uppercase;
  letter-spacing:.06em; cursor:pointer; transition: transform .12s ease, border-color .12s ease, background .12s ease;
}
.actions button:hover{transform: translateY(-1px); border-color: rgba(31,31,31,.6)}
.actions button.danger{border-color: rgba(140,31,31,.4)}

.admin-login{
  max-width: 520px;
}
.admin-layout{
  display:grid;
  grid-template-columns: minmax(320px, 460px) minmax(0, 1fr);
  gap: 22px;
  align-items:start;
}
.admin-create-form{
  max-width: 100%;
}

/* Responsive */
@media (max-width: 980px){
  .hero__grid{grid-template-columns: 1fr; min-height: auto}
  .hero__right{justify-self:start}
  .elementor-element-717cf47f{grid-template-columns: 1fr}
  .wellness__media{justify-content:center}
  .wellness__grid{grid-template-columns: 1fr}
  .about-gallery__inner{grid-template-columns: 1fr}
  .about-gallery__panel img{height: 320px}
  .about-copy__row{grid-template-columns: 1fr}
  .contact-area__grid{grid-template-columns: 1fr}
  .contact-area__col{padding-left:0; border-left:0; border-top:1px solid rgba(31,31,31,.35); padding-top:14px}
  .booking-form{max-width: 100%}
  .admin-layout{grid-template-columns: 1fr}
  .media__grid--photos{grid-template-columns: repeat(2, minmax(0, 1fr));}
  .media__grid--videos{grid-template-columns: 1fr;}
  .media__item--photo{min-height: 0;}
  .media__item--video{min-height: 320px;}
}
@media (max-width: 560px){
  .gallery{grid-template-columns: 40px 1fr 40px}
  .topbar__inner{gap:10px}
  .pill{padding:8px 12px; font-size:11px}
  .hero__inner{padding: 60px 0 110px}
  .hero__link{font-size:12px}
  .elementor-element-73363332{left:14px; bottom:12px}
  .elementor-heading-title{font-size: 14px}
  .marquee__track{padding: 4px 0;}
  .marquee__track span{font-size: 10px;}
  .media__grid--photos{grid-template-columns: repeat(2, minmax(0, 1fr));}
  .media__item--photo{min-height: 0; padding: 0;}
  .media__item--video{min-height: 240px;}
  .contact-area__head{flex-direction:column; align-items:flex-start}
  .contact-area__title{font-size: clamp(48px, 16vw, 120px)}
  .table{min-width: 0;}
  .table thead{display:none}
  .table, .table tbody, .table tr, .table td{display:block; width:100%}
  .table tr{
    margin-bottom: 12px;
    border:1px solid rgba(31,31,31,.25);
    border-radius: var(--r);
    padding: 8px;
  }
  .table td{
    border-bottom: 0;
    padding: 6px 8px;
  }
  .table td::before{
    content: attr(data-label);
    display:block;
    font-size: 10px;
    text-transform: uppercase;
    letter-spacing:.08em;
    color: var(--muted);
    margin-bottom: 4px;
  }
  .actions{flex-direction:column; align-items:stretch}
  .actions button{width:100%}
}
