/* ============================================================
   FESTNEST — LANDING PAGE  |  assets/css/pages/landing.css
   ============================================================ */
.hero{min-height:100vh;background:#fff;display:flex;align-items:center;padding:var(--nav-height) var(--page-padding) 0;position:relative;overflow:hidden;gap:60px}
.hero-bg-dots{position:absolute;inset:0;pointer-events:none;background-image:radial-gradient(rgba(90,75,255,.07) 1px,transparent 1px);background-size:32px 32px;z-index:0}
.hero-bg-blob{position:absolute;border-radius:50%;pointer-events:none;z-index:0}
.hero-bg-blob--right{top:-100px;right:-100px;width:600px;height:600px;background:radial-gradient(circle,rgba(123,47,247,.12) 0%,transparent 70%)}
.hero-bg-blob--left{bottom:-50px;left:-100px;width:500px;height:500px;background:radial-gradient(circle,rgba(47,128,237,.1) 0%,transparent 70%)}
.hero-content{flex:1;max-width:580px;z-index:1}
.hero-badge{display:inline-flex;align-items:center;gap:8px;background:var(--pastel-purple);border:1px solid rgba(90,75,255,.2);color:var(--color-primary);padding:8px 16px;border-radius:30px;font-size:13px;font-weight:700;margin-bottom:28px;animation:fadeInUp .6s ease both}
.hero-badge-dot{width:8px;height:8px;background:var(--color-primary);border-radius:50%;animation:pulse 2s ease-in-out infinite;flex-shrink:0}
.hero-title{font-family:'Clash Display',sans-serif;font-size:clamp(40px,5vw,64px);font-weight:700;line-height:1.06;color:var(--text-1);margin-bottom:20px;animation:fadeInUp .6s .1s ease both}
.hero-desc{font-size:17px;color:var(--text-2);line-height:1.7;margin-bottom:36px;max-width:480px;animation:fadeInUp .6s .2s ease both}
.hero-actions{display:flex;gap:14px;flex-wrap:wrap;margin-bottom:44px;animation:fadeInUp .6s .3s ease both}
.btn-hero{padding:16px 32px;border-radius:var(--radius-lg);font-size:15px;font-weight:800;border:2px solid transparent;cursor:pointer;transition:var(--transition);font-family:'Plus Jakarta Sans',sans-serif;display:inline-flex;align-items:center;text-decoration:none}
.btn-hero-primary{background:var(--grad);color:#fff;box-shadow:0 6px 24px rgba(90,75,255,.4)}
.btn-hero-primary:hover{transform:translateY(-2px);box-shadow:0 10px 32px rgba(90,75,255,.5)}
.btn-hero-secondary{background:#fff;color:var(--text-1);border-color:var(--border);box-shadow:0 2px 8px rgba(0,0,0,.06)}
.btn-hero-secondary:hover{border-color:var(--color-primary);color:var(--color-primary)}
.hero-stats{display:flex;gap:32px;animation:fadeInUp .6s .4s ease both;flex-wrap:wrap}
.hero-stat-num{font-family:'Clash Display',sans-serif;font-size:28px;font-weight:700;color:var(--text-1)}
.hero-stat-label{font-size:12px;color:var(--text-2);font-weight:600}
.hero-stat-divider{width:1px;background:var(--border);align-self:stretch}
.hero-visual{flex:1;display:flex;justify-content:center;align-items:center;z-index:1;animation:fadeInRight .8s .2s ease both}
.hero-phone-wrap{position:relative}
.hero-phone{width:280px;min-height:520px;background:#fff;border-radius:40px;box-shadow:0 30px 80px rgba(90,75,255,.25),0 0 0 10px rgba(90,75,255,.06);overflow:hidden;position:relative;transform:perspective(800px) rotateY(-8deg) rotateX(4deg);border:1px solid rgba(90,75,255,.1);display:flex;flex-direction:column}
.phone-header{background:var(--grad);padding:20px 16px 14px;flex-shrink:0}
.phone-logo{color:#fff;font-family:'Clash Display',sans-serif;font-size:15px;font-weight:700;margin-bottom:10px}
.phone-hero-mini{background:rgba(255,255,255,.15);border-radius:10px;padding:10px 12px}
.phone-hero-title{color:#fff;font-size:12px;font-weight:800;margin-bottom:2px}
.phone-hero-sub{color:rgba(255,255,255,.75);font-size:9px}
.phone-body{padding:12px;background:var(--bg);flex:1}
.phone-cats{display:flex;gap:6px;margin-bottom:10px;overflow:hidden}
.phone-cat{background:#fff;border-radius:20px;padding:5px 10px;font-size:9px;font-weight:700;color:var(--text-2);white-space:nowrap}
.phone-cat--active{background:var(--grad);color:#fff}
.phone-card{background:#fff;border-radius:10px;overflow:hidden;margin-bottom:8px;box-shadow:0 2px 8px rgba(0,0,0,.06)}
.phone-card-banner{height:70px;display:flex;align-items:center;justify-content:center;font-size:26px}
.phone-banner-1{background:var(--grad-card-1)}.phone-banner-2{background:var(--grad-card-2)}
.phone-card-body{padding:8px 10px}
.phone-card-title{font-size:11px;font-weight:800;color:var(--text-1);margin-bottom:2px}
.phone-card-college{font-size:9px;color:var(--color-primary);font-weight:700}
.floating-badge{position:absolute;background:#fff;border-radius:var(--radius);padding:10px 14px;box-shadow:0 8px 24px rgba(0,0,0,.15);font-size:12px;font-weight:700;color:var(--text-1);white-space:nowrap;animation:float 3s ease-in-out infinite;border:1px solid var(--border)}
.floating-badge--top{top:70px;right:-30px}.floating-badge--bot{bottom:90px;left:-40px;animation-delay:1.5s}
.stats-strip{background:var(--grad);padding:28px var(--page-padding);display:flex;justify-content:center;gap:60px;flex-wrap:wrap}
.strip-stat{text-align:center}
.strip-num{font-family:'Clash Display',sans-serif;font-size:36px;font-weight:700;color:#fff;line-height:1}
.strip-label{font-size:13px;color:rgba(255,255,255,.8);font-weight:600;margin-top:4px}
.features-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}
.feature-card{background:#fff;border-radius:var(--radius-lg);padding:28px;border:1px solid var(--border);transition:var(--transition-md);position:relative;overflow:hidden}
.feature-card:hover{transform:translateY(-4px);box-shadow:var(--shadow-md);border-color:var(--color-primary)}
.feature-icon{width:56px;height:56px;border-radius:16px;display:flex;align-items:center;justify-content:center;font-size:26px;margin-bottom:18px}
.feature-title{font-size:18px;font-weight:700;color:var(--text-1);margin-bottom:10px}
.feature-desc{font-size:14px;color:var(--text-2);line-height:1.7}
.how-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:24px}
.how-card{background:#fff;border-radius:var(--radius-lg);padding:28px 22px;text-align:center;border:1px solid var(--border);position:relative;transition:var(--transition-md)}
.how-card:hover{transform:translateY(-4px);box-shadow:var(--shadow-md)}
.how-num{position:absolute;top:-14px;left:50%;transform:translateX(-50%);width:28px;height:28px;background:var(--grad);color:#fff;border-radius:50%;font-size:12px;font-weight:800;display:flex;align-items:center;justify-content:center}
.how-icon{font-size:36px;margin-bottom:14px}.how-title{font-size:15px;font-weight:800;color:var(--text-1);margin-bottom:8px}.how-desc{font-size:13px;color:var(--text-2);line-height:1.6}
.categories-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:16px}
.category-card{border-radius:var(--radius-lg);padding:24px;text-align:center;cursor:pointer;transition:var(--transition-md);display:block;text-decoration:none}
.category-card:hover{transform:translateY(-4px);box-shadow:var(--shadow-md)}
.category-icon{font-size:36px;margin-bottom:10px}.category-name{font-size:15px;font-weight:800;color:var(--text-1);margin-bottom:4px}.category-count{font-size:12px;color:var(--text-2)}
.testimonials-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}
.testi-card{background:#fff;border-radius:var(--radius-lg);padding:28px;border:1px solid var(--border);transition:var(--transition-md)}
.testi-card:hover{transform:translateY(-3px);box-shadow:var(--shadow-sm)}
.testi-stars{color:#FFB800;font-size:16px;margin-bottom:14px;letter-spacing:2px}
.testi-text{font-size:14px;color:var(--text-2);line-height:1.7;margin-bottom:18px;font-style:italic}
.testi-author{display:flex;align-items:center;gap:12px}
.testi-avatar{width:44px;height:44px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:20px;flex-shrink:0}
.testi-name{font-size:14px;font-weight:700;color:var(--text-1)}.testi-info{font-size:12px;color:var(--text-2)}
@media(max-width:1100px){.features-grid{grid-template-columns:repeat(2,1fr)}.how-grid{grid-template-columns:repeat(2,1fr)}.testimonials-grid{grid-template-columns:1fr}}
@media(max-width:900px){.hero-visual{display:none}.hero{justify-content:center}.hero-content{max-width:100%}}
@media(max-width:640px){.hero{flex-direction:column;padding-top:calc(var(--nav-height)+20px);padding-bottom:40px;min-height:unset}.features-grid,.how-grid,.testimonials-grid{grid-template-columns:1fr}.categories-grid{grid-template-columns:repeat(2,1fr)}}
