.badge-level{display:inline-flex;align-items:center;gap:6px;padding:6px 14px;border-radius:var(--radius-xl);font-size:var(--font-sm);font-weight:var(--font-bold);letter-spacing:.3px;text-transform:uppercase;border:2px solid;transition:var(--transition-fast)}.badge-level-beginner,.badge-level-débutant{background:rgba(46,204,113,.15);color:#2ecc71;border-color:rgba(46,204,113,.4)}.badge-level-intermediate,.badge-level-intermédiaire{background:rgba(52,152,219,.15);color:#3498db;border-color:rgba(52,152,219,.4)}.badge-level-expert{background:rgba(231,76,60,.15);color:#e74c3c;border-color:rgba(231,76,60,.4)}.badge-level:hover{transform:translateY(-2px);box-shadow:0 4px 12px rgba(0,0,0,.2)}.badge-price{display:inline-flex;align-items:center;gap:4px;padding:8px 16px;background:var(--color-primary-gradient);color:#fff;border-radius:var(--radius-lg);font-size:var(--font-lg);font-weight:var(--font-extrabold);box-shadow:var(--shadow-primary)}.badge-price-value{font-size:var(--font-2xl)}.badge-price-label{font-size:var(--font-xs);opacity:.9;font-weight:var(--font-medium)}.resort-card{position:relative;background:var(--color-bg-glass-light);backdrop-filter:var(--blur-xl);border-radius:var(--radius-2xl);border:1px solid var(--color-border-lighter);overflow:hidden;transition:.4s cubic-bezier(.175, .885, .32, 1.275);cursor:pointer}.resort-card:hover{transform:translateY(-8px) scale(1.02);border-color:var(--color-border-primary-hover);box-shadow:0 20px 50px rgba(79,172,254,.4)}.resort-card:active{transform:translateY(-6px) scale(1.01)}.resort-card-image{position:relative;width:100%;height:200px;overflow:hidden}.resort-card-image img{width:100%;height:100%;object-fit:cover;transition:transform .4s}.resort-card:hover .resort-card-image img{transform:scale(1.1)}.resort-card-image::after{content:'';position:absolute;bottom:0;left:0;right:0;height:60%;background:linear-gradient(to top,rgba(0,0,0,.7),transparent);pointer-events:none}.resort-card-level-badge{position:absolute;top:12px;left:12px;z-index:10;animation:.4s slideInLeft}@keyframes slideInLeft{from{transform:translateX(-20px);opacity:0}to{transform:translateX(0);opacity:1}}.resort-card-title{font-size:var(--font-2xl);font-weight:var(--font-extrabold);color:var(--color-text-primary);margin-bottom:var(--space-sm);line-height:var(--leading-tight)}.resort-card-description{font-size:var(--font-md);color:var(--color-text-muted);line-height:var(--leading-relaxed);margin-bottom:var(--space-lg);display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}.input-enhanced{position:relative;width:100%}.input-enhanced input{width:100%;padding:var(--space-md) var(--space-lg);padding-right:var(--space-4xl);background:var(--color-bg-glass-light);border:2px solid var(--color-border-lighter);border-radius:var(--radius-lg);color:var(--color-text-primary);font-size:var(--font-md);transition:.3s}.input-enhanced input:focus{outline:0;border-color:var(--color-accent-blue);box-shadow:0 0 0 4px rgba(79,172,254,.2);background:var(--color-bg-glass)}.input-enhanced input::placeholder{color:var(--color-text-dimmed);font-style:italic}.input-icon{position:absolute;right:var(--space-lg);top:50%;transform:translateY(-50%);pointer-events:none;font-size:var(--font-xl);color:var(--color-text-muted);transition:var(--transition-base)}.input-enhanced input:focus~.input-icon{color:var(--color-accent-blue)}.input-enhanced.valid input{border-color:var(--color-accent-success)}.input-enhanced.invalid input{border-color:var(--color-accent-danger)}.input-enhanced.valid .input-icon{color:var(--color-accent-success)}.input-enhanced.invalid .input-icon{color:var(--color-accent-danger)}.input-helper{font-size:var(--font-sm);color:var(--color-text-muted);margin-top:6px;padding-left:var(--space-sm)}.input-helper.error{color:var(--color-accent-danger)}.input-helper.success{color:var(--color-accent-success)}.btn-ripple{position:relative;overflow:hidden}.btn-ripple::after{content:'';position:absolute;top:50%;left:50%;width:0;height:0;border-radius:50%;background:rgba(255,255,255,.5);transform:translate(-50%,-50%);transition:width .6s,height .6s}.btn-ripple:active::after{width:300px;height:300px}.hero-title{font-size:clamp(2.5em, 5vw, 4.5em);font-weight:var(--font-extrabold);line-height:var(--leading-tight);color:var(--color-text-primary);margin-bottom:var(--space-2xl);letter-spacing:-1px}.hero-subtitle{font-size:clamp(1.1em, 2vw, 1.5em);color:var(--color-text-muted);line-height:var(--leading-relaxed);max-width:700px;margin:0 auto var(--space-3xl)}.section-title{font-size:var(--font-3xl);font-weight:var(--font-extrabold);color:var(--color-text-primary);margin-bottom:var(--space-2xl)}.hover-scale{transition:transform .3s}.hover-scale:hover{transform:scale(1.05)}.hover-lift{transition:.3s}.hover-lift:hover{transform:translateY(-5px);box-shadow:var(--shadow-lg)}.hover-rotate{transition:transform .3s}.hover-rotate:hover{transform:rotate(5deg)}@keyframes shake{0%,100%{transform:translateX(0)}10%,30%,50%,70%,90%{transform:translateX(-5px)}20%,40%,60%,80%{transform:translateX(5px)}}.shake{animation:.5s shake}.badge-new{display:inline-block;padding:4px 10px;background:var(--color-accent-danger);color:#fff;font-size:var(--font-xs);font-weight:var(--font-bold);text-transform:uppercase;border-radius:var(--radius-xl);letter-spacing:.5px;box-shadow:0 2px 8px rgba(245,87,108,.4);animation:2s infinite pulse}.badge-popular{display:inline-flex;align-items:center;gap:4px;padding:6px 12px;background:rgba(255,193,7,.2);border:2px solid var(--color-accent-warning);color:var(--color-accent-warning);font-size:var(--font-sm);font-weight:var(--font-bold);border-radius:var(--radius-lg)}.badge-popular::before{content:'🔥'}.tooltip{position:relative}.tooltip::before{content:attr(data-tooltip);position:absolute;bottom:100%;left:50%;transform:translateX(-50%) translateY(-8px);padding:8px 12px;background:rgba(0,0,0,.9);color:#fff;font-size:var(--font-sm);border-radius:var(--radius-md);white-space:nowrap;opacity:0;pointer-events:none;transition:opacity .3s,transform .3s;z-index:var(--z-tooltip)}.tooltip::after{content:'';position:absolute;bottom:100%;left:50%;transform:translateX(-50%);border:6px solid transparent;border-top-color:rgba(0,0,0,.9);opacity:0;pointer-events:none;transition:opacity .3s}.tooltip:hover::before{opacity:1;transform:translateX(-50%) translateY(-12px)}.tooltip:hover::after{opacity:1}@media (max-width:768px){.hero-title{font-size:2.5em}.hero-subtitle{font-size:1.1em}.resort-card-title{font-size:var(--font-xl)}.badge-level{font-size:var(--font-xs);padding:4px 10px}}@keyframes fadeInUp{from{opacity:0;transform:translateY(30px)}to{opacity:1;transform:translateY(0)}}.fade-in-up{animation:.6s forwards fadeInUp}.resort-card:first-child{animation-delay:.1s}.resort-card:nth-child(2){animation-delay:.2s}.resort-card:nth-child(3){animation-delay:.3s}.resort-card:nth-child(4){animation-delay:.4s}.resort-card:nth-child(5){animation-delay:.5s}.resort-card:nth-child(6){animation-delay:.6s}.glow-on-hover{transition:.3s}.glow-on-hover:hover{box-shadow:0 0 20px rgba(79,172,254,.6),0 0 40px rgba(240,147,251,.4)}.btn-bounce:active{animation:.3s bounceButton}@keyframes bounceButton{0%,100%{transform:scale(1)}50%{transform:scale(.95)}}@media (prefers-reduced-motion:reduce){.hover-lift:hover,.hover-rotate:hover,.hover-scale:hover{transform:none}.badge-new,.shake{animation:none}.fade-in-up{animation:none;opacity:1}.resort-card{animation:none!important}}