/* =========================
   Luxury Motion Tokens
========================= */
:root{
  --ease-lux: cubic-bezier(.16, 1, .25, 1);
  --dur-fast: 220ms;
  --dur-med: 520ms;
  --dur-slow: 900ms;

  --shadow-soft: 0 18px 55px rgba(0,0,0,0.10);
  --shadow-soft-hover: 0 26px 80px rgba(0,0,0,0.14);

  /* NEWBY palette */
  --color-ivory: #f6f5f0;
  --color-soft-section: #eee7e1;
  --color-nude: #d0c0b1;
  --color-taupe: #988e85;
  --color-charcoal: #57565b;
  --color-gold: #c8ac83;
}

/* =========================
   Base & Layout
========================= */
* { margin:0; padding:0; box-sizing:border-box; font-family:"Helvetica Neue", Arial, sans-serif; }
body { background:var(--color-ivory); color:var(--color-charcoal); line-height:1.7; }
.container { width:90%; max-width:1100px; margin:auto; }
.narrow { max-width:760px; margin:auto; text-align:center; }

/* Sticky header anchor offset fix */
section[id]{ scroll-margin-top:150px; }

/* Premium focus (keyboard + forms) */
a:focus-visible, button:focus-visible, input:focus-visible, textarea:focus-visible{
  outline: 3px solid rgba(255,255,255,0.55);
  outline-offset: 4px;
  border-radius: 12px;
}
.section a:focus-visible, .contact-form input:focus-visible, .contact-form textarea:focus-visible{
  outline: 3px solid rgba(200,172,131,0.30);
}

/* =========================
   Scroll Reveal (Luxury subtle)
========================= */
.reveal{
  opacity:0;
  transform: translateY(10px);
  transition: opacity var(--dur-slow) var(--ease-lux), transform var(--dur-slow) var(--ease-lux);
  will-change: opacity, transform;
}
.reveal.is-visible{
  opacity:1;
  transform: translateY(0);
}

/* =========================
   Header & Navigation
========================= */
header { position:sticky; top:0; z-index:1200; background:var(--color-ivory); border-bottom:1px solid rgba(152,142,133,0.18); }
.nav-container { display:flex; flex-direction:column; align-items:center; padding:25px 0; position:relative; }

.logo { display:flex; justify-content:center; }
.logo a { display:inline-flex; justify-content:center; }
.logo img { width:512px; max-width:90%; margin-bottom:5px; }

.hamburger{
  display:inline-flex;
  flex-direction:column;
  gap:6px;
  cursor:pointer;
  z-index:1300;
  background:transparent;
  border:0;
  padding:10px;
  border-radius:10px;
}
.hamburger span { width:26px; height:3px; background:var(--color-charcoal); transition:0.3s; display:block; }
.hamburger.active span:nth-child(1) { transform:rotate(45deg) translate(5px,5px); }
.hamburger.active span:nth-child(2) { opacity:0; }
.hamburger.active span:nth-child(3) { transform:rotate(-45deg) translate(5px,-5px); }

nav#navMenu{
  position:absolute;
  top:100%;
  left:50%;
  transform:translate(-50%, -14px);
  width:min(780px, calc(100vw - 40px));
  margin-top:10px;

  background:rgba(246,245,240,0.94);
  -webkit-backdrop-filter:blur(12px);
  backdrop-filter:blur(12px);
  border-radius:22px;
  box-shadow:0 22px 60px rgba(0,0,0,0.16);

  opacity:0;
  pointer-events:none;

  max-height:0;
  overflow:hidden;

  transition:
    max-height 0.85s var(--ease-lux),
    opacity 0.45s ease,
    transform 0.75s var(--ease-lux);

  z-index:1000;
}

nav#navMenu.open{
  opacity:1;
  pointer-events:auto;
  transform:translate(-50%, 0);
  max-height:240px;
}

nav ul{
  list-style:none;
  display:flex;
  flex-direction:row;
  justify-content:center;
  align-items:center;
  gap:30px;
  padding:18px 0 22px;
  margin:0;
}

nav a { 
  position:relative; 
  text-decoration:none; 
  color:var(--color-charcoal); 
  font-weight:500; 
  padding-bottom:6px; 
  transition:color 0.3s ease; 
}

/* Highlight Book Now link */
nav a[href="booking.html"]{
  color:var(--color-charcoal);
  font-weight:600;
}
nav a::after { content:""; position:absolute; left:50%; bottom:0; width:0; height:2px; background:var(--color-gold); transform:translateX(-50%); transition:width var(--dur-med) var(--ease-lux); }
nav a:hover, nav a.active { color:var(--color-charcoal); }
nav a:hover::after, nav a.active::after { width:100%; }

nav#navMenu li{
  opacity:0;
  transform:translateY(-10px);
  transition:
    opacity 0.55s ease,
    transform 0.70s var(--ease-lux);
}
nav#navMenu.open li{
  opacity:1;
  transform:translateY(0);
}
nav#navMenu.open li:nth-child(1){ transition-delay:0.12s; }
nav#navMenu.open li:nth-child(2){ transition-delay:0.18s; }
nav#navMenu.open li:nth-child(3){ transition-delay:0.24s; }
nav#navMenu.open li:nth-child(4){ transition-delay:0.30s; }
nav#navMenu.open li:nth-child(5){ transition-delay:0.36s; }

/* =========================
   Hero
========================= */
.hero {
  height: clamp(60vh, 80vh, 100svh);
  min-height: 520px;
  max-height: 900px;
  display:flex;
  justify-content:center;
  align-items:center;
  text-align:center;
  color:white;
  position:relative;
  overflow:visible;
  z-index: 1;
}

.hero-video {
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  object-fit:cover;
  object-position: 45% 40%;
  z-index:0;
  display:block;
}

.hero::after {
  content:"";
  position:absolute;
  inset:0;
  z-index:1;
  pointer-events:none;
  background:
    linear-gradient(rgba(87,86,91,0.34), rgba(208,192,177,0.32)),
    url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1440 140' preserveAspectRatio='none'><path fill='%23f6f5f0' d='M0,0 L0,70 C90,120 250,122 420,100 C560,82 660,42 780,48 C900,54 990,94 1120,92 C1260,90 1360,56 1440,82 L1440,140 L0,140 Z'/></svg>");
  background-repeat:no-repeat,no-repeat;
  background-size:100% 100%, 100% 78px;
  background-position:center, bottom;
  box-shadow: inset 0 -10px 16px rgba(0,0,0,0.025);
}

.hero::before{
  content:"";
  position:absolute;
  inset:0;
  z-index:2;
  pointer-events:none;
  opacity:0.06;
  background-image:
    radial-gradient(circle at 20% 30%, rgba(255,255,255,0.10), transparent 40%),
    radial-gradient(circle at 80% 70%, rgba(0,0,0,0.10), transparent 45%),
    repeating-linear-gradient(
      0deg,
      rgba(255,255,255,0.03),
      rgba(255,255,255,0.03) 1px,
      transparent 1px,
      transparent 3px
    );
  mix-blend-mode: overlay;
}

.hero-content {
  position:relative;
  z-index:3;
}

.hero h2 { font-size:3rem; font-weight:300; margin-bottom:15px; text-shadow:0 4px 20px rgba(0,0,0,0.35); }
.hero p { font-size:1.1rem; }
.medical-badge { display:block; margin-top:15px; font-size:0.7rem; letter-spacing:0.5px; opacity:0.9; }

/* =========================
   Buttons
========================= */
.btn {
  display:inline-block;
  margin-top:25px;
  padding:14px 40px;
  background:var(--color-charcoal);
  color:var(--color-ivory);
  border-radius:40px;
  text-decoration:none;
  text-transform:uppercase;
  letter-spacing:1px;
  border: 1px solid rgba(200,172,131,0.22);
  transition: transform var(--dur-med) var(--ease-lux), box-shadow var(--dur-med) var(--ease-lux), filter var(--dur-med) var(--ease-lux), border-color var(--dur-med) var(--ease-lux);
  box-shadow: 0 12px 34px rgba(87,86,91,0.22);
}
.btn:hover {
  transform:translateY(-1px);
  border-color: rgba(200,172,131,0.38);
  box-shadow:0 18px 46px rgba(87,86,91,0.30);
}

/* =========================
   Sections (matching hero wave)
========================= */
.section {
  position: relative;
  padding: 110px 0 184px;
  background: var(--color-ivory);
  z-index: 1;
}

.section.soft {
  background: var(--color-soft-section);
}

.section h2 {
  font-size: 2rem;
  font-weight: 400;
  color: var(--color-taupe);
  margin-bottom: 25px;
  text-shadow: 0 0 0 rgba(0,0,0,0);
}

.section h2::after,
#location h2::after,
.booking-intro h2::after {
  content: "";
  display: block;
  width: 56px;
  height: 2px;
  margin: 14px auto 0;
  background: rgba(200,172,131,0.55);
  border-radius: 999px;
}

.section::before,
.section::after {
  content: "";
  position: absolute;
  left: 0;
  width: 100%;
  height: 78px;
  pointer-events: none;
  z-index: 0;
  background-repeat: no-repeat;
  background-size: 100% 78px;
}

.section::before {
  top: -77px;
  background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1440 140' preserveAspectRatio='none'><path fill='%23f6f5f0' d='M0,140 L0,70 C90,120 250,122 420,100 C560,82 660,42 780,48 C900,54 990,94 1120,92 C1260,90 1360,56 1440,82 L1440,140 Z'/></svg>");
  filter: drop-shadow(0 -4px 6px rgba(0,0,0,0.02));
}

.section::after {
  bottom: -77px;
  background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1440 140' preserveAspectRatio='none'><path fill='%23f6f5f0' d='M0,0 L0,70 C90,120 250,122 420,100 C560,82 660,42 780,48 C900,54 990,94 1120,92 C1260,90 1360,56 1440,82 L1440,140 L0,140 Z'/></svg>");
  filter: drop-shadow(0 4px 6px rgba(0,0,0,0.018));
}

.section.soft::before {
  background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1440 140' preserveAspectRatio='none'><path fill='%23eee7e1' d='M0,140 L0,70 C90,120 250,122 420,100 C560,82 660,42 780,48 C900,54 990,94 1120,92 C1260,90 1360,56 1440,82 L1440,140 Z'/></svg>");
}

.section.soft::after {
  background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1440 140' preserveAspectRatio='none'><path fill='%23eee7e1' d='M0,0 L0,70 C90,120 250,122 420,100 C560,82 660,42 780,48 C900,54 990,94 1120,92 C1260,90 1360,56 1440,82 L1440,140 L0,140 Z'/></svg>");
}

.hero + .section,
.section + .section {
  margin-top: -24px;
}

/* keep footer area clean */
#contact {
  padding-bottom: 120px;
}

#contact::after {
  display: none;
}

footer {
  position: relative;
  z-index: 2;
}

/* =========================
   Signature Treatments
========================= */
#services .container { text-align:center; }
.services-grid {
  display:grid;
  grid-template-columns:repeat(4, 1fr);
  gap:30px;
  justify-items:center;
  margin-top:40px;
}

.service-box {
  background: linear-gradient(180deg, #fbfaf7 0%, #f6f5f0 100%);
  padding:40px 30px;
  border-radius:12px;
  text-align:center;
  max-width:320px;
  width:100%;
  border: 1px solid rgba(152,142,133,0.18);
  box-shadow:
    0 10px 24px rgba(0,0,0,0.06),
    0 24px 50px rgba(0,0,0,0.08);
  transition:
    opacity 0.8s var(--ease-lux),
    transform 0.8s var(--ease-lux),
    box-shadow var(--dur-med) var(--ease-lux),
    border-color var(--dur-med) var(--ease-lux);
  opacity:0;
  transform: translateY(18px);
}
.service-box:hover {
  transform:translateY(-4px);
  border-color: rgba(200,172,131,0.26);
  box-shadow:
    0 14px 30px rgba(0,0,0,0.08),
    0 30px 65px rgba(0,0,0,0.12);
}

.services-grid .service-box.is-visible{
  opacity:1;
  transform: translateY(0);
}

.services-grid .service-box:nth-child(1){ transition-delay:0.08s; }
.services-grid .service-box:nth-child(2){ transition-delay:0.16s; }
.services-grid .service-box:nth-child(3){ transition-delay:0.24s; }
.services-grid .service-box:nth-child(4){ transition-delay:0.32s; }
.services-grid .service-box:nth-child(5){ transition-delay:0.40s; }
.services-grid .service-box:nth-child(6){ transition-delay:0.48s; }
.services-grid .service-box:nth-child(7){ transition-delay:0.56s; }
.services-grid .service-box:nth-child(8){ transition-delay:0.64s; }

/* =========================
   Results Section
========================= */
#results .container { text-align:center; }
.gallery-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(260px,1fr)); gap:30px; margin-top:40px; justify-items:center; }

.gallery-item {
  background:#fbfaf7;
  padding:30px;
  border-radius:12px;
  max-width:360px;
  width:100%;
  border: 1px solid rgba(152,142,133,0.14);
  box-shadow: var(--shadow-soft);
  transition: transform var(--dur-med) var(--ease-lux), box-shadow var(--dur-med) var(--ease-lux);
}
.gallery-item:hover{
  transform:translateY(-4px);
  box-shadow: var(--shadow-soft-hover);
}

/* =========================
   Location Section
========================= */
.location-grid{
  display:grid;
  grid-template-columns: 1fr 1fr;
  gap:30px;
  align-items:stretch;
  margin-top:40px;
}

.location-info,
.location-map{
  background:#fbfaf7;
  padding:40px 30px;
  border-radius:12px;
  border:1px solid rgba(152,142,133,0.14);
  box-shadow: var(--shadow-soft);
  width:100%;
}

.location-info{
  text-align:left;
  display:flex;
  flex-direction:column;
  justify-content:center;
}

.location-map{
  display:flex;
  align-items:center;
}

.location-map iframe{
  width:100%;
  height:320px;
  border:0;
  border-radius:12px;
  display:block;
}

@media (max-width:768px){
  .location-grid{
    grid-template-columns:1fr;
  }

  .location-info{
    text-align:center;
  }
}
#location h2{
  text-align:center;
  margin-bottom:25px;
  color: var(--color-taupe);
}
/* =========================
   Before / After Slider
========================= */
.ba-container { position:relative; width:100%; height:400px; overflow:hidden; border-radius:12px; }
.ba-container::after { content:"Drag to compare"; position:absolute; bottom:15px; left:50%; transform:translateX(-50%); padding:6px 16px; background:rgba(0,0,0,0.55); color:white; font-size:0.7rem; letter-spacing:0.5px; border-radius:20px; opacity:0; transition:opacity 0.25s ease; pointer-events:none; z-index:6; }
.ba-container:hover::after { opacity:1; }
.ba-container img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; pointer-events:none; }
.ba-after { clip-path:inset(0 0 0 50%); }
.ba-divider { position:absolute; top:0; bottom:0; left:50%; width:2px; background:white; z-index:3; }

.ba-slider {
  position:absolute;
  inset:0;
  -webkit-appearance:none;
  appearance:none;
  background:transparent;
  cursor:ew-resize;
  z-index:4;
  touch-action: pan-y;
  -webkit-tap-highlight-color: transparent;
  height:100%;
}
.ba-slider::-webkit-slider-runnable-track{ background:transparent; }

.ba-slider::-webkit-slider-thumb { appearance:none; width:30px; height:30px; border-radius:50%; background:white; border:2px solid var(--color-gold); box-shadow:0 4px 12px rgba(0,0,0,0.25); }
.ba-slider::-moz-range-thumb{
  width:30px;
  height:30px;
  border-radius:50%;
  background:white;
  border:2px solid var(--color-gold);
  box-shadow:0 4px 12px rgba(0,0,0,0.25);
}
.ba-slider::-moz-range-track{ background:transparent; border:0; }

@keyframes thumbPulse {
  0%   { transform: scale(1); box-shadow: 0 4px 12px rgba(0,0,0,0.20); }
  45%  { transform: scale(1.08); box-shadow: 0 10px 22px rgba(200,172,131,0.22); }
  100% { transform: scale(1); box-shadow: 0 4px 12px rgba(0,0,0,0.20); }
}
.ba-container.hinting .ba-slider::-webkit-slider-thumb{ animation: thumbPulse 1.1s var(--ease-lux) infinite; }
.ba-container.hinting .ba-slider::-moz-range-thumb{ animation: thumbPulse 1.1s var(--ease-lux) infinite; }

.ba-label { position:absolute; top:15px; padding:6px 14px; background:rgba(0,0,0,0.55); color:white; font-size:0.75rem; border-radius:20px; z-index:5; }
.ba-label.before { left:15px; }
.ba-label.after { right:15px; }

/* =========================
   Contact Form & Spinner
========================= */
.contact-form { display:flex; flex-direction:column; position:relative; }
.contact-form input, .contact-form textarea { padding:14px; margin-bottom:15px; border:1px solid rgba(152,142,133,0.22); border-radius:6px; font-size:16px; background:#fff; color:var(--color-charcoal); }

.contact-form input:focus,
.contact-form textarea:focus{
  outline:none;
  border-color: rgba(200,172,131,0.45);
  box-shadow: 0 0 0 4px rgba(200,172,131,0.10);
}

.form-spinner { display:flex; justify-content:center; margin-top:10px; }
.spinner { width:30px; height:30px; border:4px solid rgba(200,172,131,0.2); border-top-color:var(--color-gold); border-radius:50%; animation:spin 0.8s linear infinite; }
@keyframes spin { 0% { transform:rotate(0deg); } 100% { transform:rotate(360deg); } }
.form-message { margin-top:12px; font-size:0.95rem; text-align:center; font-weight:500; }

/* =========================
   Footer
========================= */
footer { background:var(--color-charcoal); color:var(--color-ivory); text-align:center; padding:25px; font-size:0.85rem; }

.footer-link{
  color:#fff;
  text-decoration:none;
  font-weight:500;
  border-bottom:1px solid rgba(255,255,255,0.4);
  transition: opacity 0.2s ease, border-color 0.2s ease;
}
.footer-link:hover{ opacity:0.85; border-bottom-color:#fff; }

.footer-pdf{ letter-spacing:0.2px; opacity:0.95; }
.footer-pdf:hover{ opacity:1; }

.footer-badges{
  display:flex;
  justify-content:center;
  align-items:center;
  gap:20px;
  margin-top:14px;
}

.footer-badges img{
  height:36px;
  width:auto;
  display:block;
  opacity:0.95;
  transition: transform var(--dur-med) var(--ease-lux), opacity var(--dur-med) var(--ease-lux);
}

.footer-badges a:hover img,
.footer-badges .ahp-tooltip:hover img{
  transform: translateY(-2px);
  opacity:1;
}

.hcpc-badge:focus-visible{
  outline:3px solid rgba(255,255,255,0.7);
  outline-offset:4px;
  border-radius:6px;
}

.ahp-tooltip{
  position:relative;
  display:inline-flex;
  cursor:help;
}

.ahp-tooltip-text{
  position:absolute;
  left:50%;
  bottom:130%;
  transform:translateX(-50%);
  width:260px;
  padding:10px 12px;
  background:rgba(0,0,0,0.85);
  color:#fff;
  font-size:0.75rem;
  line-height:1.4;
  border-radius:8px;
  text-align:center;
  opacity:0;
  pointer-events:none;
  transition:opacity 0.2s ease, transform 0.2s ease;
  z-index:1000;
}

.ahp-tooltip-text::after{
  content:"";
  position:absolute;
  top:100%;
  left:50%;
  transform:translateX(-50%);
  border-width:6px;
  border-style:solid;
  border-color:rgba(0,0,0,0.85) transparent transparent transparent;
}

.ahp-tooltip:hover .ahp-tooltip-text,
.ahp-tooltip:focus .ahp-tooltip-text{
  opacity:1;
  transform:translateX(-50%) translateY(-4px);
}

/* =========================
   Footer Social Icons
========================= */
.social-links{
  display:flex;
  justify-content:center;
  gap:14px;
  margin:0 0 16px;
}

.social-icon{
  width:38px;
  height:38px;
  border-radius:50%;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  background: rgba(255,255,255,0.12);
  border: 1px solid rgba(255,255,255,0.25);
  transition: transform 0.2s ease, background 0.2s ease, box-shadow 0.2s ease;
  position: relative;
  overflow: visible;
}

.social-icon svg{
  width:18px;
  height:18px;
  fill:#fff;
  transition: transform 0.25s ease;
}

.social-icon:hover{
  transform: translateY(-3px) scale(1.04);
  background: rgba(255,255,255,0.2);
  box-shadow: 0 14px 32px rgba(0,0,0,0.25);
}

.social-icon:hover svg{
  transform: scale(1.15);
}

.social-icon::after{
  content:"";
  position:absolute;
  inset:-6px;
  border-radius:50%;
  opacity:0;
  filter: blur(10px);
  transition: opacity 0.25s ease;
  z-index:-1;
}
.social-icon:hover::after{ opacity:1; }

.social-icon[aria-label="Facebook"]::after{
  background: radial-gradient(circle at center, #1877f2 0%, rgba(24,119,242,0.55) 45%, transparent 70%);
}
.social-icon[aria-label="Instagram"]::after{
  background: conic-gradient(from 0deg, #feda75, #fa7e1e, #d62976, #962fbf, #4f5bd5, #feda75);
}
.social-icon[aria-label="TikTok"]::after{
  background: radial-gradient(circle at 35% 35%, rgba(0,242,234,0.75), transparent 60%),
              radial-gradient(circle at 65% 65%, rgba(255,0,80,0.65), transparent 60%);
}
.social-icon[aria-label="WhatsApp"]::after{
  background: radial-gradient(circle at center, #25D366 0%, rgba(37,211,102,0.55) 45%, transparent 70%);
}

/* =========================
   Booking Page
========================= */
.booking-section {
  background: var(--color-ivory);
  padding: 80px 0;
  min-height: calc(100vh - 220px);
  display: flex;
  align-items: center;
}

.booking-wrap {
  max-width: 920px;
  margin: 0 auto;
  text-align: center;
}

.booking-intro {
  margin-bottom: 28px;
}

.booking-intro h2 {
  font-size: 2rem;
  font-weight: 400;
  color: var(--color-taupe);
  margin-bottom: 14px;
}

.booking-intro p {
  color: var(--color-charcoal);
  opacity: 0.9;
  max-width: 640px;
  margin: 0 auto;
}

.booking-badge {
  display: inline-block;
  margin-bottom: 18px;
  padding: 8px 16px;
  border-radius: 999px;
  background: rgba(200,172,131,0.10);
  color: var(--color-taupe);
  border: 1px solid rgba(200,172,131,0.18);
  font-size: 0.78rem;
  letter-spacing: 0.6px;
  text-transform: uppercase;
  font-weight: 600;
}

.booking-card {
  position: relative;
  background: #fbfaf7;
  border: 1px solid rgba(152,142,133,0.14);
  border-radius: 24px;
  padding: 22px;
  box-shadow: var(--shadow-soft);
  overflow: hidden;
  transition:
    transform var(--dur-med) var(--ease-lux),
    box-shadow var(--dur-med) var(--ease-lux);
}

.booking-card:hover {
  transform: translateY(-2px);
  box-shadow: var(--shadow-soft-hover);
}

.booking-card::before {
  content: "";
  position: absolute;
  inset: 0;
  pointer-events: none;
  background:
    radial-gradient(circle at top left, rgba(200,172,131,0.08), transparent 32%),
    radial-gradient(circle at bottom right, rgba(208,192,177,0.10), transparent 30%);
  z-index: 0;
}

.booking-card > * {
  position: relative;
  z-index: 1;
}

.nearcut-shell {
  position: relative;
  background: rgba(255,255,255,0.78);
  border: 1px solid rgba(152,142,133,0.10);
  border-radius: 18px;
  padding: 14px;
  min-height: 760px;
  box-shadow: inset 0 1px 0 rgba(255,255,255,0.7);
  overflow: hidden;
}

#nearcut {
  width: 100%;
  min-height: 730px;
  border-radius: 14px;
  overflow: hidden;
}

#nearcut iframe {
  display: block;
  width: 100% !important;
  min-height: 730px !important;
  border: 0 !important;
  border-radius: 14px !important;
  background: #fff;
}

.nearcut-shell.is-loading::after {
  content: "";
  position: absolute;
  inset: 14px;
  border-radius: 18px;
  background:
    linear-gradient(
      90deg,
      rgba(255,255,255,0.00) 0%,
      rgba(255,255,255,0.48) 50%,
      rgba(255,255,255,0.00) 100%
    );
  transform: translateX(-100%);
  animation: bookingShimmer 1.8s infinite;
  pointer-events: none;
  z-index: 2;
}

@keyframes bookingShimmer {
  100% { transform: translateX(100%); }
}

.booking-note {
  margin-top: 18px;
  font-size: 0.9rem;
  color: var(--color-charcoal);
  opacity: 0.72;
}

/* =========================
   Back To Top Button (Styled like social icons)
========================= */
.back-to-top{
  position:fixed;
  right:20px;
  bottom:20px;
  width:52px;
  height:52px;
  border-radius:50%;
  display:inline-flex;
  align-items:center;
  justify-content:center;

  background:var(--color-charcoal);
  border:1px solid rgba(87,86,91,0.35);
  color:#fff;
  box-shadow: 0 14px 32px rgba(0,0,0,0.18);
  cursor:pointer;
  z-index:1400;

  opacity:0;
  visibility:hidden;
  transform:translateY(12px);

  transition:
    transform 0.2s ease,
    background 0.2s ease,
    box-shadow 0.2s ease,
    opacity var(--dur-med) var(--ease-lux),
    visibility var(--dur-med) var(--ease-lux);
}

/* icon */
.back-to-top svg{
  width:18px;
  height:18px;
  fill:#fff;
  transition: transform 0.25s ease;
}

/* hover (same as social icons) */
.back-to-top:hover{
  transform: translateY(-3px) scale(1.04);
  background: rgba(87,86,91,0.88);
  box-shadow: 0 14px 32px rgba(0,0,0,0.25);
}

.back-to-top:hover svg{
  transform: scale(1.15);
}

/* show state */
.back-to-top.show{
  opacity:1;
  visibility:visible;
  transform:translateY(0);
}

/* ADD THIS */
.back-to-top.reveal{
  opacity:0;
  transform:translateY(10px);
}

.back-to-top.reveal.is-visible{
  opacity:1;
  transform:translateY(0);
  transition:
    opacity var(--dur-slow) var(--ease-lux),
    transform var(--dur-slow) var(--ease-lux);
}

/* glow effect */
.back-to-top::after{
  content:"";
  position:absolute;
  inset:-6px;
  border-radius:50%;
  opacity:0;
  filter: blur(10px);
  transition: opacity 0.25s ease;
  z-index:-1;

  background: radial-gradient(circle at center, var(--color-gold) 0%, rgba(200,172,131,0.32) 45%, transparent 70%);
}

.back-to-top:hover::after{
  opacity:1;
}

/* focus */
.back-to-top:focus-visible{
  outline:3px solid rgba(200,172,131,0.35);
  outline-offset:4px;
}

/* mobile */
@media (max-width:768px){
  .back-to-top{
    right:16px;
    bottom:16px;
    width:48px;
    height:48px;
  }
}
/* =========================
   Floating Book Now Button
   Premium scroll-triggered CTA
========================= */
.floating-book{
  position: fixed;
  right: 20px;
  bottom: 84px; /* sits above Back to Top */
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 52px;
  padding: 0 20px;
  border-radius: 999px;
  text-decoration: none;
  text-transform: uppercase;
  letter-spacing: 0.8px;
  font-size: 0.78rem;
  font-weight: 600;

  background: var(--color-charcoal);
  color: var(--color-ivory);
  border: 1px solid rgba(87,86,91,0.35);
  box-shadow: 0 14px 32px rgba(0,0,0,0.18);
  z-index: 1395;

  opacity: 0;
  visibility: hidden;
  transform: translateY(12px);

  transition:
    transform 0.2s ease,
    background 0.2s ease,
    box-shadow 0.2s ease,
    opacity 520ms cubic-bezier(.16, 1, .25, 1),
    visibility 520ms cubic-bezier(.16, 1, .25, 1);
}

.floating-book:hover{
  background: rgba(87,86,91,0.88);
  transform: translateY(-3px) scale(1.02);
  box-shadow: 0 18px 46px rgba(87,86,91,0.28);
  color: var(--color-ivory);
}

.floating-book.show{
  opacity: 1;
  visibility: visible;
  transform: translateY(0);
}

/* optional soft glow */
.floating-book::after{
  content:"";
  position:absolute;
  inset:-6px;
  border-radius:999px;
  opacity:0;
  filter: blur(10px);
  transition: opacity 0.25s ease;
  z-index:-1;
  background: radial-gradient(circle at center, var(--color-gold) 0%, rgba(200,172,131,0.32) 45%, transparent 75%);
}

.floating-book:hover::after{
  opacity:1;
}

.floating-book:focus-visible{
  outline: 3px solid rgba(200,172,131,0.35);
  outline-offset: 4px;
}

/* Mobile */
@media (max-width:768px){
  .floating-book{
    right: 16px;
    bottom: 76px;
    min-height: 48px;
    padding: 0 18px;
    font-size: 0.74rem;
    letter-spacing: 0.7px;
  }
}

/* Reduced motion */
@media (prefers-reduced-motion:reduce){
  .floating-book{
    transition: none !important;
  }
}
/* =========================
   Responsive
========================= */
@media (max-width:1024px) {
  .services-grid {
    grid-template-columns:repeat(2, 1fr);
  }
}

@media (max-width:768px) {
  nav#navMenu{
    left:0;
    right:0;
    width:calc(100% - 20px);
    transform:translateY(-14px);
    margin:0 10px;
    border-radius:0 0 22px 22px;
  }

  nav#navMenu.open{
    transform:translateY(0);
    max-height:360px;
  }

  nav ul { flex-direction:column; gap:18px; padding:20px 0; margin:0; }

  .ba-container { height:260px; }
  .hero h2 { font-size:2.2rem; }

  .hero { height: 75svh; }
  .hero-video { object-position: 42% 35%; }

  .hero::after {
    background-size: 100% 100%, 100% 52px;
  }

  .section {
    padding: 92px 0 140px;
  }

  .section::before,
  .section::after {
    height: 52px;
    background-size: 100% 52px;
  }

  .section::before {
    top: -51px;
  }

  .section::after {
    bottom: -51px;
  }

  .hero + .section,
  .section + .section {
    margin-top: -12px;
  }

  #contact {
    padding-bottom: 96px;
  }

  .footer-badges img{ height:28px; }

  .booking-section {
    padding: 60px 0;
    min-height: auto;
    align-items: flex-start;
  }

  .booking-card {
    border-radius: 18px;
    padding: 14px;
  }

  .nearcut-shell {
    padding: 8px;
    min-height: 680px;
    border-radius: 14px;
  }

  #nearcut,
  #nearcut iframe {
    min-height: 640px !important;
    border-radius: 12px !important;
  }
}

@media (max-width:600px) {
  .services-grid {
    grid-template-columns:1fr;
  }

  .booking-intro h2 {
    font-size: 1.75rem;
  }

  .booking-badge {
    font-size: 0.72rem;
    padding: 7px 14px;
  }
}

@supports not (height: 1svh){
  @media (max-width:768px){
    .hero{ height: 75vh; }
  }
}

/* =========================
   Reduced Motion
========================= */
@media (prefers-reduced-motion:reduce) {
  * { animation:none !important; transition:none !important; }
  .ba-container::after { opacity:1; }
  .reveal{ opacity:1 !important; transform:none !important; }
  .service-box{ opacity:1 !important; transform:none !important; }
  .hero::before{ display:none !important; }
}
/* =========================
   About Section Image (Luxury Circle + Glow)
========================= */
.about-image {
  display: flex;
  justify-content: center;
  margin: 34px 0;
  position: relative;
}

.about-image img {
  width: 180px;
  height: 180px;
  object-fit: cover;
  border-radius: 50%;
  position: relative;
  z-index: 2;

  /* subtle border */
  border: 3px solid rgba(200,172,131,0.25);

  /* depth */
  box-shadow:
    0 12px 30px rgba(0,0,0,0.12),
    0 0 0 1px rgba(255,255,255,0.6) inset;

  transition:
    transform 0.4s cubic-bezier(.16,1,.25,1),
    box-shadow 0.4s cubic-bezier(.16,1,.25,1);
}

/* Soft glow layer */
.about-image::before {
  content: "";
  position: absolute;
  width: 220px;
  height: 220px;
  border-radius: 50%;
  z-index: 1;

  background:
    radial-gradient(
      circle at center,
      rgba(200,172,131,0.35) 0%,
      rgba(200,172,131,0.18) 35%,
      rgba(200,172,131,0.08) 55%,
      transparent 75%
    );

  filter: blur(18px);
  opacity: 0.7;
  transition: opacity 0.4s ease, transform 0.4s ease;
}

/* Hover = premium interaction */
.about-image:hover img {
  transform: translateY(-3px) scale(1.02);
  box-shadow:
    0 18px 40px rgba(0,0,0,0.18),
    0 0 0 1px rgba(255,255,255,0.7) inset;
}

.about-image:hover::before {
  opacity: 1;
  transform: scale(1.05);
}

/* Mobile tweak */
@media (max-width:768px){
  .about-image img {
    width: 150px;
    height: 150px;
  }

  .about-image::before {
    width: 190px;
    height: 190px;
  }
}
/* =========================
   About Section Image (Luxury Circle + Glow)
========================= */
.about-image {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  margin: 34px 0;
  position: relative;
}

.about-image img {
  width: 180px;
  height: 180px;
  object-fit: cover;
  border-radius: 50%;
  position: relative;
  z-index: 2;
  border: 3px solid rgba(200,172,131,0.25);
  box-shadow:
    0 12px 30px rgba(0,0,0,0.12),
    0 0 0 1px rgba(255,255,255,0.6) inset;
  transition:
    transform 0.4s cubic-bezier(.16,1,.25,1),
    box-shadow 0.4s cubic-bezier(.16,1,.25,1);
}

/* Soft glow layer */
.about-image::before {
  content: "";
  position: absolute;
  top: 50%;
  left: 50%;
  width: 220px;
  height: 220px;
  border-radius: 50%;
  z-index: 1;
  transform: translate(-50%, -58%);
  background:
    radial-gradient(
      circle at center,
      rgba(200,172,131,0.35) 0%,
      rgba(200,172,131,0.18) 35%,
      rgba(200,172,131,0.08) 55%,
      transparent 75%
    );
  filter: blur(18px);
  opacity: 0.7;
  transition: opacity 0.4s ease, transform 0.4s ease;
}

.about-image:hover img {
  transform: translateY(-3px) scale(1.02);
  box-shadow:
    0 18px 40px rgba(0,0,0,0.18),
    0 0 0 1px rgba(255,255,255,0.7) inset;
}

.about-image:hover::before {
  opacity: 1;
  transform: translate(-50%, -58%) scale(1.05);
}

.about-image-caption {
  position: relative;
  z-index: 2;
  margin-top: 14px;
  font-size: 0.9rem;
  letter-spacing: 0.4px;
  color: var(--color-taupe);
  font-weight: 500;
}

/* Make Book Now always gold in nav */
nav a[href="booking.html"]{
  color: var(--color-gold);
  font-weight: 600;
}

nav a[href="booking.html"]:hover,
nav a[href="booking.html"].active{
  color: var(--color-gold);
}

/* Mobile tweak */
@media (max-width:768px){
  .about-image img {
    width: 150px;
    height: 150px;
  }

  .about-image::before {
    width: 190px;
    height: 190px;
  }

  .about-image-caption {
    font-size: 0.85rem;
  }
}