.landing-body { background: #fff; overflow-x: hidden; }

/* ---------------- Mobile offcanvas menu ---------------- */
.landing-offcanvas { background: var(--navy); color: #fff; width: 280px; }
.landing-offcanvas .offcanvas-header { border-bottom: 1px solid rgba(255,255,255,.1); padding: 1.1rem 1.25rem; }
.landing-offcanvas .offcanvas-body { padding: 1.25rem; }
.landing-offcanvas-link { display: flex; align-items: center; gap: .8rem; color: rgba(255,255,255,.85); text-decoration: none; font-weight: 600; font-size: .95rem; padding: .85rem .9rem; border-radius: 12px; margin-bottom: .3rem; transition: background .15s ease; }
.landing-offcanvas-link i { font-size: 1.1rem; width: 22px; text-align: center; color: var(--brand); }
.landing-offcanvas-link:hover, .landing-offcanvas-link:active { background: rgba(255,255,255,.08); color: #fff; }

/* ---------------- Navbar ---------------- */
.landing-navbar { position: fixed; top: 0; left: 0; right: 0; z-index: 1000; padding: 1.1rem 0; transition: background .25s ease, box-shadow .25s ease, padding .25s ease; }
.landing-navbar.scrolled { background: rgba(11, 31, 58, 0.96); backdrop-filter: blur(8px); box-shadow: 0 4px 20px rgba(0,0,0,.15); padding: .7rem 0; }
.landing-navbar .nav-link { color: rgba(255,255,255,.85); font-weight: 600; font-size: .92rem; }
.landing-navbar .nav-link:hover { color: #fff; }
.landing-navbar .navbar-brand-text { font-family: 'Playfair Display', serif; font-weight: 700; font-size: 1.4rem; color: #fff; }

/* ---------------- Hero ---------------- */
.hero-section { position: relative; background: linear-gradient(155deg, var(--navy) 0%, var(--navy-light) 45%, var(--brand-dark) 130%); padding: 9rem 0 6rem; overflow: hidden; color: #fff; }
.hero-section::before { content: ''; position: absolute; top: -10%; right: -10%; width: 500px; height: 500px; border-radius: 50%; background: radial-gradient(circle, rgba(139,30,63,.35) 0%, transparent 70%); }
.hero-eyebrow { display: inline-flex; align-items: center; gap: .5rem; background: rgba(255,255,255,.1); border: 1px solid rgba(255,255,255,.18); padding: .4rem 1rem; border-radius: 999px; font-size: .8rem; font-weight: 600; letter-spacing: .03em; margin-bottom: 1.5rem; }
.hero-title { font-family: 'Playfair Display', serif; font-size: clamp(2.2rem, 5vw, 3.6rem); font-weight: 700; line-height: 1.15; margin-bottom: 1.2rem; }
.hero-title .accent { color: #E89AB0; }
.hero-subtitle { font-size: 1.05rem; color: rgba(255,255,255,.78); max-width: 520px; margin-bottom: 2rem; }
.hero-balls { position: relative; height: 380px; }
.hero-ball { position: absolute; border-radius: 50%; box-shadow: 0 20px 50px rgba(0,0,0,.35), inset -8px -8px 20px rgba(0,0,0,.25), inset 6px 6px 14px rgba(255,255,255,.25); display: flex; align-items: center; justify-content: center; font-family: 'Inter', sans-serif; font-weight: 800; color: #fff; }
.hero-ball.ball-1 { width: 190px; height: 190px; background: radial-gradient(circle at 35% 30%, #a02a52, #6B1730); top: 40px; right: 60px; font-size: 2.6rem; animation: float-a 6s ease-in-out infinite; }
.hero-ball.ball-2 { width: 110px; height: 110px; background: radial-gradient(circle at 35% 30%, #fff, #f0f0f0); top: 210px; right: 260px; color: #16213A; font-size: 1.6rem; animation: float-b 5s ease-in-out infinite; }
.hero-ball.ball-3 { width: 70px; height: 70px; background: radial-gradient(circle at 35% 30%, #FFD873, #E0A400); top: 20px; right: 300px; font-size: 1.1rem; animation: float-c 7s ease-in-out infinite; }
.hero-ball.ball-4 { width: 55px; height: 55px; background: radial-gradient(circle at 35% 30%, #4CA6FF, #1D5FBF); top: 280px; right: 20px; font-size: .95rem; animation: float-a 8s ease-in-out infinite; }
@keyframes float-a { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-16px); } }
@keyframes float-b { 0%,100% { transform: translateY(0); } 50% { transform: translateY(14px); } }
@keyframes float-c { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-10px); } }
@media (max-width: 991px) {
    .hero-balls { height: 240px; margin-top: 2rem; }
    .hero-ball.ball-1 { width: 130px; height: 130px; right: 30px; top: 20px; font-size: 1.8rem; }
    .hero-ball.ball-2 { width: 80px; height: 80px; right: 170px; top: 130px; font-size: 1.2rem; }
    .hero-ball.ball-3 { width: 50px; height: 50px; right: 190px; top: 0; }
    .hero-ball.ball-4 { width: 42px; height: 42px; right: 10px; top: 170px; }
}

/* ---------------- Section shared ---------------- */
.section { padding: 5rem 0; }
.section-label { color: var(--brand); font-weight: 700; text-transform: uppercase; letter-spacing: .08em; font-size: .8rem; margin-bottom: .6rem; display: block; }
.section-title { font-family: 'Playfair Display', serif; font-weight: 700; font-size: clamp(1.7rem, 3.5vw, 2.4rem); color: var(--navy); margin-bottom: 1rem; }
.section-subtitle { color: #6b7889; max-width: 560px; }

/* ---------------- Feature cards ---------------- */
.feature-card { border-radius: 20px; padding: 2rem 1.6rem; background: #fff; box-shadow: var(--card-shadow); height: 100%; transition: transform .2s ease, box-shadow .2s ease; }
.feature-card:hover { transform: translateY(-4px); box-shadow: var(--card-shadow-lg); }
.feature-card .icon-circle { width: 56px; height: 56px; border-radius: 16px; font-size: 1.5rem; display: flex; align-items: center; justify-content: center; margin-bottom: 1.2rem; background: var(--green-light); color: var(--brand-dark); }

/* ---------------- Pricing ---------------- */
.pricing-card { background: linear-gradient(135deg, var(--brand) 0%, var(--brand-dark) 100%); border-radius: 26px; padding: 3rem 2rem; color: #fff; text-align: center; box-shadow: 0 20px 50px rgba(139,30,63,.3); position: relative; overflow: hidden; }
.pricing-card::before { content: ''; position: absolute; top: -60px; left: -60px; width: 200px; height: 200px; border-radius: 50%; background: rgba(255,255,255,.08); }
.pricing-amount { font-family: 'Playfair Display', serif; font-size: 4rem; font-weight: 800; line-height: 1; position: relative; z-index: 1; }
.pricing-amount sup { font-size: 1.6rem; top: -1.5rem; }
.pricing-per { opacity: .85; font-size: 1rem; position: relative; z-index: 1; }

/* ---------------- Testimonials ---------------- */
.testimonial-card { background: #FBF7F8; border-radius: 20px; padding: 2rem 1.6rem; height: 100%; border: 1px solid #F2E4E8; }
.testimonial-stars { color: #F5A623; font-size: .9rem; margin-bottom: .8rem; }
.testimonial-quote { color: #3A4356; font-size: .95rem; line-height: 1.6; margin-bottom: 1.2rem; }
.testimonial-avatar { width: 42px; height: 42px; border-radius: 50%; background: var(--brand); color: #fff; display: flex; align-items: center; justify-content: center; font-weight: 700; font-size: .9rem; }

/* ---------------- Location ---------------- */
.location-card { border-radius: 20px; overflow: hidden; box-shadow: var(--card-shadow-lg); }
.location-info-row { display: flex; gap: 1rem; align-items: flex-start; margin-bottom: 1.3rem; }
.location-info-row .icon-circle { width: 44px; height: 44px; border-radius: 12px; background: var(--green-light); color: var(--brand-dark); display: flex; align-items: center; justify-content: center; flex-shrink: 0; }

/* ---------------- Contact ---------------- */
.contact-section { background: linear-gradient(155deg, var(--navy) 0%, var(--brand-dark) 140%); color: #fff; border-radius: 28px; padding: 3.5rem 2rem; }
.contact-btn { background: rgba(255,255,255,.1); border: 1px solid rgba(255,255,255,.25); color: #fff; border-radius: 14px; padding: 1rem 1.2rem; text-decoration: none; display: flex; align-items: center; gap: .9rem; transition: background .15s ease; }
.contact-btn:hover { background: rgba(255,255,255,.18); color: #fff; }
.contact-btn .icon-circle { width: 42px; height: 42px; border-radius: 50%; background: rgba(255,255,255,.15); display: flex; align-items: center; justify-content: center; font-size: 1.2rem; flex-shrink: 0; }

/* ---------------- Footer ---------------- */
.landing-footer { background: var(--navy); color: rgba(255,255,255,.7); padding: 3rem 0 1.5rem; }
.landing-footer a { color: rgba(255,255,255,.7); text-decoration: none; }
.landing-footer a:hover { color: #fff; }
.landing-footer hr { border-color: rgba(255,255,255,.12); }

/* ---------------- CTA buttons ---------------- */
.btn-hero-primary { background: #fff; color: var(--navy); font-weight: 700; border-radius: 14px; padding: .85rem 1.8rem; box-shadow: 0 10px 25px rgba(0,0,0,.2); }
.btn-hero-primary:hover { background: #f2f2f2; color: var(--navy); }
.btn-hero-outline { border: 1.5px solid rgba(255,255,255,.5); color: #fff; font-weight: 700; border-radius: 14px; padding: .85rem 1.8rem; }
.btn-hero-outline:hover { background: rgba(255,255,255,.1); color: #fff; }
