:root {
  /* Brand Colors - Premium Healthcare Palette based on logo (Teal/Cyan) */
  --teal-dark: #0f4c5c; /* Trust-building deep teal */
  --teal: #138a8e; /* Primary active */
  --teal-light: #52b6b9;
  --teal-soft: #d2f0f0;
  
  --blue-soft: #e0f2fe; /* Light medical blue */
  --coral-accent: #fb7185; /* Soft warmth */
  --warm-off-white: #faf9f8; /* Softer than pure white */
  --soft-white: #fdfdfd;
  
  --text-display: #092B30;
  --text-primary: #1E293B;
  --text-muted: #64748B;
  --text-light: #94A3B8;
  
  /* Typography - Apple-inspired / Editorial */
  --heading: 'Outfit', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
  --body: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
  
  /* Layout & Effects - Soft Minimalism */
  --radius-lg: 24px;
  --radius-md: 16px;
  --radius-sm: 10px;
  --radius-pill: 9999px;
  
  --shadow-soft: 0 4px 20px -2px rgba(19, 138, 142, 0.05);
  --shadow-float: 0 20px 40px -10px rgba(19, 138, 142, 0.12);
  --shadow-glow: 0 10px 40px -5px rgba(82, 182, 185, 0.3);
  
  --bg-glass: rgba(255, 255, 255, 0.7);
  --bg-glass-strong: rgba(255, 255, 255, 0.85);
  --blur-md: blur(16px);
  --blur-lg: blur(24px);
  
  --trans-smooth: all 0.5s cubic-bezier(0.16, 1, 0.3, 1);
}

* { margin:0; padding:0; box-sizing:border-box; }
html { scroll-behavior:smooth; font-size:16px; }

body {
  font-family: var(--body);
  color: var(--text-muted);
  background-color: var(--warm-off-white);
  line-height: 1.7;
  overflow-x: hidden;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  background-image: 
    radial-gradient(circle at 10% 20%, rgba(210, 240, 240, 0.4) 0%, transparent 40%),
    radial-gradient(circle at 90% 80%, rgba(224, 242, 254, 0.5) 0%, transparent 40%),
    radial-gradient(rgba(19, 138, 142, 0.07) 1px, transparent 1px);
  background-size: 100% 100%, 100% 100%, 24px 24px;
  background-attachment: fixed;
  cursor: none; /* Custom cursor */
}

a { text-decoration:none; color:inherit; transition:var(--trans-smooth); }
ul { list-style:none; }
img { max-width:100%; height:auto; display:block; }
h1,h2,h3,h4 { font-family:var(--heading); color:var(--text-display); line-height:1.15; font-weight:600; letter-spacing:-0.03em; }
strong { color:var(--text-display); font-weight:700; }

/* CUSTOM CURSOR */
.cursor-dot { width:8px; height:8px; background:var(--teal); border-radius:50%; position:fixed; pointer-events:none; z-index:10000; transform:translate(-50%,-50%); transition:width .2s,height .2s,background .2s; will-change:transform; }
.cursor-ring { width:36px; height:36px; border:1px solid rgba(19,138,142,0.3); border-radius:50%; position:fixed; pointer-events:none; z-index:9999; transform:translate(-50%,-50%); will-change:transform; transition:border-color .2s; }
.cursor-dot.hovered { width:12px; height:12px; background:var(--teal-dark); }
.cursor-ring.hovered { width:56px; height:56px; border-color:rgba(19,138,142,0.15); background:rgba(19,138,142,0.05); }

/* SCROLL PROGRESS */
.scroll-progress { position:fixed; top:0; left:0; width:0; height:3px; background:linear-gradient(90deg,var(--teal-light),var(--teal)); z-index:9999; transition:width 0.1s; }

/* SPLASH */
#splash-screen { position:fixed; inset:0; background:var(--warm-off-white); z-index:99999; display:flex; align-items:center; justify-content:center; transition:opacity .8s ease, visibility .8s ease; }
#splash-screen.hide { opacity:0; visibility:hidden; pointer-events:none; }
.splash-inner { display:flex; flex-direction:column; align-items:center; gap:20px; animation:splashIn 1s cubic-bezier(0.16, 1, 0.3, 1) forwards; }
@keyframes splashIn { from { opacity:0; transform:scale(.95); } to { opacity:1; transform:scale(1); } }
.splash-logo-img { width:90px; height:90px; object-fit:contain; animation:fadeUp 1s ease forwards; }
.splash-name { font-family:var(--heading); font-size:2rem; font-weight:500; color:var(--text-display); letter-spacing:-0.5px; }
.splash-tagline { font-size:0.9rem; color:var(--text-muted); letter-spacing:1px; text-transform:uppercase; }

/* CONTAINER & SECTIONS */
.container { width:100%; max-width:1240px; margin:0 auto; padding:0 24px; position:relative; z-index:2; }
.section { padding:120px 0; position:relative; }

/* HEADER - Glassmorphism Apple Style */
.header { position:fixed; top:24px; left:50%; transform:translateX(-50%); width:calc(100% - 48px); max-width:1200px; z-index:1000; padding:16px 0; background:rgba(255,255,255,0.85); backdrop-filter:var(--blur-lg); -webkit-backdrop-filter:var(--blur-lg); border:1px solid rgba(255,255,255,0.9); border-radius:var(--radius-pill); box-shadow:0 8px 32px rgba(19, 138, 142, 0.08); transition:var(--trans-smooth); }
.header.scrolled { padding:12px 0; background:rgba(255,255,255,0.98); box-shadow:0 15px 40px rgba(19, 138, 142, 0.15); top:16px; }
.header-inner { display:flex; align-items:center; justify-content:space-between; }
.logo { display:flex; align-items:center; gap:12px; }
.logo img { height:40px; object-fit:contain; }
.logo-copy { display:flex; flex-direction:column; }
.logo-name { font-family:var(--heading); font-size:1.1rem; font-weight:600; color:var(--teal-dark); line-height:1; }
.logo-sub { font-size:0.7rem; color:var(--text-muted); text-transform:uppercase; letter-spacing:1px; margin-top:2px; }
.nav-list { display:flex; gap:36px; }
.nav-link { font-size:0.95rem; font-weight:500; color:var(--text-muted); position:relative; padding:5px 0; }
.nav-link::after { content:''; position:absolute; bottom:0; left:0; width:0; height:2px; background:var(--teal); transition:width 0.4s cubic-bezier(0.16, 1, 0.3, 1); border-radius:2px; }
.nav-link:hover, .nav-link.active { color:var(--text-display); }
.nav-link:hover::after, .nav-link.active::after { width:100%; }
.header-cta { display:flex; align-items:center; gap:16px; }

/* BUTTONS - Tactile & Premium */
.btn { display:inline-flex; align-items:center; justify-content:center; padding:12px 28px; border-radius:var(--radius-pill); font-family:var(--body); font-weight:500; font-size:0.95rem; gap:8px; border:none; cursor:none; transition:var(--trans-smooth); position:relative; overflow:hidden; }
.btn-lg { padding:16px 36px; font-size:1.05rem; }
.btn-primary { background:var(--teal); color:white; box-shadow:0 4px 15px -3px rgba(19, 138, 142, 0.3); }
.btn-primary::after { content:''; position:absolute; top:0; left:0; width:100%; height:100%; background:linear-gradient(135deg, rgba(255,255,255,0.2) 0%, transparent 100%); opacity:0; transition:opacity 0.5s ease; }
.btn-primary:hover { transform:translateY(-2px); box-shadow:0 15px 30px -5px rgba(19, 138, 142, 0.4); background:var(--teal-dark); }
.btn-primary:hover::after { opacity:1; }
.btn-secondary { background:rgba(250, 249, 248, 0.95); color:var(--text-display); box-shadow:var(--shadow-soft); border:1px solid rgba(19, 138, 142, 0.1); }
.btn-secondary:hover { background:white; transform:translateY(-2px); box-shadow:var(--shadow-float); border-color:rgba(19, 138, 142, 0.2); }
.btn-white { background:white; color:var(--teal-dark); box-shadow:var(--shadow-soft); }
.btn-white:hover { transform:translateY(-2px); box-shadow:var(--shadow-float); }
.btn-outline-white { background:transparent; border:1px solid rgba(255,255,255,0.6); color:white; }
.btn-outline-white:hover { background:rgba(255,255,255,0.1); border-color:white; }
.btn-ghost { background:transparent; color:var(--teal); }
.btn-ghost:hover { background:rgba(19, 138, 142, 0.05); }
.btn-outline { background:transparent; border:1px solid var(--teal); color:var(--teal); }
.btn-outline:hover { background:var(--teal-soft); }

/* ASYMMETRICAL LUXURY HERO */
.hero { position:relative; min-height:100vh; display:flex; align-items:center; padding-top:120px; overflow:hidden; }
.hero-bg-ambient { position:absolute; inset:0; background:radial-gradient(ellipse at top right, rgba(210, 240, 240, 0.5), transparent 60%), radial-gradient(ellipse at bottom left, rgba(224, 242, 254, 0.5), transparent 60%); z-index:0; }
.hero-bg-orb { position:absolute; border-radius:50%; opacity:0.8; animation:floatComplex 20s infinite ease-in-out; pointer-events:none; }
.orb-1 { top:-10%; left:-5%; width:50vw; height:50vw; background:radial-gradient(circle, rgba(19, 138, 142, 0.12) 0%, transparent 60%); }
.orb-2 { top:30%; right:-10%; width:45vw; height:45vw; background:radial-gradient(circle, rgba(82, 182, 185, 0.15) 0%, transparent 60%); animation-delay:-5s; }
.orb-3 { bottom:-10%; left:20%; width:60vw; height:60vw; background:radial-gradient(circle, rgba(251, 113, 133, 0.08) 0%, transparent 60%); animation-delay:-10s; }

@keyframes floatComplex { 
  0% { transform:translate(0, 0) rotate(0deg); } 
  33% { transform:translate(2%, -3%) rotate(2deg); } 
  66% { transform:translate(-2%, -1%) rotate(-1deg); } 
  100% { transform:translate(0, 0) rotate(0deg); } 
}

.hero-container { display:grid; grid-template-columns:1.05fr 0.95fr; gap:3rem; align-items:center; }

.hero-content { position:relative; z-index:3; }
.badge-pill { display:inline-flex; align-items:center; gap:10px; background:rgba(250, 249, 248, 0.95); padding:8px 20px; border-radius:var(--radius-pill); border:1px solid rgba(255,255,255,0.7); box-shadow:var(--shadow-soft); margin-bottom:32px; font-size:0.9rem; font-weight:500; color:var(--teal-dark); }
.badge-icon { color:var(--teal); font-size:1.1rem; }

.hero-title { font-size:clamp(3rem, 4.5vw, 4.2rem); font-weight:600; line-height:1.1; margin-bottom:24px; color:var(--text-display); letter-spacing:-0.04em; }
.text-gradient { background:linear-gradient(135deg, var(--teal-dark), var(--teal-light)); -webkit-background-clip:text; -webkit-text-fill-color:transparent; background-clip:text; font-weight:500; }
.hero-desc { font-size:1.15rem; color:var(--text-muted); margin-bottom:40px; max-width:520px; line-height:1.7; font-weight:300; }
.hero-actions { display:flex; gap:16px; margin-bottom:48px; flex-wrap:wrap; }

.hero-stats { display:flex; gap:32px; align-items:center; flex-wrap:wrap; }
.stat-item { display:flex; flex-direction:column; }
.stat-item strong { font-family:var(--heading); font-size:1.7rem; font-weight:500; color:var(--text-display); line-height:1; margin-bottom:4px; }
.stat-item span { font-size:0.85rem; color:var(--text-muted); font-weight:400; }
.stat-divider { width:1px; height:32px; background:rgba(0,0,0,0.1); }

/* HERO VISUALS - Structured Premium */
.hero-visual { position:relative; z-index:2; height:100%; min-height:500px; display:flex; align-items:center; justify-content:center; padding: 40px 0; }
.hero-image-wrapper { position:relative; width:85%; max-width:480px; aspect-ratio: 4/5; margin: 0 auto; }
.hero-shape-bg { position:absolute; top:20px; right:-20px; width:100%; height:100%; background:var(--teal-soft); border-radius:30px; z-index:1; transform: rotate(3deg); transition: transform 0.5s ease; }
.hero-image-wrapper:hover .hero-shape-bg { transform: rotate(5deg); }
.hero-main-img { position:relative; width:100%; height:100%; border-radius:30px; overflow:hidden; z-index:2; box-shadow:var(--shadow-float); border:8px solid white; background:white; }
.hero-main-img img { width:100%; height:100%; object-fit:cover; }

.hero-card { position:absolute; background:rgba(255,255,255,0.95); backdrop-filter:blur(8px); padding:16px 24px; border-radius:20px; box-shadow:0 15px 35px rgba(0,0,0,0.08); z-index:3; display:flex; align-items:center; gap:16px; border:1px solid rgba(255,255,255,0.8); animation:floatGentle 6s ease-in-out infinite; }
@keyframes floatGentle { 0%,100%{transform:translateY(0);} 50%{transform:translateY(-12px);} }

.hc-experience { top: 10%; left: -20%; animation-delay: 0s; }
.hc-icon { width:48px; height:48px; background:var(--teal-soft); color:var(--teal-dark); border-radius:14px; display:flex; align-items:center; justify-content:center; font-size:1.3rem; }
.hc-content h4 { font-size:1.4rem; font-weight:700; color:var(--text-display); margin:0; line-height:1; }
.hc-content p { font-size:0.85rem; color:var(--text-muted); margin:4px 0 0; font-weight:500; }

.hc-review { bottom: 10%; right: -25%; flex-direction:column; align-items:flex-start; gap:8px; width:max-content; max-width:260px; animation-delay: 1.5s; padding:20px; }
.hc-stars { color:#fbbf24; font-size:1rem; }
.hc-review p { font-size:0.9rem; font-weight:500; color:var(--text-primary); margin:0; font-style:italic; line-height:1.4; }
.hc-google { position:absolute; top:-12px; right:-12px; background:white; color:#ea4335; width:36px; height:36px; border-radius:50%; display:flex; align-items:center; justify-content:center; box-shadow:0 4px 10px rgba(0,0,0,0.1); font-size:1.1rem; }

/* Responsive adjustments for the new hero visual */
@media(max-width:1200px) {
  .hc-experience { left: -10%; }
  .hc-review { right: -15%; }
}
@media(max-width:1024px) {
  .hc-experience { left: 0%; top: -20px; }
  .hc-review { right: 0%; bottom: -30px; }
}

.hero-bottom-fade { position:absolute; bottom:0; left:0; width:100%; height:150px; background:linear-gradient(to top, var(--warm-off-white), transparent); z-index:5; pointer-events:none; }

/* TRUST STRIP */
.trust-strip { background:transparent; padding:30px 0; border-bottom:1px solid rgba(0,0,0,0.03); position:relative; z-index:10; }
.trust-flex { display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:20px; }
.trust-item { display:flex; align-items:center; gap:12px; color:var(--text-muted); font-size:0.95rem; font-weight:400; }
.trust-item i { color:var(--teal-light); font-size:1.2rem; }

/* COMMON SECTION HEADERS */
.section-header { text-align:center; max-width:680px; margin:0 auto 70px; }
.section-eyebrow { color:var(--teal); font-size:0.85rem; font-weight:500; text-transform:uppercase; letter-spacing:2px; margin-bottom:16px; display:inline-block; }
.section-heading { font-size:clamp(2.2rem, 3.5vw, 3rem); font-weight:400; margin-bottom:20px; }
.section-heading span { font-style:italic; font-weight:300; color:var(--text-muted); }
.section-desc { font-size:1.1rem; color:var(--text-muted); line-height:1.7; }

/* ABOUT SECTION */
.about-grid { display:grid; grid-template-columns:1fr 1fr; gap:70px; align-items:center; }
.about-images { position:relative; height:500px; }
.about-img-main { position:absolute; top:0; left:0; width:75%; height:85%; object-fit:cover; border-radius: 120px; box-shadow:var(--shadow-float); }
.about-img-secondary { position:absolute; bottom:0; right:0; width:50%; height:60%; object-fit:cover; border-radius: 40px; box-shadow:var(--shadow-float); border:8px solid var(--warm-off-white); }
.pill-img { border-radius: 200px !important; }
.rounded-img { border-radius: 40px !important; }
.about-badge { position:absolute; top:40%; left:-5%; background:rgba(250, 249, 248, 0.95); padding:20px; border-radius:var(--radius-sm); border:1px solid rgba(255,255,255,0.7); box-shadow:var(--shadow-float); display:flex; flex-direction:column; align-items:center; text-align:center; gap:8px; animation:floatGentle 5s ease-in-out infinite; will-change: transform; }
.about-badge i { color:var(--teal); font-size:1.8rem; }
.about-badge span { font-size:0.85rem; font-weight:500; color:var(--text-display); line-height:1.2; }
.about-content p { margin-bottom:20px; }
.about-checklist { margin:30px 0 40px; display:flex; flex-direction:column; gap:16px; }
.about-checklist li { display:flex; align-items:flex-start; gap:14px; font-size:1rem; color:var(--text-primary); }
.about-checklist i { color:var(--teal-light); font-size:1.2rem; margin-top:3px; }

/* BENTO BOX UI */
.bento-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 30px;
}
@media (min-width: 992px) {
  .bento-wide { grid-column: span 2; }
  .bento-tall { grid-row: span 2; }
}
@media (max-width: 991px) {
  .bento-grid { grid-template-columns: 1fr; }
  .bento-wide, .bento-tall { grid-column: span 1; grid-row: span 1; }
}
.spotlight-card {
  background: var(--soft-white);
  border-radius: var(--radius-lg);
  box-shadow: var(--shadow-soft);
  border: 1px solid rgba(0,0,0,0.03);
  transition: transform 0.4s cubic-bezier(0.16, 1, 0.3, 1), box-shadow 0.4s ease;
  position: relative;
  overflow: hidden;
  display: flex;
  flex-direction: column;
}
.spotlight-card::before {
  content: '';
  position: absolute;
  inset: 0;
  background: radial-gradient(800px circle at var(--mouse-x, 50%) var(--mouse-y, 50%), rgba(19, 138, 142, 0.08), transparent 40%);
  opacity: 0;
  transition: opacity 0.3s;
  pointer-events: none;
  z-index: 0;
}
.spotlight-card:hover { transform: translateY(-8px); box-shadow: var(--shadow-float); }
.spotlight-card:hover::before { opacity: 1; }
.spotlight-overlay { position: absolute; inset: 0; z-index: 1; pointer-events: none; }

/* SERVICES SECTION */
.services.bg-tint { background:transparent; }
.service-card { padding:40px 32px; }
.service-img-wrap { display:none; }
.service-body { position:relative; z-index:1; flex:1; display:flex; flex-direction:column; }
.service-body > h3 { font-size:1.4rem; margin-bottom:14px; }
.service-body > p { color:var(--text-muted); margin-bottom:24px; font-size:0.95rem; }
.service-body > ul { display:flex; flex-direction:column; gap:12px; margin-bottom:32px; flex:1; }
.service-body > ul li { display:flex; gap:12px; align-items:flex-start; font-size:0.9rem; color:var(--text-muted); }
.service-body > ul li::before { content:'\f00c'; font-family:'Font Awesome 6 Free'; font-weight:900; color:var(--teal-light); font-size:0.8rem; margin-top:2px; }
.service-link { display:inline-flex; align-items:center; gap:8px; color:var(--teal-dark); font-weight:500; font-size:0.95rem; margin-top:auto; transition:var(--trans-smooth); }
.service-link:hover { gap:12px; color:var(--teal); }
.featured-card { box-shadow:var(--shadow-float); border:1px solid rgba(19, 138, 142, 0.1); }
.featured-tag { display:inline-block; background:var(--teal-soft); color:var(--teal-dark); font-size:0.75rem; font-weight:600; padding:6px 14px; border-radius:var(--radius-pill); text-transform:uppercase; letter-spacing:1px; margin-bottom:16px; align-self:flex-start; }

/* ====== PREMIUM FLOATING COLLAGE GALLERY ====== */
.gallery-section {
  position: relative;
  padding: 120px 0;
  background: radial-gradient(circle at 10% 20%, rgba(19, 138, 142, 0.05) 0%, transparent 50%),
              radial-gradient(circle at 90% 80%, rgba(19, 138, 142, 0.03) 0%, transparent 50%),
              linear-gradient(to bottom, var(--bg-primary), rgba(245, 250, 250, 0.5) 50%, var(--bg-primary));
  overflow: hidden;
}

/* Floating Ambient Glow Orbs */
.gallery-glow {
  position: absolute;
  border-radius: 50%;
  pointer-events: none;
  opacity: 0.4;
  mix-blend-mode: multiply;
  z-index: 1;
}
.glow-1 {
  top: 15%;
  left: -5%;
  width: 350px;
  height: 350px;
  background: radial-gradient(circle, var(--teal-soft) 0%, transparent 70%);
  animation: floatOrb 25s ease-in-out infinite;
}
.glow-2 {
  bottom: 20%;
  right: -5%;
  width: 400px;
  height: 400px;
  background: radial-gradient(circle, rgba(19, 138, 142, 0.2) 0%, transparent 70%);
  animation: floatOrb 30s ease-in-out infinite reverse;
}
.glow-3 {
  top: 50%;
  left: 45%;
  width: 250px;
  height: 250px;
  background: radial-gradient(circle, var(--teal-light) 0%, transparent 70%);
  animation: floatOrb 20s ease-in-out infinite 5s;
  opacity: 0.25;
}

@keyframes floatOrb {
  0%, 100% { transform: translate(0, 0) scale(1); }
  50% { transform: translate(40px, -40px) scale(1.15); }
}

.gallery-section .container {
  position: relative;
  z-index: 2;
}

/* Collage Columns Layout */
.gallery-collage {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 28px;
  padding: 40px 0 100px;
  perspective: 1000px;
}

.gallery-column {
  display: flex;
  flex-direction: column;
  gap: 32px;
  will-change: transform;
}

/* Asymmetrical Column Offsets for layered float feel */
.gallery-column:nth-child(1) { transform: translateY(20px); }
.gallery-column:nth-child(2) { transform: translateY(-40px); }
.gallery-column:nth-child(3) { transform: translateY(40px); }
.gallery-column:nth-child(4) { transform: translateY(-20px); }

/* Floating Image Cards */
.gallery-card {
  position: relative;
  border-radius: 20px;
  overflow: hidden;
  background: rgba(250, 249, 248, 0.95);
  border: 1px solid rgba(255, 255, 255, 0.85);
  box-shadow: 0 15px 35px rgba(9, 43, 48, 0.05);
  cursor: zoom-in;
  will-change: transform, opacity;
  transition: transform 0.6s cubic-bezier(0.16, 1, 0.3, 1), opacity 0.6s ease;
  z-index: 2;
  /* Start a bit faded, Javascript will focus them on scroll */
  opacity: 0.6;
  transform: scale(0.96);
}

.gallery-card img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  transition: transform 0.8s cubic-bezier(0.16, 1, 0.3, 1);
  pointer-events: none;
}

/* Custom Card Sizes for Visual Rhythm */
.gallery-card.size-sm { aspect-ratio: 4/3; }
.gallery-card.size-md { aspect-ratio: 1/1; }
.gallery-card.size-lg { aspect-ratio: 4/5; }

/* Controlled Rotation / Tilt */
.gallery-card.rotate-left { transform: rotate(-1.5deg) scale(0.96); }
.gallery-card.rotate-right { transform: rotate(1.5deg) scale(0.96); }

/* In-Focus Active State (controlled via JS) */
.gallery-card.in-focus {
  opacity: 1 !important;
  z-index: 5;
}

/* Hover Zoom & Overlay */
.gallery-card:hover {
  transform: translateY(-8px) scale(1.02) !important;
  z-index: 10;
}
.gallery-card:hover img {
  transform: scale(1.08);
}

/* Elegant editorial card overlay */
.card-overlay {
  position: absolute;
  inset: 0;
  background: linear-gradient(to top, rgba(9, 43, 48, 0.85) 0%, rgba(9, 43, 48, 0.25) 50%, transparent 100%);
  opacity: 0;
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  padding: 24px;
  color: white;
  transition: opacity 0.4s ease;
  pointer-events: none;
}

.gallery-card:hover .card-overlay {
  opacity: 1;
}

.card-tag {
  display: inline-block;
  background: var(--teal-light);
  color: var(--teal-dark);
  font-size: 0.7rem;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 1.5px;
  padding: 4px 10px;
  border-radius: var(--radius-pill);
  width: fit-content;
  margin-bottom: 8px;
  transform: translateY(10px);
  opacity: 0;
  transition: all 0.4s cubic-bezier(0.16, 1, 0.3, 1) 0.05s;
}

.card-overlay h4 {
  font-size: 1.05rem;
  font-weight: 500;
  line-height: 1.3;
  margin: 0;
  transform: translateY(10px);
  opacity: 0;
  transition: all 0.4s cubic-bezier(0.16, 1, 0.3, 1) 0.1s;
}

.gallery-card:hover .card-tag,
.gallery-card:hover .card-overlay h4 {
  transform: translateY(0);
  opacity: 1;
}

/* ====== CINEMATIC LIGHTBOX ====== */
.lightbox {
  position: fixed;
  inset: 0;
  background: rgba(4, 21, 24, 0.98);
  z-index: 99999;
  display: flex;
  align-items: center;
  justify-content: center;
  opacity: 0;
  visibility: hidden;
  transition: opacity 0.5s ease, visibility 0.5s ease;
  padding: 30px;
}

.lightbox.active {
  opacity: 1;
  visibility: visible;
}

.lightbox-close {
  position: absolute;
  top: 30px;
  right: 40px;
  color: rgba(255, 255, 255, 0.7);
  font-size: 1.8rem;
  cursor: pointer;
  width: 50px;
  height: 50px;
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.05);
  border: 1px solid rgba(255, 255, 255, 0.1);
  transition: all 0.3s ease;
  z-index: 10;
}
.lightbox-close:hover {
  transform: rotate(90deg) scale(1.05);
  color: white;
  background: rgba(255, 255, 255, 0.15);
  border-color: rgba(255, 255, 255, 0.25);
}

.lightbox-nav {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  background: rgba(255, 255, 255, 0.05);
  border: 1px solid rgba(255, 255, 255, 0.1);
  color: rgba(255, 255, 255, 0.7);
  font-size: 1.4rem;
  width: 55px;
  height: 55px;
  border-radius: 50%;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: all 0.3s ease;
  z-index: 10;
}
.lightbox-nav:hover {
  background: rgba(255, 255, 255, 0.15);
  border-color: rgba(255, 255, 255, 0.25);
  color: white;
  scale: 1.05;
}
.lightbox-prev { left: 40px; }
.lightbox-next { right: 40px; }

.lightbox-content-wrapper {
  max-width: 80%;
  max-height: 80vh;
  display: flex;
  flex-direction: column;
  align-items: center;
  position: relative;
  transform: scale(0.95);
  transition: transform 0.5s cubic-bezier(0.16, 1, 0.3, 1);
}
.lightbox.active .lightbox-content-wrapper {
  transform: scale(1);
}

.lightbox-content {
  max-width: 100%;
  max-height: 70vh;
  object-fit: contain;
  border-radius: 12px;
  box-shadow: 0 30px 70px rgba(0, 0, 0, 0.6);
  border: 1px solid rgba(255, 255, 255, 0.1);
}

.lightbox-info {
  text-align: center;
  margin-top: 20px;
  max-width: 600px;
  opacity: 0;
  transform: translateY(10px);
  transition: all 0.4s ease 0.20s;
}
.lightbox.active .lightbox-info {
  opacity: 1;
  transform: translateY(0);
}

.lightbox-tag {
  display: inline-block;
  font-size: 0.75rem;
  text-transform: uppercase;
  letter-spacing: 2px;
  color: var(--teal-light);
  font-weight: 600;
  margin-bottom: 6px;
}

.lightbox-info h3 {
  color: white;
  font-size: 1.3rem;
  font-weight: 300;
  margin: 0;
  letter-spacing: 0.5px;
}

/* ====== RESPONSIVE LAYOUT (MOBILE EXPERIENCE) ====== */
@media(max-width: 1024px) {
  .gallery-collage {
    grid-template-columns: repeat(2, 1fr);
    gap: 20px;
  }
  .gallery-column:nth-child(odd) { transform: translateY(20px); }
  .gallery-column:nth-child(even) { transform: translateY(-20px); }
  .lightbox-content-wrapper { max-width: 95%; }
  .lightbox-prev { left: 20px; }
  .lightbox-next { right: 20px; }
  .lightbox-nav { width: 45px; height: 45px; font-size: 1.1rem; }
}

@media(max-width: 768px) {
  .gallery-section { padding: 80px 0; }
  .gallery-collage {
    gap: 16px;
    padding-bottom: 40px;
  }
  .gallery-column { gap: 16px; }
  
  /* Disable excessive columns offsets on small devices to keep visually balanced */
  .gallery-column:nth-child(1),
  .gallery-column:nth-child(3) { transform: translateY(10px); }
  .gallery-column:nth-child(2),
  .gallery-column:nth-child(4) { transform: translateY(-10px); }
  
  .gallery-card {
    border-radius: 14px;
    /* Soften mobile scale/opacity variations for touch performance */
    opacity: 0.9;
    transform: scale(0.98);
  }
  .gallery-card.rotate-left { transform: rotate(-0.5deg) scale(0.98); }
  .gallery-card.rotate-right { transform: rotate(0.5deg) scale(0.98); }
  
  .card-overlay { padding: 16px; }
  .card-overlay h4 { font-size: 0.9rem; }
  
  .lightbox-close { top: 20px; right: 20px; width: 40px; height: 40px; font-size: 1.4rem; }
  .lightbox-nav { display: none; } /* Rely on touch swipes / simple tap navigation on mobile */
  .lightbox-info h3 { font-size: 1.1rem; }
}

/* TESTIMONIALS - Soft Glass Cards */
.testimonials.bg-tint { background:transparent; }
.rating-summary { display:flex; align-items:center; justify-content:center; gap:20px; margin-top:24px; }
.rating-num { font-family:var(--heading); font-size:3.5rem; font-weight:300; color:var(--text-display); line-height:1; }
.stars-row { color:#fbbf24; font-size:1.2rem; margin-bottom:4px; }
.rating-right p { font-size:0.9rem; color:var(--text-muted); margin:0; }
.marquee-wrapper { overflow:hidden; width:100%; margin-top:40px; padding:0 20px; }
.marquee-track { display:flex; gap:32px; align-items:stretch; width:max-content; animation:scrollReel 30s linear infinite; padding:20px 0; }
.marquee-track:hover { animation-play-state:paused; }
@keyframes scrollReel { 
  0% { transform:translateX(0); } 
  100% { transform:translateX(calc(-50% - 16px)); } 
}
.testimonials-track { gap:32px; padding:20px 0; }
.testimonial-card { width:480px; background:rgba(250, 249, 248, 0.95); border-radius:var(--radius-lg); padding:40px; box-shadow:var(--shadow-soft); border:1px solid rgba(255,255,255,0.8); display:flex; flex-direction:column; transition:transform 0.5s cubic-bezier(0.16, 1, 0.3, 1); will-change: transform; }
.testimonial-card:hover { transform:translateY(-8px); }
.tcard-top { display:flex; align-items:center; gap:16px; margin-bottom:24px; }
.tcard-avatar { width:56px; height:56px; border-radius:50%; background:var(--teal-soft); color:var(--teal-dark); font-weight:500; font-size:1.1rem; display:flex; align-items:center; justify-content:center; }
.tcard-top strong { display:block; font-size:1.05rem; color:var(--text-display); font-weight:500; margin-bottom:4px; }
.tcard-stars { color:#fbbf24; font-size:0.85rem; }
.tcard-google { margin-left:auto; color:#4285F4; font-size:1.4rem; opacity:0.8; }
.testimonial-card p { color:var(--text-primary); font-size:1.05rem; line-height:1.7; font-weight:300; flex:1; font-style:italic; }

/* CTA BANNER - Smooth Gradient */
.cta-banner { margin:60px 24px; background:linear-gradient(135deg, var(--teal-dark) 0%, var(--teal) 100%); border-radius:var(--radius-lg); padding:80px 60px; position:relative; overflow:hidden; box-shadow:var(--shadow-float); }
.cta-orb { position:absolute; border-radius:50%; }
.cta-orb-1 { width:500px; height:500px; top:-200px; left:-100px; background:radial-gradient(circle, rgba(255,255,255,0.08) 0%, transparent 60%); }
.cta-orb-2 { width:400px; height:400px; bottom:-100px; right:-100px; background:radial-gradient(circle, rgba(255,255,255,0.08) 0%, transparent 60%); }
.cta-inner { display:flex; align-items:center; justify-content:space-between; gap:60px; position:relative; z-index:2; }
.cta-text-wrapper { flex:1; max-width:540px; }
.cta-icon { width:72px; height:72px; background:rgba(255,255,255,0.2); border-radius:20px; display:flex; align-items:center; justify-content:center; color:white; font-size:2rem; margin-bottom:32px; border:1px solid rgba(255,255,255,0.2); }
.cta-text h2 { font-size:2.2rem; font-weight:400; color:white; margin-bottom:16px; }
.cta-text p { color:rgba(255,255,255,0.8); font-size:1.1rem; line-height:1.6; font-weight:300; }
.cta-actions { margin-top:32px; display:flex; gap:12px; flex-wrap:wrap; }

.cta-form-wrapper { width:420px; background:rgba(250, 249, 248, 0.95); border-radius:var(--radius-md); padding:40px; box-shadow:var(--shadow-lg); border:1px solid rgba(255,255,255,0.2); }
.contact-form h3 { font-size:1.4rem; font-weight:500; color:var(--text-display); margin-bottom:24px; text-align:center; }
.form-group { margin-bottom:20px; display:flex; flex-direction:column; }
.form-group label { font-size:0.85rem; font-weight:500; color:var(--text-muted); margin-bottom:8px; }
.form-group input { width:100%; padding:14px 18px; border:1px solid rgba(0,0,0,0.1); border-radius:12px; font-family:var(--body); font-size:1rem; background:rgba(255,255,255,0.8); transition:var(--trans-smooth); outline:none; }
.form-group input::placeholder { color:#cbd5e1; }
.form-group input:focus { border-color:var(--teal-light); box-shadow:0 0 0 4px rgba(82, 182, 185, 0.15); background:white; }
.form-group input:invalid:not(:placeholder-shown) { border-color:var(--coral-accent); }
.error-msg { display:none; color:var(--coral-accent); font-size:0.75rem; margin-top:6px; }
.form-group input:invalid:not(:placeholder-shown) + .error-msg { display:block; }
.contact-form .btn-primary { width:100%; margin-top:10px; }
.form-status { margin-top:16px; font-size:0.9rem; text-align:center; display:none; }
.form-status.success { color:var(--teal); display:block; }
.form-status.error { color:var(--coral-accent); display:block; }

/* LOCATION SECTION */
.location-section { padding-bottom: 60px; }
.map-container { width: 100%; height: 450px; border-radius: var(--radius-lg); overflow: hidden; box-shadow: var(--shadow-md); border: 1px solid var(--border-light); transform: translateZ(0); }
.map-container iframe { width: 100%; height: 100%; border: none; filter: grayscale(10%); transition: filter 0.3s ease; }
.map-container:hover iframe { filter: grayscale(0%); }

/* FOOTER - Clean & Editorial */
.footer { background:var(--soft-white); padding:100px 0 0; position:relative; border-top:1px solid rgba(0,0,0,0.03); }
.footer-grid { display:grid; grid-template-columns:2fr 1fr 1.5fr; gap:60px; margin-bottom:60px; }
.footer-logo { display:flex; align-items:center; gap:12px; margin-bottom:24px; }
.footer-logo img { height:40px; }
.footer-logo span { font-family:var(--heading); font-weight:500; color:var(--text-display); font-size:1.1rem; }
.footer-brand p { font-size:1rem; color:var(--text-muted); line-height:1.7; max-width:320px; font-weight:300; }
.social-row { display:flex; gap:16px; margin-top:28px; }
.social-row a { width:44px; height:44px; border-radius:50%; background:var(--warm-off-white); color:var(--text-muted); display:flex; align-items:center; justify-content:center; transition:var(--trans-smooth); font-size:1rem; border:1px solid rgba(0,0,0,0.03); }
.social-row a:hover { background:var(--teal); color:white; transform:translateY(-2px); box-shadow:var(--shadow-soft); border-color:transparent; }
.footer-links h4, .footer-contact h4 { font-family:var(--heading); font-weight:500; color:var(--text-display); margin-bottom:24px; font-size:1.1rem; }
.footer-links ul li { margin-bottom:14px; }
.footer-links ul li a { font-size:0.95rem; color:var(--text-muted); transition:var(--trans-smooth); }
.footer-links ul li a:hover { color:var(--teal); }
.contact-info-list li { display:flex; align-items:flex-start; gap:16px; margin-bottom:20px; font-size:0.95rem; color:var(--text-muted); }
.contact-info-list i { color:var(--teal); margin-top:4px; font-size:1.1rem; }
.contact-info-list a { transition:var(--trans-smooth); }
.contact-info-list a:hover { color:var(--teal); }
.footer-bottom { border-top:1px solid rgba(0,0,0,0.05); padding:24px 0; }
.footer-bottom-inner { display:flex; justify-content:space-between; align-items:center; font-size:0.9rem; color:var(--text-light); }

/* REVEAL ANIMATIONS */
[data-reveal] { opacity:0; transform:translateY(30px); transition:opacity 1s cubic-bezier(0.16, 1, 0.3, 1), transform 1s cubic-bezier(0.16, 1, 0.3, 1); }
[data-reveal="left"] { transform:translateX(-30px); }
[data-reveal="right"] { transform:translateX(30px); }
[data-reveal].revealed { opacity:1; transform:translate(0); }

/* MOBILE NAV & RESPONSIVE */
.hamburger { display:none; flex-direction:column; gap:5px; background:none; border:none; padding:4px; cursor:none; z-index:1001; }
.hamburger span { display:block; width:24px; height:2px; background:var(--text-display); border-radius:2px; transition:0.3s; }

@media(max-width:1024px) {
  .hero-container { grid-template-columns:1fr; text-align:center; gap:0; }
  .hero-content { margin-bottom:60px; }
  .hero-actions { justify-content:center; }
  .hero-stats { justify-content:center; }
  .hero-desc { margin-left:auto; margin-right:auto; }
  .badge-pill { margin-left:auto; margin-right:auto; }
  .hero-visual { height:auto; padding: 60px 0; }
  .about-grid { grid-template-columns:1fr; }
  .about-images { height:400px; margin-bottom:40px; }
  .footer-grid { grid-template-columns:1fr 1fr; }
}

@media(max-width:768px) {
  .hamburger { display:flex; }
  .nav { position:fixed; top:0; right:-100%; width:100%; height:100vh; background:var(--warm-off-white); padding:100px 32px 40px; transition:var(--trans-smooth); z-index:999; display:flex; flex-direction:column; align-items:center; }
  .nav.open { right:0; }
  .nav-list { flex-direction:column; gap:30px; align-items:center; }
  .nav-link { font-size:1.3rem; }
  .header-cta .btn-primary { display:none; }
  
  .section { padding:80px 0; }
  .section-heading { font-size:2.4rem; }
  .cta-banner { margin:24px; padding:60px 30px; border-radius:var(--radius-md); }
  .cta-inner { flex-direction:column; text-align:center; gap:40px; }
  .cta-actions { justify-content:center; }
  .cta-form-wrapper { width:100%; padding:30px 24px; }
  
  .gallery-item { width:300px; }
  .testimonial-card { width:320px; padding:30px; }
  .map-container { height:300px; }
  .footer-grid { grid-template-columns:1fr; gap:40px; }
}

@media(max-width:480px) {
  .hero-title { font-size:2.5rem; }
  .hero-visual { height:auto; }
  .btn { padding:10px 24px; }
  .btn-lg { padding:14px 28px; }
  .hero-stats { gap:20px; }
  .stat-item strong { font-size:1.4rem; }
  .services-grid { grid-template-columns:1fr; }
}

/* ===== NEW DIAGNOSTIC TESTS STYLES ===== */
.diagnostic-grid { margin-top: 50px; }
.diagnostic-card { padding: 30px; z-index: 1; }
.diag-header {
  display: flex;
  align-items: center;
  gap: 15px;
  margin-bottom: 20px;
}
.diag-icon {
  width: 50px;
  height: 50px;
  background: rgba(13,148,136,0.1);
  color: var(--primary);
  border-radius: 12px;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 1.4rem;
  transition: all 0.3s ease;
}
.diagnostic-card:hover .diag-icon {
  background: var(--primary);
  color: white;
  transform: scale(1.1) rotate(5deg);
}
.diag-header h3 {
  font-size: 1.3rem;
  font-weight: 600;
  margin: 0;
}
.diag-body p {
  font-size: 0.95rem;
  color: var(--text-light);
  line-height: 1.6;
  margin-bottom: 20px;
}
.diag-link {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  color: var(--primary);
  font-weight: 600;
  font-size: 0.95rem;
  transition: gap 0.3s ease;
}
.diagnostic-card:hover .diag-link {
  gap: 12px;
}



/* ===== STICKY WHATSAPP CTA ===== */
.floating-whatsapp {
  position: fixed;
  bottom: 30px;
  left: 30px; /* Kept on left to avoid bottom right scroll-to-top clashes usually */
  width: 60px;
  height: 60px;
  background-color: #25d366;
  color: white;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 32px;
  box-shadow: 0 10px 25px rgba(37,211,102,0.3);
  z-index: 999;
  transition: all 0.3s cubic-bezier(0.175, 0.885, 0.32, 1.275);
}
.floating-whatsapp:hover {
  transform: scale(1.1) translateY(-5px);
  box-shadow: 0 15px 35px rgba(37,211,102,0.4);
}
.fw-tooltip {
  position: absolute;
  left: 75px;
  background: white;
  color: var(--text-dark);
  padding: 8px 15px;
  border-radius: 8px;
  font-size: 0.85rem;
  font-weight: 600;
  box-shadow: var(--shadow-md);
  opacity: 0;
  visibility: hidden;
  transform: translateX(-10px);
  transition: all 0.3s ease;
  white-space: nowrap;
  pointer-events: none;
}
.fw-tooltip::after {
  content: '';
  position: absolute;
  left: -5px;
  top: 50%;
  transform: translateY(-50%);
  border-width: 5px 5px 5px 0;
  border-style: solid;
  border-color: transparent white transparent transparent;
}
.floating-whatsapp:hover .fw-tooltip {
  opacity: 1;
  visibility: visible;
  transform: translateX(0);
}

/* ===== MOBILE BOTTOM CTA BAR ===== */
.mobile-bottom-cta {
  display: none;
  position: fixed;
  bottom: 0;
  left: 0;
  width: 100%;
  background: rgba(255,255,255,0.98);
  border-top: 1px solid var(--border-light);
  padding: 12px 20px;
  z-index: 998;
  gap: 15px;
  box-shadow: 0 -5px 20px rgba(0,0,0,0.05);
}
.mb-btn {
  flex: 1;
  padding: 12px;
  border-radius: 12px;
  font-weight: 600;
  font-size: 0.95rem;
  text-align: center;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  transition: all 0.3s ease;
}
.mb-btn.call-btn {
  background: rgba(13,148,136,0.1);
  color: var(--primary);
}
.mb-btn.book-btn {
  background: var(--primary);
  color: white;
}

@media(max-width: 768px) {
  .mobile-bottom-cta {
    display: flex;
  }
  .floating-whatsapp {
    bottom: 90px; /* Push above mobile CTA */
    left: 20px;
    width: 50px;
    height: 50px;
    font-size: 28px;
  }
  .fw-tooltip { display: none; }
  .hero-experience-badge { top: 5%; left: 0; padding: 10px 15px; }
  .exp-num { font-size: 1.5rem; }
  .exp-text { font-size: 0.75rem; }
  .hero-floating-review { bottom: 10%; right: 0; padding: 10px 15px; max-width: 180px;}
  .hero-floating-review p { font-size: 0.75rem; }
}

/* Enhance Service Cards for Hover-Expand feel */
.service-card {
  transition: transform 0.4s cubic-bezier(0.175, 0.885, 0.32, 1.275), box-shadow 0.4s ease;
}
.service-card:hover {
  transform: translateY(-10px) scale(1.02);
  box-shadow: 0 20px 40px rgba(0,0,0,0.08);
}
.service-icon-new {
  transition: transform 0.4s ease, background 0.4s ease;
}
.service-card:hover .service-icon-new {
  transform: scale(1.15) rotate(5deg);
  background: var(--primary);
  color: white;
}
.btn {
  transition: all 0.3s cubic-bezier(0.25, 0.8, 0.25, 1);
  position: relative;
  overflow: hidden;
}
.btn:hover {
  transform: translateY(-3px);
  box-shadow: 0 10px 20px rgba(13,148,136,0.3);
}

