/* ===== CSS Variables ===== */
:root {
  --rose-50: #fdf2f8;
  --rose-100: #fce7f3;
  --rose-200: #fbcfe8;
  --rose-300: #f9a8d4;
  --rose-400: #f472b6;
  --rose-500: #ec4899;
  --rose-600: #db2777;
  --rose-700: #be185d;
  --rose-800: #9d174d;
  --rose-900: #831843;

  --gray-50: #fafafa;
  --gray-100: #f5f5f5;
  --gray-200: #e5e5e5;
  --gray-300: #d4d4d4;
  --gray-400: #a3a3a3;
  --gray-500: #737373;
  --gray-600: #525252;
  --gray-700: #404040;
  --gray-800: #262626;
  --gray-900: #171717;

  --shadow-sm: 0 1px 2px rgba(0,0,0,0.06);
  --shadow-md: 0 4px 12px rgba(0,0,0,0.08);
  --shadow-lg: 0 12px 24px rgba(0,0,0,0.1);
  --shadow-xl: 0 20px 40px rgba(0,0,0,0.12);
  --shadow-rose: 0 8px 24px rgba(219,39,119,0.25);

  --font-sans: 'Inter', -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;
  --font-display: 'Playfair Display', Georgia, serif;
}

/* ===== Reset & Base ===== */
*,*::before,*::after { margin:0; padding:0; box-sizing:border-box; }
html { scroll-behavior:smooth; -webkit-text-size-adjust:100%; }
body {
  font-family: var(--font-sans);
  color: var(--gray-800);
  line-height:1.6;
  background:#fff;
  overflow-x:hidden;
}

/* ===== Scroll Animations ===== */
.animate-on-scroll {
  opacity:0;
  transform:translateY(24px);
  transition: opacity 0.6s ease, transform 0.6s ease;
}
.animate-on-scroll.visible {
  opacity:1;
  transform:translateY(0);
}

/* ===== Navigation ===== */
nav {
  position:fixed;
  top:0;left:0;right:0;
  z-index:100;
  background:rgba(255,255,255,0.92);
  backdrop-filter:blur(16px);
  -webkit-backdrop-filter:blur(16px);
  transition:box-shadow 0.3s, background 0.3s;
}
nav.scrolled {
  box-shadow:0 1px 0 var(--gray-200), var(--shadow-sm);
}
.nav-container {
  max-width:1200px;
  margin:0 auto;
  padding:14px 24px;
  display:flex;
  justify-content:space-between;
  align-items:center;
}
.logo {
  font-family:var(--font-display);
  font-size:1.6rem;
  font-weight:800;
  color:var(--gray-900);
  text-decoration:none;
  letter-spacing:-0.02em;
}
.logo span { color:var(--rose-600); }

.nav-links {
  display:flex;
  align-items:center;
  gap:32px;
}
.nav-links a {
  text-decoration:none;
  color:var(--gray-500);
  font-size:0.92rem;
  font-weight:500;
  transition:color 0.2s;
}
.nav-links a:hover { color:var(--gray-900); }
.nav-cta {
  background:var(--rose-600)!important;
  color:#fff!important;
  padding:9px 22px;
  border-radius:10px;
  font-weight:600!important;
  transition:all 0.2s!important;
}
.nav-cta:hover {
  background:var(--rose-700)!important;
  box-shadow:var(--shadow-rose);
}

/* Hamburger */
.hamburger {
  display:none;
  flex-direction:column;
  gap:5px;
  background:none;
  border:none;
  cursor:pointer;
  padding:8px;
  z-index:110;
}
.hamburger span {
  display:block;
  width:22px;
  height:2px;
  background:var(--gray-800);
  border-radius:2px;
  transition:all 0.3s;
}
.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); }

/* Mobile menu */
.mobile-menu {
  display:none;
  flex-direction:column;
  padding:0 24px 20px;
  gap:0;
  max-height:0;
  overflow:hidden;
  transition:max-height 0.3s ease, padding 0.3s ease;
}
.mobile-menu.active {
  max-height:300px;
  padding:8px 24px 20px;
}
.mobile-menu a {
  text-decoration:none;
  color:var(--gray-600);
  font-size:1rem;
  font-weight:500;
  padding:12px 0;
  border-bottom:1px solid var(--gray-100);
  transition:color 0.2s;
}
.mobile-menu a:hover { color:var(--rose-600); }
.mobile-cta {
  background:var(--rose-600)!important;
  color:#fff!important;
  text-align:center;
  padding:12px!important;
  border-radius:10px;
  margin-top:8px;
  border:none!important;
  font-weight:600;
}

/* ===== Buttons ===== */
.btn {
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:8px;
  padding:13px 26px;
  border-radius:12px;
  font-size:0.95rem;
  font-weight:600;
  border:none;
  cursor:pointer;
  text-decoration:none;
  transition:all 0.25s;
  font-family:var(--font-sans);
}
.btn-primary {
  background:var(--rose-600);
  color:#fff;
}
.btn-primary:hover {
  background:var(--rose-700);
  transform:translateY(-2px);
  box-shadow:var(--shadow-rose);
}
.btn-glow {
  animation:btn-glow-pulse 3s ease-in-out infinite;
}
@keyframes btn-glow-pulse {
  0%,100% { box-shadow:0 0 0 0 rgba(219,39,119,0); }
  50% { box-shadow:0 0 0 8px rgba(219,39,119,0.15); }
}
.btn-secondary {
  background:var(--gray-100);
  color:var(--gray-700);
  border:1px solid var(--gray-200);
}
.btn-secondary:hover {
  background:var(--gray-200);
  transform:translateY(-2px);
}
.btn-large {
  padding:16px 36px;
  font-size:1.05rem;
  border-radius:14px;
}

/* ===== Hero ===== */
.hero {
  padding:120px 24px 80px;
  position:relative;
  overflow:hidden;
  background:linear-gradient(180deg, var(--rose-50) 0%, #fff 60%);
  min-height:90vh;
  display:flex;
  align-items:center;
  justify-content:center;
}
.hero-split {
  max-width:1200px;
  margin:0 auto;
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:60px;
  align-items:center;
  position:relative;
  z-index:1;
}
.hero-container {
  text-align:left;
}
.hero-badge {
  display:inline-block;
  padding:8px 20px;
  background:var(--rose-100);
  color:var(--rose-700);
  border-radius:24px;
  font-size:0.82rem;
  font-weight:600;
  margin-bottom:28px;
  letter-spacing:0.5px;
  text-transform:uppercase;
}
.hero h1 {
  font-family:var(--font-display);
  font-size:3.8rem;
  font-weight:900;
  line-height:1.1;
  color:var(--gray-900);
  margin-bottom:24px;
  letter-spacing:-0.02em;
}
.highlight {
  background:linear-gradient(135deg, var(--rose-500), var(--rose-700));
  -webkit-background-clip:text;
  -webkit-text-fill-color:transparent;
  background-clip:text;
}
.highlight-light {
  background:linear-gradient(135deg, var(--rose-300), var(--rose-500));
  -webkit-background-clip:text;
  -webkit-text-fill-color:transparent;
  background-clip:text;
}
.hero p {
  font-size:1.15rem;
  color:var(--gray-500);
  margin-bottom:36px;
  line-height:1.8;
  max-width:580px;
  margin-left:auto;
  margin-right:auto;
}
.hero-buttons {
  display:flex;
  gap:14px;
  justify-content:flex-start;
  flex-wrap:wrap;
}

/* Hero Images */
.hero-images { position:relative; }
.hero-img-grid {
  display:grid;
  grid-template-columns:1fr 1fr;
  grid-template-rows:auto auto;
  gap:12px;
}
.hero-img {
  width:100%;
  height:100%;
  object-fit:cover;
  border-radius:16px;
  box-shadow:var(--shadow-lg);
}
.hero-img-main {
  grid-row:1 / 3;
  min-height:400px;
}
.hero-img-small {
  min-height:190px;
}

.hero-decoration {
  position:absolute;
  inset:0;
  pointer-events:none;
  overflow:hidden;
}
.hero-gradient-1,.hero-gradient-2,.hero-gradient-3 {
  position:absolute;
  border-radius:50%;
  filter:blur(100px);
}
.hero-gradient-1 {
  width:500px; height:500px;
  background:var(--rose-200);
  opacity:0.4;
  top:-150px; right:-100px;
  animation:float-slow 8s ease-in-out infinite;
}
.hero-gradient-2 {
  width:400px; height:400px;
  background:var(--rose-100);
  opacity:0.5;
  bottom:-100px; left:-100px;
  animation:float-slow 10s ease-in-out infinite reverse;
}
.hero-gradient-3 {
  width:200px; height:200px;
  background:var(--rose-300);
  opacity:0.3;
  top:40%; left:50%;
  animation:float-slow 6s ease-in-out infinite;
}
@keyframes float-slow {
  0%,100% { transform:translate(0,0); }
  50% { transform:translate(20px,-20px); }
}

/* ===== Stats ===== */
.stats {
  padding:0 24px;
  margin-top:-30px;
  position:relative;
  z-index:2;
}
.stats-grid {
  max-width:900px;
  margin:0 auto;
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:1px;
  background:var(--gray-200);
  border-radius:20px;
  overflow:hidden;
  box-shadow:var(--shadow-lg);
}
.stat-item {
  background:#fff;
  padding:30px 20px;
  text-align:center;
}
.stat-number {
  display:block;
  font-size:1.5rem;
  font-weight:800;
  color:var(--rose-600);
  margin-bottom:4px;
}
.stat-label {
  font-size:0.82rem;
  color:var(--gray-400);
  font-weight:500;
  text-transform:uppercase;
  letter-spacing:0.5px;
}

/* ===== Section Shared ===== */
.section-container {
  max-width:1200px;
  margin:0 auto;
  padding:0 24px;
}
.section-header {
  margin-bottom:48px;
}
.section-badge {
  display:inline-block;
  padding:6px 16px;
  background:var(--rose-50);
  color:var(--rose-600);
  border-radius:20px;
  font-size:0.78rem;
  font-weight:600;
  margin-bottom:14px;
  text-transform:uppercase;
  letter-spacing:0.5px;
}
.section-title {
  font-family:var(--font-display);
  font-size:2.4rem;
  font-weight:800;
  color:var(--gray-900);
  margin-bottom:14px;
  letter-spacing:-0.02em;
}
.section-description {
  font-size:1.05rem;
  color:var(--gray-500);
  max-width:560px;
  line-height:1.7;
}

/* ===== Services ===== */
.services-section {
  padding:100px 0 80px;
}
.services-grid {
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:16px;
}
.service-card {
  background:#fff;
  border:1px solid var(--gray-200);
  border-radius:16px;
  padding:24px;
  transition:all 0.3s;
  position:relative;
  overflow:hidden;
}
.service-card::before {
  content:'';
  position:absolute;
  top:0;left:0;right:0;
  height:3px;
  background:linear-gradient(90deg, var(--rose-400), var(--rose-600));
  opacity:0;
  transition:opacity 0.3s;
}
.service-card:hover {
  border-color:var(--rose-200);
  box-shadow:var(--shadow-md);
  transform:translateY(-4px);
}
.service-card:hover::before { opacity:1; }

.service-icon-badge {
  width:40px; height:40px;
  border-radius:10px;
  background:var(--rose-50);
  color:var(--rose-600);
  display:flex;
  align-items:center;
  justify-content:center;
  margin-bottom:14px;
}
.service-category {
  font-size:0.72rem;
  font-weight:600;
  color:var(--rose-600);
  text-transform:uppercase;
  letter-spacing:0.8px;
  margin-bottom:6px;
}
.service-name {
  font-size:1rem;
  font-weight:700;
  color:var(--gray-900);
  margin-bottom:6px;
}
.service-description {
  font-size:0.85rem;
  color:var(--gray-500);
  line-height:1.5;
  margin-bottom:16px;
}
.service-footer {
  display:flex;
  justify-content:space-between;
  align-items:center;
  padding-top:14px;
  border-top:1px solid var(--gray-100);
}
.service-price {
  font-size:1.15rem;
  font-weight:700;
  color:var(--gray-900);
}
.service-duration {
  font-size:0.75rem;
  font-weight:600;
  color:var(--rose-600);
  background:var(--rose-50);
  padding:4px 12px;
  border-radius:20px;
}

/* ===== Gallery ===== */
.gallery-section {
  padding:80px 0;
  background:var(--gray-50);
}
.gallery-grid {
  display:grid;
  grid-template-columns:repeat(4,1fr);
  grid-template-rows:auto auto;
  gap:12px;
}
.gallery-item {
  position:relative;
  border-radius:14px;
  overflow:hidden;
  cursor:pointer;
}
.gallery-item img {
  width:100%;
  height:100%;
  object-fit:cover;
  display:block;
  transition:transform 0.4s;
  min-height:200px;
}
.gallery-item:hover img { transform:scale(1.06); }
.gallery-tall { grid-row:span 2; }
.gallery-tall img { min-height:420px; }
.gallery-overlay {
  position:absolute;
  inset:0;
  background:linear-gradient(to top, rgba(0,0,0,0.5) 0%, transparent 50%);
  display:flex;
  align-items:flex-end;
  padding:16px;
  opacity:0;
  transition:opacity 0.3s;
}
.gallery-item:hover .gallery-overlay { opacity:1; }
.gallery-overlay span {
  color:#fff;
  font-weight:600;
  font-size:0.9rem;
}

/* ===== Features ===== */
.features-section {
  padding:100px 0;
  background:var(--gray-50);
}
.features-grid {
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:20px;
}
.feature-card {
  background:#fff;
  border:1px solid var(--gray-200);
  border-radius:16px;
  padding:32px;
  transition:all 0.3s;
}
.feature-card:hover {
  border-color:var(--rose-200);
  box-shadow:var(--shadow-md);
  transform:translateY(-3px);
}
.feature-icon-wrap {
  width:52px; height:52px;
  border-radius:14px;
  background:linear-gradient(135deg, var(--rose-50), var(--rose-100));
  display:flex;
  align-items:center;
  justify-content:center;
  margin-bottom:18px;
}
.feature-icon { font-size:1.6rem; }
.feature-card h3 {
  font-size:1.05rem;
  font-weight:700;
  color:var(--gray-900);
  margin-bottom:8px;
}
.feature-card p {
  font-size:0.88rem;
  color:var(--gray-500);
  line-height:1.6;
}

/* ===== Book Banner ===== */
.book-banner {
  padding:70px 0;
  background-size:cover;
  background-position:center;
  position:relative;
}
.book-banner-overlay {
  position:absolute;
  inset:0;
  background:linear-gradient(135deg, rgba(157,23,77,0.85), rgba(131,24,67,0.9));
}
.book-banner .section-container { position:relative; z-index:1; }
.banner-content {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:24px;
}
.banner-text h3 {
  font-family:var(--font-display);
  font-size:1.8rem;
  color:#fff;
  margin-bottom:6px;
}
.banner-text p {
  color:rgba(255,255,255,0.8);
  font-size:0.95rem;
}
.book-banner .btn-primary {
  background:#fff;
  color:var(--rose-700);
}
.book-banner .btn-primary:hover {
  background:var(--rose-50);
  box-shadow:var(--shadow-lg);
}

/* ===== Testimonials ===== */
.testimonials-section {
  padding:100px 0;
}
.testimonials-grid {
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:20px;
}
.testimonial-card {
  background:#fff;
  border:1px solid var(--gray-200);
  border-radius:16px;
  padding:28px;
  transition:all 0.3s;
}
.testimonial-card:hover {
  box-shadow:var(--shadow-md);
  transform:translateY(-2px);
}
.stars {
  color:#f59e0b;
  font-size:1.1rem;
  margin-bottom:16px;
  letter-spacing:2px;
}
.testimonial-card p {
  font-size:0.9rem;
  color:var(--gray-600);
  line-height:1.7;
  margin-bottom:20px;
  font-style:italic;
}
.testimonial-author {
  display:flex;
  align-items:center;
  gap:12px;
}
.author-avatar {
  width:42px; height:42px;
  border-radius:50%;
  background:linear-gradient(135deg, var(--rose-100), var(--rose-200));
  color:var(--rose-600);
  display:flex;
  align-items:center;
  justify-content:center;
  font-weight:700;
  font-size:0.95rem;
}
.testimonial-author strong {
  display:block;
  font-size:0.88rem;
  color:var(--gray-800);
}
.verified {
  font-size:0.75rem;
  color:var(--gray-400);
}

/* ===== CTA ===== */
.cta-section {
  padding:120px 0;
  background:linear-gradient(135deg, var(--gray-900) 0%, #1a1a2e 100%);
  text-align:center;
  position:relative;
  overflow:hidden;
}
.cta-section::before {
  content:'';
  position:absolute;
  width:600px; height:600px;
  border-radius:50%;
  background:var(--rose-600);
  filter:blur(200px);
  opacity:0.08;
  top:50%; left:50%;
  transform:translate(-50%,-50%);
}
.cta-content { position:relative; z-index:1; }
.cta-section h2 {
  font-family:var(--font-display);
  font-size:2.6rem;
  font-weight:800;
  color:#fff;
  margin-bottom:18px;
}
.cta-section p {
  font-size:1.1rem;
  color:var(--gray-400);
  max-width:480px;
  margin:0 auto 36px;
  line-height:1.7;
}

/* ===== Footer ===== */
footer {
  padding:50px 0 30px;
  background:var(--gray-50);
  border-top:1px solid var(--gray-200);
}
.footer-container {
  max-width:1200px;
  margin:0 auto;
  padding:0 24px;
}
.footer-top {
  display:flex;
  justify-content:space-between;
  align-items:flex-start;
  margin-bottom:30px;
}
.footer-brand p {
  color:var(--gray-500);
  font-size:0.88rem;
  margin-top:8px;
}
.footer-links {
  display:flex;
  gap:28px;
}
.footer-links a {
  text-decoration:none;
  color:var(--gray-500);
  font-size:0.88rem;
  font-weight:500;
  transition:color 0.2s;
}
.footer-links a:hover { color:var(--rose-600); }
.footer-bottom {
  border-top:1px solid var(--gray-200);
  padding-top:20px;
}
.footer-bottom p {
  font-size:0.8rem;
  color:var(--gray-400);
  text-align:center;
}

/* ===== Floating Assistant Button ===== */
.fab {
  position:fixed;
  bottom:24px; right:24px;
  width:60px; height:60px;
  border-radius:50%;
  background:linear-gradient(135deg, var(--rose-500), var(--rose-700));
  border:none;
  cursor:pointer;
  box-shadow:var(--shadow-rose);
  z-index:90;
  display:flex;
  align-items:center;
  justify-content:center;
  transition:all 0.25s;
  animation:fab-pulse 3s ease-in-out infinite;
}
.fab:hover {
  transform:scale(1.08);
  box-shadow:0 12px 32px rgba(219,39,119,0.35);
}
@keyframes fab-pulse {
  0%,100% { box-shadow:var(--shadow-rose), 0 0 0 0 rgba(219,39,119,0.3); }
  50% { box-shadow:var(--shadow-rose), 0 0 0 14px rgba(219,39,119,0); }
}
.fab-avatar {
  width:36px; height:36px;
  border-radius:50%;
  background:rgba(255,255,255,0.2);
  color:#fff;
  display:flex;
  align-items:center;
  justify-content:center;
  font-weight:700;
  font-size:1rem;
}

/* ===== Assistant Popup ===== */
.assistant-popup {
  position:fixed;
  bottom:100px; right:24px;
  width:380px;
  max-height:560px;
  background:#fff;
  border-radius:20px;
  box-shadow:var(--shadow-xl);
  z-index:95;
  display:flex;
  flex-direction:column;
  opacity:0;
  visibility:hidden;
  transform:translateY(16px) scale(0.95);
  transition:all 0.3s cubic-bezier(0.4,0,0.2,1);
}
.assistant-popup.active {
  opacity:1;
  visibility:visible;
  transform:translateY(0) scale(1);
}
.assistant-header {
  padding:16px 20px;
  border-bottom:1px solid var(--gray-100);
  display:flex;
  align-items:center;
  gap:12px;
}
.assistant-info {
  display:flex;
  align-items:center;
  gap:10px;
  flex:1;
}
.assistant-avatar {
  width:36px; height:36px;
  border-radius:50%;
  background:linear-gradient(135deg, var(--rose-500), var(--rose-700));
  color:#fff;
  display:flex;
  align-items:center;
  justify-content:center;
  font-weight:700;
  font-size:0.95rem;
}
.assistant-info strong {
  display:block;
  font-size:0.92rem;
  color:var(--gray-800);
}
.assistant-info span {
  font-size:0.72rem;
  color:var(--gray-400);
}
.assistant-tabs {
  display:flex;
  gap:4px;
  background:var(--gray-100);
  padding:3px;
  border-radius:8px;
}
.tab-btn {
  padding:5px 14px;
  border:none;
  background:transparent;
  border-radius:6px;
  font-size:0.82rem;
  font-weight:600;
  color:var(--gray-500);
  cursor:pointer;
  transition:all 0.2s;
  font-family:var(--font-sans);
}
.tab-btn.active {
  background:#fff;
  color:var(--gray-800);
  box-shadow:var(--shadow-sm);
}
.close-btn {
  background:none;
  border:none;
  font-size:1.4rem;
  color:var(--gray-400);
  cursor:pointer;
  padding:0 4px;
  line-height:1;
}
.close-btn:hover { color:var(--gray-600); }

/* Chat Body */
.assistant-body {
  flex:1;
  overflow-y:auto;
  padding:16px 20px;
  min-height:260px;
  max-height:320px;
}
.assistant-body.hidden { display:none; }
.chat-messages {
  display:flex;
  flex-direction:column;
  gap:12px;
}
.message {
  display:flex;
  gap:8px;
  max-width:90%;
}
.message.user {
  flex-direction:row-reverse;
  align-self:flex-end;
}
.message-avatar {
  width:28px; height:28px;
  border-radius:50%;
  display:flex;
  align-items:center;
  justify-content:center;
  font-size:0.7rem;
  font-weight:700;
  flex-shrink:0;
}
.message.nina .message-avatar {
  background:var(--rose-100);
  color:var(--rose-600);
}
.message.user .message-avatar {
  background:var(--gray-200);
  color:var(--gray-600);
}
.message-bubble {
  padding:10px 14px;
  border-radius:14px;
  font-size:0.86rem;
  line-height:1.5;
}
.message.nina .message-bubble {
  background:var(--gray-100);
  color:var(--gray-700);
  border-bottom-left-radius:4px;
}
.message.user .message-bubble {
  background:linear-gradient(135deg, var(--rose-500), var(--rose-600));
  color:#fff;
  border-bottom-right-radius:4px;
}

/* Typing indicator */
.typing-indicator {
  display:flex;
  gap:4px;
  align-items:center;
  padding:14px 18px!important;
}
.typing-indicator span {
  width:6px; height:6px;
  border-radius:50%;
  background:var(--gray-400);
  animation:typing-bounce 1.4s ease-in-out infinite;
}
.typing-indicator span:nth-child(2) { animation-delay:0.2s; }
.typing-indicator span:nth-child(3) { animation-delay:0.4s; }
@keyframes typing-bounce {
  0%,60%,100% { transform:translateY(0); }
  30% { transform:translateY(-6px); }
}

/* Talk tab */
.talk-content {
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  padding:30px 20px;
  text-align:center;
}
.talk-avatar-container { margin-bottom:20px; }
.talk-avatar {
  width:72px; height:72px;
  border-radius:50%;
  background:linear-gradient(135deg, var(--rose-500), var(--rose-700));
  color:#fff;
  display:flex;
  align-items:center;
  justify-content:center;
  font-size:1.8rem;
  font-weight:700;
}
.talk-description {
  font-size:0.88rem;
  color:var(--gray-500);
  margin-bottom:24px;
  line-height:1.5;
}

/* Chat Footer */
.assistant-footer {
  padding:12px 20px 16px;
  border-top:1px solid var(--gray-100);
}
.assistant-footer.hidden { display:none; }
.quick-chips {
  display:flex;
  gap:6px;
  margin-bottom:10px;
  flex-wrap:wrap;
}
.chip {
  padding:6px 14px;
  border:1px solid var(--gray-200);
  border-radius:20px;
  background:#fff;
  font-size:0.76rem;
  color:var(--gray-600);
  cursor:pointer;
  transition:all 0.2s;
  white-space:nowrap;
  font-family:var(--font-sans);
}
.chip:hover {
  border-color:var(--rose-300);
  color:var(--rose-600);
  background:var(--rose-50);
}
.chat-input-container {
  display:flex;
  gap:8px;
}
#chatInput {
  flex:1;
  padding:10px 14px;
  border:1px solid var(--gray-200);
  border-radius:12px;
  font-size:0.86rem;
  outline:none;
  transition:border-color 0.2s;
  font-family:var(--font-sans);
}
#chatInput:focus { border-color:var(--rose-400); }
#sendBtn {
  width:40px; height:40px;
  border:none;
  background:linear-gradient(135deg, var(--rose-500), var(--rose-600));
  color:#fff;
  border-radius:12px;
  cursor:pointer;
  display:flex;
  align-items:center;
  justify-content:center;
  transition:all 0.2s;
}
#sendBtn:hover { box-shadow:var(--shadow-rose); }

/* ===== Voice Call Modal ===== */
.voice-modal {
  position:fixed;
  inset:0;
  background:rgba(0,0,0,0.75);
  backdrop-filter:blur(12px);
  -webkit-backdrop-filter:blur(12px);
  z-index:200;
  display:flex;
  align-items:center;
  justify-content:center;
  opacity:0;
  visibility:hidden;
  transition:all 0.3s;
}
.voice-modal.active {
  opacity:1;
  visibility:visible;
}
.voice-modal-content {
  text-align:center;
  color:#fff;
  padding:24px;
  width:100%;
  max-width:360px;
}
.voice-avatar-container {
  position:relative;
  width:120px; height:120px;
  margin:0 auto 28px;
}
.voice-avatar {
  width:120px; height:120px;
  border-radius:50%;
  background:linear-gradient(135deg, var(--rose-500), var(--rose-700));
  display:flex;
  align-items:center;
  justify-content:center;
  font-size:3rem;
  font-weight:700;
  position:relative;
  z-index:1;
  box-shadow:0 8px 32px rgba(219,39,119,0.3);
}
.ripple {
  position:absolute;
  top:50%; left:50%;
  transform:translate(-50%,-50%);
  border-radius:50%;
  border:2px solid rgba(219,39,119,0.3);
  animation:ripple-expand 2s ease-out infinite;
  animation-play-state:paused;
}
.ripple-1 { width:160px; height:160px; }
.ripple-2 { width:200px; height:200px; animation-delay:0.4s; }
.ripple-3 { width:240px; height:240px; animation-delay:0.8s; }
@keyframes ripple-expand {
  0% { transform:translate(-50%,-50%) scale(0.8); opacity:1; }
  100% { transform:translate(-50%,-50%) scale(1.3); opacity:0; }
}
.voice-name {
  font-family:var(--font-display);
  font-size:1.5rem;
  font-weight:700;
  margin-bottom:4px;
}
.voice-role {
  font-size:0.88rem;
  color:rgba(255,255,255,0.5);
  margin-bottom:20px;
}
.voice-status {
  font-size:0.95rem;
  color:rgba(255,255,255,0.8);
  margin-bottom:8px;
}
.voice-timer {
  font-size:2rem;
  font-weight:300;
  font-variant-numeric:tabular-nums;
  margin-bottom:40px;
  color:rgba(255,255,255,0.6);
}
.hangup-btn {
  width:64px; height:64px;
  border-radius:50%;
  background:#ef4444;
  border:none;
  color:#fff;
  cursor:pointer;
  display:flex;
  align-items:center;
  justify-content:center;
  margin:0 auto;
  transition:all 0.2s;
  box-shadow:0 8px 24px rgba(239,68,68,0.3);
}
.hangup-btn:hover {
  background:#dc2626;
  transform:scale(1.08);
}

/* ===== Responsive — Tablet ===== */
@media (max-width:1024px) {
  .hero-split {
    grid-template-columns:1fr;
    gap:40px;
  }
  .hero-container { text-align:center; }
  .hero-buttons { justify-content:center; }
  .hero-img-main { min-height:300px; }
  .services-grid {
    grid-template-columns:repeat(2,1fr);
  }
  .gallery-grid {
    grid-template-columns:repeat(2,1fr);
  }
  .gallery-tall { grid-row:span 1; }
}

/* ===== Responsive — Mobile ===== */
@media (max-width:768px) {
  /* Nav */
  .nav-links { display:none; }
  .hamburger { display:flex; }
  .mobile-menu { display:flex; }
  .nav-container { padding:12px 20px; }

  /* Hero */
  .hero {
    padding:100px 20px 50px;
    min-height:auto;
  }
  .hero-split {
    grid-template-columns:1fr;
    gap:36px;
  }
  .hero-container { text-align:center; }
  .hero h1 {
    font-size:2.2rem;
  }
  .hero p {
    font-size:0.98rem;
    margin-bottom:28px;
  }
  .hero-buttons {
    flex-direction:column;
    align-items:stretch;
    justify-content:center;
    gap:10px;
  }
  .hero-buttons .btn {
    justify-content:center;
  }
  .hero-img-main { min-height:250px; }
  .hero-img-small { min-height:118px; }

  /* Stats */
  .stats { margin-top:-16px; padding:0 16px; }
  .stats-grid {
    grid-template-columns:repeat(2,1fr);
    border-radius:16px;
  }
  .stat-item { padding:20px 14px; }
  .stat-number { font-size:1.3rem; }

  /* Sections */
  .section-container { padding:0 20px; }
  .section-title { font-size:1.8rem; }
  .section-description { font-size:0.95rem; }
  .services-section { padding:70px 0 50px; }
  .features-section { padding:70px 0; }
  .testimonials-section { padding:70px 0; }

  /* Services */
  .services-grid {
    grid-template-columns:1fr;
    gap:12px;
  }
  .service-card { padding:20px; }

  /* Gallery */
  .gallery-section { padding:60px 0; }
  .gallery-grid {
    grid-template-columns:1fr 1fr;
    gap:8px;
  }
  .gallery-tall { grid-row:span 1; }
  .gallery-tall img { min-height:180px; }
  .gallery-item img { min-height:160px; }
  .gallery-overlay { opacity:1; }

  /* Features */
  .features-grid {
    grid-template-columns:1fr;
    gap:12px;
  }
  .feature-card { padding:24px; }

  /* Book Banner */
  .book-banner { padding:50px 0; }
  .banner-content {
    flex-direction:column;
    text-align:center;
  }
  .banner-text h3 { font-size:1.4rem; }

  /* Testimonials */
  .testimonials-grid {
    grid-template-columns:1fr;
    gap:12px;
  }

  /* CTA */
  .cta-section { padding:80px 0; }
  .cta-section h2 { font-size:1.8rem; }
  .cta-section p { font-size:1rem; }

  /* Footer */
  .footer-top {
    flex-direction:column;
    gap:24px;
  }
  .footer-links {
    flex-wrap:wrap;
    gap:16px;
  }

  /* Assistant popup */
  .assistant-popup {
    right:12px;
    left:12px;
    width:auto;
    bottom:90px;
    max-height:70vh;
    border-radius:16px;
  }
  .assistant-body {
    min-height:200px;
    max-height:240px;
  }

  /* FAB */
  .fab {
    bottom:16px;
    right:16px;
    width:56px;
    height:56px;
  }

  /* Voice modal */
  .voice-modal-content { padding:20px; }
  .voice-avatar-container { width:100px; height:100px; }
  .voice-avatar { width:100px; height:100px; font-size:2.4rem; }
  .ripple-1 { width:130px; height:130px; }
  .ripple-2 { width:165px; height:165px; }
  .ripple-3 { width:200px; height:200px; }
  .voice-name { font-size:1.3rem; }
}

/* ===== Small phones ===== */
@media (max-width:380px) {
  .hero h1 { font-size:1.8rem; }
  .hero p { font-size:0.9rem; }
  .stat-number { font-size:1.1rem; }
  .section-title { font-size:1.5rem; }
  .btn { padding:12px 20px; font-size:0.9rem; }
  .btn-large { padding:14px 28px; }
  .quick-chips { gap:4px; }
  .chip { font-size:0.72rem; padding:5px 10px; }
}
