/* Luxe refinement: hero cards, About composition, booking symmetry, language control */
.hero-features{width:min(1080px,100%);margin-top:4.35rem;gap:1rem;border:0}
.hero-feature{position:relative;min-height:196px;padding:1.65rem 1.55rem 1.45rem;overflow:hidden;border:1px solid rgba(233,213,192,.22)!important;border-radius:8px;background:linear-gradient(145deg,rgba(52,22,13,.82),rgba(22,9,6,.58));box-shadow:inset 0 1px 0 rgba(255,255,255,.07),0 14px 28px rgba(0,0,0,.16);transition:transform var(--transition),background var(--transition),border-color var(--transition)}
.hero-feature+.hero-feature{border-left:1px solid rgba(233,213,192,.22)}
.hero-feature::before{position:absolute;top:1.1rem;right:1.2rem;color:rgba(233,213,192,.22);font-family:'Playfair Display',serif;font-size:1.05rem;font-style:italic}.hero-feature:nth-child(1)::before{content:'01'}.hero-feature:nth-child(2)::before{content:'02'}.hero-feature:nth-child(3)::before{content:'03'}
.hero-feature:hover{transform:translateY(-6px);border-color:rgba(183,102,63,.72)!important;background:linear-gradient(145deg,rgba(68,28,16,.92),rgba(25,10,6,.70))}
.hero-feature-icon{position:relative;width:52px;height:52px;margin-bottom:1.1rem;border:0;border-radius:50%;color:var(--champagne-light);background:linear-gradient(145deg,#cf875c,#8e4328);box-shadow:0 9px 19px rgba(0,0,0,.25),inset 0 1px 0 rgba(255,255,255,.34);font-size:1rem}
.hero-feature-icon::after{content:'';position:absolute;inset:-4px;border:1px solid rgba(233,213,192,.42);border-radius:50%}.hero-feature h2{margin-bottom:.58rem;font-size:1.08rem}.hero-feature p{max-width:260px;font-size:.82rem;line-height:1.62}

/* Large image with a small, fully visible lower-corner detail. */
.about-images{display:block;position:relative;padding:0 2.9rem 3.35rem 0;max-width:570px}.about-img-main{display:block;width:80%;aspect-ratio:4/5;border:1px solid rgba(91,48,30,.28);box-shadow:0 20px 46px rgba(43,17,9,.16)}.about-img-float{position:absolute;right:0;bottom:0;width:46%;aspect-ratio:1/1;transform:none;border:8px solid #f8f2eb;outline:1px solid rgba(183,102,53,.56);box-shadow:0 18px 36px rgba(43,17,9,.19);object-fit:cover;object-position:center}

/* Booking introduction on a defined central editorial axis. */
#booking .booking-header{width:min(100%,860px);margin:0 auto 4.25rem;text-align:center}#booking .booking-header .section-label{justify-content:center;margin:0 auto 1rem}#booking .booking-header .section-title{max-width:790px;margin:0 auto}#booking .booking-header .section-subtitle{max-width:610px;margin:1.15rem auto 0;text-align:center}#booking .services-category-label{margin-top:0}#booking .services-grid+.services-category-label{margin-top:4.2rem}

/* Visible premium segmented language control. */
.lang-switcher{gap:3px;padding:4px;border:1px solid rgba(233,213,192,.36);border-radius:999px;background:rgba(22,10,7,.54);box-shadow:0 7px 18px rgba(0,0,0,.18),inset 0 1px 0 rgba(255,255,255,.08)}
.lang-btn{width:38px;height:34px;padding:0;border-radius:999px;color:rgba(246,236,225,.68);font-family:'Inter',sans-serif;font-size:.68rem;font-weight:700;letter-spacing:.08em;opacity:1;filter:none}.lang-btn:hover{color:var(--champagne-light);background:rgba(233,213,192,.13)}.lang-btn.active{color:#fffaf5;background:linear-gradient(145deg,#c77a4c,#985033);box-shadow:0 4px 10px rgba(0,0,0,.25),inset 0 1px 0 rgba(255,255,255,.28)}
.mobile-lang{gap:.55rem}.mobile-lang .lang-btn{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;width:auto;min-width:106px;height:42px;padding:0 .9rem;border-radius:3px;color:var(--champagne-light);border:1px solid rgba(233,213,192,.26);background:transparent}.mobile-lang .lang-btn .lang-code{font-weight:700;letter-spacing:.11em}.mobile-lang .lang-btn .lang-name{font-size:.72rem;opacity:.82}.mobile-lang .lang-btn.active{border-color:transparent;background:linear-gradient(145deg,#c77a4c,#985033)}

@media(max-width:900px){.hero-features{grid-template-columns:repeat(3,1fr);gap:.7rem}.hero-feature{min-height:210px;padding:1.35rem 1.15rem}.hero-feature p{font-size:.76rem}}
@media(max-width:640px){.hero-features{margin-top:2.8rem}.hero-feature{padding:1.3rem 1.25rem}.hero-feature-icon{width:46px;height:46px}.about-images{max-width:480px;padding:0 2rem 2.3rem 0}.about-img-main{width:82%}.about-img-float{width:47%;border-width:6px}#booking .booking-header{margin-bottom:3.1rem}#booking .services-grid+.services-category-label{margin-top:3.2rem}}


/* More Than Just A Tan: four new editorial images, all in 4:5. */
#services .service-card-img {
  aspect-ratio: 4 / 5;
  object-fit: cover;
  object-position: center;
}


/* Final booking CTA: deep contrast for unmistakable legibility. */
#booking .services-cta-wrap {
  background: linear-gradient(135deg, #1b0a06 0%, #3f1b11 62%, #231008 100%);
  border-color: rgba(233, 213, 192, .46);
  box-shadow: 0 18px 42px rgba(48, 20, 10, .18), inset 0 1px 0 rgba(255,255,255,.08);
}
#booking .services-cta-text {
  color: #fff8f0 !important;
  font-weight: 600;
  text-shadow: 0 1px 0 rgba(0,0,0,.24);
}
#booking .services-cta-wrap .btn-primary {
  background: linear-gradient(135deg, #d1814f, #a8502e);
  color: #fffaf5;
  border: 1px solid rgba(255,255,255,.20);
  box-shadow: 0 10px 22px rgba(0,0,0,.28);
}
#booking .services-cta-wrap .btn-primary:hover {
  background: linear-gradient(135deg, #e19662, #b6603d);
  color: #ffffff;
}


/* Three sessions: editorial split layout for the full vertical progression image. */
#progression .progression-inner {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(290px, 390px);
  grid-template-areas:
    "label visual"
    "title visual"
    "subtitle visual"
    "body visual"
    "glow visual"
    "button visual";
  column-gap: clamp(2.5rem, 7vw, 7rem);
  row-gap: 0;
  max-width: 1080px;
  margin: 0 auto;
  text-align: left;
  align-items: center;
}
#progression .progression-inner > .section-label { grid-area: label; justify-self: start; margin-bottom: .9rem; }
#progression .progression-inner > .section-title { grid-area: title; max-width: 560px; margin: 0 !important; text-align: left; }
#progression .progression-inner > .section-subtitle { grid-area: subtitle; max-width: 520px; margin: 1.15rem 0 2.1rem !important; text-align: left; }
#progression .progression-img {
  grid-area: visual;
  width: min(100%, 390px);
  margin: 0 auto;
  border: 6px solid rgba(246,236,225,.18);
  background: rgba(18,7,5,.22);
  box-shadow: 0 28px 55px rgba(37,12,5,.35);
}
#progression .progression-img img {
  display: block;
  width: 100%;
  height: auto;
  aspect-ratio: 451 / 800;
  object-fit: contain;
}
#progression .progression-inner > p:not(.section-subtitle) { grid-area: body; max-width: 500px; margin: 0 0 1.65rem !important; text-align: left; }
#progression .progression-inner > h3 { grid-area: glow; margin: 0 0 1.4rem !important; text-align: left; }
#progression .progression-inner > .btn-dark { grid-area: button; justify-self: start; }

@media (max-width: 760px) {
  #progression .progression-inner {
    grid-template-columns: 1fr;
    grid-template-areas:
      "label"
      "title"
      "subtitle"
      "visual"
      "body"
      "glow"
      "button";
    gap: 0;
    text-align: center;
  }
  #progression .progression-inner > .section-label { justify-self: center; }
  #progression .progression-inner > .section-title,
  #progression .progression-inner > .section-subtitle,
  #progression .progression-inner > p:not(.section-subtitle),
  #progression .progression-inner > h3 { text-align: center; }
  #progression .progression-inner > .section-subtitle { margin: 1rem auto 2rem !important; }
  #progression .progression-img { width: min(84vw, 380px); margin: 0 auto 2.1rem; }
  #progression .progression-inner > p:not(.section-subtitle) { margin: 0 auto 1.5rem !important; }
  #progression .progression-inner > .btn-dark { justify-self: center; }
}


/* Three Sessions: enriched editorial story paired with the transformation image. */
#progression .progression-inner {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(290px, 390px);
  grid-template-areas: "copy visual";
  column-gap: clamp(2.75rem, 8vw, 8rem);
  align-items: center;
}
#progression .progression-copy {
  grid-area: copy;
  max-width: 540px;
  text-align: left;
}
#progression .progression-visual { grid-area: visual; }
#progression .progression-copy .section-label {
  justify-content: flex-start;
  margin: 0 0 1rem;
  color: rgba(255,255,255,.82);
}
#progression .progression-copy .section-title {
  margin: 0;
  color: var(--white);
  text-align: left;
  font-size: clamp(2.8rem, 4.7vw, 4.7rem);
  line-height: .98;
}
#progression .progression-copy .section-title em {
  color: var(--champagne-light);
  font-weight: 400;
}
#progression .progression-lead {
  max-width: 500px;
  margin: 1.55rem 0 0;
  color: #fff7ef;
  font-size: 1.08rem;
  line-height: 1.75;
}
#progression .progression-rule {
  display: block;
  width: 72px;
  height: 1px;
  margin: 1.6rem 0;
  background: rgba(246,236,225,.62);
}
#progression .progression-support {
  max-width: 470px;
  margin: 0;
  color: rgba(255,247,239,.84);
  font-size: .96rem;
  line-height: 1.72;
}
#progression .progression-promise {
  max-width: 500px;
  margin: 1.45rem 0 1.7rem;
  color: var(--champagne-light);
  font-family: 'Playfair Display', serif;
  font-size: 1.22rem;
  font-style: italic;
  line-height: 1.45;
}
#progression .progression-copy .btn-dark { justify-self: start; }

@media (max-width: 760px) {
  #progression .progression-inner { grid-template-columns: 1fr; grid-template-areas: "copy" "visual"; text-align: center; }
  #progression .progression-copy { max-width: 600px; text-align: center; }
  #progression .progression-copy .section-label { justify-content: center; }
  #progression .progression-copy .section-title { text-align: center; }
  #progression .progression-lead, #progression .progression-support, #progression .progression-promise { margin-left: auto; margin-right: auto; }
  #progression .progression-rule { margin-left: auto; margin-right: auto; }
  #progression .progression-copy .btn-dark { justify-self: auto; }
  #progression .progression-visual { margin-top: 2.25rem; }
}


/* First carousel only: premium click-to-zoom photo lightbox. */
#gallery .gallery-track img {
  cursor: zoom-in;
}
#gallery .gallery-track img:focus-visible {
  outline: 3px solid var(--champagne-light);
  outline-offset: 5px;
}
.gallery-lightbox[hidden] { display: none; }
.gallery-lightbox {
  position: fixed;
  z-index: 10000;
  inset: 0;
  display: grid;
  place-items: center;
  padding: clamp(1rem, 4vw, 3rem);
}
.gallery-lightbox-backdrop {
  position: absolute;
  inset: 0;
  background: rgba(12, 4, 3, .93);
  backdrop-filter: blur(8px);
}
.gallery-lightbox-dialog {
  position: relative;
  z-index: 1;
  display: grid;
  justify-items: center;
  width: min(92vw, 860px);
  max-height: 90vh;
  padding: .7rem;
  border: 1px solid rgba(233,213,192,.42);
  background: #1b0a06;
  box-shadow: 0 28px 70px rgba(0,0,0,.58);
}
.gallery-lightbox-image {
  display: block;
  width: auto;
  max-width: 100%;
  max-height: calc(90vh - 4.3rem);
  object-fit: contain;
}
.gallery-lightbox-close {
  position: absolute;
  z-index: 2;
  top: .35rem;
  right: .35rem;
  display: inline-grid;
  place-items: center;
  width: 42px;
  height: 42px;
  border: 1px solid rgba(233,213,192,.55);
  border-radius: 50%;
  background: rgba(27,10,6,.82);
  color: var(--champagne-light);
  cursor: pointer;
  transition: background var(--transition), transform var(--transition);
}
.gallery-lightbox-close:hover,
.gallery-lightbox-close:focus-visible {
  background: var(--bronze);
  color: #fff;
  transform: rotate(90deg);
}
.gallery-lightbox-caption {
  width: 100%;
  margin: .7rem 0 .1rem;
  color: rgba(246,236,225,.78);
  font-size: .76rem;
  letter-spacing: .08em;
  text-align: center;
  text-transform: uppercase;
}
body.gallery-lightbox-open { overflow: hidden; }

@media (max-width: 640px) {
  .gallery-lightbox { padding: .85rem; }
  .gallery-lightbox-dialog { width: 100%; max-height: 92vh; padding: .5rem; }
  .gallery-lightbox-image { max-height: calc(92vh - 3.8rem); }
}


/* Mobile hero benefits: three full-width rows instead of compressed columns. */
@media (max-width: 640px) {
  #hero .hero-features {
    display: grid;
    grid-template-columns: 1fr;
    gap: .85rem;
    width: 100%;
    margin-top: 2.55rem;
  }

  #hero .hero-feature {
    display: grid;
    grid-template-columns: 48px minmax(0, 1fr);
    column-gap: 1rem;
    align-items: start;
    min-height: 0;
    padding: 1.15rem 3rem 1.15rem 1.15rem;
    text-align: left;
  }

  #hero .hero-feature-icon {
    grid-row: 1 / span 2;
    width: 48px;
    height: 48px;
    margin: .1rem 0 0;
  }

  #hero .hero-feature h2 {
    margin: 0 0 .32rem;
    font-size: 1.08rem;
    line-height: 1.22;
  }

  #hero .hero-feature p {
    grid-column: 2;
    max-width: none;
    margin: 0;
    font-size: .82rem;
    line-height: 1.52;
  }

  #hero .hero-feature::before {
    top: .95rem;
    right: 1rem;
  }
}
