:root {
  --background: #FAF8F3; --foreground: #2D0A18;
  --primary: #7B1233; --primary-foreground: #FFFFFF;
  --secondary: #F5EEF0; --secondary-foreground: #2D0A18;
  --accent: #C9A0A8; --accent-foreground: #FFFFFF;
  --muted: #EDE4E6; --muted-foreground: #7A5560;
  --card: #FFFFFF; --card-foreground: #2D0A18;
  --border: #E0D0D4; --input: #EDE4E6; --ring: #C9A0A8;
  --font-sans: 'Plus Jakarta Sans', sans-serif;
}
* { box-sizing: border-box; border-color: var(--border); }
body { background-color: var(--background); color: var(--foreground); font-family: var(--font-sans); -webkit-font-smoothing: antialiased; }
html { scroll-behavior: smooth; }
h1,h2,h3,h4,h5,h6,p { margin: 0; }

.font-400 { font-weight: 400; } .font-500 { font-weight: 500; } .font-600 { font-weight: 600; }
.font-700 { font-weight: 700; } .font-800 { font-weight: 800; }

.text-hero-display { font-size: clamp(3.5rem, 10vw, 9rem); line-height: 1.0; letter-spacing: -0.04em; font-weight: 800; }
.text-hero-sub { font-size: clamp(1.75rem, 4vw, 3.5rem); line-height: 1.1; letter-spacing: -0.03em; font-weight: 700; }
.text-section-title { font-size: clamp(2rem, 4vw, 3.25rem); line-height: 1.15; letter-spacing: -0.025em; font-weight: 700; }
.font-fraunces { font-family: 'Fraunces', serif; font-style: italic; }

.gradient-warm { background: linear-gradient(135deg, #7B1233 0%, #9E1A42 40%, #5C0D26 100%); }
.gradient-gold { background: linear-gradient(135deg, #C9A0A8 0%, #DDB8BE 50%, #B08890 100%); }
.gradient-hero-scrim { background: linear-gradient(to right, rgba(123,18,51,0.90) 0%, rgba(123,18,51,0.75) 50%, rgba(123,18,51,0.25) 100%); }
.gradient-hero-scrim-mobile { background: linear-gradient(to bottom, rgba(123,18,51,0.88) 0%, rgba(123,18,51,0.72) 60%, rgba(123,18,51,0.50) 100%); }

.card-hover { transition: transform 0.3s cubic-bezier(0.34,1.56,0.64,1), box-shadow 0.3s ease; }
.card-hover:hover { transform: translateY(-4px); box-shadow: 0 20px 60px -10px rgba(123,18,51,0.15); }

.blob-bg {
  background: radial-gradient(ellipse at 30% 50%, rgba(201,160,168,0.15) 0%, transparent 60%),
              radial-gradient(ellipse at 80% 20%, rgba(123,18,51,0.08) 0%, transparent 50%);
}

.section-pad { padding-top: 5rem; padding-bottom: 5rem; }

.reveal-hidden { opacity: 0; transform: translateY(24px); }
.reveal-visible { opacity: 1; transform: translateY(0); transition: opacity 0.7s cubic-bezier(0.22,1,0.36,1), transform 0.7s cubic-bezier(0.22,1,0.36,1); }

.nav-link-hover { position: relative; }
.nav-link-hover::after { content: ''; position: absolute; bottom: -2px; left: 0; width: 0; height: 2px; background-color: var(--accent); transition: width 0.3s cubic-bezier(0.22,1,0.36,1); }
.nav-link-hover:hover::after { width: 100%; }

.service-card-icon { width: 3rem; height: 3rem; border-radius: 0.75rem; display: flex; align-items: center; justify-content: center; background: linear-gradient(135deg, rgba(201,160,168,0.20), rgba(201,160,168,0.08)); border: 1px solid rgba(201,160,168,0.3); }

.values-card { background: white; border: 1px solid var(--border); border-radius: 1.25rem; padding: 2rem; transition: border-color 0.3s ease, box-shadow 0.3s ease; }
.values-card:hover { border-color: var(--accent); box-shadow: 0 8px 40px -8px rgba(201,160,168,0.3); }

.marquee-mask { -webkit-mask-image: linear-gradient(to right, transparent, black 6%, black 94%, transparent); mask-image: linear-gradient(to right, transparent, black 6%, black 94%, transparent); }
.marquee-track { display: flex; width: max-content; gap: 1.25rem; padding: 0.5rem 0; animation: marqueeScroll 36s linear infinite; }
.marquee-track:hover { animation-play-state: paused; }
@keyframes marqueeScroll { from { transform: translateX(0); } to { transform: translateX(-50%); } }

.condition-card { flex: 0 0 auto; width: 280px; background: white; border: 1px solid var(--border); border-radius: 1.25rem; padding: 1.75rem; transition: border-color 0.3s ease, box-shadow 0.3s ease, transform 0.3s ease; }
.condition-card:hover { border-color: var(--accent); box-shadow: 0 8px 40px -8px rgba(201,160,168,0.3); transform: translateY(-4px); }

.glass-card {
  position: relative;
  background: linear-gradient(135deg, rgba(255,255,255,0.14) 0%, rgba(255,255,255,0.04) 100%);
  border: 1px solid rgba(255,255,255,0.18);
  backdrop-filter: blur(20px) saturate(180%);
  -webkit-backdrop-filter: blur(20px) saturate(180%);
  box-shadow: 0 8px 32px -8px rgba(0,0,0,0.25), inset 0 1px 0 rgba(255,255,255,0.25);
  transition: background 0.3s ease, border-color 0.3s ease, box-shadow 0.3s ease, transform 0.3s ease;
}
.glass-card::before {
  content: ''; position: absolute; top: 0; left: 1.25rem; right: 1.25rem; height: 1px;
  background: linear-gradient(to right, transparent, rgba(255,255,255,0.6), transparent);
}
.glass-card:hover {
  background: linear-gradient(135deg, rgba(255,255,255,0.20) 0%, rgba(255,255,255,0.06) 100%);
  border-color: rgba(201,160,168,0.45);
  box-shadow: 0 16px 48px -10px rgba(0,0,0,0.3), inset 0 1px 0 rgba(255,255,255,0.3);
  transform: translateY(-3px);
}

.glass-icon {
  background: linear-gradient(135deg, rgba(255,255,255,0.3) 0%, rgba(201,160,168,0.15) 100%);
  border: 1px solid rgba(255,255,255,0.3);
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);
  box-shadow: inset 0 1px 1px rgba(255,255,255,0.45), 0 4px 14px -4px rgba(0,0,0,0.3);
}

.btn-primary { background: linear-gradient(135deg, #7B1233 0%, #9E1A42 100%); color: #FFFFFF; font-weight: 700; padding: 0.875rem 2rem; border-radius: 3rem; border: none; cursor: pointer; transition: transform 0.2s cubic-bezier(0.34,1.56,0.64,1), box-shadow 0.2s ease; font-size: 0.9375rem; letter-spacing: 0.01em; display: inline-flex; align-items: center; gap: 0.5rem; text-decoration: none; }
.btn-primary:hover { transform: translateY(-2px) scale(1.02); box-shadow: 0 12px 30px -6px rgba(123,18,51,0.45); }

.btn-outline { background: transparent; color: #FFFFFF; font-weight: 700; padding: 0.875rem 2rem; border-radius: 3rem; border: 2px solid rgba(255,255,255,0.5); cursor: pointer; transition: background 0.2s ease, border-color 0.2s ease; font-size: 0.9375rem; letter-spacing: 0.01em; display: inline-flex; align-items: center; gap: 0.5rem; text-decoration: none; }
.btn-outline:hover { background: rgba(255,255,255,0.12); border-color: rgba(255,255,255,0.8); }

.btn-outline-dark { background: transparent; color: var(--primary); font-weight: 700; padding: 0.875rem 2rem; border-radius: 3rem; border: 2px solid var(--primary); cursor: pointer; transition: background 0.2s ease, color 0.2s ease; font-size: 0.9375rem; letter-spacing: 0.01em; display: inline-flex; align-items: center; gap: 0.5rem; text-decoration: none; }
.btn-outline-dark:hover { background: var(--primary); color: #FFFFFF; }

.hero-slide { will-change: transform, opacity; }
.slide-hidden { opacity: 0; pointer-events: none; z-index: 0; }
.slide-enter-next { animation: slideEnterFromRight 0.7s cubic-bezier(0.22,1,0.36,1) forwards; z-index: 2; }
.slide-exit-next { animation: slideExitToLeft 0.7s cubic-bezier(0.22,1,0.36,1) forwards; z-index: 1; }
.slide-enter-prev { animation: slideEnterFromLeft 0.7s cubic-bezier(0.22,1,0.36,1) forwards; z-index: 2; }
.slide-exit-prev { animation: slideExitToRight 0.7s cubic-bezier(0.22,1,0.36,1) forwards; z-index: 1; }
@keyframes slideEnterFromRight { from { transform: translateX(6%); opacity: 0; } to { transform: translateX(0); opacity: 1; } }
@keyframes slideExitToLeft { from { transform: translateX(0); opacity: 1; } to { transform: translateX(-4%); opacity: 0; } }
@keyframes slideEnterFromLeft { from { transform: translateX(-6%); opacity: 0; } to { transform: translateX(0); opacity: 1; } }
@keyframes slideExitToRight { from { transform: translateX(0); opacity: 1; } to { transform: translateX(4%); opacity: 0; } }

.hero-content-enter > * { opacity: 0; transform: translateY(20px); animation: heroContentIn 0.65s cubic-bezier(0.22,1,0.36,1) forwards; }
.hero-content-enter > *:nth-child(1) { animation-delay: 0.05s; }
.hero-content-enter > *:nth-child(2) { animation-delay: 0.15s; }
.hero-content-enter > *:nth-child(3) { animation-delay: 0.22s; }
.hero-content-enter > *:nth-child(4) { animation-delay: 0.30s; }
.hero-content-enter > *:nth-child(5) { animation-delay: 0.38s; }
.hero-content-enter > *:nth-child(6) { animation-delay: 0.45s; }
@keyframes heroContentIn { from { opacity: 0; transform: translateY(20px); } to { opacity: 1; transform: translateY(0); } }

.hero-progress { animation: heroProgressBar 5.5s linear forwards; }
@keyframes heroProgressBar { from { width: 0%; } to { width: 100%; } }

.animate-float { animation: floatCard 4s ease-in-out infinite; }
@keyframes floatCard { 0%, 100% { transform: translateY(-50%) translateY(0px); } 50% { transform: translateY(-50%) translateY(-10px); } }

.animate-pulse-glow { animation: pulseGlow 2.5s ease-in-out infinite; }
@keyframes pulseGlow { 0%, 100% { box-shadow: 0 0 0 0 rgba(201,160,168,0.4); } 50% { box-shadow: 0 0 0 8px rgba(201,160,168,0); } }

.shadow-warm-sm { box-shadow: 0 4px 16px -4px rgba(123,18,51,0.12); }
.shadow-warm-md { box-shadow: 0 8px 32px -8px rgba(123,18,51,0.18); }
.shadow-warm-lg { box-shadow: 0 20px 60px -12px rgba(123,18,51,0.22); }

.mobile-nav-overlay { backdrop-filter: blur(16px); -webkit-backdrop-filter: blur(16px); background: rgba(123,18,51,0.97); }
.mobile-nav-overlay.open { opacity: 1 !important; pointer-events: auto !important; }

.form-input { width: 100%; padding: 0.875rem 1rem; border: 1.5px solid var(--border); border-radius: 0.625rem; background: white; color: var(--foreground); font-family: var(--font-sans); font-size: 0.9375rem; transition: border-color 0.2s ease, box-shadow 0.2s ease; outline: none; }
.form-input:focus { border-color: var(--primary); box-shadow: 0 0 0 3px rgba(123,18,51,0.12); }
.form-input::placeholder { color: var(--muted-foreground); }
.form-input.error { border-color: #DC2626; }
.form-label { display: block; font-weight: 600; font-size: 0.875rem; color: var(--foreground); margin-bottom: 0.375rem; }
.form-error { color: #DC2626; font-size: 0.8125rem; margin-top: 0.25rem; }
.form-required { color: var(--primary); margin-left: 2px; }

#site-header.scrolled { background-color: var(--header-scrolled-bg, rgba(123,18,51,0.95)); backdrop-filter: blur(10px); -webkit-backdrop-filter: blur(10px); box-shadow: 0 8px 32px -8px rgba(123,18,51,0.18); padding-top: 0.75rem; padding-bottom: 0.75rem; }

.logo-scrolled { display: none; }
#site-header.scrolled .logo-default { display: none; }
#site-header.scrolled .logo-scrolled { display: block; }

::-webkit-scrollbar { width: 6px; }
::-webkit-scrollbar-track { background: var(--muted); }
::-webkit-scrollbar-thumb { background: var(--primary); border-radius: 3px; }
