.login-overlay{position:fixed;top:0;left:0;width:100vw;height:100vh;background:#0e1c1599;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:1000;opacity:0;visibility:hidden;transition:opacity .3s ease,visibility .3s ease}.login-overlay.active{opacity:1;visibility:visible}.login-modal{position:fixed;top:50%;left:50%;transform:translate(-50%,-45%);width:90%;max-width:440px;background:var(--color-white);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);z-index:1001;opacity:0;visibility:hidden;transition:all .3s cubic-bezier(.16,1,.3,1)}.login-modal.active{transform:translate(-50%,-50%);opacity:1;visibility:visible}.login-modal-content{position:relative;padding:var(--space-2xl) var(--space-xl)}.login-close{position:absolute;top:var(--space-md);right:var(--space-md);background:none;border:none;color:var(--color-gray-400);cursor:pointer;padding:8px;border-radius:var(--radius-full);display:flex;align-items:center;justify-content:center;transition:all .2s ease}.login-close:hover{background:var(--color-cream);color:var(--color-forest)}.login-header{text-align:center;margin-bottom:var(--space-xl)}.login-header h2{font-family:var(--font-heading);font-size:2rem;color:var(--color-forest);margin-bottom:var(--space-xs)}.login-header p{color:var(--color-gray-500);font-size:.95rem}.login-form .form-group{margin-bottom:var(--space-md)}.login-form .form-label{display:block;font-size:.85rem;font-weight:600;color:var(--color-forest);margin-bottom:6px}.login-form .form-input{width:100%;padding:12px 16px;border:1px solid var(--color-gray-200);border-radius:var(--radius-md);font-family:inherit;font-size:1rem;transition:all .2s ease}.login-form .form-input:focus{outline:none;border-color:var(--color-sage);box-shadow:0 0 0 3px #5e825424}.login-footer{text-align:center;margin-top:var(--space-lg);padding-top:var(--space-md);border-top:1px solid var(--color-gray-100);font-size:.9rem;color:var(--color-gray-500)}.btn-favorite{position:absolute;top:12px;right:12px;background:#ffffffe6;border:none;border-radius:var(--radius-full);width:36px;height:36px;display:flex;align-items:center;justify-content:center;color:var(--color-gray-400);cursor:pointer;transition:all .2s ease;box-shadow:0 2px 8px #0000000d;z-index:2}.btn-favorite:hover{transform:scale(1.05);color:var(--color-terracotta)}.btn-favorite.active{color:var(--color-terracotta)}.btn-favorite.active svg{fill:var(--color-terracotta)}.checkout-layout{display:grid;grid-template-columns:1fr 380px;gap:var(--space-2xl);align-items:start}@media (max-width: 992px){.checkout-layout{grid-template-columns:1fr}}.checkout-items{background:var(--color-white);border-radius:var(--radius-lg);padding:var(--space-xl);box-shadow:0 4px 20px #00000008}.checkout-item{display:flex;gap:var(--space-lg);padding:var(--space-md) 0;border-bottom:1px solid var(--color-gray-100);align-items:center}.checkout-item:last-child{border-bottom:none;padding-bottom:0}.checkout-item img{width:80px;height:80px;object-fit:cover;border-radius:var(--radius-md);background:var(--color-cream)}.checkout-item-info{flex:1}.checkout-item-info h4{font-size:1rem;margin-bottom:4px}.checkout-item-info .price{font-weight:600;color:var(--color-forest)}.checkout-item-qty{font-size:.9rem;color:var(--color-gray-500);background:var(--color-cream);padding:4px 12px;border-radius:var(--radius-full)}.checkout-summary{background:var(--color-cream-warm);border:1px solid var(--color-gray-200);border-radius:var(--radius-lg);padding:var(--space-xl);position:sticky;top:100px}.checkout-summary h3{font-family:var(--font-heading);font-size:1.5rem;margin-bottom:var(--space-lg);color:var(--color-forest)}.summary-row{display:flex;justify-content:space-between;margin-bottom:var(--space-sm);color:var(--color-gray-600)}.summary-total{font-size:1.25rem;font-weight:700;color:var(--color-forest);margin-top:var(--space-md)}.custom-toast{position:fixed;bottom:var(--space-xl);right:var(--space-xl);background:var(--color-white);padding:16px 24px;border-radius:var(--radius-md);box-shadow:0 10px 30px #0e1c151a;z-index:9999;display:flex;align-items:center;transform:translate(150%);transition:transform .5s cubic-bezier(.175,.885,.32,1.275);border:1px solid var(--color-sage);min-width:300px}.custom-toast.show{transform:translate(0)}.toast-content{position:relative;z-index:2;display:flex;align-items:center;gap:12px;background:var(--color-white);padding-right:12px}.toast-text{font-size:.95rem;font-weight:500;color:var(--color-forest)}.toast-vine-container{position:absolute;top:-12px;left:-12px;width:calc(100% + 24px);height:calc(100% + 24px);pointer-events:none;z-index:1}.vine-stem{fill:none;stroke:var(--color-forest);stroke-width:2.5;stroke-linecap:round;stroke-dasharray:600;stroke-dashoffset:600}.custom-toast.show .vine-stem{animation:drawVine 1.5s ease-out forwards}.vine-leaf{opacity:0;transform:scale3d(0,0,1)}.custom-toast.show .vine-leaf{animation:popLeaf .8s cubic-bezier(.34,1.56,.64,1) forwards}.custom-toast.show .leaf-1{animation-delay:.3s}.custom-toast.show .leaf-2{animation-delay:.6s}.custom-toast.show .leaf-3{animation-delay:.9s}.custom-toast.show .leaf-4{animation-delay:.5s}.custom-toast.show .leaf-5{animation-delay:.8s}@keyframes drawVine{to{stroke-dashoffset:0}}@keyframes popLeaf{0%{opacity:0;transform:scale3d(0,0,1)}to{opacity:1;transform:scaleZ(1)}}
